|
|
@ -8,6 +8,7 @@ import com.win.module.system.api.serialnumber.SerialNumberApi; |
|
|
|
import com.win.module.system.api.user.AdminUserApi; |
|
|
|
import com.win.module.system.api.user.dto.AdminUserRespDTO; |
|
|
|
import com.win.module.system.enums.serialNumber.RuleCodeEnum; |
|
|
|
import com.win.module.wms.controller.packageMassage.vo.PackageCreateReqVO; |
|
|
|
import com.win.module.wms.controller.transaction.vo.TransactionCreateReqVO; |
|
|
|
import com.win.module.wms.convert.packageovermain.PackageoverDetailConvert; |
|
|
|
import com.win.module.wms.dal.dataobject.areabasic.AreabasicDO; |
|
|
@ -17,6 +18,7 @@ import com.win.module.wms.dal.dataobject.itembasic.ItembasicDO; |
|
|
|
import com.win.module.wms.dal.dataobject.itempackage.ItempackageDO; |
|
|
|
import com.win.module.wms.dal.dataobject.location.LocationDO; |
|
|
|
import com.win.module.wms.dal.dataobject.packageMassage.PackageDO; |
|
|
|
import com.win.module.wms.dal.dataobject.packageoverRequest.PackageoverRequestMainDO; |
|
|
|
import com.win.module.wms.dal.dataobject.packageovermain.PackageoverDetailDO; |
|
|
|
import com.win.module.wms.dal.dataobject.recordsetting.RecordsettingDO; |
|
|
|
import com.win.module.wms.dal.dataobject.transactiontype.TransactiontypeDO; |
|
|
@ -24,6 +26,7 @@ import com.win.module.wms.dal.mysql.packageMassage.PackageMapper; |
|
|
|
import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeDetailMapper; |
|
|
|
import com.win.module.wms.dal.mysql.packagemergemain.PackagemergeMainMapper; |
|
|
|
import com.win.module.wms.dal.mysql.packageoverRecord.PackageoverRecordDetailMapper; |
|
|
|
import com.win.module.wms.enums.request.RequestStatusEnum; |
|
|
|
import com.win.module.wms.service.itembasic.ItembasicService; |
|
|
|
import com.win.module.wms.service.itempackage.ItempackageService; |
|
|
|
import com.win.module.wms.service.location.LocationService; |
|
|
@ -99,7 +102,7 @@ public class PackageoverRecordMainServiceImpl implements PackageoverRecordMainSe |
|
|
|
Long userId = getLoginUserId(); |
|
|
|
AdminUserRespDTO userRespDTO = userApi.getUser(userId); |
|
|
|
PackageoverMainDO mainDO = PackageoverMainConvert.INSTANCE.convert(createReqVO); |
|
|
|
List<PackageoverDetailDO> subDOList = PackageoverDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); |
|
|
|
|
|
|
|
String number = serialNumberApi.generateCode(RuleCodeEnum.OVER_PACKAGE_RECORD.getCode()); |
|
|
|
mainDO.setNumber(number); |
|
|
|
mainDO.setDepartmentCode(String.valueOf(userRespDTO.getDeptId())); |
|
|
@ -116,181 +119,145 @@ public class PackageoverRecordMainServiceImpl implements PackageoverRecordMainSe |
|
|
|
RecordsettingDO recordsettingDO = recordsettingService.selectRecordsettingExist("OverPackageRecord"); |
|
|
|
mainDO.setInterfaceType(recordsettingDO.getInterfaceType()); |
|
|
|
packageoverRecordMainMapper.insert(mainDO); |
|
|
|
// 获取参数中的sublist
|
|
|
|
List<PackageoverDetailDO> subDOList = PackageoverDetailConvert.INSTANCE.convertList03(createReqVO.getSubList()); |
|
|
|
//库存事务
|
|
|
|
List<TransactionCreateReqVO> transactionCreateReqVOList = new ArrayList<>(); |
|
|
|
|
|
|
|
StringBuilder fromPackingNumberStrs = new StringBuilder(); |
|
|
|
BigDecimal sumQty = new BigDecimal(0); |
|
|
|
|
|
|
|
for (PackageoverDetailDO detailDO : subDOList) { |
|
|
|
detailDO.setMasterId(mainDO.getId()); |
|
|
|
detailDO.setNumber(number); |
|
|
|
LocationDO locationDOFrom = locationService.selectLocation(detailDO.getLocationCode()); |
|
|
|
if(locationDOFrom != null) { |
|
|
|
detailDO.setAreaCode(locationDOFrom.getAreaCode()); |
|
|
|
detailDO.setLocationGroupCode(locationDOFrom.getLocationGroupCode()); |
|
|
|
} else { |
|
|
|
throw exception(LOCATION_NOT_EXISTS); |
|
|
|
} |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(detailDO.getItemCode()); |
|
|
|
if (itembasicDO != null) { |
|
|
|
detailDO.setItemName(itembasicDO.getName()); |
|
|
|
detailDO.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
detailDO.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
detailDO.setProjectCode(itembasicDO.getProject()); |
|
|
|
detailDO.setUom(itembasicDO.getUom()); |
|
|
|
} else { |
|
|
|
throw exception(ITEMBASIC_NOT_EXISTS); |
|
|
|
if (detailDO.getFromPackingNumber() != null) { |
|
|
|
fromPackingNumberStrs.append(detailDO.getFromPackingNumber()).append(","); |
|
|
|
} |
|
|
|
sumQty = sumQty.add(detailDO.getFromQty()); |
|
|
|
|
|
|
|
//查询库存余额
|
|
|
|
List<String> inventoryStatusList = new ArrayList<>(); |
|
|
|
inventoryStatusList.add(detailDO.getFromInventoryStatus()); |
|
|
|
List<BalanceDO> balanceDO = jobUtils.selectlocationReturnManagementAccuracyToBalance(detailDO.getItemCode(),detailDO.getFromPackingNumber(),detailDO.getFromBatch(),detailDO.getLocationCode(), inventoryStatusList); |
|
|
|
if (balanceDO == null || balanceDO.size() == 0) { |
|
|
|
if (balanceDO == null || balanceDO.isEmpty()) { |
|
|
|
throw exception(BALANCE_NOT_EXISTS); |
|
|
|
} |
|
|
|
// 库存事务——出
|
|
|
|
// 出动作
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOOut = new TransactionCreateReqVO(); |
|
|
|
BeanUtils.copyProperties(detailDO, transactionCreateReqVOOut); |
|
|
|
transactionCreateReqVOOut.setBusinessType(businesstypeDO.getCode()); |
|
|
|
TransactiontypeDO transactiontypeDOOut = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getOutTransactionType()); |
|
|
|
transactionCreateReqVOOut.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); |
|
|
|
transactionCreateReqVOOut.setQty(detailDO.getFromQty()); |
|
|
|
transactionCreateReqVOOut.setInventoryAction(transactiontypeDOOut.getInventoryAction()); |
|
|
|
transactionCreateReqVOOut.setTransactionType(transactiontypeDOOut.getCode()); |
|
|
|
transactionCreateReqVOOut.setBusinessType(mainDO.getBusinessType()); |
|
|
|
transactionCreateReqVOOut.setOwnerCode(detailDO.getFromOwnerCode()); |
|
|
|
transactionCreateReqVOOut.setRecordNumber(number); |
|
|
|
transactionCreateReqVOOut.setInventoryStatus(detailDO.getFromInventoryStatus()); |
|
|
|
transactionCreateReqVOOut.setWorker(String.valueOf(userRespDTO.getId())); |
|
|
|
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); |
|
|
|
transactionCreateReqVOOut.setId(null); |
|
|
|
transactionCreateReqVOOut.setPackingNumber(detailDO.getFromPackingNumber()); |
|
|
|
transactionCreateReqVOOut.setBatch(detailDO.getFromBatch()); |
|
|
|
transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode()); |
|
|
|
transactionCreateReqVOOut.setLocationCode(detailDO.getLocationCode()); |
|
|
|
transactionCreateReqVOOut.setSinglePrice(balanceDO.get(0).getSinglePrice()); |
|
|
|
transactionCreateReqVOOut.setAmount(balanceDO.get(0).getAmount()); |
|
|
|
transactionCreateReqVOOut.setArriveDate(balanceDO.get(0).getArriveDate()); |
|
|
|
transactionCreateReqVOOut.setProduceDate(balanceDO.get(0).getProduceDate()); |
|
|
|
transactionCreateReqVOOut.setExpireDate(balanceDO.get(0).getExpireDate()); |
|
|
|
transactionCreateReqVOOut.setWarehouseCode(mainDO.getWarehouseCode()); |
|
|
|
transactionCreateReqVOOut.setQty(detailDO.getFromQty()); |
|
|
|
transactionCreateReqVOOut.setId(null); |
|
|
|
transactionCreateReqVOOut.setActiveTime(mainDO.getActiveDate()); |
|
|
|
// 根据 库位 获取 库区DO
|
|
|
|
AreabasicDO areabasicDOOut = jobUtils.getAreabasicDO(transactionCreateReqVOOut.getLocationCode()); |
|
|
|
transactionCreateReqVOOut.setAreaType(areabasicDOOut.getType()); |
|
|
|
transactionCreateReqVOOut.setPackUnit(jobUtils.getItemareaDO(transactionCreateReqVOOut.getItemCode(), areabasicDOOut.getCode()).getOutPackUnit()); |
|
|
|
transactionCreateReqVOOut.setPackQty(jobUtils.getItempackageDO(transactionCreateReqVOOut.getItemCode(),transactionCreateReqVOOut.getPackUnit()).getPackQty()); |
|
|
|
transactionCreateReqVOOut.setPackUnit(detailDO.getFromPackUnit()); |
|
|
|
// TODO: 标包数 如果前端查,后端直接赋值,如果需要后端查,需添加
|
|
|
|
transactionCreateReqVOOut.setPackQty(detailDO.getFromPackQty()); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOOut); |
|
|
|
// 更新包装信息——来源包装
|
|
|
|
updatePackageDO(detailDO.getFromPackingNumber(),balanceDO.get(0).getQty().subtract(detailDO.getFromQty())); |
|
|
|
// 查询一翻几的规则 在基础包装中 翻几 = 包装内物品的数量/替代标包数量 库存余额中不够分配的 向上取整
|
|
|
|
// 例如:库存余额24 翻3包 每包10 那么第一包数量10 第二包数量10 第三包数量4
|
|
|
|
// 例如:库存余额5 翻3包 每包10 那么第一包数量5
|
|
|
|
// 查询基础包装信息
|
|
|
|
ItempackageDO itempackageDO = jobUtils.getItempackageDOByItemCodeAndLocationCodeAndInOrOut(detailDO.getItemCode(),detailDO.getLocationCode(),"out"); |
|
|
|
if (itempackageDO == null) { |
|
|
|
throw exception(PACKAGEUNIT_NOT_EXISTS); |
|
|
|
} |
|
|
|
List<PackageoverDetailDO> packageoverDetailDOList = new ArrayList<>(); |
|
|
|
// 判断替代标包数量不为空 并且 大于 0 并且 标包数大于等于替代标包数
|
|
|
|
// TODO 陈薪名再次修改,因为itempackageDO已经删除了alt_pack_qty1字段,逻辑需要重写
|
|
|
|
// if (itempackageDO.getAltPackQty1() != null && itempackageDO.getAltPackQty1().compareTo(BigDecimal.ZERO) == 1 && itempackageDO.getPackQty().compareTo(itempackageDO.getAltPackQty1()) != -1 ) {
|
|
|
|
// // 翻几包 overCount = 包装内物品的数量/替代标包数量
|
|
|
|
// BigDecimal overCount = itempackageDO.getPackQty().divide(itempackageDO.getAltPackQty1(),0, BigDecimal.ROUND_UP);
|
|
|
|
// // 替代标包数量
|
|
|
|
// BigDecimal altPackQty = itempackageDO.getAltPackQty1();
|
|
|
|
// // 库存余额数量
|
|
|
|
// BigDecimal balanceQty = balanceDO.get(0).getQty();
|
|
|
|
// for (int i =0; i< overCount.intValue();i++) {
|
|
|
|
// // 创建 子表数据
|
|
|
|
// PackageoverDetailDO packageoverDetailDO = new PackageoverDetailDO();
|
|
|
|
// BeanUtils.copyProperties(detailDO,packageoverDetailDO);
|
|
|
|
// packageoverDetailDO.setId(null).setCreator(null).setCreateTime(null).setUpdater(null).setUpdateTime(null);
|
|
|
|
// packageoverDetailDO.setMasterId(mainDO.getId());
|
|
|
|
// packageoverDetailDO.setToBatch(packageoverDetailDO.getFromBatch());
|
|
|
|
// packageoverDetailDO.setToContainerNumber(packageoverDetailDO.getFromContainerNumber());
|
|
|
|
// packageoverDetailDO.setToOwnerCode(packageoverDetailDO.getFromOwnerCode());
|
|
|
|
// packageoverDetailDO.setToInventoryStatus(packageoverDetailDO.getFromInventoryStatus());
|
|
|
|
// // 创建 包装及标签
|
|
|
|
// PackageCreateReqVO packagecreateReqVO = PackageConvert.INSTANCE.convert01(packageService.LabelExist(detailDO.getFromPackingNumber()));
|
|
|
|
// packagecreateReqVO.setId(null);
|
|
|
|
// packagecreateReqVO.setCreator(null);
|
|
|
|
// PackageDO packageDO;
|
|
|
|
// // 替代标包数量 >= 库存余额数量 只能创建一个包装标签 结束循环
|
|
|
|
// if (itempackageDO.getAltPackQty1().compareTo(balanceQty) != -1) {
|
|
|
|
// packagecreateReqVO.setQty(balanceQty);
|
|
|
|
// packageDO = packageService.createPackageLabel(packagecreateReqVO);
|
|
|
|
// packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
|
|
|
|
// 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;
|
|
|
|
// } else {
|
|
|
|
// //替代标包数量 < 库存余额数量
|
|
|
|
// packagecreateReqVO.setQty(altPackQty);
|
|
|
|
// packageDO = packageService.createPackageLabel(packagecreateReqVO);
|
|
|
|
// packageoverDetailDO.setToPackingNumber(packageDO.getNumber());
|
|
|
|
// 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);
|
|
|
|
// }
|
|
|
|
// packageoverDetailDOList.add(packageoverDetailDO);
|
|
|
|
// // 库存事务——入
|
|
|
|
// 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);
|
|
|
|
// }
|
|
|
|
// // 更新旧包装信息
|
|
|
|
// updatePackageDO(detailDO.getFromPackingNumber(),BigDecimal.ZERO);
|
|
|
|
// } else {
|
|
|
|
// throw exception(PACKAGEOVER_DETAIL_PACKING_ERROR);
|
|
|
|
// }
|
|
|
|
// if (packageoverDetailDOList != null && packageoverDetailDOList.size() > 0) {
|
|
|
|
// packageoverDetailMapper.insertBatch(packageoverDetailDOList);
|
|
|
|
// }
|
|
|
|
} |
|
|
|
// 创建子表数据
|
|
|
|
PackageoverDetailDO packageoverDetailDO = new PackageoverDetailDO(); |
|
|
|
packageoverDetailDO.setMasterId(mainDO.getId()); |
|
|
|
packageoverDetailDO.setNumber(number); |
|
|
|
LocationDO locationDOFrom = locationService.selectLocation(packageoverDetailDO.getLocationCode()); |
|
|
|
if(locationDOFrom != null) { |
|
|
|
packageoverDetailDO.setAreaCode(locationDOFrom.getAreaCode()); |
|
|
|
packageoverDetailDO.setLocationGroupCode(locationDOFrom.getLocationGroupCode()); |
|
|
|
} else { |
|
|
|
throw exception(LOCATION_NOT_EXISTS); |
|
|
|
} |
|
|
|
ItembasicDO itembasicDO = itembasicService.selectItembasic(packageoverDetailDO.getItemCode()); |
|
|
|
if (itembasicDO != null) { |
|
|
|
packageoverDetailDO.setItemName(itembasicDO.getName()); |
|
|
|
packageoverDetailDO.setItemDesc1(itembasicDO.getDesc1()); |
|
|
|
packageoverDetailDO.setItemDesc2(itembasicDO.getDesc2()); |
|
|
|
packageoverDetailDO.setProjectCode(itembasicDO.getProject()); |
|
|
|
packageoverDetailDO.setUom(itembasicDO.getUom()); |
|
|
|
} else { |
|
|
|
throw exception(ITEMBASIC_NOT_EXISTS); |
|
|
|
} |
|
|
|
packageoverDetailDO.setFromPackingNumber(fromPackingNumberStrs.substring(0,fromPackingNumberStrs.toString().length()-1)); |
|
|
|
packageoverDetailDO.setFromQty(sumQty); |
|
|
|
packageoverDetailDO.setToQty(sumQty); |
|
|
|
packageoverDetailDO.setLocationCode(subDOList.get(0).getLocationCode()); |
|
|
|
packageoverDetailDO.setLocationGroupCode(subDOList.get(0).getLocationGroupCode()); |
|
|
|
packageoverDetailDO.setFromBatch(subDOList.get(0).getFromBatch()); |
|
|
|
packageoverDetailDO.setToBatch(subDOList.get(0).getToBatch()); |
|
|
|
packageoverDetailDO.setFromInventoryStatus(subDOList.get(0).getFromInventoryStatus()); |
|
|
|
packageoverDetailDO.setToInventoryStatus(subDOList.get(0).getToInventoryStatus()); |
|
|
|
packageoverDetailDO.setFromOwnerCode(subDOList.get(0).getFromOwnerCode()); |
|
|
|
packageoverDetailDO.setToOwnerCode(subDOList.get(0).getToOwnerCode()); |
|
|
|
packageoverDetailDO.setAreaCode(subDOList.get(0).getAreaCode()); |
|
|
|
packageoverDetailDO.setFromPackUnit(subDOList.get(0).getFromPackUnit()); |
|
|
|
// TODO: 标包数 如果前端查,后端直接赋值,如果需要后端查,需添加
|
|
|
|
packageoverDetailDO.setFromPackQty(subDOList.get(0).getFromPackQty()); |
|
|
|
// 创建包装及标签
|
|
|
|
PackageCreateReqVO packageCreateReqVO = new PackageCreateReqVO(); |
|
|
|
// 查询已扫描包装信息
|
|
|
|
QueryWrapper<PackageDO> packageDOQueryWrapper = new QueryWrapper<>(); |
|
|
|
packageDOQueryWrapper.eq("number",subDOList.get(0).getFromPackingNumber()); |
|
|
|
PackageDO packageDO = packageMapper.selectOne(packageDOQueryWrapper); |
|
|
|
BeanUtils.copyProperties(packageDO,packageCreateReqVO); |
|
|
|
packageCreateReqVO.setItemCode(subDOList.get(0).getItemCode()); |
|
|
|
packageCreateReqVO.setPackQty(subDOList.get(0).getToPackQty()); |
|
|
|
packageCreateReqVO.setPackUnit(subDOList.get(0).getToPackUnit()); |
|
|
|
packageCreateReqVO.setQty(sumQty); |
|
|
|
packageCreateReqVO.setNumber(number); |
|
|
|
List<PackageDO> packageDOList = packageService.createPackageLabel(packageCreateReqVO); |
|
|
|
StringBuilder toPackingNumberStrs = new StringBuilder(); |
|
|
|
for(PackageDO packageDO1:packageDOList ) { |
|
|
|
toPackingNumberStrs.append(packageDO1.getNumber()).append(","); |
|
|
|
// 入动作
|
|
|
|
TransactionCreateReqVO transactionCreateReqVOIn = new TransactionCreateReqVO(); |
|
|
|
TransactiontypeDO transactiontypeDO = jobUtils.selectDocumentFromTransactionType(businesstypeDO.getInTransactionType()); |
|
|
|
transactionCreateReqVOIn.setWorker(String.valueOf(userApi.getUser(getLoginUserId()).getId())); |
|
|
|
transactionCreateReqVOIn.setInventoryAction(transactiontypeDO.getInventoryAction()); |
|
|
|
transactionCreateReqVOIn.setTransactionType(transactiontypeDO.getCode()); |
|
|
|
transactionCreateReqVOIn.setBusinessType(mainDO.getBusinessType()); |
|
|
|
transactionCreateReqVOIn.setOwnerCode(subDOList.get(0).getToOwnerCode()); |
|
|
|
transactionCreateReqVOIn.setRecordNumber(number); |
|
|
|
transactionCreateReqVOIn.setId(null); |
|
|
|
transactionCreateReqVOIn.setQty(packageDO1.getQty()); |
|
|
|
transactionCreateReqVOIn.setPackingNumber(packageDO1.getNumber()); |
|
|
|
transactionCreateReqVOIn.setBatch(subDOList.get(0).getToBatch()); |
|
|
|
transactionCreateReqVOIn.setAmount(new BigDecimal(0)); |
|
|
|
transactionCreateReqVOIn.setSinglePrice(new BigDecimal(0)); |
|
|
|
transactionCreateReqVOIn.setWarehouseCode(mainDO.getWarehouseCode()); |
|
|
|
transactionCreateReqVOIn.setExpireDate(mainDO.getExecuteTime()); |
|
|
|
transactionCreateReqVOIn.setActiveTime(mainDO.getActiveDate()); |
|
|
|
transactionCreateReqVOIn.setLocationCode(subDOList.get(0).getLocationCode()); |
|
|
|
// 根据 库位 获取 库区DO
|
|
|
|
AreabasicDO areabasicDO = jobUtils.getAreabasicDO(transactionCreateReqVOIn.getLocationCode()); |
|
|
|
transactionCreateReqVOIn.setAreaType(areabasicDO.getType()); |
|
|
|
transactionCreateReqVOIn.setPackUnit(subDOList.get(0).getToPackUnit()); |
|
|
|
// TODO: 标包数 如果前端查,后端直接赋值,如果需要后端查,需添加
|
|
|
|
transactionCreateReqVOIn.setPackQty(subDOList.get(0).getToPackQty()); |
|
|
|
transactionCreateReqVOList.add(transactionCreateReqVOIn); |
|
|
|
} |
|
|
|
packageoverDetailDO.setToPackQty(subDOList.get(0).getToPackQty()); |
|
|
|
packageoverDetailDO.setToPackUnit(subDOList.get(0).getToPackUnit()); |
|
|
|
packageoverDetailDO.setToPackingNumber(toPackingNumberStrs.substring(0,toPackingNumberStrs.toString().length()-1)); |
|
|
|
packageoverRecordDetailMapper.insert(packageoverDetailDO); |
|
|
|
//增加库存事务
|
|
|
|
transactionService.createTransaction(transactionCreateReqVOList); |
|
|
|
//增加操作记录
|
|
|
|
trendsApi.createTrends(mainDO.getId(), "packageoverMain", "增加了翻包记录", TrendsTypeEnum.CREATE); |
|
|
|
// 返回
|
|
|
|
return mainDO.getNumber(); |
|
|
|
//变更记录
|
|
|
|
trendsApi.createTrends(mainDO.getId(), "packageoverJob", "创建了翻包记录", TrendsTypeEnum.UPDATE); |
|
|
|
return number; |
|
|
|
} |
|
|
|
|
|
|
|
/** |
|
|
|