This commit is contained in:
hongchao 2024-12-26 13:37:36 +08:00
commit 8e8cdb0931
31 changed files with 409 additions and 217 deletions

View File

@ -3,6 +3,7 @@ package com.bonus.common.biz.config;
import org.apache.poi.hssf.usermodel.*; import org.apache.poi.hssf.usermodel.*;
import org.apache.poi.ss.usermodel.BorderStyle; import org.apache.poi.ss.usermodel.BorderStyle;
import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.HorizontalAlignment;
import org.apache.poi.ss.usermodel.IndexedColors;
import org.apache.poi.ss.usermodel.VerticalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment;
import org.apache.poi.ss.util.CellRangeAddress; import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.ss.util.RegionUtil; import org.apache.poi.ss.util.RegionUtil;
@ -52,6 +53,14 @@ public class PoiOutPage {
return workbook; return workbook;
} }
/**
* 创建标题行
* @param sheet
* @param titleStyle
* @param filename
* @param nColumn
* @return
*/
private static int createTitleRow(HSSFSheet sheet, HSSFCellStyle titleStyle, String filename, int nColumn) { private static int createTitleRow(HSSFSheet sheet, HSSFCellStyle titleStyle, String filename, int nColumn) {
HSSFRow row = sheet.createRow(0); HSSFRow row = sheet.createRow(0);
row.setHeightInPoints(30); row.setHeightInPoints(30);
@ -62,6 +71,14 @@ public class PoiOutPage {
return 1; // 下一行是表头 return 1; // 下一行是表头
} }
/**
* 创建表头行
* @param sheet
* @param headerStyle
* @param list
* @param rowNum
* @return
*/
private static int createHeaderRow(HSSFSheet sheet, HSSFCellStyle headerStyle, List<String> list, int rowNum) { private static int createHeaderRow(HSSFSheet sheet, HSSFCellStyle headerStyle, List<String> list, int rowNum) {
HSSFRow row = sheet.createRow(rowNum); HSSFRow row = sheet.createRow(rowNum);
row.setHeightInPoints(20); row.setHeightInPoints(20);
@ -74,6 +91,14 @@ public class PoiOutPage {
return rowNum + 1; return rowNum + 1;
} }
/**
* 填充数据行
* @param sheet
* @param result
* @param contentStyle
* @param nColumn
* @param rowNum
*/
private static void createDataRows(HSSFSheet sheet, List<Map<String, Object>> result, HSSFCellStyle contentStyle, int nColumn, int rowNum) { private static void createDataRows(HSSFSheet sheet, List<Map<String, Object>> result, HSSFCellStyle contentStyle, int nColumn, int rowNum) {
for (Map<String, Object> resultRow : result) { for (Map<String, Object> resultRow : result) {
List<Object> rowData = map2List(resultRow); List<Object> rowData = map2List(resultRow);
@ -104,6 +129,12 @@ public class PoiOutPage {
} }
} }
/**
* 设置单元格数据
* @param cell
* @param contentStyle
* @param data
*/
private static void setCellValue(HSSFCell cell, HSSFCellStyle contentStyle, Object data) { private static void setCellValue(HSSFCell cell, HSSFCellStyle contentStyle, Object data) {
if (isNumeric(data)) { if (isNumeric(data)) {
contentStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00")); contentStyle.setDataFormat(HSSFDataFormat.getBuiltinFormat("0.00"));
@ -115,6 +146,14 @@ public class PoiOutPage {
} }
} }
/**
* 创建一个空的工作表
* @param sheet
* @param list
* @param titleStyle
* @param headerStyle
* @param filename
*/
private static void createEmptySheet(HSSFSheet sheet, List<String> list, HSSFCellStyle titleStyle, HSSFCellStyle headerStyle, String filename) { private static void createEmptySheet(HSSFSheet sheet, List<String> list, HSSFCellStyle titleStyle, HSSFCellStyle headerStyle, String filename) {
int nColumn = list.size(); int nColumn = list.size();
int rowNum = createTitleRow(sheet, titleStyle, filename, nColumn); int rowNum = createTitleRow(sheet, titleStyle, filename, nColumn);
@ -275,8 +314,12 @@ public class PoiOutPage {
return list; return list;
} }
// 以下是创建样式的方法可根据需要调整
/**
* 创建标题样式
* @param workbook
* @return
*/
private static HSSFCellStyle createTitleStyle(HSSFWorkbook workbook) { private static HSSFCellStyle createTitleStyle(HSSFWorkbook workbook) {
HSSFCellStyle style = workbook.createCellStyle(); HSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER); style.setAlignment(HorizontalAlignment.CENTER);
@ -288,24 +331,61 @@ public class PoiOutPage {
return style; return style;
} }
/**
* 创建表头样式
* @param workbook
* @return
*/
private static HSSFCellStyle createHeaderStyle(HSSFWorkbook workbook) { private static HSSFCellStyle createHeaderStyle(HSSFWorkbook workbook) {
HSSFCellStyle style = workbook.createCellStyle(); HSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER); style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER); style.setVerticalAlignment(VerticalAlignment.CENTER);
HSSFFont font = workbook.createFont(); HSSFFont font = workbook.createFont();
font.setBold(true); font.setBold(true);
font.setFontHeightInPoints((short) 12); font.setFontHeightInPoints((short) 10);
style.setFont(font); style.setFont(font);
// 设置边框
style.setBorderTop(BorderStyle.THIN);
style.setBorderBottom(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);
// 设置边框颜色为黑色
style.setTopBorderColor(IndexedColors.BLACK.getIndex());
style.setBottomBorderColor(IndexedColors.BLACK.getIndex());
style.setLeftBorderColor(IndexedColors.BLACK.getIndex());
style.setRightBorderColor(IndexedColors.BLACK.getIndex());
return style; return style;
} }
/**
* 创建内容样式
* @param workbook
* @return
*/
private static HSSFCellStyle createCellStyle(HSSFWorkbook workbook) { private static HSSFCellStyle createCellStyle(HSSFWorkbook workbook) {
HSSFCellStyle style = workbook.createCellStyle(); HSSFCellStyle style = workbook.createCellStyle();
style.setAlignment(HorizontalAlignment.CENTER); style.setAlignment(HorizontalAlignment.CENTER);
style.setVerticalAlignment(VerticalAlignment.CENTER); style.setVerticalAlignment(VerticalAlignment.CENTER);
HSSFFont font = workbook.createFont(); HSSFFont font = workbook.createFont();
font.setFontHeightInPoints((short) 10); font.setFontHeightInPoints((short) 10);
style.setFont(font); style.setFont(font);
// 设置边框
style.setBorderTop(BorderStyle.THIN);
style.setBorderBottom(BorderStyle.THIN);
style.setBorderLeft(BorderStyle.THIN);
style.setBorderRight(BorderStyle.THIN);
// 设置边框颜色为黑色
style.setTopBorderColor(IndexedColors.BLACK.getIndex());
style.setBottomBorderColor(IndexedColors.BLACK.getIndex());
style.setLeftBorderColor(IndexedColors.BLACK.getIndex());
style.setRightBorderColor(IndexedColors.BLACK.getIndex());
return style; return style;
} }
} }

View File

@ -111,6 +111,15 @@ public class BmQrBoxController extends BaseController {
return qrBoxService.updateBmQrcodeInfoByCode(bmQrBoxInfo); return qrBoxService.updateBmQrcodeInfoByCode(bmQrBoxInfo);
} }
/**
* 二维码管理 -- 扫码获取绑定物资信息
*/
@ApiOperation(value = "二维码管理 -- 扫码获取绑定物资信息")
@GetMapping("/get_ma_info_by_qrcode")
public AjaxResult appCreateByCode(@RequestParam(value = "qrCode") String qrCode) {
return qrBoxService.getMaInfoByQrCode(qrCode);
}
/** /**
* APP -- 新购入库扫码 -- BoxCode查询标准箱信息 * APP -- 新购入库扫码 -- BoxCode查询标准箱信息
*/ */

View File

@ -101,7 +101,7 @@ public class ComplexQueryController extends BaseController {
* @return * @return
*/ */
@ApiOperation(value = "综合查询--查询在库机具设备详情") @ApiOperation(value = "综合查询--查询在库机具设备详情")
@GetMapping("/exportStorageInfoList") @PostMapping("/exportStorageInfoList")
public void exportStorageInfoList(HttpServletResponse response, StorageInfo bean) { public void exportStorageInfoList(HttpServletResponse response, StorageInfo bean) {
List<StorageInfo> list = complexQueryService.getMaCodeList(bean); List<StorageInfo> list = complexQueryService.getMaCodeList(bean);
ExcelUtil<StorageInfo> util = new ExcelUtil<>(StorageInfo.class); ExcelUtil<StorageInfo> util = new ExcelUtil<>(StorageInfo.class);
@ -127,7 +127,7 @@ public class ComplexQueryController extends BaseController {
* @param bean * @param bean
*/ */
@ApiOperation(value = "综合查询--导出在用设备详情") @ApiOperation(value = "综合查询--导出在用设备详情")
@GetMapping("/exportUserRecordList") @PostMapping("/exportUserRecordList")
public void exportUserRecordList(HttpServletResponse response, UseStorageInfo bean) { public void exportUserRecordList(HttpServletResponse response, UseStorageInfo bean) {
List<UseStorageInfo> list = complexQueryService.getUserRecords(bean); List<UseStorageInfo> list = complexQueryService.getUserRecords(bean);
ExcelUtil<UseStorageInfo> util = new ExcelUtil<>(UseStorageInfo.class); ExcelUtil<UseStorageInfo> util = new ExcelUtil<>(UseStorageInfo.class);
@ -153,7 +153,7 @@ public class ComplexQueryController extends BaseController {
* @param bean * @param bean
*/ */
@ApiOperation(value = "综合查询--导出在修设备详情") @ApiOperation(value = "综合查询--导出在修设备详情")
@GetMapping("/exportRepairRecordList") @PostMapping("/exportRepairRecordList")
public void exportRepairRecordList(HttpServletResponse response, RepairStorageInfo bean) { public void exportRepairRecordList(HttpServletResponse response, RepairStorageInfo bean) {
List<RepairStorageInfo> list = complexQueryService.getRepairRecordList(bean); List<RepairStorageInfo> list = complexQueryService.getRepairRecordList(bean);
ExcelUtil<RepairStorageInfo> util = new ExcelUtil<>(RepairStorageInfo.class); ExcelUtil<RepairStorageInfo> util = new ExcelUtil<>(RepairStorageInfo.class);
@ -179,7 +179,7 @@ public class ComplexQueryController extends BaseController {
* @param bean * @param bean
*/ */
@ApiOperation(value = "综合查询--导出新购待入库详情") @ApiOperation(value = "综合查询--导出新购待入库详情")
@GetMapping("/exportPurchaseRecordList") @PostMapping("/exportPurchaseRecordList")
public void exportPurchaseRecordList(HttpServletResponse response, PurchaseInputInfo bean) { public void exportPurchaseRecordList(HttpServletResponse response, PurchaseInputInfo bean) {
List<PurchaseInputInfo> list = complexQueryService.getPurchaseRecordList(bean); List<PurchaseInputInfo> list = complexQueryService.getPurchaseRecordList(bean);
ExcelUtil<PurchaseInputInfo> util = new ExcelUtil<>(PurchaseInputInfo.class); ExcelUtil<PurchaseInputInfo> util = new ExcelUtil<>(PurchaseInputInfo.class);
@ -205,7 +205,7 @@ public class ComplexQueryController extends BaseController {
* @param bean * @param bean
*/ */
@ApiOperation(value = "综合查询--导出修饰待入库详情") @ApiOperation(value = "综合查询--导出修饰待入库详情")
@GetMapping("/exportRepairInputList") @PostMapping("/exportRepairInputList")
public void exportRepairInputList(HttpServletResponse response, RepairInputRecord bean) { public void exportRepairInputList(HttpServletResponse response, RepairInputRecord bean) {
List<RepairInputRecord> list = complexQueryService.getRepairInputList(bean); List<RepairInputRecord> list = complexQueryService.getRepairInputList(bean);
ExcelUtil<RepairInputRecord> util = new ExcelUtil<>(RepairInputRecord.class); ExcelUtil<RepairInputRecord> util = new ExcelUtil<>(RepairInputRecord.class);

View File

@ -88,6 +88,9 @@ public class BmQrBoxInfo extends BaseEntity
@ApiModelProperty(value = "状态--DTO请求参数用作多状态查询拼接") @ApiModelProperty(value = "状态--DTO请求参数用作多状态查询拼接")
private String status; private String status;
@ApiModelProperty(value = "状态名称")
private String statusName;
@ApiModelProperty(value = "移交人用户ID,") @ApiModelProperty(value = "移交人用户ID,")
private Long transferUser; private Long transferUser;

View File

@ -58,8 +58,10 @@ public class PurchaseInputInfo {
@ApiModelProperty(value = "新购待入库单号") @ApiModelProperty(value = "新购待入库单号")
@Excel(name = "新购待入库单号") @Excel(name = "新购待入库单号")
private String purchaseCode; private String code;
@ApiModelProperty(value = "关键字") @ApiModelProperty(value = "关键字")
private String keyWord; private String keyWord;
private String manageType;
} }

View File

@ -59,7 +59,7 @@ public class RepairInputRecord {
@ApiModelProperty(value = "修饰待入库单号") @ApiModelProperty(value = "修饰待入库单号")
@Excel(name = "修饰待入库单号") @Excel(name = "修饰待入库单号")
private String repairInputCode; private String inputCode;
@ApiModelProperty(value = "关键字") @ApiModelProperty(value = "关键字")
private String keyWord; private String keyWord;

View File

@ -58,8 +58,11 @@ public class UseStorageInfo {
private Date outTime; private Date outTime;
@ApiModelProperty(value = "领料单号") @ApiModelProperty(value = "领料单号")
@Excel(name = "领料单号") private String code;
private String leaseCode;
@ApiModelProperty(value = "工程名称")
@Excel(name = "工程名称")
private String projectName;
@ApiModelProperty(value = "关键字") @ApiModelProperty(value = "关键字")
private String keyWord; private String keyWord;

View File

@ -37,6 +37,11 @@ public interface BmQrBoxMapper {
*/ */
int updateBmQrcodeInfoByCode(BmQrBoxInfo bmQrBoxInfo); int updateBmQrcodeInfoByCode(BmQrBoxInfo bmQrBoxInfo);
/**
* 根据二维码QR编码查询绑定的物资信息
*/
BmQrBoxInfo getMaInfoByQrCode(String qrCode);
/** /**
* 修改标准箱状态 -- 增加绑定编码时调用 * 修改标准箱状态 -- 增加绑定编码时调用
*/ */

View File

@ -88,4 +88,12 @@ public interface ComplexQueryMapper {
* @return * @return
*/ */
List<PurchaseInputInfo> selectMaCodeByTaskIdAndTypeId(@Param("taskId") Long taskId, @Param("typeId") Integer typeId); List<PurchaseInputInfo> selectMaCodeByTaskIdAndTypeId(@Param("taskId") Long taskId, @Param("typeId") Integer typeId);
/**
* 查询机具编码
* @param bean
* @return
*/
List<StorageInfo> selectMaCodeByTypeId(StorageInfo bean);
} }

View File

@ -66,6 +66,12 @@ public interface BmQrBoxService {
*/ */
AjaxResult updateBmQrcodeInfoByCode(BmQrBoxInfo bmQrBoxInfo); AjaxResult updateBmQrcodeInfoByCode(BmQrBoxInfo bmQrBoxInfo);
/**
* 通过QR_CODE 查询物资信息
* @param qrCode 二维码编码
*/
AjaxResult getMaInfoByQrCode(String qrCode);
/** /**
* APP - 扫码绑定物资 * APP - 扫码绑定物资
*/ */

View File

@ -10,6 +10,7 @@ import com.bonus.common.biz.enums.MaMachineStatusEnum;
import com.bonus.common.biz.enums.PurchaseTaskStatusEnum; import com.bonus.common.biz.enums.PurchaseTaskStatusEnum;
import com.bonus.common.biz.enums.QrBoxStatusEnum; import com.bonus.common.biz.enums.QrBoxStatusEnum;
import com.bonus.common.core.utils.DateUtils; import com.bonus.common.core.utils.DateUtils;
import com.bonus.common.core.utils.StringUtils;
import com.bonus.common.core.web.domain.AjaxResult; import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.basic.domain.BmQrBoxInfo; import com.bonus.material.basic.domain.BmQrBoxInfo;
@ -149,7 +150,11 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
List<BmQrBoxInfo> boxBindList = bmQrBoxMapper.getBoxBindList(boxBindWarehouseDto.getBoxId()); List<BmQrBoxInfo> boxBindList = bmQrBoxMapper.getBoxBindList(boxBindWarehouseDto.getBoxId());
boxBindList.removeIf(Objects::isNull); boxBindList.removeIf(Objects::isNull);
boxBindList.removeIf(item -> item.getMaStatus() == null); boxBindList.removeIf(item -> item.getMaStatus() == null);
boxBindList.removeIf(item -> !item.getMaStatus().equals(MaMachineStatusEnum.NEW_PURCHASE.getStatusName())); boxBindList.removeIf(item ->
!item.getMaStatus().equals(MaMachineStatusEnum.NEW_PURCHASE.getStatusName()) &&
!item.getMaStatus().equals(MaMachineStatusEnum.REPAIR_TO_STORE.getStatusName()) &&
!item.getMaStatus().equals(MaMachineStatusEnum.BACK_TO_STORE.getStatusName())
);
boxBindList.removeIf(item -> item.getMaTypeId() == null || !Objects.equals(item.getMaTypeId(), boxBindWarehouseDto.getMaTypeId())); boxBindList.removeIf(item -> item.getMaTypeId() == null || !Objects.equals(item.getMaTypeId(), boxBindWarehouseDto.getMaTypeId()));
@ -159,19 +164,16 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "新购任务不存在此物资类型,请确认录入是否正确"); return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), "新购任务不存在此物资类型,请确认录入是否正确");
} }
// 更新入库数量 // 更新入库数量
purchaseStorageMapper.updateNum(String.valueOf(purchaseDetailId), BigDecimal.valueOf(boxBindList.size())); purchaseStorageMapper.updateNum(purchaseDetailId, BigDecimal.valueOf(boxBindList.size()));
// 更新物资类型库存数量 // 更新物资类型库存数量
purchaseStorageMapper.updateStorageNum(BigDecimal.valueOf(boxBindList.size()), Math.toIntExact(boxBindWarehouseDto.getMaTypeId())); purchaseStorageMapper.updateStorageNum(BigDecimal.valueOf(boxBindList.size()), Math.toIntExact(boxBindWarehouseDto.getMaTypeId()));
// 更新物资设备状态 // 更新物资设备状态
boxBindList.forEach(item -> { boxBindList.forEach(item -> {
item.setMaStatus(MaMachineStatusEnum.IN_STORE.getStatus().toString()); item.setMaStatus(MaMachineStatusEnum.IN_STORE.getStatus().toString());
purchaseStorageMapper.updateMachineByCode(new PurchaseDto() purchaseStorageMapper.updateMachineByCode(new PurchaseDto().setMaCode(item.getMaCode()).setTypeId(Math.toIntExact(boxBindWarehouseDto.getMaTypeId())));
.setMaCode(item.getMaCode())
.setTypeId(Math.toIntExact(boxBindWarehouseDto.getMaTypeId()))
);
}); });
// 更新新购验收明细状态 // 更新新购验收明细状态
purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Math.toIntExact(purchaseDetailId)); purchaseStorageMapper.updateInputStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Math.toIntExact(purchaseDetailId));
// TODO 缺少修改TmTask表状态 // TODO 缺少修改TmTask表状态
// ---------------- 返回前端 ------------------------------------- // ---------------- 返回前端 -------------------------------------
@ -318,6 +320,19 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg()); return result > 0 ? AjaxResult.success(HttpCodeEnum.SUCCESS.getMsg()) : AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
} }
/**
* 通过QR_CODE 查询物资信息
*
* @param qrCode 二维码编码
*/
@Override
public AjaxResult getMaInfoByQrCode(String qrCode) {
if (StringUtils.isBlank(qrCode)) {
return AjaxResult.error("二维码编码为空,请完善后重试!");
}
return AjaxResult.success(bmQrBoxMapper.getMaInfoByQrCode(qrCode));
}
/** /**
* APP - 扫码绑定物资 * APP - 扫码绑定物资
* *
@ -325,9 +340,8 @@ public class BmQrBoxServiceImpl implements BmQrBoxService {
*/ */
@Override @Override
public AjaxResult addQrcodeBoxBind(BmQrBoxInfo bmQrBoxInfo) { public AjaxResult addQrcodeBoxBind(BmQrBoxInfo bmQrBoxInfo) {
if (bmQrBoxInfo.getBoxId() == null || bmQrBoxInfo.getQrCode() == null) { if (bmQrBoxInfo.getBoxId() == null) {return AjaxResult.error("标准箱ID为空请完善后重试!");}
return AjaxResult.error("标准箱ID或QR编码为空请完善后重试!"); if (bmQrBoxInfo.getQrCode() == null) {return AjaxResult.error("QR编码为空请完善后重试!");}
}
try { try {
// 物资状态要求是待入库在库状态 // 物资状态要求是待入库在库状态

View File

@ -1,7 +1,9 @@
package com.bonus.material.basic.service.impl; package com.bonus.material.basic.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import com.alibaba.nacos.common.utils.CollectionUtils; import com.alibaba.nacos.common.utils.CollectionUtils;
import com.alibaba.nacos.common.utils.StringUtils; import com.alibaba.nacos.common.utils.StringUtils;
import com.bonus.common.biz.enums.MaTypeManageTypeEnum;
import com.bonus.material.basic.domain.*; import com.bonus.material.basic.domain.*;
import com.bonus.material.basic.mapper.ComplexQueryMapper; import com.bonus.material.basic.mapper.ComplexQueryMapper;
import com.bonus.material.basic.service.ComplexQueryService; import com.bonus.material.basic.service.ComplexQueryService;
@ -278,6 +280,19 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
} }
} }
} }
// 查询在库具体编码code
List<StorageInfo> codeList = complexQueryMapper.selectMaCodeByTypeId(bean);
// 1. 创建一个 Set 存储 codeList 中的 typeId maCode 的组合键
Set<String> validCodes = codeList.stream()
.filter(code -> code.getTypeId() != null && code.getMaCode() != null)
.map(code -> code.getTypeId() + "-" + code.getMaCode())
.collect(Collectors.toSet());
if (CollectionUtil.isNotEmpty(codeList) && CollectionUtil.isNotEmpty(list)) {
list = list.stream()
.filter(item -> validCodes.contains(item.getTypeId() + "-" + item.getMaCode()))
.collect(Collectors.toList());
}
if (StringUtils.isNotBlank(bean.getKeyWord())) { if (StringUtils.isNotBlank(bean.getKeyWord())) {
String keyword = bean.getKeyWord(); String keyword = bean.getKeyWord();
return list.stream().filter(item -> { return list.stream().filter(item -> {
@ -321,32 +336,46 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
public List<PurchaseInputInfo> getPurchaseRecordList(PurchaseInputInfo bean) { public List<PurchaseInputInfo> getPurchaseRecordList(PurchaseInputInfo bean) {
List<PurchaseInputInfo> recordList = complexQueryMapper.getPurchaseRecordList(bean); List<PurchaseInputInfo> recordList = complexQueryMapper.getPurchaseRecordList(bean);
List<PurchaseInputInfo> tempList = new ArrayList<>(); List<PurchaseInputInfo> tempList = new ArrayList<>();
if (CollectionUtils.isNotEmpty(recordList)) {
Iterator<PurchaseInputInfo> iterator = recordList.iterator(); if (MaTypeManageTypeEnum.NUMBER_DEVICE.getTypeId().toString().equals(recordList.get(0).getManageType())) {
while (iterator.hasNext()) { if (StringUtils.isNotBlank(bean.getKeyWord())) {
PurchaseInputInfo purchaseInputInfo = iterator.next(); String keyword = bean.getKeyWord();
// 根据任务id和类型id查询未入库编码信息 return recordList.stream().filter(item -> {
List<PurchaseInputInfo> maCodeList = complexQueryMapper.selectMaCodeByTaskIdAndTypeId(purchaseInputInfo.getTaskId(), bean.getTypeId()); return (StringUtils.isNotBlank(item.getCode()) && item.getCode().contains(keyword)) ||
if (CollectionUtils.isNotEmpty(maCodeList)) { (StringUtils.isNotBlank(item.getTypeName()) && item.getTypeName().contains(keyword)) ||
boolean addedPurchaseInputInfo = false; (StringUtils.isNotBlank(item.getTypeModelName()) && item.getTypeModelName().contains(keyword)) ||
for (PurchaseInputInfo info : maCodeList) { (StringUtils.isNotBlank(item.getMaKeeper()) && item.getMaKeeper().contains(keyword));
if (purchaseInputInfo.getInputNum().compareTo(BigDecimal.valueOf(maCodeList.size())) > 0) { }).collect(Collectors.toList());
purchaseInputInfo.setInputNum(purchaseInputInfo.getInputNum().subtract(BigDecimal.valueOf(maCodeList.size()))); }
String maCode = info.getMaCode(); return recordList;
BeanUtils.copyProperties(purchaseInputInfo, info); } else {
info.setMaCode(maCode); Iterator<PurchaseInputInfo> iterator = recordList.iterator();
info.setInputNum(BigDecimal.ONE); while (iterator.hasNext()) {
tempList.add(info); PurchaseInputInfo purchaseInputInfo = iterator.next();
if (!addedPurchaseInputInfo) { // 根据任务id和类型id查询未入库编码信息
tempList.add(purchaseInputInfo); List<PurchaseInputInfo> maCodeList = complexQueryMapper.selectMaCodeByTaskIdAndTypeId(purchaseInputInfo.getTaskId(), bean.getTypeId());
addedPurchaseInputInfo = true; if (CollectionUtils.isNotEmpty(maCodeList)) {
boolean addedPurchaseInputInfo = false;
for (PurchaseInputInfo info : maCodeList) {
if (purchaseInputInfo.getInputNum().compareTo(BigDecimal.valueOf(maCodeList.size())) > 0) {
purchaseInputInfo.setInputNum(purchaseInputInfo.getInputNum().subtract(BigDecimal.valueOf(maCodeList.size())));
String maCode = info.getMaCode();
BeanUtils.copyProperties(purchaseInputInfo, info);
info.setMaCode(maCode);
info.setInputNum(BigDecimal.ONE);
tempList.add(info);
if (!addedPurchaseInputInfo) {
tempList.add(purchaseInputInfo);
addedPurchaseInputInfo = true;
}
} else if (purchaseInputInfo.getInputNum().compareTo(BigDecimal.valueOf(maCodeList.size())) == 0) {
String maCode = info.getMaCode();
BeanUtils.copyProperties(purchaseInputInfo, info);
info.setMaCode(maCode);
info.setInputNum(BigDecimal.ONE);
tempList.add(info);
}
} }
} else if (purchaseInputInfo.getInputNum().compareTo(BigDecimal.valueOf(maCodeList.size())) == 0) {
String maCode = info.getMaCode();
BeanUtils.copyProperties(purchaseInputInfo, info);
info.setMaCode(maCode);
info.setInputNum(BigDecimal.ONE);
tempList.add(info);
} }
} }
} }
@ -357,6 +386,7 @@ public class ComplexQueryServiceImpl implements ComplexQueryService {
return (StringUtils.isNotBlank(item.getMaCode()) && item.getMaCode().contains(keyword)) || return (StringUtils.isNotBlank(item.getMaCode()) && item.getMaCode().contains(keyword)) ||
(StringUtils.isNotBlank(item.getTypeName()) && item.getTypeName().contains(keyword)) || (StringUtils.isNotBlank(item.getTypeName()) && item.getTypeName().contains(keyword)) ||
(StringUtils.isNotBlank(item.getTypeModelName()) && item.getTypeModelName().contains(keyword)) || (StringUtils.isNotBlank(item.getTypeModelName()) && item.getTypeModelName().contains(keyword)) ||
(StringUtils.isNotBlank(item.getCode()) && item.getCode().contains(keyword)) ||
(StringUtils.isNotBlank(item.getMaKeeper()) && item.getMaKeeper().contains(keyword)); (StringUtils.isNotBlank(item.getMaKeeper()) && item.getMaKeeper().contains(keyword));
}).collect(Collectors.toList()); }).collect(Collectors.toList());
} }

View File

@ -1,12 +1,9 @@
package com.bonus.material.lease.domain.vo; package com.bonus.material.lease.domain.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonProperty;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
import lombok.Data; import lombok.Data;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date;
/** /**
* @Author ma_sh * @Author ma_sh
@ -49,12 +46,10 @@ public class LeaseOutVo {
private String holdingTime; private String holdingTime;
@ApiModelProperty("试验日期") @ApiModelProperty("试验日期")
@JsonFormat(pattern = "yyyy-MM-dd") private String testTime;
private Date testTime;
@ApiModelProperty("下次试验日期") @ApiModelProperty("下次试验日期")
@JsonFormat(pattern = "yyyy-MM-dd") private String nextTestTime;
private Date nextTestTime;
@ApiModelProperty("验收结论") @ApiModelProperty("验收结论")
private String checkResult; private String checkResult;

View File

@ -375,11 +375,12 @@ public class LeaseApplyInfoServiceImpl implements ILeaseApplyInfoService {
String fileName = "施工机具设备出库检验记录表"; String fileName = "施工机具设备出库检验记录表";
String projectName = ""; String projectName = "";
String unit = ""; String unit = "";
List<LeaseOutVo> list = new ArrayList<>();
if (leaseApplyRequestVo != null && leaseApplyRequestVo.getLeaseApplyInfo() != null) { if (leaseApplyRequestVo != null && leaseApplyRequestVo.getLeaseApplyInfo() != null) {
projectName ="领用工程:" + leaseApplyRequestVo.getLeaseApplyInfo().getProjectName(); projectName ="领用工程:" + leaseApplyRequestVo.getLeaseApplyInfo().getLeaseProject();
unit ="使用单位:" + leaseApplyRequestVo.getLeaseApplyInfo().getLeaseUnit(); unit ="使用单位:" + leaseApplyRequestVo.getLeaseApplyInfo().getLeaseUnit();
list = leaseApplyRequestVo.getLeaseOutVoList();
} }
List<LeaseOutVo> list = leaseApplyRequestVo.getLeaseOutVoList();
expOutExcel(response,list,fileName,projectName,unit); expOutExcel(response,list,fileName,projectName,unit);
} catch (Exception e) { } catch (Exception e) {
log.error(e.toString(), e); log.error(e.toString(), e);

View File

@ -42,7 +42,7 @@ public class PurchaseBindController extends BaseController {
@PreventRepeatSubmit @PreventRepeatSubmit
@RequiresPermissions("purchase:bind:add") @RequiresPermissions("purchase:bind:add")
@PostMapping("/bind") @PostMapping("/bind")
public AjaxResult bind(@RequestBody PurchaseDto dto) { public AjaxResult bind(@RequestBody @NotNull(message = "参数不能为空") PurchaseDto dto) {
return purchaseBindService.bind(dto); return purchaseBindService.bind(dto);
} }

View File

@ -47,7 +47,6 @@ public class PurchaseStorageController extends BaseController {
@ApiOperation(value = "查询待绑定编号机具详情") @ApiOperation(value = "查询待绑定编号机具详情")
@PreventRepeatSubmit
// @RequiresPermissions("purchase:storage:query") // @RequiresPermissions("purchase:storage:query")
@PostMapping("/getMachineById") @PostMapping("/getMachineById")
public AjaxResult getMachineById(@RequestBody PurchaseDto dto) { public AjaxResult getMachineById(@RequestBody PurchaseDto dto) {

View File

@ -1,5 +1,6 @@
package com.bonus.material.purchase.domain.vo; package com.bonus.material.purchase.domain.vo;
import com.alibaba.druid.sql.visitor.functions.Char;
import com.bonus.common.core.annotation.Excel; import com.bonus.common.core.annotation.Excel;
import com.fasterxml.jackson.annotation.JsonFormat; import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty; import io.swagger.annotations.ApiModelProperty;
@ -19,7 +20,7 @@ public class PurchaseVo {
private Integer taskId; private Integer taskId;
@ApiModelProperty(value = "二级明细id") @ApiModelProperty(value = "二级明细id")
private String purchaseId; private Long purchaseId;
@ApiModelProperty(value="typeId") @ApiModelProperty(value="typeId")
private Integer typeId; private Integer typeId;
@ -112,6 +113,9 @@ public class PurchaseVo {
@ApiModelProperty(value = "二维码路径") @ApiModelProperty(value = "二维码路径")
private String qrUrl; private String qrUrl;
@ApiModelProperty(value = "是否绑定")
private Char isBind;
@ApiModelProperty(value = "异常数量") @ApiModelProperty(value = "异常数量")
private BigDecimal exceptionNum; private BigDecimal exceptionNum;
} }

View File

@ -48,6 +48,8 @@ public interface PurchaseBindMapper {
*/ */
int add(PurchaseDto purchaseDto); int add(PurchaseDto purchaseDto);
int bindMaCodeByQrCode(PurchaseDto purchaseDto);
/** /**
* 查询二维码code * 查询二维码code
* @param genMonth * @param genMonth
@ -80,7 +82,7 @@ public interface PurchaseBindMapper {
* @param updatedStatus * @param updatedStatus
* @param purchaseId * @param purchaseId
*/ */
int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") String purchaseId); int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Long purchaseId);
/** /**
* 更新数量 * 更新数量
@ -90,6 +92,8 @@ public interface PurchaseBindMapper {
*/ */
int updateNum(@Param("dto") PurchaseDto dto, @Param("num") int num); int updateNum(@Param("dto") PurchaseDto dto, @Param("num") int num);
int updateStatusWhereNum(@Param("dto") PurchaseDto dto);
/** /**
* 根据id查询详情 * 根据id查询详情
* @param purchaseDto * @param purchaseDto

View File

@ -34,7 +34,7 @@ public interface PurchaseStorageMapper {
* @param bindNum * @param bindNum
* @return * @return
*/ */
int updateNum(@Param("id") String purchaseId, @Param("bindNum") BigDecimal bindNum); int updateNum(@Param("id") Long purchaseId, @Param("bindNum") BigDecimal bindNum);
/** /**
* 更新状态 * 更新状态
@ -44,6 +44,14 @@ public interface PurchaseStorageMapper {
*/ */
int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Integer id); int updateStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Integer id);
/**
* 更新入库状态
* @param updatedStatus 要修改的状态
* @param id 要修改的details表id
* @return 修改条数
*/
int updateInputStatusById(@Param("updatedStatus") Integer updatedStatus, @Param("id") Integer id);
/** /**
* 新增机具入库记录 * 新增机具入库记录
* @param dto * @param dto

View File

@ -12,7 +12,9 @@ import com.bonus.common.core.web.domain.AjaxResult;
import com.bonus.common.security.utils.SecurityUtils; import com.bonus.common.security.utils.SecurityUtils;
import com.bonus.material.purchase.config.RemoteConfig; import com.bonus.material.purchase.config.RemoteConfig;
import com.bonus.common.biz.domain.purchase.PurchaseDto; import com.bonus.common.biz.domain.purchase.PurchaseDto;
import com.bonus.material.purchase.domain.PurchaseCheckDetails;
import com.bonus.material.purchase.mapper.PurchaseBindMapper; import com.bonus.material.purchase.mapper.PurchaseBindMapper;
import com.bonus.material.purchase.mapper.PurchaseCheckDetailsMapper;
import com.bonus.material.purchase.mapper.PurchaseStorageMapper; import com.bonus.material.purchase.mapper.PurchaseStorageMapper;
import com.bonus.material.purchase.service.IPurchaseBindService; import com.bonus.material.purchase.service.IPurchaseBindService;
import com.bonus.material.purchase.domain.vo.PurchaseVo; import com.bonus.material.purchase.domain.vo.PurchaseVo;
@ -48,6 +50,9 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
@Resource @Resource
private PurchaseStorageMapper purchaseStorageMapper; private PurchaseStorageMapper purchaseStorageMapper;
@Resource
private PurchaseCheckDetailsMapper purchaseCheckDetailsMapper;
/** /**
* 查询所有绑定信息 * 查询所有绑定信息
@ -119,7 +124,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
/** /**
* 绑定 * 绑定
* @param dto * @param dto 绑定物资信息
* @return * @return
*/ */
@Override @Override
@ -137,45 +142,45 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
return AjaxResult.error(1114,"设备编码与库中重复,请勿重复添加"); return AjaxResult.error(1114,"设备编码与库中重复,请勿重复添加");
} }
} }
int result = 0;
for (PurchaseDto purchaseDto : dto.getDtoList()) { for (PurchaseDto purchaseDto : dto.getDtoList()) {
purchaseDto.setCreateBy(SecurityUtils.getUserId().toString()); purchaseDto.setCreateBy(SecurityUtils.getUserId().toString()).setCreateTime(DateUtils.getNowDate());
purchaseDto.setCreateTime(DateUtils.getNowDate()); purchaseDto.setTaskId(dto.getTaskId()).setTypeId(dto.getTypeId()).setStatus(0);
purchaseDto.setTaskId(dto.getTaskId()); if (purchaseDto.getQrCode() != null) {
purchaseDto.setTypeId(dto.getTypeId()); if (purchaseBindMapper.bindMaCodeByQrCode(purchaseDto) != 1) {
purchaseDto.setStatus(0); return AjaxResult.error(1115,"绑定maCode时SQL执行失败!");
result += purchaseBindMapper.add(purchaseDto); }
result += purchaseStorageMapper.insertMachine(purchaseDto); } else {
if (dto.getTypeId() != null) {
purchaseDto.setTypeId(dto.getTypeId());
}
purchaseBindMapper.insert(purchaseDto);
}
if (purchaseStorageMapper.insertMachine(purchaseDto) != 1) {
return AjaxResult.error(1116,"插入maMachine时SQL执行失败!");
}
} }
//根据前端传参更新绑定数量 // 更新绑定数量并刷新状态
result += purchaseBindMapper.updateNum(dto, dto.getDtoList().size()); if (purchaseBindMapper.updateNum(dto, dto.getDtoList().size()) < 1) {
return AjaxResult.error(1117,"更新绑定数量时SQL执行失败!");
} else {
purchaseBindMapper.updateStatusWhereNum(dto);
}
//根据任务id和类型id查询状态 //根据任务id和类型id查询状态
List<PurchaseVo> voList = purchaseBindMapper.selectPurchaseCheckInfoById(dto); List<PurchaseVo> voList = purchaseBindMapper.selectPurchaseCheckInfoById(dto);
if (CollectionUtils.isNotEmpty(voList)) { if (CollectionUtils.isNotEmpty(voList)) {
for (PurchaseVo purchaseVo : voList) { for (PurchaseVo purchaseVo : voList) {
if (purchaseVo.getBindNum().equals(purchaseVo.getCheckNum())) { if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) == 0) {
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), purchaseVo.getPurchaseId()); purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), purchaseVo.getPurchaseId());
} } else if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) < 0) {
if (purchaseVo.getBindNum().compareTo(purchaseVo.getCheckNum()) <0 ) {
purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND.getStatus(), purchaseVo.getPurchaseId()); purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND.getStatus(), purchaseVo.getPurchaseId());
} else {
// 抛出异常 执行回滚
throw new RuntimeException("绑定数量大于验收数量,请重新绑定!");
} }
} }
} }
// PurchaseDto purchaseDto = new PurchaseDto(); return AjaxResult.success("绑定成功");
// purchaseDto.setTaskId(dto.getTaskId());
// List<PurchaseVo> list = purchaseBindMapper.getDetails(purchaseDto);
// Map<Integer, List<Integer>> groupedByIdStatus = list.stream()
// .collect(Collectors.groupingBy(
// PurchaseVo::getTaskId,
// Collectors.mapping(PurchaseVo::getStatus, Collectors.toList())
// ));
// result += groupedByIdStatus.entrySet().stream()
// .mapToInt(entry -> updateTaskStatus(entry.getKey(), entry.getValue()))
// .sum();
if (result > 0) {
return AjaxResult.success("绑定成功");
}
return AjaxResult.error(HttpCodeEnum.FAIL.getCode(), HttpCodeEnum.FAIL.getMsg());
} }
/** /**
@ -249,7 +254,7 @@ public class PurchaseBindServiceImpl implements IPurchaseBindService {
// 二级页面驳回 // 二级页面驳回
String[] idList = dto.getPurchaseId().split(","); String[] idList = dto.getPurchaseId().split(",");
for (String purchaseId : idList) { for (String purchaseId : idList) {
result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), purchaseId); result += purchaseBindMapper.updateStatusById(PurchaseTaskStatusEnum.TO_BIND_AFTER_REJECT.getStatus(), Long.valueOf(purchaseId));
} }
} }
if (result > 0) { if (result > 0) {

View File

@ -23,10 +23,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Arrays; import java.util.*;
import java.util.List;
import java.util.Map;
import java.util.Optional;
import java.util.stream.Collectors; import java.util.stream.Collectors;
/** /**
@ -100,10 +97,6 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
public AjaxResult warehouse(PurchaseDto dto) { public AjaxResult warehouse(PurchaseDto dto) {
//内层入库 //内层入库
return processByPurchaseIds(dto); return processByPurchaseIds(dto);
/*if (dto.getTaskId() != null) {
//外层入库
return processByTaskIds(dto);
}*/
} }
/** /**
@ -187,7 +180,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
details = purchaseBindMapper.getDetails(dto); details = purchaseBindMapper.getDetails(dto);
for (PurchaseVo purchaseVo : details) { for (PurchaseVo purchaseVo : details) {
if (purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus()) || purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_STORE.getStatus())) { if (purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus()) || purchaseVo.getStatus().equals(PurchaseTaskStatusEnum.TO_STORE.getStatus())) {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus(), Integer.parseInt(purchaseVo.getPurchaseId())); result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE_AFTER_REJECT.getStatus(), Math.toIntExact(purchaseVo.getPurchaseId()));
} }
} }
details = purchaseBindMapper.getDetails(dto); details = purchaseBindMapper.getDetails(dto);
@ -222,7 +215,10 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
} else { } else {
//编码入库 //编码入库
List<PurchaseVo> purchaseVoList = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto); List<PurchaseVo> purchaseVoList = purchaseBindMapper.selectPurchaseCheckInfoById(purchaseDto);
result += purchaseStorageMapper.updateNum(purchaseDto.getPurchaseId(), BigDecimal.valueOf(purchaseDto.getInPutList().size())); if (CollectionUtils.isEmpty(purchaseDto.getInPutList())) {
purchaseDto.setInPutList(new ArrayList<>());
}
result += purchaseStorageMapper.updateNum(Long.valueOf(purchaseDto.getPurchaseId()), BigDecimal.valueOf(purchaseDto.getInPutList().size()));
for (PurchaseDto dto : purchaseDto.getInPutList()) { for (PurchaseDto dto : purchaseDto.getInPutList()) {
if (CollectionUtils.isNotEmpty(purchaseVoList)) { if (CollectionUtils.isNotEmpty(purchaseVoList)) {
for (PurchaseVo purchaseVo : purchaseVoList) { for (PurchaseVo purchaseVo : purchaseVoList) {
@ -233,13 +229,13 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
} }
} }
dto.setTypeId(purchaseDto.getTypeId()); dto.setTypeId(purchaseDto.getTypeId());
result += purchaseStorageMapper.updateMachineByCode(dto); if (purchaseStorageMapper.updateMachineByCode(dto) < 1) {throw new RuntimeException("入库失败,更新物资入库状态0条");}
purchaseStorageMapper.updateStorageNum(BigDecimal.ONE, dto.getTypeId()); if (purchaseStorageMapper.updateStorageNum(BigDecimal.ONE, dto.getTypeId()) < 1) {throw new RuntimeException("入库失败,库存增加0");}
List<PurchaseCheckDetails> list = purchaseBindMapper.getMachineById(purchaseDto); List<PurchaseCheckDetails> bindMaList = purchaseBindMapper.getMachineById(purchaseDto);
if (CollectionUtils.isNotEmpty(list)) { if (CollectionUtils.isNotEmpty(bindMaList)) {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId())); result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.TO_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId()));
} else { } else {
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId())); result += purchaseStorageMapper.updateInputStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Integer.parseInt(purchaseDto.getPurchaseId()));
} }
} }
} }
@ -325,7 +321,7 @@ public class PurchaseStorageServiceImpl implements IPurchaseStorageService {
return details.stream() return details.stream()
.mapToInt(detail -> { .mapToInt(detail -> {
int result = purchaseStorageMapper.updateNum(detail.getPurchaseId(), detail.getBindNum()); int result = purchaseStorageMapper.updateNum(detail.getPurchaseId(), detail.getBindNum());
result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Integer.parseInt(detail.getPurchaseId())); result += purchaseStorageMapper.updateStatusById(PurchaseTaskStatusEnum.IN_STORE.getStatus(), Math.toIntExact(detail.getPurchaseId()));
if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(Integer.valueOf(detail.getManageType()))) { if (MaTypeManageTypeEnum.CODE_DEVICE.getTypeId().equals(Integer.valueOf(detail.getManageType()))) {
//根据类型id获取设备详情信息 //根据类型id获取设备详情信息
//result += purchaseStorageMapper.insertMachine(detail); //result += purchaseStorageMapper.insertMachine(detail);

View File

@ -562,7 +562,9 @@ public class RepairAuditDetailsServiceImpl implements IRepairAuditDetailsService
List<RepairInputDetails> inputList = new ArrayList<>(); List<RepairInputDetails> inputList = new ArrayList<>();
for (RepairAuditDetails details : repairAuditDetailsByQuery) { for (RepairAuditDetails details : repairAuditDetailsByQuery) {
//修改机具状态 //修改机具状态
repairAuditDetailsMapper.updateMachine(details); if (details.getMaId() != null) {
repairAuditDetailsMapper.updateMachine(details);
}
RepairInputDetails inputVo = new RepairInputDetails(); RepairInputDetails inputVo = new RepairInputDetails();
BeanUtils.copyProperties(details, inputVo); BeanUtils.copyProperties(details, inputVo);
inputVo.setRepairNum(details.getRepairedNum()); inputVo.setRepairNum(details.getRepairedNum());

View File

@ -427,14 +427,10 @@ public class RepairServiceImpl implements RepairService {
repairDeviceVOList.removeIf(Objects::isNull); repairDeviceVOList.removeIf(Objects::isNull);
for (RepairDeviceVO bean : repairDeviceVOList) { for (RepairDeviceVO bean : repairDeviceVOList) {
if (bean.getManageType() == null) { if (bean.getManageType() == null) {throw new ServiceException("请选择物资管理方式");}
throw new ServiceException("请选择物资管理方式");
}
if (Objects.equals(MaTypeManageTypeEnum.CODE_DEVICE.getTypeId(), bean.getManageType())) { if (Objects.equals(MaTypeManageTypeEnum.CODE_DEVICE.getTypeId(), bean.getManageType())) {
// 物资管理方式--编码管理 // 物资管理方式--编码管理
if (bean.getRepairType() == null) { if (bean.getRepairType() == null) {continue;}
continue;
}
// 根据维修方式更新维修数量报废数量 // 根据维修方式更新维修数量报废数量
switch (bean.getRepairType()) { switch (bean.getRepairType()) {
case INNER_REPAIR: { case INNER_REPAIR: {

View File

@ -20,6 +20,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bqb.box_code as boxCode, bqb.box_code as boxCode,
bqb.box_type as boxType, bqb.box_type as boxType,
bqb.box_status as status, bqb.box_status as status,
case bqb.box_status
when '0' then '待创建'
when '1' then '待录入'
when '2' then '待移交'
when '3' then '待接收'
when '4' then '已接收'
when '5' then '移交被驳回'
else ''
end as statusName,
bqb.create_by as createBy, bqb.create_by as createBy,
bqb.create_time as createTime, bqb.create_time as createTime,
bqb.update_by as updateBy, bqb.update_by as updateBy,
@ -128,22 +137,15 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update> </update>
<delete id="deleteById"> <delete id="deleteById">
delete delete from bm_qrcode_box where box_id = #{boxId}
from bm_qrcode_box
where box_id = #{boxId}
</delete> </delete>
<delete id="unBindQrcodeBox"> <delete id="unBindQrcodeBox">
delete delete from bm_qrcode_box_bind where id = #{id}
from bm_qrcode_box_bind
where id = #{id}
</delete> </delete>
<delete id="deleteBoxBind"> <delete id="deleteBoxBind">
delete delete from bm_qrcode_box_bind where box_id = #{boxId} and ma_id = #{maId}
from bm_qrcode_box_bind
where box_id = #{boxId}
and ma_id = #{maId}
</delete> </delete>
<insert id="addQrcodeBoxBind"> <insert id="addQrcodeBoxBind">
@ -218,4 +220,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bqb.box_code = #{boxCode} AND bqb.box_code = #{boxCode} AND
mt.type_id = #{maTypeId} mt.type_id = #{maTypeId}
</select> </select>
<select id="getMaInfoByQrCode" resultType="com.bonus.material.basic.domain.BmQrBoxInfo">
select
bqi.id, bqi.qr_code, bqi.type_id as maTypeId, bqi.ma_code , mm.ma_id
from
bm_qrcode_info bqi
left join
ma_machine mm on bqi.type_id = mm.type_id and bqi.ma_code = mm.ma_code
where
bqi.del_flag is null or bqi.del_flag = '0'
group by
bqi.id limit 1
</select>
</mapper> </mapper>

View File

@ -489,6 +489,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id LEFT JOIN ma_type mt3 ON mt3.type_id = mt2.parent_id
LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id LEFT JOIN ma_type mt4 ON mt4.type_id = mt3.parent_id
WHERE IFNULL(pcd.check_num, 0) - IFNULL(pcd.input_num, 0) > 0 WHERE IFNULL(pcd.check_num, 0) - IFNULL(pcd.input_num, 0) > 0
and pcd.status in (3,4, 13,14)
GROUP BY GROUP BY
mt.type_id) AS subquery4 ON subquery4.type_id = mt.type_id mt.type_id) AS subquery4 ON subquery4.type_id = mt.type_id
LEFT JOIN ( LEFT JOIN (
@ -552,14 +553,6 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="typeId != null"> <if test="typeId != null">
AND bs.type_id = #{typeId} AND bs.type_id = #{typeId}
</if> </if>
<if test="keyWord != null and keyWord != ''">
AND (
mt1.type_name like concat('%',#{keyWord},'%') or
mt.type_name like concat('%',#{keyWord},'%') or
bs.creator like concat('%',#{keyWord},'%') or
su.nick_name like concat('%',#{keyWord},'%')
)
</if>
GROUP BY bs.ma_code, mt.type_id, mt1.type_name, mt.type_name, bs.ma_code, GROUP BY bs.ma_code, mt.type_id, mt1.type_name, mt.type_name, bs.ma_code,
bs.in_num, bs.creator, bs.create_time, tt.CODE, mt.buy_price bs.in_num, bs.creator, bs.create_time, tt.CODE, mt.buy_price
</select> </select>
@ -571,7 +564,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt.buy_price AS buyPrice, mt.buy_price AS buyPrice,
sai.num AS usNum, sai.num AS usNum,
mm.ma_code AS maCode, mm.ma_code AS maCode,
lai.`code` AS leaseCode, lai.`code` AS code,
bp.pro_name AS projectName,
GROUP_CONCAT(DISTINCT su.nick_name ORDER BY su.nick_name SEPARATOR ', ') AS maKeeper, GROUP_CONCAT(DISTINCT su.nick_name ORDER BY su.nick_name SEPARATOR ', ') AS maKeeper,
lod.create_by AS creator, lod.create_by AS creator,
lod.create_time AS outTime lod.create_time AS outTime
@ -583,6 +577,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
LEFT JOIN sys_user su ON mtk.user_id = su.user_id LEFT JOIN sys_user su ON mtk.user_id = su.user_id
LEFT JOIN ma_machine mm ON mm.ma_id = sai.ma_id LEFT JOIN ma_machine mm ON mm.ma_id = sai.ma_id
LEFT JOIN lease_apply_info lai ON lai.id = sai.lease_id LEFT JOIN lease_apply_info lai ON lai.id = sai.lease_id
LEFT JOIN bm_agreement_info bai ON bai.agreement_id = sai.agreement_id
LEFT JOIN bm_project bp ON bai.project_id = bp.pro_id
LEFT JOIN ( SELECT parent_id, create_time, create_by FROM lease_out_details GROUP BY parent_id, create_by ) AS lod ON lod.parent_id = lai.id LEFT JOIN ( SELECT parent_id, create_time, create_by FROM lease_out_details GROUP BY parent_id, create_by ) AS lod ON lod.parent_id = lai.id
WHERE WHERE
sai.end_time IS NULL sai.end_time IS NULL
@ -597,7 +593,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mm.ma_code like concat('%',#{keyWord},'%') or mm.ma_code like concat('%',#{keyWord},'%') or
lai.`code` like concat('%',#{keyWord},'%') or lai.`code` like concat('%',#{keyWord},'%') or
lod.create_by like concat('%',#{keyWord},'%') or lod.create_by like concat('%',#{keyWord},'%') or
su.nick_name like concat('%',#{keyWord},'%') su.nick_name like concat('%',#{keyWord},'%') or
bp.pro_name like concat('%',#{keyWord},'%')
) )
</if> </if>
GROUP BY mm.ma_code,lai.`code`,mt.type_id GROUP BY mm.ma_code,lai.`code`,mt.type_id
@ -648,9 +645,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt.type_name AS typeModelName, mt.type_name AS typeModelName,
mt.buy_price AS buyPrice, mt.buy_price AS buyPrice,
IFNULL( pcd.check_num, 0 ) - IFNULL( pcd.input_num, 0 ) AS inputNum, IFNULL( pcd.check_num, 0 ) - IFNULL( pcd.input_num, 0 ) AS inputNum,
tt.`code` AS purchaseCode, tt.`code` AS code,
GROUP_CONCAT( DISTINCT su.nick_name ORDER BY su.nick_name SEPARATOR ', ' ) AS maKeeper, GROUP_CONCAT( DISTINCT su.nick_name ORDER BY su.nick_name SEPARATOR ', ' ) AS maKeeper,
pcd.check_time AS checkTime pcd.check_time AS checkTime,
mt.manage_type as manageType
FROM FROM
purchase_check_details pcd purchase_check_details pcd
LEFT JOIN ma_type mt ON mt.type_id = pcd.type_id LEFT JOIN ma_type mt ON mt.type_id = pcd.type_id
@ -673,7 +671,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt.type_name AS typeModelName, mt.type_name AS typeModelName,
mt.buy_price AS buyPrice, mt.buy_price AS buyPrice,
IFNULL(rid.repair_num, 0) - IFNULL(rid.input_num, 0) AS repairInputNum, IFNULL(rid.repair_num, 0) - IFNULL(rid.input_num, 0) AS repairInputNum,
tt.`code` AS repairInputCode, tt.`code` AS inputCode,
GROUP_CONCAT(DISTINCT su.nick_name ORDER BY su.nick_name SEPARATOR ', ') AS maKeeper, GROUP_CONCAT(DISTINCT su.nick_name ORDER BY su.nick_name SEPARATOR ', ') AS maKeeper,
GROUP_CONCAT(DISTINCT su2.nick_name ORDER BY su2.nick_name SEPARATOR ', ') AS repairer, GROUP_CONCAT(DISTINCT su2.nick_name ORDER BY su2.nick_name SEPARATOR ', ') AS repairer,
rid.create_time as repairInputTime, rid.create_time as repairInputTime,
@ -723,4 +721,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
AND pmi.ma_code IS NOT NULL AND pmi.ma_code IS NOT NULL
</select> </select>
<select id="selectMaCodeByTypeId" resultType="com.bonus.material.basic.domain.StorageInfo">
SELECT
type_id as typeId,
ma_code as maCode
FROM
ma_machine
WHERE
ma_status = '1' and type_id = #{typeId}
</select>
</mapper> </mapper>

View File

@ -280,10 +280,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
mt.rated_load AS ratedLoad, mt.rated_load AS ratedLoad,
mt.test_load AS testLoad, mt.test_load AS testLoad,
mt.holding_time AS holdingTime, mt.holding_time AS holdingTime,
lod.create_time AS testTime, DATE(lod.create_time) AS testTime,
pcd.check_result AS checkResult, pcd.check_result AS checkResult,
lad.remark AS remark, lad.remark AS remark,
DATE_SUB(DATE_ADD(lod.create_time, INTERVAL 1 YEAR), INTERVAL 1 DAY) AS nextTestTime -- 计算 nextTestTime DATE(DATE_SUB(DATE_ADD(lod.create_time, INTERVAL 1 YEAR), INTERVAL 1 DAY)) AS nextTestTime -- 计算 nextTestTime
FROM FROM
lease_out_details lod lease_out_details lod
LEFT JOIN ma_type mt ON lod.type_id = mt.type_id AND mt.del_flag = '0' LEFT JOIN ma_type mt ON lod.type_id = mt.type_id AND mt.del_flag = '0'

View File

@ -51,6 +51,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="typeId != null"> <if test="typeId != null">
type_id, type_id,
</if> </if>
<if test="maCode != null">
ma_code,
</if>
<if test="qrUrl != null"> <if test="qrUrl != null">
qr_url, qr_url,
</if> </if>
@ -71,6 +74,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="typeId != null"> <if test="typeId != null">
#{typeId}, #{typeId},
</if> </if>
<if test="maCode != null">
#{maCode},
</if>
<if test="qrUrl != null"> <if test="qrUrl != null">
#{qrUrl}, #{qrUrl},
</if> </if>
@ -88,10 +94,14 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateNum"> <update id="updateNum">
UPDATE purchase_check_details UPDATE purchase_check_details
SET bind_num = COALESCE(bind_num, 0) + COALESCE(#{num}, 0) SET bind_num = IFNULL(bind_num, 0) + IFNULL(#{num}, 0)
WHERE task_id = #{dto.taskId} WHERE task_id = #{dto.taskId} AND type_id = #{dto.typeId} AND #{num} IS NOT NULL
AND type_id = #{dto.typeId} </update>
AND #{num} IS NOT NULL
<update id="updateStatusWhereNum">
UPDATE purchase_check_details
SET `status` = IF(IFNULL(check_num, 0) = IFNULL(bind_num, 0), '4', `status`)
WHERE task_id = #{dto.taskId} AND type_id = #{dto.typeId}
</update> </update>
<update id="updateStatusById"> <update id="updateStatusById">
@ -175,12 +185,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
pcd.status AS status pcd.status AS status
FROM FROM
bm_qrcode_info pm bm_qrcode_info pm
LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id AND pm.type_id = pcd.type_id
AND pm.type_id = pcd.type_id LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id
LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
WHERE WHERE
1=1 and pm.qr_code IS NULL pm.qr_code IS NULL
<if test="taskId != null"> <if test="taskId != null">
AND pm.task_id = #{taskId} AND pm.task_id = #{taskId}
</if> </if>
@ -313,24 +322,21 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="getMachineById" resultType="com.bonus.material.purchase.domain.PurchaseCheckDetails"> <select id="getMachineById" resultType="com.bonus.material.purchase.domain.PurchaseCheckDetails">
SELECT SELECT
pmi.id as id, pmi.id as id,pmi.task_id as taskId,pmi.type_id as typeId,pmi.ma_code as maCode
pmi.task_id as taskId,
pmi.type_id as typeId,
pmi.ma_code as maCode
FROM FROM
bm_qrcode_info pmi bm_qrcode_info pmi
LEFT JOIN ma_machine mm ON pmi.ma_code = mm.ma_code AND mm.type_id = #{typeId} LEFT JOIN
ma_machine mm ON pmi.ma_code = mm.ma_code AND mm.type_id = #{typeId}
WHERE WHERE
pmi.task_id = #{taskId} pmi.task_id = #{taskId} AND pmi.type_id = #{typeId} AND (mm.ma_status = '0' or mm.ma_status = '5' or mm.ma_status = '9' )
AND pmi.type_id = #{typeId}
AND mm.ma_status = '0'
AND pmi.ma_code IS NOT NULL AND pmi.ma_code IS NOT NULL
group by
pmi.id
</select> </select>
<select id="getTypeByQrcode" resultType="com.bonus.material.purchase.domain.vo.PurchaseVo"> <select id="getTypeByQrcode" resultType="com.bonus.material.purchase.domain.vo.PurchaseVo">
SELECT SELECT
bqi.qr_code as qrCode, bqi.qr_code as qrCode, bqi.type_id as typeId, bqi.ma_code as maCode, bqi.task_id as taskId, bqi.is_bind as isBind
bqi.type_id as typeId
FROM FROM
bm_qrcode_info bqi bm_qrcode_info bqi
WHERE WHERE
@ -339,32 +345,41 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<select id="selectPurchaseCheckDetailsById" resultType="com.bonus.material.purchase.domain.vo.PurchaseVo"> <select id="selectPurchaseCheckDetailsById" resultType="com.bonus.material.purchase.domain.vo.PurchaseVo">
SELECT SELECT
pm.task_id AS taskId, pm.task_id AS taskId,
pcd.id AS purchaseId, pcd.id AS purchaseId,
mt1.type_name AS materialName, mt1.type_name AS materialName,
mt.type_name AS materialModel, mt.type_name AS materialModel,
pm.ma_code AS maCode, pm.ma_code AS maCode,
pm.create_by AS createBy, pm.create_by AS createBy,
pm.create_time AS createTime, pm.create_time AS createTime,
pm.type_id AS typeId, pm.type_id AS typeId,
pm.out_fac_code AS outFacCode, pm.out_fac_code AS outFacCode,
pcd.production_time AS productDate, pcd.production_time AS productDate,
pm.qr_code AS qrCode, pm.qr_code AS qrCode,
pm.qr_url AS qrUrl, pm.qr_url AS qrUrl,
pcd.check_num AS purchaseNum, pcd.check_num AS purchaseNum,
pcd.check_num AS checkNum, pcd.check_num AS checkNum,
pcd.bind_num AS bindNum, pcd.bind_num AS bindNum,
pcd.status AS status pcd.status AS status
FROM FROM
bm_qrcode_info pm bm_qrcode_info pm
LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id LEFT JOIN purchase_check_details pcd ON pm.task_id = pcd.task_id AND pm.type_id = pcd.type_id
AND pm.type_id = pcd.type_id
LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id LEFT JOIN ma_type mt ON pcd.type_id = mt.type_id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
WHERE WHERE
1=1 and pm.qr_code IS NOT NULL pm.qr_code IS NOT NULL
<if test="purchaseId != null"> <if test="purchaseId != null">
AND pcd.id = #{purchaseId} AND pcd.id = #{purchaseId}
</if> </if>
</select> </select>
<update id="bindMaCodeByQrCode">
update bm_qrcode_info set ma_code = #{maCode}, is_bind = 1
where
qr_code = #{qrCode}
and status != '1'
and is_bind != '1'
and ma_code is null
and del_flag = '0'
</update>
</mapper> </mapper>

View File

@ -203,7 +203,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<if test="bindNum != null">bind_num = #{bindNum},</if> <if test="bindNum != null">bind_num = #{bindNum},</if>
<if test="checkResult != null">check_result = #{checkResult},</if> <if test="checkResult != null">check_result = #{checkResult},</if>
<if test="supplierId != null">supplier_id = #{supplierId},</if> <if test="supplierId != null">supplier_id = #{supplierId},</if>
<if test="status != null">status = #{status},</if> <if test="status != null">`status` = #{status},</if>
<if test="createBy != null">create_by = #{createBy},</if> <if test="createBy != null">create_by = #{createBy},</if>
<if test="productionTime != null">production_time = #{productionTime},</if> <if test="productionTime != null">production_time = #{productionTime},</if>
<if test="createTime != null">create_time = #{createTime},</if> <if test="createTime != null">create_time = #{createTime},</if>

View File

@ -28,32 +28,26 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
<update id="updateNum"> <update id="updateNum">
UPDATE purchase_check_details UPDATE purchase_check_details
SET input_num = COALESCE(input_num, 0) + #{bindNum}, SET input_num = ifnull(input_num, 0) + ifnull(#{bindNum},0),input_time = now()
input_time = now() WHERE id = #{id}
WHERE
id = #{id}
</update> </update>
<update id="updateStatusById"> <update id="updateStatusById">
UPDATE purchase_check_details UPDATE purchase_check_details
SET `status` = #{updatedStatus} SET `status` = #{updatedStatus}
WHERE WHERE id = #{id}
id = #{id} </update>
<update id="updateInputStatusById">
UPDATE purchase_check_details SET `status` = if(bind_num = input_num, #{updatedStatus}, `status`) WHERE id = #{id}
</update> </update>
<update id="updateStorageNum"> <update id="updateStorageNum">
UPDATE ma_type UPDATE ma_type SET storage_num = ifnull(#{inputNum},0) + ifnull(storage_num, 0) WHERE type_id = #{typeId}
SET storage_num = #{inputNum} + IFNULL(storage_num, 0)
WHERE
type_id = #{typeId}
</update> </update>
<update id="updateMachineByCode"> <update id="updateMachineByCode">
UPDATE ma_machine UPDATE ma_machine SET ma_status = 1 WHERE ma_code = #{maCode} and type_id = #{typeId}
SET ma_status = 1
WHERE
ma_code = #{maCode}
and type_id = #{typeId}
</update> </update>
<select id="selectAll" resultType="com.bonus.material.purchase.domain.vo.PurchaseVo"> <select id="selectAll" resultType="com.bonus.material.purchase.domain.vo.PurchaseVo">

View File

@ -510,13 +510,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</update> </update>
<update id="updateMachine"> <update id="updateMachine">
UPDATE ma_machine UPDATE ma_machine SET ma_status = '5' WHERE ma_id = #{maId}
SET ma_status = '5'
WHERE
1 = 1
<if test="maId != null">
and ma_id = #{maId}
</if>
</update> </update>
<select id="getPartDetailsByTaskId" resultType="com.bonus.material.repair.domain.RepairPart"> <select id="getPartDetailsByTaskId" resultType="com.bonus.material.repair.domain.RepairPart">

View File

@ -62,29 +62,25 @@
<update id="updateRepairedNumAndStatus"> <update id="updateRepairedNumAndStatus">
update repair_apply_details update repair_apply_details
set repaired_num = #{repairNum}, set repaired_num = ifnull(repaired_num,0) + #{repairNum},
status = #{status}, status = #{status},repairer = #{repairer},update_by = #{userId},update_time = now()
repairer = #{repairer}, where
update_by = #{userId}, id = #{id}
update_time = now() and (ifnull(repaired_num,0) + #{repairNum}) &lt;= repair_num
where id = #{id}
</update> </update>
<update id="updateRepairedNumTwo"> <update id="updateRepairedNumTwo">
update repair_apply_details update repair_apply_details
set repaired_num = #{repairNum}, set repaired_num = ifnull(repaired_num,0) + #{repairNum},update_by = #{userId},update_time = now()
update_by = #{userId},
update_time = now()
where id = #{id} where id = #{id}
and (ifnull(repaired_num,0) + #{repairNum}) &lt;= repair_num
</update> </update>
<update id="updateRepairedNumTwoAndStatus"> <update id="updateRepairedNumTwoAndStatus">
update repair_apply_details update repair_apply_details
set repaired_num = #{repairNum}, set repaired_num = #{repairNum},status = #{status},update_by = #{userId},update_time = now()
status = #{status},
update_by = #{userId},
update_time = now()
where id = #{id} where id = #{id}
and (ifnull(repaired_num,0) + #{repairNum}) &lt;= repair_num
</update> </update>
<update id="updateScrapNum"> <update id="updateScrapNum">