diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java index 6cb82b57..49655431 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptJob/PurchasereceiptJobMainServiceImpl.java @@ -15,6 +15,7 @@ import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMai import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainPageReqVO; import com.win.module.wms.controller.purchasereceiptJob.vo.PurchasereceiptJobMainUpdateReqVO; 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.purchasereceiptJob.PurchasereceiptJobDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptJob.PurchasereceiptJobMainDO; import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRecordDetailDO; @@ -22,6 +23,7 @@ import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchasereceiptRe import com.win.module.wms.dal.dataobject.purchasereceiptRecord.PurchaseshortageDetailDO; import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO; import com.win.module.wms.dal.dataobject.supplierdeliverRecord.SupplierdeliverRecordDetailDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.purchasereceiptJob.PurchasereceiptJobMainMapper; import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordDetailMapper; import com.win.module.wms.dal.mysql.purchasereceiptRecord.PurchasereceiptRecordMainMapper; @@ -32,6 +34,7 @@ import com.win.module.wms.enums.job.JobStatusState; import com.win.module.wms.enums.request.RequestStatusEnum; import com.win.module.wms.service.supplierdeliverRecord.SupplierdeliverRecordMainService; import com.win.module.wms.service.transaction.TransactionService; +import com.win.module.wms.util.JobUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -76,6 +79,8 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain private TrendsApi trendsApi; @Resource private SerialNumberApi serialNumberApi; + @Resource + private JobUtils jobUtils; @Override public PageResult getPurchasereceiptJobMainSenior(CustomConditions conditions) { @@ -233,6 +238,19 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain purchasereceiptRecordDetailDO.setUpdater(null); purchasereceiptRecordDetailDO.setUpdateTime(null); purchasereceiptRecordDetailMapper.insert(purchasereceiptRecordDetailDO); + //添加库存事务list + TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); + BeanUtils.copyProperties(purchasereceiptRecordDetailDO, transactionCreateReqVO); + //增加业务类型 + BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptJob"); + transactionCreateReqVO.setBusinessType(businesstypeDO.getCode()); + TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); + transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction()); + transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode()); + transactionCreateReqVO.setRecordNumber(number); + transactionCreateReqVO.setId(null); + //待确定库存事务信息 + transactionCreateReqVOList.add(transactionCreateReqVO); } else {//生成缺货记录 PurchaseshortageDetailDO purchaseshortageDetailDO = new PurchaseshortageDetailDO(); BeanUtils.copyProperties(purchasereceiptJobDetailDO, purchaseshortageDetailDO); @@ -246,13 +264,6 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain purchaseshortageDetailDO.setUpdateTime(null); purchaseshortageDetailMapper.insert(purchaseshortageDetailDO); } - //添加库存事务list - TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO(); - BeanUtils.copyProperties(purchasereceiptJobDetailDO, transactionCreateReqVO); - transactionCreateReqVO.setId(null); - //待确定库存事务信息 - - transactionCreateReqVOList.add(transactionCreateReqVO); } List typeList = new ArrayList<>(); typeList.add(JobStatusEnum.PENDING.getCode()); @@ -262,7 +273,7 @@ public class PurchasereceiptJobMainServiceImpl implements PurchasereceiptJobMain if(count == 0) {//申请单下所有任务全部完成 purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.COMPLETED.getCode()); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); - } else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//不分完成 + } else if(purchasereceiptRequestMainDO.getStatus().equals(RequestStatusEnum.HANDLING.getCode())) {//部分完成 purchasereceiptRequestMainDO.setStatus(RequestStatusEnum.PARTIAL.getCode()); purchasereceiptRequestMainMapper.updateById(purchasereceiptRequestMainDO); } diff --git a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java index 8aec3ea8..fa1f1064 100644 --- a/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java +++ b/win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java @@ -1,6 +1,5 @@ package com.win.module.wms.util; -import cn.hutool.core.exceptions.UtilException; import cn.hutool.json.JSONObject; import cn.hutool.json.JSONUtil; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -12,6 +11,7 @@ import com.win.module.wms.dal.dataobject.expectout.ExpectoutDO; import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; import com.win.module.wms.dal.dataobject.location.LocationDO; import com.win.module.wms.dal.dataobject.supplier.SupplierDO; +import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; import com.win.module.wms.dal.mysql.balance.BalanceMapper; import com.win.module.wms.dal.mysql.expectout.ExpectoutMapper; import com.win.module.wms.dal.mysql.location.LocationMapper; @@ -23,6 +23,7 @@ import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.rule.RuleService; import com.win.module.wms.service.supplier.SupplierService; +import com.win.module.wms.service.transactiontype.TransactiontypeService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.springframework.stereotype.Component; @@ -72,6 +73,9 @@ public class JobUtils { @Resource private BusinesstypeService businesstypeService; + @Resource + private TransactiontypeService transactiontypeService; + /** * 解析JSON串,返回两个对象的集合 @@ -539,8 +543,7 @@ public class JobUtils { List expectoutDO = selectLocatioNew(itemcode, packingnumber, batch, locationcode, inventoryStatus); BigDecimal esum = BigDecimal.valueOf(expectoutDO.stream().mapToDouble(expectoutDO1 -> expectoutDO1.getQty().doubleValue()).sum()); BigDecimal bsum = BigDecimal.valueOf(balanceDO.stream().mapToDouble(balanceDO1 -> balanceDO1.getQty().doubleValue()).sum()); - BigDecimal sum = bsum.subtract(esum); - return sum; + return bsum.subtract(esum); } /** @@ -591,15 +594,11 @@ public class JobUtils { //查询库位BQ-QL public boolean selectlocation(String code) { - QueryWrapper queryWrapper = new QueryWrapper(); + QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq("code", code); queryWrapper.eq("available", "TRUE"); LocationDO locationDO = locationMapper.selectOne(queryWrapper); - if (locationDO == null) { - return true; - } else { - return false; - } + return locationDO != null; } //从库位未被其他任务占用,有可用库存 @@ -694,17 +693,27 @@ public class JobUtils { */ public BusinesstypeDO selectDocumentSettingFromBusinessType(String pcode){ DocumentsettingDO documentsettingDO = documentsettingService.selectDocumentsettingExist(pcode); - if(documentsettingDO != null && documentsettingDO.getBusinessType() != null){ - BusinesstypeDO businesstypeDO = businesstypeService.selectBusinesstypeExist(documentsettingDO.getBusinessType()); - if(businesstypeDO != null){ - return businesstypeDO; - }else { - return null; - } - }else { + if(documentsettingDO == null || documentsettingDO.getBusinessType() == null) { return null; } + return businesstypeService.selectBusinesstypeExist(documentsettingDO.getBusinessType()); } + + /** + * DBT4 + * 根据单据设置查询业务类型 + * @author chenfang + * @param pcode + * @return + */ + public TransactiontypeDO selectDocumentFromTransactionType(String pcode){ + TransactiontypeDO transactionType = transactiontypeService.selectTransactiontype(pcode); + if(transactionType == null || transactionType.getCode() == null) { + return null; + } + return transactionType; + } + /** * 从库存有效,状态正确(使用客户寄售库) * author:yejiaxing