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. 220
      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 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 javax.validation.constraints.*;
import lombok.Data;
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;
/**
@ -115,11 +113,11 @@ public class InspectRequestMainBaseVO {
@Schema(description = "收货数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "收货数量不能为空")
private Integer receiveQty;
private BigDecimal receiveQty;
@Schema(description = "样品数量", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "样品数量不能为空")
private Integer sampleQty;
private BigDecimal sampleQty;
@Schema(description = "货主代码")
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;
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.win.framework.excel.core.annotations.DictFormat;
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;
@ExcelProperty("收货数量")
private Integer receiveQty;
private BigDecimal receiveQty;
@ExcelProperty("样品数量")
private Integer sampleQty;
private BigDecimal sampleQty;
@ExcelProperty("货主代码")
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;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
import com.win.framework.common.pojo.PageParam;
import java.time.LocalDateTime;
import lombok.Data;
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;
@Schema(description = "管理后台 - 检验申请主 Excel 导出 Request VO,参数和 InspectRequestMainPageReqVO 是一致的")
@ -90,10 +90,10 @@ public class InspectRequestMainExportReqVO {
private String uom;
@Schema(description = "收货数量")
private Integer receiveQty;
private BigDecimal receiveQty;
@Schema(description = "样品数量")
private Integer sampleQty;
private BigDecimal sampleQty;
@Schema(description = "货主代码")
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;
import lombok.*;
import java.util.*;
import io.swagger.v3.oas.annotations.media.Schema;
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 java.math.BigDecimal;
import java.time.LocalDateTime;
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;
@Schema(description = "收货数量")
private Integer receiveQty;
private BigDecimal receiveQty;
@Schema(description = "样品数量")
private Integer sampleQty;
private BigDecimal sampleQty;
@Schema(description = "货主代码")
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 = "实际数量")
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;
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 java.util.*;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.time.LocalDateTime;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import com.baomidou.mybatisplus.annotation.*;
import com.win.framework.mybatis.core.dataobject.BaseDO;
/**
* 检验申请主 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
*/
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;
import java.util.*;
import javax.validation.*;
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.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 接口
@ -84,5 +87,21 @@ public interface InspectRequestMainService {
* @param updatePart 是否支持更新
* @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);
}

220
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.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import javax.validation.Validator;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.validation.Validator;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collection;
import java.util.HashMap;
import java.util.List;
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 实现类
@ -84,11 +86,15 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
private RequestsettingService requestsettingService;
@Resource
private TrendsApi trendsApi;
@Override
@Transactional
public Long createInspectRequestMain(InspectRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("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())) {
@ -98,13 +104,14 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
@Override
@Transactional
public void updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
// 校验存在
validateInspectRequestMainExists(updateReqVO.getId());
// 更新主表
InspectRequestMainDO inspectRequestMainDO = validatorToUpdate(updateReqVO, businesstypeDO);
InspectRequestMainDO inspectRequestMainDO = validatorUpdate(updateReqVO, businesstypeDO, requestsettingDO);
if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) {
}
@ -112,6 +119,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
@Override
@Transactional
public void deleteInspectRequestMain(Long id) {
// 校验存在
validateInspectRequestMainExists(id);
@ -139,15 +147,66 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
public PageResult<InspectRequestMainDO> getInspectRequestMainPage(InspectRequestMainPageReqVO pageReqVO) {
return inspectRequestMainMapper.selectPage(pageReqVO);
}
@Override
public PageResult<InspectRequestMainDO> getInspectRequestMainSenior(CustomConditions conditions) {
return inspectRequestMainMapper.selectSenior(conditions);
}
@Override
public List<InspectRequestMainDO> getInspectRequestMainList(InspectRequestMainExportReqVO 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) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom);
@ -157,57 +216,57 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
}
}
//查询检验类型
private Integer selectInspectType(Integer sampleQty, HashMap<String, String> ruleAll) {
@Override
public BigDecimal selectInspectType(BigDecimal sampleQty, HashMap<String, String> ruleAll) {
String inspectType = ruleAll.get("InspectType");
if("EXEMPT".equals(inspectType)){
return 0;
} else if ("FULL".equals(inspectType)) {
if ("FULL".equals(inspectType)) {
return sampleQty;
} else if ("SAMPLING".equals(inspectType)) {
return selectSampleMethod(ruleAll, sampleQty);
} 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");
JSONArray aplList = JSONUtil.parseArray(ruleAll.get("AplList"));
//获取最大校验规则范围
Integer maxFloorQty = 0;
Integer maxCeilingQty = 0;
Integer maxSampleValue = 0;
Integer result = 0;
BigDecimal maxFloorQty = BigDecimal.ZERO;
BigDecimal maxCeilingQty = BigDecimal.ZERO;
BigDecimal maxSampleValue = BigDecimal.ZERO;
BigDecimal result = BigDecimal.ZERO;
for (Object o : aplList) {
JSONObject parse = JSONUtil.parseObj(o);
Integer floorQty = Integer.valueOf(parse.get("FloorQty").toString());
Integer ceilingQty = Integer.valueOf(parse.get("CeilingQty").toString());
Integer sampleValue = Integer.valueOf(parse.get("SampleValue").toString());
if (maxFloorQty < floorQty){
BigDecimal floorQty = new BigDecimal(String.valueOf(parse.get("FloorQty")));
BigDecimal ceilingQty = new BigDecimal(String.valueOf(parse.get("CeilingQty")));
BigDecimal sampleValue = new BigDecimal(String.valueOf(parse.get("SampleValue")));
if (maxFloorQty.compareTo(floorQty) < 0) {
maxFloorQty = floorQty;
}
if (maxCeilingQty < ceilingQty){
if (maxCeilingQty.compareTo(ceilingQty) < 0) {
maxCeilingQty = ceilingQty;
}
if (maxSampleValue < sampleValue){
if (maxSampleValue.compareTo(sampleValue) < 0) {
maxSampleValue = sampleValue;
}
//根据校验规则计算出抽样数量
if(sampleQty != null && sampleQty != 0){
if(floorQty <= sampleQty && sampleQty <= ceilingQty){
if (sampleQty != null && sampleQty.compareTo(BigDecimal.ZERO) != 0) {
if(floorQty.compareTo(sampleQty) <= 0 && sampleQty.compareTo(ceilingQty) <= 0) {
if ("QTY".equals(sampleMethod)) {
result = sampleValue;
} else if ("PERCENT".equals(sampleMethod)) {
double doubleSampleQty = sampleQty * (sampleValue * 0.01);
result = (int) Math.round(doubleSampleQty);
result = sampleQty.multiply(sampleValue).multiply(new BigDecimal("0.01"));
}
}
} else {
throw new UtilException("当前到货数量为空,不能进行校验");
}
}
if (maxCeilingQty < sampleQty) {
if (maxCeilingQty.compareTo(sampleQty) < 0) {
throw new UtilException("当前到货数量已超出校验规则范围");
} else {
return result;
@ -215,7 +274,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
//获取策略里的参数进行字段对应
private HashMap<String, String> selectRule(String supplierCode,String itemCode){
public HashMap<String, String> selectRule(String supplierCode, String itemCode) {
RuleRespVO inspect = ruleService.inspect(supplierCode, itemCode);
if (inspect == null) {
throw new UtilException("未找到该策略");
@ -238,92 +297,45 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
return mapRule;
}
private PurchasereceiptRecordDetailDO validatorPurchasereceiptExist(String purchaseReceiptRecordNumber, String poNumber, String poLine, String itemCode) {
return purchasereceiptRecordMainService.selectPurchasereceiptExist(poNumber, null, purchaseReceiptRecordNumber, poLine, itemCode);
}
private void validatorRule(InspectRequestMainDO mainDO) {
HashMap<String, String> rule = selectRule(null, mainDO.getItemCode());
selectInspectType(mainDO.getReceiveQty(),rule);
mainDO.setSampleQty(selectInspectType(mainDO.getReceiveQty(), rule));
}
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
private void validatorLocation(String fromLocationCode) {
locationService.selectLocation(fromLocationCode);
}
private void validatorIfInType(String itemType, BusinesstypeDO businesstypeDO) {
jobUtils.ifInType(itemType, businesstypeDO);
}
private void validatorIfOutInventoryStatuses(String inventoryStatus, BusinesstypeDO businesstypeDO) {
jobUtils.ifOutInventoryStatuses(inventoryStatus, businesstypeDO);
}
private void validatorIfInFromLocationType(String fromLocationCode, BusinesstypeDO 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);
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) {
InspectRequestMainDO mainDo = validatorMainMethod(createReqVO,businesstypeDO);
private InspectRequestMainDO validatorCreate(InspectRequestMainCreateReqVO createReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = validatorMainMethod(createReqVO, businesstypeDO, requestsettingDO);
//子表校验
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
@ -339,8 +351,8 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
//修改校验
private InspectRequestMainDO validatorToUpdate(InspectRequestMainUpdateReqVO updateReqVO, BusinesstypeDO businesstypeDO) {
InspectRequestMainDO mainDo = validatorMainMethod(updateReqVO,businesstypeDO);
private InspectRequestMainDO validatorUpdate(InspectRequestMainUpdateReqVO updateReqVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = validatorMainMethod(updateReqVO, businesstypeDO, requestsettingDO);
//子表校验
List<InspectRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList05(subList);
@ -351,23 +363,23 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
inspectRequestDetailMapper.updateBatch(subDOList);
return mainDo;
}
//校验主表公共方法(适用于新增/修改)
private InspectRequestMainDO validatorMainMethod(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO){
private InspectRequestMainDO validatorMainMethod(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO);
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty().intValue());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty());
validatorRule(mainDo);
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
return mainDo;
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
@ -380,7 +392,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
validatorLocation(detailDo.getFromLocationCode());
validatorIfOutInventoryStatuses(detailDo.getInventoryStatus(), 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());
}
/**
@ -393,7 +405,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
StringBuilder message = new StringBuilder();
try {
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty().intValue());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
@ -402,11 +414,9 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
if (businesstypeDO == null) {
message.append("根据业务类型设置未查找到采购退货申请的相关业务类型");
}
else {
} else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
@ -414,8 +424,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
if (requestsettingDO == null) {
message.append("根据申请单设置未查找到采购退货申请的相关业务类型");
}
else {
} else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
@ -437,22 +446,23 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
*/
private String validatorInspectRequestDetailImport(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
ItembasicDO itembasicDO = null;
try {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setItemName(itembasicDO.getName());
detailDo.setProjectCode(itembasicDO.getProject());
try {
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
validatorIfInType(itembasicDO.getType(), businesstypeDO);
this.ifUomSuccess(itembasicDO.getUom(), detailDo.getUom());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
validatorIfInType(itembasicDO.getType(), businesstypeDO);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
@ -472,7 +482,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
message.append(ex.getMessage()).append(",");
}
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) {
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;
import cn.hutool.json.JSONObject;
import cn.hutool.json.JSONUtil;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException;
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.dto.AdminUserRespDTO;
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.PurchasereceiptJobMainExportReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO;
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.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.PurchasereceiptJobMainDO;
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.JobStatusState;
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.transaction.TransactionService;
import com.win.module.wms.util.JobUtils;
@ -81,6 +90,12 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
private SerialNumberApi serialNumberApi;
@Resource
private JobUtils jobUtils;
@Resource
private SwitchService switchService;
@Resource
private InspectRequestMainService inspectRequestMainService;
@Resource
private RuleService ruleService;
@Override
public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) {
@ -216,12 +231,14 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
List<PurchasereceiptJobDetailUpdateReqVO> purchasereceiptJobDetailUpdateReqVOList = purchasereceiptJobMainUpdateReqVO.getSubList();
List<PurchasereceiptRecordDetailDO> purchasereceiptRecordDetailDOList = new ArrayList<>();
List<PurchaseshortageDetailDO> purchaseshortageDetailDOList = new ArrayList<>();
for(PurchasereceiptJobDetailDO purchasereceiptJobDetailDO : subList) {
boolean isExists = false;
PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVOTemp = null;
for(PurchasereceiptJobDetailUpdateReqVO purchasereceiptJobDetailUpdateReqVO : purchasereceiptJobDetailUpdateReqVOList) {
if(purchasereceiptJobDetailDO.getId().equals(purchasereceiptJobDetailUpdateReqVO.getId())) {
//实际收货数量
purchasereceiptJobDetailUpdateReqVO.setQty(purchasereceiptJobDetailUpdateReqVO.getHandleQty());
purchasereceiptJobDetailUpdateReqVOTemp = purchasereceiptJobDetailUpdateReqVO;
isExists = true;
break;
}
@ -232,12 +249,17 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRecordDetailDO.setMasterId(purchasereceiptRecordMainDO.getId());
purchasereceiptRecordDetailDO.setNumber(number);
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.setCreator(null);
purchasereceiptRecordDetailDO.setCreateTime(null);
purchasereceiptRecordDetailDO.setUpdater(null);
purchasereceiptRecordDetailDO.setUpdateTime(null);
purchasereceiptRecordDetailMapper.insert(purchasereceiptRecordDetailDO);
purchasereceiptRecordDetailDOList.add(purchasereceiptRecordDetailDO);
//添加库存事务list
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO);
@ -262,15 +284,22 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchaseshortageDetailDO.setCreateTime(null);
purchaseshortageDetailDO.setUpdater(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<>();
typeList.add(JobStatusEnum.PENDING.getCode());
typeList.add(JobStatusEnum.PROCESSING.getCode());
Long count = purchasereceiptJobMainMapper.selectListCount(typeList, purchasereceiptJobMainDO.getRequestNumber());
PurchasereceiptRequestMainDO purchasereceiptRequestMainDO = purchasereceiptRequestMainMapper.selectByNumber(purchasereceiptJobMainDO.getRequestNumber());
if(count == 0) {//申请单下所有任务全部完成
//申请单下所有任务全部完成
if(count == 0) {
purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode());
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
} else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成
@ -278,7 +307,63 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
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);
//变更记录

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

Loading…
Cancel
Save