维修管理优化 报废附件上传
This commit is contained in:
parent
4eaca91a80
commit
1585841ab1
|
|
@ -5,6 +5,7 @@ import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
import com.bonus.common.core.web.domain.BaseEntity;
|
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
|
* @author xsheng
|
||||||
* @date 2024-09-26
|
* @date 2024-09-26
|
||||||
*/
|
*/
|
||||||
|
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
@ToString
|
@ToString
|
||||||
public class BmFileInfo extends BaseEntity
|
@Accessors(chain = true)
|
||||||
{
|
public class BmFileInfo extends BaseEntity {
|
||||||
|
|
||||||
private static final long serialVersionUID = 1L;
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
/** 主键id */
|
/** 主键id */
|
||||||
|
|
|
||||||
|
|
@ -1,7 +1,10 @@
|
||||||
package com.bonus.material.repair.domain;
|
package com.bonus.material.repair.domain;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
import com.bonus.common.core.annotation.Excel;
|
import com.bonus.common.core.annotation.Excel;
|
||||||
|
import com.bonus.material.basic.domain.BmFileInfo;
|
||||||
import io.swagger.annotations.ApiModelProperty;
|
import io.swagger.annotations.ApiModelProperty;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.ToString;
|
import lombok.ToString;
|
||||||
|
|
@ -83,6 +86,10 @@ public class RepairPartDetails extends BaseEntity {
|
||||||
@Excel(name = "损坏原因类型", readConverterExp = "0=:自然损坏,1人为损坏")
|
@Excel(name = "损坏原因类型", readConverterExp = "0=:自然损坏,1人为损坏")
|
||||||
private String scrapType;
|
private String scrapType;
|
||||||
|
|
||||||
|
/** 附件集合 */
|
||||||
|
@ApiModelProperty(value = "附件集合")
|
||||||
|
private List<BmFileInfo> fileList;
|
||||||
|
|
||||||
/** 维修人员 */
|
/** 维修人员 */
|
||||||
@ApiModelProperty(value = "维修人")
|
@ApiModelProperty(value = "维修人")
|
||||||
private String repairer;
|
private String repairer;
|
||||||
|
|
|
||||||
|
|
@ -7,6 +7,8 @@ import com.bonus.common.biz.enums.TmTaskTypeEnum;
|
||||||
import com.bonus.common.core.exception.ServiceException;
|
import com.bonus.common.core.exception.ServiceException;
|
||||||
import com.bonus.common.core.web.domain.AjaxResult;
|
import com.bonus.common.core.web.domain.AjaxResult;
|
||||||
import com.bonus.common.security.utils.SecurityUtils;
|
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.*;
|
||||||
import com.bonus.material.repair.domain.vo.RepairDeviceListVo;
|
import com.bonus.material.repair.domain.vo.RepairDeviceListVo;
|
||||||
import com.bonus.material.repair.domain.vo.RepairDeviceVO;
|
import com.bonus.material.repair.domain.vo.RepairDeviceVO;
|
||||||
|
|
@ -37,6 +39,9 @@ public class RepairServiceImpl implements RepairService {
|
||||||
@Resource
|
@Resource
|
||||||
private TmTaskMapper taskMapper;
|
private TmTaskMapper taskMapper;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private BmFileInfoMapper bmFileInfoMapper;
|
||||||
|
|
||||||
// 1:内部维修 2:外部返厂维修 3:报废
|
// 1:内部维修 2:外部返厂维修 3:报废
|
||||||
private final int inRepairType = 1, outRepairType = 2, scrapRepairType = 3;
|
private final int inRepairType = 1, outRepairType = 2, scrapRepairType = 3;
|
||||||
|
|
||||||
|
|
@ -291,7 +296,7 @@ public class RepairServiceImpl implements RepairService {
|
||||||
}
|
}
|
||||||
case scrapRepairType: {
|
case scrapRepairType: {
|
||||||
// 报废无需上传配件、直接初始化空集合
|
// 报废无需上传配件、直接初始化空集合
|
||||||
partList = new ArrayList<>(0);
|
partList = bean.getCodeScrapRepairPartList();
|
||||||
// 更新报废数量
|
// 更新报废数量
|
||||||
repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid());
|
repairMapper.updateScrapNum(bean.getId(), 1, loginUser.getUserid());
|
||||||
break;
|
break;
|
||||||
|
|
@ -343,15 +348,12 @@ public class RepairServiceImpl implements RepairService {
|
||||||
// 判断外部维修配件数量是否为空
|
// 判断外部维修配件数量是否为空
|
||||||
if (partList.get(0).getRepairNum() != null && partList.get(0).getRepairNum() != 0) {
|
if (partList.get(0).getRepairNum() != null && partList.get(0).getRepairNum() != 0) {
|
||||||
|
|
||||||
// ---------------校验维修数量-----------------
|
|
||||||
// 统计已维修数量 + 本次维修数量
|
// 统计已维修数量 + 本次维修数量
|
||||||
int repairNum = OptionalInt.of(details.getRepairedNum()).orElse(0) + partList.get(0).getRepairNum();
|
int repairNum = OptionalInt.of(details.getRepairedNum()).orElse(0) + partList.get(0).getRepairNum();
|
||||||
// 统计报废数量 + 维修合计数量
|
// 统计报废数量 + 维修合计数量
|
||||||
int num = repairNum + details.getScrapNum();
|
if ((repairNum + OptionalInt.of(details.getScrapNum()).orElse(0)) > details.getRepairNum()) {
|
||||||
if (num > details.getRepairNum()) {
|
|
||||||
throw new ServiceException("维修数量大于维修总量");
|
throw new ServiceException("维修数量大于维修总量");
|
||||||
}
|
}
|
||||||
// ---------------校验维修数量-----------------
|
|
||||||
|
|
||||||
// 更新维修数量、维修人员不变
|
// 更新维修数量、维修人员不变
|
||||||
repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid());
|
repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid());
|
||||||
|
|
@ -398,18 +400,42 @@ public class RepairServiceImpl implements RepairService {
|
||||||
// 更新报废数量
|
// 更新报废数量
|
||||||
repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid());
|
repairMapper.updateScrapNum(bean.getId(), scrapNum, loginUser.getUserid());
|
||||||
|
|
||||||
// 报废类型无需配件,所以配件为空,添加【维修记录表】
|
if (CollectionUtil.isNotEmpty(partList.get(0).getFileList())) {
|
||||||
// 维修记录表信息
|
for (BmFileInfo fileInfo : partList.get(0).getFileList()) {
|
||||||
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
|
fileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_REPAIR.getTaskTypeId())
|
||||||
repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId())
|
.setTaskId(bean.getTaskId()).setModelId(bean.getId())
|
||||||
.setRepairType(scrapRepairType).setStatus(0L).setIsSlt(0L).setPartNum(0)
|
.setCreateBy(loginUser.getUsername());
|
||||||
.setRepairNum(0).setScrapNum(bean.getNumberScrapRepairPartList().get(0).getScrapNum())
|
bmFileInfoMapper.insertBmFileInfo(fileInfo);
|
||||||
.setScrapReason(bean.getNumberScrapRepairPartList().get(0).getScrapReason())
|
|
||||||
.setScrapType(bean.getNumberScrapRepairPartList().get(0).getScrapType())
|
// 报废类型无需配件,所以配件为空,添加【维修记录表】
|
||||||
.setRepairer(loginUser.getUsername()).setCreateBy(loginUser.getUsername());
|
// 维修记录表信息
|
||||||
|
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 {
|
} else {
|
||||||
|
|
@ -446,12 +472,13 @@ public class RepairServiceImpl implements RepairService {
|
||||||
*/
|
*/
|
||||||
private void copeNumberManageInList(RepairDeviceVO bean, List<RepairPartDetails> partList, LoginUser loginUser, Integer manageType) {
|
private void copeNumberManageInList(RepairDeviceVO bean, List<RepairPartDetails> partList, LoginUser loginUser, Integer manageType) {
|
||||||
if (CollectionUtil.isNotEmpty(partList)) {
|
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);
|
bean.setRepairType(inRepairType);
|
||||||
}
|
}
|
||||||
|
|
||||||
// 再检查还是null的话直接结束任务
|
// 再检查还是null的话直接结束任务
|
||||||
if (bean.getRepairType() == null) {
|
if (bean.getRepairType() == null) {
|
||||||
return;
|
return;
|
||||||
|
|
@ -507,13 +534,13 @@ public class RepairServiceImpl implements RepairService {
|
||||||
|
|
||||||
// 外部维修
|
// 外部维修
|
||||||
if (bean.getRepairType() == outRepairType) {
|
if (bean.getRepairType() == outRepairType) {
|
||||||
partList = bean.getNumberOutRepairPartList();
|
|
||||||
|
|
||||||
// ---------------校验维修数量-----------------
|
// ---------------校验维修数量-----------------
|
||||||
// 统计已维修数量 + 本次维修数量
|
// 统计已维修数量 + 本次维修数量
|
||||||
int repairNum = OptionalInt.of(bean.getRepairedNum()).orElse(0) + bean.getRepairNum();
|
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());
|
repairMapper.updateRepairedNumTwo(bean.getId(), repairNum, loginUser.getUserid());
|
||||||
|
|
@ -527,9 +554,8 @@ public class RepairServiceImpl implements RepairService {
|
||||||
|
|
||||||
if (partList.get(0).getSupplierId() == null) {
|
if (partList.get(0).getSupplierId() == null) {
|
||||||
throw new ServiceException("请选择返厂厂家");
|
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)));
|
repairApplyRecord.setPartPrice(Optional.ofNullable(partList.get(0).getPartPrice()).orElse(new BigDecimal(0)));
|
||||||
// 新增【维修记录表】
|
// 新增【维修记录表】
|
||||||
repairMapper.addRecord(repairApplyRecord);
|
repairMapper.addRecord(repairApplyRecord);
|
||||||
|
|
@ -542,13 +568,37 @@ public class RepairServiceImpl implements RepairService {
|
||||||
repairMapper.addRepairCost(repairApplyRecord, sfCosts, sfCosts.equals(new BigDecimal("0")) ? "0" : "1");
|
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 {
|
} else {
|
||||||
// 配件为空,添加【维修记录表】
|
// 配件为空,添加【维修记录表】
|
||||||
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
|
RepairApplyRecord repairApplyRecord = new RepairApplyRecord();
|
||||||
repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId())
|
repairApplyRecord.setTaskId(bean.getTaskId()).setMaId(bean.getMaId()).setTypeId(bean.getTypeId())
|
||||||
.setRepairType(bean.getRepairType()).setStatus(0L)
|
.setRepairType(bean.getRepairType()).setStatus(0L)
|
||||||
.setRepairNum(bean.getRepairType() != scrapRepairType ? 1 : 0)
|
.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);
|
repairMapper.addRecord(repairApplyRecord);
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue