Browse Source

制品上架 任务

master
陈薪名 2 years ago
parent
commit
a00e563b04
  1. 135
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/ProductputawayJobMainController.java
  2. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobDetailPageReqVO.java
  3. 169
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainExcelVO.java
  4. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayJob/ProductputawayJobMainConvert.java
  5. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobDetailMapper.java
  6. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobMainMapper.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java
  8. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java
  9. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailService.java
  10. 5
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailServiceImpl.java
  11. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainService.java
  12. 249
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainServiceImpl.java
  13. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java

135
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/ProductputawayJobMainController.java

@ -3,15 +3,16 @@ package com.win.module.wms.controller.productputawayJob;
import com.win.framework.common.pojo.CommonResult; import com.win.framework.common.pojo.CommonResult;
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;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ExcelUtils; import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog; import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi; import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO; import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.productputawayJob.vo.*; import com.win.module.wms.controller.productputawayJob.vo.*;
import com.win.module.wms.convert.productputawayJob.ProductputawayJobDetailConvert;
import com.win.module.wms.convert.productputawayJob.ProductputawayJobMainConvert; import com.win.module.wms.convert.productputawayJob.ProductputawayJobMainConvert;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.productputawayJob.ProductputawayJobDetailService; import com.win.module.wms.service.productputawayJob.ProductputawayJobDetailService;
import com.win.module.wms.service.productputawayJob.ProductputawayJobMainService; import com.win.module.wms.service.productputawayJob.ProductputawayJobMainService;
import io.swagger.v3.oas.annotations.Operation; import io.swagger.v3.oas.annotations.Operation;
@ -26,10 +27,7 @@ import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.IOException; import java.io.IOException;
import java.util.ArrayList; import java.util.*;
import java.util.Collection;
import java.util.List;
import java.util.Map;
import static com.win.framework.common.pojo.CommonResult.success; import static com.win.framework.common.pojo.CommonResult.success;
import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT; import static com.win.framework.operatelog.core.enums.OperateTypeEnum.EXPORT;
@ -99,23 +97,6 @@ public class ProductputawayJobMainController {
return success(ProductputawayJobMainConvert.INSTANCE.convertPage(pageResult)); return success(ProductputawayJobMainConvert.INSTANCE.convertPage(pageResult));
} }
@GetMapping("/export-excel")
@Operation(summary = "导出制品上架任务主 Excel")
@PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:export')")
@OperateLog(type = EXPORT)
public void exportProductputawayJobMainExcel(@Valid ProductputawayJobMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductputawayJobMainDO> list = productputawayJobMainService.getProductputawayJobMainList(exportReqVO);
// 导出 Excel
List<ProductputawayJobMainExcelVO> datas = ProductputawayJobMainConvert.INSTANCE.convertList02(list);
for(ProductputawayJobMainExcelVO vo : datas) {
AdminUserRespDTO user = userApi.getUser(Long.valueOf(vo.getCreator()));
//后端创建个字段作为前端展示的虚拟字段
vo.setCreator(user.getNickname());
}
ExcelUtils.write(response, "制品上架任务主.xls", "数据", ProductputawayJobMainExcelVO.class, datas);
}
@PostMapping("/senior") @PostMapping("/senior")
@Operation(summary = "高级搜索获得制品上架任务主分页") @Operation(summary = "高级搜索获得制品上架任务主分页")
@PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:query')") @PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:query')")
@ -130,6 +111,72 @@ public class ProductputawayJobMainController {
return success(result); return success(result);
} }
private List<ProductputawayJobMainExcelVO> getExcelVo(List<ProductputawayJobMainDO> list, Map<Integer, String[]> mapDropDown) {
String[] locationTypes = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.LOCATION_TYPE);
mapDropDown.put(8, locationTypes);
mapDropDown.put(9, locationTypes);
String[] trueFalse = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.TRUE_FALSE);
mapDropDown.put(14, trueFalse);
mapDropDown.put(15, trueFalse);
mapDropDown.put(16, trueFalse);
mapDropDown.put(17, trueFalse);
mapDropDown.put(18, trueFalse);
mapDropDown.put(19, trueFalse);
mapDropDown.put(20, trueFalse);
mapDropDown.put(21, trueFalse);
mapDropDown.put(22, trueFalse);
mapDropDown.put(23, trueFalse);
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(39, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(50, uom);
List<ProductputawayJobMainExcelVO> resultList = new ArrayList<>();
// 导出
for(ProductputawayJobMainDO mainDO : list) {
List<ProductputawayJobDetailDO> subList = productputawayJobDetailService.selectList(mainDO.getId());
for(ProductputawayJobDetailDO detailDO : subList) {
ProductputawayJobMainExcelVO vo = ProductputawayJobMainConvert.INSTANCE.convert(mainDO, detailDO);
resultList.add(vo);
}
}
return resultList;
}
@GetMapping("/export-excel")
@Operation(summary = "导出制品上架任务 Excel")
@PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:export')")
@OperateLog(type = EXPORT)
public void exportProductputawayJobMainExcel(@Valid ProductputawayJobMainExportReqVO exportReqVO,
HttpServletResponse response) throws IOException {
List<ProductputawayJobMainDO> list = productputawayJobMainService.getProductputawayJobMainList(exportReqVO);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductputawayJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
resultList.forEach(item -> {
//后端创建个字段作为前端展示的虚拟字段
item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
});
ExcelUtils.write(response, "制品上架任务.xls", "制品上架任务", ProductputawayJobMainExcelVO.class, resultList);
}
@GetMapping("/export-excel-senior")
@Operation(summary = "导出制品上架任务 Excel")
@PreAuthorize("@ss.hasPermission('wms:productputaway-request-main:export')")
@OperateLog(type = EXPORT)
public void exportProductputawayJobMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<ProductputawayJobMainDO> list = productputawayJobMainService.getProductputawayJobMainList(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<ProductputawayJobMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
resultList.forEach(item -> {
//后端创建个字段作为前端展示的虚拟字段
item.setCreator(userApi.getUser(Long.valueOf(item.getCreator())).getNickname());
item.setUpdater(userApi.getUser(Long.valueOf(item.getUpdater())).getNickname());
});
ExcelUtils.write(response, "制品上架任务.xlsx", "制品上架任务", ProductputawayJobMainExcelVO.class, resultList, mapDropDown);
}
@GetMapping("/getProductputawayJobById") @GetMapping("/getProductputawayJobById")
@Operation(summary = "APP获得制品上架任务主子表明细列表") @Operation(summary = "APP获得制品上架任务主子表明细列表")
@Parameter(name = "id", description = "编号", required = true, example = "1024") @Parameter(name = "id", description = "编号", required = true, example = "1024")
@ -140,11 +187,13 @@ public class ProductputawayJobMainController {
if(result==null) { if(result==null) {
return success(result); return success(result);
}; };
ProductputawayJobDetailExportReqVO reqVO = new ProductputawayJobDetailExportReqVO(); // ProductputawayJobDetailExportReqVO reqVO = new ProductputawayJobDetailExportReqVO();
reqVO.setMasterId(result.getId()); // reqVO.setMasterId(result.getId());
List<ProductputawayJobDetailDO> list = productputawayJobDetailService.getProductputawayJobDetailList(reqVO); // List<ProductputawayJobDetailDO> list = productputawayJobDetailService.getProductputawayJobDetailList(reqVO);
List<ProductputawayJobDetailExcelVO> vos = ProductputawayJobDetailConvert.INSTANCE.convertList02(list); // List<ProductputawayJobDetailExcelVO> vos = ProductputawayJobDetailConvert.INSTANCE.convertList02(list);
result.setSubList(vos); // result.setSubList(vos);
List<ProductputawayJobDetailDO> subList = productputawayJobDetailService.selectList(id);
result.setSubList(subList);
return success(result); return success(result);
} }
@ -163,4 +212,36 @@ public class ProductputawayJobMainController {
return success(countByStatus); return success(countByStatus);
} }
@PutMapping(value = "/accept")
@Operation(summary = "承接任务")
@PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:accept')")
public CommonResult<Boolean> acceptProductputawayJobMain(@RequestParam("id") Long id) {
int result = productputawayJobMainService.acceptProductputawayJobMain(id);
return success(result > 0);
}
@PutMapping(value = "/abandon")
@Operation(summary = "放弃任务")
@PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:abandon')")
public CommonResult<Boolean> abandonProductputawayJobMain(@RequestParam("id") Long id) {
int result = productputawayJobMainService.abandonProductputawayJobMain(id);
return success(result > 0);
}
@PutMapping(value = "/close")
@Operation(summary = "关闭任务")
@PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:close')")
public CommonResult<Boolean> closeProductputawayJobMain(@RequestParam("id") Long id) {
int result = productputawayJobMainService.closeProductputawayJobMain(id);
return success(result > 0);
}
@PutMapping("/execute")
@Operation(summary = "执行任务")
@PreAuthorize("@ss.hasPermission('wms:productputaway-job-main:execute')")
public CommonResult<String> executeProductputawayJobMain(@Valid @RequestBody ProductputawayJobMainUpdateReqVO updateReqVO) {
String number = productputawayJobMainService.executeProductputawayJobMain(updateReqVO);
return success(number);
}
} }

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobDetailPageReqVO.java

@ -81,4 +81,7 @@ public class ProductputawayJobDetailPageReqVO extends PageParam {
@Schema(description = "到货主代码") @Schema(description = "到货主代码")
private String toOwnerCode; private String toOwnerCode;
@Schema(description = "主表ID")
private String masterId;
} }

169
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productputawayJob/vo/ProductputawayJobMainExcelVO.java

@ -1,5 +1,7 @@
package com.win.module.wms.controller.productputawayJob.vo; package com.win.module.wms.controller.productputawayJob.vo;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.job.JobStatusConverter;
import io.swagger.v3.oas.annotations.media.Schema; import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*; import lombok.*;
import java.util.*; import java.util.*;
@ -24,57 +26,92 @@ import com.win.framework.excel.core.convert.DictConvert;
@Data @Data
public class ProductputawayJobMainExcelVO { public class ProductputawayJobMainExcelVO {
@ExcelProperty("单据号")
private String number;
@ExcelProperty("申请单号") @ExcelProperty("申请单号")
private String requestNumber; private String requestNumber;
@ExcelProperty("供应商代码") @ExcelProperty("供应商代码")
private String supplierCode; private String supplierCode;
@ExcelProperty("从仓库代码") @ExcelProperty("完成时间")
private String fromWarehouseCode; private LocalDateTime completetime;
@ExcelProperty("到仓库代码") @ExcelProperty("申请时间")
private String toWarehouseCode; private LocalDateTime requestTime;
@ExcelProperty("从库区代码范围") @ExcelProperty("要求截止时间")
private String fromAreaCodes; private LocalDateTime requestDueTime;
@ExcelProperty("到库区代码范围") @ExcelProperty(value = "状态", converter = JobStatusConverter.class)
private String toAreaCodes; private String status;
@ExcelProperty("过期时间")
private LocalDateTime expiredTime;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class) @ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat(DictTypeConstants.LOCATION_TYPE)
private String fromLocationTypes; private String fromLocationTypes;
@ExcelProperty(value = "到库位类型范围", converter = DictConvert.class) @ExcelProperty(value = "到库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat(DictTypeConstants.LOCATION_TYPE)
private String toLocationTypes; private String toLocationTypes;
@ExcelProperty("完成时间") @ExcelProperty("从库区代码范围")
private LocalDateTime completetime; private String fromAreaCodes;
@ExcelProperty("申请时间") @ExcelProperty("到库区代码范围")
private LocalDateTime requestTime; private String toAreaCodes;
@ExcelProperty("要求截止时间") @ExcelProperty("从仓库代码")
private LocalDateTime requestDueTime; private String fromWarehouseCode;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty("到仓库代码")
@DictFormat("job_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 private String toWarehouseCode;
private String status;
@ExcelProperty("过期时间") @ExcelProperty(value = "自动完成", converter = DictConvert.class)
private LocalDateTime expiredTime; @DictFormat(DictTypeConstants.TRUE_FALSE)
private String autoComplete;
@ExcelProperty("最后更新时间") @ExcelProperty(value = "允许修改库位", converter = DictConvert.class)
private LocalDateTime updateTime; @DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyLocation;
@ExcelProperty("最后更新者Id") @ExcelProperty(value = "允许修改数量", converter = DictConvert.class)
private String updater; @DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyQty;
@ExcelProperty(value = "状态", converter = DictConvert.class) @ExcelProperty(value = "允许大于推荐数量", converter = DictConvert.class)
@DictFormat("job_stage_status") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中 @DictFormat(DictTypeConstants.TRUE_FALSE)
private String jobStageStatus; private String allowBiggerQty;
@ExcelProperty(value = "允许小于推荐数量", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowSmallerQty;
@ExcelProperty(value = "允许修改库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyInventoryStatus;
@ExcelProperty(value = "允许连续扫描", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowContinuousScanning;
@ExcelProperty(value = "允许部分完成", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowPartialComplete;
@ExcelProperty(value = "允许修改箱码", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyPackingNumber;
@ExcelProperty(value = "允许修改批次", converter = DictConvert.class)
@DictFormat(DictTypeConstants.TRUE_FALSE)
private String allowModifyBatch;
@ExcelProperty("业务类型")
private String businessType;
@ExcelProperty("优先级") @ExcelProperty("优先级")
private Integer priority; private Integer priority;
@ -94,12 +131,6 @@ public class ProductputawayJobMainExcelVO {
@ExcelProperty("完成人用户ID") @ExcelProperty("完成人用户ID")
private String completeUserId; private String completeUserId;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("业务类型")
private String businessType;
@ExcelProperty("备注") @ExcelProperty("备注")
private String remark; private String remark;
@ -109,34 +140,64 @@ public class ProductputawayJobMainExcelVO {
@ExcelProperty("创建者id") @ExcelProperty("创建者id")
private String creator; private String creator;
@ExcelProperty("自动完成") @ExcelProperty("最后更新时间")
private String autoComplete; private LocalDateTime updateTime;
@ExcelProperty("允许修改库位") @ExcelProperty("最后更新者Id")
private String allowModifyLocation; private String updater;
@ExcelProperty("允许修改数量") // 子表数据
private String allowModifyQty; @ExcelProperty("包装号")
private String packingNumber;
@ExcelProperty("允许大于推荐数量") @ExcelProperty("器具号")
private String allowBiggerQty; private String containerNumber;
@ExcelProperty("允许小于推荐数量") @ExcelProperty("批次")
private String allowSmallerQty; private String batch;
@ExcelProperty("允许修改库存状态") @ExcelProperty(value = "库存状态", converter = DictConvert.class)
private String allowModifyInventoryStatus; @DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String inventoryStatus;
@ExcelProperty("允许连续扫描") @ExcelProperty("订单号")
private String allowContinuousScanning; private String poNumber;
@ExcelProperty("允许部分完成") @ExcelProperty("订单行")
private String allowPartialComplete; private String poLine;
@ExcelProperty("允许修改批次") @ExcelProperty("从库位代码")
private String allowModifyBatch; private String fromLocationCode;
@ExcelProperty("允许修改箱码") @ExcelProperty("到库位代码")
private String allowModifyPackingNumber; private String toLocationCode;
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("物品名称")
private String itemName;
@ExcelProperty("物品描述1")
private String itemDesc1;
@ExcelProperty("物品描述2")
private String itemDesc2;
@ExcelProperty("项目代码")
private String projectCode;
@ExcelProperty("数量")
private String qty;
@ExcelProperty(value = "计量单位", converter = DictConvert.class)
@DictFormat(DictTypeConstants.UOM)
private String uom;
@ExcelProperty("从货主代码")
private String fromOwnerCode;
@ExcelProperty("到货主代码")
private String toOwnerCode;
} }

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/productputawayJob/ProductputawayJobMainConvert.java

@ -8,7 +8,10 @@ import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainC
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExcelVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExcelVO;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainRespVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainRespVO;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainUpdateReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainUpdateReqVO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO;
import org.mapstruct.Mapper; import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers; import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO;
@ -34,4 +37,13 @@ public interface ProductputawayJobMainConvert {
List<ProductputawayJobMainExcelVO> convertList02(List<ProductputawayJobMainDO> list); List<ProductputawayJobMainExcelVO> convertList02(List<ProductputawayJobMainDO> list);
@Mappings({
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})
ProductputawayJobMainExcelVO convert(ProductputawayJobMainDO mainDO, ProductputawayJobDetailDO detailDO);
} }

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobDetailMapper.java

@ -7,6 +7,7 @@ import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils; import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobDetailExportReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobDetailExportReqVO;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobDetailPageReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobDetailPageReqVO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobDetailDO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
@ -22,6 +23,7 @@ public interface ProductputawayJobDetailMapper extends BaseMapperX<Productputawa
default PageResult<ProductputawayJobDetailDO> selectPage(ProductputawayJobDetailPageReqVO reqVO) { default PageResult<ProductputawayJobDetailDO> selectPage(ProductputawayJobDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<ProductputawayJobDetailDO>() return selectPage(reqVO, new LambdaQueryWrapperX<ProductputawayJobDetailDO>()
.eqIfPresent(ProductputawayJobDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(ProductputawayJobDetailDO::getPackingNumber, reqVO.getPackingNumber()) .eqIfPresent(ProductputawayJobDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(ProductputawayJobDetailDO::getContainerNumber, reqVO.getContainerNumber()) .eqIfPresent(ProductputawayJobDetailDO::getContainerNumber, reqVO.getContainerNumber())
.eqIfPresent(ProductputawayJobDetailDO::getBatch, reqVO.getBatch()) .eqIfPresent(ProductputawayJobDetailDO::getBatch, reqVO.getBatch())
@ -77,4 +79,8 @@ public interface ProductputawayJobDetailMapper extends BaseMapperX<Productputawa
.orderByDesc(ProductputawayJobDetailDO::getId)); .orderByDesc(ProductputawayJobDetailDO::getId));
} }
default List<ProductputawayJobDetailDO> selectList(Long masterId) {
return selectList(new LambdaQueryWrapperX<ProductputawayJobDetailDO>()
.eq(ProductputawayJobDetailDO::getMasterId, masterId));
}
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productputawayJob/ProductputawayJobMainMapper.java

@ -8,6 +8,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExportReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExportReqVO;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainPageReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainPageReqVO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO; import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO;
import com.win.module.wms.dal.dataobject.issueRequest.IssueRequestMainDO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO;
import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobMainDO; import com.win.module.wms.dal.dataobject.purchasereturnJob.PurchasereturnJobMainDO;
import com.win.module.wms.enums.order.OrderStatusEnum; import com.win.module.wms.enums.order.OrderStatusEnum;
@ -127,4 +128,8 @@ public interface ProductputawayJobMainMapper extends BaseMapperX<ProductputawayJ
.eq(ProductputawayJobMainDO::getRequestNumber, requestNumber) .eq(ProductputawayJobMainDO::getRequestNumber, requestNumber)
.ne(ProductputawayJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode())); .ne(ProductputawayJobMainDO::getStatus, OrderStatusEnum.CLOSED.getCode()));
} }
default List<ProductputawayJobMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
} }

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/issueJob/IssueJobMainServiceImpl.java

@ -349,7 +349,7 @@ public class IssueJobMainServiceImpl implements IssueJobMainService {
} }
}); });
}); });
if(!issueRecordDetailDOList.isEmpty()) { if(issueRecordDetailDOList != null && issueRecordDetailDOList.size() > 0) {
issueRecordDetailMapper.insertBatch(issueRecordDetailDOList); issueRecordDetailMapper.insertBatch(issueRecordDetailDOList);
} }
// 1-创建发料记录后 是否创建 生产收料任务 2-同时满足 使用在途库 // 1-创建发料记录后 是否创建 生产收料任务 2-同时满足 使用在途库

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/preparetoissue/PreparetoissueMainServiceImpl.java

@ -335,6 +335,7 @@ public class PreparetoissueMainServiceImpl implements PreparetoissueMainService
issueRequestMainCreateReqVO.setUseOnTheWayLocation("TRUE"); issueRequestMainCreateReqVO.setUseOnTheWayLocation("TRUE");
issueRequestMainCreateReqVO.setStatus(RequestStatusEnum.NEW.getCode()); issueRequestMainCreateReqVO.setStatus(RequestStatusEnum.NEW.getCode());
issueRequestMainCreateReqVO.setDepartmentCode(String.valueOf(userApi.getUser(getLoginUserId()).getDeptId())); issueRequestMainCreateReqVO.setDepartmentCode(String.valueOf(userApi.getUser(getLoginUserId()).getDeptId()));
issueRequestMainCreateReqVO.setPreparetoissuePlanNumber(mainDO.getNumber());
List<IssueRequestDetailCreateReqVO> subList = new ArrayList<>(); List<IssueRequestDetailCreateReqVO> subList = new ArrayList<>();
detailDO.forEach(itemDetailDO -> { detailDO.forEach(itemDetailDO -> {
IssueRequestDetailCreateReqVO issueRequestDetailCreateReqVO = new IssueRequestDetailCreateReqVO(); IssueRequestDetailCreateReqVO issueRequestDetailCreateReqVO = new IssueRequestDetailCreateReqVO();

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailService.java

@ -81,4 +81,5 @@ public interface ProductputawayJobDetailService {
*/ */
PageResult<ProductputawayJobDetailDO> getProductputawayJobDetailSeniorList(CustomConditions conditions); PageResult<ProductputawayJobDetailDO> getProductputawayJobDetailSeniorList(CustomConditions conditions);
List<ProductputawayJobDetailDO> selectList(Long id);
} }

5
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobDetailServiceImpl.java

@ -87,4 +87,9 @@ public class ProductputawayJobDetailServiceImpl implements ProductputawayJobDeta
public PageResult<ProductputawayJobDetailDO> getProductputawayJobDetailSeniorList(CustomConditions conditions) { public PageResult<ProductputawayJobDetailDO> getProductputawayJobDetailSeniorList(CustomConditions conditions) {
return productputawayJobDetailMapper.selectSenior(conditions); return productputawayJobDetailMapper.selectSenior(conditions);
} }
@Override
public List<ProductputawayJobDetailDO> selectList(Long masterId) {
return productputawayJobDetailMapper.selectList(masterId);
}
} }

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainService.java

@ -99,4 +99,13 @@ public interface ProductputawayJobMainService {
Map<String,Integer> getCountByStatus(@Nullable Collection<String> types); Map<String,Integer> getCountByStatus(@Nullable Collection<String> types);
List<ProductputawayJobMainDO> getProductputawayJobMainList(CustomConditions conditions);
Integer acceptProductputawayJobMain(Long id);
Integer abandonProductputawayJobMain(Long id);
Integer closeProductputawayJobMain(Long id);
String executeProductputawayJobMain(ProductputawayJobMainUpdateReqVO updateReqVO);
} }

249
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayJob/ProductputawayJobMainServiceImpl.java

@ -1,27 +1,55 @@
package com.win.module.wms.service.productputawayJob; package com.win.module.wms.service.productputawayJob;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; 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.CustomConditions;
import com.win.framework.common.pojo.PageResult; import com.win.framework.common.pojo.PageResult;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainCreateReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainCreateReqVO;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExportReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainExportReqVO;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainPageReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainPageReqVO;
import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainUpdateReqVO; import com.win.module.wms.controller.productputawayJob.vo.ProductputawayJobMainUpdateReqVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productputawayJob.ProductputawayJobMainConvert; import com.win.module.wms.convert.productputawayJob.ProductputawayJobMainConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobDetailDO;
import com.win.module.wms.dal.dataobject.issueJob.IssueJobMainDO;
import com.win.module.wms.dal.dataobject.issueRecord.IssueRecordDetailDO;
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.productputawayJob.ProductputawayJobDetailDO;
import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO; import com.win.module.wms.dal.dataobject.productputawayJob.ProductputawayJobMainDO;
import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRecord.ProductputawayRecordMainDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobMainMapper; import com.win.module.wms.dal.mysql.productputawayJob.ProductputawayJobMainMapper;
import com.win.module.wms.dal.mysql.productputawayRecord.ProductputawayRecordDetailMapper;
import com.win.module.wms.dal.mysql.productputawayRecord.ProductputawayRecordMainMapper;
import com.win.module.wms.enums.job.JobStatusState;
import com.win.module.wms.service.expectin.ExpectinService;
import com.win.module.wms.service.expectout.ExpectoutService;
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 org.springframework.transaction.annotation.Transactional;
import org.springframework.validation.annotation.Validated; import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.Collection; import java.math.BigDecimal;
import java.util.HashMap; import java.time.LocalDateTime;
import java.util.List; import java.util.*;
import java.util.Map;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception; import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_JOB_MAIN_NOT_EXISTS; import static com.win.framework.security.core.util.SecurityFrameworkUtils.getLoginUserId;
import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR; import static com.win.module.wms.enums.ErrorCodeConstants.*;
/** /**
* 制品上架任务主 Service 实现类 * 制品上架任务主 Service 实现类
@ -32,6 +60,30 @@ import static com.win.module.wms.enums.ErrorCodeConstants.PRODUCTPUTAWAY_JOB_MAI
@Validated @Validated
public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainService { public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainService {
@Resource
private ExpectinService expectinService;
@Resource
private ExpectoutService expectoutService;
@Resource
private TransactionService transactionService;
@Resource
private ProductputawayRecordDetailMapper productputawayRecordDetailMapper;
@Resource
private LocationService locationService;
@Resource
private ProductputawayRecordMainMapper productputawayRecordMainMapper;
@Resource
private JobUtils jobUtils;
@Resource
private RecordsettingService recordsettingService;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private ProductputawayJobDetailService productputawayJobDetailService;
@Resource
private TrendsApi trendsApi;
@Resource
private AdminUserApi userApi;
@Resource @Resource
private ProductputawayJobMainMapper productputawayJobMainMapper; private ProductputawayJobMainMapper productputawayJobMainMapper;
@ -61,10 +113,12 @@ public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainSe
productputawayJobMainMapper.deleteById(id); productputawayJobMainMapper.deleteById(id);
} }
private void validateProductputawayJobMainExists(Long id) { private ProductputawayJobMainDO validateProductputawayJobMainExists(Long id) {
if (productputawayJobMainMapper.selectById(id) == null) { ProductputawayJobMainDO productputawayJobMainDO = productputawayJobMainMapper.selectById(id);
if (productputawayJobMainDO == null) {
throw exception(PRODUCTPUTAWAY_JOB_MAIN_NOT_EXISTS); throw exception(PRODUCTPUTAWAY_JOB_MAIN_NOT_EXISTS);
} }
return productputawayJobMainDO;
} }
@Override @Override
@ -112,4 +166,183 @@ public class ProductputawayJobMainServiceImpl implements ProductputawayJobMainSe
map.put("count", l.intValue()); map.put("count", l.intValue());
return map; return map;
} }
@Override
public List<ProductputawayJobMainDO> getProductputawayJobMainList(CustomConditions conditions) {
return productputawayJobMainMapper.selectSeniorList(conditions);
}
@Override
@Transactional
public Integer acceptProductputawayJobMain(Long id) {
ProductputawayJobMainDO productputawayJobMainDO = this.validateProductputawayJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(productputawayJobMainDO.getStatus());
if(!jobStatusState.accept()) {
throw exception(PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR);
}
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
productputawayJobMainDO.setStatus(jobStatusState.getState().getCode());
productputawayJobMainDO.setAcceptUserId(String.valueOf(userId));
productputawayJobMainDO.setAcceptUserName(userRespDTO.getNickname());
productputawayJobMainDO.setAcceptTime(LocalDateTime.now());
trendsApi.createTrends(id, "productputawayJob", "承接了制品上架任务", TrendsTypeEnum.UPDATE);
return productputawayJobMainMapper.updateById(productputawayJobMainDO);
}
@Override
@Transactional
public Integer abandonProductputawayJobMain(Long id) {
ProductputawayJobMainDO productputawayJobMainDO = this.validateProductputawayJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(productputawayJobMainDO.getStatus());
if(!jobStatusState.cancelAccept()) {
throw exception(PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR);
}
productputawayJobMainDO.setStatus(jobStatusState.getState().getCode());
productputawayJobMainDO.setAcceptUserId(null);
productputawayJobMainDO.setAcceptUserName(null);
productputawayJobMainDO.setAcceptTime(null);
trendsApi.createTrends(id, "productputawayJob", "取消了制品上架任务", TrendsTypeEnum.UPDATE);
return productputawayJobMainMapper.updateById(productputawayJobMainDO);
}
@Override
@Transactional
public Integer closeProductputawayJobMain(Long id) {
ProductputawayJobMainDO productputawayJobMainDO = this.validateProductputawayJobMainExists(id);
JobStatusState jobStatusState = new JobStatusState(productputawayJobMainDO.getStatus());
if(!jobStatusState.close()) {
throw exception(PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR);
}
productputawayJobMainDO.setStatus(jobStatusState.getState().getCode());
trendsApi.createTrends(id, "productputawayJob", "关闭了制品上架任务", TrendsTypeEnum.UPDATE);
return productputawayJobMainMapper.updateById(productputawayJobMainDO);
}
@Override
@Transactional
public String executeProductputawayJobMain(ProductputawayJobMainUpdateReqVO updateReqVO) {
//查询数据
ProductputawayJobMainDO productputawayJobMainDO = this.validateProductputawayJobMainExists(updateReqVO.getId());
List<ProductputawayJobDetailDO> subList = productputawayJobDetailService.selectList(productputawayJobMainDO.getId());
JobStatusState jobStatusState = new JobStatusState(productputawayJobMainDO.getStatus());
boolean flag = jobStatusState.execute();
if(!flag) {
throw new ServiceException(PRODUCTPUTAWAY_JOB_MAIN_STATUS_ERROR);
}
//更新完成信息
Long userId = getLoginUserId();
AdminUserRespDTO userRespDTO = userApi.getUser(userId);
productputawayJobMainDO.setStatus(jobStatusState.getState().getCode());
productputawayJobMainDO.setCompletetime(LocalDateTime.now());
productputawayJobMainDO.setCompleteUserId(String.valueOf(userRespDTO.getId()));
productputawayJobMainDO.setCompleteUserName(userRespDTO.getNickname());
//更新任务表状态
int result = productputawayJobMainMapper.updateById(productputawayJobMainDO);
// 创建 记录 主表
ProductputawayRecordMainDO productputawayRecordMainDO = new ProductputawayRecordMainDO();
BeanUtils.copyProperties(productputawayJobMainDO, productputawayRecordMainDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_RECEIPT_RECORD.getCode());
productputawayRecordMainDO.setNumber(number);
productputawayRecordMainDO.setJobNumber(productputawayJobMainDO.getNumber());
productputawayRecordMainDO.setRequestNumber(productputawayJobMainDO.getRequestNumber());
productputawayRecordMainDO.setExecuteTime(LocalDateTime.now());
productputawayRecordMainDO.setActiveDate(LocalDateTime.now());
productputawayRecordMainDO.setAvailable("TRUE");
productputawayRecordMainDO.setDueTime(productputawayJobMainDO.getRequestDueTime());
// 接口类型
productputawayRecordMainDO.setInterfaceType(recordsettingService.selectRecordsettingExist("MaterialReturnRecord").getInterfaceType());
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductPutawayRecord");
productputawayRecordMainDO.setOutTransactionType(businesstypeDO.getOutTransactionType());
productputawayRecordMainDO.setInTransactionType(businesstypeDO.getInTransactionType());
productputawayRecordMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
productputawayRecordMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
productputawayRecordMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
productputawayRecordMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
productputawayRecordMainDO.setBusinessType(businesstypeDO.getCode());
productputawayRecordMainDO.setId(null);
productputawayRecordMainDO.setCreator(null);
productputawayRecordMainDO.setCreateTime(null);
productputawayRecordMainDO.setUpdater(null);
productputawayRecordMainDO.setUpdateTime(null);
productputawayRecordMainMapper.insert(productputawayRecordMainDO);
//记录子
List<ProductputawayRecordDetailDO> productputawayRecordDetailDOList = new ArrayList<>();
//库存事务
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>();
for(ProductputawayJobDetailDO productputawayJobDetailDO :subList) {
ProductputawayRecordDetailDO productputawayRecordDetailDO = new ProductputawayRecordDetailDO();
BeanUtils.copyProperties(productputawayJobDetailDO, productputawayRecordDetailDO);
productputawayRecordDetailDO.setFromPackingNumber(productputawayJobDetailDO.getPackingNumber());
productputawayRecordDetailDO.setToPackingNumber(productputawayJobDetailDO.getPackingNumber());
productputawayRecordDetailDO.setFromBatch(productputawayJobDetailDO.getBatch());
productputawayRecordDetailDO.setToBatch(productputawayJobDetailDO.getBatch());
productputawayRecordDetailDO.setFromContainerNumber(productputawayJobDetailDO.getContainerNumber());
productputawayRecordDetailDO.setToContainerNumber(productputawayJobDetailDO.getContainerNumber());
// 根据 to库位 查询 库位组 库区
LocationDO locationDO = locationService.selectLocation(productputawayJobDetailDO.getToLocationCode());
productputawayRecordDetailDO.setToLocationGroupCode(locationDO.getLocationGroupCode());
productputawayRecordDetailDO.setToAreaCode(locationDO.getAreaCode());
// 根据 from库位 查询 库位组 库区
LocationDO locationDOFrom = locationService.selectLocation(productputawayJobDetailDO.getFromLocationCode());
productputawayRecordDetailDO.setFromLocationGroupCode(locationDOFrom.getLocationGroupCode());
productputawayRecordDetailDO.setFromAreaCode(locationDOFrom.getAreaCode());
productputawayRecordDetailDO.setId(null);
productputawayRecordDetailDO.setCreator(null);
productputawayRecordDetailDO.setCreateTime(null);
productputawayRecordDetailDO.setUpdater(null);
productputawayRecordDetailDO.setUpdateTime(null);
productputawayRecordDetailDOList.add(productputawayRecordDetailDO);
//添加库存事务list
// 入动作
TransactionCreateReqVO transactionCreateReqVO = new TransactionCreateReqVO();
BeanUtils.copyProperties(productputawayRecordDetailDO, transactionCreateReqVO);
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVO.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVO.setInventoryAction(transactiontypeDO.getInventoryAction());
transactionCreateReqVO.setTransactionType(transactiontypeDO.getCode());
transactionCreateReqVO.setBusinessType(productputawayRecordMainDO.getBusinessType());
transactionCreateReqVO.setOwnerCode(productputawayRecordDetailDO.getToOwnerCode());
transactionCreateReqVO.setRecordNumber(number);
transactionCreateReqVO.setId(null);
transactionCreateReqVO.setPackingNumber(productputawayRecordDetailDO.getToPackingNumber());
transactionCreateReqVO.setBatch(productputawayRecordDetailDO.getToBatch());
transactionCreateReqVO.setContainerNumber(productputawayRecordDetailDO.getToContainerNumber());
transactionCreateReqVO.setAmount(BigDecimal.ZERO);
transactionCreateReqVO.setWarehouseCode(productputawayRecordMainDO.getToWarehouseCode());
transactionCreateReqVO.setLocationCode(productputawayRecordDetailDO.getToLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVO);
// 出动作
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO();
BeanUtils.copyProperties(productputawayRecordDetailDO, transactionCreateReqVOOut);
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType());
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId()));
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction());
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode());
transactionCreateReqVOOut.setBusinessType(productputawayRecordMainDO.getBusinessType());
transactionCreateReqVOOut.setOwnerCode(productputawayRecordDetailDO.getFromOwnerCode());
transactionCreateReqVOOut.setRecordNumber(number);
transactionCreateReqVOOut.setId(null);
transactionCreateReqVOOut.setPackingNumber(productputawayRecordDetailDO.getFromPackingNumber());
transactionCreateReqVOOut.setBatch(productputawayRecordDetailDO.getFromBatch());
transactionCreateReqVOOut.setContainerNumber(productputawayRecordDetailDO.getFromContainerNumber());
transactionCreateReqVOOut.setAmount(BigDecimal.ZERO);
transactionCreateReqVOOut.setWarehouseCode(productputawayRecordMainDO.getFromWarehouseCode());
transactionCreateReqVOOut.setLocationCode(productputawayRecordDetailDO.getFromLocationCode());
transactionCreateReqVOList.add(transactionCreateReqVOOut);
}
if(productputawayRecordDetailDOList != null && productputawayRecordDetailDOList.size() > 0) {
productputawayRecordDetailMapper.insertBatch(productputawayRecordDetailDOList);
}
//增加库存事务
transactionService.createTransaction(transactionCreateReqVOList);
//移除预计入
expectinService.deleteExpectinByJobNumber(productputawayJobMainDO.getNumber());
//移除预计出
expectoutService.deleteExpectoutByJobNumber(productputawayJobMainDO.getNumber());
//变更记录
trendsApi.createTrends(productputawayJobMainDO.getId(), "productputawayJob", "执行了制品上架任务", TrendsTypeEnum.UPDATE);
return number;
}
} }

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java

@ -622,8 +622,8 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
RuleRespVO ruleRespVO = ruleService.grounding(null,null, productputawayJobDetailDO.getItemCode(),null,null,null,null,null,null); RuleRespVO ruleRespVO = ruleService.grounding(null,null, productputawayJobDetailDO.getItemCode(),null,null,null,null,null,null);
LocationDO locationDO = locationService.inspectLocation(ruleRespVO, productputawayJobDetailDO.getItemCode(), productputawayJobDetailDO.getBatch(), productputawayJobDetailDO.getInventoryStatus()); LocationDO locationDO = locationService.inspectLocation(ruleRespVO, productputawayJobDetailDO.getItemCode(), productputawayJobDetailDO.getBatch(), productputawayJobDetailDO.getInventoryStatus());
productputawayJobDetailDO.setToLocationCode(locationDO.getCode()); productputawayJobDetailDO.setToLocationCode(locationDO.getCode());
productputawayJobDetailDO.setNumber(mainDO.getNumber()); productputawayJobDetailDO.setNumber(productputawayJobMainDO.getNumber());
productputawayJobDetailDO.setMasterId(mainDO.getId()); productputawayJobDetailDO.setMasterId(productputawayJobMainDO.getId());
productputawayJobDetailDO.setId(null); productputawayJobDetailDO.setId(null);
productputawayJobDetailDO.setCreateTime(null); productputawayJobDetailDO.setCreateTime(null);
productputawayJobDetailDO.setCreator(null); productputawayJobDetailDO.setCreator(null);
@ -634,7 +634,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO(); ExpectinCreateReqVO expectinCreateReqVO = new ExpectinCreateReqVO();
BeanUtils.copyProperties(productputawayJobDetailDO, expectinCreateReqVO); BeanUtils.copyProperties(productputawayJobDetailDO, expectinCreateReqVO);
expectinCreateReqVO.setJobNumber(number); expectinCreateReqVO.setJobNumber(number);
expectinCreateReqVO.setBusinessType(mainDO.getBusinessType()); expectinCreateReqVO.setBusinessType(productputawayJobMainDO.getBusinessType());
expectinCreateReqVO.setLocationCode(productputawayJobDetailDO.getToLocationCode()); expectinCreateReqVO.setLocationCode(productputawayJobDetailDO.getToLocationCode());
expectinCreateReqVO.setOwnerCode(productputawayJobDetailDO.getToOwnerCode()); expectinCreateReqVO.setOwnerCode(productputawayJobDetailDO.getToOwnerCode());
expectinCreateReqVOList.add(expectinCreateReqVO); expectinCreateReqVOList.add(expectinCreateReqVO);
@ -642,7 +642,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO(); ExpectoutCreateReqVO expectoutCreateReqVO = new ExpectoutCreateReqVO();
BeanUtils.copyProperties(productputawayJobDetailDO, expectoutCreateReqVO); BeanUtils.copyProperties(productputawayJobDetailDO, expectoutCreateReqVO);
expectoutCreateReqVO.setJobNumber(number); expectoutCreateReqVO.setJobNumber(number);
expectoutCreateReqVO.setBusinessType(mainDO.getBusinessType()); expectoutCreateReqVO.setBusinessType(productputawayJobMainDO.getBusinessType());
expectoutCreateReqVO.setLocationCode(productputawayJobDetailDO.getFromLocationCode()); expectoutCreateReqVO.setLocationCode(productputawayJobDetailDO.getFromLocationCode());
expectoutCreateReqVO.setOwnerCode(productputawayJobDetailDO.getFromOwnerCode()); expectoutCreateReqVO.setOwnerCode(productputawayJobDetailDO.getFromOwnerCode());
expectoutCreateReqVOList.add(expectoutCreateReqVO); expectoutCreateReqVOList.add(expectoutCreateReqVO);

Loading…
Cancel
Save