Browse Source

Merge remote-tracking branch 'origin/master'

master
赵雪冰 2 years ago
parent
commit
38093db715
  1. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainCreateReqVO.java
  2. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordMainController.java
  3. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/vo/DeliverRecordMainCreateReqVO.java
  4. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/InventorychangeRecordDetailController.java
  5. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainCreateReqVO.java
  6. 20
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java
  7. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainRespVO.java
  8. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRecord/CustomerreturnRecordDetailConvert.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRecord/DeliverRecordDetailConvert.java
  10. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRecord/InventorymoveRecordMainConvert.java
  11. 113
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainServiceImpl.java
  12. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java
  13. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java
  14. 131
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java
  15. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRecord/InventorychangeRecordMainServiceImpl.java
  16. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java
  17. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java
  18. 134
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java
  19. 36
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java
  20. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java
  21. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/customerreturnRecord/vo/CustomerreturnRecordMainCreateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.customerreturnRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordDetailCreateReqVO;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 客户退货记录主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class CustomerreturnRecordMainCreateReqVO extends CustomerreturnRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<CustomerreturnRecordDetailCreateReqVO> subList;
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/DeliverRecordMainController.java

@ -52,12 +52,12 @@ public class DeliverRecordMainController {
@Resource
private AdminUserApi userApi;
// @PostMapping("/create")
// @Operation(summary = "创建发货记录主")
// @PreAuthorize("@ss.hasPermission('wms:deliver-record-main:create')")
// public CommonResult<Long> createDeliverRecordMain(@Valid @RequestBody DeliverRecordMainCreateReqVO createReqVO) {
// return success(deliverRecordMainService.createDeliverRecordMain(createReqVO));
// }
@PostMapping("/create")
@Operation(summary = "创建发货记录主")
@PreAuthorize("@ss.hasPermission('wms:deliver-record-main:create')")
public CommonResult<Long> createDeliverRecordMain(@Valid @RequestBody DeliverRecordMainCreateReqVO createReqVO) {
return success(deliverRecordMainService.createDeliverRecordMain(createReqVO));
}
//
// @PutMapping("/update")
// @Operation(summary = "更新发货记录主")

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/deliverRecord/vo/DeliverRecordMainCreateReqVO.java

@ -1,12 +1,17 @@
package com.win.module.wms.controller.deliverRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 发货记录主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class DeliverRecordMainCreateReqVO extends DeliverRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<DeliverRecordDetailCreateReqVO> subList;
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorychangeRecord/InventorychangeRecordDetailController.java

@ -89,7 +89,13 @@ public class InventorychangeRecordDetailController {
@PreAuthorize("@ss.hasPermission('wms:inventorychange-record-detail:query')")
public CommonResult<PageResult<InventorychangeRecordDetailRespVO>> getInventorychangeRecordDetailPage(@Valid InventorychangeRecordDetailPageReqVO pageVO) {
PageResult<InventorychangeRecordDetailDO> pageResult = inventorychangeRecordDetailService.getInventorychangeRecordDetailPage(pageVO);
return success(InventorychangeRecordDetailConvert.INSTANCE.convertPage(pageResult));
PageResult<InventorychangeRecordDetailRespVO> result = InventorychangeRecordDetailConvert.INSTANCE.convertPage(pageResult);
for(InventorychangeRecordDetailRespVO vo : result.getList()) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
return success(result);
}
@PostMapping("/senior")

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRecord/vo/InventorymoveRecordMainCreateReqVO.java

@ -1,12 +1,17 @@
package com.win.module.wms.controller.inventorymoveRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 库存转移记录主创建 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class InventorymoveRecordMainCreateReqVO extends InventorymoveRecordMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<InventorymoveRecordDetailCreateReqVO> subList;
}

20
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java

@ -10,6 +10,7 @@ import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.dept.DeptApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.wms.controller.inventorymoveRequest.vo.*;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestDetailConvert;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
@ -123,6 +124,25 @@ public class InventorymoveRequestMainController {
}
return success(result);
}
@GetMapping("/getInventorymoveRequestById")
@Operation(summary = "APP获得库存转移主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024")
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:query')")
public CommonResult<InventorymoveRequestMainRespVO> getInventorymoveRequestById(@RequestParam("id") Long id) {
InventorymoveRequestMainDO inventorymoveRequestMain = inventorymoveRequestMainService.getInventorymoveRequestMain(id);
InventorymoveRequestMainRespVO result = InventorymoveRequestMainConvert.INSTANCE.convert(inventorymoveRequestMain);
if(result==null) {
return success(result);
};
// InventorymoveRequestDetailExportReqVO reqVO = new InventorymoveRequestDetailExportReqVO();
// reqVO.setMasterId(result.getId());
List<InventorymoveRequestDetailDO> inventorymoveRequestDetailList = inventorymoveRequestDetailService.selectList(result.getId());
List<InventorymoveRequestDetailExcelVO> vos = InventorymoveRequestDetailConvert.INSTANCE.convertList02(inventorymoveRequestDetailList);
result.setSubList(vos);
return success(result);
}
@GetMapping("/export-excel")
@Operation(summary = "导出库存转移申请 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:export')")

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainRespVO.java

@ -3,10 +3,15 @@ package com.win.module.wms.controller.inventorymoveRequest.vo;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 库存转移申请主 Response VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class InventorymoveRequestMainRespVO extends InventorymoveRequestMainBaseVO {
@Schema(description = " 库存转移申请子表request_inventorymove_detail", requiredMode = Schema.RequiredMode.REQUIRED)
private List subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/customerreturnRecord/CustomerreturnRecordDetailConvert.java

@ -34,4 +34,6 @@ public interface CustomerreturnRecordDetailConvert {
List<CustomerreturnRecordDetailExcelVO> convertList02(List<CustomerreturnRecordDetailDO> list);
List<CustomerreturnRecordDetailDO> convertList03(List<CustomerreturnRecordDetailCreateReqVO> list);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/deliverRecord/DeliverRecordDetailConvert.java

@ -34,4 +34,6 @@ public interface DeliverRecordDetailConvert {
List<DeliverRecordDetailExcelVO> convertList02(List<DeliverRecordDetailDO> list);
List<DeliverRecordDetailDO> convertList03(List<DeliverRecordDetailCreateReqVO> list);
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRecord/InventorymoveRecordMainConvert.java

@ -3,11 +3,7 @@ package com.win.module.wms.convert.inventorymoveRecord;
import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainCreateReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExcelVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainRespVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.*;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
@ -46,4 +42,6 @@ public interface InventorymoveRecordMainConvert {
@Mapping(source = "detailDO.createTime", target = "createTimeDetail"),
})
InventorymoveRecordMainExcelVO convert(InventorymoveRecordMainDO mainDO, InventorymoveRecordDetailDO detailDO);
List<InventorymoveRecordDetailDO> convertList03(List<InventorymoveRecordDetailCreateReqVO> list);
}

113
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRecord/CustomerreturnRecordMainServiceImpl.java

@ -1,12 +1,36 @@
package com.win.module.wms.service.customerreturnRecord;
import com.win.framework.common.pojo.CustomConditions;
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.customerreturnRecord.vo.CustomerreturnRecordMainCreateReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainExportReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainPageReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.customerreturnRecord.CustomerreturnRecordDetailConvert;
import com.win.module.wms.convert.customerreturnRecord.CustomerreturnRecordMainConvert;
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.customerreturnRecord.CustomerreturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordMainDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
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.customerreturnRecord.CustomerreturnRecordDetailMapper;
import com.win.module.wms.service.location.LocationService;
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 javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.util.*;
@ -18,6 +42,7 @@ import com.win.module.wms.convert.customerreturnRecord.CustomerreturnRecordMainC
import com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -31,12 +56,100 @@ public class CustomerreturnRecordMainServiceImpl implements CustomerreturnRecord
@Resource
private CustomerreturnRecordMainMapper customerreturnRecordMainMapper;
@Resource
private CustomerreturnRecordDetailMapper customerreturnRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private BalanceMapper balanceMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private LocationService locationService;
@Override
@Transactional
public Long createCustomerreturnRecordMain(CustomerreturnRecordMainCreateReqVO createReqVO) {
// 插入
CustomerreturnRecordMainDO customerreturnRecordMain = CustomerreturnRecordMainConvert.INSTANCE.convert(createReqVO);
customerreturnRecordMainMapper.insert(customerreturnRecordMain);
CustomerreturnRecordMainDO mainDO = CustomerreturnRecordMainConvert.INSTANCE.convert(createReqVO);
List<CustomerreturnRecordDetailDO> subDOList = CustomerreturnRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.CUSTOMER_REJECT_RECORD.getCode());
mainDO.setNumber(number);
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerreturnRecord");
mainDO.setBusinessType(businesstypeDO.getCode());
mainDO.setAvailable("TRUE");
customerreturnRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
for (CustomerreturnRecordDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId().toString());
detailDO.setNumber(number);
//由PDA给值进行赋值
LocationDO fromLocationDO = locationService.selectLocation(detailDO.getFromLocationCode());
detailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode());
detailDO.setFromAreaCode(fromLocationDO.getAreaCode());
LocationDO toLocationDO = locationService.selectLocation(detailDO.getToLocationCode());
detailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode());
detailDO.setToAreaCode(toLocationDO.getAreaCode());
detailDO.setInterfaceType(mainDO.getInterfaceType());
//添加库存事务入list
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
//添加库存事务出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(detailDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(detailDO.getAmount());
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(detailDO.getInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(detailDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(detailDO.getAmount());
transactionCreateReqVOIn.setWarehouseCode(mainDO.getToWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
}
customerreturnRecordDetailMapper.insertBatch(subDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "customerreturnRecordMain", "增加了客户退货记录", TrendsTypeEnum.CREATE);
// 返回
return customerreturnRecordMain.getId();
}

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/customerreturnRequest/CustomerreturnRequestMainServiceImpl.java

@ -26,6 +26,8 @@ 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.customerreturnJob.CustomerreturnJobDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobMainDO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnRecord.CustomerreturnRecordMainDO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
@ -301,18 +303,21 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRecord");
customerreturnRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
customerreturnRecordMainMapper.insert(CustomerreturnRecordMainConvert.INSTANCE.convert(customerreturnRecordMainCreateReqVO));
CustomerreturnRecordMainDO recordMainDO = CustomerreturnRecordMainConvert.INSTANCE.convert(customerreturnRecordMainCreateReqVO);
customerreturnRecordMainMapper.insert(recordMainDO);
for(CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) {
//记录子表数据 同名属性同名赋值
CustomerreturnRecordDetailCreateReqVO customerreturnRecordDetailCreateReqVO = new CustomerreturnRecordDetailCreateReqVO();
BeanUtils.copyProperties(customerreturnRequestDetailDO, customerreturnRecordDetailCreateReqVO);
customerreturnRecordDetailCreateReqVO.setFromBatch(customerreturnRequestDetailDO.getBatch());
customerreturnRecordDetailCreateReqVO.setMasterId(customerreturnRequestDetailDO.getId().toString());
customerreturnRecordDetailCreateReqVO.setId(null);
customerreturnRecordDetailCreateReqVO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
customerreturnRecordDetailCreateReqVO.setCreateTime(null);
customerreturnRecordDetailMapper.insert(CustomerreturnRecordDetailConvert.INSTANCE.convert(customerreturnRecordDetailCreateReqVO));
}
CustomerreturnRecordDetailDO recordDetailDO = CustomerreturnRecordDetailConvert.INSTANCE.convert(customerreturnRecordDetailCreateReqVO);
BeanUtils.copyProperties(customerreturnRequestDetailDO, recordDetailDO);
recordDetailDO.setFromBatch(customerreturnRequestDetailDO.getBatch());
recordDetailDO.setMasterId(customerreturnRequestDetailDO.getId().toString());
recordDetailDO.setId(null);
recordDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
recordDetailDO.setCreateTime(null);
customerreturnRecordDetailMapper.insert(recordDetailDO);
}
trendsApi.createTrends(recordMainDO.getId(), "CustomerRejectJob", "客户退货申请生成客户退货记录", TrendsTypeEnum.CREATE);
return;
}
//生成客户退货任务

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverJob/DeliverJobMainServiceImpl.java

@ -258,6 +258,7 @@ public class DeliverJobMainServiceImpl implements DeliverJobMainService {
@Override
@Transactional
public String executeDeliverJobMain(DeliverJobMainUpdateReqVO deliverJobMainUpdateReqVO) {
BigDecimal zero = BigDecimal.ZERO;
//查询数据
DeliverJobMainDO deliverJobMainDO = this.validateDeliverJobMainExists(deliverJobMainUpdateReqVO.getId());
List<DeliverJobDetailDO> subList = deliverJobDetailService.selectList(deliverJobMainDO.getId());

131
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/deliverRecord/DeliverRecordMainServiceImpl.java

@ -2,16 +2,38 @@ package com.win.module.wms.service.deliverRecord;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.pojo.CustomConditions;
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.deliverRecord.vo.DeliverRecordMainCreateReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainExportReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainPageReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.deliverRecord.DeliverRecordDetailConvert;
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.deliverRecord.DeliverRecordDetailDO;
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.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.balance.BalanceMapper;
import com.win.module.wms.dal.mysql.deliverRecord.DeliverRecordDetailMapper;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
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 javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO;
@ -21,6 +43,7 @@ import com.win.module.wms.convert.deliverRecord.DeliverRecordMainConvert;
import com.win.module.wms.dal.mysql.deliverRecord.DeliverRecordMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -34,15 +57,119 @@ public class DeliverRecordMainServiceImpl implements DeliverRecordMainService {
@Resource
private DeliverRecordMainMapper deliverRecordMainMapper;
@Resource
private DeliverRecordDetailMapper deliverRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private BalanceMapper balanceMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private RecordsettingService recordsettingService;
@Resource
private LocationService locationService;
@Override
@Transactional
public Long createDeliverRecordMain(DeliverRecordMainCreateReqVO createReqVO) {
// 插入
DeliverRecordMainDO deliverRecordMain = DeliverRecordMainConvert.INSTANCE.convert(createReqVO);
deliverRecordMainMapper.insert(deliverRecordMain);
DeliverRecordMainDO mainDO = DeliverRecordMainConvert.INSTANCE.convert(createReqVO);
List<DeliverRecordDetailDO> subDOList = DeliverRecordDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
String number = serialNumberApi.generateCode(RuleCodeEnum.DELIVER_RECORD.getCode());
mainDO.setNumber(number);
mainDO.setExecuteTime(LocalDateTime.now());
mainDO.setActiveDate(LocalDateTime.now());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("DeliverRecord");
mainDO.setBusinessType(businesstypeDO.getCode());
mainDO.setFromLocationTypes(businesstypeDO.getCode());
mainDO.setFromAreaCodes(businesstypeDO.getCode());
mainDO.setToLocationTypes(businesstypeDO.getCode());
mainDO.setToAreaCodes(businesstypeDO.getCode());
mainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
mainDO.setInTransactionType(businesstypeDO.getInTransactionType());
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("DeliverRecord");
mainDO.setInterfaceType(recordsettingDO.getInterfaceType());
//由PDA给值进行赋值
mainDO.setCustomerDeliverNumber(deliverRecordMain.getCustomerDeliverNumber());
mainDO.setCarrierCode(deliverRecordMain.getCarrierCode());
mainDO.setTransferMode(deliverRecordMain.getTransferMode());
mainDO.setVehiclePlateNumber(deliverRecordMain.getVehiclePlateNumber());
mainDO.setFromWarehouseCode(deliverRecordMain.getFromWarehouseCode());
mainDO.setToWarehouseCode(deliverRecordMain.getToWarehouseCode());
mainDO.setAvailable("TRUE");
deliverRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
for (DeliverRecordDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId().toString());
detailDO.setNumber(number);
//由PDA给值进行赋值
LocationDO fromLocationDO = locationService.selectLocation(detailDO.getFromLocationCode());
detailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode());
detailDO.setFromAreaCode(fromLocationDO.getAreaCode());
LocationDO toLocationDO = locationService.selectLocation(detailDO.getToLocationCode());
detailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode());
detailDO.setToAreaCode(toLocationDO.getAreaCode());
detailDO.setInterfaceType(mainDO.getInterfaceType());
detailDO.setAvailable("TRUE");
//添加库存事务入list
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
//添加库存事务出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.getBatch());
transactionCreateReqVOOut.setPackingNumber(detailDO.getPackingNumber());
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode());
transactionCreateReqVOOut.setSinglePrice(detailDO.getSinglePrice());
transactionCreateReqVOOut.setAmount(detailDO.getAmount());
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.getBatch());
transactionCreateReqVOIn.setPackingNumber(detailDO.getPackingNumber());
transactionCreateReqVOIn.setInventoryStatus(detailDO.getInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setSinglePrice(detailDO.getSinglePrice());
transactionCreateReqVOIn.setAmount(detailDO.getAmount());
transactionCreateReqVOIn.setWarehouseCode(mainDO.getToWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
}
deliverRecordDetailMapper.insertBatch(subDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "deliverRecordMain", "增加了发货记录", TrendsTypeEnum.CREATE);
// 返回
return deliverRecordMain.getId();
}

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRecord/InventorychangeRecordMainServiceImpl.java

@ -5,9 +5,10 @@ import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRec
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainExportReqVO;
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainPageReqVO;
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated;
import java.util.*;
@ -34,6 +35,7 @@ public class InventorychangeRecordMainServiceImpl implements InventorychangeReco
private InventorychangeRecordMainMapper inventorychangeRecordMainMapper;
@Override
@Transactional
public Long createInventorychangeRecordMain(InventorychangeRecordMainCreateReqVO createReqVO) {
// 插入
InventorychangeRecordMainDO inventorychangeRecordMain = InventorychangeRecordMainConvert.INSTANCE.convert(createReqVO);

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorychangeRequest/InventorychangeRequestMainServiceImpl.java

@ -485,7 +485,6 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
}
String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode());
inventorychangeRequestMainDO.setNumber(number);
inventorychangeRequestMainDO.setDepartmentCode(userApi.getUser(Long.valueOf(inventorychangeRequestMainDO.getCreator())).getDeptId().toString());
inventorychangeRequestMainMapper.insert(inventorychangeRequestMainDO);
for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) {
inventorychangeRequestDetailDO.setNumber(inventorychangeRequestMainDO.getNumber());
@ -586,7 +585,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
inventorychangeRequestDetailDO.setFromQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setToQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate());
inventorychangeRequestDetailDO.setFromArriveDate(balanceDO.getArriveDate());
inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate());
inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate());
inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate());

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveJob/InventorymoveJobMainServiceImpl.java

@ -295,7 +295,7 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
// 匹配任务子表与参数中子表
if (DetailUpdateItem.getId().equals(subListItem.getId())) {
List<Map<String,String>> recordList = DetailUpdateItem.getRecordList();
recordList.forEach(recordLstItem -> {InventorymoveRecordDetailDO inventorymoveRecordDetailDO = new InventorymoveRecordDetailDO();
recordList.forEach(recordListItem -> {InventorymoveRecordDetailDO inventorymoveRecordDetailDO = new InventorymoveRecordDetailDO();
BeanUtils.copyProperties(DetailUpdateItem, inventorymoveRecordDetailDO);
inventorymoveRecordDetailDO.setJobDetailId(DetailUpdateItem.getId().toString());
inventorymoveRecordDetailDO.setId(null);
@ -306,18 +306,18 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
inventorymoveRecordDetailDO.setNumber(inventorymoveRecordMainDO.getNumber());
inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType());
inventorymoveRecordDetailDO.setMasterId(inventorymoveRecordMainDO.getId().toString());
inventorymoveRecordDetailDO.setQty(new BigDecimal(recordLstItem.get("handleQty")));
inventorymoveRecordDetailDO.setToPackingNumber(recordLstItem.get("toPackingNumber")==null?"":recordLstItem.get("toPackingNumber"));
inventorymoveRecordDetailDO.setToContainerNumber(recordLstItem.get("toContainerNumber")==null?"":recordLstItem.get("toContainerNumber"));
inventorymoveRecordDetailDO.setToBatch(recordLstItem.get("toBatch")==null?"":recordLstItem.get("toBatch"));
inventorymoveRecordDetailDO.setToLocationCode(recordLstItem.get("toLocationCode"));
LocationDO toLocationDO = locationService.selectLocation(recordLstItem.get("toLocationCode"));
inventorymoveRecordDetailDO.setQty(new BigDecimal(recordListItem.get("handleQty")));
inventorymoveRecordDetailDO.setToPackingNumber(recordListItem.get("toPackingNumber")==null?"":recordListItem.get("toPackingNumber"));
inventorymoveRecordDetailDO.setToContainerNumber(recordListItem.get("toContainerNumber")==null?"":recordListItem.get("toContainerNumber"));
inventorymoveRecordDetailDO.setToBatch(recordListItem.get("toBatch")==null?"":recordListItem.get("toBatch"));
inventorymoveRecordDetailDO.setToLocationCode(recordListItem.get("toLocationCode"));
LocationDO toLocationDO = locationService.selectLocation(recordListItem.get("toLocationCode"));
inventorymoveRecordDetailDO.setToAreaCode(toLocationDO.getAreaCode());
inventorymoveRecordDetailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode());
LocationDO fromLocationDO = locationService.selectLocation(inventorymoveRecordDetailDO.getFromLocationCode());
inventorymoveRecordDetailDO.setFromAreaCode(fromLocationDO.getAreaCode());
inventorymoveRecordDetailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode());
inventorymoveRecordDetailDO.setToInventoryStatus(recordLstItem.get("toInventoryStatus"));
inventorymoveRecordDetailDO.setToInventoryStatus(recordListItem.get("toInventoryStatus"));
inventorymoveRecordDetailDO.setFromPackingNumber(DetailUpdateItem.getPackingNumber());
inventorymoveRecordDetailDO.setFromContainerNumber(DetailUpdateItem.getContainerNumber());
inventorymoveRecordDetailDO.setFromAreaCode(inventorymoveJobMainDO.getFromAreaCodes());
@ -343,7 +343,7 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
transactionCreateReqVO.setContainerNumber(DetailUpdateItem.getContainerNumber());
transactionCreateReqVO.setInventoryStatus(DetailUpdateItem.getInventoryStatus());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setLocationCode(recordLstItem.get("toLocationCode").toString());
transactionCreateReqVO.setLocationCode(recordListItem.get("toLocationCode").toString());
transactionCreateReqVOList.add(transactionCreateReqVO);
// 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();

134
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRecord/InventorymoveRecordMainServiceImpl.java

@ -1,11 +1,31 @@
package com.win.module.wms.service.inventorymoveRecord;
import com.win.framework.common.pojo.CustomConditions;
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.inventorymoveRecord.vo.InventorymoveRecordMainCreateReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainPageReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.inventorymoveRecord.InventorymoveRecordDetailConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import com.win.module.wms.dal.dataobject.jobsetting.JobsettingDO;
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.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.balance.BalanceMapper;
import com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordDetailMapper;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
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 javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -19,6 +39,7 @@ import com.win.module.wms.convert.inventorymoveRecord.InventorymoveRecordMainCon
import com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordMainMapper;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
@ -32,12 +53,121 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa
@Resource
private InventorymoveRecordMainMapper inventorymoveRecordMainMapper;
@Resource
private InventorymoveRecordDetailMapper inventorymoveRecordDetailMapper;
@Resource
private TransactionService transactionService;
@Resource
private BalanceMapper balanceMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private AdminUserApi userApi;
@Resource
private LocationService locationService;
@Resource
private RecordsettingService recordsettingService;
@Override
public Long createInventorymoveRecordMain(InventorymoveRecordMainCreateReqVO createReqVO) {
String number = "";
RecordsettingDO recordsettingDO = null;
BusinesstypeDO businesstypeDO = null;
// 插入
InventorymoveRecordMainDO inventorymoveRecordMain = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO);
inventorymoveRecordMainMapper.insert(inventorymoveRecordMain);
// 插入
InventorymoveRecordMainDO nventorymoveRecordMain = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO);
inventorymoveRecordMainMapper.insert(nventorymoveRecordMain);
InventorymoveRecordMainDO mainDO = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO);
List<InventorymoveRecordDetailDO> subDOList = InventorymoveRecordMainConvert.INSTANCE.convertList03(createReqVO.getSubList());
if("HoldToOkRequest".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_OK_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToOkRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToOkRecord");
} else if("OkToHoldRequest".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_HOLD_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToHoldRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToHoldRecord");
} else if("HoldToScrapRequest".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("HoldToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("HoldToScrapRecord");
} else if("ScrapToHoldRequest".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.SCRAP_TO_HOLD_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("ScrapToHoldRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ScrapToHoldRecord");
} else if("OkToScrapRequest".equals(mainDO.getBusinessType())){
number = serialNumberApi.generateCode(RuleCodeEnum.OK_TO_SCRAP_RECORD.getCode());
recordsettingDO = recordsettingService.selectRecordsettingExist("OkToScrapRecord");
businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("OkToScrapRecord");
}
mainDO.setNumber(number);
mainDO.setBusinessType(businesstypeDO.getCode());
mainDO.setAvailable("TRUE");
inventorymoveRecordMainMapper.insert(mainDO);
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
for (InventorymoveRecordDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId().toString());
detailDO.setNumber(number);
//由PDA给值进行赋值
LocationDO fromLocationDO = locationService.selectLocation(detailDO.getFromLocationCode());
detailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode());
detailDO.setFromAreaCode(fromLocationDO.getAreaCode());
LocationDO toLocationDO = locationService.selectLocation(detailDO.getToLocationCode());
detailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode());
detailDO.setToAreaCode(toLocationDO.getAreaCode());
detailDO.setInterfaceType(mainDO.getInterfaceType());
//添加库存事务入list
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(detailDO, transactionCreateReqVOIn);
//添加库存事务出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.getFromInventoryStatus());
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch());
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber());
transactionCreateReqVOOut.setLocationCode(detailDO.getFromLocationCode());
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(detailDO.getToInventoryStatus());
transactionCreateReqVOIn.setLocationCode(detailDO.getToLocationCode());
transactionCreateReqVOIn.setWarehouseCode(mainDO.getToWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setId(null);
//待确定库存事务信息
transactionCreateReqVOList.add(transactionCreateReqVOIn);
}
}
inventorymoveRecordDetailMapper.insertBatch(subDOList);
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//增加操作记录
trendsApi.createTrends(mainDO.getId(), "inventorymoveRecordMain", "增加了库存转移记录", TrendsTypeEnum.CREATE);
// 返回
return inventorymoveRecordMain.getId();
}

36
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java

@ -2,6 +2,7 @@ package com.win.module.wms.service.inventorymoveRequest;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
@ -23,6 +24,8 @@ import com.win.module.wms.convert.inventorymoveRecord.InventorymoveRecordMainCon
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestDetailConvert;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
@ -643,18 +646,33 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
}
inventorymoveRecordMainCreateReqVO.setNumber(number);
inventorymoveRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
inventorymoveRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType());
inventorymoveRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType());
inventorymoveRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType());
inventorymoveRecordMainMapper.insert(InventorymoveRecordMainConvert.INSTANCE.convert(inventorymoveRecordMainCreateReqVO));
inventorymoveRecordMainCreateReqVO.setExecuteTime(LocalDateTime.now());
inventorymoveRecordMainCreateReqVO.setActiveDate(LocalDateTime.now());
inventorymoveRecordMainCreateReqVO.setAvailable("TRUE");
InventorymoveRecordMainDO recordMainDO = InventorymoveRecordMainConvert.INSTANCE.convert(inventorymoveRecordMainCreateReqVO);
inventorymoveRecordMainMapper.insert(recordMainDO);
for (InventorymoveRequestDetailDO inventorymoveRequestDetailDO : detailDOList) {
InventorymoveRecordDetailCreateReqVO inventorymoveRecordDetailCreateReqVO = new InventorymoveRecordDetailCreateReqVO();
BeanUtils.copyProperties(inventorymoveRequestDetailDO, inventorymoveRecordDetailCreateReqVO);
inventorymoveRecordDetailCreateReqVO.setId(null);
inventorymoveRecordDetailCreateReqVO.setCreator(null);
inventorymoveRecordDetailCreateReqVO.setCreateTime(null);
inventorymoveRecordDetailCreateReqVO.setNumber(number);
inventorymoveRecordDetailMapper.insert(InventorymoveRecordDetailConvert.INSTANCE.convert(inventorymoveRecordDetailCreateReqVO));
}
trendsApi.createTrends(InventorymoveRecordMainConvert.INSTANCE.convert(inventorymoveRecordMainCreateReqVO).getId(), recordsettingDO.getCode(), "库存转移申请生成库存转移记录", TrendsTypeEnum.CREATE);
InventorymoveRecordDetailDO recordDetailDO = InventorymoveRecordDetailConvert.INSTANCE.convert(inventorymoveRecordDetailCreateReqVO);
BeanUtils.copyProperties(inventorymoveRequestDetailDO, recordDetailDO);
recordDetailDO.setId(null);
recordDetailDO.setCreator(null);
recordDetailDO.setCreateTime(null);
recordDetailDO.setNumber(number);
recordDetailDO.setMasterId(recordMainDO.getId().toString());
LocationDO fromLocation = locationService.selectLocation(recordDetailDO.getFromLocationCode());
recordDetailDO.setFromAreaCode(fromLocation.getAreaCode());
recordDetailDO.setFromLocationGroupCode(fromLocation.getLocationGroupCode());
LocationDO toLocationDO = locationService.selectLocation(recordDetailDO.getToLocationCode());
recordDetailDO.setToAreaCode(toLocationDO.getAreaCode());
recordDetailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode());
recordDetailDO.setInterfaceType(recordsettingDO.getInterfaceType());
inventorymoveRecordDetailMapper.insert(recordDetailDO);
}
trendsApi.createTrends(recordMainDO.getId(), recordsettingDO.getCode(), "库存转移申请生成库存转移记录", TrendsTypeEnum.CREATE);
return;
}
InventorymoveJobMainDO inventorymoveJobMainDO = InventorymoveJobMainConvert.INSTANCE.convert(mainDO);

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productreceiptJob/ProductreceiptJobMainServiceImpl.java

@ -437,6 +437,7 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
WorkstationDO workstationDO = workstationService.selectWorkstationExist(productreceiptRecordDetailDO.getWorkStationCode(),productreceiptRecordMainDO.getWorkshopCode(),productreceiptRecordDetailDO.getProductionlineCode());
backflushRecordDetailbDO.setFromLocationCode(workstationDO.getRawLocationCode());
// 根据 from_location_code 查询库存余额
// TODO: 如果按批次 查询批次获取库存余额 排序批次 如果第一条批次不够数量 需要扣除第二条余额 库存事务出的动作要存2条
List inventoryStatus = new ArrayList();
inventoryStatus.add("OK");
List<BalanceDO> balanceDOList = balanceService.selectNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode());
@ -445,6 +446,9 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
backflushRecordDetailbDO.setInventoryStatus("OK");
backflushRecordDetailbDO.setFromAreaCode(balanceDOList.get(0).getAreaCode());
backflushRecordDetailbDO.setFromLocationGroupCode(balanceDOList.get(0).getLocationGroupCode());
// 消耗数量 = 成品数量 * bom数量
BigDecimal qty = productreceiptRecordDetailDO.getQty().multiply(backflushRecordDetailbDO.getQty());
backflushRecordDetailbDO.setQty(qty);
backflushRecordDetailbDOList.add(backflushRecordDetailbDO);
//添加库存事务list
// 出动作
@ -465,6 +469,7 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode("");
transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode());
transactionCreateReqVO.setQty(qty);
transactionCreateReqVOList.add(transactionCreateReqVO);
// 判断 物品 是否为 下线结算物品 创建 下线结算记录
if (itembasicService.isOfflines(backflushRecordDetailbDO.getItemCode())) {

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/util/JobUtils.java

@ -885,7 +885,8 @@ public class JobUtils {
queryWrapperExpectout.isNotNull("packing_number");
if (balanceDO.getPackingNumber() != null && !balanceDO.getPackingNumber().equals("")) queryWrapperExpectout.eq("packing_number", balanceDO.getPackingNumber());
if (balanceDO.getBatch() != null && !balanceDO.getBatch().equals("")) queryWrapperExpectout.eq("batch", balanceDO.getBatch());
queryWrapperExpectout.groupBy("item_code","packing_number", "batch");
// queryWrapperExpectout.groupBy("item_code","packing_number", "batch");
queryWrapperExpectout.groupBy("item_code");
ExpectoutDO expectoutDO = expectoutMapper.selectOne(queryWrapperExpectout);
BigDecimal countQtyExpectout = new BigDecimal(0.000000);
if (expectoutDO != null) {

Loading…
Cancel
Save