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); storageService.updateStorage(updateReqVO);
int status = targetDo.getStatus(); 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()); List<StorageMatDO> matList = storageMatMapper.selectMatByStorckID(targetDo.getId());
if (updateReqVO.getStockType()==1){ if (updateReqVO.getStockType()==1){
if (status==2){ if (status==2){
@ -223,21 +177,6 @@ public class StorageController {
storageInventoryMapper.insertOrUpdate(storageInventoryDO); 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){ }else if (updateReqVO.getStockType()==2){
if (updateReqVO.getStatus() == 4){ if (updateReqVO.getStatus() == 4){
for (StorageMatDO storageMatDO : matList) { for (StorageMatDO storageMatDO : matList) {

View File

@ -1,13 +1,19 @@
package com.chanko.yunxi.mes.module.heli.service.storagecheck; package com.chanko.yunxi.mes.module.heli.service.storagecheck;
import cn.hutool.core.lang.UUID; 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.serialnumber.SerialNumberDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storage.StorageDO; 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.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.storagelog.StorageLogDO;
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagemat.StorageMatDO; 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.storage.StorageMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagecheckmat.StorageCheckMatMapper; 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.storagelog.StorageLogMapper;
import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper; import com.chanko.yunxi.mes.module.heli.dal.mysql.storagemat.StorageMatMapper;
import com.chanko.yunxi.mes.module.heli.enums.CodeEnum; import com.chanko.yunxi.mes.module.heli.enums.CodeEnum;
@ -56,7 +62,10 @@ public class StorageCheckServiceImpl implements StorageCheckService {
@Resource @Resource
private StorageCheckMatMapper storageCheckMatMapper; private StorageCheckMatMapper storageCheckMatMapper;
@Resource
private MaterialMapper materialMapper;
@Resource
private StorageInventoryMapper storageInventoryMapper;
@Resource @Resource
private StorageCheckMapper storageCheckMapper; private StorageCheckMapper storageCheckMapper;
@ -148,7 +157,7 @@ public class StorageCheckServiceImpl implements StorageCheckService {
storageDO.setStockInType(stockInType); storageDO.setStockInType(stockInType);
storageDO.setStockNo(UUID.fastUUID().toString(true)); storageDO.setStockNo(UUID.fastUUID().toString(true));
storageDO.setHeaderNo(storageCheckDO.getStockNo()); storageDO.setHeaderNo(storageCheckDO.getStockNo());
storageDO.setStatus(2); storageDO.setStatus(1);
storageDO.setDescription(storageCheckDO.getDescription()); storageDO.setDescription(storageCheckDO.getDescription());
storageDO.setWhId(storageCheckDO.getWhId()); storageDO.setWhId(storageCheckDO.getWhId());
storageDO.setKeeper(storageCheckDO.getKeeper()); storageDO.setKeeper(storageCheckDO.getKeeper());
@ -163,6 +172,56 @@ public class StorageCheckServiceImpl implements StorageCheckService {
storageMapper.updateById(storageDO); storageMapper.updateById(storageDO);
saveStorageMat(storageCheckDO,storageDO.getId(),stockType); 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){ private void saveStorageMat(StorageCheckDO storageCheckDO, Long stockId, Integer stockType){
@ -179,11 +238,10 @@ public class StorageCheckServiceImpl implements StorageCheckService {
storageMatDO.setPnId(item.getPnId()); storageMatDO.setPnId(item.getPnId());
storageMatDO.setStorageOkQty(item.getStorageOkQty().subtract(item.getMatRest()).abs()); storageMatDO.setStorageOkQty(item.getStorageOkQty().subtract(item.getMatRest()).abs());
storageMatDO.setLotNo(item.getLotNo()); storageMatDO.setLotNo(item.getLotNo());
// 插入出入库物料表 // 插入出入库物料表
if(stockType == 1 && item.getStorageOkQty().subtract(item.getMatRest()).doubleValue()>0){ if(stockType == 1 && item.getStorageOkQty().subtract(item.getMatRest()).doubleValue()>0){
storageMatMapper.insert(storageMatDO); storageMatMapper.insert(storageMatDO);
saveStorageLog(storageMatDO); // saveStorageLog(storageMatDO);
} }
if(stockType == 2 && item.getStorageOkQty().subtract(item.getMatRest()).doubleValue()<0){ if(stockType == 2 && item.getStorageOkQty().subtract(item.getMatRest()).doubleValue()<0){
storageMatMapper.insert(storageMatDO); storageMatMapper.insert(storageMatDO);

View File

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