Browse Source

库存初始化申请

master
廉洪喜 2 years ago
parent
commit
c827cb9504
  1. 11
      win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java
  2. 80
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java
  3. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestDetailPageReqVO.java
  4. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainBaseVO.java
  5. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java
  7. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java
  8. 23
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java
  9. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java
  10. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/convert/inventoryinitRequest/InventoryinitRequestMainConvert.java
  11. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java
  12. 6
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestMainMapper.java
  13. 65
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java
  14. 221
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainServiceImpl.java
  15. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java
  16. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java
  17. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java

11
win-module-wms/win-module-wms-api/src/main/java/com/win/module/wms/enums/ErrorCodeConstants.java

@ -774,6 +774,17 @@ public interface ErrorCodeConstants {
//库存初始化申请ErrorCode
ErrorCode INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS = new ErrorCode(1_000_129_000, "库存初始化申请主不存在");
ErrorCode INVENTORYINIT_REQUEST_DETAIL_NOT_EXISTS = new ErrorCode(1_000_129_001, "库存初始化申请子不存在");
ErrorCode INVENTORYINIT_REQUEST_CANNOT_CLOSE = new ErrorCode(1_000_129_002, "库存初始化状态不支持关闭");
ErrorCode INVENTORYINIT_REQUEST_CANNOT_RE_ADD = new ErrorCode(1_000_129_003, "库存初始化状态不支持重新添加");
ErrorCode INVENTORYINIT_REQUEST_CANNOT_SUBMIT = new ErrorCode(1_000_129_004, "库存初始化状态不支持提交");
ErrorCode INVENTORYINIT_REQUEST_CANNOT_AGREE = new ErrorCode(1_000_129_005, "库存初始化状态不支持审批同意");
ErrorCode INVENTORYINIT_REQUEST_CANNOT_HANDLE = new ErrorCode(1_000_129_006, "库存初始化状态不支持处理");
ErrorCode INVENTORYINIT_REQUEST_CANNOT_ABORT = new ErrorCode(1_000_073_009, "库存初始化状态不支持审批拒绝");
//库存初始化记录ErrorCode
ErrorCode INVENTORYINIT_RECORD_MAIN_NOT_EXISTS = new ErrorCode(1_000_130_000, "库存初始化记录主不存在");
ErrorCode INVENTORYINIT_RECORD_DETAIL_NOT_EXISTS = new ErrorCode(1_000_130_001, "库存初始化记录子不存在");

80
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/InventoryinitRequestMainController.java

@ -10,13 +10,9 @@ import com.win.framework.operatelog.core.annotations.OperateLog;
import com.win.module.system.api.user.AdminUserApi;
import com.win.module.system.api.user.dto.AdminUserRespDTO;
import com.win.module.wms.controller.inventoryinitRequest.vo.*;
import com.win.module.wms.controller.unplannedreceiptRequest.vo.UnplannedreceiptRequestMainExcelVO;
import com.win.module.wms.convert.inventoryinitRequest.InventoryinitRequestMainConvert;
import com.win.module.wms.convert.unplannedreceiptRequest.UnplannedreceiptRequestMainConvert;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestDetailDO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestDetailDO;
import com.win.module.wms.dal.dataobject.unplannedreceiptRequest.UnplannedreceiptRequestMainDO;
import com.win.module.wms.enums.DictTypeConstants;
import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestDetailService;
import com.win.module.wms.service.inventoryinitRequest.InventoryinitRequestMainService;
@ -28,7 +24,6 @@ import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import javax.validation.Valid;
@ -52,9 +47,6 @@ public class InventoryinitRequestMainController {
@Resource
private InventoryinitRequestDetailService inventoryinitRequestDetailService;
@Resource
private AdminUserApi userApi;
@ -120,7 +112,7 @@ public class InventoryinitRequestMainController {
}
return success(result);
}
@PostMapping("/export-excel")
@GetMapping("/export-excel")
@Operation(summary = "导出库存初始化申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:export')")
@OperateLog(type = EXPORT)
@ -152,6 +144,19 @@ public class InventoryinitRequestMainController {
return resultList;
}
@PostMapping("/export-excel-senior")
@Operation(summary = "导出库存初始化申请主 Excel")
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:export')")
@OperateLog(type = EXPORT)
public void exportInventoryinitRequestMainSeniorExcel(@Valid @RequestBody CustomConditions conditions, HttpServletResponse response) throws IOException {
List<InventoryinitRequestMainDO> list = inventoryinitRequestMainService.getInventoryinitRequestMainList1(conditions);
//组装vo
Map<Integer, String[]> mapDropDown = new HashMap<>();
List<InventoryinitRequestMainExcelVO> resultList = this.getExcelVo(list, mapDropDown);
// 导出 Excel
ExcelUtils.write(response, "库存初始化申请主.xlsx", "库存初始化申请数据", InventoryinitRequestMainExcelVO.class, resultList, mapDropDown);
}
@GetMapping("/get-import-template")
@Operation(summary = "获得导入库存初始化申请信息模板")
public void importTemplate(HttpServletResponse response) throws IOException {
@ -159,9 +164,9 @@ public class InventoryinitRequestMainController {
List<InventoryinitRequestMainImportVO> list = new ArrayList<>();
Map<Integer, String[]> mapDropDown = new HashMap<>();
String[] inventoryStatus = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.INVENTORY_STATUS);
mapDropDown.put(10, inventoryStatus);
mapDropDown.put(11, inventoryStatus);
String[] uom = DictFrameworkUtils.dictTypeDictDataValue(DictTypeConstants.UOM);
mapDropDown.put(13, uom);
mapDropDown.put(14, uom);
// 输出
ExcelUtils.write(response, "库存初始化申请信息导入模板.xlsx", "库存初始化申请信息列表", InventoryinitRequestMainImportVO.class, list, mapDropDown);
}
@ -192,4 +197,57 @@ public class InventoryinitRequestMainController {
}
@PutMapping("/close")
@Operation(summary = "关闭库存初始化申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:close')")
public CommonResult<Boolean> closeInventoryinitRequestMain(@RequestParam("id") Long id) {
Integer count = inventoryinitRequestMainService.closeInventoryinitRequestMain(id);
return success(count > 0);
}
@PutMapping("/reAdd")
@Operation(summary = "重新添加库存初始化申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:reAdd')")
public CommonResult<Boolean> openInventoryinitRequestMain(@RequestParam("id") Long id) {
Integer count = inventoryinitRequestMainService.reAddInventoryinitRequestMain(id);
return success(count > 0);
}
@PutMapping("/submit")
@Operation(summary = "提交库存初始化申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:submit')")
public CommonResult<Boolean> submitInventoryinitRequestMain(@RequestParam("id") Long id) {
Integer count = inventoryinitRequestMainService.submitInventoryinitRequestMain(id);
return success(count > 0);
}
@PutMapping("/agree")
@Operation(summary = "审批通过库存初始化申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:agree')")
public CommonResult<Boolean> agreeInventoryinitRequestMain(@RequestParam("id") Long id) {
Integer count = inventoryinitRequestMainService.agreeInventoryinitRequestMain(id);
return success(count > 0);
}
@PutMapping("/handle")
@Operation(summary = "处理库存初始化申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:handle')")
public CommonResult<Boolean> handleInventoryinitRequestMain(@RequestParam("id") Long id) {
Integer count = inventoryinitRequestMainService.handleInventoryinitRequestMain(id);
return success(count > 0);
}
@PutMapping("/refused")
@Operation(summary = "审批拒绝库存初始化申请主")
@Parameter(name = "id", description = "编号", required = true)
@PreAuthorize("@ss.hasPermission('wms:inventoryinit-request-main:refused')")
public CommonResult<Boolean> abortInventoryinitRequestMain(@RequestParam("id") Long id) {
Integer count = inventoryinitRequestMainService.refusedInventoryinitRequestMain(id);
return success(count > 0);
}
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestDetailPageReqVO.java

@ -103,4 +103,7 @@ public class InventoryinitRequestDetailPageReqVO extends PageParam {
@Schema(description = "物品代码")
private String itemCode;
@Schema(description = "master_id", example = "master_id")
private Long masterId;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainBaseVO.java

@ -38,7 +38,7 @@ public class InventoryinitRequestMainBaseVO {
@Schema(description = "创建时间")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime creationTime;
private LocalDateTime createTime;
@Schema(description = "创建者用户名")
private String creator;

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainCreateReqVO.java

@ -17,4 +17,5 @@ public class InventoryinitRequestMainCreateReqVO extends InventoryinitRequestMai
@SubObject
@Schema(description = "子表数据")
private List<InventoryinitRequestDetailCreateReqVO> subList;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainExcelVO.java

@ -38,7 +38,7 @@ public class InventoryinitRequestMainExcelVO {
@ExcelProperty("创建时间")
@ColumnWidth(value = 25)
private LocalDateTime creationTime;
private LocalDateTime createTime;
@ExcelProperty("创建者用户名")
private String creator;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportErrorVO.java

@ -15,7 +15,7 @@ import lombok.ToString;
@Data
@EqualsAndHashCode(callSuper = true)
@ToString(callSuper = true)
public class InventoryinitRequestMainImportErrorVO extends PurchaseMainImportVO {
public class InventoryinitRequestMainImportErrorVO extends InventoryinitRequestMainImportVO {
@ExcelProperty(value = "导入状态", index = 0)
private String importStatus;

23
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/inventoryinitRequest/vo/InventoryinitRequestMainImportVO.java

@ -10,6 +10,7 @@ import lombok.Data;
import lombok.NoArgsConstructor;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
import java.time.LocalDateTime;
@ -25,53 +26,65 @@ import java.time.LocalDateTime;
public class InventoryinitRequestMainImportVO{
//主表数据
@OnlyOne
@ExcelProperty("仓库代码")
@NotBlank(message="仓库代码不能为空")
private String warehouseCode;
@ExcelProperty("单据号")
private String number;
@ExcelProperty("截止时间")
@ColumnWidth(value = 25)
@NotBlank(message="截止时间不能为空")
private LocalDateTime dueTime;
//子表数据
@ExcelProperty("包装号")
@NotBlank(message="包装号不能为空")
private String packingNumber;
@ExcelProperty("物品代码")
@NotBlank(message="物品代码不能为空")
private String itemCode;
@ExcelProperty("器具号")
private String containerNumber;
@ExcelProperty("批次")
@NotBlank(message="批次不能为空")
private String batch;
@ExcelProperty("替代批次")
private String altBatch;
@ExcelProperty("到货日期")
@ColumnWidth(value = 16)
@ColumnWidth(value = 25)
private String arriveDate;
@ExcelProperty("生产日期")
@ColumnWidth(value = 16)
@ColumnWidth(value = 25)
private String produceDate;
@ExcelProperty("过期日期")
@ColumnWidth(value = 16)
@ColumnWidth(value = 25)
private String expireDate;
@ExcelProperty("库存状态")
@DictFormat(DictTypeConstants.INVENTORY_STATUS)
@NotBlank(message="库存状态不能为空")
private String inventoryStatus;
@ExcelProperty("库位代码")
@NotBlank(message="库位代码不能为空")
private String locationCode;
@ExcelProperty("数量")
@NotBlank(message="数量不能为空")
private String qty;
@ExcelProperty("计量单位")
@DictFormat(DictTypeConstants.UOM)
@NotBlank(message="计量单位不能为空")
private String uom;
}

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/purchasereceiptRequest/PurchasereceiptRequestMainController.java

@ -44,6 +44,7 @@ public class PurchasereceiptRequestMainController {
@Resource
private PurchasereceiptRequestMainService purchasereceiptRequestMainService;
@Resource
private PurchasereceiptRequestDetailService purchasereceiptRequestDetailService;

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

@ -51,6 +51,7 @@ public interface InventoryinitRequestMainConvert {
@Mapping(source = "mainDO.number", target = "number"),
@Mapping(source = "mainDO.remark", target = "remark"),
@Mapping(source = "mainDO.creator", target = "creator"),
@Mapping(source = "mainDO.createTime", target = "createTime"),
@Mapping(source = "mainDO.updateTime", target = "updateTime"),
@Mapping(source = "mainDO.updater", target = "updater"),
})

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestDetailMapper.java

@ -23,6 +23,7 @@ public interface InventoryinitRequestDetailMapper extends BaseMapperX<Inventoryi
default PageResult<InventoryinitRequestDetailDO> selectPage(InventoryinitRequestDetailPageReqVO reqVO) {
return selectPage(reqVO, new LambdaQueryWrapperX<InventoryinitRequestDetailDO>()
.eq(InventoryinitRequestDetailDO::getMasterId, reqVO.getMasterId())
.eqIfPresent(InventoryinitRequestDetailDO::getOwnerCode, reqVO.getOwnerCode())
.eqIfPresent(InventoryinitRequestDetailDO::getPackingNumber, reqVO.getPackingNumber())
.eqIfPresent(InventoryinitRequestDetailDO::getContainerNumber, reqVO.getContainerNumber())

6
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/inventoryinitRequest/InventoryinitRequestMainMapper.java

@ -10,6 +10,7 @@ import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainExportReqVO;
import com.win.module.wms.controller.inventoryinitRequest.vo.InventoryinitRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
/**
@ -64,4 +65,9 @@ public interface InventoryinitRequestMainMapper extends BaseMapperX<Inventoryini
.orderByDesc(InventoryinitRequestMainDO::getId));
}
default List<InventoryinitRequestMainDO> selectSeniorList(CustomConditions conditions) {
return selectList(QueryWrapperUtils.structure(conditions));
}
}

65
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/inventoryinitRequest/InventoryinitRequestMainService.java

@ -4,6 +4,7 @@ import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.inventoryinitRequest.vo.*;
import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitRequestMainDO;
import com.win.module.wms.dal.dataobject.purchasereceiptRequest.PurchasereceiptRequestMainDO;
import javax.validation.Valid;
import java.util.Collection;
@ -78,7 +79,15 @@ public interface InventoryinitRequestMainService {
List<InventoryinitRequestMainDO> getInventoryinitRequestMainList(InventoryinitRequestMainExportReqVO exportReqVO);
/**
* 批量导入采购索赔申请主信息
* 获得库存初始化申请主列表, 用于 Excel 导出
*
* @param conditions 查询条件
* @return 采购收货申请主列表
*/
List<InventoryinitRequestMainDO> getInventoryinitRequestMainList1(CustomConditions conditions);
/**
* 批量导入库存初始化申请主信息
* @param datas 导入采购索赔申请主信息列表
* @param mode 导入模式1更新2追加3覆盖
* @param updatePart 是否支持更新
@ -86,4 +95,58 @@ public interface InventoryinitRequestMainService {
*/
public List<InventoryinitRequestMainImportErrorVO> importInventoryinitRequestMainList(List<InventoryinitRequestMainCreateReqVO> datas, Integer mode, boolean updatePart);
/**
* 关闭库存初始化申请主
*
* @param id 采购收货申请主ID
* @return 更新数量
*/
Integer closeInventoryinitRequestMain(Long id);
/**
* 重新添加库存初始化申请主
*
* @param id 采购收货申请主ID
* @return 更新数量
*/
Integer reAddInventoryinitRequestMain(Long id);
/**
* 提交库存初始化申请主
*
* @param id 库存初始化申请主ID
* @return 更新数量
*/
Integer submitInventoryinitRequestMain(Long id);
/**
* 审批通过库存初始化申请主
*
* @param id 库存初始化申请主ID
* @return 更新数量
*/
Integer agreeInventoryinitRequestMain(Long id);
/**
* 处理库存初始化申请主
* @param id
* @return
*/
Integer handleInventoryinitRequestMain(Long id);
/**
* 审批拒绝库存初始化申请主
*
* @param id 库存初始化申请主ID
* @return 更新数量
*/
Integer refusedInventoryinitRequestMain(Long id);
}

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

@ -1,31 +1,20 @@
package com.win.module.wms.service.inventoryinitRequest;
import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.exception.ServiceException;
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.controller.inventoryinitRecord.vo.InventoryinitRecordDetailCreateReqVO;
import com.win.module.wms.controller.inventoryinitRecord.vo.InventoryinitRecordMainCreateReqVO;
import com.win.module.wms.convert.inventoryinitRecord.InventoryinitRecordDetailConvert;
import com.win.module.wms.convert.inventoryinitRecord.InventoryinitRecordMainConvert;
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.enums.request.RequestStatusState;
import com.win.module.wms.util.*;
import com.win.module.wms.service.requestsetting.*;
import com.win.framework.common.pojo.CustomConditions;
@ -39,12 +28,12 @@ import com.win.module.wms.dal.dataobject.inventoryinitRequest.InventoryinitReque
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.itempackaging.ItempackagingDO;
import com.win.module.wms.dal.dataobject.location.LocationDO;
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO;
import com.win.module.wms.dal.mysql.inventoryinitRecord.*;
import com.win.module.wms.dal.mysql.inventoryinitRequest.InventoryinitRequestDetailMapper;
import com.win.module.wms.dal.mysql.inventoryinitRequest.InventoryinitRequestMainMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
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;
@ -69,6 +58,13 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
@Resource
private InventoryinitRequestMainMapper inventoryinitRequestMainMapper;
@Resource
private InventoryinitRecordMainMapper inventoryinitRecordMainMapper;
@Resource
private InventoryinitRecordDetailMapper inventoryinitRecordDetailMapper;
@Resource
private TrendsApi trendsApi;
@Resource
@ -109,7 +105,14 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDO.setNumber(number);
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDO.setStatus(requestStatusState.getState().getCode());
inventoryinitRequestMainMapper.insert(mainDO);
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, subDOList);
}
for (InventoryinitRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
@ -212,6 +215,14 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
public List<InventoryinitRequestMainDO> getInventoryinitRequestMainList(InventoryinitRequestMainExportReqVO exportReqVO) {
return inventoryinitRequestMainMapper.selectList(exportReqVO);
}
@Override
public List<InventoryinitRequestMainDO> getInventoryinitRequestMainList1(CustomConditions conditions) {
return inventoryinitRequestMainMapper.selectSeniorList(conditions);
}
private String validatePurchasereceiptRequestDetailImport(InventoryinitRequestMainDO mainDo, InventoryinitRequestDetailDO detailDo){
StringBuilder message = new StringBuilder();
try {
@ -240,6 +251,32 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
return detailDo;
}
private void generateJob(InventoryinitRequestMainDO mainDO, List<InventoryinitRequestDetailDO> detailDOList) {
//跳过任务直接生成记录
if("TRUE".equals(mainDO.getDirectCreateRecord())){
InventoryinitRecordMainCreateReqVO inventoryinitRecordMainCreateReqVO = new InventoryinitRecordMainCreateReqVO();
BeanUtils.copyProperties(mainDO, inventoryinitRecordMainCreateReqVO);
inventoryinitRecordMainCreateReqVO.setRequestNumber(mainDO.getNumber());
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_RECORD.getCode());
inventoryinitRecordMainCreateReqVO.setNumber(number);
//增加业务类型
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("PurchaseReceiptRecord");
inventoryinitRecordMainCreateReqVO.setBusinessType(businesstypeDO.getCode());
inventoryinitRecordMainMapper.insert(InventoryinitRecordMainConvert.INSTANCE.convert(inventoryinitRecordMainCreateReqVO));
for(InventoryinitRequestDetailDO inventoryinitRequestDetailDO : detailDOList) {
InventoryinitRecordDetailCreateReqVO inventoryinitRecordDetailCreateReqVO = new InventoryinitRecordDetailCreateReqVO();
BeanUtils.copyProperties(inventoryinitRequestDetailDO, inventoryinitRecordDetailCreateReqVO);
inventoryinitRecordDetailCreateReqVO.setNumber(number);
inventoryinitRecordDetailMapper.insert(InventoryinitRecordDetailConvert.INSTANCE.convert(inventoryinitRecordDetailCreateReqVO));
}
}
}
private InventoryinitRequestDetailDO validitempackaging(InventoryinitRequestDetailDO detailDo){
ItempackagingDO itempackaging = itempackagingService.selectItemPackagingExist(detailDo.getItemCode());
@ -263,6 +300,14 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
return mainDo;
}
private InventoryinitRequestMainDO valiteInventoryinitRequestMainExists(Long id) {
InventoryinitRequestMainDO existInventoryinitRequestMainDO = inventoryinitRequestMainMapper.selectById(id);
if (existInventoryinitRequestMainDO == null) {
throw exception(INVENTORYINIT_REQUEST_MAIN_NOT_EXISTS);
}
return existInventoryinitRequestMainDO;
}
private InventoryinitRequestMainDO validaterequestsetting(InventoryinitRequestMainDO mainDo){
RequestsettingDO requestsetting = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
mainDo.setAutoAgree(requestsetting.getAutoAgree());
@ -272,14 +317,26 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
return mainDo;
}
private void validatetime(LocalDateTime durtime){
if(LocalDateTime.now().isAfter(durtime)){
throw exception(TIME_AFTER,LocalDateTime.now(),durtime);
}
}
private String validatePurchasereceiptRequestMainImport(InventoryinitRequestMainDO mainDo) {
StringBuilder message = new StringBuilder();
StringBuilder message = new StringBuilder();
try {
mainDo.setCreateTime(LocalDateTime.now());
mainDo = validaterequestsetting(mainDo);
mainDo.setRequestTime(LocalDateTime.now());
validatetime(mainDo.getDueTime());
} catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
mainDo = validaterequestsetting(mainDo);
}catch (Exception ex) {
message.append(ex.getMessage()).append(",");
}
try{
mainDo = validateBusinesstype(mainDo);
} catch (Exception ex) {
@ -300,8 +357,6 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
}
List<InventoryinitRequestMainImportErrorVO> errorList = new ArrayList<>();
datas.forEach(createReqVO -> {
String message = "";
// 校验,判断是否有不符合的原因,并加入errorList,如果主表则所有子表都加入errorList
InventoryinitRequestMainDO mainDO = InventoryinitRequestMainConvert.INSTANCE.convert(createReqVO);
String messageMain = this.validatePurchasereceiptRequestMainImport(mainDO);
List<InventoryinitRequestDetailCreateReqVO> subList = createReqVO.getSubList();
@ -323,17 +378,133 @@ public class InventoryinitRequestMainServiceImpl implements InventoryinitRequest
if (flag) {
String number = serialNumberApi.generateCode(RuleCodeEnum.PURCHASE_RECEIPT_REQUEST.getCode());
mainDO.setNumber(number);
mainDO.setStatus(DictFrameworkUtils.parseDictDataValue(DictTypeConstants.REQUEST_STATUS, "新增"));
RequestsettingDO requestsettingDO = requestsettingService.selectRequestsettingExist("TransferDeliverRequest");
RequestStatusState requestStatusState = new RequestStatusState();
requestStatusState.newObject(requestsettingDO.getAutoCommit(), requestsettingDO.getAutoAgree(), requestsettingDO.getAutoExecute());
mainDO.setStatus(requestStatusState.getState().getCode());
mainDO.setAutoCommit(requestsettingDO.getAutoCommit());
mainDO.setAutoAgree(requestsettingDO.getAutoAgree());
mainDO.setAutoExecute(requestsettingDO.getAutoExecute());
mainDO.setDirectCreateRecord(requestsettingDO.getDirectCreateRecord());
inventoryinitRequestMainMapper.insert(mainDO);
trendsApi.createTrends(mainDO.getId(), "inventoryinitRequestMain", "导入了采购收货申请", TrendsTypeEnum.CREATE);
trendsApi.createTrends(mainDO.getId(), "InventoryInitialRequest", "导入了库存初始化申请", TrendsTypeEnum.CREATE);
for (InventoryinitRequestDetailDO detailDO : subDOList) {
detailDO.setMasterId(mainDO.getId());
detailDO.setNumber(number);
}
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, subDOList);
}
inventoryinitRequestDetailMapper.insertBatch(subDOList);
}
});
return errorList;
}
@Override
@Transactional
public Integer closeInventoryinitRequestMain(Long id) {
// 校验存在存在下级单据
InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.close();
if(!flag) {
throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_CLOSE);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "InventoryInitialRequest", "关闭了库存初始化申请", TrendsTypeEnum.UPDATE);
return inventoryinitRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer reAddInventoryinitRequestMain(Long id) {
// 校验存在存在下级单据
InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.reAdd();
if(!flag) {
throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_RE_ADD);
}
mainDO.setStatus(requestStatusState.getState().getCode());//增加操作记录
trendsApi.createTrends(id, "InventoryInitialRequest", "打开了库存初始化申请", TrendsTypeEnum.UPDATE);
return inventoryinitRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer submitInventoryinitRequestMain(Long id) {
InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.submit(mainDO.getAutoAgree(), mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_SUBMIT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, inventoryinitRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "InventoryInitialRequest", "提交了库存初始化申请", TrendsTypeEnum.UPDATE);
return inventoryinitRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer agreeInventoryinitRequestMain(Long id) {
// 校验存在
InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.agree(mainDO.getAutoExecute());
if(!flag) {
throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_AGREE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用自动执行方法
if(RequestStatusEnum.HANDLING.getCode().equals(mainDO.getStatus())) {
this.generateJob(mainDO, inventoryinitRequestDetailMapper.selectList(mainDO.getId()));
}
trendsApi.createTrends(id, "InventoryInitialRequest", "审批同意了库存初始化申请", TrendsTypeEnum.UPDATE);
return inventoryinitRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer handleInventoryinitRequestMain(Long id) {
// 校验存在
InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.handle();
if(!flag) {
throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_HANDLE);
}
mainDO.setStatus(requestStatusState.getState().getCode());
//调用执行方法
this.generateJob(mainDO, inventoryinitRequestDetailMapper.selectList(mainDO.getId()));
trendsApi.createTrends(id, "InventoryInitialRequest", "执行了库存初始化申请", TrendsTypeEnum.UPDATE);
return inventoryinitRequestMainMapper.updateById(mainDO);
}
@Override
@Transactional
public Integer refusedInventoryinitRequestMain(Long id) {
// 校验存在
InventoryinitRequestMainDO mainDO = valiteInventoryinitRequestMainExists(id);
RequestStatusState requestStatusState = new RequestStatusState(mainDO.getStatus());
boolean flag = requestStatusState.refused();
if(!flag) {
throw new ServiceException(INVENTORYINIT_REQUEST_CANNOT_ABORT);
}
mainDO.setStatus(requestStatusState.getState().getCode());
trendsApi.createTrends(id, "InventoryInitialRequest", "审批拒绝了库存初始化申请", TrendsTypeEnum.UPDATE);
return inventoryinitRequestMainMapper.updateById(mainDO);
}
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/itembasic/ItembasicServiceImpl.java

@ -344,7 +344,7 @@ public class ItembasicServiceImpl implements ItembasicService {
}
//公共方法 查询物料
public ItembasicDO selectItembasic(String code) {
QueryWrapper queryWrapper = new QueryWrapper();
QueryWrapper<ItembasicDO> queryWrapper = new QueryWrapper();
queryWrapper.eq("code",code);
queryWrapper.eq("available","TRUE");
queryWrapper.eq("status","ENABLE");

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/purchasereceiptRequest/PurchasereceiptRequestMainServiceImpl.java

@ -52,6 +52,7 @@ import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.supplier.SupplierService;
import com.win.module.wms.service.supplieritem.SupplieritemService;
import com.win.module.wms.util.JobUtils;
import io.swagger.v3.core.util.Json;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -85,8 +86,6 @@ public class PurchasereceiptRequestMainServiceImpl implements PurchasereceiptReq
@Resource
private SupplierService supplierService;
@Resource
private SupplieritemService supplieritemService;
@Resource
private RuleService ruleService;
@Resource
private SerialNumberApi serialNumberApi;

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/requestsetting/RequestsettingServiceImpl.java

@ -244,7 +244,7 @@ public class RequestsettingServiceImpl implements RequestsettingService {
}
@Override
public RequestsettingDO selectRequestsettingExist(String pcode){
QueryWrapper queryWrapper = new QueryWrapper();
QueryWrapper<RequestsettingDO> queryWrapper = new QueryWrapper();
queryWrapper.eq("code",pcode);
queryWrapper.eq("available","TRUE");
RequestsettingDO requestsettingDO = requestsettingMapper.selectOne(queryWrapper);

Loading…
Cancel
Save