Browse Source

库存转移库存初始化

master
廉洪喜 2 years ago
parent
commit
884311cde3
  1. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainUpdateReqVO.java
  2. 16
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/InventorymoveRequestMainController.java
  3. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailBaseVO.java
  4. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainBaseVO.java
  5. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExcelVO.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExportReqVO.java
  7. 46
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java
  8. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainPageReqVO.java
  9. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainUpdateReqVO.java
  10. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestDetailConvert.java
  11. 18
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java
  12. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestDetailConvert.java
  13. 19
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestMainConvert.java
  14. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRequest/InventorymoveRequestMainDO.java
  15. 4
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestMainMapper.java
  16. 279
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java
  17. 86
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailServiceImpl.java
  18. 327
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestMainServiceImpl.java
  19. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productputawayRequest/ProductputawayRequestMainServiceImpl.java

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainUpdateReqVO.java

@ -1,12 +1,18 @@
package com.win.module.wms.controller.inventoryinitRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 库存初始化申请主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class InventoryinitRequestMainUpdateReqVO extends InventoryinitRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<InventoryinitRequestDetailUpdateReqVO> subList;
}

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

@ -3,6 +3,7 @@ package com.win.module.wms.controller.inventorymoveRequest;
import com.win.framework.common.pojo.CommonResult;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.framework.excel.core.util.ConvertUtil;
import com.win.framework.excel.core.util.ExcelUtils;
import com.win.framework.operatelog.core.annotations.OperateLog;
@ -11,6 +12,7 @@ import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inventorymoveRequest.vo.*;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.inventorymoveRequest.InventorymoveRequestMainService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.Parameter;
@ -125,21 +127,19 @@ public class InventorymoveRequestMainController {
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入发货计划信息模板")
@Operation(summary = "获得导入库存转移信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
// 手动创建导出 demo
List<InventorymoveRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
// String[] purchaseReturnReason = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.PURCHASE_RETURN_REASON);
// mapDropDown.put(16, purchaseReturnReason);
// String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
// mapDropDown.put(25, uom);
String[] fromInventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(5, fromInventoryStatus);
// 输出
ExcelUtils.write(response, "发货计划信息导入模板.xlsx", "发货计划信息列表", InventorymoveRequestMainImportVO.class, list, mapDropDown);
ExcelUtils.write(response, "库存转移信息导入模板.xlsx", "库存转移信息列表", InventorymoveRequestMainImportVO.class, list, mapDropDown);
}
@PostMapping("/import")
@Operation(summary = "导入发货计划")
@Operation(summary = "导入库存转移")
@Parameters({
@Parameter(name = "file", description = "Excel 文件", required = true),
@Parameter(name = "mode", description = "导入模式1更新2追加3覆盖", example = "1"),
@ -157,7 +157,7 @@ public class InventorymoveRequestMainController {
Map<String, Object> returnMap = new HashMap<>();
returnMap.put("errorCount", errorList.size());
if(!errorList.isEmpty()) {
String url = ExcelUtils.writeLocalFile("发货计划基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
String url = ExcelUtils.writeLocalFile("库存转移基本信息导入错误数据" + LocalDateTime.now().toEpochSecond(ZoneOffset.of("+8")) + ".xlsx", "错误列表", errorList);
returnMap.put("errorFile", url);
}
return success(returnMap);

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestDetailBaseVO.java

@ -47,14 +47,12 @@ public class InventorymoveRequestDetailBaseVO {
private String toOwnerCode;
@Schema(description = "到包装号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到包装号不能为空")
private String toPackingNumber;
@Schema(description = "到器具号")
private String toContainerNumber;
@Schema(description = "到批次", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到批次不能为空")
private String toBatch;
@Schema(description = "到库位代码", requiredMode = Schema.RequiredMode.REQUIRED)
@ -62,7 +60,6 @@ public class InventorymoveRequestDetailBaseVO {
private String toLocationCode;
@Schema(description = "到库存状态", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到库存状态不能为空")
private String toInventoryStatus;
@Schema(description = "单据号")
@ -72,7 +69,6 @@ public class InventorymoveRequestDetailBaseVO {
private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@ -108,4 +104,6 @@ public class InventorymoveRequestDetailBaseVO {
@NotNull(message = "物品代码不能为空")
private String itemCode;
@Schema(description = "master_id", example = "master_id")
private Long masterId;
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainBaseVO.java

@ -1,5 +1,6 @@
package com.win.module.wms.controller.inventorymoveRequest.vo;
import com.win.framework.excel.core.annotations.OnlyOne;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.*;
@ -23,18 +24,16 @@ public class InventorymoveRequestMainBaseVO {
private Long id;
@Schema(description = "单据号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "单据号不能为空")
@OnlyOne
private String number;
@Schema(description = "业务类型", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "业务类型不能为空")
private String businessType;
@Schema(description = "备注")
private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@ -50,7 +49,6 @@ public class InventorymoveRequestMainBaseVO {
private LocalDateTime dueTime;
@Schema(description = "部门", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "部门不能为空")
private String departmentCode;
@Schema(description = "状态")
@ -64,23 +62,18 @@ public class InventorymoveRequestMainBaseVO {
private String updater;
@Schema(description = "从仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从仓库代码不能为空")
private String fromWarehouseOde;
private String fromWarehouseCode;
@Schema(description = "从库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库位类型范围不能为空")
private String fromLocationTypes;
@Schema(description = "从库区代码范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库区代码范围不能为空")
private String fromAreaCodes;
@Schema(description = "到仓库代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到仓库代码不能为空")
private String toWarehouseCode;
@Schema(description = "到库位类型范围", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "到库位类型范围不能为空")
private String toLocationTypes;
@Schema(description = "到库区代码范围")

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExcelVO.java

@ -56,7 +56,7 @@ public class InventorymoveRequestMainExcelVO {
private String updater;
@ExcelProperty("从仓库代码")
private String fromWarehouseOde;
private String fromWarehouseCode;
@ExcelProperty(value = "从库位类型范围", converter = DictConvert.class)
@DictFormat("location_type") // TODO 代码优化:建议设置到对应的 XXXDictTypeConstants 枚举类中

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainExportReqVO.java

@ -51,7 +51,7 @@ public class InventorymoveRequestMainExportReqVO {
private String updater;
@Schema(description = "从仓库代码")
private String fromWarehouseOde;
private String fromWarehouseCode;
@Schema(description = "从库位类型范围")
private String fromLocationTypes;

46
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainImportVO.java

@ -2,6 +2,9 @@ package com.win.module.wms.controller.inventorymoveRequest.vo;
import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.win.framework.excel.core.annotations.DictFormat;
import com.win.framework.excel.core.convert.DictConvert;
import com.win.module.wms.enums.DictTypeConstants;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
@ -23,42 +26,31 @@ import java.time.LocalDateTime;
public class InventorymoveRequestMainImportVO {
//主表数据
@ExcelProperty("订单类型")
private String type;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("行号")
private String hang;
@ExcelProperty("供应商代码")
private String supplierCode;
//子表数据
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("联系人姓名")
private String contactName;
@ExcelProperty("从包装号")
private String fromPackingNumber;
@ExcelProperty("联系人电话")
@ColumnWidth(value = 16)
private String contactPhone;
@ExcelProperty("从器具号")
private String fromContainerNumber;
@ExcelProperty("联系人电子邮件")
@ColumnWidth(value = 16)
private String contactEmail;
@ExcelProperty("从批次")
private String fromBatch;
@ExcelProperty("是否寄存订单")
private String isConsignment;
@ExcelProperty(value = "从库存状态", converter = DictConvert.class)
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
private String fromInventoryStatus;
@ExcelProperty("截止日期")
private LocalDateTime dueDate;
@ExcelProperty("从库位代码")
private String fromLocationCode;
//子表数据
@ExcelProperty("物品代码")
private String itemCode;
@ExcelProperty("数量")
private BigDecimal orderQty;
@ExcelProperty("计量单位")
private String uom;
@ExcelProperty("超收百分比")
private BigDecimal overReceivingPercent;
@ExcelProperty("到库位代码")
private String toLocationCode;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainPageReqVO.java

@ -53,7 +53,7 @@ public class InventorymoveRequestMainPageReqVO extends PageParam {
private String updater;
@Schema(description = "从仓库代码")
private String fromWarehouseOde;
private String fromWarehouseCode;
@Schema(description = "从库位类型范围")
private String fromLocationTypes;

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventorymoveRequest/vo/InventorymoveRequestMainUpdateReqVO.java

@ -1,12 +1,20 @@
package com.win.module.wms.controller.inventorymoveRequest.vo;
import com.win.framework.excel.core.annotations.SubObject;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.*;
import java.util.List;
@Schema(description = "管理后台 - 库存转移申请主更新 Request VO")
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class InventorymoveRequestMainUpdateReqVO extends InventorymoveRequestMainBaseVO {
@SubObject
@Schema(description = "子表数据")
private List<InventorymoveRequestDetailUpdateReqVO> subList;
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestDetailConvert.java

@ -3,6 +3,7 @@ package com.win.module.wms.convert.inventoryinitRequest;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventoryinitRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailExcelVO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
@ -50,6 +51,8 @@ public interface InventoryinitRequestDetailConvert {
List<InventoryinitRequestDetailRespVO> convertList(List<InventoryinitRequestDetailDO> list);
List<InventoryinitRequestDetailDO> convertList05(List<InventoryinitRequestDetailUpdateReqVO> list);
PageResult<InventoryinitRequestDetailRespVO> convertPage(PageResult<InventoryinitRequestDetailDO> page);
List<InventoryinitRequestDetailExcelVO> convertList02(List<InventoryinitRequestDetailDO> list);

18
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java

@ -4,11 +4,15 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainCreateReqVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainExcelVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainRespVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainUpdateReqVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainCreateReqVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO;
@ -25,9 +29,15 @@ public interface InventoryinitRequestMainConvert {
InventoryinitRequestMainDO convert(InventoryinitRequestMainCreateReqVO bean);
InventoryinitRequestMainDO convert(InventoryinitRequestMainUpdateReqVO bean);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
InventoryinitRequestMainImportErrorVO convert(InventoryinitRequestMainCreateReqVO mainVo, InventoryinitRequestDetailDO detailDo);
InventoryinitRequestMainRespVO convert(InventoryinitRequestMainDO bean);
InventoryinitRequestMainDO convert1(InventoryinitRequestMainUpdateReqVO bean);
List<InventoryinitRequestMainRespVO> convertList(List<InventoryinitRequestMainDO> list);
PageResult<InventoryinitRequestMainRespVO> convertPage(PageResult<InventoryinitRequestMainDO> page);

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestDetailConvert.java

@ -2,8 +2,12 @@ package com.win.module.wms.convert.inventorymoveRequest;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventorymoveRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO;
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.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
@ -23,8 +27,12 @@ public interface InventorymoveRequestDetailConvert {
InventorymoveRequestDetailDO convert(InventorymoveRequestDetailCreateReqVO bean);
InventorymoveRequestDetailDO convert(InventorymoveRequestDetailBaseVO bean);
InventorymoveRequestDetailDO convert(InventorymoveRequestDetailUpdateReqVO bean);
List<InventorymoveRequestDetailDO> convertList05(List<InventorymoveRequestDetailUpdateReqVO> list);
InventorymoveRequestDetailRespVO convert(InventorymoveRequestDetailDO bean);
List<InventorymoveRequestDetailRespVO> convertList(List<InventorymoveRequestDetailDO> list);

19
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventorymoveRequest/InventorymoveRequestMainConvert.java

@ -4,11 +4,16 @@ import java.util.*;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainCreateReqVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainExcelVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainRespVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestMainUpdateReqVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import org.mapstruct.Mapper;
import org.mapstruct.Mapping;
import org.mapstruct.Mappings;
import org.mapstruct.factory.Mappers;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
@ -22,6 +27,8 @@ public interface InventorymoveRequestMainConvert {
InventorymoveRequestMainConvert INSTANCE = Mappers.getMapper(InventorymoveRequestMainConvert.class);
InventorymoveRequestMainDO convert( InventorymoveRequestMainBaseVO bean);
InventorymoveRequestMainDO convert(InventorymoveRequestMainCreateReqVO bean);
InventorymoveRequestMainDO convert(InventorymoveRequestMainUpdateReqVO bean);
@ -33,5 +40,9 @@ public interface InventorymoveRequestMainConvert {
PageResult<InventorymoveRequestMainRespVO> convertPage(PageResult<InventorymoveRequestMainDO> page);
List<InventorymoveRequestMainExcelVO> convertList02(List<InventorymoveRequestMainDO> list);
@Mappings({
@Mapping(source = "mainVo.number", target = "number"),
})
InventorymoveRequestMainImportErrorVO convert(InventorymoveRequestMainCreateReqVO mainVo, InventorymoveRequestDetailDO detailDo);
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/inventorymoveRequest/InventorymoveRequestMainDO.java

@ -77,7 +77,7 @@ public class InventorymoveRequestMainDO extends BaseDO {
/**
* 从仓库代码
*/
private String fromWarehouseOde;
private String fromWarehouseCode;
/**
* 从库位类型范围
*

4
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventorymoveRequest/InventorymoveRequestMainMapper.java

@ -33,7 +33,7 @@ public interface InventorymoveRequestMainMapper extends BaseMapperX<Inventorymov
.eqIfPresent(InventorymoveRequestMainDO::getStatus, reqVO.getStatus())
.betweenIfPresent(InventorymoveRequestMainDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(InventorymoveRequestMainDO::getUpdater, reqVO.getUpdater())
.eqIfPresent(InventorymoveRequestMainDO::getFromWarehouseOde, reqVO.getFromWarehouseOde())
.eqIfPresent(InventorymoveRequestMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode())
.eqIfPresent(InventorymoveRequestMainDO::getFromLocationTypes, reqVO.getFromLocationTypes())
.eqIfPresent(InventorymoveRequestMainDO::getFromAreaCodes, reqVO.getFromAreaCodes())
.eqIfPresent(InventorymoveRequestMainDO::getToWarehouseCode, reqVO.getToWarehouseCode())
@ -62,7 +62,7 @@ public interface InventorymoveRequestMainMapper extends BaseMapperX<Inventorymov
.eqIfPresent(InventorymoveRequestMainDO::getStatus, reqVO.getStatus())
.betweenIfPresent(InventorymoveRequestMainDO::getUpdateTime, reqVO.getUpdateTime())
.eqIfPresent(InventorymoveRequestMainDO::getUpdater, reqVO.getUpdater())
.eqIfPresent(InventorymoveRequestMainDO::getFromWarehouseOde, reqVO.getFromWarehouseOde())
.eqIfPresent(InventorymoveRequestMainDO::getFromWarehouseCode, reqVO.getFromWarehouseCode())
.eqIfPresent(InventorymoveRequestMainDO::getFromLocationTypes, reqVO.getFromLocationTypes())
.eqIfPresent(InventorymoveRequestMainDO::getFromAreaCodes, reqVO.getFromAreaCodes())
.eqIfPresent(InventorymoveRequestMainDO::getToWarehouseCode, reqVO.getToWarehouseCode())

279
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java

@ -1,17 +1,31 @@
package com.win.module.wms.service.inventoryinitRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
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.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayImportErrorVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestDetailCreateReqVO;
import com.win.module.wms.controller.purchaseclaimRequest.vo.PurchaseclaimRequestImportErrorVO;
import com.win.module.wms.controller.purchasereceiptRequest.vo.PurchasereceiptRequestMainImportErrorVO;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert;
import com.win.module.wms.convert.purchaseclaimRequest.PurchaseclaimRequestDetailConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestDetailConvert;
import com.win.module.wms.convert.purchasereceiptRequest.PurchasereceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.util.*;
import com.win.module.wms.service.requestsetting.*;
import com.win.framework.common.pojo.CustomConditions;
@ -33,6 +47,8 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.validation.Validator;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.service.itembasic.*;
import com.win.module.wms.service.location.*;
@ -53,10 +69,14 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
@Resource
private InventoryinitRequestMainMapper inventoryinitRequestMainMapper;
@Resource
private TrendsApi trendsApi;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private Validator validator;
@Resource
private RequestsettingService requestsettingService;
@ -80,21 +100,73 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
@Override
public Long createInventoryinitRequestMain(InventoryinitRequestMainCreateReqVO createReqVO) {
// 插入
InventoryinitRequestMainDO inventoryinitRequestMain = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
inventoryinitRequestMainMapper.insert(inventoryinitRequestMain);
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
InventoryinitRequestMainDO mainDO = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
this.validateInventoryinitRequestMainCreate(mainDO);
List<InventoryinitRequestDetailDO> subDOList = InventoryinitRequestDetailConvert.INSTANCE.convertList03(createReqVO.getSubList());
for (InventoryinitRequestDetailDO detailDO : subDOList) {
this.validatePurchasereceiptRequestDetailCreate(detailDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDO.setNumber(number);
inventoryinitRequestMainMapper.insert(mainDO);
for (InventoryinitRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
}
inventoryinitRequestDetailMapper.insertBatch(subDOList);
trendsApi.createTrends(requestsettingDO.getId(), "inventoryinitRequestMain", "增加了库存初始化申请", TrendsTypeEnum.CREATE);
// 返回
return inventoryinitRequestMain.getId();
return mainDO.getId();
}
private InventoryinitRequestMainDO validateInventoryinitRequestMainCreate(InventoryinitRequestMainDO mainDo) {
mainDo.setCreateTime(LocalDateTime.now());
validaterequestsetting(mainDo);
validateBusinesstype(mainDo);
return mainDo;
}
private void validatePurchasereceiptRequestDetailCreate(InventoryinitRequestDetailDO detailDo) {
detailDo = validateItem(detailDo);
detailDo = validateLocation(detailDo);
detailDo = validitempackaging(detailDo);
}
@Override
public void updateInventoryinitRequestMain(InventoryinitRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
// 校验存在
validateInventoryinitRequestMainExists(updateReqVO.getId());
// 更新
InventoryinitRequestMainDO updateObj = InventoryinitRequestMainConvert.INSTANCE.convert(updateReqVO);
inventoryinitRequestMainMapper.updateById(updateObj);
InventoryinitRequestMainDO inventoryinitRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(inventoryinitRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "InventoryinitRequest", "增加了库存初始化申请", TrendsTypeEnum.CREATE);
}
private InventoryinitRequestMainDO validatorToUpdate(InventoryinitRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
InventoryinitRequestMainDO mainDo = InventoryinitRequestMainConvert.INSTANCE.convert1(updateReqVO);
mainDo = validateInventoryinitRequestMainCreate(mainDo);
List<InventoryinitRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(!subList.isEmpty()) {
List<InventoryinitRequestDetailDO> subDOList = InventoryinitRequestDetailConvert.INSTANCE.convertList05(subList);
for (InventoryinitRequestDetailDO inventoryinitRequestDetailDO : subDOList) {
validatePurchasereceiptRequestDetailCreate(inventoryinitRequestDetailDO);
}
inventoryinitRequestDetailMapper.updateBatch(subDOList);
}
inventoryinitRequestMainMapper.updateById(mainDo);
return mainDo;
}
@Override
public void deleteInventoryinitRequestMain(Long id) {
// 校验存在
@ -140,9 +212,86 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
public List<InventoryinitRequestMainDO> getInventoryinitRequestMainList(InventoryinitRequestMainExportReqVO exportReqVO) {
return inventoryinitRequestMainMapper.selectList(exportReqVO);
}
private String validatePurchasereceiptRequestDetailImport(InventoryinitRequestMainDO mainDo, InventoryinitRequestDetailDO detailDo){
StringBuilder message = new StringBuilder();
try {
detailDo.setCreateTime(LocalDateTime.now());
detailDo = this.validateItem(detailDo);
} catch (Exception e) {
message.append(e.getMessage()).append(",");
}
try {
detailDo = this.validateLocation(detailDo);
} catch (Exception e) {
message.append(e.getMessage()).append(",");
}
try {
this.validitempackaging(detailDo);
} catch (Exception e) {
message.append(e.getMessage()).append(",");
}
return message.toString();
}
private InventoryinitRequestDetailDO validateLocation(InventoryinitRequestDetailDO detailDo) {
LocationDO location = locationService.selectLocation(detailDo.getLocationCode());
detailDo.setAreaCode(location.getAreaCode());
detailDo.setLocationCode(location.getCode());
detailDo.setLocationGroupCode(location.getLocationGroupCode());
return detailDo;
}
private InventoryinitRequestDetailDO validitempackaging(InventoryinitRequestDetailDO detailDo){
ItempackagingDO itempackaging = itempackagingService.selectItemPackagingExist(detailDo.getItemCode());
detailDo.setStdPackUnit(itempackaging.getStdPackUnit());
detailDo.setStdPackQty(itempackaging.getStdPackQty());
return detailDo;
}
private InventoryinitRequestDetailDO validateItem(InventoryinitRequestDetailDO detailDo) {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
detailDo.setItemName(itembasicDO.getName());
detailDo.setItemDesc1(itembasicDO.getDesc1());
detailDo.setItemDesc2(itembasicDO.getDesc2());
detailDo.setProjectCode(itembasicDO.getProject());
return detailDo;
}
private InventoryinitRequestMainDO validateBusinesstype( InventoryinitRequestMainDO mainDo) {
BusinesstypeDO businesstype = jobUtils.selectDocumentSettingFromBusinessType("InventoryInitialRequest");
mainDo.setBusinessType(businesstype.getCode());
return mainDo;
}
private InventoryinitRequestMainDO validaterequestsetting(InventoryinitRequestMainDO mainDo){
RequestsettingDO requestsetting = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
mainDo.setAutoAgree(requestsetting.getAutoAgree());
mainDo.setAutoCommit(requestsetting.getAutoCommit());
mainDo.setAutoExecute(requestsetting.getAutoExecute());
mainDo.setDirectCreateRecord(requestsetting.getDirectCreateRecord());
return mainDo;
}
private String validatePurchasereceiptRequestMainImport(InventoryinitRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
try {
mainDo.setCreateTime(LocalDateTime.now());
mainDo = validaterequestsetting(mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
mainDo = validateBusinesstype(mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
@Override
@Transactional
public List<InventoryinitRequestMainImportErrorVO> importInventoryinitRequestMainList(List<InventoryinitRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
@ -153,107 +302,37 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
datas.forEach(createReqVO -> {
String message = "";
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
boolean isError = false;
if(mode != null) {
try {
validatesInventoryinitRequestMainExists(null);
} catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
}
try {
RequestsettingDO requestsetting = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
createReqVO.setAutoAgree(requestsetting.getAutoAgree());
createReqVO.setAutoCommit(requestsetting.getAutoCommit());
createReqVO.setAutoExecute(requestsetting.getAutoExecute());
createReqVO.setDirectCreateRecord(requestsetting.getDirectCreateRecord());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
try {
BusinesstypeDO businesstype = jobUtils.selectDocumentSettingFromBusinessType("InventoryInitialRequest");
createReqVO.setBusinessType(businesstype.getCode());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
InventoryinitRequestMainDO mainDO = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = this.validatePurchasereceiptRequestMainImport(mainDO);
List<InventoryinitRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InventoryinitRequestDetailDO> subDOList = InventoryinitRequestDetailConvert.INSTANCE.convertList03(subList);
// 新增子表数据
// 是否有错误数据
boolean flag = true;
for (InventoryinitRequestDetailDO detailDO : subDOList) {
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
detailDO.setNumber(createReqVO.getNumber());
try{
LocationDO location = locationService.selectLocation(detailDO.getLocationCode());
detailDO.setAreaCode(location.getAreaCode());
detailDO.setLocationCode(location.getCode());
detailDO.setLocationGroupCode(location.getLocationGroupCode());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
try{
//TODO 传入的实体里没有itemcode detailDO.getItemCode()
ItembasicDO itembasic = itembasicService.selectItembasic(detailDO.getItemCode());
detailDO.setItemDesc1(itembasic.getDesc1());
detailDO.setItemDesc2(itembasic.getDesc2());
detailDO.setItemName(itembasic.getName());
detailDO.setUom(itembasic.getUom());
detailDO.setProjectCode(itembasic.getProject());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
try{
//TODO 传入的实体里没有itemcode detailDO.getItemCode()
ItempackagingDO itempackaging = itempackagingService.selectItemPackagingExist(detailDO.getItemCode());
detailDO.setStdPackUnit(itempackaging.getStdPackUnit());
detailDO.setStdPackQty(itempackaging.getStdPackQty());
}catch (Exception ex) {
isError = true;
message += ex.getMessage() + ",";
}
if(isError){
InventoryinitRequestMainImportErrorVO importVO = InventoryinitRequestDetailConvert.INSTANCE.convert(createReqVO,detailDO);
importVO.setImportStatus("失败");
importVO.setImportRemark(message.substring(0, message.length() - 1));
errorList.add(importVO);
}else{
if(mode != 3) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
createReqVO.setNumber(number);
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
InventoryinitRequestMainDO createObj = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
inventoryinitRequestMainMapper.insert(createObj);
inventoryinitRequestDetailMapper.insertBatch(subDOList);
}
else if( mode != 2){
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_CLAIM_RECORD.getCode());
createReqVO.setNumber(number);
detailDO.setNumber(createReqVO.getNumber());
detailDO.setMasterId(createReqVO.getId());
InventoryinitRequestMainDO createObj = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
inventoryinitRequestMainMapper.updateById(createObj);
inventoryinitRequestDetailMapper.updateBatch(subDOList);
String messageDetail = this.validatePurchasereceiptRequestDetailImport(mainDO, detailDO);
if (!messageMain.isEmpty() || !messageDetail.isEmpty()) {
InventoryinitRequestMainImportErrorVO importErrorVO = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO, detailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDO.setNumber(number);
mainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
inventoryinitRequestMainMapper.insert(mainDO);
trendsApi.createTrends(mainDO.getId(), "inventoryinitRequestMain", "导入了采购收货申请", TrendsTypeEnum.CREATE);
for (InventoryinitRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
}
inventoryinitRequestDetailMapper.insertBatch(subDOList);
}
});
//错误不为空并非部分更新,手工回滚
if(!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}

86
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventorymoveRequest/InventorymoveRequestDetailServiceImpl.java

@ -1,14 +1,29 @@
package com.win.module.wms.service.inventorymoveRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailCreateReqVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailExportReqVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailPageReqVO;
import com.win.module.wms.controller.inventorymoveRequest.vo.InventorymoveRequestDetailUpdateReqVO;
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.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inventorymoveRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert;
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.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
import java.time.LocalDateTime;
import java.util.*;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestDetailDO;
@ -32,15 +47,70 @@ public class InventorymoveRequestDetailServiceImpl implements InventorymoveReque
@Resource
private InventorymoveRequestDetailMapper inventorymoveRequestDetailMapper;
@Resource
private TrendsApi trendsApi;
@Override
public Long createInventorymoveRequestDetail(InventorymoveRequestDetailCreateReqVO createReqVO) {
// 插入
InventorymoveRequestDetailDO inventorymoveRequestDetail = InventorymoveRequestDetailConvert.INSTANCE.convert(createReqVO);
inventorymoveRequestDetailMapper.insert(inventorymoveRequestDetail);
// 返回
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest");
InventorymoveRequestDetailDO inventorymoveRequestDetail = validatorToCreate(createReqVO,requestsettingDO);
//调用自动执行方法
trendsApi.createTrends(requestsettingDO.getId(), "MoveRequest", "增加了库存转移申请", TrendsTypeEnum.CREATE);
return inventorymoveRequestDetail.getId();
}
@Resource
private ItembasicService itembasicService;
@Resource
private JobUtils jobUtils;
@Resource
private SerialNumberApi serialNumberApi;
@Resource
private RequestsettingService requestsettingService;
private ItembasicDO validteitem(InventorymoveRequestDetailDO detailDo) {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
return itembasicDO;
}
private InventorymoveRequestDetailDO validatorToCreate(InventorymoveRequestDetailCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest");
InventorymoveRequestDetailDO inventorymoveRequestDetailDO = validateDetailMethod(createReqVO,businesstypeDO);
String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_REQUEST.getCode());
inventorymoveRequestDetailDO.setNumber(number);
inventorymoveRequestDetailDO.setMasterId(createReqVO.getMasterId());
inventorymoveRequestDetailMapper.insert(inventorymoveRequestDetailDO);
return inventorymoveRequestDetailDO;
}
private InventorymoveRequestDetailDO validateDetailMethod(InventorymoveRequestDetailBaseVO baseVO, BusinesstypeDO businesstypeDO ) {
InventorymoveRequestDetailDO inventorymoveRequestDetailDO = InventorymoveRequestDetailConvert.INSTANCE.convert(baseVO);
inventorymoveRequestDetailDO.setCreateTime(LocalDateTime.now());
ItembasicDO itembasic = validteitem(inventorymoveRequestDetailDO);
inventorymoveRequestDetailDO.setItemDesc1(itembasic.getDesc1());
inventorymoveRequestDetailDO.setItemDesc2(itembasic.getDesc2());
inventorymoveRequestDetailDO.setItemName(itembasic.getName());
inventorymoveRequestDetailDO.setProjectCode(itembasic.getProject());
inventorymoveRequestDetailDO.setUom(itembasic.getUom());
jobUtils.ifInToLocationType(inventorymoveRequestDetailDO.getFromLocationCode(), businesstypeDO);
jobUtils.ifOutInventoryStatuses(inventorymoveRequestDetailDO.getFromInventoryStatus(), businesstypeDO);
validtebalance(inventorymoveRequestDetailDO);
return inventorymoveRequestDetailDO;
}
private void validtebalance(InventorymoveRequestDetailDO detailDo) {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(detailDo.getFromInventoryStatus());
List<BalanceDO> balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber()
, detailDo.getFromBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
@Override
public void updateInventorymoveRequestDetail(InventorymoveRequestDetailUpdateReqVO updateReqVO) {
// 校验存在

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

@ -1,39 +1,52 @@
package com.win.module.wms.service.inventorymoveRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.common.util.validation.ValidationUtils;
import com.win.framework.dict.core.util.DictFrameworkUtils;
import com.win.module.infra.api.trends.TrendsApi;
import com.win.module.infra.enums.TrendsTypeEnum;
import com.win.module.system.api.dict.DictDataApi;
import com.win.module.system.api.dict.dto.DictDataRespDTO;
import com.win.module.system.api.serialnumber.SerialNumberApi;
import com.win.module.system.enums.serialNumber.RuleCodeEnum;
import com.win.module.wms.controller.inventorymoveRequest.vo.*;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainBaseVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainCreateReqVO;
import com.win.module.wms.controller.productputawayRequest.vo.ProductputawayRequestMainUpdateReqVO;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestDetailConvert;
import com.win.module.wms.convert.inventorymoveRequest.InventorymoveRequestMainConvert;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestDetailConvert;
import com.win.module.wms.convert.productputawayRequest.ProductputawayRequestMainConvert;
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.inventorymoveRequest.InventorymoveRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventorymoveRequest.InventorymoveRequestMainDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestDetailDO;
import com.win.module.wms.dal.dataobject.productputawayRequest.ProductputawayRequestMainDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.mysql.inventorymoveRequest.InventorymoveRequestDetailMapper;
import com.win.module.wms.dal.mysql.inventorymoveRequest.InventorymoveRequestMainMapper;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.itempackaging.ItempackagingService;
import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.interceptor.TransactionAspectSupport;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import javax.validation.Validator;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
import static com.win.framework.common.exception.util.ServiceExceptionUtil.exception;
import static com.win.module.wms.enums.ErrorCodeConstants.INVENTORYMOVE_REQUEST_MAIN_NOT_EXISTS;
import static com.win.module.wms.enums.ErrorCodeConstants.PURCHASECLAIM_REQUEST_IMPORT_LIST_IS_EMPTY;
import static com.win.module.wms.enums.ErrorCodeConstants.*;
/**
* 库存转移申请主 Service 实现类
@ -49,35 +62,116 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
@Resource
private InventorymoveRequestDetailMapper inventorymoveRequestDetailMapper;
@Resource
private Validator validator;
@Resource
private ItembasicService itembasicService;
@Resource
private ItempackagingService itempackagingService;
private SerialNumberApi serialNumberApi;
@Resource
private ShiftService shiftService;
private RequestsettingService requestsettingService;
@Resource
private JobUtils jobUtils;
@Resource
private LocationService locationService;
@Resource
private TrendsApi trendsApi;
@Override
public Long createInventorymoveRequestMain(InventorymoveRequestMainCreateReqVO createReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest");
// 插入
InventorymoveRequestMainDO inventorymoveRequestMain = InventorymoveRequestMainConvert.INSTANCE.convert(createReqVO);
inventorymoveRequestMainMapper.insert(inventorymoveRequestMain);
// 返回
InventorymoveRequestMainDO inventorymoveRequestMain = validatorToCreate(createReqVO,requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMain.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "MoveRequest", "增加了库存移动申请", TrendsTypeEnum.CREATE);
return inventorymoveRequestMain.getId();
}
private InventorymoveRequestMainDO validatorToCreate(InventorymoveRequestMainCreateReqVO createReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest");
InventorymoveRequestMainDO inventorymoveRequestMainDO = validateMainMethod(createReqVO,businesstypeDO,requestsettingDO);
List<InventorymoveRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InventorymoveRequestDetailDO> subDOList = InventorymoveRequestDetailConvert.INSTANCE.convertList03(subList);
for(InventorymoveRequestDetailDO inventorymoveRequestDetailDO: subDOList){
validateDetailMethod(inventorymoveRequestDetailDO,businesstypeDO,inventorymoveRequestMainDO);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_MOVE_REQUEST.getCode());
inventorymoveRequestMainDO.setNumber(number);
inventorymoveRequestMainMapper.insert(inventorymoveRequestMainDO);
for( InventorymoveRequestDetailDO inventorymoveRequestDetailDO : subDOList){
inventorymoveRequestDetailDO.setMasterId(inventorymoveRequestMainDO.getId());
inventorymoveRequestDetailDO.setNumber(inventorymoveRequestMainDO.getNumber());
}
inventorymoveRequestDetailMapper.insertBatch(subDOList);
return inventorymoveRequestMainDO;
}
private void validateDetailMethod(InventorymoveRequestDetailDO inventorymoveRequestDetailDO, BusinesstypeDO businesstypeDO, InventorymoveRequestMainDO productputawayRequestMainDO) {
inventorymoveRequestDetailDO.setCreateTime(LocalDateTime.now());
ItembasicDO itembasic = validteitem(inventorymoveRequestDetailDO);
inventorymoveRequestDetailDO.setItemDesc1(itembasic.getDesc1());
inventorymoveRequestDetailDO.setItemDesc2(itembasic.getDesc2());
inventorymoveRequestDetailDO.setItemName(itembasic.getName());
inventorymoveRequestDetailDO.setProjectCode(itembasic.getProject());
inventorymoveRequestDetailDO.setUom(itembasic.getUom());
jobUtils.ifInToLocationType(inventorymoveRequestDetailDO.getFromLocationCode(), businesstypeDO);
jobUtils.ifOutInventoryStatuses(inventorymoveRequestDetailDO.getFromInventoryStatus(), businesstypeDO);
validtebalance(inventorymoveRequestDetailDO);
}
private InventorymoveRequestMainDO validateMainMethod(InventorymoveRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO){
InventorymoveRequestMainDO inventorymoveRequestMainDO = InventorymoveRequestMainConvert.INSTANCE.convert(baseVO);
inventorymoveRequestMainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
inventorymoveRequestMainDO.setCreateTime(LocalDateTime.now());
inventorymoveRequestMainDO.setAutoAgree(requestsettingDO.getAutoAgree());
inventorymoveRequestMainDO.setAutoCommit(requestsettingDO.getAutoCommit());
inventorymoveRequestMainDO.setAutoExecute(requestsettingDO.getAutoExecute());
inventorymoveRequestMainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
inventorymoveRequestMainDO.setBusinessType(businesstypeDO.getCode());
inventorymoveRequestMainDO.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
inventorymoveRequestMainDO.setToLocationTypes(businesstypeDO.getInLocationTypes());
inventorymoveRequestMainDO.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
inventorymoveRequestMainDO.setToAreaCodes(businesstypeDO.getInAreaCodes());
return inventorymoveRequestMainDO;
}
@Override
public void updateInventorymoveRequestMain(InventorymoveRequestMainUpdateReqVO updateReqVO) {
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest");
// 校验存在
validateInventorymoveRequestMainExists(updateReqVO.getId());
// 更新
InventorymoveRequestMainDO updateObj = InventorymoveRequestMainConvert.INSTANCE.convert(updateReqVO);
inventorymoveRequestMainMapper.updateById(updateObj);
InventorymoveRequestMainDO inventorymoveRequestMainDO = validatorToUpdate(updateReqVO, requestsettingDO);
if(RequestStatusEnum.HANDLING.getCode().equals(inventorymoveRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "MoveRequest", "增加了库存移动申请", TrendsTypeEnum.CREATE);
}
private InventorymoveRequestMainDO validatorToUpdate(InventorymoveRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest");
InventorymoveRequestMainDO inventorymoveRequestMainDO = validateMainMethod(updateReqVO,businesstypeDO,requestsettingDO);
//子表校验
List<InventorymoveRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(!subList.isEmpty()) {
List<InventorymoveRequestDetailDO> subDOList = InventorymoveRequestDetailConvert.INSTANCE.convertList05(subList);
for (InventorymoveRequestDetailDO inventorymoveRequestDetailDO : subDOList) {
validateDetailMethod(inventorymoveRequestDetailDO, businesstypeDO, inventorymoveRequestMainDO);
}
inventorymoveRequestDetailMapper.updateBatch(subDOList);
}
inventorymoveRequestMainMapper.updateById(inventorymoveRequestMainDO);
return inventorymoveRequestMainDO;
}
@Override
public void deleteInventorymoveRequestMain(Long id) {
// 校验存在
@ -92,6 +186,9 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
}
}
@Resource
private DictDataApi dictDataApi;
@Override
public InventorymoveRequestMainDO getInventorymoveRequestMain(Long id) {
return inventorymoveRequestMainMapper.selectById(id);
@ -117,6 +214,97 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
return inventorymoveRequestMainMapper.selectList(exportReqVO);
}
private String validateInventorymoveRequestMainImport(InventorymoveRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
mainDo.setCreateTime(LocalDateTime.now());
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("MoveRequest");
if (requestsettingDO == null) {
message.append("未查找到制品上架申请的相关申请设置");
} else {
mainDo.setAutoAgree(requestsettingDO.getAutoAgree());
mainDo.setAutoCommit(requestsettingDO.getAutoCommit());
mainDo.setAutoExecute(requestsettingDO.getAutoExecute());
mainDo.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
}
if (businesstypeDO == null) {
message.append("根据单据设置未查找到制品上架申请的相关业务类型");
} else {
mainDo.setBusinessType(businesstypeDO.getCode());
mainDo.setFromLocationTypes(businesstypeDO.getOutLocationTypes());
mainDo.setToLocationTypes(businesstypeDO.getInLocationTypes());
mainDo.setFromAreaCodes(businesstypeDO.getOutAreaCodes());
mainDo.setToAreaCodes(businesstypeDO.getInAreaCodes());
}
try {
ValidationUtils.validate(validator, mainDo);
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
private InventorymoveRequestDetailDO validatelocation(InventorymoveRequestDetailDO detailDo){
LocationDO locationDO = locationService.selectLocation(detailDo.getFromLocationCode());
if (locationDO != null) {
detailDo.setFromLocationCode(locationDO.getCode());
}
return detailDo;
}
private ItembasicDO validteitem(InventorymoveRequestDetailDO detailDo) {
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
return itembasicDO;
}
private void validtebalance(InventorymoveRequestDetailDO detailDo){
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(detailDo.getFromInventoryStatus());
List<BalanceDO> balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(detailDo.getItemCode(), detailDo.getFromPackingNumber()
, detailDo.getFromBatch(), detailDo.getFromLocationCode(), inventoryStatus);
}
private String validateInventorymoveRequestDetailImport(InventorymoveRequestDetailDO detailDo, InventorymoveRequestMainDO mainDo, BusinesstypeDO businesstypeDO) {
StringBuilder message = new StringBuilder();
// 校验,判断是否有不符合的原因,并加入errorList,同主表,只把有错误的子表加入errorList
try{
detailDo.setCreateTime(LocalDateTime.now());
detailDo = validatelocation(detailDo);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
ItembasicDO itembasic = validteitem(detailDo);
detailDo.setItemDesc1(itembasic.getDesc1());
detailDo.setItemDesc2(itembasic.getDesc2());
detailDo.setItemName(itembasic.getName());
detailDo.setProjectCode(itembasic.getProject());
detailDo.setUom(itembasic.getUom());
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifInToLocationType(detailDo.getFromLocationCode(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
jobUtils.ifOutInventoryStatuses(detailDo.getFromInventoryStatus(), businesstypeDO);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
validtebalance(detailDo);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
return message.toString();
}
@Override
public List<InventorymoveRequestMainImportErrorVO> importInventorymoveRequestMainList(List<InventorymoveRequestMainCreateReqVO> datas, Integer mode, boolean updatePart) {
if (CollUtil.isEmpty(datas)) {
@ -124,105 +312,40 @@ public class InventorymoveRequestMainServiceImpl implements InventorymoveRequest
}
List<InventorymoveRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest");
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
String messageMain = "";
//主表的验证
//校验供应商送货策略
// try {
// RuleRespVO ruleRespVO = ruleService.deliverGoods(null, createReqVO.getSupplierCode(), null);
// String json = ruleRespVO.getConfiguration();
// } catch (ServiceException ex) {
// importRemark += ex.getMessage() + ",";
// }
InventorymoveRequestMainDO mainDo = InventorymoveRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = validateInventorymoveRequestMainImport(mainDo, businesstypeDO);
//子表的验证
List<InventorymoveRequestDetailCreateReqVO> subList = createReqVO.getSubList();
List<InventorymoveRequestDetailDO> subDOList = InventorymoveRequestDetailConvert.INSTANCE.convertList03(subList);
boolean flag = true;
for (InventorymoveRequestDetailDO purchaseDetailDO : subDOList) {
String messageDetail = "";
String messageDetail = validateInventorymoveRequestDetailImport(purchaseDetailDO, mainDo, businesstypeDO);
//校验来源/目标库位基础信息
try {
LocationDO locationDO = locationService.selectLocation(createReqVO.getFromWarehouseOde());
if (locationDO != null) {
purchaseDetailDO.setFromLocationCode(locationDO.getCode());
// purchaseDetailDO.setArea_code(purchaseDetailDO.getAreaCode());
// purchaseDetailDO.setLocation_group_code(purchaseDetailDO.getAreaCode());
}
} catch (ServiceException ex) {
messageMain += ex.getMessage() + ",";
}
// 校验物品基础信息
try {
ItembasicDO itembasicDO = itembasicService.selectItembasic(purchaseDetailDO.getItemCode());
if (itembasicDO.getUom() != purchaseDetailDO.getUom()) {
messageDetail += "计量单位" + itembasicDO.getUom() + "错误,应该是" + purchaseDetailDO.getUom() + ",";
} else {
purchaseDetailDO.setItemDesc1(itembasicDO.getDesc1());
purchaseDetailDO.setItemDesc2(itembasicDO.getDesc2());
purchaseDetailDO.setItemName(itembasicDO.getName());
purchaseDetailDO.setProjectCode(itembasicDO.getProject());
}
purchaseDetailDO.setProjectCode(itembasicDO.getCode());
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
// 校验业务类型
try {
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("MoveRequest");
jobUtils.ifInToLocationType(purchaseDetailDO.getFromLocationCode(), businesstypeDO);
jobUtils.ifOutInventoryStatuses(purchaseDetailDO.getFromInventoryStatus(), businesstypeDO);
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
// 校验业务类型
try {
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add(purchaseDetailDO.getFromInventoryStatus());
List<BalanceDO> balanceDOList = jobUtils.selectlocationReturnManagementAccuracy(purchaseDetailDO.getItemCode(), purchaseDetailDO.getFromPackingNumber()
, purchaseDetailDO.getFromBatch(), purchaseDetailDO.getFromLocationCode(), inventoryStatus);
if (balanceDOList != null) {
BalanceDO balanceDO = balanceDOList.get(0);
// purchaseDetailDO.setArriveDate( balanceDO.getArriveDate() );
// purchaseDetailDO.setProduceDate( balanceDO.getProduceDate() );
// purchaseDetailDO.setExpireDate( balanceDO.getExpireDate() );
}
} catch (ServiceException ex) {
messageDetail += ex.getMessage() + ",";
}
InventorymoveRequestDetailCreateReqVO purchaseDetailCreateReqVO = InventorymoveRequestDetailConvert.INSTANCE.convert1(purchaseDetailDO);
InventorymoveRequestMainImportErrorVO importVO = InventorymoveRequestDetailConvert.INSTANCE.convert(createReqVO, purchaseDetailCreateReqVO);
//进行子表的错误统计
//主表没有错误 写入库里
if (!messageMain.equals("") || !messageDetail.equals("")) {
importVO.setImportStatus("失败");
if (!"".equals(messageMain) ||!"".equals(messageDetail) ) {
InventorymoveRequestMainImportErrorVO importErrorVO = InventorymoveRequestMainConvert.INSTANCE.convert(createReqVO, purchaseDetailDO);
importErrorVO.setImportStatus("失败");
messageMain = messageMain + messageDetail;
importVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importVO);
} else {
purchaseDetailDO.setNumber(createReqVO.getNumber());
purchaseDetailDO.setMasterId(createReqVO.getId());
importErrorVO.setImportRemark(messageMain.substring(0, messageMain.length() - 1));
errorList.add(importErrorVO);
flag = false;
}
}
if (errorList.isEmpty()) {
// 判断如果不存在,在进行插入
if (mode != 3) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
inventorymoveRequestDetailMapper.insertBatch(subDOList);
} else if (mode != 2) {
createReqVO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
inventorymoveRequestDetailMapper.updateBatch(subDOList);
//写入数据
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.INVENTORY_CHANGE_REQUEST.getCode());
mainDo.setNumber(number);
mainDo.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
inventorymoveRequestMainMapper.insert(mainDo);
for (InventorymoveRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDo.getId());
detailDO.setNumber(number);
}
inventorymoveRequestDetailMapper.insertBatch(subDOList);
}
});
//错误不为空并非部分更新,手工回滚
if (!errorList.isEmpty() && !updatePart) {
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
}
return errorList;
}

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

@ -182,7 +182,7 @@ public class ProductputawayRequestMainServiceImpl implements ProductputawayReque
if(RequestStatusEnum.HANDLING.getCode().equals(productputawayRequestMainDO.getStatus())) {
}
trendsApi.createTrends(requestsettingDO.getId(), "IssueRequest", "增加了发料申请", TrendsTypeEnum.CREATE);
trendsApi.createTrends(requestsettingDO.getId(), "ProductPutawayRequest", "增加了上架申请", TrendsTypeEnum.CREATE);
}
private ProductputawayRequestMainDO validatorToUpdate(ProductputawayRequestMainUpdateReqVO updateReqVO, RequestsettingDO requestsettingDO) {

Loading…
Cancel
Save