This commit is contained in:
Ledo 2025-07-05 01:31:45 +08:00
parent 79605f1880
commit 8ef746fbfc
3 changed files with 97 additions and 100 deletions

View File

@ -144,53 +144,7 @@ public class StorageController {
storageService.updateStorage(updateReqVO);
int status = targetDo.getStatus();
// if (updateReqVO.getStockType()==1&&updateReqVO.getStockInType()==1){
// if (status==2){
// List<StorageMatDO> matList = storageMatMapper.selectMatByStorckID(targetDo.getId());
// for (StorageMatDO storageMatDO : matList) {
// LambdaQueryWrapper<StorageLogNowDO> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(StorageLogNowDO::getMatCode, storageMatDO.getMatCode());
// wrapper.eq(StorageLogNowDO::getMatName,storageMatDO.getMatName());
// BigDecimal totalStorageOkQty = storageLogNowMapper.selectList(wrapper).stream()
// .map(StorageLogNowDO::getStorageOkQty)
// .filter(Objects::nonNull) // 确保过滤掉 null
// .reduce(BigDecimal.ZERO, BigDecimal::add);
// LambdaQueryWrapper<MaterialDO> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(MaterialDO::getCode, storageMatDO.getMatCode());
// queryWrapper.eq(MaterialDO::getName,storageMatDO.getMatName());
// MaterialDO materialDO = materialMapper.selectOne(queryWrapper);
// if (ObjectUtil.isEmpty(materialDO.getPrice())){
// materialDO.setPrice(BigDecimal.ZERO);
// }
// BigDecimal add = totalStorageOkQty.multiply(materialDO.getPrice()).add(storageMatDO.getPrice().multiply(storageMatDO.getStorageOkQty()));
// BigDecimal divide = add.divide(totalStorageOkQty.add(storageMatDO.getStorageOkQty()),2,RoundingMode.HALF_UP);
// materialDO.setPrice(divide);
// materialMapper.updateById(materialDO);
// }
// }else if (status==3){
// List<StorageMatDO> matList = storageMatMapper.selectMatByStorckID(targetDo.getId());
// for (StorageMatDO storageMatDO : matList) {
// LambdaQueryWrapper<StorageLogNowDO> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(StorageLogNowDO::getMatCode, storageMatDO.getMatCode());
// wrapper.eq(StorageLogNowDO::getMatName,storageMatDO.getMatName());
// BigDecimal totalStorageOkQty = storageLogNowMapper.selectList(wrapper).stream()
// .map(StorageLogNowDO::getStorageOkQty)
// .filter(Objects::nonNull) // 确保过滤掉 null
// .reduce(BigDecimal.ZERO, BigDecimal::add);
// LambdaQueryWrapper<MaterialDO> queryWrapper = new LambdaQueryWrapper<>();
// queryWrapper.eq(MaterialDO::getCode, storageMatDO.getMatCode());
// queryWrapper.eq(MaterialDO::getName,storageMatDO.getMatName());
// MaterialDO materialDO = materialMapper.selectOne(queryWrapper);
// if (ObjectUtil.isEmpty(materialDO.getPrice())){
// materialDO.setPrice(BigDecimal.ZERO);
// }
// BigDecimal add = totalStorageOkQty.multiply(materialDO.getPrice()).subtract(storageMatDO.getPrice().multiply(storageMatDO.getStorageOkQty()));
// BigDecimal divide = add.divide(totalStorageOkQty.subtract(storageMatDO.getStorageOkQty()),2,RoundingMode.HALF_UP);
// materialDO.setPrice(divide);
// materialMapper.updateById(materialDO);
// }
// }
// }
List<StorageMatDO> matList = storageMatMapper.selectMatByStorckID(targetDo.getId());
if (updateReqVO.getStockType()==1){
if (status==2){
@ -223,21 +177,6 @@ public class StorageController {
storageInventoryMapper.insertOrUpdate(storageInventoryDO);
}
}
// else if (status==3){
// for (StorageMatDO storageMatDO : matList) {
// LambdaQueryWrapper<StorageInventoryDO> wrapper = new LambdaQueryWrapper<>();
// wrapper.eq(StorageInventoryDO::getWhId,storageMatDO.getWhId());
// wrapper.eq(StorageInventoryDO::getMaterialId,storageMatDO.getMatId());
// wrapper.eq(StorageInventoryDO::getRgId,storageMatDO.getRgId());
// wrapper.eq(StorageInventoryDO::getPnId,storageMatDO.getPnId());
// wrapper.eq(StorageInventoryDO::getDeleted,0);
// StorageInventoryDO storageInventoryDO = storageInventoryMapper.selectOne(wrapper);
// if (ObjectUtil.isNotEmpty(storageInventoryDO)){
// storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().subtract(storageMatDO.getStorageOkQty()));
// }
// storageInventoryMapper.insertOrUpdate(storageInventoryDO);
// }
// }
}else if (updateReqVO.getStockType()==2){
if (updateReqVO.getStatus() == 4){
for (StorageMatDO storageMatDO : matList) {

View File

@ -1,13 +1,19 @@
package com.chanko.yunxi.mes.module.heli.service.storagecheck;
import cn.hutool.core.lang.UUID;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.material.MaterialDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.serialnumber.SerialNumberDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagecheckmat.StorageCheckMatDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storageinventory.StorageInventoryDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagelog.StorageLogDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO;
import com.chanko.yunxi.mes.module.heli.dal.mysql.material.MaterialMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storage.StorageMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagecheckmat.StorageCheckMatMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storageinventory.StorageInventoryMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagelog.StorageLogMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
@ -56,7 +62,10 @@ public class StorageCheckServiceImpl implements StorageCheckService {
@Resource
private StorageCheckMatMapper storageCheckMatMapper;
@Resource
private MaterialMapper materialMapper;
@Resource
private StorageInventoryMapper storageInventoryMapper;
@Resource
private StorageCheckMapper storageCheckMapper;
@ -148,7 +157,7 @@ public class StorageCheckServiceImpl implements StorageCheckService {
storageDO.setStockInType(stockInType);
storageDO.setStockNo(UUID.fastUUID().toString(true));
storageDO.setHeaderNo(storageCheckDO.getStockNo());
storageDO.setStatus(2);
storageDO.setStatus(1);
storageDO.setDescription(storageCheckDO.getDescription());
storageDO.setWhId(storageCheckDO.getWhId());
storageDO.setKeeper(storageCheckDO.getKeeper());
@ -163,6 +172,56 @@ public class StorageCheckServiceImpl implements StorageCheckService {
storageMapper.updateById(storageDO);
saveStorageMat(storageCheckDO,storageDO.getId(),stockType);
List<StorageMatDO> matList = storageMatMapper.selectMatByStorckID(storageDO.getId());
if (storageDO.getStockType()==1){
if (storageDO.getStatus() ==2){
for (StorageMatDO storageMatDO : matList) {
LambdaQueryWrapper<StorageInventoryDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StorageInventoryDO::getWhId,storageMatDO.getWhId());
wrapper.eq(StorageInventoryDO::getMaterialId,storageMatDO.getMatId());
wrapper.eq(StorageInventoryDO::getRgId,storageMatDO.getRgId());
wrapper.eq(StorageInventoryDO::getPnId,storageMatDO.getPnId());
wrapper.eq(StorageInventoryDO::getDeleted,0);
StorageInventoryDO storageInventoryDO = storageInventoryMapper.selectOne(wrapper);
if (ObjectUtil.isEmpty(storageInventoryDO)){
storageInventoryDO = new StorageInventoryDO();
storageInventoryDO.setMaterialId(storageMatDO.getMatId());
storageInventoryDO.setWhId(storageMatDO.getWhId());
storageInventoryDO.setRgId(storageMatDO.getRgId());
storageInventoryDO.setPnId(storageMatDO.getPnId());
storageInventoryDO.setYardAmount(storageMatDO.getStorageOkQty() );
MaterialDO materialDO = materialMapper.selectById(storageMatDO.getMatId());
if (ObjectUtil.isNotEmpty(materialDO)){
storageInventoryDO.setBoomUnit(materialDO.getUnit());
storageInventoryDO.setBoomName(materialDO.getName());
storageInventoryDO.setBoomSpec(materialDO.getSpec());
storageInventoryDO.setShortName(materialDO.getShortName());
storageInventoryDO.setBoomCode(materialDO.getCode());
}
}else {
storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().add(storageMatDO.getStorageOkQty()));
}
storageInventoryMapper.insertOrUpdate(storageInventoryDO);
}
}
}else if (storageDO.getStockType()==2){
if (storageDO.getStatus() == 4){
for (StorageMatDO storageMatDO : matList) {
LambdaQueryWrapper<StorageInventoryDO> wrapper = new LambdaQueryWrapper<>();
wrapper.eq(StorageInventoryDO::getWhId,storageMatDO.getWhId());
wrapper.eq(StorageInventoryDO::getMaterialId,storageMatDO.getMatId());
wrapper.eq(StorageInventoryDO::getRgId,storageMatDO.getRgId());
wrapper.eq(StorageInventoryDO::getPnId,storageMatDO.getPnId());
wrapper.eq(StorageInventoryDO::getDeleted,0);
StorageInventoryDO storageInventoryDO = storageInventoryMapper.selectOne(wrapper);
if (ObjectUtil.isNotEmpty(storageInventoryDO)){
storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().subtract(storageMatDO.getStorageOkQty()));
}
storageInventoryMapper.insertOrUpdate(storageInventoryDO);
}
}
}
}
private void saveStorageMat(StorageCheckDO storageCheckDO, Long stockId, Integer stockType){
@ -179,11 +238,10 @@ public class StorageCheckServiceImpl implements StorageCheckService {
storageMatDO.setPnId(item.getPnId());
storageMatDO.setStorageOkQty(item.getStorageOkQty().subtract(item.getMatRest()).abs());
storageMatDO.setLotNo(item.getLotNo());
// 插入出入库物料表
if(stockType == 1 && item.getStorageOkQty().subtract(item.getMatRest()).doubleValue()>0){
storageMatMapper.insert(storageMatDO);
saveStorageLog(storageMatDO);
// saveStorageLog(storageMatDO);
}
if(stockType == 2 && item.getStorageOkQty().subtract(item.getMatRest()).doubleValue()<0){
storageMatMapper.insert(storageMatDO);

View File

@ -63,40 +63,40 @@ public class StorageCheckMatServiceImpl implements StorageCheckMatService {
insertList.add(storageCheckMat);
}
//
if (CollUtil.isNotEmpty(updateStorageList)){
List<StorageInventoryDO> uupdateDetailList = new ArrayList<>();
StorageInventoryPageReqVO reqVO = new StorageInventoryPageReqVO();
//更新库存表数据
for (StorageCheckMatSaveReqVO savo : updateStorageList) {
reqVO.setPnId(savo.getPnId() == null ? null : savo.getPnId())
.setWhId(savo.getWhId() == null ? null : savo.getWhId())
.setRgId(savo.getRgId() == null ? null : savo.getRgId())
.setMaterialId(savo.getMaterialId() == null ? null : savo.getMaterialId());
StorageInventoryDO inventoryDO = storageInventoryMapper.selectByWhRgPn(reqVO);
inventoryDO.setYardAmount(savo.getStorageOkQty());
uupdateDetailList.add(inventoryDO);
}
storageInventoryMapper.updateBatch(uupdateDetailList);
}
if (CollUtil.isNotEmpty(inserStorageList)){
//插入库存表
List<StorageInventoryDO> insertDetailList = new ArrayList<>();
for (StorageCheckMatSaveReqVO savo : inserStorageList) {
StorageInventoryDO ido = new StorageInventoryDO();
ido.setPnId(savo.getPnId() == null ? null: savo.getPnId())
.setWhId(savo.getWhId() == null ? null: savo.getWhId())
.setRgId(savo.getRgId() == null ? null: savo.getRgId())
.setBoomName(savo.getMatName() == null ? null:savo.getMatName())
.setBoomUnit(savo.getBoomUnit() == null ? null:savo.getBoomUnit())
.setMaterialId(savo.getMaterialId() == null ? null: savo.getMaterialId())
.setBoomSpec(savo.getBoomSpec() == null ? null: savo.getBoomSpec())
.setYardAmount(savo.getStorageOkQty() == null ? null: savo.getStorageOkQty())
.setShortName(savo.getShortName() == null ? null: savo.getShortName())
.setBoomCode(savo.getMatCode() == null ? null: savo.getMatCode());
insertDetailList.add(ido);
}
storageInventoryMapper.insertBatch(insertDetailList);
}
// if (CollUtil.isNotEmpty(updateStorageList)){
// List<StorageInventoryDO> uupdateDetailList = new ArrayList<>();
// StorageInventoryPageReqVO reqVO = new StorageInventoryPageReqVO();
// //更新库存表数据
// for (StorageCheckMatSaveReqVO savo : updateStorageList) {
// reqVO.setPnId(savo.getPnId() == null ? null : savo.getPnId())
// .setWhId(savo.getWhId() == null ? null : savo.getWhId())
// .setRgId(savo.getRgId() == null ? null : savo.getRgId())
// .setMaterialId(savo.getMaterialId() == null ? null : savo.getMaterialId());
// StorageInventoryDO inventoryDO = storageInventoryMapper.selectByWhRgPn(reqVO);
// inventoryDO.setYardAmount(savo.getStorageOkQty());
// uupdateDetailList.add(inventoryDO);
// }
// storageInventoryMapper.updateBatch(uupdateDetailList);
// }
// if (CollUtil.isNotEmpty(inserStorageList)){
// //插入库存表
// List<StorageInventoryDO> insertDetailList = new ArrayList<>();
// for (StorageCheckMatSaveReqVO savo : inserStorageList) {
// StorageInventoryDO ido = new StorageInventoryDO();
// ido.setPnId(savo.getPnId() == null ? null: savo.getPnId())
// .setWhId(savo.getWhId() == null ? null: savo.getWhId())
// .setRgId(savo.getRgId() == null ? null: savo.getRgId())
// .setBoomName(savo.getMatName() == null ? null:savo.getMatName())
// .setBoomUnit(savo.getBoomUnit() == null ? null:savo.getBoomUnit())
// .setMaterialId(savo.getMaterialId() == null ? null: savo.getMaterialId())
// .setBoomSpec(savo.getBoomSpec() == null ? null: savo.getBoomSpec())
// .setYardAmount(savo.getStorageOkQty() == null ? null: savo.getStorageOkQty())
// .setShortName(savo.getShortName() == null ? null: savo.getShortName())
// .setBoomCode(savo.getMatCode() == null ? null: savo.getMatCode());
// insertDetailList.add(ido);
// }
// storageInventoryMapper.insertBatch(insertDetailList);
// }
return storageCheckMatMapper.insertBatch(insertList);
}