Browse Source

发料申请 直接生成记录

master
陈薪名 2 years ago
parent
commit
cba6860b76
  1. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordDetailCreateReqVO.java
  2. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordDetailRespVO.java
  3. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainBaseVO.java
  4. 72
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordDetailCreateReqVO.java

@ -3,10 +3,14 @@ package com.win.module.wms.controller.issueRecord.vo;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
import java.util.Map;
@Schema(description = "管理后台 - 发料记录子创建 Request VO") @Schema(description = "管理后台 - 发料记录子创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class IssueRecordDetailCreateReqVO extends IssueRecordDetailBaseVO { public class IssueRecordDetailCreateReqVO extends IssueRecordDetailBaseVO {
@Schema(description = "子表记录数据")
private List<Map<String,String>> recordList;
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordDetailRespVO.java

@ -3,10 +3,14 @@ package com.win.module.wms.controller.issueRecord.vo;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
import java.util.Map;
@Schema(description = "管理后台 - 发料记录子 Response VO") @Schema(description = "管理后台 - 发料记录子 Response VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class IssueRecordDetailRespVO extends IssueRecordDetailBaseVO { public class IssueRecordDetailRespVO extends IssueRecordDetailBaseVO {
@Schema(description = "子表记录数据")
private List<Map<String,String>> recordList;
} }

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/issueRecord/vo/IssueRecordMainBaseVO.java

@ -24,7 +24,6 @@ public class IssueRecordMainBaseVO {
private Long id; private Long id;
@Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "申请单号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "申请单号不能为空")
private String requestNumber; private String requestNumber;
@Schema(description = "任务单号") @Schema(description = "任务单号")

72
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueRecord/IssueRecordMainServiceImpl.java

@ -1,7 +1,6 @@
package com.win.module.wms.service.issueRecord; package com.win.module.wms.service.issueRecord;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.infra.api.trends.TrendsApi; import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum; import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi; import com.win.module.system.api.serialnumber.SerialNumberApi;
@ -14,18 +13,15 @@ import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainPageReqVO;
import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO; import com.win.module.wms.controller.issueRecord.vo.IssueRecordMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert; import com.win.module.wms.convert.issueRecord.IssueRecordDetailConvert;
import com.win.module.wms.convert.issueRecord.IssueRecordMainConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO; 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.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; 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.location.LocationDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; 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.balance.BalanceMapper;
import com.win.module.wms.dal.mysql.issueRecord.IssueRecordDetailMapper; import com.win.module.wms.dal.mysql.issueRecord.IssueRecordDetailMapper;
import com.win.module.wms.dal.mysql.issueRecord.IssueRecordMainMapper;
import com.win.module.wms.service.itembasic.ItembasicService; import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.location.LocationService; import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService; import com.win.module.wms.service.recordsetting.RecordsettingService;
@ -33,14 +29,20 @@ import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.util.JobUtils; import com.win.module.wms.util.JobUtils;
import org.springframework.beans.BeanUtils; import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import java.math.BigDecimal;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.List; import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordMainDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.convert.issueRecord.IssueRecordMainConvert;
import com.win.module.wms.dal.mysql.issueRecord.IssueRecordMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId; import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
@ -109,6 +111,7 @@ public class IssueRecordMainServiceImpl implements IssueRecordMainService {
//库存事务 //库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for (IssueRecordDetailDO detailDO : subDOList) { for (IssueRecordDetailDO detailDO : subDOList) {
List<Map<String,String>> recordList = IssueRecordDetailConvert.INSTANCE.convert(detailDO).getRecordList();
detailDO.setMasterId(mainDO.getId()); detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number); detailDO.setNumber(number);
LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode()); LocationDO locationDOFrom = locationService.selectLocation(detailDO.getFromLocationCode());
@ -135,9 +138,21 @@ public class IssueRecordMainServiceImpl implements IssueRecordMainService {
} else { } else {
throw exception(ITEMBASIC_NOT_EXISTS); throw exception(ITEMBASIC_NOT_EXISTS);
} }
recordList.forEach( recordListItem -> {
// record 相关数据
String toInventoryStatus = recordListItem.get("toInventoryStatus").toString();
String fromPackingNumber = recordListItem.get("fromPackingNumber").toString();
String fromBatch = recordListItem.get("fromBatch").toString();
String toPackingNumber = recordListItem.get("toPackingNumber").toString();
String toBatch = recordListItem.get("toBatch").toString();
String fromLocationCode = recordListItem.get("fromLocationCode").toString();
String toLocationCode = recordListItem.get("toLocationCode").toString();
//查询库存余额 //查询库存余额
BalanceDO balanceDO = balanceMapper.getBalanceQty(detailDO.getFromPackingNumber(), detailDO.getItemCode(), detailDO.getFromBatch(), detailDO.getInventoryStatus(), detailDO.getFromLocationCode()); List<String> inventoryStatusList = new ArrayList<>();
if (balanceDO == null) { inventoryStatusList.add(toInventoryStatus);
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),fromPackingNumber,fromBatch,fromLocationCode,inventoryStatusList);
if (balanceDO == null || balanceDO.size() == 0) {
throw exception(BALANCE_NOT_EXISTS); throw exception(BALANCE_NOT_EXISTS);
} }
// 库存事务——入 // 库存事务——入
@ -148,15 +163,15 @@ public class IssueRecordMainServiceImpl implements IssueRecordMainService {
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction()); transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode()); transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId())); transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setBatch(detailDO.getToBatch()); transactionCreateReqVOIn.setBatch(toBatch);
transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber()); transactionCreateReqVOIn.setPackingNumber(toPackingNumber);
transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus()); transactionCreateReqVOIn.setInventoryStatus(toInventoryStatus);
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode()); transactionCreateReqVOIn.setLocationCode(toLocationCode);
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOIn.setSinglePrice(balanceDO.get(0).getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount()); transactionCreateReqVOIn.setAmount(balanceDO.get(0).getAmount());
transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate()); transactionCreateReqVOIn.setArriveDate(balanceDO.get(0).getArriveDate());
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate()); transactionCreateReqVOIn.setProduceDate(balanceDO.get(0).getProduceDate());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOIn.setExpireDate(balanceDO.get(0).getExpireDate());
transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode()); transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number); transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null); transactionCreateReqVOIn.setId(null);
@ -169,19 +184,20 @@ public class IssueRecordMainServiceImpl implements IssueRecordMainService {
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(number); transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus()); transactionCreateReqVOOut.setInventoryStatus(toInventoryStatus);
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); transactionCreateReqVOOut.setBatch(fromBatch);
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); transactionCreateReqVOOut.setPackingNumber(fromPackingNumber);
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode()); transactionCreateReqVOOut.setLocationCode(fromLocationCode);
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice()); transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount()); transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount());
transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate()); transactionCreateReqVOOut.setArriveDate(balanceDO.get(0).getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate()); transactionCreateReqVOOut.setProduceDate(balanceDO.get(0).getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate()); transactionCreateReqVOOut.setExpireDate(balanceDO.get(0).getExpireDate());
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode()); transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setId(null); transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut); transactionCreateReqVOList.add(transactionCreateReqVOOut);
});
} }
issueRecordDetailMapper.insertBatch(subDOList); issueRecordDetailMapper.insertBatch(subDOList);
//增加库存事务 //增加库存事务

Loading…
Cancel
Save