维修数量增加限制

This commit is contained in:
hayu 2025-10-22 18:54:45 +08:00
parent a26d40d9ea
commit 55435560c3
3 changed files with 52 additions and 0 deletions

View File

@ -443,4 +443,11 @@ public interface RepairMapper {
List<RepairProjectInfo> getRepairProjectList(RepairProjectInfo bean);
List<PartDetails> getPartUsingList(PartDetails bean);
/**
* 根据任务id查询待修数量
* @param bean
* @return
*/
RepairDeviceVO getRepairNumByTaskId(RepairDeviceVO bean);
}

View File

@ -684,6 +684,43 @@ public class RepairServiceImpl implements RepairService {
continue;
}
//校验本次维修数量不能大于待维修数量
if (bean.getTaskId() != null && bean.getTypeId() != null) {
// 查询该任务待维修数量
RepairDeviceVO repairDeviceVO = repairMapper.getRepairNumByTaskId(bean);
BigDecimal thisRepairNum = BigDecimal.ZERO;
// 计算本次维修数量
if (bean.getNumberInRepairPartList().size() > 0) {
if (null != bean.getNumberInRepairPartList().get(0).getRepairNum() && 0 < bean.getNumberInRepairPartList().get(0).getRepairNum().compareTo(BigDecimal.ZERO)) {
thisRepairNum = thisRepairNum.add(bean.getNumberInRepairPartList().get(0).getRepairNum());
}
}
if (bean.getNumberOutRepairPartList().size() > 0) {
if (null != bean.getNumberOutRepairPartList().get(0).getRepairNum() && 0 < bean.getNumberOutRepairPartList().get(0).getRepairNum().compareTo(BigDecimal.ZERO)) {
thisRepairNum = thisRepairNum.add(bean.getNumberOutRepairPartList().get(0).getRepairNum());
}
}
if (bean.getNumberScrapRepairPartList().size() > 0) {
if (null != bean.getNumberScrapRepairPartList().get(0).getScrapNum() && 0 < bean.getNumberScrapRepairPartList().get(0).getScrapNum().compareTo(BigDecimal.ZERO)) {
thisRepairNum = thisRepairNum.add(bean.getNumberScrapRepairPartList().get(0).getScrapNum());
}
}
// 比较 repairHomeInfo.getRepairNum() thisRepairNum 的值
if (repairDeviceVO != null && repairDeviceVO.getRepairNum() != null) {
int comparisonResult = thisRepairNum.compareTo(repairDeviceVO.getRepairNum());
if (comparisonResult > 0) {
// thisRepairNum 大于 repairHomeInfo.getRepairNum()
return AjaxResult.success("维修已完成");
}
} else {
// repairHomeInfo repairHomeInfo.getRepairNum() null 的处理
throw new ServiceException("此维修记录不存在,请检查后提交");
}
}
// 更新维修人员信息
if (!CollectionUtils.isEmpty(bean.getRepairList())) {
RepairPartDetails repairPartDetails = bean.getRepairList().get(0);

View File

@ -1591,4 +1591,12 @@
</if>
order by rpd.create_time desc
</select>
<select id="getRepairNumByTaskId" resultType="com.bonus.material.repair.domain.vo.RepairDeviceVO">
SELECT rad.id,
rad.repair_num - (rad.repaired_num + rad.scrap_num) as repairNum
FROM repair_apply_details rad
WHERE rad.task_id = #{taskId}
and rad.type_id = #{typeId}
and rad.is_ds = '0'
</select>
</mapper>