获取订单 半成品订单生成

dev
siontion 4 months ago
parent 8a259210c9
commit 8828c22054

@ -849,9 +849,9 @@ public class ChanjetManager {
private void saveSemiFinishedOrder(MaterialDO materialDO,ProjectOrderSaveReqVO saveReqVO,Integer orderAmount){
// 查询当前物料子件物料信息
List<BomMaterialVO> bomDataList = queryProcessBom(materialDO.getCode(),saveReqVO.getWarehouseId());
if(CollUtil.isNotEmpty(bomDataList) && bomDataList.stream().filter(mo->mo.getMaterialId()!=null && mo.getMaterialId().toString().startsWith("6")).count()>0){
if(CollUtil.isNotEmpty(bomDataList) && bomDataList.stream().filter(mo->mo.getProjectSubCode()!=null && mo.getProjectSubCode().toString().startsWith("6")).count()>0){
List<BomMaterialVO> mat6 = bomDataList.stream().filter(mo->mo.getMaterialId()!=null && mo.getMaterialId().toString().startsWith("6")).collect(Collectors.toList());
List<BomMaterialVO> mat6 = bomDataList.stream().filter(mo->mo.getProjectSubCode()!=null && mo.getProjectSubCode().toString().startsWith("6")).collect(Collectors.toList());
ProjectOrderDO newProjectOrderDO =BeanUtil.toBean(projectOrderMapper.selectById(saveReqVO.getId()),ProjectOrderDO.class);
@ -859,12 +859,12 @@ public class ChanjetManager {
List<ProjectOrderSubDO> subDOList = new ArrayList<>(16);
mat6.forEach(mo->{
MaterialDO item = materialMapper.selectById(mo.getMaterialId());
MaterialDO item = materialMapper.selectOne("code",mo.getProjectSubCode());
BigDecimal matAmount = new BigDecimal("0");
if(mo.getProduceQuantity()==null || mo.getProduceQuantity().equals(0)){
matAmount = matAmount.subtract(mo.getStockQuantity()).add(item.getInvSafe());
}else{
matAmount = mo.getRequiredQuantity().divide(mo.getProduceQuantity()).multiply(new BigDecimal(orderAmount)).subtract(mo.getStockQuantity()).add(item.getInvSafe());
matAmount = mo.getRequiredQuantity().divide(mo.getProduceQuantity()).multiply(new BigDecimal(orderAmount)).subtract(mo.getStockQuantity()).add(item.getInvSafe()==null?new BigDecimal(0):item.getInvSafe());
}
if(matAmount.intValue()>0){
ProjectOrderSubDO subDO = new ProjectOrderSubDO();
@ -881,6 +881,7 @@ public class ChanjetManager {
newProjectOrderDO.setId(null)
.setCode(newProjectOrderDO.getCode()+"-1")
.setExternalCode(newProjectOrderDO.getCode()+"-1")
.setStatus(ValidStatusEnum.VALID.getCode())
.setOrderSource(ProjectOrderSourceEnum.INTERFACE.getCode())
.setOrderStatus(ProjectOrderStatusEnum.SAVE.getCode())
@ -888,7 +889,7 @@ public class ChanjetManager {
// 保存订单信息
projectOrderMapper.insert(newProjectOrderDO);
subDOList.stream().map(vo->vo.setProjectOrderId(newProjectOrderDO.getId()));
subDOList.stream().forEach(vo->vo.setProjectOrderId(newProjectOrderDO.getId()));
projectOrderSubMapper.insertBatch(subDOList);
}

Loading…
Cancel
Save