bom替代料接口调整
This commit is contained in:
parent
5d68e40f57
commit
84ad04810b
|
@ -1,5 +1,7 @@
|
|||
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.framework.common.InvocationInfoProxy;
|
||||
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.NumScaleUtil;
|
||||
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.gc.GCBillTransferTool;
|
||||
import nc.vo.bd.bom.bom0202.entity.*;
|
||||
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.BomHeadMtrlResult;
|
||||
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]));
|
||||
} else if (!commitAggvoList.isEmpty() && addAggvoList.isEmpty()) {
|
||||
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) {
|
||||
result = service.insertCommitBomWithParam(new AggBomVO[]{aggvo}, true, true);
|
||||
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) {
|
||||
tsMap.put(aggs.getParent().getPrimaryKey(), aggs.getParent().getAttributeValue("ts"));
|
||||
|
||||
|
@ -1472,6 +1506,7 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
|
|||
|
||||
return items;
|
||||
}
|
||||
|
||||
void setMaterialInfo(Map<String, BomMaterialParam> materialMap, BomItemVO item) {
|
||||
String materialvid = item.getCmaterialvid();
|
||||
if (!materialMap.containsKey(materialvid)) {
|
||||
|
@ -1766,9 +1801,10 @@ public class APIBomBusinessServiceImpl implements IAPIBomBusinessService {
|
|||
* 2025年7月10日修改 - 改为根据自定义项hvdef4判断是否为定制BOM
|
||||
* 同步MES时:只有标准版本的bom "默认"(hbdefault) 生效(hfversiontype的等于1)
|
||||
* 定制bom(hvdef4值为Y)取消 "默认"(hbdefault,值为N) 但生效(hfversiontype的等于1)
|
||||
* @auther 챘자
|
||||
*
|
||||
* @param agg AggBomVO对象
|
||||
* @param userCode 用户代码
|
||||
* @auther 毛磊
|
||||
*/
|
||||
private void handleMesUserDefaultSetting(AggBomVO agg, String userCode) {
|
||||
obmlog.debug("handleMesUserDefaultSetting - 开始处理MES用户的默认设置逻辑,用户代码:" + userCode);
|
||||
|
|
|
@ -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;
|
||||
}
|
|
@ -6,15 +6,6 @@
|
|||
package nccloud.openapi.mmbd.bom;
|
||||
|
||||
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.trade.business.HYPubBO;
|
||||
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.mmbd.utils.factoryparam.MMBDFactoryParameter;
|
||||
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.gc.GCBillTransferTool;
|
||||
import nc.vo.bd.bom.bom0202.entity.AggBomVO;
|
||||
import nc.vo.bd.bom.bom0202.entity.BomItemVO;
|
||||
import nc.vo.bd.bom.bom0202.entity.BomReplVO;
|
||||
import nc.vo.bd.bom.bom0202.message.MMBDLangConstBom0202;
|
||||
import nc.vo.ml.NCLangRes4VoTransl;
|
||||
import nc.vo.pub.BusinessException;
|
||||
import nc.vo.pub.VOStatus;
|
||||
|
@ -37,9 +25,18 @@ import nc.vo.pub.lang.UFDouble;
|
|||
import nccloud.api.mmbd.bom.IAPIBomBusinessService;
|
||||
import nccloud.api.rest.utils.ResultMessageUtil;
|
||||
import nccloud.framework.core.exception.ExceptionUtils;
|
||||
//import nccloud.framework.service.ServiceLocator;
|
||||
import nccloud.ws.rest.resource.AbstractNCCRestResource;
|
||||
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")
|
||||
public class BomResource extends AbstractNCCRestResource {
|
||||
public BomResource() {
|
||||
|
@ -129,7 +126,6 @@ public class BomResource extends AbstractNCCRestResource {
|
|||
|
||||
|
||||
IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class);
|
||||
// List<>
|
||||
IBomBillQueryService qry = (IBomBillQueryService) NCLocator.getInstance().lookup(IBomBillQueryService.class);
|
||||
IBomBillMaintainService bomBillMaintainService = (IBomBillMaintainService) NCLocator.getInstance().lookup(IBomBillMaintainService.class);
|
||||
|
||||
|
@ -206,7 +202,7 @@ public class BomResource extends AbstractNCCRestResource {
|
|||
|
||||
// 更新BOM
|
||||
aggBomVO.setChildrenVO(bomItemVOS);
|
||||
AggBomVO[] result = this.updateBomWithParam(
|
||||
AggBomVO[] result = service.updateBomWithParam(
|
||||
new AggBomVO[]{aggBomVO},
|
||||
false,
|
||||
false,
|
||||
|
@ -222,11 +218,12 @@ public class BomResource extends AbstractNCCRestResource {
|
|||
|
||||
return ResultMessageUtil.toJSON(bomReplVOS, "BOM更新成功");
|
||||
} catch (BusinessException e) {
|
||||
throw new RuntimeException(e);
|
||||
return ResultMessageUtil.exceptionToJSON(e);
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
// 提取属性设置为工具方法,减少冗余
|
||||
private void setReplVOProperties(BomReplVO replVO, Map<String, Object> param) throws UifException {
|
||||
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() {
|
||||
return "mmbd";
|
||||
|
|
Loading…
Reference in New Issue