物料接口 工艺接口
This commit is contained in:
parent
df99d4cb3a
commit
2f3f0f5916
@ -37,8 +37,6 @@ import java.util.*;
|
|||||||
|
|
||||||
/**
|
/**
|
||||||
* 工艺路线
|
* 工艺路线
|
||||||
*
|
|
||||||
* @author ruoyi
|
|
||||||
* @date 2024-10-09
|
* @date 2024-10-09
|
||||||
*/
|
*/
|
||||||
@Validated
|
@Validated
|
||||||
@ -85,25 +83,7 @@ public class ProcessRouteController extends BaseController {
|
|||||||
parent.setMaterialName(processRouteVo.getMaterialName());
|
parent.setMaterialName(processRouteVo.getMaterialName());
|
||||||
parent.setMaterial(processRouteVo.getMaterial());
|
parent.setMaterial(processRouteVo.getMaterial());
|
||||||
parent.setDiscWeight(processRouteVo.getDiscWeight());
|
parent.setDiscWeight(processRouteVo.getDiscWeight());
|
||||||
/*parent.setRawMaterialCode(processRouteVo.getRawMaterialCode());
|
|
||||||
parent.setRawMaterialName(processRouteVo.getRawMaterialName());
|
|
||||||
parent.setDiscUsage(processRouteVo.getDiscUsage());
|
|
||||||
parent.setBomUnit(processRouteVo.getBomUnit());
|
|
||||||
parent.setBomMaterial(processRouteVo.getBomMaterial());
|
|
||||||
parent.setProcessNo(processRouteVo.getProcessNo());
|
|
||||||
parent.setWorkCenter(processRouteVo.getWorkCenter());
|
|
||||||
parent.setProcessName(processRouteVo.getProcessName());
|
|
||||||
parent.setProcessDescription(processRouteVo.getProcessDescription());
|
|
||||||
parent.setProcessControl(processRouteVo.getProcessControl());
|
|
||||||
parent.setActivityDuration(processRouteVo.getActivityDuration());
|
|
||||||
parent.setActivityUnit(processRouteVo.getActivityUnit());
|
|
||||||
parent.setUnitQuantity(processRouteVo.getUnitQuantity());
|
|
||||||
parent.setBatchQuantity(processRouteVo.getBatchQuantity());
|
|
||||||
parent.setFirstBatchQuantity(processRouteVo.getFirstBatchQuantity());
|
|
||||||
parent.setPlanStartTime(processRouteVo.getPlanStartTime());
|
|
||||||
parent.setPlanEndTime(processRouteVo.getPlanEndTime());
|
|
||||||
parent.setXuStartTime(processRouteVo.getXuStartTime());
|
|
||||||
parent.setXuEndTime(processRouteVo.getXuEndTime());*/
|
|
||||||
// 初始化子节点列表
|
// 初始化子节点列表
|
||||||
parent.setChildren(new ArrayList<>());
|
parent.setChildren(new ArrayList<>());
|
||||||
// 将父节点放入Map中
|
// 将父节点放入Map中
|
||||||
@ -112,7 +92,7 @@ public class ProcessRouteController extends BaseController {
|
|||||||
topLevelList.add(parent);
|
topLevelList.add(parent);
|
||||||
}
|
}
|
||||||
// 创建子节点,并将其添加到父节点的子集
|
// 创建子节点,并将其添加到父节点的子集
|
||||||
ProcessRouteVo child = createChildVo(processRouteVo, parent.getId());
|
ProcessRouteVo child = createChildVo(processRouteVo, parent.getId(),parent.getMaterialCode(),parent.getMaterialName());
|
||||||
parent.getChildren().add(child);
|
parent.getChildren().add(child);
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -133,10 +113,12 @@ public class ProcessRouteController extends BaseController {
|
|||||||
* @param processRouteVo 原始数据
|
* @param processRouteVo 原始数据
|
||||||
* @return ProcessRouteVo 子节点
|
* @return ProcessRouteVo 子节点
|
||||||
*/
|
*/
|
||||||
private ProcessRouteVo createChildVo(ProcessRouteVo processRouteVo,Long parentId) {
|
private ProcessRouteVo createChildVo(ProcessRouteVo processRouteVo,Long parentId,String materialCode,String materialName) {
|
||||||
ProcessRouteVo child = new ProcessRouteVo();
|
ProcessRouteVo child = new ProcessRouteVo();
|
||||||
child.setId(processRouteVo.getId());
|
child.setId(processRouteVo.getId());
|
||||||
child.setParentId(parentId);
|
child.setParentId(parentId);
|
||||||
|
/* child.setMaterialCode(materialCode);
|
||||||
|
child.setMaterialName(materialName);*/
|
||||||
/* child.setMaterialCode(processRouteVo.getMaterialCode());
|
/* child.setMaterialCode(processRouteVo.getMaterialCode());
|
||||||
child.setMaterialName(processRouteVo.getMaterialName());
|
child.setMaterialName(processRouteVo.getMaterialName());
|
||||||
child.setMaterial(processRouteVo.getMaterial());
|
child.setMaterial(processRouteVo.getMaterial());
|
||||||
@ -327,8 +309,9 @@ public class ProcessRouteController extends BaseController {
|
|||||||
@Log(title = "保存工艺路线", businessType = BusinessType.INSERT)
|
@Log(title = "保存工艺路线", businessType = BusinessType.INSERT)
|
||||||
@RepeatSubmit()
|
@RepeatSubmit()
|
||||||
@PostMapping("/addRoute")
|
@PostMapping("/addRoute")
|
||||||
public R<Void> addRoute( @RequestBody List<ProcessRoute> list) {
|
public R<Void> addRoute( @RequestBody List<ProcessRouteVo> list) {
|
||||||
return toAjax(iProcessRouteService.addRoute(list));
|
|
||||||
|
return iProcessRouteService.addRoute(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
@SaCheckPermission("system:route:add")
|
@SaCheckPermission("system:route:add")
|
||||||
|
|||||||
@ -372,6 +372,7 @@ public class JdUtil {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
/*
|
/*
|
||||||
|
材料bom
|
||||||
{
|
{
|
||||||
"FMATERIALID.FNumber": "001HD24.01.01.017.0",
|
"FMATERIALID.FNumber": "001HD24.01.01.017.0",
|
||||||
"FITEMNAME": "行走原点标定",
|
"FITEMNAME": "行走原点标定",
|
||||||
@ -389,10 +390,10 @@ public class JdUtil {
|
|||||||
for (PlanOrderVo planOrder : planOrderList) {
|
for (PlanOrderVo planOrder : planOrderList) {
|
||||||
JsonObject json = new JsonObject();
|
JsonObject json = new JsonObject();
|
||||||
json.addProperty("FormId", "ENG_BOM");
|
json.addProperty("FormId", "ENG_BOM");
|
||||||
json.addProperty("FieldKeys", "FMATERIALID.FNumber,FITEMNAME ,FMATERIALIDCHILD.FNumber ,FCHILDITEMNAME ,FNUMERATOR ,FDENOMINATOR,FChildBaseUnitID.FNumbe ");
|
json.addProperty("FieldKeys", "F_HBYT_SCLH,FMaterialID.FNumber,FMaterialID.FNumber2,FMaterialName1,FNumerator,FDenominator,FUnitID2.FName");
|
||||||
JsonArray filterString = new JsonArray();
|
JsonArray filterString = new JsonArray();
|
||||||
JsonObject filterObject = new JsonObject();
|
JsonObject filterObject = new JsonObject();
|
||||||
filterObject.addProperty("FieldName", "FMATERIALID.FNumber");
|
filterObject.addProperty("FieldName", "FMaterialID.FNumber");
|
||||||
filterObject.addProperty("Compare", "="); // 改为等号运算符
|
filterObject.addProperty("Compare", "="); // 改为等号运算符
|
||||||
filterObject.addProperty("Value", planOrder.getFBillNo());
|
filterObject.addProperty("Value", planOrder.getFBillNo());
|
||||||
filterObject.addProperty("Left", "");
|
filterObject.addProperty("Left", "");
|
||||||
|
|||||||
@ -1,6 +1,7 @@
|
|||||||
package com.ruoyi.system.service;
|
package com.ruoyi.system.service;
|
||||||
|
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.system.domain.MaterialBom;
|
import com.ruoyi.system.domain.MaterialBom;
|
||||||
import com.ruoyi.system.domain.ProcessRoute;
|
import com.ruoyi.system.domain.ProcessRoute;
|
||||||
@ -82,7 +83,7 @@ public interface IProcessRouteService {
|
|||||||
|
|
||||||
List<String> getProcessInfoList(String query);
|
List<String> getProcessInfoList(String query);
|
||||||
|
|
||||||
boolean addRoute(List<ProcessRoute> list);
|
R<Void> addRoute(List<ProcessRouteVo> list);
|
||||||
|
|
||||||
List<MaterialBom> getProcessMaterialList(ProcessRoute processRoute);
|
List<MaterialBom> getProcessMaterialList(ProcessRoute processRoute);
|
||||||
|
|
||||||
|
|||||||
@ -2,6 +2,7 @@ package com.ruoyi.system.service.impl;
|
|||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
import cn.hutool.json.JSONUtil;
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import cn.hutool.poi.excel.cell.CellSetter;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
||||||
@ -14,6 +15,7 @@ import com.google.gson.JsonObject;
|
|||||||
import com.kingdee.bos.webapi.entity.RepoRet;
|
import com.kingdee.bos.webapi.entity.RepoRet;
|
||||||
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
import com.kingdee.bos.webapi.sdk.K3CloudApi;
|
||||||
import com.ruoyi.common.core.domain.PageQuery;
|
import com.ruoyi.common.core.domain.PageQuery;
|
||||||
|
import com.ruoyi.common.core.domain.R;
|
||||||
import com.ruoyi.common.core.page.TableDataInfo;
|
import com.ruoyi.common.core.page.TableDataInfo;
|
||||||
import com.ruoyi.common.exception.ServiceException;
|
import com.ruoyi.common.exception.ServiceException;
|
||||||
import com.ruoyi.common.utils.StringUtils;
|
import com.ruoyi.common.utils.StringUtils;
|
||||||
@ -28,10 +30,7 @@ import com.ruoyi.system.jdmain.rouplan.FSubEntity;
|
|||||||
import com.ruoyi.system.jdmain.rouplan.Model;
|
import com.ruoyi.system.jdmain.rouplan.Model;
|
||||||
import com.ruoyi.system.jdmain.route.ProcessModel;
|
import com.ruoyi.system.jdmain.route.ProcessModel;
|
||||||
import com.ruoyi.system.listener.LoadBomResult;
|
import com.ruoyi.system.listener.LoadBomResult;
|
||||||
import com.ruoyi.system.mapper.MaterialBomMapper;
|
import com.ruoyi.system.mapper.*;
|
||||||
import com.ruoyi.system.mapper.ProcessInfoMapper;
|
|
||||||
import com.ruoyi.system.mapper.ProcessRouteMapper;
|
|
||||||
import com.ruoyi.system.mapper.ProductionOrderMapper;
|
|
||||||
import com.ruoyi.system.runner.PDFGenerator;
|
import com.ruoyi.system.runner.PDFGenerator;
|
||||||
import com.ruoyi.system.service.IBomDetailsService;
|
import com.ruoyi.system.service.IBomDetailsService;
|
||||||
import com.ruoyi.system.service.IMaterialPropertiesService;
|
import com.ruoyi.system.service.IMaterialPropertiesService;
|
||||||
@ -69,6 +68,8 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
@Autowired
|
@Autowired
|
||||||
IBomDetailsService iBomDetailsService;
|
IBomDetailsService iBomDetailsService;
|
||||||
@Autowired
|
@Autowired
|
||||||
|
BomDetailsMapper bomDetailsMapper;
|
||||||
|
@Autowired
|
||||||
IMaterialPropertiesService iMaterialPropertiesService;
|
IMaterialPropertiesService iMaterialPropertiesService;
|
||||||
@Autowired
|
@Autowired
|
||||||
ProductionOrderMapper productionOrderMapper;
|
ProductionOrderMapper productionOrderMapper;
|
||||||
@ -187,10 +188,33 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
*/
|
*/
|
||||||
@Override
|
@Override
|
||||||
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
public Boolean deleteWithValidByIds(Collection<Long> ids, Boolean isValid) {
|
||||||
if (isValid) {
|
List<ProcessRoute> cunList = new ArrayList<>();
|
||||||
//TODO 做一些业务上的校验,判断是否需要校验
|
// 这里你到时候改成通过ids查询出来 这个ids是你传过来要删除的,你不能通过去排序和查询en
|
||||||
|
for (Long id : ids) {
|
||||||
|
//存储删掉的数据
|
||||||
|
ProcessRoute processRoute = baseMapper.selectById(id);
|
||||||
|
cunList.add(processRoute);
|
||||||
}
|
}
|
||||||
return baseMapper.deleteBatchIds(ids) > 0;
|
// 批量删除
|
||||||
|
if (baseMapper.deleteBatchIds(ids) > 0) {
|
||||||
|
//随便获取一个
|
||||||
|
ProcessRoute processRoute = cunList.get(0);
|
||||||
|
//获取删除后其他的 工序,然后更新工序号
|
||||||
|
LambdaQueryWrapper<ProcessRoute> wrapper = new LambdaQueryWrapper<>();
|
||||||
|
wrapper.eq(ProcessRoute::getRouteDescription, processRoute.getRouteDescription())
|
||||||
|
.eq(ProcessRoute::getMaterialCode, processRoute.getMaterialCode())
|
||||||
|
.eq(ProcessRoute::getMaterialName, processRoute.getMaterialName())
|
||||||
|
.isNotNull(ProcessRoute::getProcessNo);
|
||||||
|
List<ProcessRoute> routeList = baseMapper.selectList(wrapper);
|
||||||
|
//工序号升序排序
|
||||||
|
routeList.sort(Comparator.comparing(ProcessRoute::getProcessNo));
|
||||||
|
|
||||||
|
for (int i = 0; i < routeList.size(); i++) {
|
||||||
|
routeList.get(i).setProcessNo((long) (i + 1) * 10);
|
||||||
|
}
|
||||||
|
return baseMapper.insertOrUpdateBatch(routeList);
|
||||||
|
}
|
||||||
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -376,9 +400,14 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
|
|
||||||
// 3. 保存 BOM 详情
|
// 3. 保存 BOM 详情
|
||||||
saveBomDetails(bomDetailsVos);
|
saveBomDetails(bomDetailsVos);
|
||||||
|
List<ProcessRoute> routeArrayList = new ArrayList<>();
|
||||||
// 4. 批量插入 ProcessRoute 数据
|
// 4. 批量插入 ProcessRoute 数据
|
||||||
return baseMapper.insertBatch(processRoutes);
|
for (ProcessRoute processRoute : processRoutes) {
|
||||||
|
if (processRoute.getProcessNo()!=null||processRoute.getProcessName()!=null){
|
||||||
|
routeArrayList.add(processRoute);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return baseMapper.insertBatch(routeArrayList);
|
||||||
}
|
}
|
||||||
|
|
||||||
private void processMaterialBom(List<ProcessRoute> processRoutes) {
|
private void processMaterialBom(List<ProcessRoute> processRoutes) {
|
||||||
@ -405,19 +434,6 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
materialBom.setUnit(unit);
|
materialBom.setUnit(unit);
|
||||||
materialBom.setMaterialType(materialType);
|
materialBom.setMaterialType(materialType);
|
||||||
materialBom.setQuantity(quantity);
|
materialBom.setQuantity(quantity);
|
||||||
/*
|
|
||||||
ProductionOrder productionOrder = new ProductionOrder();
|
|
||||||
productionOrder.setProductionOrderNo(projectNumber);
|
|
||||||
productionOrder.setDrawingNo(processRoute.getRawMaterialCode());
|
|
||||||
productionOrder.setDrawingName(processRoute.getRawMaterialName());
|
|
||||||
productionOrder.setQuantity(processRoute.getUnitQuantity());
|
|
||||||
productionOrder.setMaterial(materialType);
|
|
||||||
productionOrder.setSingleWeight(processRoute.getDiscWeight());
|
|
||||||
// productionOrder.setTotalWeight(processRoute.getDiscWeight() * processRoute.getUnitQuantity());
|
|
||||||
productionOrder.setParentPart(parentMaterialCode);
|
|
||||||
productionOrder.setParentPart(parentMaterialName);
|
|
||||||
// 这里插入 productionOrder 数据
|
|
||||||
productionOrderMapper.insert(productionOrder);*/
|
|
||||||
// 这里插入 materialBom 数据
|
// 这里插入 materialBom 数据
|
||||||
materialBomMapper.insert(materialBom);
|
materialBomMapper.insert(materialBom);
|
||||||
}
|
}
|
||||||
@ -426,27 +442,21 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
|
|
||||||
private List<BomDetailsVo> processBomDetails(List<ProcessRoute> processRoutes, List<ProductionOrderVo> productionOrderVos) {
|
private List<BomDetailsVo> processBomDetails(List<ProcessRoute> processRoutes, List<ProductionOrderVo> productionOrderVos) {
|
||||||
List<BomDetailsVo> bomDetailsVos = new ArrayList<>();
|
List<BomDetailsVo> bomDetailsVos = new ArrayList<>();
|
||||||
String zFnumber = null;
|
|
||||||
String zFname = null;
|
|
||||||
String zFlinghao = null;
|
|
||||||
|
|
||||||
// 1. 处理总装部件
|
// 1. 处理总装部件
|
||||||
String proMaterials = null;
|
|
||||||
for (ProcessRoute processRoute : processRoutes) {
|
for (ProcessRoute processRoute : processRoutes) {
|
||||||
if (processRoute.getRawMaterialCode() != null) {
|
if (processRoute != null) {
|
||||||
zFlinghao = processRoute.getProcessDescription();
|
String zFlinghao = processRoute.getRouteDescription();
|
||||||
BomDetailsVo bomDetails = createBomDetails(processRoute);
|
|
||||||
|
|
||||||
if ("总装部件".equals(processRoute.getMaterial())) {
|
if ("总装部件".equals(processRoute.getMaterial())) {
|
||||||
proMaterials = "总装部件";
|
String zFnumber = processRoute.getMaterialCode();
|
||||||
zFnumber = processRoute.getMaterialCode();
|
String zFname = processRoute.getMaterialName();
|
||||||
zFname = processRoute.getMaterialName();
|
|
||||||
|
|
||||||
// 将装配 BOM 详情填充进 BOM 详情列表
|
// 将装配 BOM 详情填充进 BOM 详情列表
|
||||||
bomDetailsVos.add(createAssemblyBomDetails(zFlinghao, zFnumber, zFname, productionOrderVos));
|
createAssemblyBomDetails(zFlinghao, zFnumber, zFname, productionOrderVos);
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
if (processRoute.getRawMaterialCode() != null || processRoute.getRawMaterialName() != null || processRoute.getBomMaterial() != null || processRoute.getBomUnit() != null) {
|
||||||
|
BomDetailsVo bomDetails = createBomDetails(processRoute);
|
||||||
|
bomDetailsVos.add(bomDetails);
|
||||||
}
|
}
|
||||||
|
|
||||||
bomDetailsVos.add(bomDetails);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -475,7 +485,7 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
bomDetails.setQuantity(1.0);
|
bomDetails.setQuantity(1.0);
|
||||||
}
|
}
|
||||||
// 根据 RawMaterialCode 判断是否外购
|
// 根据 RawMaterialCode 判断是否外购
|
||||||
if (isOutsourced(processRoute.getRawMaterialCode())) {
|
if (isOutsourced(processRoute.getMaterialCode())) {
|
||||||
bomDetails.setStats("外购");
|
bomDetails.setStats("外购");
|
||||||
} else {
|
} else {
|
||||||
bomDetails.setStats("自制");
|
bomDetails.setStats("自制");
|
||||||
@ -486,14 +496,14 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
return bomDetails;
|
return bomDetails;
|
||||||
}
|
}
|
||||||
|
|
||||||
private BomDetailsVo createAssemblyBomDetails(String zFlinghao, String zFnumber, String zFname, List<ProductionOrderVo> productionOrderVos) {
|
private void createAssemblyBomDetails(String zFlinghao, String zFnumber, String zFname, List<ProductionOrderVo> productionOrderVos) {
|
||||||
BomDetailsVo bomDetails = null;
|
ArrayList<BomDetailsVo> bomDetailsVos = new ArrayList<>();
|
||||||
for (ProductionOrderVo productionOrderVo : productionOrderVos) {
|
for (ProductionOrderVo productionOrderVo : productionOrderVos) {
|
||||||
bomDetails = new BomDetailsVo();
|
BomDetailsVo bomDetails = new BomDetailsVo();
|
||||||
bomDetails.setTotalWeight(zFlinghao);
|
bomDetails.setTotalWeight(zFlinghao);
|
||||||
bomDetails.setFNumber(zFnumber);
|
bomDetails.setFNumber(zFnumber);
|
||||||
bomDetails.setFName(zFname);
|
bomDetails.setFName(zFname);
|
||||||
bomDetails.setPartdiagramCode(productionOrderVo.getProductionOrderNo());
|
bomDetails.setPartdiagramCode(productionOrderVo.getParentDrawingNo());
|
||||||
bomDetails.setPartdiagramName(productionOrderVo.getParentPart());
|
bomDetails.setPartdiagramName(productionOrderVo.getParentPart());
|
||||||
bomDetails.setPartNumber(productionOrderVo.getDrawingNo());
|
bomDetails.setPartNumber(productionOrderVo.getDrawingNo());
|
||||||
bomDetails.setName(productionOrderVo.getDrawingName());
|
bomDetails.setName(productionOrderVo.getDrawingName());
|
||||||
@ -501,14 +511,17 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
bomDetails.setMaterial(productionOrderVo.getMaterial());
|
bomDetails.setMaterial(productionOrderVo.getMaterial());
|
||||||
|
|
||||||
// 判断外购或自制
|
// 判断外购或自制
|
||||||
if (isOutsourced(productionOrderVo.getDrawingNo())) {
|
if (isOutsourced(productionOrderVo.getDrawingNo())|| productionOrderVo.getRemark().contains("外购")) {
|
||||||
bomDetails.setStats("外购");
|
bomDetails.setStats("外购");
|
||||||
} else {
|
} else {
|
||||||
bomDetails.setStats("自制");
|
bomDetails.setStats("自制");
|
||||||
}
|
}
|
||||||
|
// iBomDetailsService.insertByVo(bomDetails);
|
||||||
|
bomDetailsVos.add(bomDetails);
|
||||||
}
|
}
|
||||||
|
log.info("总装bom物料添加");
|
||||||
|
|
||||||
return bomDetails;
|
saveBomDetails(bomDetailsVos);
|
||||||
}
|
}
|
||||||
|
|
||||||
public int loadMaterialPreservation(BomDetails bomDetails1, String states) {
|
public int loadMaterialPreservation(BomDetails bomDetails1, String states) {
|
||||||
@ -705,9 +718,10 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private boolean isOutsourced(String code) {
|
private boolean isOutsourced(String code) {
|
||||||
return code.startsWith("009") || code.startsWith("AA") || code.startsWith("AB") || code.startsWith("AC") || code.startsWith("015") || code.contains("(M)");
|
return code.startsWith("009") || code.startsWith("AA") || code.startsWith("AB(") || code.startsWith("AC(") || code.startsWith("015") || code.contains("(M)") ||code.startsWith("BC(");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//保存到 BomDetails 表中
|
||||||
private void saveBomDetails(List<BomDetailsVo> bomDetailsVos) {
|
private void saveBomDetails(List<BomDetailsVo> bomDetailsVos) {
|
||||||
List<BomDetails> materialsToAdd = new ArrayList<>();
|
List<BomDetails> materialsToAdd = new ArrayList<>();
|
||||||
for (BomDetailsVo bomDetailsVo : bomDetailsVos) {
|
for (BomDetailsVo bomDetailsVo : bomDetailsVos) {
|
||||||
@ -742,6 +756,40 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
iBomDetailsService.updateByBo(BeanUtil.toBean(material, BomDetailsBo.class));
|
iBomDetailsService.updateByBo(BeanUtil.toBean(material, BomDetailsBo.class));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
private void saveBomDetails1(List<BomDetailsVo> bomDetailsVos) {
|
||||||
|
List<BomDetails> materialsToAdd = new ArrayList<>();
|
||||||
|
for (BomDetailsVo bomDetailsVo : bomDetailsVos) {
|
||||||
|
BomDetails bomDetails = BeanUtil.toBean(bomDetailsVo, BomDetails.class);
|
||||||
|
|
||||||
|
// 验证物料是否存在
|
||||||
|
if (isMaterialVerification(bomDetails.getPartNumber(), bomDetails.getName()) == 1) {
|
||||||
|
bomDetails.setUnitWeight("是");
|
||||||
|
} else {
|
||||||
|
bomDetails.setUnitWeight("否");
|
||||||
|
materialsToAdd.add(bomDetails);
|
||||||
|
}
|
||||||
|
|
||||||
|
// 保存 BomDetails 记录
|
||||||
|
// iBomDetailsService.insertByVo(BeanUtil.toBean(bomDetails, BomDetailsVo.class));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 新增不存在的物料
|
||||||
|
for (BomDetails material : materialsToAdd) {
|
||||||
|
String state = determineState(material);
|
||||||
|
log.info("开始新增不存在的物料 ==> 物料图号: " + material.getPartNumber() + " 物料名称: " + material.getName());
|
||||||
|
|
||||||
|
int result = loadMaterialPreservation(material, state);
|
||||||
|
if (result == 1) {
|
||||||
|
log.info("新增物料成功 ==> 物料图号: " + material.getPartNumber() + " 物料名称: " + material.getName());
|
||||||
|
material.setUnitWeight("新增成功");
|
||||||
|
} else {
|
||||||
|
log.error("新增物料失败 ==> 物料图号: " + material.getPartNumber() + " 物料名称: " + material.getName());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新物料状态
|
||||||
|
// iBomDetailsService.updateByBo(BeanUtil.toBean(material, BomDetailsBo.class));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<ProcessRoute> pushGroupWeldments(ProcessRoute Bo) {
|
public List<ProcessRoute> pushGroupWeldments(ProcessRoute Bo) {
|
||||||
@ -1137,19 +1185,40 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
// 过滤掉 null 值并转换为字符串
|
// 过滤掉 null 值并转换为字符串
|
||||||
return processInfoList.stream()
|
return processInfoList.stream()
|
||||||
.filter(Objects::nonNull)
|
.filter(Objects::nonNull)
|
||||||
.map(ProcessInfo::getProcessName) // 获取 processName 字段
|
// 获取 processName 字段
|
||||||
.filter(Objects::nonNull) // 过滤掉 null 值
|
.map(ProcessInfo::getProcessName)
|
||||||
.distinct() // 去重
|
// 过滤掉 null 值
|
||||||
|
.filter(Objects::nonNull)
|
||||||
|
// 去重
|
||||||
|
.distinct()
|
||||||
.collect(Collectors.toList());
|
.collect(Collectors.toList());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean addRoute(List<ProcessRoute> list) {
|
public R<Void> addRoute(List<ProcessRouteVo> list) {
|
||||||
//根据下标重置工序号 10 20 30 40
|
|
||||||
for (int i = 0; i < list.size(); i++) {
|
List<ProcessRoute> routeArrayList = new ArrayList<>();
|
||||||
list.get(i).setProcessNo((long) ((i + 1) * 10));
|
for (ProcessRouteVo vo : list) {
|
||||||
|
ProcessRoute route = new ProcessRoute();
|
||||||
|
route.setRouteDescription(vo.getRouteDescription());
|
||||||
|
route.setMaterialCode(vo.getMaterialCode());
|
||||||
|
route.setMaterialName(vo.getMaterialName());
|
||||||
|
route.setProcessNo(vo.getProcessNo());
|
||||||
|
route.setWorkCenter(vo.getWorkCenter());
|
||||||
|
route.setDiscWeight(vo.getDiscWeight());
|
||||||
|
route.setMaterial(vo.getMaterial());
|
||||||
|
route.setProcessName(vo.getProcessName());
|
||||||
|
route.setProcessControl(vo.getProcessControl());
|
||||||
|
route.setProcessDescription(vo.getProcessDescription());
|
||||||
|
route.setActivityDuration(vo.getActivityDuration());
|
||||||
|
route.setActivityUnit("分");
|
||||||
|
routeArrayList.add(route);
|
||||||
}
|
}
|
||||||
return baseMapper.insertBatch(list);
|
if (baseMapper.insertBatch(routeArrayList)) {
|
||||||
|
return R.ok();
|
||||||
|
}
|
||||||
|
|
||||||
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@ -1158,8 +1227,8 @@ public class ProcessRouteServiceImpl implements IProcessRouteService {
|
|||||||
@Override
|
@Override
|
||||||
public List<MaterialBom> getProcessMaterialList(ProcessRoute processRoute) {
|
public List<MaterialBom> getProcessMaterialList(ProcessRoute processRoute) {
|
||||||
if (processRoute == null) {
|
if (processRoute == null) {
|
||||||
logger.error("ProcessRoute is null");
|
logger.error("做工艺的物料不存在");
|
||||||
throw new IllegalArgumentException("ProcessRoute cannot be null");
|
throw new IllegalArgumentException("做工艺的物料不能为空");
|
||||||
}
|
}
|
||||||
|
|
||||||
String materialCode = processRoute.getMaterialCode();
|
String materialCode = processRoute.getMaterialCode();
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user