Browse Source

[fix]

生产管理 生产订单
修改添加委外计划页面,损耗率初始化方法;
修改生成委外计划service方法,合并相同料号的数据,计划数相加;
dev
王晓迪 2 months ago
parent
commit
bcd769446f
  1. 16
      ruoyi-admin/src/main/java/com/ruoyi/system/service/impl/SysMakeOrderServiceImpl.java
  2. 12
      ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html

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

@ -820,11 +820,23 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService
if(StringUtils.isEmpty(planDetails)){
throw new BusinessException("委外计划物料集合为空!添加失败");
}
// 合并相同料号的数据,计划数相加
Map<String, OutsourcePlanDetail> aggregated = new HashMap<>();
for (OutsourcePlanDetail detail : planDetails) {
aggregated.merge(detail.getMaterialNo(),
new OutsourcePlanDetail(),
(existing, replacement) -> {
existing.setPlannedOutsourceAmount(existing.getPlannedOutsourceAmount() + replacement.getPlannedOutsourceAmount());
return existing;
});
}
// 将Map转回List
List<OutsourcePlanDetail> mergedPlanDetails = new ArrayList<>(aggregated.values());
int materialAmount = 0;
int processAmount = 0;
int materialSum = 0;
Set<String> uniqueProcessNos = new HashSet<>(); // 用于存储唯一的 processNo
for (OutsourcePlanDetail detail:planDetails) {
for (OutsourcePlanDetail detail:mergedPlanDetails) {
detail.setOutsourcePlanCode(outsourcePlanCode);
detail.setCreateBy(ShiroUtils.getLoginName());
detail.setCreateTime(DateUtils.getNowDate());
@ -885,7 +897,7 @@ public class SysMakeOrderServiceImpl implements ISysMakeOrderService
tempBom.setId(detail.getMakeBomId());
SysMakeorderBom makeorderBom = makeorderBomMapper.selectSysMakeorderBomByNo(tempBom);
int hasOutSum = Optional.ofNullable(makeorderBom.getHasOutNum()).orElse(0);
hasOutSum = hasOutSum + makeorderBom.getHasOutNum();
hasOutSum = hasOutSum + detail.getPlannedOutsourceAmount();
makeorderBom.setHasOutNum(hasOutSum);
updateResult += makeorderBomMapper.updateSysMakeorderBom(makeorderBom);
}

12
ruoyi-admin/src/main/resources/templates/system/makeorder/addOutsourcePlan.html

@ -311,7 +311,14 @@
{
field: 'lossRate',
align: 'center',
title: '损耗率',
title: '损耗率(%)',
formatter: function (value, row, index) {
if (value == null || value == ''){
return "0.00%";
}
value = parseFloat(value).toFixed(2);
return value + "%";
}
},
{
field: 'processNum',
@ -337,8 +344,9 @@
title: '本次委外数量',
formatter: function (value,row,index){
var processMethod = row.processMethod;
var hasOutNum = Number(row.hasOutNum);
//加工方式为2委外加工或4委外加工或采购
if(processMethod === "2"||processMethod === "4"){
if((processMethod === "2"||processMethod === "4") && hasOutNum === 0){
var curIndex = row.sortNo-1;
return '<input class = "form-control" data-id = "pickNum_'+curIndex+'" id="outsourceNum_'+childTableId+'_'+row.materialNo+'" name="outsourceNum_'+curIndex+'" onchange="saveOutNum(' + row.materialNo + ', \'' + childTableId + '\', event)">';
}

Loading…
Cancel
Save