czh %!s(int64=2) %!d(string=hai) anos
pai
achega
6ee2e56bdc

+ 2 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsEntTypeDao.java

@@ -43,6 +43,8 @@ public interface KwsEntTypeDao {
      */
     List<KwsEntType> findListByEntId(Long entId);
 
+    List<KwsEntType> findApprovalByEntId(Long entId);
+
     /**
      * @param entId 企业ids
      * @return KwsEntType

+ 2 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/dao/KwsMenuRightsDao.java

@@ -63,4 +63,6 @@ public interface KwsMenuRightsDao {
     int saveBatch(@Param(value = "list") List<KwsMenuRights> list);
 
     List<KwsMenuRights> selectEntMenus(Long id);
+
+    int deleteByIds(@Param(value = "list") List<Long> list);
 }

+ 71 - 27
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsEnterpriseService.java

@@ -74,6 +74,12 @@ public class KwsEnterpriseService {
     @Autowired
     private KwsRoleService kwsRoleService;
 
+    @Autowired
+    private KwsMenuRightsDao kwsMenuRightsDao;
+
+    @Autowired
+    private KwsMenuDao kwsMenuDao;
+
     @Autowired
     private RemoteSystemServiceImpl remoteSystemService;
 
@@ -329,28 +335,28 @@ public class KwsEnterpriseService {
 
         /*2、存企业类型,一个企业可以有多个类型*/
         List<KwsEntType> listByEntId = kwsEntTypeDao.findListByEntId(entId);
-        List<Integer> typeList = new ArrayList<>();
+        List<Integer> currentTypeList = new ArrayList<>();
         if (CollectionUtils.isNotEmpty(listByEntId)) {
-            typeList = listByEntId.stream().map(KwsEntType::getType).toList();
+            currentTypeList.addAll(listByEntId.stream().map(KwsEntType::getType).toList());
+//            for (KwsEntType listId : listByEntId) {
+//                KwsEntType kwsEntType = new KwsEntType();
+//                kwsEntType.setId(listId.getId());
+//                kwsEntType.setDelFlag(Global.YES);
+//                if (kwsEntTypeDao.update(kwsEntType) <= 0) {
+//                    throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+//                }
+//            }
         }
-        List<Integer> finalTypeList = typeList;
-        if (CollectionUtils.isNotEmpty(listByEntId)) {
-            for (KwsEntType listId : listByEntId) {
-                KwsEntType kwsEntType = new KwsEntType();
-                kwsEntType.setId(listId.getId());
-                kwsEntType.setDelFlag(Global.YES);
-                if (kwsEntTypeDao.update(kwsEntType) <= 0) {
-                    throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
-                }
+        List<String> typeList = Arrays.stream(reqVo.getEntTypes().split(",")).toList();
+        for (String item : typeList) {
+            if (currentTypeList.contains(Integer.parseInt(item))) {
+                continue;
             }
-        }
-        Arrays.stream(reqVo.getEntTypes().split(",")).toList().forEach(item -> {
-            //if (!finalTypeList.contains(Integer.parseInt(item))) {
             KwsEntType kwsEntType = new KwsEntType();
             kwsEntType.setEntId(entId);
             kwsEntType.setType(Integer.parseInt(item));
             kwsEntType.setId(new IdWorker(1).nextId());
-            kwsEntType.setStatus(Global.NO);
+            kwsEntType.setStatus(ApprovalEnum.PROCESS.getCode());
             kwsEntType.setCreateBy(userId);
             kwsEntType.setCreateTime(date);
             kwsEntType.setUpdateBy(userId);
@@ -359,8 +365,7 @@ public class KwsEnterpriseService {
             if (kwsEntTypeDao.insert(kwsEntType) <= 0) {
                 throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
             }
-            //}
-        });
+        }
 
         /*3、存企业证书*/
         List<KwsEntCertificate> kwsEntCertificates = new ArrayList<>();
@@ -383,7 +388,7 @@ public class KwsEnterpriseService {
             throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.INSERT_FAIL);
         }
 
-        if(SystemTypeEnum.MANAGE.getCode().equals(LoginUserHolder.getSystemType())) {
+        if (SystemTypeEnum.MANAGE.getCode().equals(LoginUserHolder.getSystemType())) {
             ApprovalReqVo approvalReqVo = new ApprovalReqVo();
             approvalReqVo.setEntId(entId);
             approvalReqVo.setStatus(ApprovalEnum.OK.getCode());
@@ -459,6 +464,14 @@ public class KwsEnterpriseService {
             kwsEntCertificates.add(kwsEntCertificate);
         }
 
+        List<KwsEntType> kwsEntTypeList = kwsEntTypeDao.findApprovalByEntId(entId);
+        if (CollectionUtils.isNotEmpty(kwsEntTypeList)) {
+            for (KwsEntType kwsEntType : kwsEntTypeList) {
+                kwsEntType.setStatus(status.equals(ApprovalEnum.OK.getCode()) ? Global.NO : Global.YES);
+                kwsEntTypeDao.update(kwsEntType);
+            }
+        }
+
         /*更新企业信息主表审批状态*/
         KwsEnterprise kwsEnterprise = checkKwsEnterpriseById(entId);
         Integer currentApproval = kwsEnterprise.getApproval();
@@ -481,18 +494,49 @@ public class KwsEnterpriseService {
         //主体机构不用走后面的流程
         if (Objects.isNull(kwsEntDept)) {
             /*第一次审批通过(非更新资质审批通过),构建机构角色等*/
-            if (ApprovalEnum.OK.getCode() == status && ApprovalEnum.PROCESS.getCode() == currentApproval) {
-                /*审批通过,绑定角色*/
-                FindManagePojo findManagePojo = kwsEnterpriseDao.findManageInfoByEntIdBeforeApproval(entId);
-                if (Objects.isNull(findManagePojo)) {
-                    throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+            if (ApprovalEnum.OK.getCode() == status) {
+                if (ApprovalEnum.PROCESS.getCode() == currentApproval) {
+                    /*审批通过,绑定角色*/
+                    FindManagePojo findManagePojo = kwsEnterpriseDao.findManageInfoByEntIdBeforeApproval(entId);
+                    if (Objects.isNull(findManagePojo)) {
+                        throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+                    }
+                    KwsUser userByAccount = kwsUserService.getUserByAccount(kwsEnterprise.getPhone(), SystemTypeEnum.COMPANY.getCode());
+                    if (Objects.isNull(userByAccount)) {
+                        throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+                    }
+                    kwsUserService.fillUserRole(String.valueOf(findManagePojo.getRoleId()), userByAccount.getId(), SystemTypeEnum.COMPANY.getCode());
                 }
-                KwsUser userByAccount = kwsUserService.getUserByAccount(kwsEnterprise.getPhone(), SystemTypeEnum.COMPANY.getCode());
-                if (Objects.isNull(userByAccount)) {
-                    throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.UPDATE_FAIL);
+            }
+
+            List<KwsMenuRights> kwsMenuRightsList = kwsMenuRightsDao.selectEntMenus(entId);
+            if (CollectionUtils.isNotEmpty(kwsMenuRightsList)) {
+                kwsMenuRightsDao.deleteByIds(kwsMenuRightsList.stream().map(KwsMenuRights::getId).collect(Collectors.toList()));
+            }
+
+            Date date = new Date();
+            List<KwsEntType> listByEntId = kwsEntTypeDao.findListByEntId(entId);
+            List<Integer> typeList = listByEntId.stream().map(KwsEntType::getType).toList();
+            List<KwsMenu> kwsMenus = kwsMenuDao.selectAll();
+            List<KwsMenuRights> kwsMenuRightsList2 = new ArrayList<>();
+            for (Integer entType : typeList) {
+                List<KwsMenu> collect = kwsMenus.stream().filter(item -> item.getUsingRoles().contains(String.valueOf(entType))).collect(Collectors.toList());
+                for (KwsMenu kwsMenu : collect) {
+                    KwsMenuRights kwsMenuRights = new KwsMenuRights();
+                    kwsMenuRights.setEntId(entId);
+                    kwsMenuRights.setMenuId(kwsMenu.getId());
+                    kwsMenuRights.setId(new IdWorker(1L).nextId());
+                    kwsMenuRights.setStatus(0);
+                    kwsMenuRights.setCreateBy(LoginUserHolder.getUserId());
+                    kwsMenuRights.setCreateTime(date);
+                    kwsMenuRights.setUpdateBy(LoginUserHolder.getUserId());
+                    kwsMenuRights.setUpdateTime(date);
+                    kwsMenuRights.setDelFlag(0);
+                    kwsMenuRights.setRemark("");
+                    kwsMenuRightsList2.add(kwsMenuRights);
                 }
-                kwsUserService.fillUserRole(String.valueOf(findManagePojo.getRoleId()), userByAccount.getId(), SystemTypeEnum.COMPANY.getCode());
             }
+            kwsMenuRightsDao.saveBatch(kwsMenuRightsList2);
         }
         commonService.updateEntCertificate(entId, BeanUtils.copyToList(kwsEntCertificates, EntCertificateInfo.class));
 

+ 2 - 0
sckw-modules/sckw-system/src/main/java/com/sckw/system/service/KwsUserService.java

@@ -32,6 +32,7 @@ import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
 import java.util.*;
+import java.util.stream.Collectors;
 
 /**
  * 用户service接口
@@ -196,6 +197,7 @@ public class KwsUserService {
             if (CollectionUtils.isEmpty(kwsMenus)) {
                 throw new SystemException(HttpStatus.CRUD_FAIL_CODE, HttpStatus.MENU_NOT_EXISTS);
             }
+            kwsMenus = kwsMenus.stream().filter(item -> item.getClientType().equals(Global.NUMERICAL_TWO)).collect(Collectors.toList());
             editRoleReqVo.setName(Global.MANAGE_NAME);
             editRoleReqVo.setCurrentUnitId(kwsDept.getId());
             editRoleReqVo.setMenuIds(String.join(Global.COMMA, kwsMenus.stream().map(KwsMenu::getId).map(String::valueOf).toList()));

+ 4 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsEntTypeDao.xml

@@ -194,6 +194,10 @@
     select * from kws_ent_type a where a.ent_id = #{entId} and a.del_flag = 0 and a.status = 0
   </select>
 
+  <select id="findApprovalByEntId" resultType="com.sckw.system.model.KwsEntType">
+    select * from kws_ent_type a where a.ent_id = #{entId} and a.del_flag = 0 and a.status = 3
+  </select>
+
   <select id="findListByEntIds" resultType="com.sckw.system.model.KwsEntType">
     select * from kws_ent_type a
    where a.ent_id in

+ 9 - 0
sckw-modules/sckw-system/src/main/resources/mapper/KwsMenuRightsDao.xml

@@ -20,6 +20,15 @@
     update_time, del_flag
   </sql>
 
+  <delete id="deleteByIds">
+    update kws_menu_rights
+       set del_flag = 1
+     where id in
+     <foreach collection="list" open="(" close=")" separator="," item="item">
+        #{item}
+     </foreach>
+  </delete>
+
   <select id="selectByKey" parameterType="java.lang.Long" resultMap="BaseResultMap">
     select 
     <include refid="Base_Column_List" />