盘库不生成单据
This commit is contained in:
parent
da6b435eeb
commit
05d944ecd4
@ -69,17 +69,18 @@ public class StorageCheckController {
|
||||
item.setId(null);
|
||||
|
||||
double storageOkQty = Double.parseDouble(item.getStorageOkQty().toString());
|
||||
double money = Double.parseDouble(item.getMoney().toString());
|
||||
|
||||
if (money != 0) {
|
||||
BigDecimal moneyBD = new BigDecimal(money);
|
||||
BigDecimal storageOkQtyBD = new BigDecimal(storageOkQty);
|
||||
BigDecimal result = moneyBD.divide(storageOkQtyBD, 1, RoundingMode.HALF_UP);
|
||||
item.setOnemoney(result.toString());
|
||||
} else {
|
||||
// 处理除数为零的情况,例如设置一个默认值或返回一个错误
|
||||
item.setOnemoney("0"); // 或者根据业务逻辑设置一个合适的值
|
||||
}
|
||||
// double money = Double.parseDouble(item.getMoney().toString());
|
||||
//
|
||||
// if (money != 0) {
|
||||
// BigDecimal moneyBD = new BigDecimal(money);
|
||||
// BigDecimal storageOkQtyBD = new BigDecimal(storageOkQty);
|
||||
// BigDecimal result = moneyBD.divide(storageOkQtyBD, 1, RoundingMode.HALF_UP);
|
||||
// item.setOnemoney(result.toString());
|
||||
// } else {
|
||||
// // 处理除数为零的情况,例如设置一个默认值或返回一个错误
|
||||
// item.setOnemoney("0"); // 或者根据业务逻辑设置一个合适的值
|
||||
// }
|
||||
|
||||
|
||||
// storageCheckMatService.createStorageCheckMat(item);
|
||||
|
@ -21,15 +21,18 @@ import com.chanko.yunxi.mes.module.heli.service.serialnumber.SerialNumberService
|
||||
import com.chanko.yunxi.mes.module.heli.service.storagecheckmat.StorageCheckMatService;
|
||||
import io.swagger.v3.oas.models.security.SecurityScheme;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.print.DocFlavor;
|
||||
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.text.SimpleDateFormat;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.*;
|
||||
|
||||
import com.chanko.yunxi.mes.module.heli.controller.admin.storagecheck.vo.*;
|
||||
import com.chanko.yunxi.mes.module.heli.dal.dataobject.storagecheck.StorageCheckDO;
|
||||
import com.chanko.yunxi.mes.framework.common.pojo.PageResult;
|
||||
@ -135,19 +138,89 @@ public class StorageCheckServiceImpl implements StorageCheckService {
|
||||
// 获取盘点单据物料信息
|
||||
List<StorageCheckMatDO> storageCheckMats = storageCheckMatService.getStorageMatListByCheckId(checkId);
|
||||
|
||||
long hasStockIn = storageCheckMats.stream().filter(item->item.getStorageOkQty().subtract(item.getMatRest()).intValue()>0).count();
|
||||
long hasStockOut = storageCheckMats.stream().filter(item->item.getStorageOkQty().subtract(item.getMatRest()).intValue()<0).count();
|
||||
// long hasStockIn = storageCheckMats.stream().filter(item->item.getStorageOkQty().subtract(item.getMatRest()).intValue()>0).count();
|
||||
// long hasStockOut = storageCheckMats.stream().filter(item->item.getStorageOkQty().subtract(item.getMatRest()).intValue()<0).count();
|
||||
//20250705新逻辑
|
||||
for (StorageCheckMatDO storageMatDO : storageCheckMats) {
|
||||
BigDecimal dif = storageMatDO.getStorageOkQty().subtract(storageMatDO.getMatRest());
|
||||
if (dif.compareTo(BigDecimal.ZERO) > 0) {
|
||||
//大于0 入库,增加库额度
|
||||
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());
|
||||
}
|
||||
|
||||
if(hasStockIn>0){
|
||||
// 库存类型为入库
|
||||
saveStorage(storageCheckDO,1,2);
|
||||
//要同步设置
|
||||
} else {
|
||||
storageInventoryDO.setYardAmount(storageInventoryDO.getYardAmount().add(storageMatDO.getStorageOkQty()));
|
||||
}
|
||||
if(hasStockOut>0){
|
||||
// 库存类型为出库
|
||||
saveStorage(storageCheckDO,2,3);
|
||||
|
||||
if (storageMatDO.getOnemoney() != null && !storageMatDO.getOnemoney().trim().equals("")) {
|
||||
BigDecimal bigDecimal = new BigDecimal(storageMatDO.getOnemoney());
|
||||
storageInventoryDO.setPrice(bigDecimal);
|
||||
}
|
||||
storageInventoryMapper.insertOrUpdate(storageInventoryDO);
|
||||
} else {
|
||||
//不然就是出库
|
||||
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()));
|
||||
}
|
||||
if (storageMatDO.getOnemoney() != null && !storageMatDO.getOnemoney().trim().equals("")) {
|
||||
BigDecimal bigDecimal = new BigDecimal(storageMatDO.getOnemoney());
|
||||
storageInventoryDO.setPrice(bigDecimal);
|
||||
}
|
||||
storageInventoryMapper.insertOrUpdate(storageInventoryDO);
|
||||
}
|
||||
|
||||
// 插入库存日志表
|
||||
StorageLogDO storageLogDO = new StorageLogDO();
|
||||
storageLogDO.setStockId(storageMatDO.getCheckId());
|
||||
storageLogDO.setMatId(storageMatDO.getMatId());
|
||||
storageLogDO.setWhId(storageMatDO.getWhId());
|
||||
storageLogDO.setRgId(storageMatDO.getRgId());
|
||||
storageLogDO.setPnId(storageMatDO.getPnId());
|
||||
storageLogDO.setStorageOkQty(storageMatDO.getStorageOkQty().subtract(storageMatDO.getMatRest()));
|
||||
storageLogDO.setLotNo(storageMatDO.getLotNo());
|
||||
storageLogDO.setStatus(2);
|
||||
storageLogMapper.insert(storageLogDO);
|
||||
}
|
||||
//同步插入日志
|
||||
// if(hasStockIn>0){
|
||||
// // 库存类型为入库
|
||||
// saveStorage(storageCheckDO,1,2);
|
||||
// }
|
||||
// if(hasStockOut>0){
|
||||
// // 库存类型为出库
|
||||
// saveStorage(storageCheckDO,2,3);
|
||||
// }
|
||||
return true;
|
||||
}
|
||||
|
||||
private void saveStorage(StorageCheckDO storageCheckDO, Integer stockType, Integer stockInType) {
|
||||
|
||||
LocalDateTime current = LocalDateTime.now();
|
||||
@ -252,6 +325,7 @@ public class StorageCheckServiceImpl implements StorageCheckService {
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private void saveStorageLog(StorageMatDO storageMatDO) {
|
||||
// 插入库存日志表
|
||||
StorageLogDO storageLogDO = new StorageLogDO();
|
||||
|
@ -140,15 +140,21 @@
|
||||
</template>
|
||||
</el-table-column>
|
||||
|
||||
<el-table-column prop="money" min-width="120" align="center" >
|
||||
<!-- <el-table-column prop="money" min-width="120" align="center" >
|
||||
<template #header> <span class="hl-table_header">*</span>金额</template>
|
||||
<template #default="scope">
|
||||
<el-form-item :prop="`${scope.$index}.money`" :rules="subFormRules.money" class="mb-0px!" >
|
||||
<el-input v-model="scope.row.money" :disabled="ctrView || ctrSave" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column> -->
|
||||
<el-table-column prop="onemoney" label="单价" min-width="120" align="center">
|
||||
<template #default="scope">
|
||||
<el-form-item :prop="`${scope.$index}.onemoney`" class="mb-0px!" >
|
||||
<el-input v-model="scope.row.onemoney" :disabled="ctrView || ctrSave" />
|
||||
</el-form-item>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column prop="onemoney" label="单价" min-width="120" align="center"/>
|
||||
|
||||
|
||||
|
||||
@ -453,6 +459,10 @@ const getList = async (arrMat) => {
|
||||
row.pnId = ''
|
||||
row.matRest = 0
|
||||
}
|
||||
console.log(row.price)
|
||||
if(row.price){
|
||||
row.onemoney = row.price
|
||||
}
|
||||
formData.value.matItemDOList.push(row)
|
||||
matCount = matCount + 1
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user