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. 21
      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. 34
      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; 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 lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 客户退货记录主创建 Request VO") @Schema(description = "管理后台 - 客户退货记录主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class CustomerreturnRecordMainCreateReqVO extends CustomerreturnRecordMainBaseVO { 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 @Resource
private AdminUserApi userApi; private AdminUserApi userApi;
// @PostMapping("/create") @PostMapping("/create")
// @Operation(summary = "创建发货记录主") @Operation(summary = "创建发货记录主")
// @PreAuthorize("@ss.hasPermission('wms:deliver-record-main:create')") @PreAuthorize("@ss.hasPermission('wms:deliver-record-main:create')")
// public CommonResult<Long> createDeliverRecordMain(@Valid @RequestBody DeliverRecordMainCreateReqVO createReqVO) { public CommonResult<Long> createDeliverRecordMain(@Valid @RequestBody DeliverRecordMainCreateReqVO createReqVO) {
// return success(deliverRecordMainService.createDeliverRecordMain(createReqVO)); return success(deliverRecordMainService.createDeliverRecordMain(createReqVO));
// } }
// //
// @PutMapping("/update") // @PutMapping("/update")
// @Operation(summary = "更新发货记录主") // @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; package com.win.module.wms.controller.deliverRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 发货记录主创建 Request VO") @Schema(description = "管理后台 - 发货记录主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class DeliverRecordMainCreateReqVO extends DeliverRecordMainBaseVO { 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')") @PreAuthorize("@ss.hasPermission('wms:inventorychange-record-detail:query')")
public CommonResult<PageResult<InventorychangeRecordDetailRespVO>> getInventorychangeRecordDetailPage(@Valid InventorychangeRecordDetailPageReqVO pageVO) { public CommonResult<PageResult<InventorychangeRecordDetailRespVO>> getInventorychangeRecordDetailPage(@Valid InventorychangeRecordDetailPageReqVO pageVO) {
PageResult<InventorychangeRecordDetailDO> pageResult = inventorychangeRecordDetailService.getInventorychangeRecordDetailPage(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") @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; package com.win.module.wms.controller.inventorymoveRecord.vo;
import com.win.framework.excel.core.annotations.SubObject;
import lombok.*; import lombok.*;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import java.util.List;
@Schema(description = "管理后台 - 库存转移记录主创建 Request VO") @Schema(description = "管理后台 - 库存转移记录主创建 Request VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class InventorymoveRecordMainCreateReqVO extends InventorymoveRecordMainBaseVO { 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.dept.DeptApi;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.wms.controller.inventorymoveRequest.vo.*; 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.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO; import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
@ -123,6 +124,25 @@ public class InventorymoveRequestMainController {
} }
return success(result); 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") @GetMapping("/export-excel")
@Operation(summary = "导出库存转移申请 Excel") @Operation(summary = "导出库存转移申请 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventorymove-request-main:export')") @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 io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 库存转移申请主 Response VO") @Schema(description = "管理后台 - 库存转移申请主 Response VO")
@Data @Data
@EqualsAndHashCode(callSuper = true) @EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true) @ToString(callSuper = true)
public class InventorymoveRequestMainRespVO extends InventorymoveRequestMainBaseVO { 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<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<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 java.util.*;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventorymoveRecord.vo.*;
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.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveRecord.InventorymoveRecordDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping; import org.mapstruct.Mapping;
@ -46,4 +42,6 @@ public interface InventorymoveRecordMainConvert {
@Mapping(source = "detailDO.createTime", target = "createTimeDetail"), @Mapping(source = "detailDO.createTime", target = "createTimeDetail"),
}) })
InventorymoveRecordMainExcelVO convert(InventorymoveRecordMainDO mainDO, InventorymoveRecordDetailDO detailDO); 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; package com.win.module.wms.service.customerreturnRecord;
import com.win.framework.common.pojo.CustomConditions; 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.CustomerreturnRecordMainCreateReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainExportReqVO; 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.CustomerreturnRecordMainPageReqVO;
import com.win.module.wms.controller.customerreturnRecord.vo.CustomerreturnRecordMainUpdateReqVO; 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 org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.*; 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 com.win.module.wms.dal.mysql.customerreturnRecord.CustomerreturnRecordMainMapper;
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.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
@ -31,12 +56,100 @@ public class CustomerreturnRecordMainServiceImpl implements CustomerreturnRecord
@Resource @Resource
private CustomerreturnRecordMainMapper customerreturnRecordMainMapper; 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 @Override
@Transactional
public Long createCustomerreturnRecordMain(CustomerreturnRecordMainCreateReqVO createReqVO) { public Long createCustomerreturnRecordMain(CustomerreturnRecordMainCreateReqVO createReqVO) {
// 插入 // 插入
CustomerreturnRecordMainDO customerreturnRecordMain = CustomerreturnRecordMainConvert.INSTANCE.convert(createReqVO); CustomerreturnRecordMainDO customerreturnRecordMain = CustomerreturnRecordMainConvert.INSTANCE.convert(createReqVO);
customerreturnRecordMainMapper.insert(customerreturnRecordMain); 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(); return customerreturnRecordMain.getId();
} }

21
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.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.customerreturnJob.CustomerreturnJobDetailDO; 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.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.CustomerreturnRequestDetailDO;
import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO; import com.win.module.wms.dal.dataobject.customerreturnRequest.CustomerreturnRequestMainDO;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO; import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordDetailDO;
@ -301,18 +303,21 @@ public class CustomerreturnRequestMainServiceImpl implements CustomerreturnReque
//增加业务类型 //增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRecord"); BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("CustomerRejectRecord");
customerreturnRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); customerreturnRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
customerreturnRecordMainMapper.insert(CustomerreturnRecordMainConvert.INSTANCE.convert(customerreturnRecordMainCreateReqVO)); CustomerreturnRecordMainDO recordMainDO = CustomerreturnRecordMainConvert.INSTANCE.convert(customerreturnRecordMainCreateReqVO);
customerreturnRecordMainMapper.insert(recordMainDO);
for(CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) { for(CustomerreturnRequestDetailDO customerreturnRequestDetailDO : detailDOList) {
//记录子表数据 同名属性同名赋值 //记录子表数据 同名属性同名赋值
CustomerreturnRecordDetailCreateReqVO customerreturnRecordDetailCreateReqVO = new CustomerreturnRecordDetailCreateReqVO(); CustomerreturnRecordDetailCreateReqVO customerreturnRecordDetailCreateReqVO = new CustomerreturnRecordDetailCreateReqVO();
BeanUtils.copyProperties(customerreturnRequestDetailDO, customerreturnRecordDetailCreateReqVO); CustomerreturnRecordDetailDO recordDetailDO = CustomerreturnRecordDetailConvert.INSTANCE.convert(customerreturnRecordDetailCreateReqVO);
customerreturnRecordDetailCreateReqVO.setFromBatch(customerreturnRequestDetailDO.getBatch()); BeanUtils.copyProperties(customerreturnRequestDetailDO, recordDetailDO);
customerreturnRecordDetailCreateReqVO.setMasterId(customerreturnRequestDetailDO.getId().toString()); recordDetailDO.setFromBatch(customerreturnRequestDetailDO.getBatch());
customerreturnRecordDetailCreateReqVO.setId(null); recordDetailDO.setMasterId(customerreturnRequestDetailDO.getId().toString());
customerreturnRecordDetailCreateReqVO.setCreator(userApi.getUser(getLoginUserId()).getId().toString()); recordDetailDO.setId(null);
customerreturnRecordDetailCreateReqVO.setCreateTime(null); recordDetailDO.setCreator(userApi.getUser(getLoginUserId()).getId().toString());
customerreturnRecordDetailMapper.insert(CustomerreturnRecordDetailConvert.INSTANCE.convert(customerreturnRecordDetailCreateReqVO)); recordDetailDO.setCreateTime(null);
customerreturnRecordDetailMapper.insert(recordDetailDO);
} }
trendsApi.createTrends(recordMainDO.getId(), "CustomerRejectJob", "客户退货申请生成客户退货记录", TrendsTypeEnum.CREATE);
return; 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 @Override
@Transactional @Transactional
public String executeDeliverJobMain(DeliverJobMainUpdateReqVO deliverJobMainUpdateReqVO) { public String executeDeliverJobMain(DeliverJobMainUpdateReqVO deliverJobMainUpdateReqVO) {
BigDecimal zero = BigDecimal.ZERO;
//查询数据 //查询数据
DeliverJobMainDO deliverJobMainDO = this.validateDeliverJobMainExists(deliverJobMainUpdateReqVO.getId()); DeliverJobMainDO deliverJobMainDO = this.validateDeliverJobMainExists(deliverJobMainUpdateReqVO.getId());
List<DeliverJobDetailDO> subList = deliverJobDetailService.selectList(deliverJobMainDO.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.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.pojo.CustomConditions; 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.DeliverRecordMainCreateReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainExportReqVO; 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.DeliverRecordMainPageReqVO;
import com.win.module.wms.controller.deliverRecord.vo.DeliverRecordMainUpdateReqVO; 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.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.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 org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*; import java.util.*;
import com.win.module.wms.dal.dataobject.deliverRecord.DeliverRecordMainDO; 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 com.win.module.wms.dal.mysql.deliverRecord.DeliverRecordMainMapper;
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.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
@ -34,15 +57,119 @@ public class DeliverRecordMainServiceImpl implements DeliverRecordMainService {
@Resource @Resource
private DeliverRecordMainMapper deliverRecordMainMapper; private DeliverRecordMainMapper deliverRecordMainMapper;
@Resource @Resource
private DeliverRecordDetailMapper deliverRecordDetailMapper; 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 @Override
@Transactional
public Long createDeliverRecordMain(DeliverRecordMainCreateReqVO createReqVO) { public Long createDeliverRecordMain(DeliverRecordMainCreateReqVO createReqVO) {
// 插入 // 插入
DeliverRecordMainDO deliverRecordMain = DeliverRecordMainConvert.INSTANCE.convert(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(); 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.InventorychangeRecordMainExportReqVO;
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainPageReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainPageReqVO;
import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainUpdateReqVO; import com.win.module.wms.controller.inventorychangeRecord.vo.InventorychangeRecordMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.inventorychangeRequest.InventorychangeRequestMainDO;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import java.util.*; import java.util.*;
@ -34,6 +35,7 @@ public class InventorychangeRecordMainServiceImpl implements InventorychangeReco
private InventorychangeRecordMainMapper inventorychangeRecordMainMapper; private InventorychangeRecordMainMapper inventorychangeRecordMainMapper;
@Override @Override
@Transactional
public Long createInventorychangeRecordMain(InventorychangeRecordMainCreateReqVO createReqVO) { public Long createInventorychangeRecordMain(InventorychangeRecordMainCreateReqVO createReqVO) {
// 插入 // 插入
InventorychangeRecordMainDO inventorychangeRecordMain = InventorychangeRecordMainConvert.INSTANCE.convert(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()); String number = serialNumberApi.generateCode(RuleCodeEnum.HOLD_TO_SCRAP_REQUEST.getCode());
inventorychangeRequestMainDO.setNumber(number); inventorychangeRequestMainDO.setNumber(number);
inventorychangeRequestMainDO.setDepartmentCode(userApi.getUser(Long.valueOf(inventorychangeRequestMainDO.getCreator())).getDeptId().toString());
inventorychangeRequestMainMapper.insert(inventorychangeRequestMainDO); inventorychangeRequestMainMapper.insert(inventorychangeRequestMainDO);
for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) { for (InventorychangeRequestDetailDO inventorychangeRequestDetailDO : subDOList) {
inventorychangeRequestDetailDO.setNumber(inventorychangeRequestMainDO.getNumber()); inventorychangeRequestDetailDO.setNumber(inventorychangeRequestMainDO.getNumber());
@ -586,7 +585,7 @@ public class InventorychangeRequestMainServiceImpl implements InventorychangeReq
inventorychangeRequestDetailDO.setFromQty(balanceDO.getQty()); inventorychangeRequestDetailDO.setFromQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setToQty(balanceDO.getQty()); inventorychangeRequestDetailDO.setToQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setQty(balanceDO.getQty()); inventorychangeRequestDetailDO.setQty(balanceDO.getQty());
inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); inventorychangeRequestDetailDO.setFromArriveDate(balanceDO.getArriveDate());
inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate()); inventorychangeRequestDetailDO.setFromProduceDate(balanceDO.getProduceDate());
inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate()); inventorychangeRequestDetailDO.setFromExpireDate(balanceDO.getExpireDate());
inventorychangeRequestDetailDO.setToArrivdAte(balanceDO.getArriveDate()); 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())) { if (DetailUpdateItem.getId().equals(subListItem.getId())) {
List<Map<String,String>> recordList = DetailUpdateItem.getRecordList(); 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); BeanUtils.copyProperties(DetailUpdateItem, inventorymoveRecordDetailDO);
inventorymoveRecordDetailDO.setJobDetailId(DetailUpdateItem.getId().toString()); inventorymoveRecordDetailDO.setJobDetailId(DetailUpdateItem.getId().toString());
inventorymoveRecordDetailDO.setId(null); inventorymoveRecordDetailDO.setId(null);
@ -306,18 +306,18 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
inventorymoveRecordDetailDO.setNumber(inventorymoveRecordMainDO.getNumber()); inventorymoveRecordDetailDO.setNumber(inventorymoveRecordMainDO.getNumber());
inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType()); inventorymoveRecordDetailDO.setInterfaceType(inventorymoveRecordMainDO.getInterfaceType());
inventorymoveRecordDetailDO.setMasterId(inventorymoveRecordMainDO.getId().toString()); inventorymoveRecordDetailDO.setMasterId(inventorymoveRecordMainDO.getId().toString());
inventorymoveRecordDetailDO.setQty(new BigDecimal(recordLstItem.get("handleQty"))); inventorymoveRecordDetailDO.setQty(new BigDecimal(recordListItem.get("handleQty")));
inventorymoveRecordDetailDO.setToPackingNumber(recordLstItem.get("toPackingNumber")==null?"":recordLstItem.get("toPackingNumber")); inventorymoveRecordDetailDO.setToPackingNumber(recordListItem.get("toPackingNumber")==null?"":recordListItem.get("toPackingNumber"));
inventorymoveRecordDetailDO.setToContainerNumber(recordLstItem.get("toContainerNumber")==null?"":recordLstItem.get("toContainerNumber")); inventorymoveRecordDetailDO.setToContainerNumber(recordListItem.get("toContainerNumber")==null?"":recordListItem.get("toContainerNumber"));
inventorymoveRecordDetailDO.setToBatch(recordLstItem.get("toBatch")==null?"":recordLstItem.get("toBatch")); inventorymoveRecordDetailDO.setToBatch(recordListItem.get("toBatch")==null?"":recordListItem.get("toBatch"));
inventorymoveRecordDetailDO.setToLocationCode(recordLstItem.get("toLocationCode")); inventorymoveRecordDetailDO.setToLocationCode(recordListItem.get("toLocationCode"));
LocationDO toLocationDO = locationService.selectLocation(recordLstItem.get("toLocationCode")); LocationDO toLocationDO = locationService.selectLocation(recordListItem.get("toLocationCode"));
inventorymoveRecordDetailDO.setToAreaCode(toLocationDO.getAreaCode()); inventorymoveRecordDetailDO.setToAreaCode(toLocationDO.getAreaCode());
inventorymoveRecordDetailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode()); inventorymoveRecordDetailDO.setToLocationGroupCode(toLocationDO.getLocationGroupCode());
LocationDO fromLocationDO = locationService.selectLocation(inventorymoveRecordDetailDO.getFromLocationCode()); LocationDO fromLocationDO = locationService.selectLocation(inventorymoveRecordDetailDO.getFromLocationCode());
inventorymoveRecordDetailDO.setFromAreaCode(fromLocationDO.getAreaCode()); inventorymoveRecordDetailDO.setFromAreaCode(fromLocationDO.getAreaCode());
inventorymoveRecordDetailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode()); inventorymoveRecordDetailDO.setFromLocationGroupCode(fromLocationDO.getLocationGroupCode());
inventorymoveRecordDetailDO.setToInventoryStatus(recordLstItem.get("toInventoryStatus")); inventorymoveRecordDetailDO.setToInventoryStatus(recordListItem.get("toInventoryStatus"));
inventorymoveRecordDetailDO.setFromPackingNumber(DetailUpdateItem.getPackingNumber()); inventorymoveRecordDetailDO.setFromPackingNumber(DetailUpdateItem.getPackingNumber());
inventorymoveRecordDetailDO.setFromContainerNumber(DetailUpdateItem.getContainerNumber()); inventorymoveRecordDetailDO.setFromContainerNumber(DetailUpdateItem.getContainerNumber());
inventorymoveRecordDetailDO.setFromAreaCode(inventorymoveJobMainDO.getFromAreaCodes()); inventorymoveRecordDetailDO.setFromAreaCode(inventorymoveJobMainDO.getFromAreaCodes());
@ -343,7 +343,7 @@ public class InventorymoveJobMainServiceImpl implements InventorymoveJobMainServ
transactionCreateReqVO.setContainerNumber(DetailUpdateItem.getContainerNumber()); transactionCreateReqVO.setContainerNumber(DetailUpdateItem.getContainerNumber());
transactionCreateReqVO.setInventoryStatus(DetailUpdateItem.getInventoryStatus()); transactionCreateReqVO.setInventoryStatus(DetailUpdateItem.getInventoryStatus());
transactionCreateReqVO.setAmount(BigDecimal.ZERO); transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setLocationCode(recordLstItem.get("toLocationCode").toString()); transactionCreateReqVO.setLocationCode(recordListItem.get("toLocationCode").toString());
transactionCreateReqVOList.add(transactionCreateReqVO); transactionCreateReqVOList.add(transactionCreateReqVO);
// 出动作 // 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new 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; package com.win.module.wms.service.inventorymoveRecord;
import com.win.framework.common.pojo.CustomConditions; 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.InventorymoveRecordMainCreateReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainExportReqVO; 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.InventorymoveRecordMainPageReqVO;
import com.win.module.wms.controller.inventorymoveRecord.vo.InventorymoveRecordMainUpdateReqVO; 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 org.springframework.stereotype.Service;
import javax.annotation.Resource; import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated; 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 com.win.module.wms.dal.mysql.inventorymoveRecord.InventorymoveRecordMainMapper;
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.module.wms.enums.ErrorCodeConstants.*; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
@ -32,12 +53,121 @@ public class InventorymoveRecordMainServiceImpl implements InventorymoveRecordMa
@Resource @Resource
private InventorymoveRecordMainMapper inventorymoveRecordMainMapper; 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 @Override
public Long createInventorymoveRecordMain(InventorymoveRecordMainCreateReqVO createReqVO) { public Long createInventorymoveRecordMain(InventorymoveRecordMainCreateReqVO createReqVO) {
String number = "";
RecordsettingDO recordsettingDO = null;
BusinesstypeDO businesstypeDO = null;
// 插入 // 插入
InventorymoveRecordMainDO inventorymoveRecordMain = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO); InventorymoveRecordMainDO inventorymoveRecordMain = InventorymoveRecordMainConvert.INSTANCE.convert(createReqVO);
inventorymoveRecordMainMapper.insert(inventorymoveRecordMain); 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(); return inventorymoveRecordMain.getId();
} }

34
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.collection.CollUtil;
import cn.hutool.core.exceptions.UtilException; 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.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult; 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.InventorymoveRequestDetailConvert;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert; import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
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.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.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO; import com.win.module.wms.dal.dataobject.inventorymoveJob.InventorymoveJobMainDO;
@ -643,18 +646,33 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
} }
inventorymoveRecordMainCreateReqVO.setNumber(number); inventorymoveRecordMainCreateReqVO.setNumber(number);
inventorymoveRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode()); inventorymoveRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
inventorymoveRecordMainCreateReqVO.setOutTransactionType(businesstypeDO.getOutTransactionType());
inventorymoveRecordMainCreateReqVO.setInTransactionType(businesstypeDO.getInTransactionType());
inventorymoveRecordMainCreateReqVO.setInterfaceType(recordsettingDO.getInterfaceType()); 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) { for (InventorymoveRequestDetailDO inventorymoveRequestDetailDO : detailDOList) {
InventorymoveRecordDetailCreateReqVO inventorymoveRecordDetailCreateReqVO = new InventorymoveRecordDetailCreateReqVO(); InventorymoveRecordDetailCreateReqVO inventorymoveRecordDetailCreateReqVO = new InventorymoveRecordDetailCreateReqVO();
BeanUtils.copyProperties(inventorymoveRequestDetailDO, inventorymoveRecordDetailCreateReqVO); InventorymoveRecordDetailDO recordDetailDO = InventorymoveRecordDetailConvert.INSTANCE.convert(inventorymoveRecordDetailCreateReqVO);
inventorymoveRecordDetailCreateReqVO.setId(null); BeanUtils.copyProperties(inventorymoveRequestDetailDO, recordDetailDO);
inventorymoveRecordDetailCreateReqVO.setCreator(null); recordDetailDO.setId(null);
inventorymoveRecordDetailCreateReqVO.setCreateTime(null); recordDetailDO.setCreator(null);
inventorymoveRecordDetailCreateReqVO.setNumber(number); recordDetailDO.setCreateTime(null);
inventorymoveRecordDetailMapper.insert(InventorymoveRecordDetailConvert.INSTANCE.convert(inventorymoveRecordDetailCreateReqVO)); 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(InventorymoveRecordMainConvert.INSTANCE.convert(inventorymoveRecordMainCreateReqVO).getId(), recordsettingDO.getCode(), "库存转移申请生成库存转移记录", TrendsTypeEnum.CREATE); trendsApi.createTrends(recordMainDO.getId(), recordsettingDO.getCode(), "库存转移申请生成库存转移记录", TrendsTypeEnum.CREATE);
return; return;
} }
InventorymoveJobMainDO inventorymoveJobMainDO = InventorymoveJobMainConvert.INSTANCE.convert(mainDO); 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()); WorkstationDO workstationDO = workstationService.selectWorkstationExist(productreceiptRecordDetailDO.getWorkStationCode(),productreceiptRecordMainDO.getWorkshopCode(),productreceiptRecordDetailDO.getProductionlineCode());
backflushRecordDetailbDO.setFromLocationCode(workstationDO.getRawLocationCode()); backflushRecordDetailbDO.setFromLocationCode(workstationDO.getRawLocationCode());
// 根据 from_location_code 查询库存余额 // 根据 from_location_code 查询库存余额
// TODO: 如果按批次 查询批次获取库存余额 排序批次 如果第一条批次不够数量 需要扣除第二条余额 库存事务出的动作要存2条
List inventoryStatus = new ArrayList(); List inventoryStatus = new ArrayList();
inventoryStatus.add("OK"); inventoryStatus.add("OK");
List<BalanceDO> balanceDOList = balanceService.selectNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode()); List<BalanceDO> balanceDOList = balanceService.selectNumber(backflushRequestDetailbDO.getItemCode(),inventoryStatus,workstationDO.getRawLocationCode());
@ -445,6 +446,9 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
backflushRecordDetailbDO.setInventoryStatus("OK"); backflushRecordDetailbDO.setInventoryStatus("OK");
backflushRecordDetailbDO.setFromAreaCode(balanceDOList.get(0).getAreaCode()); backflushRecordDetailbDO.setFromAreaCode(balanceDOList.get(0).getAreaCode());
backflushRecordDetailbDO.setFromLocationGroupCode(balanceDOList.get(0).getLocationGroupCode()); backflushRecordDetailbDO.setFromLocationGroupCode(balanceDOList.get(0).getLocationGroupCode());
// 消耗数量 = 成品数量 * bom数量
BigDecimal qty = productreceiptRecordDetailDO.getQty().multiply(backflushRecordDetailbDO.getQty());
backflushRecordDetailbDO.setQty(qty);
backflushRecordDetailbDOList.add(backflushRecordDetailbDO); backflushRecordDetailbDOList.add(backflushRecordDetailbDO);
//添加库存事务list //添加库存事务list
// 出动作 // 出动作
@ -465,6 +469,7 @@ public class ProductreceiptJobMainServiceImpl implements ProductreceiptJobMainSe
transactionCreateReqVO.setAmount(BigDecimal.ZERO); transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(""); transactionCreateReqVO.setWarehouseCode("");
transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode()); transactionCreateReqVO.setLocationCode(backflushRecordDetailbDO.getFromLocationCode());
transactionCreateReqVO.setQty(qty);
transactionCreateReqVOList.add(transactionCreateReqVO); transactionCreateReqVOList.add(transactionCreateReqVO);
// 判断 物品 是否为 下线结算物品 创建 下线结算记录 // 判断 物品 是否为 下线结算物品 创建 下线结算记录
if (itembasicService.isOfflines(backflushRecordDetailbDO.getItemCode())) { 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"); queryWrapperExpectout.isNotNull("packing_number");
if (balanceDO.getPackingNumber() != null && !balanceDO.getPackingNumber().equals("")) queryWrapperExpectout.eq("packing_number", balanceDO.getPackingNumber()); 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()); 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); ExpectoutDO expectoutDO = expectoutMapper.selectOne(queryWrapperExpectout);
BigDecimal countQtyExpectout = new BigDecimal(0.000000); BigDecimal countQtyExpectout = new BigDecimal(0.000000);
if (expectoutDO != null) { if (expectoutDO != null) {

Loading…
Cancel
Save