维修管理优化 报废附件上传

This commit is contained in:
syruan 2024-11-19 14:21:18 +08:00
parent 4eaca91a80
commit 1585841ab1
3 changed files with 86 additions and 29 deletions

View File

@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
import com.bonus.common.core.web.domain.BaseEntity;
import lombok.experimental.Accessors;
/**
* 附件
@ -13,12 +14,11 @@ import com.bonus.common.core.web.domain.BaseEntity;
* @author xsheng
* @date 2024-09-26
*/
@Data
@ToString
public class BmFileInfo extends BaseEntity
{
@Accessors(chain = true)
public class BmFileInfo extends BaseEntity {
private static final long serialVersionUID = 1L;
/** 主键id */

View File

@ -1,7 +1,10 @@
package com.bonus.material.repair.domain;
import java.math.BigDecimal;
import java.util.List;
import com.bonus.common.core.annotation.Excel;
import com.bonus.material.basic.domain.BmFileInfo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.ToString;
@ -83,6 +86,10 @@ public class RepairPartDetails extends BaseEntity {
@Excel(name = "损坏原因类型", readConverterExp = "0=自然损坏1人为损坏")
private String scrapType;
/** 附件集合 */
@ApiModelProperty(value = "附件集合")
private List<BmFileInfo> fileList;
/** 维修人员 */
@ApiModelProperty(value = "维修人")
private String repairer;

View File

@ -7,6 +7,8 @@ import com.bonus.common.biz.enums.TmTaskTypeEnum;
import com.bonus.common.core.exception.ServiceException;
import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.basic.domain.BmFileInfo;
import com.bonus.material.basic.mapper.BmFileInfoMapper;
import com.bonus.material.repair.domain.*;
import com.bonus.material.repair.domain.vo.RepairDeviceListVo;
import com.bonus.material.repair.domain.vo.RepairDeviceVO;
@ -37,6 +39,9 @@ public class RepairServiceImpl implements RepairService {
@Resource
private TmTaskMapper taskMapper;
@Resource
private BmFileInfoMapper bmFileInfoMapper;
// 1:内部维修 2:外部返厂维修 3:报废
private final int inRepairType = 1, outRepairType = 2, scrapRepairType = 3;
@ -291,7 +296,7 @@ public class RepairServiceImpl implements RepairService {
}
case scrapRepairType: {
// 报废无需上传配件直接初始化空集合
partList = new ArrayList<>(0);
partList = bean.getCodeScrapRepairPartList();
// 更新报废数量
repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid());
break;
@ -343,15 +348,12 @@ public class RepairServiceImpl implements RepairService {
// 判断外部维修配件数量是否为空
if (partList.get(0).getRepairNum() != null && partList.get(0).getRepairNum() != 0) {
// ---------------校验维修数量-----------------
// 统计已维修数量 + 本次维修数量
int repairNum = OptionalInt.of(details.getRepairedNum()).orElse(0) + partList.get(0).getRepairNum();
// 统计报废数量 + 维修合计数量
int num = repairNum + details.getScrapNum();
if (num > details.getRepairNum()) {
if ((repairNum + OptionalInt.of(details.getScrapNum()).orElse(0)) > details.getRepairNum()) {
throw new ServiceException("维修数量大于维修总量");
}
// ---------------校验维修数量-----------------
// 更新维修数量维修人员不变
repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid());
@ -398,18 +400,42 @@ public class RepairServiceImpl implements RepairService {
// 更新报废数量
repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid());
// 报废类型无需配件所以配件为空添加维修记录表
// 维修记录表信息
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId())
.setRepairType(scrapRepairType).setStatus(0L).setIsSlt(0L).setPartNum(0)
.setRepairNum(0).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum())
.setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason())
.setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType())
.setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername());
if (CollectionUtil.isNotEmpty(partList.get(0).getFileList())) {
for (BmFileInfo fileInfo : partList.get(0).getFileList()) {
fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId())
.setTaskId(bean.getTaskId()).setModelId(bean.getId())
.setCreateBy(loginUser.getUsername());
bmFileInfoMapper.insertBmFileInfo(fileInfo);
// 报废类型无需配件所以配件为空添加维修记录表
// 维修记录表信息
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId())
.setRepairType(scrapRepairType).setStatus(0L).setIsSlt(0L).setPartNum(0)
.setFileIds(fileInfo.getId() == null ? "" : String.valueOf(fileInfo.getId()))
.setRepairNum(0).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum())
.setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason())
.setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType())
.setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername());
// 因报废操作无需配件, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
} else {
// 报废类型无需配件所以配件为空添加维修记录表
// 维修记录表信息
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId())
.setRepairType(scrapRepairType).setStatus(0L).setIsSlt(0L).setPartNum(0)
.setRepairNum(0).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum())
.setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason())
.setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType())
.setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername());
// 因报废操作无需配件, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
}
} else {
@ -446,12 +472,13 @@ public class RepairServiceImpl implements RepairService {
*/
private void copeNumberManageInList(RepairDeviceVO bean, List<RepairPartDetails> partList, LoginUser loginUser, Integer manageType) {
if (CollectionUtil.isNotEmpty(partList)) {
if (bean.getManageType() == null) {
throw new ServiceException("请选择物资管理方式");
}
// 如果是数量管理那么默认为内部维修
if (bean.getRepairType() == null && bean.getManageType() != null && manageType == manageTypeByNumber) {
if (bean.getRepairType() == null && manageType == manageTypeByNumber) {
bean.setRepairType(inRepairType);
}
// 再检查还是null的话直接结束任务
if (bean.getRepairType() == null) {
return;
@ -507,13 +534,13 @@ public class RepairServiceImpl implements RepairService {
// 外部维修
if (bean.getRepairType() == outRepairType) {
partList = bean.getNumberOutRepairPartList();
// ---------------校验维修数量-----------------
// 统计已维修数量 + 本次维修数量
int repairNum = OptionalInt.of(bean.getRepairedNum()).orElse(0) + bean.getRepairNum();
// 统计报废数量 + 维修合计数量 不能 大与> 总的待维修量
if (repairNum + OptionalInt.of(bean.getScrapNum()).orElse(0) > bean.getRepairNum()) {throw new ServiceException("维修数量大于维修总量");}
if (repairNum + OptionalInt.of(bean.getScrapNum()).orElse(0) > bean.getRepairNum()) {
throw new ServiceException("维修数量大于维修总量");
}
// 更新维修数量维修人员不变
repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid());
@ -527,9 +554,8 @@ public class RepairServiceImpl implements RepairService {
if (partList.get(0).getSupplierId() == null) {
throw new ServiceException("请选择返厂厂家");
} else {
repairApplyRecord.setSupplierId(partList.get(0).getSupplierId());
}
repairApplyRecord.setSupplierId(partList.get(0).getSupplierId());
repairApplyRecord.setPartPrice(Optional.ofNullable(partList.get(0).getPartPrice()).orElse(new BigDecimal(0)));
// 新增维修记录表
repairMapper.addRecord(repairApplyRecord);
@ -542,13 +568,37 @@ public class RepairServiceImpl implements RepairService {
repairMapper.addRepairCost(repairApplyRecord, sfCosts, sfCosts.equals(new BigDecimal("0")) ? "0" : "1");
}
// 如果是报废类型进行上传附件相关处理
if (scrapRepairType == bean.getRepairType()) {
if (CollectionUtil.isNotEmpty(partList.get(0).getFileList())) {
for (BmFileInfo fileInfo : partList.get(0).getFileList()) {
fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId())
.setTaskId(bean.getTaskId()).setModelId(bean.getId())
.setCreateBy(loginUser.getUsername());
bmFileInfoMapper.insertBmFileInfo(fileInfo);
// 配件为空添加维修记录表
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId())
.setRepairType(bean.getRepairType()).setStatus(0L).setFileIds(String.valueOf(fileInfo.getId()))
.setRepairNum(bean.getRepairType() != scrapRepairType ? 1 : 0)
.setScrapNum(bean.getRepairType() == scrapRepairType ? 1 : 0)
.setCreateBy(loginUser.getUsername());
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);
}
}
}
} else {
// 配件为空添加维修记录表
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId())
.setRepairType(bean.getRepairType()).setStatus(0L)
.setRepairNum(bean.getRepairType() != scrapRepairType ? 1 : 0)
.setScrapNum(bean.getRepairType() == scrapRepairType ? 1 : 0).setCreateBy(loginUser.getUsername());
.setScrapNum(bean.getRepairType() == scrapRepairType ? 1 : 0)
.setCreateBy(loginUser.getUsername());
// 不选维修配件时, 只添加维修记录表
repairMapper.addRecord(repairApplyRecord);