Browse Source

制品报废子表新增与Bom拆解更新

master
赵雪冰 2 years ago
parent
commit
4dd6d575d6
  1. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailExportReqVO.java
  2. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailPageReqVO.java
  3. 10
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java
  4. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailBaseVO.java
  5. 3
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java
  6. 8
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainExportReqVO.java
  7. 9
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainPageReqVO.java
  8. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/ProductscrapRecordDetailDO.java
  9. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRecord/ProductscrapRecordDetailMapper.java
  10. 13
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestMainMapper.java
  11. 15
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestDetailService.java
  12. 87
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestDetailServiceImpl.java
  13. 7
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java
  14. 96
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java
  15. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailService.java
  16. 34
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailServiceImpl.java

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailExportReqVO.java

@ -91,4 +91,7 @@ public class ProductscrapRecordDetailExportReqVO {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主键ID")
private Long masterID;
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRecord/vo/ProductscrapRecordDetailPageReqVO.java

@ -93,4 +93,7 @@ public class ProductscrapRecordDetailPageReqVO extends PageParam {
@Schema(description = "任务明细ID")
private String jobDetailId;
@Schema(description = "主键ID")
private Long masterId;
}

10
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/ProductscrapRequestMainController.java

@ -9,6 +9,7 @@ import com.win.framework.excel.core.util.ExcelUtils;
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.productdismantleRequest.vo.ProductdismantleRequestDetailbUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.convert.productscrapRequest.ProductscrapRequestMainConvert;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
@ -225,4 +226,13 @@ public class ProductscrapRequestMainController {
return success(pageResult);
}
@PostMapping("/updateBom")
@Operation(summary = "更新制品报废申请二级子表")
@PreAuthorize("@ss.hasPermission('wms:productscrap-request-main:update')")
public CommonResult<Boolean> updateProductscrapDetailRequestBom(@RequestParam("id") Long id, @RequestBody List<RawscrapRequestDetailUpdateReqVO> updateReqVOList) {
productscrapRequestMainService.updateProductscrapDetailRequestBom(id, updateReqVOList);
return success(true);
}
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestDetailBaseVO.java

@ -25,22 +25,18 @@ public class ProductscrapRequestDetailBaseVO {
private String fromOwnerCode;
@Schema(description = "包装号", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "包装号不能为空")
private String packingNumber;
@Schema(description = "器具号")
private String containerNumber;
@Schema(description = "批次", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "批次不能为空")
private String batch;
@Schema(description = "从库位代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "从库位代码不能为空")
private String fromLocationCode;
@Schema(description = "库存状态", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "库存状态不能为空")
private String inventoryStatus;
@Schema(description = "原因")
@ -57,7 +53,6 @@ public class ProductscrapRequestDetailBaseVO {
private String remark;
@Schema(description = "创建时间", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "创建时间不能为空")
@DateTimeFormat(pattern = FORMAT_YEAR_MONTH_DAY_HOUR_MINUTE_SECOND)
private LocalDateTime createTime;
@ -97,4 +92,7 @@ public class ProductscrapRequestDetailBaseVO {
@Schema(description = "工序代码")
private String processCode;
@Schema(description = "主键ID")
private Long masterId;
}

3
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainBaseVO.java

@ -94,4 +94,7 @@ public class ProductscrapRequestMainBaseVO {
@Schema(description = "班次", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "班次不能为空")
private String shift;
@Schema(description = "主键ID")
private Long masterId;
}

8
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainExportReqVO.java

@ -71,4 +71,12 @@ public class ProductscrapRequestMainExportReqVO {
@Schema(description = "直接生成记录")
private String directCreateRecord;
@Schema(description = "车间代码")
private String workshopCode;
@Schema(description = "班组")
private String team;
@Schema(description = "班次")
private String shift;
}

9
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productscrapRequest/vo/ProductscrapRequestMainPageReqVO.java

@ -73,4 +73,13 @@ public class ProductscrapRequestMainPageReqVO extends PageParam {
@Schema(description = "直接生成记录")
private String directCreateRecord;
@Schema(description = "车间代码")
private String workshopCode;
@Schema(description = "班组")
private String team;
@Schema(description = "班次")
private String shift;
}

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/dataobject/productscrapRecord/ProductscrapRecordDetailDO.java

@ -115,7 +115,7 @@ public class ProductscrapRecordDetailDO extends BaseDO {
/**
* 主表ID
*/
private String masterId;
private Long masterId;
/**
* 单据号
*/

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRecord/ProductscrapRecordDetailMapper.java

@ -47,6 +47,7 @@ public interface ProductscrapRecordDetailMapper extends BaseMapperX<Productscrap
.betweenIfPresent(ProductscrapRecordDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ProductscrapRecordDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(ProductscrapRecordDetailDO::getJobDetailId, reqVO.getJobDetailId())
.eqIfPresent(ProductscrapRecordDetailDO::getMasterId, reqVO.getMasterId())
.orderByDesc(ProductscrapRecordDetailDO::getId));
}
default PageResult<ProductscrapRecordDetailDO> selectSenior(CustomConditions conditions) {
@ -79,6 +80,7 @@ public interface ProductscrapRecordDetailMapper extends BaseMapperX<Productscrap
.betweenIfPresent(ProductscrapRecordDetailDO::getCreateTime, reqVO.getCreateTime())
.eqIfPresent(ProductscrapRecordDetailDO::getCreator, reqVO.getCreator())
.eqIfPresent(ProductscrapRecordDetailDO::getJobDetailId, reqVO.getJobDetailId())
.eqIfPresent(ProductscrapRecordDetailDO::getMasterId, reqVO.getMasterID())
.orderByDesc(ProductscrapRecordDetailDO::getId));
}

13
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/dal/mysql/productscrapRequest/ProductscrapRequestMainMapper.java

@ -1,18 +1,17 @@
package com.win.module.wms.dal.mysql.productscrapRequest;
import java.util.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.framework.common.pojo.PageResult;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.mapper.BaseMapperX;
import com.win.framework.mybatis.core.query.LambdaQueryWrapperX;
import com.win.framework.mybatis.core.util.QueryWrapperUtils;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainExportReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestMainPageReqVO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.purchaseclaimRequest.PurchaseclaimRequestMainDO;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* 制品报废申请主 Mapper
*
@ -41,6 +40,9 @@ public interface ProductscrapRequestMainMapper extends BaseMapperX<ProductscrapR
.eqIfPresent(ProductscrapRequestMainDO::getAutoAgree, reqVO.getAutoAgree())
.eqIfPresent(ProductscrapRequestMainDO::getAutoExecute, reqVO.getAutoExecute())
.eqIfPresent(ProductscrapRequestMainDO::getDirectCreateRecord, reqVO.getDirectCreateRecord())
.eqIfPresent(ProductscrapRequestMainDO::getWorkshopCode, reqVO.getWorkshopCode())
.eqIfPresent(ProductscrapRequestMainDO::getTeam, reqVO.getTeam())
.eqIfPresent(ProductscrapRequestMainDO::getShift, reqVO.getShift())
.orderByDesc(ProductscrapRequestMainDO::getId));
}
@ -68,6 +70,9 @@ public interface ProductscrapRequestMainMapper extends BaseMapperX<ProductscrapR
.eqIfPresent(ProductscrapRequestMainDO::getAutoAgree, reqVO.getAutoAgree())
.eqIfPresent(ProductscrapRequestMainDO::getAutoExecute, reqVO.getAutoExecute())
.eqIfPresent(ProductscrapRequestMainDO::getDirectCreateRecord, reqVO.getDirectCreateRecord())
.eqIfPresent(ProductscrapRequestMainDO::getWorkshopCode, reqVO.getWorkshopCode())
.eqIfPresent(ProductscrapRequestMainDO::getTeam, reqVO.getTeam())
.eqIfPresent(ProductscrapRequestMainDO::getShift, reqVO.getShift())
.orderByDesc(ProductscrapRequestMainDO::getId));
}

15
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestDetailService.java

@ -4,12 +4,11 @@ import java.util.*;
import javax.validation.*;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailCreateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailExportReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailPageReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
/**
* 制品报废申请子 Service 接口
@ -80,4 +79,12 @@ public interface ProductscrapRequestDetailService {
*/
List<ProductscrapRequestDetailDO> getProductscrapRequestDetailList(ProductscrapRequestDetailExportReqVO exportReqVO);
/**
* 校验子表数据
* @param detailCreateReqVO
* @param businesstypeDO
* @param productscrapRequestMainDO
*/
void validateDetailMethod(ProductscrapRequestDetailBaseVO detailCreateReqVO, BusinesstypeDO businesstypeDO, ProductscrapRequestMainDO productscrapRequestMainDO);
}

87
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestDetailServiceImpl.java

@ -1,10 +1,22 @@
package com.win.module.wms.service.productscrapRequest;
import com.win.framework.common.pojo.CustomConditions;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailCreateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailExportReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailPageReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.ProductscrapRequestDetailUpdateReqVO;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.convert.productscrapRequest.RawscrapRequestDetailConvert;
import com.win.module.wms.dal.dataobject.businesstype.BusinesstypeDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productscrapRequest.ProductscrapRequestMainMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import org.springframework.validation.annotation.Validated;
@ -31,11 +43,28 @@ public class ProductscrapRequestDetailServiceImpl implements ProductscrapRequest
@Resource
private ProductscrapRequestDetailMapper productscrapRequestDetailMapper;
@Resource
private ProductscrapRequestMainMapper productscrapRequestMainMapper;
@Resource
private ProductionlineService productionlineService;
@Resource
private ItembasicService itembasicService;
@Resource
private WorkstationService workstationService;
@Resource
private JobUtils jobUtils;
@Resource
private RequestsettingService requestsettingService;
@Override
public Long createProductscrapRequestDetail(ProductscrapRequestDetailCreateReqVO createReqVO) {
// 插入
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
ProductscrapRequestMainDO productscrapRequestMainDO = productscrapRequestMainMapper.selectById(createReqVO.getMasterId());
// 校验数据
this.validateDetailMethod(createReqVO,businesstypeDO,productscrapRequestMainDO);
ProductscrapRequestDetailDO productscrapRequestDetail = ProductscrapRequestDetailConvert.INSTANCE.convert(createReqVO);
productscrapRequestDetail.setMasterId(createReqVO.getMasterId());
productscrapRequestDetail.setNumber(productscrapRequestMainDO.getNumber());
productscrapRequestDetailMapper.insert(productscrapRequestDetail);
// 返回
return productscrapRequestDetail.getId();
@ -45,8 +74,14 @@ public class ProductscrapRequestDetailServiceImpl implements ProductscrapRequest
public void updateProductscrapRequestDetail(ProductscrapRequestDetailUpdateReqVO updateReqVO) {
// 校验存在
validateProductscrapRequestDetailExists(updateReqVO.getId());
BusinesstypeDO businesstypeDO = jobUtils.selectDocumentSettingFromBusinessType("ProductScrapRequest");
ProductscrapRequestMainDO productscrapRequestMainDO = productscrapRequestMainMapper.selectById(updateReqVO.getMasterId());
// 校验数据
this.validateDetailMethod(updateReqVO,businesstypeDO,productscrapRequestMainDO);
// 更新
ProductscrapRequestDetailDO updateObj = ProductscrapRequestDetailConvert.INSTANCE.convert(updateReqVO);
updateObj.setMasterId(updateReqVO.getMasterId());
updateObj.setNumber(productscrapRequestMainDO.getNumber());
productscrapRequestDetailMapper.updateById(updateObj);
}
@ -57,10 +92,12 @@ public class ProductscrapRequestDetailServiceImpl implements ProductscrapRequest
// 删除
productscrapRequestDetailMapper.deleteById(id);
}
@Override
public PageResult<ProductscrapRequestDetailDO> getProductscrapRequestDetailSenior(CustomConditions conditions) {
return productscrapRequestDetailMapper.selectSenior(conditions);
}
private void validateProductscrapRequestDetailExists(Long id) {
if (productscrapRequestDetailMapper.selectById(id) == null) {
throw exception(PRODUCTSCRAP_REQUEST_DETAIL_NOT_EXISTS);
@ -87,4 +124,44 @@ public class ProductscrapRequestDetailServiceImpl implements ProductscrapRequest
return productscrapRequestDetailMapper.selectList(exportReqVO);
}
@Override
public void validateDetailMethod(ProductscrapRequestDetailBaseVO detailCreateReqVO, BusinesstypeDO businesstypeDO, ProductscrapRequestMainDO productscrapRequestMainDO) {
// 校验--生产线基本信息
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailCreateReqVO.getProductionLineCode());
detailCreateReqVO.setFromLocationCode(productionlineDO.getRawLocationCode());
// 校验--物品基本信息 BQ——>QI
ItembasicDO itembasic = validatorItembasic(detailCreateReqVO.getItemCode());
detailCreateReqVO.setItemDesc1(itembasic.getDesc1());
detailCreateReqVO.setItemDesc2(itembasic.getDesc2());
detailCreateReqVO.setItemName(itembasic.getName());
detailCreateReqVO.setProjectCode(itembasic.getProject());
detailCreateReqVO.setUom(itembasic.getUom());
// 校验--工位基础信息
if(StringUtils.isNotEmpty(detailCreateReqVO.getWorkStationCode())){
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailCreateReqVO.getWorkStationCode(), productscrapRequestMainDO.getWorkshopCode(), detailCreateReqVO.getProductionLineCode());
detailCreateReqVO.setFromLocationCode(workstationDO.getRawLocationCode());
}
// 校验--uom
// validatorUom(detailCreateReqVO.getUom(), itembasic.getUom());
// 校验--物品类型 DBT---DBT2---IT1
jobUtils.ifInType(itembasic.getType(), businesstypeDO);
// 校验--来源库位 DBT——>DBT2——>LO
jobUtils.ifInToLocationType(detailCreateReqVO.getFromLocationCode(), businesstypeDO);
// 校验--库存状态 DBT——>DBT2——>ISO
// jobUtils.ifOutInventoryStatuses(detailCreateReqVO.getInventoryStatus(), businesstypeDO);
// 校验--库存余额 TB——>TB1
// List<String> business = validatorbusinessbasic(detailCreateReqVO.getInventoryStatus());
// List<BalanceDO> balance = validatorbalance(detailCreateReqVO.getItemCode(), detailCreateReqVO.getPackingNumber(),detailCreateReqVO.getBatch(), detailCreateReqVO.getFromLocationCode(), business);
// BalanceDO balanceDO = balance.get(0);
// productscrapRequestMainDO.setFromWarehouseCode(balanceDO.getWarehouseCode());
// productscrapRequestMainDO.setDueTime(balanceDO.getExpireDate());
// detailCreateReqVO.setFromLocationCode(balanceDO.getLocationCode());
// // 校验 报废数量【qty】不能大于库存数量【banlance.qty】
// validatorQty(detailCreateReqVO.getQty(), balanceDO.getQty());
}
private ItembasicDO validatorItembasic(String itemCode) {
return itembasicService.selectItembasic(itemCode);
}
}

7
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainService.java

@ -136,4 +136,11 @@ public interface ProductscrapRequestMainService {
* @return 分页列表数据
*/
PageResult<ProductscrapRequestBomRespVO> getBomInfoPage(ProductscrapRequestDetailPageReqVO pageVO);
/**
* 更新BOM拆解二级子表数据
* @param id 一级子表的ID
* @param updateReqVOList 二级子表列表数据
*/
void updateProductscrapDetailRequestBom(Long id, List<RawscrapRequestDetailUpdateReqVO> updateReqVOList);
}

96
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/ProductscrapRequestMainServiceImpl.java

@ -1,6 +1,7 @@
package com.win.module.wms.service.productscrapRequest;
import cn.hutool.core.collection.CollUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.annotations.VisibleForTesting;
import com.win.framework.common.exception.ServiceException;
@ -28,7 +29,6 @@ import com.win.module.wms.convert.productscrapRequest.RawscrapRequestDetailConve
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.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productionline.ProductionlineDO;
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRecord.ProductscrapRecordMainDO;
import com.win.module.wms.dal.dataobject.productscrapRecord.RawscrapRecordDetailDO;
@ -39,7 +39,6 @@ import com.win.module.wms.dal.dataobject.requestsetting.RequestsettingDO;
import com.win.module.wms.dal.dataobject.shift.ShiftDO;
import com.win.module.wms.dal.dataobject.team.TeamDO;
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO;
import com.win.module.wms.dal.dataobject.workstation.WorkstationDO;
import com.win.module.wms.dal.mysql.productscrapRecord.ProductscrapRecordDetailMapper;
import com.win.module.wms.dal.mysql.productscrapRecord.ProductscrapRecordMainMapper;
import com.win.module.wms.dal.mysql.productscrapRecord.RawscrapRecordDetailMapper;
@ -49,14 +48,12 @@ import com.win.module.wms.dal.mysql.productscrapRequest.RawscrapRequestDetailMap
import com.win.module.wms.enums.request.RequestStatusEnum;
import com.win.module.wms.enums.request.RequestStatusState;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.team.TeamService;
import com.win.module.wms.service.transaction.TransactionService;
import com.win.module.wms.service.workshop.WorkshopService;
import com.win.module.wms.service.workstation.WorkstationService;
import com.win.module.wms.util.JobUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
@ -123,9 +120,9 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
@Resource
private ShiftService shiftService;
@Resource
private ProductionlineService productionlineService;
private ProductscrapRequestDetailService productscrapRequestDetailService;
@Resource
private WorkstationService workstationService;
private RawscrapRequestDetailService rawscrapRequestDetailService;
@Override
public Long createProductscrapRequestMain(ProductscrapRequestMainCreateReqVO createReqVO) {
@ -216,7 +213,8 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
// 子表校验
List<ProductscrapRequestDetailCreateReqVO> subList = createReqVO.getSubList();
for(ProductscrapRequestDetailCreateReqVO detailCreateReqVO:subList){
validateDetailMethod(detailCreateReqVO, businesstypeDO,mainBo);
// 子表数据校验
productscrapRequestDetailService.validateDetailMethod(detailCreateReqVO, businesstypeDO,mainBo);
}
String number = serialNumberApi.generateCode(RuleCodeEnum.PRODUCT_SCRAP_REQUEST.getCode());
mainBo.setNumber(number);
@ -233,7 +231,7 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
rawscrapRequestDetailDO.setMasterId(detailDO.getId());
rawscrapRequestDetailDO.setNumber(detailDO.getNumber());
// 校验--二级子表数据
validateDetailbBom(rawscrapRequestDetailDO,detailDO,mainBo);
rawscrapRequestDetailService.validateDetailbBom(rawscrapRequestDetailDO,detailDO,mainBo);
rawscrapRequestDetailDO.setId(null);
childList.add(rawscrapRequestDetailDO);
}
@ -242,62 +240,6 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
return mainBo;
}
private void validateDetailbBom(RawscrapRequestDetailDO rawscrapRequestDetailDO, ProductscrapRequestDetailDO detailDO, ProductscrapRequestMainDO mainBo) {
// 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(rawscrapRequestDetailDO.getItemCode());
// 赋值物品Item相关信息
rawscrapRequestDetailDO.setItemDesc1(itembasicDO.getDesc1());
rawscrapRequestDetailDO.setItemDesc2(itembasicDO.getDesc2());
rawscrapRequestDetailDO.setItemName(itembasicDO.getName());
rawscrapRequestDetailDO.setProjectCode(itembasicDO.getProject());
// 校验库存余额
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("OK"); // 查询合格的边料库存余额
List<BalanceDO> list = jobUtils.selectlocationReturnManagementAccuracy(rawscrapRequestDetailDO.getItemCode(),null,null,detailDO.getFromLocationCode(),inventoryStatus);
BalanceDO balanceDO = list.get(0); // 去第一条库存余额
rawscrapRequestDetailDO.setInventoryStatus(balanceDO.getInventoryStatus());
rawscrapRequestDetailDO.setBatch(balanceDO.getBatch());
rawscrapRequestDetailDO.setPackingNumber(balanceDO.getPackingNumber());
rawscrapRequestDetailDO.setFromLocationCode(balanceDO.getLocationCode());
rawscrapRequestDetailDO.setCreateTime(LocalDateTime.now());
rawscrapRequestDetailDO.setCreator(null);
}
private void validateDetailMethod(ProductscrapRequestDetailBaseVO detailCreateReqVO, BusinesstypeDO businesstypeDO, ProductscrapRequestMainDO productscrapRequestMainDO) {
// 校验--生产线基本信息
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailCreateReqVO.getProductionLineCode());
detailCreateReqVO.setFromLocationCode(productionlineDO.getRawLocationCode());
// 校验--物品基本信息 BQ——>QI
ItembasicDO itembasic = validatorItembasic(detailCreateReqVO.getItemCode());
detailCreateReqVO.setItemDesc1(itembasic.getDesc1());
detailCreateReqVO.setItemDesc2(itembasic.getDesc2());
detailCreateReqVO.setItemName(itembasic.getName());
detailCreateReqVO.setProjectCode(itembasic.getProject());
detailCreateReqVO.setUom(itembasic.getUom());
// 校验--工位基础信息
if(StringUtils.isNotEmpty(detailCreateReqVO.getWorkStationCode())){
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailCreateReqVO.getWorkStationCode(), productscrapRequestMainDO.getWorkshopCode(), detailCreateReqVO.getProductionLineCode());
detailCreateReqVO.setFromLocationCode(workstationDO.getRawLocationCode());
}
// 校验--uom
// validatorUom(detailCreateReqVO.getUom(), itembasic.getUom());
// 校验--物品类型 DBT---DBT2---IT1
jobUtils.ifInType(itembasic.getType(), businesstypeDO);
// 校验--来源库位 DBT——>DBT2——>LO
jobUtils.ifInToLocationType(detailCreateReqVO.getFromLocationCode(), businesstypeDO);
// 校验--库存状态 DBT——>DBT2——>ISO
// jobUtils.ifOutInventoryStatuses(detailCreateReqVO.getInventoryStatus(), businesstypeDO);
// 校验--库存余额 TB——>TB1
// List<String> business = validatorbusinessbasic(detailCreateReqVO.getInventoryStatus());
// List<BalanceDO> balance = validatorbalance(detailCreateReqVO.getItemCode(), detailCreateReqVO.getPackingNumber(),detailCreateReqVO.getBatch(), detailCreateReqVO.getFromLocationCode(), business);
// BalanceDO balanceDO = balance.get(0);
// productscrapRequestMainDO.setFromWarehouseCode(balanceDO.getWarehouseCode());
// productscrapRequestMainDO.setDueTime(balanceDO.getExpireDate());
// detailCreateReqVO.setFromLocationCode(balanceDO.getLocationCode());
// // 校验 报废数量【qty】不能大于库存数量【banlance.qty】
// validatorQty(detailCreateReqVO.getQty(), balanceDO.getQty());
}
private ProductscrapRequestMainDO validateMainMethod(ProductscrapRequestMainBaseVO baseVO, BusinesstypeDO businesstypeDO, RequestsettingDO requestsettingDO) {
ProductscrapRequestMainDO productscrapRequestMainDO = ProductscrapRequestMainConvert.INSTANCE.convert(baseVO);
RequestStatusState requestStatusState = new RequestStatusState();
@ -376,7 +318,8 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
List<ProductscrapRequestDetailUpdateReqVO> subList = updateReqVO.getSubList();
if(subList!=null) {
for (ProductscrapRequestDetailUpdateReqVO detailUpdateReqVO : subList) {
validateDetailMethod(detailUpdateReqVO, businesstypeDO, productputawayRequestMainDO);
// 子表数据校验
productscrapRequestDetailService.validateDetailMethod(detailUpdateReqVO, businesstypeDO, productputawayRequestMainDO);
}
List<ProductscrapRequestDetailDO> subDOList = ProductscrapRequestDetailConvert.INSTANCE.convertList05(subList);
productscrapRequestDetailMapper.updateBatch(subDOList);
@ -731,5 +674,28 @@ public class ProductscrapRequestMainServiceImpl implements ProductscrapRequestMa
PageResult<ProductscrapRequestBomRespVO> pageResult = new PageResult(myPage.getRecords(),myPage.getTotal());
return pageResult;
}
@Transactional
@Override
public void updateProductscrapDetailRequestBom(Long id, List<RawscrapRequestDetailUpdateReqVO> updateReqVOList) {
// 删除之前的数据
LambdaQueryWrapper<RawscrapRequestDetailDO> requestDetailDOLambdaQueryWrapper = new LambdaQueryWrapper<>();
requestDetailDOLambdaQueryWrapper.eq(RawscrapRequestDetailDO::getMasterId,id);
rawscrapRequestDetailMapper.delete(requestDetailDOLambdaQueryWrapper);
// 查询子表数据
ProductscrapRequestDetailDO productscrapRequestDetailDO = productscrapRequestDetailMapper.selectById(id);
ProductscrapRequestMainDO productscrapRequestMainDO = productscrapRequestMainMapper.selectById(productscrapRequestDetailDO.getMasterId());
List<RawscrapRequestDetailDO> childList = new ArrayList<>();
for(RawscrapRequestDetailUpdateReqVO rawscrapRequestDetailUpdateReqVO:updateReqVOList){
RawscrapRequestDetailDO rawscrapRequestDetailDO = RawscrapRequestDetailConvert.INSTANCE.convert(rawscrapRequestDetailUpdateReqVO);
rawscrapRequestDetailDO.setMasterId(productscrapRequestDetailDO.getId());
rawscrapRequestDetailDO.setNumber(productscrapRequestDetailDO.getNumber());
// 校验--二级子表数据
rawscrapRequestDetailService.validateDetailbBom(rawscrapRequestDetailDO,productscrapRequestDetailDO,productscrapRequestMainDO);
rawscrapRequestDetailDO.setId(null);
childList.add(rawscrapRequestDetailDO);
}
rawscrapRequestDetailMapper.insertBatch(childList);
}
}

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailService.java

@ -2,6 +2,8 @@ package com.win.module.wms.service.productscrapRequest;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO;
import javax.validation.Valid;
@ -77,5 +79,13 @@ public interface RawscrapRequestDetailService {
* @param updatePart 是否支持更新
* @return 导入结果
*/
public List<RawscrapRequestDetailExcelVO> importRawscrapRequestDetailList(List<RawscrapRequestDetailExcelVO> datas, Integer mode, boolean updatePart);
List<RawscrapRequestDetailExcelVO> importRawscrapRequestDetailList(List<RawscrapRequestDetailExcelVO> datas, Integer mode, boolean updatePart);
/**
* 校验子表数据
* @param rawscrapRequestDetailDO 请求数据
* @param detailDO 一级子表
* @param mainBo 主表
*/
void validateDetailbBom(RawscrapRequestDetailDO rawscrapRequestDetailDO, ProductscrapRequestDetailDO detailDO, ProductscrapRequestMainDO mainBo);
}

34
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productscrapRequest/RawscrapRequestDetailServiceImpl.java

@ -4,12 +4,19 @@ import cn.hutool.core.collection.CollUtil;
import com.win.framework.common.pojo.PageResult;
import com.win.module.wms.controller.productscrapRequest.vo.*;
import com.win.module.wms.convert.productscrapRequest.RawscrapRequestDetailConvert;
import com.win.module.wms.dal.dataobject.balance.BalanceDO;
import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestDetailDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.ProductscrapRequestMainDO;
import com.win.module.wms.dal.dataobject.productscrapRequest.RawscrapRequestDetailDO;
import com.win.module.wms.dal.mysql.productscrapRequest.RawscrapRequestDetailMapper;
import com.win.module.wms.service.itembasic.ItembasicService;
import com.win.module.wms.util.JobUtils;
import org.springframework.stereotype.Service;
import org.springframework.validation.annotation.Validated;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Collection;
import java.util.List;
@ -29,6 +36,10 @@ public class RawscrapRequestDetailServiceImpl implements RawscrapRequestDetailSe
@Resource
private RawscrapRequestDetailMapper rawscrapRequestDetailMapper;
@Resource
private ItembasicService itembasicService;
@Resource
private JobUtils jobUtils;
@Override
public Long createRawscrapRequestDetail(RawscrapRequestDetailCreateReqVO createReqVO) {
@ -106,4 +117,27 @@ public class RawscrapRequestDetailServiceImpl implements RawscrapRequestDetailSe
return errorList;
}
@Override
public void validateDetailbBom(RawscrapRequestDetailDO rawscrapRequestDetailDO, ProductscrapRequestDetailDO detailDO, ProductscrapRequestMainDO mainBo) {
// 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(rawscrapRequestDetailDO.getItemCode());
// 赋值物品Item相关信息
rawscrapRequestDetailDO.setItemDesc1(itembasicDO.getDesc1());
rawscrapRequestDetailDO.setItemDesc2(itembasicDO.getDesc2());
rawscrapRequestDetailDO.setItemName(itembasicDO.getName());
rawscrapRequestDetailDO.setProjectCode(itembasicDO.getProject());
// 校验库存余额
List<String> inventoryStatus = new ArrayList<>();
inventoryStatus.add("OK"); // 查询合格的边料库存余额
List<BalanceDO> list = jobUtils.selectlocationReturnManagementAccuracy(rawscrapRequestDetailDO.getItemCode(),null,null,detailDO.getFromLocationCode(),inventoryStatus);
BalanceDO balanceDO = list.get(0); // 去第一条库存余额
rawscrapRequestDetailDO.setInventoryStatus(balanceDO.getInventoryStatus());
rawscrapRequestDetailDO.setBatch(balanceDO.getBatch());
rawscrapRequestDetailDO.setPackingNumber(balanceDO.getPackingNumber());
rawscrapRequestDetailDO.setFromLocationCode(balanceDO.getLocationCode());
rawscrapRequestDetailDO.setCreateTime(LocalDateTime.now());
rawscrapRequestDetailDO.setCreator(null);
}
}

Loading…
Cancel
Save