From 02a24dfeb555446a0c0c9ed05ac584e7c7ddd236 Mon Sep 17 00:00:00 2001 From: mashuai Date: Mon, 31 Mar 2025 19:13:39 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E8=AF=95=E6=9F=A5=E8=AF=A2=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E8=B0=83=E8=AF=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/BackApplyInfoController.java | 58 ++++- .../material/back/domain/BackApplyInfo.java | 2 + .../back/domain/vo/BackApplyInfoVo.java | 60 ++++++ .../material/back/domain/vo/BackApplyVo.java | 88 ++++++++ .../back/mapper/BackApplyInfoMapper.java | 20 +- .../back/service/IBackApplyInfoService.java | 19 +- .../impl/BackApplyInfoServiceImpl.java | 200 +++++++++++++++--- .../basic/domain/report/ScrapInfo.java | 46 +++- .../service/impl/BmReportServiceImpl.java | 32 ++- .../material/back/BackApplyInfoMapper.xml | 133 +++++++++++- .../mapper/material/basic/BmReportMapper.xml | 70 +++--- 11 files changed, 651 insertions(+), 77 deletions(-) create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackApplyInfoVo.java create mode 100644 bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackApplyVo.java diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/controller/BackApplyInfoController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/controller/BackApplyInfoController.java index a4f8960f..793994ce 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/controller/BackApplyInfoController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/controller/BackApplyInfoController.java @@ -1,5 +1,6 @@ package com.bonus.material.back.controller; +import java.util.ArrayList; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; @@ -12,7 +13,9 @@ import com.bonus.common.log.enums.OperaType; import com.bonus.material.back.domain.BackApplyDetails; import com.bonus.material.back.domain.MaCode; import com.bonus.material.back.domain.vo.BackAppRequestVo; +import com.bonus.material.back.domain.vo.BackApplyInfoVo; import com.bonus.material.back.domain.vo.BackApplyRequestVo; +import com.bonus.material.back.domain.vo.BackApplyVo; import com.bonus.material.common.annotation.PreventRepeatSubmit; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -25,7 +28,6 @@ import com.bonus.material.back.service.IBackApplyInfoService; import com.bonus.common.core.web.controller.BaseController; import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.utils.poi.ExcelUtil; -import com.bonus.common.core.web.page.TableDataInfo; /** * 退料任务Controller @@ -54,6 +56,58 @@ public class BackApplyInfoController extends BaseController { return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list)); } + /** + * 查询修试查询-退料查询列表 + * @param dto + * @return + */ + @ApiOperation(value = "查询修试查询-退料查询列表") + @GetMapping("/selectBackApplyList") + public AjaxResult selectBackApplyList(BackApplyVo dto) { + Integer pageIndex = Convert.toInt(ServletUtils.getParameter("pageNum"), 1); + Integer pageSize = Convert.toInt(ServletUtils.getParameter("pageSize"), 10); + List list = backApplyInfoService.selectBackApplyList(dto); + return AjaxResult.success(ListPagingUtil.paging(pageIndex, pageSize, list)); + } + + /** + * 导出退料查询列表 + * @param response + * @param dto + */ + @PostMapping("/exportBackApplyList") + public void exportBackApplyList(HttpServletResponse response, BackApplyVo dto) { + List list = backApplyInfoService.selectBackApplyList(dto); + ExcelUtil util = new ExcelUtil(BackApplyVo.class); + util.exportExcel(response, list, "退料查询数据"); + } + + /** + * 查询修试查询-退料查询二级列表 + * @param dto + * @return + */ + @ApiOperation(value = "查询修试查询-退料查询二级列表") + @GetMapping("/selectSecondList") + public AjaxResult selectSecondList(BackApplyInfoVo dto) { + BackApplyInfoVo list = backApplyInfoService.selectSecondList(dto); + return AjaxResult.success(list); + } + + /** + * 导出修试查询-退料查询二级列表 + * @param response + * @param dto + */ + @PostMapping("/exportSecondList") + public void exportSecondList(HttpServletResponse response, BackApplyInfoVo dto) { + List list = new ArrayList<>(); + BackApplyInfoVo vo = backApplyInfoService.selectSecondList(dto); + list.add(vo); + ExcelUtil util = new ExcelUtil(BackApplyInfoVo.class); + util.exportExcel(response, list, "退料查询数据"); + } + /** * 根据单位和工程id查询领料机具 * @param dto @@ -100,7 +154,7 @@ public class BackApplyInfoController extends BaseController { @GetMapping(value = "/{id}") public AjaxResult getInfo(@PathVariable("id") Long id, @RequestParam(value = "keyWord", required = false) String keyWord) { - return success(backApplyInfoService.selectBackApplyInfoById(id, keyWord)); + return backApplyInfoService.selectBackApplyInfoById(id, keyWord); } /** diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/BackApplyInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/BackApplyInfo.java index 307fa2f4..41b0d41b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/BackApplyInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/BackApplyInfo.java @@ -172,4 +172,6 @@ public class BackApplyInfo implements Serializable { @ApiModelProperty(value = "app退料任务状态,0 未审核 1已审核(包含通过和驳回)") private Integer appTaskStatus; + + private String maStatus; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackApplyInfoVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackApplyInfoVo.java new file mode 100644 index 00000000..e8a133c3 --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackApplyInfoVo.java @@ -0,0 +1,60 @@ +package com.bonus.material.back.domain.vo; + +import com.bonus.common.biz.domain.BmFileInfo; +import com.bonus.common.core.annotation.Excel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +import java.math.BigDecimal; +import java.util.List; + +/** + * 退料查询二级页面 + * @Author ma_sh + * @create 2025/3/31 18:15 + */ +@Data +public class BackApplyInfoVo { + + @ApiModelProperty(value="主键id") + private Long id; + + @ApiModelProperty(value="退料id") + private Long backId; + + @ApiModelProperty(value="关键字") + private String keyWord; + + @ApiModelProperty(value="类型id") + private Long typeId; + + @ApiModelProperty(value="机具id") + private Long maId; + + @ApiModelProperty(value = "机具名称") + @Excel(name = "机具名称") + private String typeName; + + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号") + private String typeModelName; + + @ApiModelProperty(value = "退料数量") + @Excel(name = "退料数量") + private BigDecimal backNum; + + @ApiModelProperty(value = "合格数量") + @Excel(name = "合格数量") + private BigDecimal passNum; + + @ApiModelProperty(value = "不合格数量") + @Excel(name = "不合格数量") + private BigDecimal unPassNum; + + @ApiModelProperty(value = "不合格原因") + @Excel(name = "不合格原因") + private String unPassReason; + + @ApiModelProperty(value = "不合格图片") + private List fileInfoList; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackApplyVo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackApplyVo.java new file mode 100644 index 00000000..f86d3c1d --- /dev/null +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/domain/vo/BackApplyVo.java @@ -0,0 +1,88 @@ +package com.bonus.material.back.domain.vo; + +import com.bonus.common.core.annotation.Excel; +import com.fasterxml.jackson.annotation.JsonFormat; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; +import java.math.BigDecimal; +import java.util.Date; + +/** + * 修试查询-退料查询 + * @Author ma_sh + * @create 2025/3/31 15:13 + */ +@Data +public class BackApplyVo { + + /** ID */ + private Long id; + + @ApiModelProperty(value = "协议号") + @Excel(name = "协议号") + private String agreementCode; + + @ApiModelProperty(value="工程id") + private Long proId; + + @ApiModelProperty(value="工程名称") + @Excel(name = "工程名称") + private String backProName; + + @ApiModelProperty(value = "单位id") + private Long unitId; + + @ApiModelProperty(value = "单位名称") + @Excel(name = "退料单位") + private String backUnitName; + + @ApiModelProperty(value = "类型名称") + @Excel(name = "类型名称") + private String typeName; + + @ApiModelProperty(value = "规格型号") + @Excel(name = "规格型号") + private String typeModelName; + + @ApiModelProperty(value = "计量单位") + @Excel(name = "计量单位") + private String unitName; + + @ApiModelProperty(value = "退料单号") + @Excel(name = "退料单号") + private String backCode; + + @ApiModelProperty(value = "维修单号") + @Excel(name = "维修单号") + private String repairCode; + + @ApiModelProperty(value = "设备编码") + @Excel(name = "设备编码") + private String maCode; + + @ApiModelProperty(value = "退料数量") + @Excel(name = "退料数量") + private BigDecimal backNum; + + @ApiModelProperty(value = "退料人员") + @Excel(name = "退料人员") + private String backPerson; + + @ApiModelProperty(value = "退料时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") + @Excel(name = "退料时间", dateFormat = "yyyy-MM-dd HH:mm:ss", width = 30) + private Date backTime; + + @ApiModelProperty(value="开始时间") + private String startTime; + + @ApiModelProperty(value="结束时间") + private String endTime; + + @ApiModelProperty(value="关键字") + private String keyWord; + + private Long typeId; + + private Long maId; +} diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java index 247dfade..85bd99cf 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java @@ -3,10 +3,11 @@ package com.bonus.material.back.mapper; import java.util.Date; import java.util.List; -import com.bonus.common.biz.domain.lease.LeaseApplyInfo; import com.bonus.material.back.domain.BackApplyDetails; import com.bonus.material.back.domain.BackApplyInfo; import com.bonus.material.back.domain.MaCodeDto; +import com.bonus.material.back.domain.vo.BackApplyInfoVo; +import com.bonus.material.back.domain.vo.BackApplyVo; import com.bonus.material.back.domain.vo.MaCodeVo; import com.bonus.material.settlement.domain.SltAgreementInfo; import org.apache.ibatis.annotations.Param; @@ -340,4 +341,21 @@ public interface BackApplyInfoMapper { * @return */ BackApplyInfo selectSignByTaskId(Long taskId); + + /** + * 根据任务id查询协议id + * @param backApplyInfo + * @return + */ + Long selectAgreementId(BackApplyInfo backApplyInfo); + + MaCodeVo selectDto(BackApplyInfo dto); + + List selectBackApplyList(BackApplyVo dto); + + BackApplyInfo selectRepairCode(BackApplyVo backApplyVo); + + BackApplyInfoVo selectIdList(BackApplyInfoVo dto); + + BackApplyInfoVo selectDetails(BackApplyInfoVo dto); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/IBackApplyInfoService.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/IBackApplyInfoService.java index 2793b90a..fd373809 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/IBackApplyInfoService.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/IBackApplyInfoService.java @@ -7,7 +7,9 @@ import com.bonus.material.back.domain.BackApplyDetails; import com.bonus.material.back.domain.BackApplyInfo; import com.bonus.material.back.domain.MaCode; import com.bonus.material.back.domain.vo.BackAppRequestVo; +import com.bonus.material.back.domain.vo.BackApplyInfoVo; import com.bonus.material.back.domain.vo.BackApplyRequestVo; +import com.bonus.material.back.domain.vo.BackApplyVo; /** * 退料任务Service接口 @@ -22,7 +24,7 @@ public interface IBackApplyInfoService { * @param id 退料任务主键 * @return 退料任务 */ - public BackApplyRequestVo selectBackApplyInfoById(Long id, String keyWord); + public AjaxResult selectBackApplyInfoById(Long id, String keyWord); /** * 查询退料任务列表 @@ -135,4 +137,19 @@ public interface IBackApplyInfoService { * @return */ AjaxResult backOutBack(BackApplyDetails backApplyDetails); + + /** + * 查询修试查询-退料查询列表 + * @param dto + * @return + */ + List selectBackApplyList(BackApplyVo dto); + + /** + * 查询修试查询-退料查询二级列表 + * @param dto + * @return + */ + BackApplyInfoVo selectSecondList(BackApplyInfoVo dto); } + diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java index 369e0368..540c586d 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/service/impl/BackApplyInfoServiceImpl.java @@ -19,9 +19,7 @@ import com.bonus.common.security.utils.SecurityUtils; import com.bonus.material.back.domain.BackApplyDetails; import com.bonus.material.back.domain.MaCode; import com.bonus.material.back.domain.MaCodeDto; -import com.bonus.material.back.domain.vo.BackAppRequestVo; -import com.bonus.material.back.domain.vo.BackApplyRequestVo; -import com.bonus.material.back.domain.vo.MaCodeVo; +import com.bonus.material.back.domain.vo.*; import com.bonus.common.biz.domain.BmFileInfo; import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.common.domain.dto.SelectDto; @@ -85,7 +83,7 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { * @return 退料任务 */ @Override - public BackApplyRequestVo selectBackApplyInfoById(Long id, String keyWord) { + public AjaxResult selectBackApplyInfoById(Long id, String keyWord) { BackApplyRequestVo backApplyRequestVo = new BackApplyRequestVo(); //先根据外层id查询上层信息 BackApplyInfo backApplyInfo = backApplyInfoMapper.selectBackApplyInfoById(id); @@ -98,12 +96,25 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { backApplyRequestVo.setBackApplyInfo(backApplyInfo); //查询退料详情信息 backApplyInfo.setKeyWord(keyWord); + // 移出maCodeList集合中状态不为在用的数据 + List newCodeList = new ArrayList<>(); List backApplyDetailsList = backApplyInfoMapper.selectBackApplyDetailsListByTaskId(backApplyInfo); if (CollectionUtils.isNotEmpty(backApplyDetailsList)) { // 批量查询附件信息,减少数据库访问次数 List bmFileInfos = fetchBmFileInfos(id, backApplyDetailsList); // 查询编码设备信息 List maCodeList = fetchMaCodeList(id); + if ("0".equals(backApplyInfo.getStatus())) { + if (CollectionUtils.isNotEmpty(maCodeList)) { + // 将maCodeList不等于2的收集到新集合中 + for (MaCodeVo maCodeVo : maCodeList) { + if (StringUtils.isNotBlank(maCodeVo.getMaStatus()) && !"2".equals(maCodeVo.getMaStatus())) { + newCodeList.add(maCodeVo); + } + } + } + maCodeList = maCodeList.stream().filter(maCodeVo -> "2".equals(maCodeVo.getMaStatus())).collect(Collectors.toList()); + } // 根据协议id查询设备在用数 // 先查第四层类型 List listL4 = mapper.getUseTypeTreeL4(backApplyInfo); @@ -122,10 +133,48 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { if ("0".equals(details.getManageType())) { setMaCodeDetails(details, maCodeList); } + if (CollectionUtils.isNotEmpty(newCodeList)) { + for (MaCodeVo maCodeVo : newCodeList) { + if (maCodeVo.getTypeId().equals(details.getTypeId().toString())) { + details.setPreNum(details.getPreNum().subtract(BigDecimal.valueOf(1))); + } + // 根据maId查询设备编码信息 + BackApplyInfo dto = new BackApplyInfo(); + dto.setId(id); + dto.setMaId(maCodeVo.getMaId()); + MaCodeVo info = backApplyInfoMapper.selectDto(dto); + if (null != info) { + if (info.getMaId().equals(maCodeVo.getMaId())) { + if (info.getGoodNum() != null && info.getGoodNum().compareTo(BigDecimal.ZERO) > 0) { + details.setGoodNum(details.getGoodNum().subtract(info.getGoodNum())); + } else if (info.getBadNum() != null && info.getBadNum().compareTo(BigDecimal.ZERO) > 0) { + details.setBadNum(details.getBadNum().subtract(info.getBadNum())); + } + } + } + } + } } backApplyRequestVo.setBackApplyDetailsList(backApplyDetailsList); } - return backApplyRequestVo; + AjaxResult ajaxResult = AjaxResult.success(); + ajaxResult.put("data", backApplyRequestVo); + if (CollectionUtils.isNotEmpty(newCodeList)) { + // 拼接消息内容 + StringBuffer msgBuilder = new StringBuffer("您所选择的编码设备编号 +"); + for (int i = 0; i < newCodeList.size(); i++) { + String code = newCodeList.get(i).getMaCode(); + msgBuilder.append(code); + if (i < newCodeList.size() - 1) { + msgBuilder.append(", "); + } + } + msgBuilder.append("+已被他人完成退料,请注意查看!"); + String msg = msgBuilder.toString(); + msg = msg.replaceAll("\n",""); + ajaxResult.put("msg", msg); + } + return ajaxResult; } /** @@ -452,12 +501,18 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { details.setMaId(maCodeDto.getMaId()); details.setPreNum(BigDecimal.valueOf(1)); details.setApDetection(maCodeDto.getApDetection()); - details.setGoodNum(maCodeDto.getGoodNum()); - details.setBadNum(maCodeDto.getBadNum()); + if ("1".equals(maCodeDto.getApDetection())) { + details.setGoodNum(BigDecimal.valueOf(1)); + } else { + details.setGoodNum(BigDecimal.valueOf(0)); + } + if ("0".equals(maCodeDto.getApDetection())) { + details.setBadNum(BigDecimal.valueOf(1)); + } else { + details.setBadNum(BigDecimal.valueOf(0)); + } // 插入 CheckDetails result += backApplyInfoMapper.insertCheckDetails(details); - //更新ma_machine表状态为11(退料暂存) - result += machineMapper.updateStatus(maCodeDto.getMaId(), MaMachineStatusEnum.RETURNED_MATERIAL.getStatus()); if (CollectionUtils.isNotEmpty(maCodeDto.getBmFileInfos())) { for (BmFileInfo bmFileInfo : maCodeDto.getBmFileInfos()) { bmFileInfo.setCreateBy(SecurityUtils.getUsername()); @@ -523,13 +578,6 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { List backApplyDetailsList = backApplyInfoMapper.selectBackApplyDetailsListByTaskId(dto.getBackApplyInfo()); List maCodeList = backApplyInfoMapper.selectByCode(id); int result = 0; - if (CollectionUtils.isNotEmpty(maCodeList)) { - for (MaCodeVo maCodeVo : maCodeList) { - if (maCodeVo.getMaId() != null) { - result += machineMapper.updateStatus(maCodeVo.getMaId(), MaMachineStatusEnum.IN_USE.getStatus()); - } - } - } // 删除相关任务信息 result += backApplyInfoMapper.deleteBackApplyDetails(id); result += backApplyInfoMapper.deleteCheckDetails(id); @@ -574,15 +622,6 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { result += deleteFileInfoForDetails(backApplyDetailsList, id); // 删除编码设备附件 result += deleteFileInfoForMaCodes(maCodeList, id); - // 查询编码是否存在,恢复为在用 - List list = backApplyInfoMapper.selectByCode(id); - if (CollectionUtils.isNotEmpty(list)) { - for (MaCodeVo maCodeVo : list) { - if (maCodeVo.getMaId() != null) { - machineMapper.updateStatus(maCodeVo.getMaId(), MaMachineStatusEnum.IN_USE.getStatus()); - } - } - } if (result > 0) { return AjaxResult.success(result); } @@ -680,19 +719,41 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { @Override @Transactional(rollbackFor = Exception.class) public AjaxResult submitBackApply(BackApplyInfo backApplyInfo) { + List codeList = new ArrayList<>(); + // 根据传入的id查询退料申请信息 + List applyInfoList = backApplyInfoMapper.selectBackDetails(backApplyInfo); + // 将applyInfoList中状态不为在用的数据收集到新集合中 + if (CollectionUtils.isNotEmpty(applyInfoList)) { + for (BackApplyInfo applyInfo : applyInfoList) { + if (!"2".equals(applyInfo.getMaStatus())) { + codeList.add(applyInfo); + } + } + } + if (CollectionUtils.isNotEmpty(codeList)) { + return AjaxResult.error("您所选择的编码设备中有设备已被他人完成退料,请编辑后重新提交!"); + } int result = 0; //先查询退料详情信息 List applyDetails = backApplyInfoMapper.selectBackApplyDetailsListByTaskId(backApplyInfo); + // 根据id查询协议id + Long agreementId = backApplyInfoMapper.selectAgreementId(backApplyInfo); + // 先查第四层类型 + backApplyInfo.setAgreementId(agreementId); + List listL4 = mapper.getUseTypeTreeL4(backApplyInfo); if (CollectionUtils.isNotEmpty(applyDetails)) { for (BackApplyDetails applyDetail : applyDetails) { - if (applyDetail.getPreNum().compareTo(applyDetail.getNum())>0) { - return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "退料数量不能大于在用数量"); + if (CollectionUtils.isNotEmpty(listL4)) { + for (TypeTreeNode typeTreeNode : listL4) { + if (applyDetail.getTypeId().equals(typeTreeNode.getTypeId())) { + if (applyDetail.getPreNum().compareTo(applyDetail.getNum()) > 0) { + return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "退料数量不能大于在用数量"); + } + } + } } - result += backApplyInfoMapper.updateBackApplyDetails(applyDetail); } } - // 根据传入的id查询退料申请信息 - List applyInfoList = backApplyInfoMapper.selectBackDetails(backApplyInfo); // 设置更新信息 backApplyInfo.setUpdateBy(SecurityUtils.getUsername()); backApplyInfo.setUpdateTime(DateUtils.getNowDate()); @@ -1280,6 +1341,85 @@ public class BackApplyInfoServiceImpl implements IBackApplyInfoService { return AjaxResult.error("退料退回失败"); } + /** + * 查询修试查询-退料查询列表 + * @param dto + * @return + */ + @Override + public List selectBackApplyList(BackApplyVo dto) { + List list = backApplyInfoMapper.selectBackApplyList(dto); + if (CollectionUtils.isNotEmpty(list)) { + for (BackApplyVo backApplyVo : list) { + // 根据id查询维修单号 + BackApplyInfo backApplyInfo = backApplyInfoMapper.selectRepairCode(backApplyVo); + if (backApplyInfo != null && backApplyInfo.getCode() != null) { + backApplyVo.setRepairCode(backApplyInfo.getCode()); + } + } + // 如果关键字不为空,根据关键字查询 + if (!StringUtils.isBlank(dto.getKeyWord())) { + list = list.stream() + .filter(item -> containsBackKeyword(item, dto.getKeyWord())) + .collect(Collectors.toList()); + } + } + return list; + } + + /** + * 查询修试查询-退料查询二级列表 + * @param dto + * @return + */ + @Override + public BackApplyInfoVo selectSecondList(BackApplyInfoVo dto) { + // 根据id以及typeId以及maId查询相关信息 + BackApplyInfoVo info = backApplyInfoMapper.selectIdList(dto); + // 查询退料相关信息 + BackApplyInfoVo vo = backApplyInfoMapper.selectDetails(dto); + BmFileInfo bmFileInfo = new BmFileInfo(); + if (dto != null && dto.getTypeId() != null) { + bmFileInfo.setTaskId(dto.getId()); + bmFileInfo.setTaskType(3); + bmFileInfo.setModelId(info.getBackId()); + List bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(bmFileInfo); + if (!CollectionUtils.isEmpty(bmFileInfoList)) { + vo.setFileInfoList(bmFileInfoList); + } + } else if (dto != null && dto.getMaId() != null) { + bmFileInfo.setTaskId(info.getBackId()); + bmFileInfo.setTaskType(3); + bmFileInfo.setModelId(dto.getMaId()); + List bmFileInfoList = bmFileInfoMapper.selectBmFileInfoList(bmFileInfo); + if (!CollectionUtils.isEmpty(bmFileInfoList)) { + vo.setFileInfoList(bmFileInfoList); + } + } + return vo; + } + + + /** + * 关键字搜索 + * + * @param item + * @param keyWord + * @return + */ + private boolean containsBackKeyword(BackApplyVo item, String keyWord) { + return (item.getTypeName() != null && item.getTypeName().contains(keyWord)) || + (item.getTypeModelName() != null && item.getTypeModelName().contains(keyWord)) || + (item.getBackPerson() != null && item.getBackPerson().contains(keyWord)) || + (item.getBackUnitName() != null && item.getBackUnitName().contains(keyWord)) || + (item.getBackProName() != null && item.getBackProName().contains(keyWord)) || + (item.getAgreementCode() != null && item.getAgreementCode().contains(keyWord)) || + (item.getBackCode() != null && item.getBackCode().contains(keyWord)) || + (item.getRepairCode() != null && item.getRepairCode().contains(keyWord)) || + (item.getMaCode() != null && item.getMaCode().contains(keyWord)); + } + + /** * 更新任务表及退料申请表状态 * @param backApplyInfo diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/report/ScrapInfo.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/report/ScrapInfo.java index d499671b..42f13503 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/report/ScrapInfo.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/domain/report/ScrapInfo.java @@ -1,5 +1,6 @@ package com.bonus.material.basic.domain.report; +import com.bonus.common.biz.domain.BmFileInfo; import com.bonus.common.core.annotation.Excel; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; @@ -7,6 +8,7 @@ import lombok.Data; import java.math.BigDecimal; import java.util.Date; +import java.util.List; /** * 报废列表一级页面 @@ -25,6 +27,14 @@ public class ScrapInfo { private Long typeId; + @ApiModelProperty(value = "单位名称") + @Excel(name = "单位名称") + private String backUnit; + + @ApiModelProperty(value = "工程名称") + @Excel(name = "工程名称") + private String backPro; + @ApiModelProperty(value = "物资名称") @Excel(name = "物资名称") private String typeName; @@ -37,18 +47,24 @@ public class ScrapInfo { @Excel(name = "计量单位") private String unitName; + @ApiModelProperty(value = "设备编号") + @Excel(name = "设备编号") + private String maCode; + @ApiModelProperty(value = "报废数量") @Excel(name = "报废数量") private BigDecimal scrapNum; - @ApiModelProperty(value = "报废时间") - @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") - @Excel(name = "报废时间", width = 20, dateFormat = "yyyy-MM-dd") - private Date scrapTime; + @ApiModelProperty(value = "报废费用") + @Excel(name = "报废费用") + private BigDecimal scrapPrice; - @ApiModelProperty(value = "报废人员") - @Excel(name = "报废人员") - private String scrapPersonName; + @ApiModelProperty(value = "报废原因") + @Excel(name = "报废原因") + private String scrapReason; + + @ApiModelProperty(value = "报废图片") + private List fileList; @ApiModelProperty(value = "报废类型") @Excel(name = "报废类型") @@ -58,6 +74,15 @@ public class ScrapInfo { @Excel(name = "报废单号") private String scrapCode; + @ApiModelProperty(value = "报废人员") + @Excel(name = "报废人员") + private String scrapPersonName; + + @ApiModelProperty(value = "报废时间") + @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") + @Excel(name = "报废时间", width = 20, dateFormat = "yyyy-MM-dd HH:mm:ss") + private Date scrapTime; + @ApiModelProperty(value = "开始时间") private String startTime; @@ -69,4 +94,11 @@ public class ScrapInfo { @ApiModelProperty(value = "管理方式") private String manageType; + + @ApiModelProperty(value = "原值") + private BigDecimal buyPrice; + + /** 维修ID */ + @ApiModelProperty(value = "维修ID") + private Long repairId; } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmReportServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmReportServiceImpl.java index bffadca9..7371ecf4 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmReportServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/basic/service/impl/BmReportServiceImpl.java @@ -1,9 +1,11 @@ package com.bonus.material.basic.service.impl; import com.alibaba.nacos.common.utils.CollectionUtils; -import com.bonus.common.biz.domain.lease.LeaseApplyInfo; +import com.bonus.common.biz.domain.BmFileInfo; +import com.bonus.common.biz.enums.TmTaskTypeEnum; import com.bonus.common.core.utils.StringUtils; import com.bonus.material.basic.domain.report.*; +import com.bonus.material.basic.mapper.BmFileInfoMapper; import com.bonus.material.basic.mapper.BmReportMapper; import com.bonus.material.basic.service.BmReportService; import org.springframework.stereotype.Service; @@ -25,6 +27,8 @@ public class BmReportServiceImpl implements BmReportService { @Resource private BmReportMapper bmReportMapper; + @Resource + private BmFileInfoMapper fileInfoMapper; /** * 新购入库报表查询 * @param bean @@ -268,7 +272,26 @@ public class BmReportServiceImpl implements BmReportService { .collect(Collectors.toList()); } for (ScrapInfo scrapInfo : list) { + BigDecimal totalCost = scrapInfo.getScrapNum().multiply(scrapInfo.getBuyPrice()); + scrapInfo.setScrapPrice(totalCost); totalScrapNum = totalScrapNum.add(scrapInfo.getScrapNum()); + BmFileInfo bmFileInfo = new BmFileInfo(); + if (scrapInfo.getRepairId() != null) { + bmFileInfo.setModelId(scrapInfo.getRepairId()); + bmFileInfo.setTaskType(4); + List fileInfos = fileInfoMapper.selectBmFileInfoList(bmFileInfo); + if (CollectionUtils.isNotEmpty(fileInfos)) { + scrapInfo.setFileList(fileInfos); + } + } else { + bmFileInfo.setTaskType(TmTaskTypeEnum.TM_TASK_PART_SCRAP.getTaskTypeId()); + bmFileInfo.setFileType(6L); + bmFileInfo.setTaskId(scrapInfo.getTaskId()); + List bmFileInfos = fileInfoMapper.selectBmFileInfoList(bmFileInfo); + if (CollectionUtils.isNotEmpty(bmFileInfos)) { + scrapInfo.setFileList(bmFileInfos); + } + } } } if (bean.getIsExport() == 0) { @@ -290,7 +313,12 @@ public class BmReportServiceImpl implements BmReportService { return (item.getTypeName() != null && item.getTypeName().contains(keyWord)) || (item.getTypeModelName() != null && item.getTypeModelName().contains(keyWord)) || (item.getScrapCode() != null && item.getScrapCode().contains(keyWord)) || - (item.getScrapPersonName() != null && item.getScrapPersonName().contains(keyWord)); + (item.getScrapPersonName() != null && item.getScrapPersonName().contains(keyWord)) || + (item.getBackUnit() != null && item.getBackUnit().contains(keyWord)) || + (item.getBackPro() != null && item.getBackPro().contains(keyWord)) || + (item.getScrapReason() != null && item.getScrapReason().contains(keyWord)) || + (item.getScrapType() != null && item.getScrapType().contains(keyWord)) || + (item.getMaCode() != null && item.getMaCode().contains(keyWord)); } /** diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml index 548b5a27..3947c0ab 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml @@ -224,11 +224,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" SUM(bcd.back_num) AS backNum, bcd.parent_id AS parentId, bcd.create_by AS createBy, - bcd.ma_id AS maId + bcd.ma_id AS maId, + mm.ma_status AS maStatus FROM back_check_details bcd LEFT JOIN back_apply_info bai ON bai.id = bcd.parent_id LEFT JOIN tm_task_agreement tta ON tta.task_id = bai.task_id + LEFT JOIN ma_machine mm ON bcd.ma_id = mm.ma_id WHERE bcd.parent_id = #{id} and (bcd.is_finished is null or bcd.is_finished != 1) @@ -793,4 +795,133 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" tt.task_id=#{taskId} GROUP BY bai.`code` + + + + + + + + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmReportMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmReportMapper.xml index 5be15282..a75694da 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmReportMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/basic/BmReportMapper.xml @@ -377,43 +377,47 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"