Browse Source

供应商启用/禁用前业务判断,只要和当前供应商绑定的(包含启用禁用状态),都不能禁用(码包,箱码幅面,用户

v_HuilingDeng 3 years ago
parent
commit
4d219d34e4

+ 44 - 0
abi-cloud-qr-platform-server/src/main/java/com/abi/qms/platform/service/impl/FactoryServiceImpl.java

@@ -2,10 +2,16 @@ package com.abi.qms.platform.service.impl;
 
 import cn.hutool.core.collection.CollectionUtil;
 import com.abi.qms.platform.dao.entity.BaseFactory;
+import com.abi.qms.platform.dao.entity.BoxCodeFormat;
+import com.abi.qms.platform.dao.entity.QrPackage;
+import com.abi.qms.platform.dao.entity.UserInfo;
 import com.abi.qms.platform.dao.enums.FactoryTypeEnum;
 import com.abi.qms.platform.dao.enums.LoginTypeEnum;
 import com.abi.qms.platform.dao.enums.ValidEnum;
 import com.abi.qms.platform.dao.mapper.BaseFactoryMapper;
+import com.abi.qms.platform.dao.mapper.BoxCodeFormatMapper;
+import com.abi.qms.platform.dao.mapper.QrPackageMapper;
+import com.abi.qms.platform.dao.mapper.UserInfoMapper;
 import com.abi.qms.platform.dto.req.DisableFactoryReq;
 import com.abi.qms.platform.dto.req.EnableFactoryReq;
 import com.abi.qms.platform.dto.req.GetFactoryDetailReq;
@@ -25,6 +31,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.commons.lang3.StringUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
 
 import java.util.ArrayList;
 import java.util.List;
@@ -42,6 +49,15 @@ public class FactoryServiceImpl implements FactoryService {
     @Autowired
     private BaseFactoryMapper baseFactoryMapper;
 
+    @Autowired
+    private UserInfoMapper userInfoMapper;
+
+    @Autowired
+    private BoxCodeFormatMapper boxCodeFormatMapper;
+
+    @Autowired
+    private QrPackageMapper qrPackageMapper;
+
     /**
      * 供应商新增修改
      **/
@@ -135,6 +151,7 @@ public class FactoryServiceImpl implements FactoryService {
      * 供应商启用
      **/
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void enableFactory(EnableFactoryReq req) {
         List<Long> ids = req.getIds();
 
@@ -157,6 +174,7 @@ public class FactoryServiceImpl implements FactoryService {
      * 供应商禁用
      **/
     @Override
+    @Transactional(rollbackFor = Exception.class)
     public void disableFactory(DisableFactoryReq req) {
         List<Long> ids = req.getIds();
 
@@ -169,6 +187,32 @@ public class FactoryServiceImpl implements FactoryService {
                 return;
             }
 
+            //只要和当前供应商绑定的(包含启用禁用状态),都不能禁用(码包,箱码幅面,用户)
+            //用户
+            QueryWrapper<UserInfo> userQuery = new QueryWrapper<>();
+            userQuery.eq("factory_id", id);
+            userQuery.eq("is_delete", 0);
+            List<UserInfo> userInfos = userInfoMapper.selectList(userQuery);
+            if(CollectionUtil.isNotEmpty(userInfos)){
+                throw  new BusinessException("供应商" + factory.getFactoryName() + "已与用户" + userInfos.get(0).getUserName()+ "绑定,请解绑后再停用。");
+            }
+            //箱码幅面
+            QueryWrapper<BoxCodeFormat> boxCodeFormatQuery = new QueryWrapper<>();
+            boxCodeFormatQuery.eq("factory_id", id);
+            boxCodeFormatQuery.eq("is_delete", 0);
+            List<BoxCodeFormat> boxCodeFormats = boxCodeFormatMapper.selectList(boxCodeFormatQuery);
+            if(CollectionUtil.isNotEmpty(boxCodeFormats)){
+                throw  new BusinessException("供应商" + factory.getFactoryName() + "已与箱码幅面" + boxCodeFormats.get(0).getName()+ "绑定,请解绑后再停用。");
+            }
+            //码包
+            QueryWrapper<QrPackage> qrPackageQuery = new QueryWrapper<>();
+            qrPackageQuery.eq("factory_id", id);
+            qrPackageQuery.eq("is_delete", 0);
+            List<QrPackage> qrPackages = qrPackageMapper.selectList(qrPackageQuery);
+            if(CollectionUtil.isNotEmpty(qrPackages)){
+                throw  new BusinessException("供应商" + factory.getFactoryName() + "已与码包" + qrPackages.get(0).getName()+ "绑定,请解绑后再停用。");
+            }
+
             //2-修改状态
             factory.setValid(ValidEnum.NOT_VALID.getCode());
             baseFactoryMapper.updateById(factory);