Browse Source

检验任务执行修改库存事务。

master
刘忱 2 years ago
parent
commit
03fa2c0c36
  1. 26
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectJob/vo/InspectJobDetailUpdateReqVO.java
  2. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java
  3. 52
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java
  4. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectRequest/InspectRequestMainServiceImpl.java
  5. 37
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java
  6. 14
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java

26
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inspectJob/vo/InspectJobDetailUpdateReqVO.java

@ -1,14 +1,12 @@
package com.win.module.wms.controller.inspectJob.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
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;
@Schema(description = "管理后台 - 检验任务子更新 Request VO")
@Data
@ -44,22 +42,4 @@ public class InspectJobDetailUpdateReqVO extends InspectJobDetailBaseVO {
@NotNull(message = "到库存状态不能为空")
private String toInventoryStatus;
@Schema(description = "单价")
private BigDecimal singlePrice;
@Schema(description = "金额")
private BigDecimal amount;
@Schema(description = "到货日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime arriveDate;
@Schema(description = "生产日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime produceDate;
@Schema(description = "失效日期")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime expireDate;
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/balance/BalanceMapper.java

@ -77,6 +77,19 @@ public interface BalanceMapper extends BaseMapperX<BalanceDO> {
return result > 0;
}
/**
* 更新库存余额数量出库qty是负数
*/
default BalanceDO getBalanceQty(String packingNumber, String itemCode, String batch, String inventoryStatus, String locationCode) {
QueryWrapper<BalanceDO> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("packing_number", packingNumber);
queryWrapper.eq("item_code", itemCode);
queryWrapper.eq("batch", batch);
queryWrapper.eq("inventory_status", inventoryStatus);
queryWrapper.eq("location_code", locationCode);
return selectOne(queryWrapper);
}
default PageResult<BalanceDO> selectPage(BalancePageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<BalanceDO>()
.eqIfPresent(BalanceDO::getPackingNumber, reqVO.getPackingNumber())

52
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inspectJob/InspectJobMainServiceImpl.java

@ -12,12 +12,14 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inspectJob.vo.*;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inspectJob.InspectJobMainDO;
import com.win.module.wms.dal.dataobject.inspectRecord.InspectRecordDetailDO;
import com.win.module.wms.dal.dataobject.inspectRecord.InspectRecordMainDO;
import com.win.module.wms.dal.dataobject.inspectRequest.InspectRequestMainDO;
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.inspectJob.InspectJobDetailMapper;
import com.win.module.wms.dal.mysql.inspectJob.InspectJobMainMapper;
import com.win.module.wms.dal.mysql.inspectRecord.InspectRecordDetailMapper;
@ -77,6 +79,8 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
private TransactionService transactionService;
@Resource
private ExpectinService expectinService;
@Resource
private BalanceMapper balanceMapper;
@Override
public InspectJobMainDO getInspectJobMain(Long id) {
@ -219,6 +223,8 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
inspectRecordDetailDO.setUpdater(null);
inspectRecordDetailDO.setUpdateTime(null);
inspectRecordDetailDOList.add(inspectRecordDetailDO);
//查询库存余额
BalanceDO balanceDO = balanceMapper.getBalanceQty(inspectJobDetailUpdateReqVO.getPackingNumber(), inspectJobMainUpdateReqVO.getItemCode(), inspectJobMainUpdateReqVO.getBatch(), inspectJobDetailUpdateReqVO.getInventoryStatus(), inspectJobDetailUpdateReqVO.getFromLocationCode());
//添加库存事务入list
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(inspectRecordDetailDO, transactionCreateReqVOIn);
@ -226,21 +232,36 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("InspectJob");
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setQty(inspectJobDetailUpdateReqVO.getGoodQty());
transactionCreateReqVOIn.setBatch(inspectRecordMainDO.getBatch());
transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOIn.setInventoryStatus(inspectJobDetailUpdateReqVO.getToInventoryStatus());
transactionCreateReqVOIn.setSinglePrice(inspectJobDetailUpdateReqVO.getSinglePrice());
transactionCreateReqVOIn.setAmount(inspectJobDetailUpdateReqVO.getAmount());
transactionCreateReqVOIn.setArriveDate(inspectJobDetailUpdateReqVO.getArriveDate());
transactionCreateReqVOIn.setProduceDate(inspectJobDetailUpdateReqVO.getProduceDate());
transactionCreateReqVOIn.setExpireDate(inspectJobDetailUpdateReqVO.getExpireDate());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOIn.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVOIn);
if(inspectJobDetailUpdateReqVO.getGoodQty() != null && inspectJobDetailUpdateReqVO.getGoodQty().compareTo(BigDecimal.ZERO) > 0) {
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(transactionCreateReqVOIn, transactionCreateReqVO);
transactionCreateReqVO.setInventoryAction("OK");
transactionCreateReqVO.setQty(inspectJobDetailUpdateReqVO.getGoodQty());
transactionCreateReqVOList.add(transactionCreateReqVO);
} else if (inspectJobDetailUpdateReqVO.getCrackQty() != null && inspectJobDetailUpdateReqVO.getCrackQty().compareTo(BigDecimal.ZERO) > 0) {
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(transactionCreateReqVOIn, transactionCreateReqVO);
transactionCreateReqVO.setInventoryAction("SCRAP");
transactionCreateReqVO.setQty(inspectJobDetailUpdateReqVO.getCrackQty());
transactionCreateReqVOList.add(transactionCreateReqVO);
} else if (inspectJobDetailUpdateReqVO.getFailedQty() != null && inspectJobDetailUpdateReqVO.getFailedQty().compareTo(BigDecimal.ZERO) > 0) {
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(transactionCreateReqVOIn, transactionCreateReqVO);
transactionCreateReqVO.setInventoryAction("NOK");
transactionCreateReqVO.setQty(inspectJobDetailUpdateReqVO.getFailedQty());
transactionCreateReqVOList.add(transactionCreateReqVO);
}
//添加库存事务出list
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(inspectRecordDetailDO, transactionCreateReqVOOut);
@ -252,13 +273,14 @@ public class InspectJobMainServiceImpl implements InspectJobMainService {
transactionCreateReqVOOut.setBatch(inspectRecordMainDO.getBatch());
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setQty(inspectJobDetailUpdateReqVO.getGoodQty());
//出库数量为子表数量,不管合格不合格都要出掉
transactionCreateReqVOIn.setQty(inspectJobDetailUpdateReqVO.getQty());
transactionCreateReqVOOut.setInventoryStatus(inspectJobDetailUpdateReqVO.getInventoryStatus());
transactionCreateReqVOOut.setSinglePrice(inspectJobDetailUpdateReqVO.getSinglePrice());
transactionCreateReqVOOut.setAmount(inspectJobDetailUpdateReqVO.getAmount());
transactionCreateReqVOOut.setArriveDate(inspectJobDetailUpdateReqVO.getArriveDate());
transactionCreateReqVOOut.setProduceDate(inspectJobDetailUpdateReqVO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(inspectJobDetailUpdateReqVO.getExpireDate());
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount());
transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVOOut);

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

@ -365,7 +365,6 @@ public class InspectRequestMainServiceImpl implements InspectRequestMainService
}
return;
}
InspectRequestDetailDO inspectRequestDetailDOTmp = detailDOList.get(0);
List<ExpectoutCreateReqVO> expectoutCreateReqVOList = new ArrayList<>();
InspectJobMainDO inspectJobMainDO = InspectJobMainConvert.INSTANCE.convert(mainDO);
inspectJobMainDO.setStatus(JobStatusEnum.PENDING.getCode());

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

@ -453,16 +453,14 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
}
for(PurchasereceiptRequestDetailDO detailDO : detailDOList) {
List<PurchasereceiptRequestDetailDO> list;
//从map取出list
switch (key) {
case "item":
list = listMap.get(detailDO.getItemCode());
case "container":
list = listMap.get(detailDO.getContainerNumber());
case "location":
list = listMap.get(detailDO.getFromLocationCode());
default:
list = listMap.get(key);
if (key.equals("item")) {//按零件拆分
list = listMap.get(detailDO.getItemCode());
} else if (key.equals("container")) {//按器具拆分
list = listMap.get(detailDO.getContainerNumber());
} else if (key.equals("location")) {//按库位拆分
list = listMap.get(detailDO.getDefaultToLocationCode());
} else {
list = listMap.get(key);
}
if(list == null) {
list = new ArrayList<>();
@ -470,25 +468,24 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
//向list增加数据
list.add(detailDO);
//放回map
switch (key) {
case "item":
listMap.put(detailDO.getItemCode(), list);
case "container":
listMap.put(detailDO.getContainerNumber(), list);
case "location":
listMap.put(detailDO.getFromLocationCode(), list);
default:
listMap.put(key, list);
if (key.equals("item")) {//按零件拆分
listMap.put(detailDO.getItemCode(), list);
} else if (key.equals("container")) {//按器具拆分
listMap.put(detailDO.getContainerNumber(), list);
} else if (key.equals("location")) {//按库位拆分
listMap.put(detailDO.getDefaultToLocationCode(), list);
} else {
listMap.put(key, list);
}
}
JobsettingDO jobsettingDO = jobsettingService.selectJobsettingExist("PurchaseReceiptJob");
//组装任务数据
for(String mapKey : listMap.keySet()) {
List<PurchasereceiptRequestDetailDO> purchasereceiptRequestDetailDOList = listMap.get(mapKey);
List<PurchasereceiptJobDetailCreateReqVO> subList = new ArrayList<>();
for(int i = 0; i < purchasereceiptRequestDetailDOList.size(); i++) {
//PurchasereceiptJobMainCreateReqVO不包含id、创建人等信息
PurchasereceiptJobMainCreateReqVO purchasereceiptJobMainCreateReqVO;
List<PurchasereceiptJobDetailCreateReqVO> subList = new ArrayList<>();
if(i % count == 0) {
purchasereceiptJobMainCreateReqVO = PurchasereceiptJobMainConvert.INSTANCE.convert(mainDO);
purchasereceiptJobMainCreateReqVO.setRequestNumber(mainDO.getNumber());

14
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRequest/PurchasereturnRequestMainServiceImpl.java

@ -110,12 +110,19 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
@Override
public Long createPurchasereturnRequestMain(PurchasereturnRequestMainCreateReqVO createReqVO) {
// 插入
PurchasereturnRequestMainDO purchasereturnRequestMain = PurchasereturnRequestMainConvert.INSTANCE.convert(createReqVO);
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
purchasereturnRequestMain.setNumber(number);
PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorToCreate(createReqVO);
List<PurchasereturnRequestDetailDO> subDOList = PurchasereturnRequestDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
for (PurchasereturnRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(purchasereturnRequestMain.getId());
detailDO.setNumber(number);
}
purchasereturnRequestDetailMapper.insertBatch(subDOList);
//调用自动执行方法
if (RequestStatusEnum.HANDLING.getCode().equals(purchasereturnRequestMainDO.getStatus())) {
this.generateJob(purchasereturnRequestMain, subDOList);
}
trendsApi.createTrends(purchasereturnRequestMain.getId(), "purchasereturnRequest", "增加了采购退货申请", TrendsTypeEnum.CREATE);
// 返回
@ -128,9 +135,6 @@ public class PurchasereturnRequestMainServiceImpl implements PurchasereturnReque
validatePurchasereturnRequestMainExists(updateReqVO.getId());
// 更新主表
PurchasereturnRequestMainDO purchasereturnRequestMainDO = validatorToUpdate(updateReqVO);
if (RequestStatusEnum.HANDLING.getCode().equals(purchasereturnRequestMainDO.getStatus())) {
}
trendsApi.createTrends(purchasereturnRequestMainDO.getId(), "purchasereturnRequest", "增加了采购退货申请", TrendsTypeEnum.CREATE);
}

Loading…
Cancel
Save