Browse Source

采购收货入库申请增加预计入,采购收货任务增加删除预计入。

master
刘忱 2 years ago
parent
commit
febf9d4a0f
  1. 47
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java
  2. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainService.java
  3. 186
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java
  4. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java
  5. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

47
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectRequest/InspectRequestMainController.java

@ -1,41 +1,38 @@
package com.win.module.wms.controller.inspectRequest;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inspectRequest.vo.*;
import com.win.module.wms.convert.inspectRequest.InspectRequestMainConvert;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.inspectRequest.InspectRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Parameters;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.v3.oas.annotations.tags.Tag;
import io.swagger.v3.oas.annotations.Parameter;
import io.swagger.v3.oas.annotations.Operation;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.*;
import javax.servlet.http.*;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
import java.io.IOException;
import java.time.LocalDateTime;
import java.time.ZoneOffset;
import java.util.*;
import java.io.IOException;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.pojo.CommonResult;
import static com.win.framework.common.pojo.CommonResult.success;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.*;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
import com.win.module.wms.convert.inspectRequest.InspectRequestMainConvert;
import com.win.module.wms.service.inspectRequest.InspectRequestMainService;
import org.springframework.web.multipart.MultipartFile;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@Tag(name = "管理后台 - 检验申请主")
@RestController
@ -59,8 +56,8 @@ public class InspectRequestMainController {
@Operation(summary = "更新检验申请主")
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:update')")
public CommonResult<Boolean> updateInspectRequestMain(@Valid @RequestBody InspectRequestMainUpdateReqVO updateReqVO) {
inspectRequestMainService.updateInspectRequestMain(updateReqVO);
return success(true);
int result = inspectRequestMainService.updateInspectRequestMain(updateReqVO);
return success(result > 0);
}
@DeleteMapping("/delete")
@ -68,8 +65,8 @@ public class InspectRequestMainController {
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inspect-request-main:delete')")
public CommonResult<Boolean> deleteInspectRequestMain(@RequestParam("id") Long id) {
inspectRequestMainService.deleteInspectRequestMain(id);
return success(true);
int result = inspectRequestMainService.deleteInspectRequestMain(id);
return success(result > 0);
}
@GetMapping("/get")

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

@ -31,14 +31,14 @@ public interface InspectRequestMainService {
*
* @param updateReqVO 更新信息
*/
void updateInspectRequestMain(@Valid InspectRequestMainUpdateReqVO updateReqVO);
Integer updateInspectRequestMain(@Valid InspectRequestMainUpdateReqVO updateReqVO);
/**
* 删除检验申请主
*
* @param id 编号
*/
void deleteInspectRequestMain(Long id);
Integer deleteInspectRequestMain(Long id);
/**
* 获得检验申请主

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

@ -9,7 +9,6 @@ import cn.hutool.json.JSONUtil;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi;
@ -28,8 +27,8 @@ import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRe
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestDetailMapper;
import com.win.module.wms.dal.mysql.inspectRequest.InspectRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.purchasereceiptRecord.PurchasereceiptRecordMainService;
@ -92,47 +91,47 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
public Long createInspectRequestMain(InspectRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
InspectRequestMainDO inspectRequestMainDO = this.validatorCreate(createReqVO, businesstypeDO, requestsettingDO);
InspectRequestMainDO mainDO = this.validatorMain(createReqVO, businesstypeDO, requestsettingDO);
//子表校验
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
for (InspectRequestDetailDO detailDO : subDOList) {
this.validatorDetail(detailDO, mainDO, businesstypeDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.INSPECT_REQUEST.getCode());
inspectRequestMainDO.setNumber(number);
mainDO.setNumber(number);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDO.setStatus(requestStatusState.getState().getCode());
inspectRequestMainMapper.insert(mainDO);
inspectRequestDetailMapper.insertBatch(subDOList);
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) {
if (RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, subDOList);
}
trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE);
return inspectRequestMainDO.getId();
return mainDO.getId();
}
@Override
@Transactional
public void updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) {
public Integer updateInspectRequestMain(InspectRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
// 校验存在
validateInspectRequestMainExists(updateReqVO.getId());
// 更新主表
InspectRequestMainDO inspectRequestMainDO = validatorUpdate(updateReqVO, businesstypeDO, requestsettingDO);
if (RequestStatusEnum.HANDLING.getCode().equals(inspectRequestMainDO.getStatus())) {
}
InspectRequestMainDO mainDO = this.validatorMain(updateReqVO, businesstypeDO, requestsettingDO);
trendsApi.createTrends(requestsettingDO.getId(), "InspectRequest", "增加了到货校验申请", TrendsTypeEnum.CREATE);
// 更新主表
return inspectRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public void deleteInspectRequestMain(Long id) {
public Integer deleteInspectRequestMain(Long id) {
// 校验存在
validateInspectRequestMainExists(id);
// 删除
inspectRequestMainMapper.deleteById(id);
}
private InspectRequestMainDO validateInspectRequestMainExists(Long id) {
InspectRequestMainDO inspectRequestMainDO = inspectRequestMainMapper.selectById(id);
if (inspectRequestMainDO == null) {
throw exception(INSPECT_REQUEST_MAIN_NOT_EXISTS);
}
return inspectRequestMainDO;
return inspectRequestMainMapper.deleteById(id);
}
@Override
@ -170,10 +169,10 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
datas.forEach(createReqVO -> {
//主表校验方法
InspectRequestMainDO mainDO = InspectRequestMainConvert.INSTANCE.convert(createReqVO);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
String messageMain = this.validatorInspectRequestMainImport(mainDO, businesstypeDO);
String messageMain = this.validatorInspectRequestMainImport(mainDO);
List<InspectRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InspectRequestDetailDO> subDOList = InspectRequestDetailConvert.INSTANCE.convertList03(subList);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectRequest");
for (InspectRequestDetailDO detailDO : subDOList) {
String messageDetail = this.validatorInspectRequestDetailImport(detailDO, mainDO, businesstypeDO);
InspectRequestDetailCreateReqVO inspectRequestDetailCreateReqVO = InspectRequestDetailConvert.INSTANCE.convert1(detailDO);
@ -185,12 +184,26 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
errorList.add(importVO);
}
}
mainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
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());
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDO.setStatus(requestStatusState.getState().getCode());
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);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, subDOList);
}
inspectRequestMainMapper.insert(mainDO);
for(InspectRequestDetailDO inspectRequestDetailDO : subDOList) {
inspectRequestDetailDO.setMasterId(mainDO.getId());
@ -209,6 +222,15 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
return errorList;
}
/**
* 生成收货检验任务不要改动事务传播方式否则会有事务问题
* @param mainDO 收货检验主
* @param detailDOList 收货检验子
*/
private void generateJob(InspectRequestMainDO mainDO, List<InspectRequestDetailDO> detailDOList) {
}
//判断导入单位是否正确
private void ifUomSuccess(String itemUom, String uom) {
DictDataRespDTO dictDataRespDTO = dictDataApi.selectDictLabel(uom);
@ -309,69 +331,18 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
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 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);
}
// 新增校验
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);
for (InspectRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO, mainDo, businesstypeDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
inspectRequestMainMapper.insert(mainDo);
inspectRequestDetailMapper.insertBatch(subDOList);
return mainDo;
}
//修改校验
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);
for (InspectRequestDetailDO detailDO : subDOList) {
validatorDetailMethod(detailDO, mainDo, businesstypeDO);
private void validateInspectRequestMainExists(Long id) {
if (inspectRequestMainMapper.selectById(id) == null) {
throw exception(INSPECT_REQUEST_MAIN_NOT_EXISTS);
}
inspectRequestMainMapper.updateById(mainDo);
inspectRequestDetailMapper.updateBatch(subDOList);
return mainDo;
}
//校验主表公共方法(适用于新增/修改)
private InspectRequestMainDO validatorMainMethod(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
private InspectRequestMainDO validatorMain(InspectRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
InspectRequestMainDO mainDo = InspectRequestMainConvert.INSTANCE.convert(baseVO);
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = this.validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
mainDo.setReceiveQty(purchasereceiptRecordDetailDO.getQty());
validatorRule(mainDo);
this.validatorRule(mainDo);
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
@ -383,7 +354,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
//校验子表公共方法(适用于新增/修改)
private void validatorDetailMethod(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
private void validatorDetail(InspectRequestDetailDO detailDo, InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
ItembasicDO itembasicDO = validatorItembasic(detailDo.getItemCode());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
@ -403,7 +374,7 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
* @param mainDo
* @return
*/
private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
private String validatorInspectRequestMainImport(InspectRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
try {
PurchasereceiptRecordDetailDO purchasereceiptRecordDetailDO = validatorPurchasereceiptExist(mainDo.getPurchaseReceiptRecordNumber(), mainDo.getPoNumber(), mainDo.getPoLine(), mainDo.getItemCode());
@ -416,22 +387,6 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
if (businesstypeDO == null) {
message.append("根据业务类型设置未查找到采购退货申请的相关业务类型");
} else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
}
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("InspectRequest");
if (requestsettingDO == null) {
message.append("根据申请单设置未查找到采购退货申请的相关业务类型");
} else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
@ -495,4 +450,31 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
return message.toString();
}
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 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);
}
}

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

@ -39,6 +39,7 @@ 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.expectin.ExpectinService;
import com.win.module.wms.service.inspectRequest.InspectRequestMainService;
import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService;
@ -96,6 +97,8 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
private InspectRequestMainService inspectRequestMainService;
@Resource
private RuleService ruleService;
@Resource
private ExpectinService expectinService;
@Override
public PageResult<PurchasereceiptJobMainDO> getPurchasereceiptJobMainSenior(CustomConditions conditions) {
@ -306,7 +309,6 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode());
purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO);
}
//创建拣货申请
SwitchDO switchDO = switchService.selectSwitchExist("CreateInspectRequestAfterPurchaseReceiptRecordCreated");
//需要增加到货检验申请
if(switchDO.getEffectiveSetValue().equals("TRUE")) {
@ -369,6 +371,8 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计入
expectinService.deleteExpectinByJobNumber(purchasereceiptJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "执行了采购收货任务", TrendsTypeEnum.UPDATE);
return null;

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

@ -12,6 +12,7 @@ import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.expectin.vo.ExpectinCreateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobDetailCreateReqVO;
import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRecord.vo.PurchasereceiptRecordDetailCreateReqVO;
@ -37,6 +38,7 @@ import com.win.module.wms.dal.mysql.purchasereceiptRequest.PurchasereceiptReques
import com.win.module.wms.enums.job.JobStatusEnum;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.itempackaging.ItempackagingService;
import com.win.module.wms.service.purchase.PurchaseMainService;
@ -106,6 +108,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
private PurchasereceiptRecordMainService purchasereceiptRecordMainService;
@Resource
private PurchasereceiptRecordDetailService purchasereceiptRecordDetailService;
@Resource
private ExpectinService expectinService;
@Override
@Transactional
@ -126,6 +130,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
mainDO.setAutoCommit(requestsettingDO.getAutoCommit());
mainDO.setAutoAgree(requestsettingDO.getAutoAgree());
mainDO.setAutoExecute(requestsettingDO.getAutoExecute());
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, subDOList);
@ -257,6 +262,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
mainDO.setAutoCommit(requestsettingDO.getAutoCommit());
mainDO.setAutoAgree(requestsettingDO.getAutoAgree());
mainDO.setAutoExecute(requestsettingDO.getAutoExecute());
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
for (PurchasereceiptRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
@ -412,9 +418,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
* @param detailDOList 采购收货子
*/
private void generateJob(PurchasereceiptRequestMainDO mainDO, List<PurchasereceiptRequestDetailDO> detailDOList) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("PurchaseReceiptRequest");
//跳过任务直接生成记录
if("TRUE".equals(requestsettingDO.getDirectCreateRecord())) {
if("TRUE".equals(mainDO.getDirectCreateRecord())) {
PurchasereceiptRecordMainCreateReqVO purchasereceiptRecordMainCreateReqVO = new PurchasereceiptRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, purchasereceiptRecordMainCreateReqVO);
purchasereceiptRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
@ -501,6 +506,7 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
subList.add(purchasereceiptJobDetailCreateReqVO);
}
}
List<ExpectinCreateReqVO> createReqVOList = new ArrayList<>();
//把任务插入数据库
for(PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO : purchasereceiptJobMainCreateReqVOList) {
PurchasereceiptJobMainDO purchasereceiptJobMainDO = PurchasereceiptJobMainConvert.INSTANCE.convert(purchasereceiptJobMainCreateReqVO);
@ -517,8 +523,15 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
purchasereceiptJobDetailDO.setNumber(number);
purchasereceiptJobDetailDO.setMasterId(purchasereceiptJobMainDO.getId());
purchasereceiptJobDetailDOList.add(purchasereceiptJobDetailDO);
//预计入
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO();
BeanUtils.copyProperties(purchasereceiptJobDetailDO, expectinCreateReqVO);
expectinCreateReqVO.setJobNumber(number);
createReqVOList.add(expectinCreateReqVO);
}
purchasereceiptJobDetailMapper.insertBatch(purchasereceiptJobDetailDOList);
//增加预计入
expectinService.createExpectin(createReqVOList);
trendsApi.createTrends(purchasereceiptJobMainDO.getId(), "purchasereceiptJob", "采购收货申请生成采购收货任务", TrendsTypeEnum.CREATE);
}
}
@ -534,7 +547,8 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}try {
}
try {
this.validateSupplier(mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");

Loading…
Cancel
Save