guarantee-lsq преди 1 година
родител
ревизия
1a9634e904

+ 3 - 0
platform-dao/src/main/java/com/platform/dao/dto/repair/RepairApplicationFormDTO.java

@@ -506,4 +506,7 @@ public class RepairApplicationFormDTO extends BaseDTO implements Serializable {
      */
     private String verifyRepairUserId;
 
+    private List<String> sqlString;
+    private String sqlValue;
+
 }

+ 23 - 3
platform-dao/src/main/resources/mapper/repair/RepairApplicationFormMapper.xml

@@ -71,9 +71,6 @@
             <if test="type != null and type != ''">
                 and application.type = #{type}
             </if>
-            <if test="status != null and status != ''">
-                and application.status = #{status}
-            </if>
             <if test="userId != null and userId != ''">
                 and application.user_id = #{userId}
             </if>
@@ -99,6 +96,29 @@
                     #{item}
                 </foreach>
             </if>
+            <if test="sqlString != null and sqlString.size > 0">
+                AND
+                <foreach item="item" index="index" collection="sqlString" open="(" close=")" separator="or">
+                    <if test="item == 'application.user_id'">
+                        application.user_id = #{sqlValue}
+                    </if>
+                    <if test="item == 'application.produce_verify_user_id'">
+                        application.produce_verify_user_id = #{sqlValue}
+                    </if>
+                    <if test="item == 'application.verify_repair_user_id'">
+                        application.verify_repair_user_id = #{sqlValue}
+                    </if>
+                    <if test="item == 'application.dispatch_user_id'">
+                        application.dispatch_user_id = #{sqlValue}
+                    </if>
+                    <if test="item == 'application.repair_user_id'">
+                        application.repair_user_id = #{sqlValue}
+                    </if>
+                    <if test="item == 'application.report_leader_id'">
+                        application.report_leader_id = #{sqlValue}
+                    </if>
+                </foreach>
+            </if>
             <if test="repairStartTimeStart != null">
                 and application.repair_start_time <![CDATA[ > ]]> #{repairStartTimeStart}
             </if>

+ 74 - 16
platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

@@ -71,6 +71,7 @@ import com.platform.service.sb.SbInfoService;
 import com.platform.service.upms.SysDictService;
 import com.platform.service.upms.SysFileService;
 import com.platform.service.upms.SysUserService;
+import com.platform.service.util.CodeFileUtils;
 import com.platform.service.wechat.util.WeChatMessageUtil;
 import lombok.AllArgsConstructor;
 import org.springframework.stereotype.Service;
@@ -117,7 +118,6 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
     private final BigDecimal initNum= new BigDecimal(0);
 
 
-
     private NoticeNumberVO addRepairNums(NoticeNumberVO noticeNumberVO,List<RepairApplicationFormVO> repairApplicationFormVOS){
         if(repairApplicationFormVOS!=null) {
             for (RepairApplicationFormVO vo : repairApplicationFormVOS) {
@@ -443,17 +443,17 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                 repairApplicationFormDTO.setUserId(userInfo.getUserId());
                 repairApplicationFormVOS= mapper.getRepairCount(repairApplicationFormDTO);
                 noticeNumberVO=addRepairNums(noticeNumberVO,repairApplicationFormVOS);
+            }else if (sb.toString().contains(SysRoleCodeEnum.REPAIR_VERIFY_USER.name())){
+                noticeNumberVO.setRoleFlag(10);// 非计划报修审核
+                repairApplicationFormDTO.setVerifyRepairUserId(userInfo.getUserId());
+                repairApplicationFormVOS = mapper.getRepairCount(repairApplicationFormDTO);
+                noticeNumberVO = addRepairNums(noticeNumberVO,repairApplicationFormVOS);
             }
             else if (sb.toString().contains(SysRoleCodeEnum.PRODUCE_VERIFY_USERS.name())){
                 noticeNumberVO.setRoleFlag(7);//计划性维修生产审核
                 repairApplicationFormDTO.setProduceVerifyUserId(userInfo.getUserId());
                 repairApplicationFormVOS = mapper.getRepairCount(repairApplicationFormDTO);
                 noticeNumberVO = addRepairNums(noticeNumberVO,repairApplicationFormVOS);
-            }else if (sb.toString().contains(SysRoleCodeEnum.REPAIR_VERIFY_USER.name())){
-                noticeNumberVO.setRoleFlag(10);// 非计划报修审核
-                repairApplicationFormDTO.setVerifyRepairUserId(userInfo.getUserId());
-                repairApplicationFormVOS = mapper.getRepairCount(repairApplicationFormDTO);
-                noticeNumberVO = addRepairNums(noticeNumberVO,repairApplicationFormVOS);
             }
             else if(sb.toString().contains(SysRoleCodeEnum.Maintenance.name()) || sb.toString().contains(SysRoleCodeEnum.Maintenance_Leader.name())){
                 noticeNumberVO.setRoleFlag(1);//维修人就是班组长
@@ -523,8 +523,46 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
         String roleArray = roleCodes.toString();
         if(StringUtils.isBlank(record.getSbId())){ // 非获取设备的维修记录
             if(record.getSearchType() != null){
+                // 根据角色-不同赋值,考虑多个一个账号含以下多个角色情况
+                String[] roles = CodeFileUtils.getConflictRole(roleArray);
+                List<String> sql = ListUtils.newArrayList();
+                if(roles.length > 0){
+                    for(String rr : roles){
+                        if(rr.equals(SysRoleCodeEnum.REPAIR_MANAGE.name())){
+                            // 維修工程師
+                            sql.add("application.dispatch_user_id");
+                        }
+                        if(rr.equals(SysRoleCodeEnum.REPAIR_EXAMINE.name())){
+                            // 报修人
+                            sql.add("application.user_id");
+                        }
+                        if(rr.equals(SysRoleCodeEnum.Maintenance.name())){
+                            // 班组长
+                            sql.add("application.repair_user_id");
+                        }
+                        if(rr.equals(SysRoleCodeEnum.Maintenance_Leader.name())){
+                            // 维修人
+                            sql.add("application.repair_user_id");
+                        }
+                        if(rr.equals(SysRoleCodeEnum.MM.name())){
+                            // 区域负责人
+                            sql.add("application.report_leader_id");
+                        }
+                        if(rr.equals(SysRoleCodeEnum.PRODUCE_VERIFY_USERS.name())){
+                            // 生产审核人
+                            sql.add("application.produce_verify_user_id");
+                        }
+                        if(rr.equals(SysRoleCodeEnum.PRODUCE_VERIFY_USERS.name())){
+                            // 非计划维修报修审核
+                            sql.add("application.verify_repair_user_id");
+                        }
+                    }
+                    record.setSqlString(sql);
+                    record.setSqlValue(userInfo.getUserId());
+                }
+
                 // 根据角色-不同赋值
-                if(roleArray.contains(SysRoleCodeEnum.REPAIR_MANAGE.name())){
+                /*if(roleArray.contains(SysRoleCodeEnum.REPAIR_MANAGE.name())){
                     // 维修工程师
                     record.setDispatchUserId(userInfo.getUserId());
                 }else if(roleArray.contains(SysRoleCodeEnum.REPAIR_EXAMINE.name())){
@@ -540,7 +578,7 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                 }else if(roleArray.contains(SysRoleCodeEnum.REPAIR_VERIFY_USER.name())){
                     // 非计划维修报修审核
                     record.setVerifyRepairUserId(userInfo.getUserId());
-                }
+                }*/
                 List<Integer> statusList = new ArrayList<>();
                 if(record.getSearchType() == 1){ // 我的工单--报修人,我的工单--工程师,我的工单--班组长
                     statusList.add(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
@@ -566,6 +604,7 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                 }else if(record.getSearchType() == 3){ // 接单大厅-维修人和班组长
                     record.setRepairUserId(null);
                     record.setDispatchUserId(null);
+                    record.setSqlString(null);
                     record.setRepairDeptId(sysUserDeptMapper.selectDeptIdByUserId(userInfo.getUserId()));
                     statusList.add(RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue());
                 }else if(record.getSearchType() == 4){ // 待接工单-维修工程师
@@ -578,14 +617,14 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                         // 维修工程师
                         statusList.add(RepairApplicationFormStatusEnum.WAIT_SUBMIT.getValue());
                         statusList.add(RepairApplicationFormStatusEnum.CALLER_REPAIR_VERIFYING_ONE.getValue()); // 计划维修审核
-                    }else if(roleArray.contains(SysRoleCodeEnum.PRODUCE_VERIFY_USERS.name())){ // 生产审核
+                    } if(roleArray.contains(SysRoleCodeEnum.PRODUCE_VERIFY_USERS.name())){ // 生产审核
                         // 生产审核
                         statusList.add(RepairApplicationFormStatusEnum.CALLER_REPAIR_VERIFYING_THREE.getValue());
                         statusList.add(RepairApplicationFormStatusEnum.BIG_REPAIR_VERIFYING.getValue());
-                    }else if(roleArray.contains(SysRoleCodeEnum.MM.name())){
+                    } if(roleArray.contains(SysRoleCodeEnum.MM.name())){
                         // 经理审核
                         statusList.add(RepairApplicationFormStatusEnum.CALLER_REPAIR_VERIFYING_TWO.getValue());
-                    }else if(roleArray.contains(SysRoleCodeEnum.REPAIR_VERIFY_USER.name())){
+                    } if(roleArray.contains(SysRoleCodeEnum.REPAIR_VERIFY_USER.name())){
                         // 报修审核
                         statusList.add(RepairApplicationFormStatusEnum.REPAIR_VERIFYING.getValue());
                     }
@@ -611,19 +650,38 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                     statusList.add(RepairApplicationFormStatusEnum.MM_REPAIR_CLOSE.getValue());
                 }
                 // 超级管理员可以看到各个状态下的所有数据 相关领导,可以在这里进行设置
-                if(userInfo.getSuperAdmin() == 1 || record.getSearchType() == -1){
+                if(userInfo.getSuperAdmin() == 1){
                     record.setUserId(null);
                     record.setDispatchUserId(null);
                     record.setRepairUserId(null);
                     record.setRepairDeptId(null);
                     record.setReportLeaderId(null);
+                    record.setSqlString(null);
                 }
                 record.setStatusList(statusList);
                 // 前端报修审核
-                if(StringUtils.isNotBlank(record.getVerifyRepairUserId()) && record.getSearchType() == -1){
-                    if(record.getStatus() != null && 3 == record.getStatus()){
-                        record.setStatus(RepairApplicationFormStatusEnum.REPAIR_VERIFYING.getValue());
-                        record.setStatusList(null);
+                if(record.getSearchType() == -1){
+                    if(record.getStatus() != null){
+                        if(3 == record.getStatus()){
+                            record.setStatus(null);
+                            if(roleArray.contains(SysRoleCodeEnum.REPAIR_MANAGE.name())){
+                                // 维修工程师
+                                statusList.add(RepairApplicationFormStatusEnum.WAIT_SUBMIT.getValue());
+                                statusList.add(RepairApplicationFormStatusEnum.CALLER_REPAIR_VERIFYING_ONE.getValue()); // 计划维修审核
+                            } if(roleArray.contains(SysRoleCodeEnum.PRODUCE_VERIFY_USERS.name())){ // 生产审核
+                                // 生产审核
+                                statusList.add(RepairApplicationFormStatusEnum.CALLER_REPAIR_VERIFYING_THREE.getValue());
+                                statusList.add(RepairApplicationFormStatusEnum.BIG_REPAIR_VERIFYING.getValue());
+                            } if(roleArray.contains(SysRoleCodeEnum.MM.name())){
+                                // 经理审核
+                                statusList.add(RepairApplicationFormStatusEnum.CALLER_REPAIR_VERIFYING_TWO.getValue());
+                            } if(roleArray.contains(SysRoleCodeEnum.REPAIR_VERIFY_USER.name())){
+                                // 报修审核
+                                statusList.add(RepairApplicationFormStatusEnum.REPAIR_VERIFYING.getValue());
+                            }
+                        }else if(1 == record.getStatus()){
+                            record.setSqlString(null);
+                        }
                     }
                 }
             }

+ 32 - 0
platform-service/src/main/java/com/platform/service/util/CodeFileUtils.java

@@ -5,6 +5,7 @@ import com.platform.common.constant.CommonConstants;
 import com.platform.common.enums.ResultCode;
 import com.platform.common.exception.BusinessException;
 import com.platform.common.util.StringUtils;
+import com.platform.dao.enums.SysRoleCodeEnum;
 import lombok.SneakyThrows;
 import org.iherus.codegen.qrcode.QrcodeConfig;
 import org.iherus.codegen.qrcode.SimpleQrcodeGenerator;
@@ -59,4 +60,35 @@ public class CodeFileUtils {
         }
 
     }
+
+    public static String[] getConflictRole(String role){
+        StringBuilder tempStr = new StringBuilder();
+        if(role.contains(SysRoleCodeEnum.REPAIR_MANAGE.name())){
+            tempStr.append(SysRoleCodeEnum.REPAIR_MANAGE.name()).append("&");
+        }
+        if(role.contains(SysRoleCodeEnum.REPAIR_EXAMINE.name())){
+            tempStr.append(SysRoleCodeEnum.REPAIR_EXAMINE.name()).append("&");
+        }
+        if(role.contains(SysRoleCodeEnum.Maintenance.name())){
+            tempStr.append(SysRoleCodeEnum.Maintenance.name()).append("&");
+        }
+        if(role.contains(SysRoleCodeEnum.MM.name())){
+            tempStr.append(SysRoleCodeEnum.MM.name()).append("&");
+        }
+        if(role.contains(SysRoleCodeEnum.PRODUCE_VERIFY_USERS.name())){
+            tempStr.append(SysRoleCodeEnum.PRODUCE_VERIFY_USERS.name()).append("&");
+        }
+        if(role.contains(SysRoleCodeEnum.REPAIR_VERIFY_USER.name())){
+            tempStr.append(SysRoleCodeEnum.REPAIR_VERIFY_USER.name()).append("&");
+        }
+        if(role.contains(SysRoleCodeEnum.Maintenance_Leader.name())){
+            tempStr.append(SysRoleCodeEnum.Maintenance_Leader.name()).append("&");
+        }
+        if(StringUtils.isNotBlank(tempStr.toString())){
+            String str = tempStr.toString();
+            String[] arr = str.substring(0,str.length()-1).split("&");
+            return arr;
+        }
+        return new String[0];
+    }
 }