bom替代料接口调整

This commit is contained in:
mzr 2025-09-15 21:44:33 +08:00
parent 5d68e40f57
commit 84ad04810b
3 changed files with 1847 additions and 1818 deletions

View File

@ -1,5 +1,7 @@
package nccloud.api.impl.mmbd.bom; package nccloud.api.impl.mmbd.bom;
import nc.bs.bd.bom.bom0202.bp.BomPubBP;
import nc.bs.bd.bom.bom0202.bp.BomUpdateBP;
import nc.bs.dao.BaseDAO; import nc.bs.dao.BaseDAO;
import nc.bs.framework.common.InvocationInfoProxy; import nc.bs.framework.common.InvocationInfoProxy;
import nc.bs.framework.common.NCLocator; import nc.bs.framework.common.NCLocator;
@ -24,9 +26,12 @@ import nc.util.mmf.busi.measure.MeasureParam;
import nc.util.mmf.busi.measure.MeasureVO; import nc.util.mmf.busi.measure.MeasureVO;
import nc.util.mmf.busi.measure.NumScaleUtil; import nc.util.mmf.busi.measure.NumScaleUtil;
import nc.util.mmf.busi.service.OrgUnitPubService; import nc.util.mmf.busi.service.OrgUnitPubService;
import nc.util.mmf.framework.base.MMArrayUtil;
import nc.util.mmf.framework.base.MMValueCheck; import nc.util.mmf.framework.base.MMValueCheck;
import nc.util.mmf.framework.gc.GCBillTransferTool;
import nc.vo.bd.bom.bom0202.entity.*; import nc.vo.bd.bom.bom0202.entity.*;
import nc.vo.bd.bom.bom0202.enumeration.*; import nc.vo.bd.bom.bom0202.enumeration.*;
import nc.vo.bd.bom.bom0202.message.MMBDLangConstBom0202;
import nc.vo.bd.bom.bom0202.paramvo.BomHeadMtrlParam; import nc.vo.bd.bom.bom0202.paramvo.BomHeadMtrlParam;
import nc.vo.bd.bom.bom0202.paramvo.BomHeadMtrlResult; import nc.vo.bd.bom.bom0202.paramvo.BomHeadMtrlResult;
import nc.vo.bd.bom.bom0202.paramvo.BomMaterialParam; import nc.vo.bd.bom.bom0202.paramvo.BomMaterialParam;
@ -184,7 +189,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
result = service.insertBom((AggBomVO[]) addAggvoList.toArray(new AggBomVO[0])); result = service.insertBom((AggBomVO[]) addAggvoList.toArray(new AggBomVO[0]));
} else if (!commitAggvoList.isEmpty() && addAggvoList.isEmpty()) { } else if (!commitAggvoList.isEmpty() && addAggvoList.isEmpty()) {
List<AggBomVO> newAggVOList = new ArrayList<>(); List<AggBomVO> newAggVOList = new ArrayList<>();
if ("gaoning".equals(userCode) || "C029".equals(orgCodeFlag)) { if ("gaoning".equals(userCode) || "C029".equals(orgCodeFlag) || "dldzspplm".equals(userCode)) {
for (AggBomVO aggvo : commitAggvoList) { for (AggBomVO aggvo : commitAggvoList) {
result = service.insertCommitBomWithParam(new AggBomVO[]{aggvo}, true, true); result = service.insertCommitBomWithParam(new AggBomVO[]{aggvo}, true, true);
insertBomMatchRt(result); insertBomMatchRt(result);
@ -458,6 +463,35 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
} }
} }
public AggBomVO[] updateBomWithParam(AggBomVO[] aggvos, boolean isFromBom, boolean isecn, boolean isCheckEcn,
boolean isOnApprove) throws BusinessException {
if (MMArrayUtil.isEmpty(aggvos)) {
return null;
}
try {
// 检查该BOM是否被删除因为如果BOM树状维护将BOM删除了不允许修改该条记录
Set<String> bomids = new HashSet<String>();
for (AggBomVO vo : aggvos) {
bomids.add(vo.getPrimaryKey());
}
Set<String> checkResult = BomPubBP.getBomID(bomids.toArray(new String[]{}));
if (checkResult != null && checkResult.size() < bomids.size()) {
nc.vo.pubapp.pattern.exception.ExceptionUtils.wrappBusinessException(MMBDLangConstBom0202.getBOM_DELETED());
}
// 加锁 + 检查ts
GCBillTransferTool<AggBomVO> transTool = new GCBillTransferTool<AggBomVO>(aggvos);
// 补全前台VO
AggBomVO[] fullBills = transTool.getClientFullInfoBill();
// 获得修改前vo
AggBomVO[] originBills = transTool.getOriginBills();
BomUpdateBP bp = new BomUpdateBP();
return bp.update(fullBills, originBills, isCheckEcn, isOnApprove, isFromBom, isecn);
} catch (Exception e) {
nc.vo.pubapp.pattern.exception.ExceptionUtils.marsh(e);
}
return null;
}
private void mapInit(AggBomVO aggs) { private void mapInit(AggBomVO aggs) {
tsMap.put(aggs.getParent().getPrimaryKey(), aggs.getParent().getAttributeValue("ts")); tsMap.put(aggs.getParent().getPrimaryKey(), aggs.getParent().getAttributeValue("ts"));
@ -1472,6 +1506,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
return items; return items;
} }
void setMaterialInfo(Map<String, BomMaterialParam> materialMap, BomItemVO item) { void setMaterialInfo(Map<String, BomMaterialParam> materialMap, BomItemVO item) {
String materialvid = item.getCmaterialvid(); String materialvid = item.getCmaterialvid();
if (!materialMap.containsKey(materialvid)) { if (!materialMap.containsKey(materialvid)) {
@ -1766,9 +1801,10 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
* 2025年7月10日修改 - 改为根据自定义项hvdef4判断是否为定制BOM * 2025年7月10日修改 - 改为根据自定义项hvdef4判断是否为定制BOM
* 同步MES时只有标准版本的bom "默认"hbdefault 生效hfversiontype的等于1 * 同步MES时只有标准版本的bom "默认"hbdefault 生效hfversiontype的等于1
* 定制bomhvdef4值为Y取消 "默认"hbdefault值为N 但生效hfversiontype的等于1 * 定制bomhvdef4值为Y取消 "默认"hbdefault值为N 但生效hfversiontype的等于1
* @auther 챘자 *
* @param agg AggBomVO对象 * @param agg AggBomVO对象
* @param userCode 用户代码 * @param userCode 用户代码
* @auther 毛磊
*/ */
private void handleMesUserDefaultSetting(AggBomVO agg, String userCode) { private void handleMesUserDefaultSetting(AggBomVO agg, String userCode) {
obmlog.debug("handleMesUserDefaultSetting - 开始处理MES用户的默认设置逻辑用户代码" + userCode); obmlog.debug("handleMesUserDefaultSetting - 开始处理MES用户的默认设置逻辑用户代码" + userCode);

View File

@ -0,0 +1,24 @@
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nccloud.api.mmbd.bom;
import java.util.List;
import java.util.Map;
import nc.vo.bd.bom.bom0202.entity.AggBomVO;
import nc.vo.pub.BusinessException;
import org.json.JSONString;
public interface IAPIBomBusinessService {
JSONString insert(List<Map<String, Object>> var1);
JSONString update(List<Map<String, Object>> var1);
JSONString query(Map<String, Object> var1);
AggBomVO[] updateBomWithParam(AggBomVO[] aggvos, boolean isFromBom, boolean isecn, boolean isCheckEcn,
boolean isOnApprove) throws BusinessException;
}

View File

@ -6,15 +6,6 @@
package nccloud.openapi.mmbd.bom; package nccloud.openapi.mmbd.bom;
import com.alibaba.fastjson.JSONObject; import com.alibaba.fastjson.JSONObject;
import java.util.*;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import nc.bs.bd.bom.bom0202.bp.BomPubBP;
import nc.bs.bd.bom.bom0202.bp.BomUpdateBP;
import nc.bs.framework.common.NCLocator; import nc.bs.framework.common.NCLocator;
import nc.bs.trade.business.HYPubBO; import nc.bs.trade.business.HYPubBO;
import nc.itf.bd.bom.bom0202.IBomBillMaintainService; import nc.itf.bd.bom.bom0202.IBomBillMaintainService;
@ -22,13 +13,10 @@ import nc.itf.bd.bom.bom0202.IBomBillQueryService;
import nc.jdbc.framework.generator.IdGenerator; import nc.jdbc.framework.generator.IdGenerator;
import nc.mmbd.utils.factoryparam.MMBDFactoryParameter; import nc.mmbd.utils.factoryparam.MMBDFactoryParameter;
import nc.uif.pub.exception.UifException; import nc.uif.pub.exception.UifException;
import nc.util.mmf.framework.base.MMArrayUtil;
import nc.util.mmf.framework.base.MMValueCheck; import nc.util.mmf.framework.base.MMValueCheck;
import nc.util.mmf.framework.gc.GCBillTransferTool;
import nc.vo.bd.bom.bom0202.entity.AggBomVO; import nc.vo.bd.bom.bom0202.entity.AggBomVO;
import nc.vo.bd.bom.bom0202.entity.BomItemVO; import nc.vo.bd.bom.bom0202.entity.BomItemVO;
import nc.vo.bd.bom.bom0202.entity.BomReplVO; import nc.vo.bd.bom.bom0202.entity.BomReplVO;
import nc.vo.bd.bom.bom0202.message.MMBDLangConstBom0202;
import nc.vo.ml.NCLangRes4VoTransl; import nc.vo.ml.NCLangRes4VoTransl;
import nc.vo.pub.BusinessException; import nc.vo.pub.BusinessException;
import nc.vo.pub.VOStatus; import nc.vo.pub.VOStatus;
@ -37,9 +25,18 @@ import nc.vo.pub.lang.UFDouble;
import nccloud.api.mmbd.bom.IAPIBomBusinessService; import nccloud.api.mmbd.bom.IAPIBomBusinessService;
import nccloud.api.rest.utils.ResultMessageUtil; import nccloud.api.rest.utils.ResultMessageUtil;
import nccloud.framework.core.exception.ExceptionUtils; import nccloud.framework.core.exception.ExceptionUtils;
//import nccloud.framework.service.ServiceLocator;
import nccloud.ws.rest.resource.AbstractNCCRestResource; import nccloud.ws.rest.resource.AbstractNCCRestResource;
import org.json.JSONString; import org.json.JSONString;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Map;
@Path("mmbd/bom") @Path("mmbd/bom")
public class BomResource extends AbstractNCCRestResource { public class BomResource extends AbstractNCCRestResource {
public BomResource() { public BomResource() {
@ -129,7 +126,6 @@ public class BomResource extends AbstractNCCRestResource {
IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class); IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class);
// List<>
IBomBillQueryService qry = (IBomBillQueryService) NCLocator.getInstance().lookup(IBomBillQueryService.class); IBomBillQueryService qry = (IBomBillQueryService) NCLocator.getInstance().lookup(IBomBillQueryService.class);
IBomBillMaintainService bomBillMaintainService = (IBomBillMaintainService) NCLocator.getInstance().lookup(IBomBillMaintainService.class); IBomBillMaintainService bomBillMaintainService = (IBomBillMaintainService) NCLocator.getInstance().lookup(IBomBillMaintainService.class);
@ -206,7 +202,7 @@ public class BomResource extends AbstractNCCRestResource {
// 更新BOM // 更新BOM
aggBomVO.setChildrenVO(bomItemVOS); aggBomVO.setChildrenVO(bomItemVOS);
AggBomVO[] result = this.updateBomWithParam( AggBomVO[] result = service.updateBomWithParam(
new AggBomVO[]{aggBomVO}, new AggBomVO[]{aggBomVO},
false, false,
false, false,
@ -222,11 +218,12 @@ public class BomResource extends AbstractNCCRestResource {
return ResultMessageUtil.toJSON(bomReplVOS, "BOM更新成功"); return ResultMessageUtil.toJSON(bomReplVOS, "BOM更新成功");
} catch (BusinessException e) { } catch (BusinessException e) {
throw new RuntimeException(e); return ResultMessageUtil.exceptionToJSON(e);
} }
} }
} }
// 提取属性设置为工具方法减少冗余 // 提取属性设置为工具方法减少冗余
private void setReplVOProperties(BomReplVO replVO, Map<String, Object> param) throws UifException { private void setReplVOProperties(BomReplVO replVO, Map<String, Object> param) throws UifException {
HYPubBO hybo = new HYPubBO(); HYPubBO hybo = new HYPubBO();
@ -273,34 +270,6 @@ public class BomResource extends AbstractNCCRestResource {
} }
} }
} }
public AggBomVO[] updateBomWithParam(AggBomVO[] aggvos, boolean isFromBom, boolean isecn, boolean isCheckEcn,
boolean isOnApprove) throws BusinessException {
if (MMArrayUtil.isEmpty(aggvos)) {
return null;
}
try {
// 检查该BOM是否被删除因为如果BOM树状维护将BOM删除了不允许修改该条记录
Set<String> bomids = new HashSet<String>();
for (AggBomVO vo : aggvos) {
bomids.add(vo.getPrimaryKey());
}
Set<String> checkResult = BomPubBP.getBomID(bomids.toArray(new String[] {}));
if (checkResult != null && checkResult.size() < bomids.size()) {
nc.vo.pubapp.pattern.exception.ExceptionUtils.wrappBusinessException(MMBDLangConstBom0202.getBOM_DELETED());
}
// 加锁 + 检查ts
GCBillTransferTool<AggBomVO> transTool = new GCBillTransferTool<AggBomVO>(aggvos);
// 补全前台VO
AggBomVO[] fullBills = transTool.getClientFullInfoBill();
// 获得修改前vo
AggBomVO[] originBills = transTool.getOriginBills();
BomUpdateBP bp = new BomUpdateBP();
return bp.update(fullBills, originBills, isCheckEcn, isOnApprove, isFromBom, isecn);
} catch (Exception e) {
nc.vo.pubapp.pattern.exception.ExceptionUtils.marsh(e);
}
return null;
}
public String getModule() { public String getModule() {
return "mmbd"; return "mmbd";