Browse Source

完善完成采购收货任务执行功能

master
刘忱 2 years ago
parent
commit
04b5cb75d5
  1. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainBaseVO.java
  2. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java
  3. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExportReqVO.java
  4. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainPageReqVO.java
  5. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailBaseVO.java
  6. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestMainDO.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java
  8. 29
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java
  9. 308
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java
  10. 97
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java
  11. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainBaseVO.java

@ -2,15 +2,13 @@ package com.win.module.wms.controller.inspectRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne; import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.Data;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import javax.validation.constraints.*;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
/** /**
@ -115,11 +113,11 @@ public class InspectRequestMainBaseVO {
@Schema(description = "收货数量", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "收货数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "收货数量不能为空") @NotNull(message = "收货数量不能为空")
private Integer receiveQty; private BigDecimal receiveQty;
@Schema(description = "样品数量", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "样品数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "样品数量不能为空") @NotNull(message = "样品数量不能为空")
private Integer sampleQty; private BigDecimal sampleQty;
@Schema(description = "货主代码") @Schema(description = "货主代码")
private String ownerCode; private String ownerCode;

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExcelVO.java

@ -1,16 +1,12 @@
package com.win.module.wms.controller.inspectRequest.vo; package com.win.module.wms.controller.inspectRequest.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import com.alibaba.excel.annotation.ExcelProperty; import com.alibaba.excel.annotation.ExcelProperty;
import com.win.framework.excel.core.annotations.DictFormat; import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert; import com.win.framework.excel.core.convert.DictConvert;
import lombok.Data;
import java.math.BigDecimal;
import java.time.LocalDateTime;
/** /**
@ -100,10 +96,10 @@ public class InspectRequestMainExcelVO {
private String uom; private String uom;
@ExcelProperty("收货数量") @ExcelProperty("收货数量")
private Integer receiveQty; private BigDecimal receiveQty;
@ExcelProperty("样品数量") @ExcelProperty("样品数量")
private Integer sampleQty; private BigDecimal sampleQty;
@ExcelProperty("货主代码") @ExcelProperty("货主代码")
private String ownerCode; private String ownerCode;

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainExportReqVO.java

@ -1,12 +1,12 @@
package com.win.module.wms.controller.inspectRequest.vo; package com.win.module.wms.controller.inspectRequest.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam; import lombok.Data;
import java.time.LocalDateTime;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@Schema(description = "管理后台 - 检验申请主 Excel 导出 Request VO,参数和 InspectRequestMainPageReqVO 是一致的") @Schema(description = "管理后台 - 检验申请主 Excel 导出 Request VO,参数和 InspectRequestMainPageReqVO 是一致的")
@ -90,10 +90,10 @@ public class InspectRequestMainExportReqVO {
private String uom; private String uom;
@Schema(description = "收货数量") @Schema(description = "收货数量")
private Integer receiveQty; private BigDecimal receiveQty;
@Schema(description = "样品数量") @Schema(description = "样品数量")
private Integer sampleQty; private BigDecimal sampleQty;
@Schema(description = "货主代码") @Schema(description = "货主代码")
private String ownerCode; private String ownerCode;

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/vo/InspectRequestMainPageReqVO.java

@ -1,10 +1,13 @@
package com.win.module.wms.controller.inspectRequest.vo; package com.win.module.wms.controller.inspectRequest.vo;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam; import com.win.framework.common.pojo.PageParam;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import org.springframework.format.annotation.DateTimeFormat; import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND; import static com.win.framework.common.util.date.DateUtils.FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND;
@ -92,10 +95,10 @@ public class InspectRequestMainPageReqVO extends PageParam {
private String uom; private String uom;
@Schema(description = "收货数量") @Schema(description = "收货数量")
private Integer receiveQty; private BigDecimal receiveQty;
@Schema(description = "样品数量") @Schema(description = "样品数量")
private Integer sampleQty; private BigDecimal sampleQty;
@Schema(description = "货主代码") @Schema(description = "货主代码")
private String ownerCode; private String ownerCode;

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptJob/vo/PurchasereceiptJobDetailBaseVO.java

@ -116,4 +116,10 @@ public class PurchasereceiptJobDetailBaseVO {
@Schema(description = "实际数量") @Schema(description = "实际数量")
private BigDecimal handleQty; private BigDecimal handleQty;
@Schema(description = "到包装号")
private String toPackingNumber;
@Schema(description = "到际批次")
private String toBatch;
} }

16
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inspectRequest/InspectRequestMainDO.java

@ -1,13 +1,13 @@
package com.win.module.wms.dal.dataobject.inspectRequest; package com.win.module.wms.dal.dataobject.inspectRequest;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.sun.xml.bind.v2.TODO;
import com.win.framework.mybatis.core.dataobject.BaseDO;
import lombok.*; import lombok.*;
import java.util.*;
import java.time.LocalDateTime; import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;
/** /**
* 检验申请主 DO * 检验申请主 DO
@ -143,11 +143,11 @@ public class InspectRequestMainDO extends BaseDO {
/** /**
* 收货数量 * 收货数量
*/ */
private Integer receiveQty; private BigDecimal receiveQty;
/** /**
* 样品数量 * 样品数量
*/ */
private Integer sampleQty; private BigDecimal sampleQty;
/** /**
* 货主代码 * 货主代码
*/ */

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/enums/request/RequestStatusState.java

@ -93,7 +93,7 @@ public class RequestStatusState {
} }
/** /**
* 审批 * 处理
* @return * @return
*/ */
public boolean handle() { public boolean handle() {

29
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java

@ -1,12 +1,15 @@
package com.win.module.wms.service.inspectRequest; package com.win.module.wms.service.inspectRequest;
import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inspectRequest.vo.*; import com.win.module.wms.controller.inspectRequest.vo.*;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO; import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import com.win.framework.common.pojo.PageResult;
import javax.validation.Valid;
import java.math.BigDecimal;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
/** /**
* 检验申请主 Service 接口 * 检验申请主 Service 接口
@ -84,5 +87,21 @@ public interface InspectRequestMainService {
* @param updatePart 是否支持更新 * @param updatePart 是否支持更新
* @return * @return
*/ */
public List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart); List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
/**
* 获取规则
* @param supplierCode
* @param itemCode
* @return
*/
HashMap<String, String> selectRule(String supplierCode, String itemCode);
/**
* 查询检验物品数量
* @param sampleQty
* @param ruleAll
* @return
*/
BigDecimal selectInspectType(BigDecimal sampleQty, HashMap<String, String> ruleAll);
} }

308
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java

@ -39,17 +39,19 @@ import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport; import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.validation.Validator;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import javax.validation.Validator;
import java.math.BigDecimal;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Collection; import java.util.Collection;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.INSPECT_REQUEST_MAIN_NOT_EXISTS;
/** /**
* 检验申请主 Service 实现类 * 检验申请主 Service 实现类
@ -84,13 +86,17 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
private RequestsettingService requestsettingService; private RequestsettingService requestsettingService;
@Resource @Resource
private TrendsApi trendsApi; private TrendsApi trendsApi;
@Override @Override
@Transactional
public Long createInspectRequestMain(InspectRequestMainCreateReqVO createReqVO) { public Long createInspectRequestMain(InspectRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
InspectRequestMainDO inspectRequestMainDO = validatorToCreate(createReqVO, businesstypeDO); InspectRequestMainDO inspectRequestMainDO = this.validatorCreate(createReqVO, businesstypeDO, requestsettingDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode());
inspectRequestMainDO.setNumber(number);
//调用自动执行方法 //调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) {
} }
trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE);
@ -98,20 +104,22 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
} }
@Override @Override
@Transactional
public void updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) { public void updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
// 校验存在 // 校验存在
validateInspectRequestMainExists(updateReqVO.getId()); validateInspectRequestMainExists(updateReqVO.getId());
// 更新主表 // 更新主表
InspectRequestMainDO inspectRequestMainDO = validatorToUpdate(updateReqVO, businesstypeDO); InspectRequestMainDO inspectRequestMainDO = validatorUpdate(updateReqVO, businesstypeDO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) { if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) {
} }
trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE); trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE);
} }
@Override @Override
@Transactional
public void deleteInspectRequestMain(Long id) { public void deleteInspectRequestMain(Long id) {
// 校验存在 // 校验存在
validateInspectRequestMainExists(id); validateInspectRequestMainExists(id);
@ -139,196 +147,200 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
public PageResult<InspectRequestMainDO> getInspectRequestMainPage(InspectRequestMainPageReqVO pageReqVO) { public PageResult<InspectRequestMainDO> getInspectRequestMainPage(InspectRequestMainPageReqVO pageReqVO) {
return inspectRequestMainMapper.selectPage(pageReqVO); return inspectRequestMainMapper.selectPage(pageReqVO);
} }
@Override @Override
public PageResult<InspectRequestMainDO> getInspectRequestMainSenior(CustomConditions conditions) { public PageResult<InspectRequestMainDO> getInspectRequestMainSenior(CustomConditions conditions) {
return inspectRequestMainMapper.selectSenior(conditions); return inspectRequestMainMapper.selectSenior(conditions);
} }
@Override @Override
public List<InspectRequestMainDO> getInspectRequestMainList(InspectRequestMainExportReqVO exportReqVO) { public List<InspectRequestMainDO> getInspectRequestMainList(InspectRequestMainExportReqVO exportReqVO) {
return inspectRequestMainMapper.selectList(exportReqVO); return inspectRequestMainMapper.selectList(exportReqVO);
} }
@Override
@Transactional
public List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<InspectRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
//主表校验方法
InspectRequestMainDO mainDO = InspectRequestMainConvert.INSTANCE.convert(createReqVO);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
String messageMain = this.validatorInspectRequestMainImport(mainDO, businesstypeDO);
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
for (InspectRequestDetailDO detailDO : subDOList) {
String messageDetail = this.validatorInspectRequestDetailImport(detailDO, mainDO, businesstypeDO);
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = InspectRequestDetailConvert.INSTANCE.convert1(detailDO);
InspectRequestImportErrorVO importVO = InspectRequestDetailConvert.INSTANCE.convert(createReqVO, inspectRequestDetailCreateReqVO);
if (!messageMain.isEmpty() || !messageDetail.isEmpty()) {
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
}
}
mainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
if (errorList.isEmpty()) {
InspectRequestMainDO existInspectRequestMainDO = inspectRequestMainMapper.selectPurchaseReceiptNumber(createReqVO.getPurchaseReceiptRecordNumber());
if (existInspectRequestMainDO == null && mode != 3) {
String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode());
mainDO.setNumber(number);
inspectRequestMainMapper.insert(mainDO);
for(InspectRequestDetailDO inspectRequestDetailDO : subDOList) {
inspectRequestDetailDO.setMasterId(mainDO.getId());
}
inspectRequestDetailMapper.insertBatch(subDOList);
} else if (existInspectRequestMainDO != null && mode != 2) {
inspectRequestMainMapper.updateById(mainDO);
inspectRequestDetailMapper.updateBatch(subDOList);
}
}
});
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
//判断导入单位是否正确 //判断导入单位是否正确
private void ifUomSuccess(String itemUom,String uom) { private void ifUomSuccess(String itemUom, String uom) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom); DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom);
if(dictDataRespDTO != null){ if (dictDataRespDTO != null) {
if(!itemUom.equals(dictDataRespDTO.getLabel())){ if (!itemUom.equals(dictDataRespDTO.getLabel())) {
throw new UtilException("提示单位"+ uom + "错误,应该是" + itemUom); throw new UtilException("提示单位" + uom + "错误,应该是" + itemUom);
} }
} }
} }
//查询检验类型 //查询检验类型
private Integer selectInspectType(Integer sampleQty, HashMap<String, String> ruleAll) { @Override
public BigDecimal selectInspectType(BigDecimal sampleQty, HashMap<String, String> ruleAll) {
String inspectType = ruleAll.get("InspectType"); String inspectType = ruleAll.get("InspectType");
if("EXEMPT".equals(inspectType)){ if ("FULL".equals(inspectType)) {
return 0;
} else if ("FULL".equals(inspectType)) {
return sampleQty; return sampleQty;
}else if("SAMPLING".equals(inspectType)){ } else if ("SAMPLING".equals(inspectType)) {
return selectSampleMethod(ruleAll, sampleQty); return selectSampleMethod(ruleAll, sampleQty);
}else { } else {
return 0; return BigDecimal.ZERO;
} }
} }
//查询抽检方式 计算抽检数量并返回 //查询抽检方式 计算抽检数量并返回
private Integer selectSampleMethod(HashMap<String, String> ruleAll,Integer sampleQty) { private BigDecimal selectSampleMethod(HashMap<String, String> ruleAll, BigDecimal sampleQty) {
String sampleMethod = ruleAll.get("SampleMethod"); String sampleMethod = ruleAll.get("SampleMethod");
JSONArray aplList = JSONUtil.parseArray(ruleAll.get("AplList")); JSONArray aplList = JSONUtil.parseArray(ruleAll.get("AplList"));
//获取最大校验规则范围 //获取最大校验规则范围
Integer maxFloorQty = 0; BigDecimal maxFloorQty = BigDecimal.ZERO;
Integer maxCeilingQty = 0; BigDecimal maxCeilingQty = BigDecimal.ZERO;
Integer maxSampleValue = 0; BigDecimal maxSampleValue = BigDecimal.ZERO;
Integer result = 0; BigDecimal result = BigDecimal.ZERO;
for (Object o : aplList) { for (Object o : aplList) {
JSONObject parse = JSONUtil.parseObj(o); JSONObject parse = JSONUtil.parseObj(o);
Integer floorQty = Integer.valueOf(parse.get("FloorQty").toString()); BigDecimal floorQty = new BigDecimal(String.valueOf(parse.get("FloorQty")));
Integer ceilingQty = Integer.valueOf(parse.get("CeilingQty").toString()); BigDecimal ceilingQty = new BigDecimal(String.valueOf(parse.get("CeilingQty")));
Integer sampleValue = Integer.valueOf(parse.get("SampleValue").toString()); BigDecimal sampleValue = new BigDecimal(String.valueOf(parse.get("SampleValue")));
if (maxFloorQty < floorQty){ if (maxFloorQty.compareTo(floorQty) < 0) {
maxFloorQty = floorQty; maxFloorQty = floorQty;
} }
if (maxCeilingQty < ceilingQty){ if (maxCeilingQty.compareTo(ceilingQty) < 0) {
maxCeilingQty = ceilingQty; maxCeilingQty = ceilingQty;
} }
if (maxSampleValue < sampleValue){ if (maxSampleValue.compareTo(sampleValue) < 0) {
maxSampleValue = sampleValue; maxSampleValue = sampleValue;
} }
//根据校验规则计算出抽样数量 //根据校验规则计算出抽样数量
if(sampleQty != null && sampleQty != 0){ if (sampleQty != null && sampleQty.compareTo(BigDecimal.ZERO) != 0) {
if(floorQty <= sampleQty && sampleQty <= ceilingQty){ if(floorQty.compareTo(sampleQty) <= 0 && sampleQty.compareTo(ceilingQty) <= 0) {
if("QTY".equals(sampleMethod)){ if ("QTY".equals(sampleMethod)) {
result = sampleValue; result = sampleValue;
}else if ("PERCENT".equals(sampleMethod)) { } else if ("PERCENT".equals(sampleMethod)) {
double doubleSampleQty = sampleQty * (sampleValue * 0.01); result = sampleQty.multiply(sampleValue).multiply(new BigDecimal("0.01"));
result = (int) Math.round(doubleSampleQty);
} }
} }
}else { } else {
throw new UtilException("当前到货数量为空,不能进行校验"); throw new UtilException("当前到货数量为空,不能进行校验");
} }
} }
if (maxCeilingQty < sampleQty) { if (maxCeilingQty.compareTo(sampleQty) < 0) {
throw new UtilException("当前到货数量已超出校验规则范围"); throw new UtilException("当前到货数量已超出校验规则范围");
}else { } else {
return result; return result;
} }
} }
//获取策略里的参数进行字段对应 //获取策略里的参数进行字段对应
private HashMap<String, String> selectRule(String supplierCode,String itemCode){ public HashMap<String, String> selectRule(String supplierCode, String itemCode) {
RuleRespVO inspect = ruleService.inspect(supplierCode,itemCode ); RuleRespVO inspect = ruleService.inspect(supplierCode, itemCode);
if(inspect == null){ if (inspect == null) {
throw new UtilException("未找到该策略"); throw new UtilException("未找到该策略");
} }
JSONArray configuration = JSONUtil.parseArray(inspect.getConfiguration()); JSONArray configuration = JSONUtil.parseArray(inspect.getConfiguration());
HashMap<String, String> mapRule = new HashMap<>(); HashMap<String, String> mapRule = new HashMap<>();
for (Object o : configuration) { for (Object o : configuration) {
JSONObject entries = JSONUtil.parseObj(o); JSONObject entries = JSONUtil.parseObj(o);
mapRule.put(entries.get("ParamCode").toString(),entries.get("Value").toString()); mapRule.put(entries.get("ParamCode").toString(), entries.get("Value").toString());
} }
String aqlList = mapRule.get("AqlList"); String aqlList = mapRule.get("AqlList");
if(aqlList !=null){ if (aqlList != null) {
JSONArray objects = JSONUtil.parseArray(aqlList); JSONArray objects = JSONUtil.parseArray(aqlList);
for (int i = 0; i < objects.size(); i++) { for (int i = 0; i < objects.size(); i++) {
JSONObject entries = JSONUtil.parseObj(objects.getObj(i)); JSONObject entries = JSONUtil.parseObj(objects.getObj(i));
mapRule.put("FloorQty" + (i+1),entries.get("FloorQty").toString()); mapRule.put("FloorQty" + (i + 1), entries.get("FloorQty").toString());
mapRule.put("CeilingQty" + (i+1),entries.get("CeilingQty").toString()); mapRule.put("CeilingQty" + (i + 1), entries.get("CeilingQty").toString());
mapRule.put("SampleValue" + (i+1),entries.get("SampleValue").toString()); mapRule.put("SampleValue" + (i + 1), entries.get("SampleValue").toString());
} }
} }
return mapRule; return mapRule;
} }
private PurchasereceiptRecordDetailDO validatorPurchasereceiptExist(String purchaseReceiptRecordNumber, String poNumber, String poLine, String itemCode){
private PurchasereceiptRecordDetailDO validatorPurchasereceiptExist(String purchaseReceiptRecordNumber, String poNumber, String poLine, String itemCode) {
return purchasereceiptRecordMainService.selectPurchasereceiptExist(poNumber, null, purchaseReceiptRecordNumber, poLine, itemCode); return purchasereceiptRecordMainService.selectPurchasereceiptExist(poNumber, null, purchaseReceiptRecordNumber, poLine, itemCode);
} }
private void validatorRule(InspectRequestMainDO mainDO){
private void validatorRule(InspectRequestMainDO mainDO) {
HashMap<String, String> rule = selectRule(null, mainDO.getItemCode()); HashMap<String, String> rule = selectRule(null, mainDO.getItemCode());
selectInspectType(mainDO.getReceiveQty(),rule); mainDO.setSampleQty(selectInspectType(mainDO.getReceiveQty(), rule));
} }
private ItembasicDO validatorItembasic(String itemCode){
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode); return itembasicService.selectItembasic(itemCode);
} }
private void validatorLocation(String fromLocationCode){
private void validatorLocation(String fromLocationCode) {
locationService.selectLocation(fromLocationCode); locationService.selectLocation(fromLocationCode);
} }
private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO){
private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) {
jobUtils.ifInType(itemType, businesstypeDO); jobUtils.ifInType(itemType, businesstypeDO);
} }
private void validatorIfOutInventoryStatuses(String inventoryStatus,BusinesstypeDO businesstypeDO){
private void validatorIfOutInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) {
jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO); jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO);
} }
private void validatorIfInFromLocationType(String fromLocationCode,BusinesstypeDO businesstypeDO){
private void validatorIfInFromLocationType(String fromLocationCode, BusinesstypeDO businesstypeDO) {
jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO); jobUtils.ifInFromLocationType(fromLocationCode, businesstypeDO);
} }
private void validatorLlocationReturnManagementAccuracy(String itemCode,String packingNumber,String batch,String fromLocationCode,String inventoryStatu){
ArrayList inventoryStatus = new ArrayList(); private void validatorLocationReturnManagementAccuracy(String itemCode, String packingNumber, String batch, String fromLocationCode, String inventoryStatu) {
ArrayList<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(inventoryStatu); inventoryStatus.add(inventoryStatu);
jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus); jobUtils.selectlocationReturnManagementAccuracy(itemCode, packingNumber, batch, fromLocationCode, inventoryStatus);
} }
@Override
@Transactional
public List<InspectRequestImportErrorVO> importInspectRequestList(List<InspectRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
throw exception(INSPECT_REQUEST_IMPORT_LIST_IS_EMPTY);
}
List<InspectRequestImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String messageMain = "";
//主表校验方法
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
for (InspectRequestDetailDO detailDO : subDOList) {
String messageDetail = "";
try {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
createReqVO.setBusinessType(businesstypeDO.getCode());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
createReqVO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
}catch (Exception ex) {
messageDetail += ex.getMessage() + ",";
}
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = InspectRequestDetailConvert.INSTANCE.convert1(detailDO);
InspectRequestImportErrorVO importVO = InspectRequestDetailConvert.INSTANCE.convert(createReqVO, inspectRequestDetailCreateReqVO);
if(!messageMain.equals("") || !messageDetail.equals("")){
importVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0,messageMain.length()-1));
errorList.add(importVO);
}else {
detailDO.setMasterId(createReqVO.getId());
}
}
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
InspectRequestMainDO createobj = InspectRequestMainConvert.INSTANCE.convert(createReqVO);
if(errorList.isEmpty()){
InspectRequestMainDO existInspectRequestMainDO = inspectRequestMainMapper.selectPurchaseReceiptNumber(createReqVO.getPurchaseReceiptRecordNumber());
if(existInspectRequestMainDO == null && mode != 3){
inspectRequestMainMapper.insert(createobj);
inspectRequestDetailMapper.insertBatch(subDOList);
}else if(existInspectRequestMainDO != null && mode != 2){
inspectRequestMainMapper.updateById(createobj);
inspectRequestDetailMapper.updateBatch(subDOList);
}
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}
// 新增校验 // 新增校验
private InspectRequestMainDO validatorToCreate(InspectRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO) { private InspectRequestMainDO validatorCreate(InspectRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO); InspectRequestMainDO mainDo = validatorMainMethod(createReqVO, businesstypeDO, requestsettingDO);
//子表校验 //子表校验
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList(); List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList); List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
for (InspectRequestDetailDO detailDO : subDOList) { for (InspectRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO,mainDo,businesstypeDO); validatorDetailMethod(detailDO, mainDo, businesstypeDO);
} }
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode()); String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
mainDo.setNumber(number); mainDo.setNumber(number);
@ -339,37 +351,37 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
} }
//修改校验 //修改校验
private InspectRequestMainDO validatorToUpdate(InspectRequestMainUpdateReqVO updateReqVO, BusinesstypeDO businesstypeDO) { private InspectRequestMainDO validatorUpdate(InspectRequestMainUpdateReqVO updateReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = validatorMainMethod(updateReqVO,businesstypeDO); InspectRequestMainDO mainDo = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO);
//子表校验 //子表校验
List<InspectRequestDetailUpdateReqVO> subList = updateReqVO.getSubList(); List<InspectRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList05(subList); List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList05(subList);
for (InspectRequestDetailDO detailDO : subDOList) { for (InspectRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO,mainDo,businesstypeDO); validatorDetailMethod(detailDO, mainDo, businesstypeDO);
} }
inspectRequestMainMapper.updateById(mainDo); inspectRequestMainMapper.updateById(mainDo);
inspectRequestDetailMapper.updateBatch(subDOList); inspectRequestDetailMapper.updateBatch(subDOList);
return mainDo; return mainDo;
} }
//校验主表公共方法(适用于新增/修改) //校验主表公共方法(适用于新增/修改)
private InspectRequestMainDO validatorMainMethod(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO){ private InspectRequestMainDO validatorMainMethod(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO); InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO);
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty().intValue()); mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty());
validatorRule(mainDo); validatorRule(mainDo);
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord()); mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return mainDo; return mainDo;
} }
//校验子表公共方法(适用于新增/修改) //校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(InspectRequestDetailDO detailDo,InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) { private void validatorDetailMethod(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1()); detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2()); detailDo.setItemDesc2(itembasicDO.getDesc2());
@ -380,7 +392,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
validatorLocation(detailDo.getFromLocationCode()); validatorLocation(detailDo.getFromLocationCode());
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO); validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO);
validatorLlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus()); validatorLocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus());
} }
/** /**
@ -389,24 +401,22 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
* @param mainDo * @param mainDo
* @return * @return
*/ */
private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo,BusinesstypeDO businesstypeDO) { private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
try { try {
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode()); PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty().intValue()); mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty());
}catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try { try {
validatorRule(mainDo); validatorRule(mainDo);
}catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
if (businesstypeDO == null) { if (businesstypeDO == null) {
message.append("根据业务类型设置未查找到采购退货申请的相关业务类型"); message.append("根据业务类型设置未查找到采购退货申请的相关业务类型");
} } else {
else {
mainDo.setBusinessType(businesstypeDO.getCode()); mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes()); mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes()); mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
@ -414,8 +424,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
if (requestsettingDO == null) { if (requestsettingDO == null) {
message.append("根据申请单设置未查找到采购退货申请的相关业务类型"); message.append("根据申请单设置未查找到采购退货申请的相关业务类型");
} } else {
else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree()); mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit()); mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute()); mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
@ -435,24 +444,25 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
* @param detailDo * @param detailDo
* @return * @return
*/ */
private String validatorInspectRequestDetailImport(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo,BusinesstypeDO businesstypeDO) { private String validatorInspectRequestDetailImport(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder(); StringBuilder message = new StringBuilder();
ItembasicDO itembasicDO = null;
try { try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode()); itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1()); detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2()); detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName()); detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject()); detailDo.setProjectCode(itembasicDO.getProject());
try { } catch (Exception ex) {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom()); message.append(ex.getMessage()).append(",");
} catch (Exception ex) { }
message.append(ex.getMessage()).append(","); try {
} this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
try{ } catch (Exception ex) {
validatorIfInType(itembasicDO.getType(), businesstypeDO); message.append(ex.getMessage()).append(",");
}catch (Exception ex) { }
message.append(ex.getMessage()).append(","); try {
} validatorIfInType(itembasicDO.getType(), businesstypeDO);
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
@ -461,18 +471,18 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try{ try {
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO); validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), businesstypeDO);
}catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try{ try {
validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO); validatorIfInFromLocationType(detailDo.getFromLocationCode(), businesstypeDO);
}catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try { try {
validatorLlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus()); validatorLocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getPackingNumber(), mainDo.getBatch(), detailDo.getFromLocationCode(), detailDo.getInventoryStatus());
} catch (Exception ex) { } catch (Exception ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }

97
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java

@ -1,5 +1,7 @@
package com.win.module.wms.service.purchasereceiptJob; package com.win.module.wms.service.purchasereceiptJob;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException; import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
@ -10,12 +12,16 @@ import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum; import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestDetailCreateReqVO;
import com.win.module.wms.controller.inspectRequest.vo.InspectRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailUpdateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainExportReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO; import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.documentSwitch.SwitchDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO;
@ -32,6 +38,9 @@ import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptReques
import com.win.module.wms.enums.job.JobStatusEnum; import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.documentSwitch.SwitchService;
import com.win.module.wms.service.inspectRequest.InspectRequestMainService;
import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService; import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService;
import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
@ -81,6 +90,12 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@Resource @Resource
private JobUtils jobUtils; private JobUtils jobUtils;
@Resource
private SwitchService switchService;
@Resource
private InspectRequestMainService inspectRequestMainService;
@Resource
private RuleService ruleService;
@Override @Override
public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) { public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) {
@ -216,12 +231,14 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
//库存事务 //库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
List<PurchasereceiptJobDetailUpdateReqVO> purchasereceiptJobDetailUpdateReqVOList = purchasereceiptJobMainUpdateReqVO.getSubList(); List<PurchasereceiptJobDetailUpdateReqVO> purchasereceiptJobDetailUpdateReqVOList = purchasereceiptJobMainUpdateReqVO.getSubList();
List<PurchasereceiptRecordDetailDO> purchasereceiptRecordDetailDOList = new ArrayList<>();
List<PurchaseshortageDetailDO> purchaseshortageDetailDOList = new ArrayList<>();
for(PurchasereceiptJobDetailDO purchasereceiptJobDetailDO : subList) { for(PurchasereceiptJobDetailDO purchasereceiptJobDetailDO : subList) {
boolean isExists = false; boolean isExists = false;
PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVOTemp = null;
for(PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVO : purchasereceiptJobDetailUpdateReqVOList) { for(PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVO : purchasereceiptJobDetailUpdateReqVOList) {
if(purchasereceiptJobDetailDO.getId().equals(purchasereceiptJobDetailUpdateReqVO.getId())) { if(purchasereceiptJobDetailDO.getId().equals(purchasereceiptJobDetailUpdateReqVO.getId())) {
//实际收货数量 purchasereceiptJobDetailUpdateReqVOTemp = purchasereceiptJobDetailUpdateReqVO;
purchasereceiptJobDetailUpdateReqVO.setQty(purchasereceiptJobDetailUpdateReqVO.getHandleQty());
isExists = true; isExists = true;
break; break;
} }
@ -232,12 +249,17 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRecordDetailDO.setMasterId(purchasereceiptRecordMainDO.getId()); purchasereceiptRecordDetailDO.setMasterId(purchasereceiptRecordMainDO.getId());
purchasereceiptRecordDetailDO.setNumber(number); purchasereceiptRecordDetailDO.setNumber(number);
purchasereceiptRecordDetailDO.setJobDetailId(String.valueOf(purchasereceiptJobDetailDO.getId())); purchasereceiptRecordDetailDO.setJobDetailId(String.valueOf(purchasereceiptJobDetailDO.getId()));
purchasereceiptRecordDetailDO.setFromBatch(purchasereceiptJobDetailDO.getBatch());
purchasereceiptRecordDetailDO.setToBatch(purchasereceiptJobDetailUpdateReqVOTemp.getToBatch());
purchasereceiptRecordDetailDO.setFromPackingNumber(purchasereceiptJobDetailDO.getPackingNumber());
purchasereceiptRecordDetailDO.setToPackingNumber(purchasereceiptJobDetailUpdateReqVOTemp.getToPackingNumber());
purchasereceiptRecordDetailDO.setQty(purchasereceiptJobDetailUpdateReqVOTemp.getHandleQty());
purchasereceiptRecordDetailDO.setId(null); purchasereceiptRecordDetailDO.setId(null);
purchasereceiptRecordDetailDO.setCreator(null); purchasereceiptRecordDetailDO.setCreator(null);
purchasereceiptRecordDetailDO.setCreateTime(null); purchasereceiptRecordDetailDO.setCreateTime(null);
purchasereceiptRecordDetailDO.setUpdater(null); purchasereceiptRecordDetailDO.setUpdater(null);
purchasereceiptRecordDetailDO.setUpdateTime(null); purchasereceiptRecordDetailDO.setUpdateTime(null);
purchasereceiptRecordDetailMapper.insert(purchasereceiptRecordDetailDO); purchasereceiptRecordDetailDOList.add(purchasereceiptRecordDetailDO);
//添加库存事务list //添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO); BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO);
@ -262,15 +284,22 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchaseshortageDetailDO.setCreateTime(null); purchaseshortageDetailDO.setCreateTime(null);
purchaseshortageDetailDO.setUpdater(null); purchaseshortageDetailDO.setUpdater(null);
purchaseshortageDetailDO.setUpdateTime(null); purchaseshortageDetailDO.setUpdateTime(null);
purchaseshortageDetailMapper.insert(purchaseshortageDetailDO); purchaseshortageDetailDOList.add(purchaseshortageDetailDO);
} }
} }
if(!purchasereceiptRecordDetailDOList.isEmpty()) {
purchasereceiptRecordDetailMapper.insertBatch(purchasereceiptRecordDetailDOList);
}
if(!purchaseshortageDetailDOList.isEmpty()) {
purchaseshortageDetailMapper.insertBatch(purchaseshortageDetailDOList);
}
List<String> typeList = new ArrayList<>(); List<String> typeList = new ArrayList<>();
typeList.add(JobStatusEnum.PENDING.getCode()); typeList.add(JobStatusEnum.PENDING.getCode());
typeList.add(JobStatusEnum.PROCESSING.getCode()); typeList.add(JobStatusEnum.PROCESSING.getCode());
Long count = purchasereceiptJobMainMapper.selectListCount(typeList, purchasereceiptJobMainDO.getRequestNumber()); Long count = purchasereceiptJobMainMapper.selectListCount(typeList, purchasereceiptJobMainDO.getRequestNumber());
PurchasereceiptRequestMainDO purchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectByNumber(purchasereceiptJobMainDO.getRequestNumber()); PurchasereceiptRequestMainDO purchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectByNumber(purchasereceiptJobMainDO.getRequestNumber());
if(count == 0) {//申请单下所有任务全部完成 //申请单下所有任务全部完成
if(count == 0) {
purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
} else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成 } else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成
@ -278,7 +307,63 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
} }
//创建拣货申请 //创建拣货申请
SwitchDO switchDO = switchService.selectSwitchExist("CreateInspectRequestAfterPurchaseReceiptRecordCreated");
//需要增加到货检验申请
if(switchDO.getEffectiveSetValue().equals("TRUE")) {
RuleRespVO ruleRespVO = ruleService.inspect(purchasereceiptRecordMainDO.getSupplierCode(), null);
JSONObject jsonObject = JSONUtil.parseObj(ruleRespVO.getConfiguration());
if(!"EXAMPT".equals(String.valueOf(jsonObject.get("InspectType")))) {
//按零件号和批次分组
Map<String, List<PurchasereceiptRecordDetailDO>> listMap = new HashMap<>();
for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList) {
String key = purchasereceiptRecordDetailDO.getItemCode() + "_" + purchasereceiptRecordDetailDO.getFromBatch();
List<PurchasereceiptRecordDetailDO> list = listMap.get(key);
if(list == null) {
list = new ArrayList<>();
}
list.add(purchasereceiptRecordDetailDO);
listMap.put(key, list);
}
//组装到货检验数据
for(String mapKey : listMap.keySet()) {
List<PurchasereceiptRecordDetailDO> purchasereceiptRecordDetailDOList1 = listMap.get(mapKey);
//创建主表信息
PurchasereceiptRecordDetailDO recordDetailDO = purchasereceiptRecordDetailDOList1.get(0);
InspectRequestMainCreateReqVO inspectRequestMainCreateReqVO = new InspectRequestMainCreateReqVO();
String inspectRecordNumber = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_RECORD.getCode());
inspectRequestMainCreateReqVO.setNumber(inspectRecordNumber);
inspectRequestMainCreateReqVO.setPurchaseReceiptRecordNumber(number);
inspectRequestMainCreateReqVO.setSupplierCode(purchasereceiptRecordMainDO.getSupplierCode());
inspectRequestMainCreateReqVO.setItemCode(recordDetailDO.getItemCode());
inspectRequestMainCreateReqVO.setBatch(recordDetailDO.getFromBatch());
inspectRequestMainCreateReqVO.setPoNumber(recordDetailDO.getPoNumber());
inspectRequestMainCreateReqVO.setPoLine(recordDetailDO.getPoLine());
inspectRequestMainCreateReqVO.setUom(recordDetailDO.getUom());
inspectRequestMainCreateReqVO.setReceiveQty(recordDetailDO.getQty());
List<InspectRequestDetailCreateReqVO> inspectRequestDetailCreateReqVOList = new ArrayList<>();
//创建子表信息
for(PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO : purchasereceiptRecordDetailDOList1) {
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = new InspectRequestDetailCreateReqVO();
inspectRequestDetailCreateReqVO.setPackingNumber(purchasereceiptRecordDetailDO.getFromPackingNumber());
inspectRequestDetailCreateReqVO.setContainerNumber(purchasereceiptRecordDetailDO.getFromContainerNumber());
inspectRequestDetailCreateReqVO.setInventoryStatus(purchasereceiptRecordDetailDO.getInventoryStatus());
inspectRequestDetailCreateReqVO.setFromLocationCode(purchasereceiptRecordDetailDO.getFromLocationCode());
inspectRequestDetailCreateReqVO.setItemCode(purchasereceiptRecordDetailDO.getItemCode());
inspectRequestDetailCreateReqVO.setItemName(purchasereceiptRecordDetailDO.getItemName());
inspectRequestDetailCreateReqVO.setItemDesc1(purchasereceiptRecordDetailDO.getItemDesc1());
inspectRequestDetailCreateReqVO.setItemDesc2(purchasereceiptRecordDetailDO.getItemDesc2());
inspectRequestDetailCreateReqVO.setProjectCode(purchasereceiptRecordDetailDO.getProjectCode());
inspectRequestDetailCreateReqVO.setQty(purchasereceiptRecordDetailDO.getQty());
inspectRequestDetailCreateReqVO.setUom(purchasereceiptRecordDetailDO.getUom());
//合计数量
inspectRequestMainCreateReqVO.setReceiveQty(inspectRequestMainCreateReqVO.getReceiveQty().add(inspectRequestDetailCreateReqVO.getQty()));
inspectRequestDetailCreateReqVOList.add(inspectRequestDetailCreateReqVO);
}
inspectRequestMainCreateReqVO.setSubList(inspectRequestDetailCreateReqVOList);
inspectRequestMainService.createInspectRequestMain(inspectRequestMainCreateReqVO);
}
}
}
//增加库存事务 //增加库存事务
transactionService.createTransaction(transactionCreateReqVOList); transactionService.createTransaction(transactionCreateReqVOList);
//变更记录 //变更记录

26
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

@ -81,6 +81,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
@Resource @Resource
private SupplierService supplierService; private SupplierService supplierService;
@Resource @Resource
private SupplieritemService supplieritemService;
@Resource
private RuleService ruleService; private RuleService ruleService;
@Resource @Resource
private SerialNumberApi serialNumberApi; private SerialNumberApi serialNumberApi;
@ -97,6 +99,10 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
@Resource @Resource
private JobUtils jobUtils; private JobUtils jobUtils;
@Resource @Resource
private ShiftService shiftService;
@Resource
private PurchaseMainService purchaseMainService;
@Resource
private PurchasereceiptRecordMainService purchasereceiptRecordMainService; private PurchasereceiptRecordMainService purchasereceiptRecordMainService;
@Resource @Resource
private PurchasereceiptRecordDetailService purchasereceiptRecordDetailService; private PurchasereceiptRecordDetailService purchasereceiptRecordDetailService;
@ -225,7 +231,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
boolean flag = true; boolean flag = true;
for (PurchasereceiptRequestDetailDO detailDO : subDOList) { for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
String messageDetail = this.validatePurchasereceiptRequestDetailImport(mainDO, detailDO); String messageDetail = this.validatePurchasereceiptRequestDetailImport(mainDO, detailDO);
if(!messageMain.isEmpty() || messageDetail.isEmpty()) { if(!messageMain.isEmpty() || !messageDetail.isEmpty()) {
PurchasereceiptRequestMainImportErrorVO importErrorVO = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO, detailDO); PurchasereceiptRequestMainImportErrorVO importErrorVO = PurchasereceiptRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败"); importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail; messageMain = messageMain + messageDetail;
@ -405,8 +411,6 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
* @param mainDO 采购收货主 * @param mainDO 采购收货主
* @param detailDOList 采购收货子 * @param detailDOList 采购收货子
*/ */
@Transactional
private void generateJob(PurchasereceiptRequestMainDO mainDO, List<PurchasereceiptRequestDetailDO> detailDOList) { private void generateJob(PurchasereceiptRequestMainDO mainDO, List<PurchasereceiptRequestDetailDO> detailDOList) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest"); RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest");
//跳过任务直接生成记录 //跳过任务直接生成记录
@ -484,14 +488,16 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) { for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) {
//PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息 //PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息
PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO; PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO;
List<PurchasereceiptJobDetailCreateReqVO> subList = null; List<PurchasereceiptJobDetailCreateReqVO> subList = new ArrayList<>();
if(i % count == 0) { if(i % count == 0) {
purchasereceiptJobMainCreateReqVO = PurchasereceiptJobMainConvert.INSTANCE.convert(mainDO); purchasereceiptJobMainCreateReqVO = PurchasereceiptJobMainConvert.INSTANCE.convert(mainDO);
subList = new ArrayList<>(); subList = new ArrayList<>();
purchasereceiptJobMainCreateReqVO.setSubList(subList); purchasereceiptJobMainCreateReqVO.setSubList(subList);
purchasereceiptJobMainCreateReqVOList.add(purchasereceiptJobMainCreateReqVO); purchasereceiptJobMainCreateReqVOList.add(purchasereceiptJobMainCreateReqVO);
} }
PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptRequestDetailDOList.get(i)); PurchasereceiptRequestDetailDO purchasereceiptRequestDetailDO = purchasereceiptRequestDetailDOList.get(i);
PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptRequestDetailDO);
purchasereceiptJobDetailCreateReqVO.setToLocationCode(purchasereceiptRequestDetailDO.getDefaultToLocationCode());
subList.add(purchasereceiptJobDetailCreateReqVO); subList.add(purchasereceiptJobDetailCreateReqVO);
} }
} }
@ -505,13 +511,15 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob");
purchasereceiptJobMainDO.setBusinessType(businesstypeDO.getCode()); purchasereceiptJobMainDO.setBusinessType(businesstypeDO.getCode());
purchasereceiptJobMainMapper.insert(purchasereceiptJobMainDO); purchasereceiptJobMainMapper.insert(purchasereceiptJobMainDO);
trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "采购收货申请生成采购收货任务", TrendsTypeEnum.CREATE); List<PurchasereceiptJobDetailDO> purchasereceiptJobDetailDOList = new ArrayList<>();
for(PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO : purchasereceiptJobMainCreateReqVO.getSubList()) { for(PurchasereceiptJobDetailCreateReqVO purchasereceiptJobDetailCreateReqVO : purchasereceiptJobMainCreateReqVO.getSubList()) {
PurchasereceiptJobDetailDO purchasereceiptJobDetailDO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptJobDetailCreateReqVO); PurchasereceiptJobDetailDO purchasereceiptJobDetailDO = PurchasereceiptJobDetailConvert.INSTANCE.convert(purchasereceiptJobDetailCreateReqVO);
purchasereceiptJobDetailDO.setNumber(number); purchasereceiptJobDetailDO.setNumber(number);
purchasereceiptJobDetailDO.setMasterId(purchasereceiptJobMainDO.getId()); purchasereceiptJobDetailDO.setMasterId(purchasereceiptJobMainDO.getId());
purchasereceiptJobDetailMapper.insert(purchasereceiptJobDetailDO); purchasereceiptJobDetailDOList.add(purchasereceiptJobDetailDO);
} }
purchasereceiptJobDetailMapper.insertBatch(purchasereceiptJobDetailDOList);
trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "采购收货申请生成采购收货任务", TrendsTypeEnum.CREATE);
} }
} }
@ -566,8 +574,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
} catch (Exception e) { } catch (Exception e) {
message.append(e.getMessage()).append(","); message.append(e.getMessage()).append(",");
} }
if(!itembasicDO.getUom().equals(itembasicDO.getUom())) { if(!detailDo.getUom().equals(itembasicDO.getUom())) {
message.append("计量单位【").append(itembasicDO.getUom()).append("】错误,应该是【").append(itembasicDO.getUom()).append("】").append(","); message.append("计量单位【").append(detailDo.getUom()).append("】错误,应该是【").append(itembasicDO.getUom()).append("】").append(",");
} }
try { try {
this.validateItemPacking(detailDo); this.validateItemPacking(detailDo);

Loading…
Cancel
Save