fix:修复设备及模具维修问题

main
HuangHuiKang 23 hours ago
parent a8c94f0148
commit eec264a453

@ -19,4 +19,13 @@ public interface MoldRepairAcceptanceHistoryMapper extends BaseMapperX<MoldRepai
.orderByDesc(MoldRepairAcceptanceHistoryDO::getId)); .orderByDesc(MoldRepairAcceptanceHistoryDO::getId));
} }
default MoldRepairAcceptanceHistoryDO selectLatestByRepairIdAndStatus(Long repairId, Integer status) {
return selectOne(new LambdaQueryWrapperX<MoldRepairAcceptanceHistoryDO>()
.eq(MoldRepairAcceptanceHistoryDO::getRepairId, repairId)
.eq(MoldRepairAcceptanceHistoryDO::getStatus, status)
.orderByDesc(MoldRepairAcceptanceHistoryDO::getCreateTime)
.orderByDesc(MoldRepairAcceptanceHistoryDO::getId)
.last("LIMIT 1"));
}
} }

@ -17,4 +17,13 @@ public interface DvRepairAcceptanceHistoryMapper extends BaseMapperX<DvRepairAcc
.orderByDesc(DvRepairAcceptanceHistoryDO::getId)); .orderByDesc(DvRepairAcceptanceHistoryDO::getId));
} }
default DvRepairAcceptanceHistoryDO selectLatestByRepairIdAndStatus(Long repairId, Integer status) {
return selectOne(new LambdaQueryWrapperX<DvRepairAcceptanceHistoryDO>()
.eq(DvRepairAcceptanceHistoryDO::getRepairId, repairId)
.eq(DvRepairAcceptanceHistoryDO::getStatus, status)
.orderByDesc(DvRepairAcceptanceHistoryDO::getCreateTime)
.orderByDesc(DvRepairAcceptanceHistoryDO::getId)
.last("LIMIT 1"));
}
} }

@ -331,6 +331,7 @@ public class DvRepairServiceImpl implements DvRepairService {
} }
@Override @Override
@Transactional(rollbackFor = Exception.class)
public void updateDvRepairStatus(DvRepirUpdateReqVO updateReqVO) { public void updateDvRepairStatus(DvRepirUpdateReqVO updateReqVO) {
DvRepairDO dvRepairDO = dvRepairMapper.selectById(updateReqVO.getId()); DvRepairDO dvRepairDO = dvRepairMapper.selectById(updateReqVO.getId());
@ -358,6 +359,9 @@ public class DvRepairServiceImpl implements DvRepairService {
} }
dvRepairDO.setStatus(updateReqVO.getStatus() != null ? updateReqVO.getStatus() : RepairStatusEnum.PENDING_ACCEPTANCE.getCode()); dvRepairDO.setStatus(updateReqVO.getStatus() != null ? updateReqVO.getStatus() : RepairStatusEnum.PENDING_ACCEPTANCE.getCode());
dvRepairMapper.updateById(dvRepairDO); dvRepairMapper.updateById(dvRepairDO);
if (RepairStatusEnum.PENDING_ACCEPTANCE.getCode().equals(dvRepairDO.getStatus())) {
savePendingAcceptanceHistory(dvRepairDO);
}
// batchUpdateTicketResults(updateReqVO.getUpdateReqVOList()); // batchUpdateTicketResults(updateReqVO.getUpdateReqVOList());
} }
@ -372,7 +376,7 @@ public class DvRepairServiceImpl implements DvRepairService {
} }
applyAcceptance(dvRepairDO, acceptanceReqVO); applyAcceptance(dvRepairDO, acceptanceReqVO);
dvRepairMapper.updateById(dvRepairDO); dvRepairMapper.updateById(dvRepairDO);
createAcceptanceHistory(dvRepairDO); updateAcceptanceHistory(dvRepairDO);
} }
@Override @Override
@ -396,7 +400,7 @@ public class DvRepairServiceImpl implements DvRepairService {
dvRepairDO.setRejectBy(String.valueOf(loginUserId)); dvRepairDO.setRejectBy(String.valueOf(loginUserId));
} }
dvRepairMapper.updateById(dvRepairDO); dvRepairMapper.updateById(dvRepairDO);
createAcceptanceHistory(dvRepairDO); updateAcceptanceHistory(dvRepairDO);
} }
private void validateAcceptanceStatus(Integer status) { private void validateAcceptanceStatus(Integer status) {
@ -423,22 +427,69 @@ public class DvRepairServiceImpl implements DvRepairService {
dvRepairDO.setConfirmDate(LocalDateTime.now()); dvRepairDO.setConfirmDate(LocalDateTime.now());
} }
private void savePendingAcceptanceHistory(DvRepairDO dvRepairDO) {
DvRepairAcceptanceHistoryDO historyDO = dvRepairAcceptanceHistoryMapper.selectLatestByRepairIdAndStatus(
dvRepairDO.getId(), RepairStatusEnum.PENDING_ACCEPTANCE.getCode());
if (historyDO == null) {
historyDO = new DvRepairAcceptanceHistoryDO();
historyDO.setRepairId(dvRepairDO.getId());
fillAcceptanceHistoryRepairSnapshot(historyDO, dvRepairDO);
historyDO.setStatus(RepairStatusEnum.PENDING_ACCEPTANCE.getCode());
dvRepairAcceptanceHistoryMapper.insert(historyDO);
return;
}
fillAcceptanceHistoryRepairSnapshot(historyDO, dvRepairDO);
historyDO.setStatus(RepairStatusEnum.PENDING_ACCEPTANCE.getCode());
historyDO.setConfirmBy(null);
historyDO.setConfirmDate(null);
historyDO.setRejectReason(null);
dvRepairAcceptanceHistoryMapper.updateById(historyDO);
}
private void updateAcceptanceHistory(DvRepairDO dvRepairDO) {
DvRepairAcceptanceHistoryDO historyDO = getLatestPendingOrLastAcceptanceHistory(dvRepairDO.getId());
if (historyDO == null) {
createAcceptanceHistory(dvRepairDO);
return;
}
fillAcceptanceHistoryRepairSnapshot(historyDO, dvRepairDO);
historyDO.setConfirmDate(dvRepairDO.getConfirmDate());
historyDO.setConfirmBy(dvRepairDO.getConfirmBy());
historyDO.setStatus(dvRepairDO.getStatus());
historyDO.setRejectReason(dvRepairDO.getRejectReason());
dvRepairAcceptanceHistoryMapper.updateById(historyDO);
}
private DvRepairAcceptanceHistoryDO getLatestPendingOrLastAcceptanceHistory(Long repairId) {
DvRepairAcceptanceHistoryDO historyDO = dvRepairAcceptanceHistoryMapper.selectLatestByRepairIdAndStatus(
repairId, RepairStatusEnum.PENDING_ACCEPTANCE.getCode());
if (historyDO != null) {
return historyDO;
}
List<DvRepairAcceptanceHistoryDO> historyList = dvRepairAcceptanceHistoryMapper.selectListByRepairId(repairId);
return CollectionUtils.isEmpty(historyList) ? null : historyList.get(0);
}
private void createAcceptanceHistory(DvRepairDO dvRepairDO) { private void createAcceptanceHistory(DvRepairDO dvRepairDO) {
DvRepairAcceptanceHistoryDO historyDO = new DvRepairAcceptanceHistoryDO(); DvRepairAcceptanceHistoryDO historyDO = new DvRepairAcceptanceHistoryDO();
historyDO.setRepairId(dvRepairDO.getId()); historyDO.setRepairId(dvRepairDO.getId());
historyDO.setRepairResult(dvRepairDO.getRepairStatus()); fillAcceptanceHistoryRepairSnapshot(historyDO, dvRepairDO);
historyDO.setFinishDate(dvRepairDO.getFinishDate());
historyDO.setConfirmDate(dvRepairDO.getConfirmDate()); historyDO.setConfirmDate(dvRepairDO.getConfirmDate());
historyDO.setConfirmBy(dvRepairDO.getConfirmBy()); historyDO.setConfirmBy(dvRepairDO.getConfirmBy());
historyDO.setStatus(dvRepairDO.getStatus()); historyDO.setStatus(dvRepairDO.getStatus());
historyDO.setRejectReason(dvRepairDO.getRejectReason()); historyDO.setRejectReason(dvRepairDO.getRejectReason());
dvRepairAcceptanceHistoryMapper.insert(historyDO);
}
private void fillAcceptanceHistoryRepairSnapshot(DvRepairAcceptanceHistoryDO historyDO, DvRepairDO dvRepairDO) {
historyDO.setRepairResult(dvRepairDO.getRepairStatus());
historyDO.setFinishDate(dvRepairDO.getFinishDate());
historyDO.setDowntimeDuration(dvRepairDO.getDowntimeDuration()); historyDO.setDowntimeDuration(dvRepairDO.getDowntimeDuration());
historyDO.setFaultReason(dvRepairDO.getFaultReason()); historyDO.setFaultReason(dvRepairDO.getFaultReason());
historyDO.setHandlingMeasures(dvRepairDO.getHandlingMeasures()); historyDO.setHandlingMeasures(dvRepairDO.getHandlingMeasures());
historyDO.setReplacementParts(dvRepairDO.getReplacementParts()); historyDO.setReplacementParts(dvRepairDO.getReplacementParts());
historyDO.setRepairContent(dvRepairDO.getRepairContent()); historyDO.setRepairContent(dvRepairDO.getRepairContent());
historyDO.setRepairedImages(dvRepairDO.getRepairedImages()); historyDO.setRepairedImages(dvRepairDO.getRepairedImages());
dvRepairAcceptanceHistoryMapper.insert(historyDO);
} }
@Override @Override
@ -634,6 +685,7 @@ public class DvRepairServiceImpl implements DvRepairService {
dvRepairDO.setRepairStatus(JobResultEnum.PASS.getCode()); dvRepairDO.setRepairStatus(JobResultEnum.PASS.getCode());
} }
dvRepairMapper.updateById(dvRepairDO); dvRepairMapper.updateById(dvRepairDO);
savePendingAcceptanceHistory(dvRepairDO);
} }

@ -151,6 +151,10 @@ public class MoldRepairServiceImpl implements MoldRepairService {
// 更新 // 更新
MoldRepairDO updateObj = BeanUtils.toBean(updateReqVO, MoldRepairDO.class); MoldRepairDO updateObj = BeanUtils.toBean(updateReqVO, MoldRepairDO.class);
moldRepairMapper.updateById(updateObj); moldRepairMapper.updateById(updateObj);
MoldRepairDO updatedMoldRepair = moldRepairMapper.selectById(updateReqVO.getId());
if (updatedMoldRepair != null && MoldRecordStatusEnum.PENDING_ACCEPTANCE.getCode().equals(updatedMoldRepair.getStatus())) {
savePendingAcceptanceHistory(updatedMoldRepair);
}
Long moldId = updateReqVO.getMoldId() != null ? updateReqVO.getMoldId() : oldMoldRepair.getMoldId(); Long moldId = updateReqVO.getMoldId() != null ? updateReqVO.getMoldId() : oldMoldRepair.getMoldId();
updateMoldBrandStatusByRepairResult(moldId, updateReqVO.getRepairStatus()); updateMoldBrandStatusByRepairResult(moldId, updateReqVO.getRepairStatus());
@ -353,7 +357,7 @@ public class MoldRepairServiceImpl implements MoldRepairService {
} }
applyAcceptance(moldRepairDO, acceptanceReqVO); applyAcceptance(moldRepairDO, acceptanceReqVO);
moldRepairMapper.updateById(moldRepairDO); moldRepairMapper.updateById(moldRepairDO);
createAcceptanceHistory(moldRepairDO); updateAcceptanceHistory(moldRepairDO);
updateMoldBrandStatusByRepairResult(moldRepairDO.getMoldId(), moldRepairDO.getRepairResult()); updateMoldBrandStatusByRepairResult(moldRepairDO.getMoldId(), moldRepairDO.getRepairResult());
} }
@ -386,7 +390,7 @@ public class MoldRepairServiceImpl implements MoldRepairService {
moldRepairDO.setRejectBy(String.valueOf(loginUserId)); moldRepairDO.setRejectBy(String.valueOf(loginUserId));
} }
moldRepairMapper.updateById(moldRepairDO); moldRepairMapper.updateById(moldRepairDO);
createAcceptanceHistory(moldRepairDO); updateAcceptanceHistory(moldRepairDO);
} }
private void validateAcceptanceStatus(Integer status) { private void validateAcceptanceStatus(Integer status) {
@ -413,22 +417,69 @@ public class MoldRepairServiceImpl implements MoldRepairService {
moldRepairDO.setConfirmDate(LocalDateTime.now()); moldRepairDO.setConfirmDate(LocalDateTime.now());
} }
private void savePendingAcceptanceHistory(MoldRepairDO moldRepairDO) {
MoldRepairAcceptanceHistoryDO historyDO = moldRepairAcceptanceHistoryMapper.selectLatestByRepairIdAndStatus(
moldRepairDO.getId(), MoldRecordStatusEnum.PENDING_ACCEPTANCE.getCode());
if (historyDO == null) {
historyDO = new MoldRepairAcceptanceHistoryDO();
historyDO.setRepairId(moldRepairDO.getId());
fillAcceptanceHistoryRepairSnapshot(historyDO, moldRepairDO);
historyDO.setStatus(MoldRecordStatusEnum.PENDING_ACCEPTANCE.getCode());
moldRepairAcceptanceHistoryMapper.insert(historyDO);
return;
}
fillAcceptanceHistoryRepairSnapshot(historyDO, moldRepairDO);
historyDO.setStatus(MoldRecordStatusEnum.PENDING_ACCEPTANCE.getCode());
historyDO.setConfirmBy(null);
historyDO.setConfirmDate(null);
historyDO.setRejectReason(null);
moldRepairAcceptanceHistoryMapper.updateById(historyDO);
}
private void updateAcceptanceHistory(MoldRepairDO moldRepairDO) {
MoldRepairAcceptanceHistoryDO historyDO = getLatestPendingOrLastAcceptanceHistory(moldRepairDO.getId());
if (historyDO == null) {
createAcceptanceHistory(moldRepairDO);
return;
}
fillAcceptanceHistoryRepairSnapshot(historyDO, moldRepairDO);
historyDO.setConfirmDate(moldRepairDO.getConfirmDate());
historyDO.setConfirmBy(moldRepairDO.getConfirmBy());
historyDO.setStatus(moldRepairDO.getStatus());
historyDO.setRejectReason(moldRepairDO.getRejectReason());
moldRepairAcceptanceHistoryMapper.updateById(historyDO);
}
private MoldRepairAcceptanceHistoryDO getLatestPendingOrLastAcceptanceHistory(Long repairId) {
MoldRepairAcceptanceHistoryDO historyDO = moldRepairAcceptanceHistoryMapper.selectLatestByRepairIdAndStatus(
repairId, MoldRecordStatusEnum.PENDING_ACCEPTANCE.getCode());
if (historyDO != null) {
return historyDO;
}
List<MoldRepairAcceptanceHistoryDO> historyList = moldRepairAcceptanceHistoryMapper.selectListByRepairId(repairId);
return com.baomidou.mybatisplus.core.toolkit.CollectionUtils.isEmpty(historyList) ? null : historyList.get(0);
}
private void createAcceptanceHistory(MoldRepairDO moldRepairDO) { private void createAcceptanceHistory(MoldRepairDO moldRepairDO) {
MoldRepairAcceptanceHistoryDO historyDO = new MoldRepairAcceptanceHistoryDO(); MoldRepairAcceptanceHistoryDO historyDO = new MoldRepairAcceptanceHistoryDO();
historyDO.setRepairId(moldRepairDO.getId()); historyDO.setRepairId(moldRepairDO.getId());
historyDO.setRepairResult(moldRepairDO.getRepairStatus()); fillAcceptanceHistoryRepairSnapshot(historyDO, moldRepairDO);
historyDO.setFinishDate(moldRepairDO.getFinishDate());
historyDO.setConfirmDate(moldRepairDO.getConfirmDate()); historyDO.setConfirmDate(moldRepairDO.getConfirmDate());
historyDO.setConfirmBy(moldRepairDO.getConfirmBy()); historyDO.setConfirmBy(moldRepairDO.getConfirmBy());
historyDO.setStatus(moldRepairDO.getStatus()); historyDO.setStatus(moldRepairDO.getStatus());
historyDO.setRejectReason(moldRepairDO.getRejectReason()); historyDO.setRejectReason(moldRepairDO.getRejectReason());
moldRepairAcceptanceHistoryMapper.insert(historyDO);
}
private void fillAcceptanceHistoryRepairSnapshot(MoldRepairAcceptanceHistoryDO historyDO, MoldRepairDO moldRepairDO) {
historyDO.setRepairResult(moldRepairDO.getRepairStatus());
historyDO.setFinishDate(moldRepairDO.getFinishDate());
historyDO.setShutdownDuration(moldRepairDO.getShutdownDuration()); historyDO.setShutdownDuration(moldRepairDO.getShutdownDuration());
historyDO.setFaultReason(moldRepairDO.getFaultReason()); historyDO.setFaultReason(moldRepairDO.getFaultReason());
historyDO.setTreatmentMeasures(moldRepairDO.getTreatmentMeasures()); historyDO.setTreatmentMeasures(moldRepairDO.getTreatmentMeasures());
historyDO.setReplacementParts(moldRepairDO.getReplacementParts()); historyDO.setReplacementParts(moldRepairDO.getReplacementParts());
historyDO.setRepairSummary(moldRepairDO.getRepairSummary()); historyDO.setRepairSummary(moldRepairDO.getRepairSummary());
historyDO.setRepairedImages(moldRepairDO.getRepairedImages()); historyDO.setRepairedImages(moldRepairDO.getRepairedImages());
moldRepairAcceptanceHistoryMapper.insert(historyDO);
} }
@Override @Override
@ -587,6 +638,7 @@ public class MoldRepairServiceImpl implements MoldRepairService {
updateMoldBrandStatus(moldRepairDO.getMoldId(), MoldBrandStatusEnum.STANDBY.getStatus()); updateMoldBrandStatus(moldRepairDO.getMoldId(), MoldBrandStatusEnum.STANDBY.getStatus());
} }
moldRepairMapper.updateById(moldRepairDO); moldRepairMapper.updateById(moldRepairDO);
savePendingAcceptanceHistory(moldRepairDO);
} }

Loading…
Cancel
Save