Browse Source

Merge remote-tracking branch 'origin/demo_' into demo_

hfxc226 2 years ago
parent
commit
9579be5454

+ 6 - 0
platform-dao/src/main/resources/mapper/repair/RepairApplicationFormMapper.xml

@@ -347,6 +347,12 @@
             <if test="updateTime != null">
                 update_time = #{updateTime},
             </if>
+            <if test="reportLeaderId != null and reportLeaderId != ''">
+                report_leader_id = #{reportLeaderId},
+            </if>
+            <if test="repairDeptId != null and repairDeptId != ''">
+                repair_dept_id = #{repairDeptId},
+            </if>
         </set>
         where id = #{id}
     </update>

+ 1 - 0
platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java

@@ -499,6 +499,7 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                 } else if(record.getSearchType() == 8){// 上报工单
                     if(roleArray.contains(SysRoleCodeEnum.MM.name())){
                         statusList.add(RepairApplicationFormStatusEnum.MM_REPAIR_FAIL.getValue());
+                        statusList.add(RepairApplicationFormStatusEnum.DISPATCH_REPAIR.getValue());
                     }else{
                         statusList.add(RepairApplicationFormStatusEnum.REPAIR_FAIL.getValue());
                     }

+ 35 - 6
platform-service/src/main/java/com/platform/service/repair/strategy/impl/LongYanRepairStrategy.java

@@ -11,9 +11,11 @@ import com.platform.dao.entity.customize.CustomFieldTemplateData;
 import com.platform.dao.entity.repair.RepairApplicationForm;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.upms.SysUser;
+import com.platform.dao.entity.upms.SysUserDept;
 import com.platform.dao.enums.*;
 import com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper;
 import com.platform.dao.mapper.sb.SbPositionMapper;
+import com.platform.dao.mapper.upms.SysUserDeptMapper;
 import com.platform.dao.mapper.upms.SysUserMapper;
 import com.platform.dao.util.MessageTemplateUtil;
 import com.platform.dao.vo.SysUserVO;
@@ -48,6 +50,8 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
     private PartInfoService partInfoService;
     @Resource
     private SbPositionMapper sbPositionMapper;
+    @Resource
+    private SysUserDeptMapper sysUserDeptMapper;
 
 
     /**
@@ -410,7 +414,7 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
                 // 通知维修人
                 sendMessageToRepairer(BeanConverterUtil.copyObjectProperties(existForm,RepairApplicationFormDTO.class));
             }else if(roles.contains(SysRoleCodeEnum.MM.name())){
-                // 维修主管处理
+                // 区域负责人处理
                 form.setDispatchUserId(model.getDispatchUserId());
                 form.setStatus(RepairApplicationFormStatusEnum.MM_DISPATCH.getValue());
                 // 主管派单通知工程师
@@ -491,21 +495,46 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
     public RepairApplicationFormDTO dispatchRepair(RepairApplicationFormDTO model) {
         // 完成维修和维修上报的状态才给转派
         if(model.getStatus() != RepairApplicationFormStatusEnum.REPAIR_FAIL.getValue() &&
-        model.getStatus() != RepairApplicationFormStatusEnum.WAIT_SUBMIT.getValue()){
+        model.getStatus() != RepairApplicationFormStatusEnum.WAIT_SUBMIT.getValue() &&
+                model.getStatus() != RepairApplicationFormStatusEnum.MM_REPAIR_FAIL.getValue()){
             throw new DeniedException("该状态下不允许转派");
         }
         // 角色是否符合要求
         String roles = getCurrentRoles();
-        if(!roles.contains(SysRoleCodeEnum.REPAIR_MANAGE.name())){
+        if(!roles.contains(SysRoleCodeEnum.REPAIR_MANAGE.name()) && !roles.contains(SysRoleCodeEnum.MM.name())){
             throw new DeniedException("不具备转派的权限");
         }
         SysUser user = sysUserMapper.selectByPrimaryKey(model.getDispatchUserId());
         RepairApplicationForm form = repairApplicationFormMapper.selectByPrimaryKey(model.getId());
-        model.setDispatchUserId(form.getDispatchUserId());
+        // 转派人为工程师时
+        if(model.getRoleType() == 2){
+            model.setDispatchUserId(form.getDispatchUserId());
+            // 添加维修转派记录
+            //addRepairDispatchRecord(model,user);
+            // 更新维修信息
+            form.setDispatchUserId(user.getUserId());
+            //form.setRepairUserId(null);
+            //form.setStatus(RepairApplicationFormStatusEnum.DISPATCH_REPAIR.getValue());
+            //form.setUpdateTime(LocalDateTime.now());
+            //repairApplicationFormMapper.updateLongYan(form);
+            // 添加状态记录
+            //addRepairStatusRecord(form,"维修转派");
+        }else if(model.getRoleType() == 4){ // 区域负责人转派
+            model.setDispatchUserId(form.getReportLeaderId());
+            // 添加维修转派记录
+            //addRepairDispatchRecord(model,user);
+            // 更新维修信息
+            form.setReportLeaderId(user.getUserId());
+            form.setRepairDeptId(sysUserDeptMapper.selectDeptIdByUserId(user.getUserId()));
+            //form.setRepairUserId(null);
+            //form.setStatus(RepairApplicationFormStatusEnum.DISPATCH_REPAIR.getValue());
+            //form.setUpdateTime(LocalDateTime.now());
+            //repairApplicationFormMapper.updateLongYan(form);
+            // 添加状态记录
+            //addRepairStatusRecord(form,"维修转派");
+        }
         // 添加维修转派记录
         addRepairDispatchRecord(model,user);
-        // 更新维修信息
-        form.setDispatchUserId(user.getUserId());
         form.setRepairUserId(null);
         form.setStatus(RepairApplicationFormStatusEnum.DISPATCH_REPAIR.getValue());
         form.setUpdateTime(LocalDateTime.now());

+ 8 - 1
platform-service/src/main/java/com/platform/service/upms/impl/SysUserServiceImpl.java

@@ -777,14 +777,21 @@ public class SysUserServiceImpl extends BaseServiceImpl<SysUserMapper, SysUser,
     @Override
     public List<SysUserVO> getRepairUsers(SysUserDTO sysUserDTO) {
         if(sysUserDTO.getQueryType() == 1){
-            sysUserDTO.setDeptId(null);
             // 维修上报查询
             if(sysUserDTO.getRoleType() == 1){
                 sysUserDTO.setRoleCode(SysRoleCodeEnum.Maintenance_Leader.name());
             }else if(sysUserDTO.getRoleType() == 2){
+                sysUserDTO.setDeptId(null);
                 sysUserDTO.setRoleCode(SysRoleCodeEnum.REPAIR_MANAGE.name());
             }else if(sysUserDTO.getRoleType() == 3){
+                sysUserDTO.setDeptId(null);
                 sysUserDTO.setRoleCode(SysRoleCodeEnum.MM.name());
+            }else if(sysUserDTO.getRoleType() == 4){
+                sysUserDTO.setDeptId(null);
+                List<String> roleCodes = new ArrayList<>();
+                roleCodes.add(SysRoleCodeEnum.REPAIR_MANAGE.name());
+                roleCodes.add(SysRoleCodeEnum.MM.name());
+                sysUserDTO.setRoleCodes(roleCodes);
             }
         }else{
             // 上报处理查询