修试查询接口调试
This commit is contained in:
parent
66a5665ad3
commit
02a24dfeb5
|
|
@ -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);
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -172,4 +172,6 @@ public class BackApplyInfo implements Serializable {
|
|||
|
||||
@ApiModelProperty(value = "app退料任务状态,0 未审核 1已审核(包含通过和驳回)")
|
||||
private Integer appTaskStatus;
|
||||
|
||||
private String maStatus;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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;
|
||||
}
|
||||
|
|
@ -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);
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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);
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -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
|
||||
|
|
|
|||
|
|
@ -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;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -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));
|
||||
}
|
||||
|
||||
/**
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
|
|
|||
|
|
@ -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>
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue