Browse Source

Merge remote-tracking branch 'origin/master'

master
赵雪冰 2 years ago
parent
commit
d02309da65
  1. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineitemBaseVO.java
  2. 1
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/vo/StdcostpriceBaseVO.java
  3. 34
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainServiceImpl.java
  4. 12
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java
  5. 21
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java
  6. 2
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java
  7. 30
      win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/productionlineitem/vo/ProductionlineitemBaseVO.java

@ -20,11 +20,9 @@ public class ProductionlineitemBaseVO {
private Long id; private Long id;
@Schema(description = "完工收货库位", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "完工收货库位", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "完工收货库位不能为空")
private String fgLocationCode; private String fgLocationCode;
@Schema(description = "产线代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "产线代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "产线代码不能为空")
private String productionLineCode; private String productionLineCode;
@Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "物品代码", requiredMode = Schema.RequiredMode.REQUIRED)

1
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/controller/stdcostprice/vo/StdcostpriceBaseVO.java

@ -21,7 +21,6 @@ public class StdcostpriceBaseVO {
private Long id; private Long id;
@Schema(description = "供应商代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "供应商代码", requiredMode = Schema.RequiredMode.REQUIRED)
@NotNull(message = "供应商代码不能为空")
private String supplierCode; private String supplierCode;
@Schema(description = "物料代码", requiredMode = Schema.RequiredMode.REQUIRED) @Schema(description = "物料代码", requiredMode = Schema.RequiredMode.REQUIRED)

34
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/packageovermain/PackageoverMainServiceImpl.java

@ -171,7 +171,7 @@ public class PackageoverMainServiceImpl implements PackageoverMainService {
transactionCreateReqVOOut.setId(null); transactionCreateReqVOOut.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOOut); transactionCreateReqVOList.add(transactionCreateReqVOOut);
// 更新包装信息——来源包装 // 更新包装信息——来源包装
updatePackageDO(detailDO.getFromPackingNumber(),detailDO.getFromQty()); updatePackageDO(detailDO.getFromPackingNumber(),balanceDO.get(0).getQty().subtract(detailDO.getFromQty()));
// 查询一翻几的规则 在基础包装中 翻几 = 标包数量/替代标包数量 库存余额中不够分配的 向上取整 // 查询一翻几的规则 在基础包装中 翻几 = 标包数量/替代标包数量 库存余额中不够分配的 向上取整
// 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4 // 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4
// 例如:库存余额5 翻3包 每包10 那么第一包数量5 // 例如:库存余额5 翻3包 每包10 那么第一包数量5
@ -210,13 +210,43 @@ public class PackageoverMainServiceImpl implements PackageoverMainService {
packageDO = packageService.createPackageLabel(packagecreateReqVO); packageDO = packageService.createPackageLabel(packagecreateReqVO);
packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
packageoverDetailDO.setToQty(balanceQty); packageoverDetailDO.setToQty(balanceQty);
// 库存事务——入
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO();
BeanUtils.copyProperties(packageoverDetailDO, transactionCreateReqVOIn);
transactionCreateReqVOIn.setBusinessType(businesstypeDO.getCode());
TransactiontypeDO transactiontypeDOIn = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType());
transactionCreateReqVOIn.setInventoryAction(transactiontypeDOIn.getInventoryAction());
transactionCreateReqVOIn.setTransactionType(transactiontypeDOIn.getCode());
transactionCreateReqVOIn.setWorker(String.valueOf(userRespDTO.getId()));
transactionCreateReqVOIn.setBatch(packageoverDetailDO.getToBatch());
transactionCreateReqVOIn.setPackingNumber(packageoverDetailDO.getToPackingNumber());
transactionCreateReqVOIn.setInventoryStatus(packageoverDetailDO.getToInventoryStatus());
transactionCreateReqVOIn.setLocationCode(packageoverDetailDO.getLocationCode());
transactionCreateReqVOIn.setSinglePrice(BigDecimal.ZERO);
transactionCreateReqVOIn.setAmount(BigDecimal.ZERO);
transactionCreateReqVOIn.setArriveDate(LocalDateTime.now());
transactionCreateReqVOIn.setProduceDate(LocalDateTime.now());
transactionCreateReqVOIn.setExpireDate(LocalDateTime.now());
transactionCreateReqVOIn.setWarehouseCode(mainDO.getWarehouseCode());
transactionCreateReqVOIn.setRecordNumber(number);
transactionCreateReqVOIn.setQty(packageoverDetailDO.getToQty());
transactionCreateReqVOIn.setId(null);
transactionCreateReqVOList.add(transactionCreateReqVOIn);
packageoverDetailDOList.add(packageoverDetailDO);
break; break;
} else { } else {
//库存余额数量 < 替代标包数量 //替代标包数量 < 库存余额数量
packagecreateReqVO.setQty(altPackQty); packagecreateReqVO.setQty(altPackQty);
packageDO = packageService.createPackageLabel(packagecreateReqVO); packageDO = packageService.createPackageLabel(packagecreateReqVO);
packageoverDetailDO.setToPackingNumber(packageDO.getNumber()); packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
packageoverDetailDO.setToQty(altPackQty); packageoverDetailDO.setToQty(altPackQty);
// 当 循环最后一次 库存余额数 仍然 大于 替代标包数量 最后一包放入所有库存数量
if (overCount.intValue()-1 == i) {
packagecreateReqVO.setQty(balanceQty);
packageDO = packageService.createPackageLabel(packagecreateReqVO);
packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
packageoverDetailDO.setToQty(balanceQty);
}
balanceQty = balanceQty.subtract(altPackQty); balanceQty = balanceQty.subtract(altPackQty);
} }
packageoverDetailDOList.add(packageoverDetailDO); packageoverDetailDOList.add(packageoverDetailDO);

12
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestDetailaServiceImpl.java

@ -101,7 +101,7 @@ public class ProductdismantleRequestDetailaServiceImpl implements Productdismant
private void validateDetailMethod(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaDO detailDo, BusinesstypeDO businesstypeDO) { private void validateDetailMethod(ProductdismantleRequestMainDO mainDO, ProductdismantleRequestDetailaDO detailDo, BusinesstypeDO businesstypeDO) {
// 校验--生产线基本信息 // 校验--生产线基本信息
ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDo.getProductionLineCode()); ProductionlineDO productionlineDO = productionlineService.productionLineCodeExist(detailDo.getProductionLineCode());
detailDo.setFromLocationCode(productionlineDO.getRawLocationCode()); // detailDo.setFromLocationCode(productionlineDO.getRawLocationCode());
// 校验--物品基本信息 // 校验--物品基本信息
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode()); ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDo.getItemCode());
// 赋值物品Item相关信息 // 赋值物品Item相关信息
@ -113,11 +113,11 @@ public class ProductdismantleRequestDetailaServiceImpl implements Productdismant
// 提示:计量单位【uom】错误,应该是【item.uom】 // 提示:计量单位【uom】错误,应该是【item.uom】
throw exception(ITEMBASIC_UOM_EXCEPTION,detailDo.getUom(),itembasicDO.getUom()); throw exception(ITEMBASIC_UOM_EXCEPTION,detailDo.getUom(),itembasicDO.getUom());
} }
// 校验--工位基础信息 // 校验--工位基础信息 以库存余额中的库位为准 此处无需赋值
if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){ // if(StringUtils.isNotEmpty(detailDo.getWorkStationCode())){
WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode()); // WorkstationDO workstationDO = workstationService.selectWorkstationExist(detailDo.getWorkStationCode(), mainDO.getWorkshopCode(), detailDo.getProductionLineCode());
detailDo.setFromLocationCode(workstationDO.getRawLocationCode()); // detailDo.setFromLocationCode(workstationDO.getRawLocationCode());
} // }
// 校验--库存余额 TB——>TB1 // 校验--库存余额 TB——>TB1
validateBalance(detailDo,mainDO); validateBalance(detailDo,mainDO);
// 校验--物品类型 DBT——>DBT2——>IT // 校验--物品类型 DBT——>DBT2——>IT

21
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productdismantleRequest/ProductdismantleRequestMainServiceImpl.java

@ -1,6 +1,7 @@
package com.win.module.wms.service.productdismantleRequest; package com.win.module.wms.service.productdismantleRequest;
import cn.hutool.core.exceptions.UtilException; import cn.hutool.core.exceptions.UtilException;
import cn.hutool.json.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.win.framework.common.exception.ServiceException; import com.win.framework.common.exception.ServiceException;
import com.win.framework.common.pojo.CustomConditions; import com.win.framework.common.pojo.CustomConditions;
@ -14,6 +15,7 @@ import com.win.module.wms.controller.productdismantleRequest.vo.*;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaBaseVO; import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaBaseVO;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaCreateReqVO; import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailaCreateReqVO;
import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbCreateReqVO; import com.win.module.wms.controller.productrepairRequest.vo.ProductrepairRequestDetailbCreateReqVO;
import com.win.module.wms.controller.rule.vo.RuleRespVO;
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailaConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailaConvert;
import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert; import com.win.module.wms.convert.productdismantleRequest.ProductdismantleRequestDetailbConvert;
@ -56,6 +58,7 @@ import com.win.module.wms.service.location.LocationService;
import com.win.module.wms.service.productionline.ProductionlineService; import com.win.module.wms.service.productionline.ProductionlineService;
import com.win.module.wms.service.recordsetting.RecordsettingService; import com.win.module.wms.service.recordsetting.RecordsettingService;
import com.win.module.wms.service.requestsetting.RequestsettingService; import com.win.module.wms.service.requestsetting.RequestsettingService;
import com.win.module.wms.service.rule.RuleService;
import com.win.module.wms.service.shift.ShiftService; import com.win.module.wms.service.shift.ShiftService;
import com.win.module.wms.service.team.TeamService; import com.win.module.wms.service.team.TeamService;
import com.win.module.wms.service.transaction.TransactionService; import com.win.module.wms.service.transaction.TransactionService;
@ -90,6 +93,8 @@ import static com.win.module.wms.enums.ErrorCodeConstants.*;
@Validated @Validated
public class ProductdismantleRequestMainServiceImpl implements ProductdismantleRequestMainService { public class ProductdismantleRequestMainServiceImpl implements ProductdismantleRequestMainService {
@Resource
private RuleService ruleService;
@Resource @Resource
private TransactionService transactionService; private TransactionService transactionService;
@Resource @Resource
@ -548,6 +553,22 @@ public class ProductdismantleRequestMainServiceImpl implements ProductdismantleR
productdismantleRecordDetailbDO.setCreator(null); productdismantleRecordDetailbDO.setCreator(null);
productdismantleRecordDetailbDO.setUpdateTime(null); productdismantleRecordDetailbDO.setUpdateTime(null);
productdismantleRecordDetailbDO.setUpdater(null); productdismantleRecordDetailbDO.setUpdater(null);
// 查询管理精度策略
// RuleRespVO managementtRule = ruleService.management(null, null, productdismantleRequestDetailbDO.getItemCode(), workstationDO.getRawLocationCode(), null, null);
// JSONObject jsonObject = new JSONObject(managementtRule.getConfiguration());
// if(!"TRUE".equals(jsonObject.getStr("ManagementPrecision"))) {
// this.deleteById(balanceDO.getId());
// }
// if ("{\"ManagementPrecision\":\"BY_QUANTITY\"}".equals(managementtRule.getConfiguration())) {
// balanceDOList = balanceService.selectByNumber(itemcode, inventoryStatus, locationcode);
// } else if ("{\"ManagementPrecision\":\"BY_BATCH\"}".equals(managementtRule.getConfiguration())) {
// balanceDOList = balanceService.selectByBatch(itemcode, batch, inventoryStatus, locationcode);
// } else if ("{\"ManagementPrecision\":\"BY_PACKAGING\"}".equals(managementtRule.getConfiguration())) {
// balanceDOList = balanceService.selectByPackaging(itemcode, packingnumber, batch, inventoryStatus, locationcode);
// } else if ("{\"ManagementPrecision\":\"BY_UNIQUE_ID\"}".equals(managementtRule.getConfiguration())) {
// balanceDOList = balanceService.selectByUniqueId(packingnumber, locationcode, inventoryStatus);
// }
detailbDOList.add(productdismantleRecordDetailbDO); detailbDOList.add(productdismantleRecordDetailbDO);
//添加库存事务list //添加库存事务list
// 入动作 // 入动作

2
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/productionlineitem/ProductionlineitemServiceImpl.java

@ -135,7 +135,7 @@ public class ProductionlineitemServiceImpl implements ProductionlineitemService
// 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确 // 关闭数据权限,避免因为没有数据权限,查询不到数据,进而导致唯一校验不正确
DataPermissionUtils.executeIgnore(() -> { DataPermissionUtils.executeIgnore(() -> {
validateProductionlineitemExists(id); validateProductionlineitemExists(id);
validateFgLocationCodeExists(fgLocationCode); // validateFgLocationCodeExists(fgLocationCode);
validateProductionLineCodeExists(productionLineCode); validateProductionLineCodeExists(productionLineCode);
validateItemCodeExists(itemCode); validateItemCodeExists(itemCode);
validateAvailableExists(available); validateAvailableExists(available);

30
win-module-wms/win-module-wms-biz/src/main/java/com/win/module/wms/service/stdcostprice/StdcostpriceServiceImpl.java

@ -106,11 +106,11 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
} catch (ServiceException ex) { } catch (ServiceException ex) {
message.append(ex.getMessage()).append(","); message.append(ex.getMessage()).append(",");
} }
try { // try {
validateSuppercodeExists(stdcostprice.getSupplierCode()); // validateSuppercodeExists(stdcostprice.getSupplierCode());
} catch (ServiceException ex) { // } catch (ServiceException ex) {
message.append(ex.getMessage()).append(","); // message.append(ex.getMessage()).append(",");
} // }
try { try {
validateCurrencyExists(stdcostprice.getCurrency()); validateCurrencyExists(stdcostprice.getCurrency());
} catch (ServiceException ex) { } catch (ServiceException ex) {
@ -172,7 +172,7 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
validateStdcostpriceExists(id); validateStdcostpriceExists(id);
// 校验code唯一 // 校验code唯一
validateCodeExists(id,itemcode,suppercode); validateCodeExists(id,itemcode,suppercode);
validateSuppercodeExists(suppercode); // validateSuppercodeExists(suppercode);
validateCurrencyExists(currency); validateCurrencyExists(currency);
validatePriceExists(price); validatePriceExists(price);
validateAvailableExists(available); validateAvailableExists(available);
@ -194,9 +194,9 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
if (itemcode.isEmpty()) { if (itemcode.isEmpty()) {
throw exception(STDCOSTPRICE_ITEN_CODE_NOT_EXISTS); throw exception(STDCOSTPRICE_ITEN_CODE_NOT_EXISTS);
} }
if (suppercode.isEmpty()) { // if (suppercode.isEmpty()) {
throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS); // throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
} // }
if (StrUtil.isBlank(itemcode)) { if (StrUtil.isBlank(itemcode)) {
return; return;
} }
@ -216,12 +216,12 @@ public class StdcostpriceServiceImpl implements StdcostpriceService {
} }
} }
@VisibleForTesting // @VisibleForTesting
private void validateSuppercodeExists(String suppercode) { // private void validateSuppercodeExists(String suppercode) {
if (suppercode.isEmpty()) { // if (suppercode.isEmpty()) {
throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS); // throw exception(STDCOSTPRICE_SUPPLIER_CODE_NOT_EXISTS);
} // }
} // }
@VisibleForTesting @VisibleForTesting
private void validateCurrencyExists(String currency) { private void validateCurrencyExists(String currency) {
if (currency.isEmpty()) { if (currency.isEmpty()) {

Loading…
Cancel
Save