维修管理--数量维修完善

This commit is contained in:
syruan 2024-11-18 14:51:19 +08:00
parent 4821406f98
commit 7a381a0de4
1 changed files with 119 additions and 96 deletions

View File

@ -46,6 +46,7 @@ public class RepairServiceImpl implements RepairService {
// 维修管理方式--编码 // 维修管理方式--编码
private final int manageTypeByCode = 0; private final int manageTypeByCode = 0;
// 维修管理方式--数量
private final int manageTypeByNumber = 1; private final int manageTypeByNumber = 1;
@ -126,7 +127,7 @@ public class RepairServiceImpl implements RepairService {
case inRepairType: { case inRepairType: {
int repairNum = getNum(bean, details); int repairNum = getNum(bean, details);
// 更新维修数量并修改维修人员 // 更新维修数量并修改维修人员
repairMapper.updateRepairedNum(bean.getId(), repairNum, Long.valueOf(bean.getRepairer()), loginUser.getUserid()); repairMapper.updateRepairedNum(bean.getId(), repairNum, loginUser.getUserid(), loginUser.getUserid());
break; break;
} }
case outRepairType: { case outRepairType: {
@ -292,7 +293,7 @@ public class RepairServiceImpl implements RepairService {
case inRepairType: { case inRepairType: {
partList = bean.getCodeInRepairPartList(); partList = bean.getCodeInRepairPartList();
// 更新维修数量并修改维修人员 // 更新维修数量并修改维修人员
repairMapper.updateRepairedNum(bean.getId(), 1, Long.valueOf(bean.getRepairer()), loginUser.getUserid()); repairMapper.updateRepairedNum(bean.getId(), 1, loginUser.getUserid(), loginUser.getUserid());
break; break;
} }
case outRepairType: { case outRepairType: {
@ -312,6 +313,86 @@ public class RepairServiceImpl implements RepairService {
break; break;
} }
// 处理配件集合数据
copeNumberManageInList(bean, partList, loginUser);
} else if (Objects.equals(manageTypeByNumber, bean.getManageType())) {
// 物资管理方式--数量管理
if (bean.getId() == null) {
throw new ServiceException("请完善参数维修详情ID为空!");
}
// 获取维修详情表中的维修详情记录待维修已维修已报废的数量
RepairTaskDetails details = repairMapper.getById(bean.getId());
if (details == null) {
throw new ServiceException("此维修记录不存在,请检查后提交!");
}
if (CollectionUtil.isNotEmpty(bean.getNumberInRepairPartList())) {
partList = bean.getNumberInRepairPartList();
// ---------------校验维修数量-----------------
// 统计已维修数量 + 本次维修数量
int repairNum = details.getRepairedNum() + bean.getRepairNum();
// 统计报废数量 + 维修合计数量
int num = repairNum + details.getScrapNum();
if (num > details.getRepairNum()) {
throw new ServiceException("维修数量大于维修总量");
}
// ---------------校验维修数量-----------------
// 更新维修数量并修改维修人员
repairMapper.updateRepairedNum(bean.getId(), repairNum, loginUser.getUserid(), loginUser.getUserid());
copeNumberManageInList(bean, partList, loginUser);
}
if (CollectionUtil.isNotEmpty(bean.getNumberOutRepairPartList())) {
partList = bean.getNumberOutRepairPartList();
// ---------------校验维修数量-----------------
// 统计已维修数量 + 本次维修数量
int repairNum = details.getRepairedNum() + bean.getRepairNum();
// 统计报废数量 + 维修合计数量
int num = repairNum + details.getScrapNum();
if (num > details.getRepairNum()) {
throw new ServiceException("维修数量大于维修总量");
}
// ---------------校验维修数量-----------------
// 更新维修数量维修人员不变
repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid());
}
if (CollectionUtil.isNotEmpty(bean.getNumberScrapRepairPartList())) {
partList = bean.getNumberScrapRepairPartList();
// -------------校验维修数量开始----------------
// 统计历史已报废数量 + 本次报废数量 = 报废总数
int scrapNum = details.getScrapNum() + bean.getScrapNum();
// 统计 报废总数 + 历史已维修数量,
int num = scrapNum + details.getRepairedNum();
// 不能大与总的待维修数量
if (num > details.getRepairNum()) {
throw new ServiceException("报废数量大于维修总量! 本次报废数量:" + bean.getScrapNum() + ",已报废数量:" + details.getScrapNum() + ",维修总量:" + details.getRepairNum());
}
// -------------校验维修数量结束----------------
// 更新报废数量
repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid());
}
} else {
throw new ServiceException("请选择维修类型");
}
}
return AjaxResult.success("维修完成");
}
private void copeNumberManageInList(RepairDeviceVO bean, List<RepairPartDetails> partList, LoginUser loginUser) {
// 处理配件集合数据 // 处理配件集合数据
if (CollectionUtil.isNotEmpty(partList)) { if (CollectionUtil.isNotEmpty(partList)) {
// 遍历配件列表判断配件类型收费还是不收费 // 遍历配件列表判断配件类型收费还是不收费
@ -373,64 +454,6 @@ public class RepairServiceImpl implements RepairService {
// 不选维修配件时, 只添加维修记录表 // 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord); repairMapper.addRecord(repairApplyRecord);
} }
} else if (Objects.equals(manageTypeByNumber, bean.getManageType())) {
// 物资管理方式--数量管理
if (bean.getId() == null) {
throw new ServiceException("请完善参数维修详情ID为空!");
}
// 获取维修详情表中的维修详情记录待维修已维修报废的数量
RepairTaskDetails details = repairMapper.getById(bean.getId());
if (details == null) {
throw new ServiceException("此维修记录不存在,请检查!");
}
// 根据维修方式更新维修数量报废数量
switch (bean.getRepairType()) {
case inRepairType: {
partList = bean.getCodeInRepairPartList();
// 更新维修数量并修改维修人员
repairMapper.updateRepairedNum(bean.getId(), 1, Long.valueOf(bean.getRepairer()), loginUser.getUserid());
break;
}
case outRepairType: {
partList = bean.getCodeOutRepairPartList();
// 更新维修数量维修人员不变
repairMapper.updateRepairedNumTwo(bean.getId(), 1, loginUser.getUserid());
break;
}
case scrapRepairType: {
partList = bean.getCodeScrapRepairPartList();
// -------------校验维修数量----------------
// 统计历史已报废数量 + 本次报废数量 = 报废总数
int scrapNum = details.getScrapNum() + bean.getScrapNum();
// 统计 报废总数 + 历史已维修数量,
int num = scrapNum + details.getRepairedNum();
// 不能大与总的待维修数量
if (num > details.getRepairNum()) {
throw new ServiceException("报废数量大于维修总量! 本次报废数量:" + bean.getScrapNum() + ",已报废数量:" + details.getScrapNum() + ",维修总量:" + details.getRepairNum());
}
// 更新报废数量
repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid());
break;
}
default:
System.err.println("请输入正确的维修类型:" + bean.getRepairType());
break;
}
} else {
throw new ServiceException("请选择维修类型");
}
}
return AjaxResult.success("维修完成");
} }
@Override @Override