修试查询接口调试

This commit is contained in:
mashuai 2025-03-31 19:13:39 +08:00
parent 66a5665ad3
commit 02a24dfeb5
11 changed files with 651 additions and 77 deletions

View File

@ -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<BackApplyVo> 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<BackApplyVo> list = backApplyInfoService.selectBackApplyList(dto);
ExcelUtil<BackApplyVo> util = new ExcelUtil<BackApplyVo>(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<BackApplyInfoVo> list = new ArrayList<>();
BackApplyInfoVo vo = backApplyInfoService.selectSecondList(dto);
list.add(vo);
ExcelUtil<BackApplyInfoVo> util = new ExcelUtil<BackApplyInfoVo>(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);
}
/**

View File

@ -172,4 +172,6 @@ public class BackApplyInfo implements Serializable {
@ApiModelProperty(value = "app退料任务状态0 未审核 1已审核包含通过和驳回")
private Integer appTaskStatus;
private String maStatus;
}

View File

@ -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<BmFileInfo> fileInfoList;
}

View File

@ -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;
}

View File

@ -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<BackApplyVo> selectBackApplyList(BackApplyVo dto);
BackApplyInfo selectRepairCode(BackApplyVo backApplyVo);
BackApplyInfoVo selectIdList(BackApplyInfoVo dto);
BackApplyInfoVo selectDetails(BackApplyInfoVo dto);
}

View File

@ -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<BackApplyVo> selectBackApplyList(BackApplyVo dto);
/**
* 查询修试查询-退料查询二级列表
* @param dto
* @return
*/
BackApplyInfoVo selectSecondList(BackApplyInfoVo dto);
}

View File

@ -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<MaCodeVo> newCodeList = new ArrayList<>();
List<BackApplyDetails> backApplyDetailsList = backApplyInfoMapper.selectBackApplyDetailsListByTaskId(backApplyInfo);
if (CollectionUtils.isNotEmpty(backApplyDetailsList)) {
// 批量查询附件信息减少数据库访问次数
List<BmFileInfo> bmFileInfos = fetchBmFileInfos(id, backApplyDetailsList);
// 查询编码设备信息
List<MaCodeVo> 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<TypeTreeNode> 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<BackApplyDetails> backApplyDetailsList = backApplyInfoMapper.selectBackApplyDetailsListByTaskId(dto.getBackApplyInfo());
List<MaCodeVo> 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<MaCodeVo> 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<BackApplyInfo> codeList = new ArrayList<>();
// 根据传入的id查询退料申请信息
List<BackApplyInfo> 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<BackApplyDetails> applyDetails = backApplyInfoMapper.selectBackApplyDetailsListByTaskId(backApplyInfo);
// 根据id查询协议id
Long agreementId = backApplyInfoMapper.selectAgreementId(backApplyInfo);
// 先查第四层类型
backApplyInfo.setAgreementId(agreementId);
List<TypeTreeNode> listL4 = mapper.getUseTypeTreeL4(backApplyInfo);
if (CollectionUtils.isNotEmpty(applyDetails)) {
for (BackApplyDetails applyDetail : applyDetails) {
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<BackApplyInfo> 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<BackApplyVo> selectBackApplyList(BackApplyVo dto) {
List<BackApplyVo> 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<BmFileInfo> 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<BmFileInfo> 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

View File

@ -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<BmFileInfo> 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;
}

View File

@ -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<BmFileInfo> 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<BmFileInfo> 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));
}
/**

View File

@ -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)
<if test="typeId != '' and typeId != null">
@ -793,4 +795,133 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tt.task_id=#{taskId}
GROUP BY bai.`code`
</select>
<select id="selectAgreementId" resultType="java.lang.Long">
SELECT
tt.agreement_id AS agreementId
FROM
back_apply_info ba
LEFT JOIN tm_task_agreement tt ON ba.task_id = tt.task_id
WHERE
ba.id = #{id}
</select>
<select id="selectDto" resultType="com.bonus.material.back.domain.vo.MaCodeVo">
SELECT
bcd.ma_id AS maId,
mm.ma_code as maCode,
bcd.type_id AS typeId,
mt2.type_name AS materialType,
mt.type_name AS materialName,
mt1.type_name AS typeName,
bcd.ap_detection AS apDetection,
mm.ma_status AS maStatus,
bcd.bad_num AS badNum,
bcd.good_num AS goodNum
FROM
back_check_details bcd
left join ma_machine mm on bcd.ma_id = mm.ma_id
left join ma_type mt ON mt.type_id = mm.type_id and mt.del_flag = 0
left join ma_type mt1 ON mt.parent_id = mt1.type_id and mt1.del_flag = 0
left join ma_type mt2 ON mt1.parent_id = mt2.type_id and mt2.del_flag = 0
where bcd.parent_id = #{id}
<if test="maId != null">
and bcd.ma_id = #{maId}
</if>
</select>
<select id="selectBackApplyList" resultType="com.bonus.material.back.domain.vo.BackApplyVo">
SELECT
bagi.agreement_code AS agreementCode,
bu.unit_name AS backUnitName,
bp.pro_name AS backProName,
mt2.type_name AS typeName,
mt1.type_name AS typeModelName,
mm.ma_code AS maCode,
mt1.unit_name AS unitName,
tt.`code` AS backCode,
bcd.back_num AS backNum,
bcd.create_by AS backPerson,
bcd.create_time AS backTime,
bai.id AS id,
bcd.type_id AS typeId,
bcd.ma_id AS maId
FROM
back_apply_info bai
LEFT JOIN back_check_details bcd ON bai.id = bcd.parent_id
LEFT JOIN tm_task tt ON tt.task_id = bai.task_id
LEFT JOIN tm_task_agreement tta ON tta.task_id = tt.task_id
LEFT JOIN bm_agreement_info bagi ON bagi.agreement_id = tta.agreement_id
AND bagi.`status` = '1'
LEFT JOIN bm_project bp ON bp.pro_id = bagi.project_id
AND bp.del_flag = '0'
LEFT JOIN bm_unit bu ON bu.unit_id = bagi.unit_id
AND bu.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt1.type_id = bcd.type_id
AND mt1.del_flag = '0'
LEFT JOIN ma_type mt2 ON mt2.type_id = mt1.parent_id
AND mt2.del_flag = '0'
LEFT JOIN ma_machine mm ON bcd.ma_id = mm.ma_id
WHERE
1 = 1
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
<![CDATA[and DATE_FORMAT( bcd.create_time, '%Y-%m-%d' ) BETWEEN #{startTime} AND #{endTime} ]]>
</if>
<if test="typeName != null and typeName != ''">
and mt2.type_name like CONCAT('%', #{typeName}, '%')
</if>
<if test="typeModelName != null and typeModelName != ''">
and mt1.type_name like CONCAT('%', #{typeModelName}, '%')
</if>
<if test="unitId != null">
and bu.unit_id = #{unitId}
</if>
<if test="proId != null">
and bp.pro_id = #{proId}
</if>
</select>
<select id="selectRepairCode" resultType="com.bonus.material.back.domain.BackApplyInfo">
SELECT
GROUP_CONCAT( DISTINCT tt.`code` ) AS CODE
FROM
repair_apply_details ba
LEFT JOIN tm_task tt ON ba.task_id = tt.task_id
LEFT JOIN repair_audit_details rad ON ba.id = rad.repair_id
WHERE
rad.`status` = '1'
AND ba.back_id = #{id}
</select>
<select id="selectIdList" resultType="com.bonus.material.back.domain.vo.BackApplyInfoVo">
SELECT
id as backId
FROM
back_apply_details
WHERE
parent_id = #{id}
<if test="typeId != null">
and type_id = #{typeId}
</if>
</select>
<select id="selectDetails" resultType="com.bonus.material.back.domain.vo.BackApplyInfoVo">
SELECT
mt1.type_name AS typeName,
mt.type_name AS typeModelName,
bcd.back_num AS backNum,
bcd.good_num AS passNum,
bcd.bad_num AS unPassNum,
bcd.remark AS unPassReason
FROM
back_check_details bcd
LEFT JOIN ma_type mt ON bcd.type_id = mt.type_id
AND mt.del_flag = '0'
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.del_flag = '0'
WHERE
bcd.parent_id = #{id}
<if test="maId != null">
and bcd.ma_id = #{maId}
</if>
<if test="typeId != null">
and bcd.type_id = #{typeId}
</if>
</select>
</mapper>

View File

@ -380,18 +380,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt1.type_name AS typeName,
mt.type_name AS typeModelName,
mt.unit_name AS unitName,
SUM(IFNULL( sad.scrap_num, 0 )) AS scrapNum,
MAX( sad.create_time ) AS scrapTime,
GROUP_CONCAT( DISTINCT sad.create_by ) AS scrapPersonName,
CASE sad.scrap_source
WHEN 2 THEN '维修报废'
WHEN 3 THEN '盘点报废'
ELSE NULL
IFNULL( sad.scrap_num, 0 ) AS scrapNum,
sad.create_time AS scrapTime,
sad.create_by AS scrapPersonName,
bui.unit_name AS backUnit,
bpi.pro_name AS backPro,
CASE
sad.scrap_source
WHEN 2 THEN
'维修报废'
WHEN 3 THEN
'盘点报废' ELSE NULL
END AS scrapType,
tt.`code` AS scrapCode,
sad.task_id AS taskId,
sad.type_id AS typeId,
mt.manage_type AS manageType
mt.manage_type AS manageType,
mm.ma_code AS maCode,
IFNULL( mt.buy_price, 0 ) AS buyPrice,
sad.scrap_reason AS scrapReason,
rad.repair_id AS repairId
FROM
scrap_apply_details sad
LEFT JOIN ma_type mt ON sad.type_id = mt.type_id
@ -399,21 +407,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
AND mt1.del_flag = '0'
LEFT JOIN tm_task tt ON sad.task_id = tt.task_id
LEFT JOIN tm_task_agreement tta ON sad.task_id = tta.task_id
LEFT JOIN bm_agreement_info bai2 ON tta.agreement_id = bai2.agreement_id
LEFT JOIN bm_unit bui ON bai2.unit_id = bui.unit_id
LEFT JOIN bm_project bpi ON bai2.project_id = bpi.pro_id
AND bpi.del_flag = '0'
LEFT JOIN ma_machine mm ON sad.ma_id = mm.ma_id
LEFT JOIN repair_audit_details rad ON rad.id = sad.parent_id
WHERE
sad.ledger_status = '1'
<if test="keyWord != null and keyWord != ''">
AND (
mt1.type_name LIKE CONCAT('%', #{keyWord}, '%')
OR mt.type_name LIKE CONCAT('%', #{keyWord}, '%')
OR tt.`code` LIKE CONCAT('%', #{keyWord}, '%')
)
</if>
GROUP BY
sad.task_id,
sad.type_id
<if test="startTime != null and startTime != '' and endTime != null and endTime != ''">
HAVING
<![CDATA[DATE_FORMAT(MAX(sad.create_time), '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}]]>
<![CDATA[AND DATE_FORMAT(sad.create_time, '%Y-%m-%d') BETWEEN #{startTime} AND #{endTime}]]>
</if>
</select>