Browse Source

增加直接采购退货生成记录接口。

master
刘忱 2 years ago
parent
commit
3dce2def2d
  1. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRecord/PurchasereturnRecordMainController.java
  2. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRecord/vo/PurchasereturnRecordMainCreateReqVO.java
  3. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRecord/PurchasereturnRecordDetailConvert.java
  4. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRecord/PurchasereturnRecordMainService.java
  5. 114
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRecord/PurchasereturnRecordMainServiceImpl.java

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRecord/PurchasereturnRecordMainController.java

@ -8,10 +8,7 @@ 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.purchasereturnRecord.vo.PurchasereturnRecordMainExcelVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordMainExportReqVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordMainPageReqVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordMainRespVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.*;
import com.win.module.wms.convert.purchasereturnRecord.PurchasereturnRecordMainConvert;
import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnRecordMainDO;
@ -50,6 +47,13 @@ public class PurchasereturnRecordMainController {
@Resource
private AdminUserApi userApi;
@PostMapping("/create")
@Operation(summary = "创建采购退货记录")
@PreAuthorize("@ss.hasPermission('wms:purchasereturn-record-main:create')")
public CommonResult<Long> createPurchasereturnRecordMain(@Valid @RequestBody PurchasereturnRecordMainCreateReqVO createReqVO) {
return success(purchasereturnRecordMainService.createPurchasereturnRecordMain(createReqVO));
}
@GetMapping("/page")
@Operation(summary = "获得采购退货记录主分页")
@PreAuthorize("@ss.hasPermission('wms:purchasereturn-record-main:query')")

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereturnRecord/vo/PurchasereturnRecordMainCreateReqVO.java

@ -1,7 +1,12 @@
package com.win.module.wms.controller.purchasereturnRecord.vo;
import lombok.*;
import com.win.framework.excel.core.annotations.SubObject;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.ToString;
import java.util.List;
@Schema(description = "管理后台 - 采购退货记录主创建 Request VO")
@Data
@ -9,4 +14,7 @@ import io.swagger.v3.oas.annotations.media.Schema;
@ToString(callSuper = true)
public class PurchasereturnRecordMainCreateReqVO extends PurchasereturnRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<PurchasereturnRecordDetailCreateReqVO> subList;
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/purchasereturnRecord/PurchasereturnRecordDetailConvert.java

@ -1,16 +1,15 @@
package com.win.module.wms.convert.purchasereturnRecord;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordDetailCreateReqVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordDetailExcelVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordDetailRespVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordDetailUpdateReqVO;
import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnRecordDetailDO;
import java.util.List;
/**
* 采购退货记录子 Convert
@ -34,4 +33,6 @@ public interface PurchasereturnRecordDetailConvert {
List<PurchasereturnRecordDetailExcelVO> convertList02(List<PurchasereturnRecordDetailDO> list);
List<PurchasereturnRecordDetailDO> convertList03(List<PurchasereturnRecordDetailCreateReqVO> list);
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRecord/PurchasereturnRecordMainService.java

@ -2,6 +2,7 @@ package com.win.module.wms.service.purchasereturnRecord;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordMainCreateReqVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordMainExportReqVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordMainPageReqVO;
import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnRecordMainDO;
@ -15,6 +16,13 @@ import java.util.List;
*/
public interface PurchasereturnRecordMainService {
/**
* 创建采购退货记录
* @param createReqVO 采购退货记录主
* @return id
*/
Long createPurchasereturnRecordMain(PurchasereturnRecordMainCreateReqVO createReqVO);
/**
* 获得采购退货记录主分页
*

114
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereturnRecord/PurchasereturnRecordMainServiceImpl.java

@ -2,16 +2,39 @@ package com.win.module.wms.service.purchasereturnRecord;
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.enums.TrendsTypeEnum;
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.purchasereturnRecord.vo.PurchasereturnRecordMainCreateReqVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordMainExportReqVO;
import com.win.module.wms.controller.purchasereturnRecord.vo.PurchasereturnRecordMainPageReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.purchasereturnRecord.PurchasereturnRecordDetailConvert;
import com.win.module.wms.convert.purchasereturnRecord.PurchasereturnRecordMainConvert;
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.purchasereturnRecord.PurchasereturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.purchasereturnRecord.PurchasereturnRecordMainDO;
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.purchasereturnRecord.PurchasereturnRecordDetailMapper;
import com.win.module.wms.dal.mysql.purchasereturnRecord.PurchasereturnRecordMainMapper;
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;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
/**
* 采购退货记录主 Service 实现类
*
@ -23,6 +46,97 @@ public class PurchasereturnRecordMainServiceImpl implements PurchasereturnRecord
@Resource
private PurchasereturnRecordMainMapper purchasereturnRecordMainMapper;
@Resource
private PurchasereturnRecordDetailMapper purchasereturnRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private BalanceMapper balanceMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Override
@Transactional
public Long createPurchasereturnRecordMain(PurchasereturnRecordMainCreateReqVO createReqVO) {
PurchasereturnRecordMainDO mainDO = PurchasereturnRecordMainConvert.INSTANCE.convert(createReqVO);
List<PurchasereturnRecordDetailDO> subDOList = PurchasereturnRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDO.setNumber(number);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchasereturnRecord");
mainDO.setBusinessType(businesstypeDO.getCode());
purchasereturnRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
for (PurchasereturnRecordDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
//添加库存事务入list
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
//查询库存余额
BalanceDO balanceDO = balanceMapper.getBalanceQty(detailDO.getFromPackingNumber(), detailDO.getItemCode(), detailDO.getFromBatch(), detailDO.getInventoryStatus(), detailDO.getFromLocationCode());
//添加库存事务出list
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut);
//增加业务出类型
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch());
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber());
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode());
transactionCreateReqVOOut.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(balanceDO.getAmount());
transactionCreateReqVOOut.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOOut.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOOut.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOOut.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut);
//判断businesstypeDO.getInTransactionType()是否为空,不为空时增加入库存事务
if(businesstypeDO.getInTransactionType() != null && !businesstypeDO.getInTransactionType().isEmpty()) {
//增加业务入类型
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setBatch(detailDO.getToBatch());
transactionCreateReqVOIn.setPackingNumber(detailDO.getToPackingNumber());
transactionCreateReqVOIn.setInventoryStatus(balanceDO.getInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(balanceDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(balanceDO.getAmount());
transactionCreateReqVOIn.setArriveDate(balanceDO.getArriveDate());
transactionCreateReqVOIn.setProduceDate(balanceDO.getProduceDate());
transactionCreateReqVOIn.setExpireDate(balanceDO.getExpireDate());
transactionCreateReqVOIn.setWarehouseCode(mainDO.getFromWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
}
purchasereturnRecordDetailMapper.insertBatch(subDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "purchasereturnRecordMain", "增加了采购退货记录", TrendsTypeEnum.CREATE);
// 返回
return mainDO.getId();
}
@Override
public PageResult<PurchasereturnRecordMainDO> getPurchasereturnRecordMainPage(PurchasereturnRecordMainPageReqVO pageReqVO) {

Loading…
Cancel
Save