guarantee-lsq пре 2 година
родитељ
комит
376b506350
14 измењених фајлова са 160 додато и 20 уклоњено
  1. 1 0
      platform-common/src/main/java/com/platform/common/constant/CommonConstants.java
  2. 6 1
      platform-dao/src/main/java/com/platform/dao/dto/repair/RepairApplicationFormDTO.java
  3. 39 0
      platform-dao/src/main/java/com/platform/dao/dto/repair/RepairTicketTemplateData.java
  4. 4 0
      platform-dao/src/main/java/com/platform/dao/enums/RepairApplicationFormStatusEnum.java
  5. 1 0
      platform-dao/src/main/java/com/platform/dao/enums/SysFileTypeEnum.java
  6. 2 0
      platform-dao/src/main/java/com/platform/dao/vo/repair/RepairApplicationFormVO.java
  7. 6 3
      platform-dao/src/main/resources/mapper/repair/RepairApplicationFormMapper.xml
  8. 11 0
      platform-rest/src/main/java/com/platform/rest/controller/customize/CustomFieldTemplateDataController.java
  9. 4 5
      platform-rest/src/main/java/com/platform/rest/controller/repair/RepairApplicationFormController.java
  10. 8 0
      platform-service/src/main/java/com/platform/service/customize/CustomFieldTemplateDataService.java
  11. 48 4
      platform-service/src/main/java/com/platform/service/customize/impl/CustomFieldTemplateDataServiceImpl.java
  12. 5 1
      platform-service/src/main/java/com/platform/service/repair/impl/RepairApplicationFormServiceImpl.java
  13. 5 1
      platform-service/src/main/java/com/platform/service/repair/strategy/AbstractRepairBaseStrategy.java
  14. 20 5
      platform-service/src/main/java/com/platform/service/repair/strategy/impl/LongYanRepairStrategy.java

+ 1 - 0
platform-common/src/main/java/com/platform/common/constant/CommonConstants.java

@@ -263,6 +263,7 @@ public interface CommonConstants {
     String REPAIR_RECORD = "repair_record"; // 维修记录
     String REPAIR_DISPATCH_RECORD = "repair_dispatch_record"; // 维修转派记录
     String REPAIR_VERIFY_RECORD = "repair_verify_record"; // 维修审核记录
+    String REPAIR_TICKET_RECORD = "repair_ticket_record"; // 维修票证记录
 
     /**
      * 龙岩维修 start

+ 6 - 1
platform-dao/src/main/java/com/platform/dao/dto/repair/RepairApplicationFormDTO.java

@@ -373,10 +373,15 @@ public class RepairApplicationFormDTO extends BaseDTO implements Serializable {
     private String file;
 
     /**
-     * 审核图片
+     * 维修审核图片
      */
     private List<SysFile> verifyImages;
 
+    /**
+     * 维修审核文件
+     */
+    private List<SysFile> verifyFiles;
+
     /**
      * 二次派工原因
      */

+ 39 - 0
platform-dao/src/main/java/com/platform/dao/dto/repair/RepairTicketTemplateData.java

@@ -0,0 +1,39 @@
+package com.platform.dao.dto.repair;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * 维修票证数据
+ */
+@Data
+public class RepairTicketTemplateData implements Serializable {
+
+    /**
+     * 报修单号
+     */
+    private String repairNo;
+
+    /**
+     * 委托时间-保修时间
+     */
+    private String callTime;
+
+    /**
+     * 设备位号
+     */
+    private String sbNo;
+
+    private String sbName; // 设备名称
+
+    private String sbLocation; // 设备位置
+
+    private String content; // 委托内容描述
+
+    private String caller; // 报修人
+
+    private String dispatcher; // 工程师
+
+    private String repairMan; // 维修人
+}

+ 4 - 0
platform-dao/src/main/java/com/platform/dao/enums/RepairApplicationFormStatusEnum.java

@@ -63,6 +63,10 @@ public enum RepairApplicationFormStatusEnum {
      * 主管派单
      */
     MM_DISPATCH(12),
+    /**
+     * 维修主管-维修上报
+     */
+    MM_REPAIR_FAIL(13),
     ;
     private final Integer value;
 }

+ 1 - 0
platform-dao/src/main/java/com/platform/dao/enums/SysFileTypeEnum.java

@@ -26,6 +26,7 @@ public enum SysFileTypeEnum {
     REPAIR_REPAIR_IMGS(12, "维修-维修图片"),
     REPAIR_REPAIR_FILES(35, "维修-维修文件"),
     REPAIR_CHECK_IMGS(13, "维修-验收图片"),
+    REPAIR_CHECK_FILES(15, "维修-验收文件"),
     SPARE_IMGS(14, "备件图片"),
     REPAIR_FEE_IMGS(18, "维修-费用图片"),
     REPAIR_FEE_FILES(19, "维修-费用文件"),

+ 2 - 0
platform-dao/src/main/java/com/platform/dao/vo/repair/RepairApplicationFormVO.java

@@ -392,4 +392,6 @@ public class RepairApplicationFormVO extends BaseVO implements Serializable {
      */
     private String reportLeaderId;
 
+    private String dispatchUserId;
+
 }

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

@@ -316,11 +316,11 @@
                 </otherwise>
             </choose>
             <choose>
-                <when test="repairUseName != null">
-                    repair_user_name = #{repairUseName},
+                <when test="dispatchUserId != null">
+                    dispatch_user_id = #{dispatchUserId},
                 </when>
                 <otherwise>
-                    repair_user_name = null,
+                    dispatch_user_id = null,
                 </otherwise>
             </choose>
             <if test="remark != null">
@@ -338,6 +338,9 @@
             <if test="dispatchUserId != null">
                 dispatch_user_id = #{dispatchUserId},
             </if>
+            <if test="updateTime != null">
+                update_time = #{updateTime},
+            </if>
         </set>
         where id = #{id}
     </update>

+ 11 - 0
platform-rest/src/main/java/com/platform/rest/controller/customize/CustomFieldTemplateDataController.java

@@ -2,6 +2,7 @@ package com.platform.rest.controller.customize;
 
 import com.platform.common.util.R;
 import com.platform.dao.dto.customize.CustomFieldTemplateDataDTO;
+import com.platform.dao.dto.repair.RepairTicketTemplateData;
 import com.platform.dao.entity.customize.CustomFieldTemplateData;
 import com.platform.service.customize.CustomFieldTemplateDataService;
 import com.platform.dao.util.ExcelUtil;
@@ -55,6 +56,16 @@ public class CustomFieldTemplateDataController {
         return new R<>(customFieldTemplateDataService.getVOByRepairThree(id));
     }
 
+    /**
+     * 通过id查询维修票证数据
+     * @param id 主键
+     * @return R
+     */
+    @GetMapping("/repair/ticket/{id}")
+    public R<RepairTicketTemplateData> getLongYanTicketById(@PathVariable("id") String id) {
+        return new R<>(customFieldTemplateDataService.getTicketById(id));
+    }
+
     /**
      * 通过id查询单条记录
      *

+ 4 - 5
platform-rest/src/main/java/com/platform/rest/controller/repair/RepairApplicationFormController.java

@@ -237,16 +237,15 @@ public class RepairApplicationFormController {
     }
 
     /**
-     * 维修人申请转派,自己搞不定了
+     * 工程师间的转派
      * @param repairFormDTO 维修单DTO
      * @return R
      */
     @SysLog("派工维修单")
-    @PutMapping("/personal/stop/{id}")
+    @PutMapping("/transfer")
     @PreAuthorize("@pms.hasPermission('repair-application-forms-transfer-apply')")
-    public R personalStop(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody RepairApplicationFormDTO repairFormDTO) {
-        repairFormDTO.setId(id);
-        RepairStrategyFactory.getStrategy().stopRepairByPerson(repairFormDTO);
+    public R transfer(@Validated({UpdateGroup.class}) @RequestBody RepairApplicationFormDTO repairFormDTO) {
+        RepairStrategyFactory.getStrategy().dispatchRepair(repairFormDTO);
         return new R<>();
     }
 

+ 8 - 0
platform-service/src/main/java/com/platform/service/customize/CustomFieldTemplateDataService.java

@@ -1,5 +1,6 @@
 package com.platform.service.customize;
 
+import com.platform.dao.dto.repair.RepairTicketTemplateData;
 import com.platform.dao.entity.customize.CustomFieldTemplate;
 import com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO;
 import com.platform.dao.dto.customize.CustomFieldTemplateDataDTO;
@@ -75,4 +76,11 @@ public interface CustomFieldTemplateDataService extends IBaseService<CustomField
      * @param record
      */
     void editDataRepairThree(CustomFieldTemplateDataDTO record);
+
+    /**
+     * 根据维修ID获取票证数据
+     * @param id
+     * @return
+     */
+    RepairTicketTemplateData getTicketById(String id);
 }

+ 48 - 4
platform-service/src/main/java/com/platform/service/customize/impl/CustomFieldTemplateDataServiceImpl.java

@@ -7,17 +7,18 @@ import com.platform.common.exception.DeniedException;
 import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
 import com.platform.dao.dto.customize.CustomFieldTemplateDataDTO;
-import com.platform.dao.dto.repair.RepairDispatchTemplateData;
-import com.platform.dao.dto.repair.RepairRecordTemplateData;
-import com.platform.dao.dto.repair.RepairStatusTemplateData;
-import com.platform.dao.dto.repair.RepairVerifyRecordTemplateData;
+import com.platform.dao.dto.repair.*;
 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.SysFile;
 import com.platform.dao.enums.CustomFieldTemplateDataStatusEnum;
 import com.platform.dao.enums.CustomFieldTemplateDataTypeEnum;
 import com.platform.dao.enums.SysFileTypeEnum;
 import com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper;
+import com.platform.dao.mapper.repair.RepairApplicationFormMapper;
 import com.platform.dao.mapper.sb.SbInfoMapper;
+import com.platform.dao.mapper.upms.SysUserMapper;
 import com.platform.dao.vo.query.customize.CustomFieldTemplateDataVO;
 import com.platform.service.base.impl.BaseServiceImpl;
 import com.platform.service.customize.BaseFormCheckService;
@@ -45,6 +46,8 @@ import java.util.List;
 public class CustomFieldTemplateDataServiceImpl extends BaseServiceImpl<CustomFieldTemplateDataMapper, CustomFieldTemplateData, CustomFieldTemplateDataDTO> implements CustomFieldTemplateDataService {
     private SbInfoMapper sbInfoMapper;
     private SysFileService sysFileService;
+    private RepairApplicationFormMapper repairApplicationFormMapper;
+    private SysUserMapper sysUserMapper;
 
     @Override
     public int batchDelete(List<String> ids) {
@@ -189,6 +192,9 @@ public class CustomFieldTemplateDataServiceImpl extends BaseServiceImpl<CustomFi
                     if (item.getType().equals(SysFileTypeEnum.REPAIR_CHECK_IMGS.getValue())) {
                         imageList.add(item);
                     }
+                    if (item.getType().equals(SysFileTypeEnum.REPAIR_CHECK_FILES.getValue())) {
+                        opinionFiles.add(item);
+                    }
                 });
                 break;
             case CommonConstants.REPAIR_RECORD:
@@ -230,6 +236,44 @@ public class CustomFieldTemplateDataServiceImpl extends BaseServiceImpl<CustomFi
         mapper.updateByPrimaryKeySelective(queryData);
     }
 
+    @Override
+    public RepairTicketTemplateData getTicketById(String objId) {
+        CustomFieldTemplateData queryData = new CustomFieldTemplateData();
+        queryData.setObjId(objId);
+        queryData.setRemark(CommonConstants.REPAIR_TICKET_RECORD);
+        CustomFieldTemplateData info = mapper.selectOne(queryData);
+        RepairTicketTemplateData data = null;
+        if (info == null){
+            // 没有记录,增加记录值
+            info = new CustomFieldTemplateData();
+            info.setRemark(CommonConstants.REPAIR_TICKET_RECORD);
+            info.setObjId(objId);
+            info.setId(IdGeneratorUtils.getObjectId());
+            info.setCreatedUserName(SecurityUtils.getUserInfo().getUsername());
+            info.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+            info.setCreatedTime(LocalDateTime.now());
+            RepairApplicationForm repairApplicationForm = repairApplicationFormMapper.selectById(objId);
+            SbInfo sbInfo = sbInfoMapper.selectByPrimaryKey(repairApplicationForm.getSbId());
+            data = new RepairTicketTemplateData();
+            data.setCaller(sysUserMapper.selectByPrimaryKey(repairApplicationForm.getUserId()).getRealName());
+            data.setCallTime(DateUtils.dateToString(repairApplicationForm.getApplyTime(),DateUtils.PATTERN_YMD));
+            data.setContent(repairApplicationForm.getContent());
+            if(StringUtils.isNotBlank(repairApplicationForm.getDispatchUserId())){
+                data.setDispatcher(sysUserMapper.selectByPrimaryKey(repairApplicationForm.getDispatchUserId()).getRealName());
+            }
+            data.setRepairMan(sysUserMapper.selectByPrimaryKey(repairApplicationForm.getRepairUserId()).getRealName());
+            data.setRepairNo(repairApplicationForm.getNo());
+            data.setSbLocation(repairApplicationForm.getSbCph());
+            data.setSbName(sbInfo.getName());
+            data.setSbNo(sbInfo.getNo());
+            info.setData(JsonUtils.objectToJson(data));
+            mapper.insert(info);
+        }else{
+            data = JsonUtils.jsonToModel(info.getData(),RepairTicketTemplateData.class);
+        }
+        return data;
+    }
+
     private void writeBackToRecord(AbstractPageResultBean<CustomFieldTemplateDataVO> pageInfos){
         for(CustomFieldTemplateDataVO vo : pageInfos.getRows()){
             RepairRecordTemplateData data = JsonUtils.jsonToModel(vo.getData(),RepairRecordTemplateData.class);

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

@@ -418,7 +418,11 @@ public class RepairApplicationFormServiceImpl extends BaseServiceImpl<RepairAppl
                     statusList.add(RepairApplicationFormStatusEnum.RECEIVED.getValue());
                     statusList.add(RepairApplicationFormStatusEnum.DISPATCH_REPAIR.getValue());
                 } else if(record.getSearchType() == 8){// 上报工单
-                    statusList.add(RepairApplicationFormStatusEnum.REPAIR_FAIL.getValue());
+                    if(roleArray.contains(SysRoleCodeEnum.MM.name())){
+                        statusList.add(RepairApplicationFormStatusEnum.MM_REPAIR_FAIL.getValue());
+                    }else{
+                        statusList.add(RepairApplicationFormStatusEnum.REPAIR_FAIL.getValue());
+                    }
                 }
                 // 超级管理员可以看到各个状态下的所有数据 相关领导,可以在这里进行设置
                 if(userInfo.getSuperAdmin() == 1){

+ 5 - 1
platform-service/src/main/java/com/platform/service/repair/strategy/AbstractRepairBaseStrategy.java

@@ -120,7 +120,10 @@ public abstract class AbstractRepairBaseStrategy implements RepairBaseStrategy{
         RepairApplicationForm applicationForm = repairApplicationFormMapper.selectById(id);
         if (!RepairApplicationFormStatusEnum.NOT_ALLOCATED.getValue().equals(applicationForm.getStatus()) &&
                 !RepairApplicationFormStatusEnum.REBACK.getValue().equals(applicationForm.getStatus()) &&
-                !RepairApplicationFormStatusEnum.REPAIR_FAIL.getValue().equals(applicationForm.getStatus())) {
+                !RepairApplicationFormStatusEnum.REPAIR_FAIL.getValue().equals(applicationForm.getStatus()) &&
+                !RepairApplicationFormStatusEnum.MM_DISPATCH.getValue().equals(applicationForm.getStatus()) &&
+                !RepairApplicationFormStatusEnum.RECEIVED.getValue().equals(applicationForm.getStatus()) &&
+                !RepairApplicationFormStatusEnum.DISPATCH_REPAIR.getValue().equals(applicationForm.getStatus())) {
             throw new BusinessException("该维修状态不允许接收任务");
         }
         SbInfo sbInfo = sbInfoService.getModelById(applicationForm.getSbId());
@@ -171,6 +174,7 @@ public abstract class AbstractRepairBaseStrategy implements RepairBaseStrategy{
         applicationForm.setStatus(RepairApplicationFormStatusEnum.NOT_ACCEPTANCE.getValue());
         applicationForm.setCheckStartTime(LocalDateTime.now());
         applicationForm.setUpdateTime(applicationForm.getCheckStartTime());
+        applicationForm.setRepairMinutes(DateUtils.getDurationHours(applicationForm.getRepairStartTime(), applicationForm.getUpdateTime()));
         repairApplicationFormMapper.updateByPrimaryKeySelective(applicationForm);
         return applicationForm;
     }

+ 20 - 5
platform-service/src/main/java/com/platform/service/repair/strategy/impl/LongYanRepairStrategy.java

@@ -67,9 +67,10 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
                 throw new DeniedException("您不具有报修报修权限,如需报修,请管理员配置权限!");
             }
         }
-        String repairDeptId = queryRepairDeptId(model);
+        //String repairDeptId = queryRepairDeptId(model);
+        String repairDeptId = model.getRepairDeptId();
         if(StringUtils.isBlank(repairDeptId)){
-            throw new DeniedException("您报修的设备和设备部位都未关联维修部门,请关联设置后进行报修!");
+            throw new DeniedException("送修部门不能为空!");
         }
         form.setRepairDeptId(repairDeptId); // 存储维修部门ID
         List<SysUserVO> sysUserVOList = getRepairMangers(repairDeptId,null,SysRoleCodeEnum.REPAIR_MANAGE.name());
@@ -261,6 +262,7 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
         customFieldTemplateDataMapper.insert(data);
         // 保存维修记录图片
         sysFileService.saveFile(data.getId(), SysFileTypeEnum.REPAIR_CHECK_IMGS.getValue(), form.getVerifyImages());
+        sysFileService.saveFile(data.getId(), SysFileTypeEnum.REPAIR_CHECK_FILES.getValue(), form.getVerifyFiles());
     }
 
     /**
@@ -435,21 +437,25 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
             }
             statusRemark = "维修上报";
             String leaderId = model.getReportLeaderId();
+            form.setRemarkTwo(model.getRemark());
             // 继续上报
             form.setStatus(RepairApplicationFormStatusEnum.REPAIR_FAIL.getValue());
             if(roles.contains(SysRoleCodeEnum.Maintenance_Leader.name())){
                 if(StringUtils.isBlank(model.getReportLeaderId())){
                     throw new DeniedException("上报对象不能为空");
                 }
+                form.setRepairUserId(null);
                 form.setDispatchUserId(model.getReportLeaderId());
             }else if(roles.contains(SysRoleCodeEnum.REPAIR_MANAGE.name())){
                 // 工程师上报
                 leaderId = existForm.getReportLeaderId();
+                form.setDispatchUserId(null);
+                form.setStatus(RepairApplicationFormStatusEnum.MM_REPAIR_FAIL.getValue());
             }
             // 上报通知
             sendMessageToReportLeader(existForm,BeanConverterUtil.copyObjectProperties(sysUserMapper.selectByPrimaryKey(leaderId),SysUserVO.class));
         }
-        repairApplicationFormMapper.updateByPrimaryKeySelective(form);
+        repairApplicationFormMapper.updateLongYan(form);
         // 添加状态记录
         addRepairStatusRecord(form,statusRemark);
         return model;
@@ -496,6 +502,16 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
      */
     @Override
     public RepairApplicationFormDTO dispatchRepair(RepairApplicationFormDTO model) {
+        // 完成维修和维修上报的状态才给转派
+        if(model.getStatus() != RepairApplicationFormStatusEnum.REPAIR_FAIL.getValue() &&
+        model.getStatus() != RepairApplicationFormStatusEnum.WAIT_SUBMIT.getValue()){
+            throw new DeniedException("该状态下不允许转派");
+        }
+        // 角色是否符合要求
+        String roles = getCurrentRoles();
+        if(!roles.contains(SysRoleCodeEnum.REPAIR_MANAGE.name())){
+            throw new DeniedException("不具备转派的权限");
+        }
         SysUser user = sysUserMapper.selectByPrimaryKey(model.getDispatchUserId());
         RepairApplicationForm form = repairApplicationFormMapper.selectByPrimaryKey(model.getId());
         model.setDispatchUserId(form.getDispatchUserId());
@@ -503,11 +519,10 @@ public class LongYanRepairStrategy extends AbstractRepairBaseStrategy {
         addRepairDispatchRecord(model,user);
         // 更新维修信息
         form.setDispatchUserId(user.getUserId());
-        form.setRepairUserName(null);
         form.setRepairUserId(null);
         form.setStatus(RepairApplicationFormStatusEnum.DISPATCH_REPAIR.getValue());
         form.setUpdateTime(LocalDateTime.now());
-        repairApplicationFormMapper.updateByPrimaryKey(form);
+        repairApplicationFormMapper.updateLongYan(form);
         // 添加状态记录
         addRepairStatusRecord(form,"维修转派");
         return model;