Browse Source

计量记录批量优化

guarantee-lsq 2 years ago
parent
commit
5b71f6db90

+ 12 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/BatchSbMeasureLog.java

@@ -0,0 +1,12 @@
+package com.platform.dao.dto.sb;
+
+import lombok.Data;
+
+import java.io.Serializable;
+import java.util.List;
+
+@Data
+public class BatchSbMeasureLog implements Serializable {
+
+    private List<SbMeasureLogDTO> sbMeasureLogDTOList;
+}

+ 11 - 0
platform-dao/src/main/java/com/platform/dao/dto/sb/SbMeasureLogDTO.java

@@ -211,4 +211,15 @@ public class SbMeasureLogDTO extends BaseDTO implements Serializable {
      * 批量检定/校准设备
      */
     private List<String> sbIds;
+
+    /**
+     * 所属父设备
+     */
+    private String sbParentId;
+
+    /**
+     * 设备所属位置
+     */
+    private String sbPositionId;
+
 }

+ 18 - 10
platform-rest/src/main/java/com/platform/rest/controller/sb/SbMeasureLogController.java

@@ -5,6 +5,7 @@ import com.platform.common.util.BeanConverterUtil;
 import com.platform.common.util.R;
 import com.platform.common.validation.group.AddGroup;
 import com.platform.common.validation.group.UpdateGroup;
+import com.platform.dao.dto.sb.BatchSbMeasureLog;
 import com.platform.dao.dto.sb.SbMeasureLogDTO;
 import com.platform.dao.entity.sb.SbMeasureLog;
 import com.platform.dao.util.ExcelUtil;
@@ -31,7 +32,7 @@ import java.util.List;
 @RequestMapping("/sb/measure-logs")
 public class SbMeasureLogController {
 
-  private final SbMeasureLogService checkStandardService;
+  private final SbMeasureLogService sbMeasureLogService;
 
     /**
      * 通过id查询标准
@@ -41,7 +42,7 @@ public class SbMeasureLogController {
      */
     @GetMapping("/{id}")
     public R<SbMeasureLog> getById(@PathVariable("id") String id){
-        return new R<>(checkStandardService.getModelById(id));
+        return new R<>(sbMeasureLogService.getModelById(id));
     }
 
   /**
@@ -53,13 +54,20 @@ public class SbMeasureLogController {
   @SysLog("新增设备计量记录")
   @PostMapping
   public R save(@Validated({AddGroup.class}) @RequestBody SbMeasureLogDTO checkStandardDTO) {
-      return new R<>(checkStandardService.saveModelByDTO(checkStandardDTO));
+      return new R<>(sbMeasureLogService.saveModelByDTO(checkStandardDTO));
   }
 
   @SysLog("批量新增设备计量记录")
   @PostMapping("/batch")
   public R saveBatch(@Validated({AddGroup.class}) @RequestBody SbMeasureLogDTO checkStandardDTO) {
-    checkStandardService.saveBatchByDTO(checkStandardDTO);
+    sbMeasureLogService.saveBatchByDTO(checkStandardDTO);
+    return new R<>();
+  }
+
+  @SysLog("批量新增设备计量记录")
+  @PostMapping("/longYan/batch")
+  public R saveLongYanBatch(@RequestBody BatchSbMeasureLog batchSbMeasureLog) {
+    sbMeasureLogService.saveBatchMeasureLog(batchSbMeasureLog);
     return new R<>();
   }
 
@@ -73,7 +81,7 @@ public class SbMeasureLogController {
   @PutMapping("/{id}")
   @PreAuthorize("@pms.hasPermission('measure-log-edit')")
   public R update(@PathVariable("id") String id, @Validated({UpdateGroup.class}) @RequestBody SbMeasureLogDTO checkStandardDTO) {
-      checkStandardService.modModelByDTO(checkStandardDTO);
+    sbMeasureLogService.modModelByDTO(checkStandardDTO);
       return new R<>();
   }
 
@@ -86,7 +94,7 @@ public class SbMeasureLogController {
   @SysLog("删除设备计量记录")
   @DeleteMapping("/{id}")
   public R removeById(@PathVariable String id){
-    checkStandardService.deleteByPrimaryKey(id);
+    sbMeasureLogService.deleteByPrimaryKey(id);
     return new R<>();
   }
 
@@ -99,7 +107,7 @@ public class SbMeasureLogController {
     @SysLog("批量删除设备计量记录")
     @DeleteMapping("")
     public R removeIds(@RequestBody List<String> ids){
-        checkStandardService.batchDelete(ids);
+      sbMeasureLogService.batchDelete(ids);
         return new R<>();
     }
 
@@ -113,7 +121,7 @@ public class SbMeasureLogController {
    */
   @GetMapping("/page")
   public R<AbstractPageResultBean<SbMeasureLog>> query(SbMeasureLogDTO checkStandardDTO, @RequestParam(defaultValue = "1") int pageNum, @RequestParam(defaultValue = "20") int pageSize) {
-      return new R<>(checkStandardService.selectPageInfo(checkStandardDTO, pageNum, pageSize));
+      return new R<>(sbMeasureLogService.selectPageInfo(checkStandardDTO, pageNum, pageSize));
   }
 
   /**
@@ -124,7 +132,7 @@ public class SbMeasureLogController {
    */
   @GetMapping("")
   public R query(SbMeasureLogDTO checkStandardDTO) {
-      return new R<>(checkStandardService.selectList(checkStandardDTO));
+      return new R<>(sbMeasureLogService.selectList(checkStandardDTO));
   }
 
   /**
@@ -137,7 +145,7 @@ public class SbMeasureLogController {
   @SysLog("计量设备检定记录导出")
   @PreAuthorize("@pms.hasPermission('measure-log-export') or @pms.hasPermission('check-polling-standards-export')")
   public void export(HttpServletResponse response, SbMeasureLogDTO checkStandardDTO) {
-    List<SbMeasureLogVO> list = checkStandardService.selectList(checkStandardDTO);
+    List<SbMeasureLogVO> list = sbMeasureLogService.selectList(checkStandardDTO);
     ExcelUtil.exportResponseDict(response, ExportSbMeasureLogVO.class, BeanConverterUtil.copyListProperties(list, ExportSbMeasureLogVO.class), "计量设备检定记录");
   }
 

+ 2 - 0
platform-service/src/main/java/com/platform/service/check/CheckStandardService.java

@@ -4,6 +4,7 @@ import com.platform.common.bean.AbstractPageResultBean;
 import com.platform.dao.bean.MyVOPage;
 import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
+import com.platform.dao.dto.sb.BatchSbMeasureLog;
 import com.platform.dao.dto.sb.SbInfoDTO;
 import com.platform.dao.entity.check.CheckStandard;
 import com.platform.dao.entity.sqarepartmanage.SparePartInfo;
@@ -70,4 +71,5 @@ public interface CheckStandardService extends IBaseService<CheckStandard, CheckS
      * @return :
      */
     AbstractPageResultBean<CheckStandardSpareVO> selectSpareWarnVOPage(int month, int type, int pageNum, int pageSize);
+
 }

+ 6 - 0
platform-service/src/main/java/com/platform/service/sb/SbMeasureLogService.java

@@ -2,6 +2,7 @@ package com.platform.service.sb;
 
 import com.platform.dao.dto.check.CheckJobDTO;
 import com.platform.dao.dto.check.CheckStandardDTO;
+import com.platform.dao.dto.sb.BatchSbMeasureLog;
 import com.platform.dao.dto.sb.SbMeasureLogDTO;
 import com.platform.dao.entity.check.CheckStandard;
 import com.platform.dao.entity.sb.SbMeasureLog;
@@ -45,4 +46,9 @@ public interface SbMeasureLogService extends IBaseService<SbMeasureLog, SbMeasur
     void saveBatchByDTO(SbMeasureLogDTO record);
 
     List<MeasureLogReportVO> getMonthReport(SbMeasureLogDTO dto, Integer year, LocalDate startMonth, LocalDate endMonth);
+    /**
+     * 批量填入计量校准记录
+     * @param batchSbMeasureLog
+     */
+    void saveBatchMeasureLog(BatchSbMeasureLog batchSbMeasureLog);
 }

+ 70 - 6
platform-service/src/main/java/com/platform/service/sb/impl/SbMeasureLogServiceImpl.java

@@ -2,27 +2,32 @@ package com.platform.service.sb.impl;
 
 import com.github.pagehelper.PageHelper;
 import com.platform.common.bean.AbstractPageResultBean;
+import com.platform.common.constant.CommonConstants;
 import com.platform.common.exception.BusinessException;
 import com.platform.common.exception.DeniedException;
-import com.platform.common.util.BigDecimalUtil;
-import com.platform.common.util.DateUtils;
-import com.platform.common.util.ListUtils;
-import com.platform.common.util.StringUtils;
+import com.platform.common.util.*;
 import com.platform.dao.bean.MyPage;
+import com.platform.dao.dto.activiti.SbAllocateFormActiviti;
 import com.platform.dao.dto.check.CheckJobDTO;
+import com.platform.dao.dto.sb.BatchSbMeasureLog;
 import com.platform.dao.dto.sb.SbMeasureLogDTO;
 import com.platform.dao.entity.check.CheckProjectStandardRelation;
+import com.platform.dao.entity.customize.CustomFieldTemplate;
+import com.platform.dao.entity.customize.CustomFieldTemplateData;
 import com.platform.dao.entity.sb.SbInfo;
 import com.platform.dao.entity.sb.SbMeasureLog;
 import com.platform.dao.entity.upms.SysFile;
 import com.platform.dao.enums.*;
+import com.platform.dao.mapper.customize.CustomFieldTemplateDataMapper;
 import com.platform.dao.mapper.sb.SbInfoMapper;
 import com.platform.dao.mapper.sb.SbMeasureLogMapper;
+import com.platform.dao.mapper.sb.SbPositionMapper;
 import com.platform.dao.vo.query.check.CheckJobVO;
 import com.platform.dao.vo.query.sb.SbMeasureLogVO;
 import com.platform.dao.vo.report.CheckJobReportVO;
 import com.platform.dao.vo.report.MeasureLogReportVO;
 import com.platform.service.base.impl.BaseServiceImpl;
+import com.platform.service.repair.strategy.impl.AllocateRepairBaseStrategy;
 import com.platform.service.sb.SbMeasureLogService;
 import com.platform.service.upms.SysFileService;
 import lombok.AllArgsConstructor;
@@ -47,6 +52,8 @@ import java.util.Map;
 public class SbMeasureLogServiceImpl extends BaseServiceImpl<SbMeasureLogMapper, SbMeasureLog, SbMeasureLogDTO> implements SbMeasureLogService {
     private SbInfoMapper sbInfoMapper;
     private final SysFileService sysFileService;
+    private final SbPositionMapper sbPositionMapper;
+    private final CustomFieldTemplateDataMapper customFieldTemplateDataMapper;
     @Override
     public boolean cascadingDeleteByKey(String id) {
         int result = mapper.deleteByPrimaryKey(id);
@@ -133,6 +140,7 @@ public class SbMeasureLogServiceImpl extends BaseServiceImpl<SbMeasureLogMapper,
     @Transactional(rollbackFor = Exception.class)
     @Override
     public SbMeasureLog saveModelByDTO(SbMeasureLogDTO model) {
+        model.setCheckUserId(SecurityUtils.getUserInfo().getUserId()); // 谁操作即是检定记录人
         SbMeasureLog sbMeasureLog = super.saveModelByDTO(model);
         model.setId(sbMeasureLog.getId());
         // 更新设备下次检定日期
@@ -145,7 +153,7 @@ public class SbMeasureLogServiceImpl extends BaseServiceImpl<SbMeasureLogMapper,
             throw new BusinessException("非计量和非特种的设备, 无需填报检定记录");
         }
         sbInfo.setCheckDate(model.getLastDate());
-        Integer checkPeriod = 12;// 默认12个月
+        Integer checkPeriod = 0;// 默认12个月
         if(sbInfo.getCheckPeriod() != null){
             checkPeriod = sbInfo.getCheckPeriod();
         }else{
@@ -157,12 +165,35 @@ public class SbMeasureLogServiceImpl extends BaseServiceImpl<SbMeasureLogMapper,
         sbInfo.setRemark(model.getRemark());// 备注
         sbInfo.setDph(model.getRequirement());// 检定人
         sbInfo.setMeasureStatus(YesNoEnum.NO.getValue());// 每次检定后, 检定状态改为正常
+        sbInfo.setCheckPeriod(model.getCheckPeriod()); // 检定周期
         // sbInfo.setStatus(model.getSbStatus());// 每次检定后,状态变更也要更新
+        // 设备位置变动
+        StringBuilder remark = new StringBuilder();
+        boolean insertAllocate = Boolean.FALSE;
+        String oldPositionId = getPureString(sbInfo.getPositionId());
+        String oldParentId = getPureString(sbInfo.getParentId());
+        String positionId = getPureString(model.getSbPositionId());
+        String parentId = getPureString(model.getSbParentId());
+        if(!oldPositionId.equals(positionId)){
+            insertAllocate = Boolean.TRUE;
+            sbInfo.setPositionId(positionId);
+            remark.append("设备位置变动【" + sbPositionMapper.selectNameById(oldPositionId)).append("】-》");
+            remark.append("【" + sbPositionMapper.selectNameById(positionId) + "】\n");
+        }
+        if(!oldParentId.equals(parentId)){
+            insertAllocate = Boolean.TRUE;
+            sbInfo.setParentId(parentId);
+            remark.append("父设备变动【" + sbInfo.getName()).append("】-》");
+            remark.append("【" + sbInfoMapper.selectNameById(parentId) + "】\n");
+        }
         sbInfoMapper.updateByPrimaryKey(sbInfo);
-
         // 保存文件
         sysFileService.saveFile(model.getId(), SysFileTypeEnum.Sb_MEASURE_IMGS.getValue(), model.getCheckImgList());
         sysFileService.saveFile(model.getId(), SysFileTypeEnum.Sb_MEASURE_FILES.getValue(), model.getCheckFileList());
+        // 写入调拨记录
+        if(insertAllocate){
+            handleSbInfoAllocate(remark.toString(),model,sbInfo.getName());
+        }
         // 保存参数
        /* List<CheckStandardParamDTO> paramList = model.getParamList();
         paramList.forEach(item -> {
@@ -172,6 +203,30 @@ public class SbMeasureLogServiceImpl extends BaseServiceImpl<SbMeasureLogMapper,
         return sbMeasureLog;
     }
 
+    private String getPureString(String info){
+        return StringUtils.isBlank(info) ? "" : info;
+    }
+
+    void handleSbInfoAllocate(String remark,SbMeasureLogDTO model,String sbName){
+        CustomFieldTemplateData data = new CustomFieldTemplateData();
+        data.setId(IdGeneratorUtils.getObjectId());
+        data.setCreatedTime(LocalDateTime.now());
+        data.setCreatedUserName(SecurityUtils.getUserInfo().getUsername());
+        data.setCreatedUserId(SecurityUtils.getUserInfo().getUserId());
+        data.setObjId(model.getSbId());
+        data.setRemark(CommonConstants.SB_ALLOCATE_FORM);
+        data.setStatus(CustomFieldTemplateDataStatusEnum.SUCCESS.getValue());
+        data.setType(CustomFieldTemplateDataTypeEnum.ACTIVITY_FORM.getValue());
+        // 封装具体data
+        SbAllocateFormActiviti allocate = new SbAllocateFormActiviti();
+        allocate.setStartTime(LocalDateTime.now());
+        allocate.setEndTime(LocalDateTime.now());
+        allocate.setRemark(remark);
+        allocate.setTitle("计量记录【"+sbName+"】");
+        data.setData(JsonUtils.objectToJson(allocate));
+        customFieldTemplateDataMapper.insert(data);
+    }
+
     @Transactional(rollbackFor = Exception.class)
     @Override
     public void modModelByDTO(SbMeasureLogDTO model) {
@@ -308,4 +363,13 @@ public class SbMeasureLogServiceImpl extends BaseServiceImpl<SbMeasureLogMapper,
         }
         return result;
     }
+
+    @Override
+    public void saveBatchMeasureLog(BatchSbMeasureLog batchSbMeasureLog) {
+        if(batchSbMeasureLog.getSbMeasureLogDTOList() != null && batchSbMeasureLog.getSbMeasureLogDTOList().size() > 0){
+            batchSbMeasureLog.getSbMeasureLogDTOList().forEach(item -> {
+                this.saveModelByDTO(item);
+            });
+        }
+    }
 }