Browse Source

[fix]

生产管理 生产订单
修改查询生产订单BOM信息列表service方法,修改获取已领料数查询条件;
修改仓库采购入库单进行入库的时候更新生产订单数据service方法,去除品质状态的更新;
新增生产领料单查询生产订单领料明细列表controller接口,过滤重复物料并合计领料数显示;
修改新增生产领料单service方法,添加合计后验证语句;
dev
王晓迪 3 months ago
parent
commit
59a5717a81
  1. 34
      ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderPickDetailController.java
  2. 3
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java
  3. 2
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java
  4. 43
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderPickServiceImpl.java
  5. 2
      ruoyi-admin/src/main/resources/templates/system/makeorderpick/detail.html

34
ruoyi-admin/src/main/java/com/ruoyi/system/controller/SysMakeorderPickDetailController.java

@ -1,6 +1,11 @@
package com.ruoyi.system.controller; package com.ruoyi.system.controller;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List; import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
import org.apache.shiro.authz.annotation.RequiresPermissions; import org.apache.shiro.authz.annotation.RequiresPermissions;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Controller; import org.springframework.stereotype.Controller;
@ -54,6 +59,35 @@ public class SysMakeorderPickDetailController extends BaseController
return getDataTable(list); return getDataTable(list);
} }
/**
* 查询生产订单领料明细列表
*/
// @RequiresPermissions("system:makeorderpickdetail:list")
@PostMapping("/mergedList")
@ResponseBody
public TableDataInfo mergedList(SysMakeorderPickDetail sysMakeorderPickDetail)
{
startPage();
List<SysMakeorderPickDetail> list = sysMakeorderPickDetailService.selectSysMakeorderPickDetailList(sysMakeorderPickDetail);
//合并相同料号数据,合计该物料总领料数
List<SysMakeorderPickDetail> mergedDetails = list.stream()
.collect(Collectors.groupingBy(SysMakeorderPickDetail::getMaterialNo))
.values().stream()
.map(group -> {
// 取第一个对象
SysMakeorderPickDetail tempPickDetail = group.get(0);
// 计算领料数的总和
long totalPickupQuantity = group.stream()
.mapToLong(SysMakeorderPickDetail::getPickNum)
.sum();
tempPickDetail.setPickNum(totalPickupQuantity);
return tempPickDetail;
})
.collect(Collectors.toList());
return getDataTable(mergedDetails);
}
/** /**
* 导出生产订单领料明细列表 * 导出生产订单领料明细列表
*/ */

3
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java

@ -536,8 +536,7 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService
}else { }else {
sysMakeOrder.setEceiptStatus("7");//部分入库 sysMakeOrder.setEceiptStatus("7");//部分入库
} }
//暂时全部品质
sysMakeOrder.setQualityStatus("2");
//更新生产订单的数据 //更新生产订单的数据
updateResult += sysMakeOrderMapper.updateByMakeNo(sysMakeOrder); updateResult += sysMakeOrderMapper.updateByMakeNo(sysMakeOrder);
if (updateResult <= 0){ if (updateResult <= 0){

2
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderBomServiceImpl.java

@ -68,7 +68,7 @@ public class SysMakeorderBomServiceImpl implements ISysMakeorderBomService
// 获取已领料数 // 获取已领料数
SysMakeorderPickDetail tempDetail = new SysMakeorderPickDetail(); SysMakeorderPickDetail tempDetail = new SysMakeorderPickDetail();
tempDetail.setMakeNo(sysMakeorderBom.getMakeNo()); tempDetail.setMakeNo(sysMakeorderBom.getMakeNo());
tempDetail.setMaterialNo(bom.getMaterialNo()); tempDetail.setMakeorderBomId(bom.getId());
List<SysMakeorderPickDetail> pickDetails = pickDetailMapper.selectSysMakeorderPickDetailList(tempDetail); List<SysMakeorderPickDetail> pickDetails = pickDetailMapper.selectSysMakeorderPickDetailList(tempDetail);
if(CollectionUtil.isEmpty(pickDetails)){ if(CollectionUtil.isEmpty(pickDetails)){
bom.setHasPickNum(0); bom.setHasPickNum(0);

43
ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeorderPickServiceImpl.java

@ -21,6 +21,7 @@ import com.ruoyi.system.mapper.SysUserMapper;
import com.ruoyi.system.service.ISysMakeorderPickDetailService; import com.ruoyi.system.service.ISysMakeorderPickDetailService;
import com.ruoyi.system.service.ISysMakeorderPickService; import com.ruoyi.system.service.ISysMakeorderPickService;
import com.ruoyi.system.service.ISysRoleService; import com.ruoyi.system.service.ISysRoleService;
import com.ruoyi.warehouse.mapper.WarehouseOutOrderMapper;
import com.ruoyi.warehouse.service.IWarehouseOutOrderService; import com.ruoyi.warehouse.service.IWarehouseOutOrderService;
import org.activiti.engine.TaskService; import org.activiti.engine.TaskService;
import org.activiti.engine.impl.persistence.entity.TaskEntityImpl; import org.activiti.engine.impl.persistence.entity.TaskEntityImpl;
@ -31,6 +32,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.CollectionUtils; import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.util.HashMap; import java.util.HashMap;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -70,6 +72,9 @@ public class SysMakeorderPickServiceImpl implements ISysMakeorderPickService
@Autowired @Autowired
private BizTodoItemMapper todoItemMapper; private BizTodoItemMapper todoItemMapper;
@Autowired
private IWarehouseOutOrderService warehouseOutOrderService;
/** /**
* 查询生产领料单 * 查询生产领料单
* *
@ -179,17 +184,44 @@ public class SysMakeorderPickServiceImpl implements ISysMakeorderPickService
sysMakeorderPick.setCreateTime(DateUtils.getNowDate()); sysMakeorderPick.setCreateTime(DateUtils.getNowDate());
//保留领料单数不为空的数据 //保留领料单数不为空的数据
List<SysMakeorderPickDetail> filterPickDetails = pickDetails.stream().filter(details -> details.getPickNum() != null&& details.getPickNum() > 0).collect(Collectors.toList()); List<SysMakeorderPickDetail> filterPickDetails = pickDetails.stream()
.filter(details -> details.getPickNum() != null&& details.getPickNum() > 0)
.collect(Collectors.toList());
if(CollectionUtil.isEmpty(filterPickDetails)){ if(CollectionUtil.isEmpty(filterPickDetails)){
throw new BusinessException("领料数不能全为空!"); throw new BusinessException("领料数不能全为空!");
} }
//合并相同料号数据,合计该物料总领料数
List<SysMakeorderPickDetail> mergedDetails = pickDetails.stream()
.collect(Collectors.groupingBy(SysMakeorderPickDetail::getMaterialNo))
.values().stream()
.map(group -> {
// 取第一个对象
SysMakeorderPickDetail tempPickDetail = group.get(0);
BigDecimal storageNum = tempPickDetail.getStorageNum();
// 计算领料数的总和
long totalPickupQuantity = group.stream()
.mapToLong(SysMakeorderPickDetail::getPickNum)
.sum();
SysMakeorderPickDetail pickDetail = new SysMakeorderPickDetail();
pickDetail.setMaterialNo(tempPickDetail.getMaterialNo());
pickDetail.setStorageNum(storageNum);
pickDetail.setPickNum(totalPickupQuantity);
return pickDetail;
})
.collect(Collectors.toList());
//遍历合并后数据,查看总领料数是否大于可用库存数
for (SysMakeorderPickDetail pickDetail: mergedDetails) {
if(pickDetail.getPickNum()>pickDetail.getStorageNum().longValue()){
throw new BusinessException("物料" +pickDetail.getMaterialNo() + "总领料数超出可用库存数,请检查");
}
}
Integer enterpriseSum = (int) filterPickDetails.stream() Integer enterpriseSum = (int) filterPickDetails.stream()
.mapToLong(SysMakeorderPickDetail::getPickNum) .mapToLong(SysMakeorderPickDetail::getPickNum)
.sum(); .sum();
sysMakeorderPick.setEnterpriseSum(enterpriseSum); sysMakeorderPick.setEnterpriseSum(enterpriseSum);
sysMakeorderPick.setMaterialSum(filterPickDetails.size()); sysMakeorderPick.setMaterialSum(mergedDetails.size());
for (SysMakeorderPickDetail pickDetail:filterPickDetails) { for (SysMakeorderPickDetail pickDetail:filterPickDetails) {
if(pickDetail.getPickNum()>pickDetail.getStorageNum().intValue()){ if(pickDetail.getPickNum()>pickDetail.getStorageNum().intValue()){
@ -213,8 +245,8 @@ public class SysMakeorderPickServiceImpl implements ISysMakeorderPickService
} }
} }
int id = sysMakeorderPickMapper.insertSysMakeorderPick(sysMakeorderPick); int insertResult = sysMakeorderPickMapper.insertSysMakeorderPick(sysMakeorderPick);
return id; return insertResult;
} }
/** /**
@ -306,6 +338,9 @@ public class SysMakeorderPickServiceImpl implements ISysMakeorderPickService
if(processIsFinish){ if(processIsFinish){
// 审核状态-审核通过 // 审核状态-审核通过
makeorderPick.setAuditStatus("1"); makeorderPick.setAuditStatus("1");
//如果领料单审核通过,生成出库单
SysMakeorderPickVo makeorderPickVo = sysMakeorderPickMapper.selectSysMakeorderPickById(makeorderPick.getId());
warehouseOutOrderService.generateWarehouseOutOrderByMakeorderPick(makeorderPickVo);
} }
sysMakeorderPickMapper.updateSysMakeorderPick(makeorderPick); sysMakeorderPickMapper.updateSysMakeorderPick(makeorderPick);
return processInstance; return processInstance;

2
ruoyi-admin/src/main/resources/templates/system/makeorderpick/detail.html

@ -58,7 +58,7 @@
$(function(){ $(function(){
var options = { var options = {
id: 'bootstrap-sub-table-1', id: 'bootstrap-sub-table-1',
url: ctx + "system/makeorderpickdetail/list", url: ctx + "system/makeorderpickdetail/mergedList",
method: 'post', method: 'post',
showSearch: false, showSearch: false,
showRefresh: false, showRefresh: false,

Loading…
Cancel
Save