|
@@ -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);
|
|
|
+ });
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|