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