taikai2312/uapbd/src/public/nccloud/openapi/mmbd/bom/BomResource.java

278 lines
12 KiB
Java
Raw Normal View History

2025-08-25 10:38:31 +08:00
//
// Source code recreated from a .class file by IntelliJ IDEA
// (powered by FernFlower decompiler)
//
package nccloud.openapi.mmbd.bom;
import com.alibaba.fastjson.JSONObject;
import nc.bs.framework.common.NCLocator;
2025-08-29 10:26:41 +08:00
import nc.bs.trade.business.HYPubBO;
2025-08-26 09:24:51 +08:00
import nc.itf.bd.bom.bom0202.IBomBillMaintainService;
import nc.itf.bd.bom.bom0202.IBomBillQueryService;
2025-08-29 10:26:41 +08:00
import nc.jdbc.framework.generator.IdGenerator;
2025-08-26 09:24:51 +08:00
import nc.mmbd.utils.factoryparam.MMBDFactoryParameter;
2025-08-29 10:26:41 +08:00
import nc.uif.pub.exception.UifException;
2025-08-25 10:38:31 +08:00
import nc.util.mmf.framework.base.MMValueCheck;
2025-08-26 09:24:51 +08:00
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.ml.NCLangRes4VoTransl;
import nc.vo.pub.BusinessException;
2025-08-29 10:26:41 +08:00
import nc.vo.pub.VOStatus;
import nc.vo.pub.lang.UFBoolean;
2025-08-26 09:24:51 +08:00
import nc.vo.pub.lang.UFDouble;
2025-08-25 10:38:31 +08:00
import nccloud.api.mmbd.bom.IAPIBomBusinessService;
import nccloud.api.rest.utils.ResultMessageUtil;
2025-08-26 09:24:51 +08:00
import nccloud.framework.core.exception.ExceptionUtils;
2025-08-25 10:38:31 +08:00
import nccloud.ws.rest.resource.AbstractNCCRestResource;
import org.json.JSONString;
2025-09-15 21:44:33 +08:00
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;
2025-08-25 10:38:31 +08:00
@Path("mmbd/bom")
public class BomResource extends AbstractNCCRestResource {
public BomResource() {
}
@POST
@Path("operation/add")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString insert(JSONObject para) {
2025-09-15 21:44:33 +08:00
List<Map<String, Object>> paramList = (List) para.get("data");
2025-08-25 10:38:31 +08:00
if (MMValueCheck.isEmpty(paramList)) {
2025-08-29 10:26:41 +08:00
return ResultMessageUtil.exceptionToJSON("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>Ϣ<EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ", "1");
2025-08-25 10:38:31 +08:00
} else {
2025-09-15 21:44:33 +08:00
IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class);
2025-08-25 10:38:31 +08:00
JSONString result = service.insert(paramList);
return result;
}
}
@POST
@Path("add")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString insert(List<Map<String, Object>> paramList) {
if (MMValueCheck.isEmpty(paramList)) {
2025-08-29 10:26:41 +08:00
return ResultMessageUtil.exceptionToJSON("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>Ϣ<EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ", "1");
2025-08-25 10:38:31 +08:00
} else {
2025-09-15 21:44:33 +08:00
IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class);
2025-08-25 10:38:31 +08:00
JSONString result = service.insert(paramList);
return result;
}
}
@POST
@Path("operation/update")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString update(JSONObject para) {
2025-09-15 21:44:33 +08:00
List<Map<String, Object>> paramList = (List) para.get("data");
2025-08-25 10:38:31 +08:00
if (MMValueCheck.isEmpty(paramList)) {
2025-08-29 10:26:41 +08:00
return ResultMessageUtil.exceptionToJSON("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>Ϣ<EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ", "1");
2025-08-25 10:38:31 +08:00
} else {
2025-09-15 21:44:33 +08:00
IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class);
2025-08-25 10:38:31 +08:00
JSONString result = service.update(paramList);
return result;
}
}
@POST
@Path("update")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString update(List<Map<String, Object>> paramList) {
if (MMValueCheck.isEmpty(paramList)) {
2025-08-29 10:26:41 +08:00
return ResultMessageUtil.exceptionToJSON("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ҫ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ͷ<EFBFBD><EFBFBD>Ϣ<EFBFBD>ͱ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϣ", "1");
2025-08-25 10:38:31 +08:00
} else {
2025-09-15 21:44:33 +08:00
IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class);
2025-08-25 10:38:31 +08:00
JSONString result = service.update(paramList);
return result;
}
}
@POST
@Path("query")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString query(Map<String, Object> paramMap) {
if (MMValueCheck.isEmpty(paramMap)) {
2025-08-29 10:26:41 +08:00
return ResultMessageUtil.exceptionToJSON("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ѯ<EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "1");
2025-08-25 10:38:31 +08:00
} else {
2025-09-15 21:44:33 +08:00
IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class);
2025-08-25 10:38:31 +08:00
JSONString result = service.query(paramMap);
return result;
}
}
2025-08-26 09:24:51 +08:00
@POST
@Path("bomRepl/update")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString bomReplupdate(List<Map<String, Object>> paramMap) throws BusinessException {
if (MMValueCheck.isEmpty(paramMap)) {
2025-08-29 10:26:41 +08:00
return ResultMessageUtil.exceptionToJSON("<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>δ<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>", "1");
2025-08-26 09:24:51 +08:00
} else {
2025-09-15 21:44:33 +08:00
try {
2025-08-29 10:26:41 +08:00
2025-09-15 21:44:33 +08:00
IAPIBomBusinessService service = (IAPIBomBusinessService) NCLocator.getInstance().lookup(IAPIBomBusinessService.class);
IBomBillQueryService qry = (IBomBillQueryService) NCLocator.getInstance().lookup(IBomBillQueryService.class);
IBomBillMaintainService bomBillMaintainService = (IBomBillMaintainService) NCLocator.getInstance().lookup(IBomBillMaintainService.class);
2025-08-26 09:24:51 +08:00
2025-09-15 21:44:33 +08:00
List<AggBomVO> bomReplVOS = new ArrayList<>();
for (Map<String, Object> param : paramMap) {
String cbomid = (String) param.get("cbomid");
String targetCbomReplaceId = (String) param.get("cbom_replaceid"); // Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
String targetCbomBid = (String) param.get("cbombid"); // Ŀ<><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
2025-08-29 10:26:41 +08:00
2025-09-15 21:44:33 +08:00
// У<><D0A3><EFBFBD><EFBFBD>Ҫ<EFBFBD><D2AA><EFBFBD><EFBFBD>
if (MMValueCheck.isEmpty(cbomid) || MMValueCheck.isEmpty(targetCbomBid)) {
ExceptionUtils.wrapBusinessException("cbomid<EFBFBD><EFBFBD>cbombidΪ<EFBFBD>ش<EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>");
}
2025-08-29 10:26:41 +08:00
2025-09-15 21:44:33 +08:00
// <20><>ѯBOM<4F><4D><EFBFBD><EFBFBD>
AggBomVO[] aggbomvos = qry.queryAggBomByBomID(new String[]{cbomid});
if (MMValueCheck.isEmpty(aggbomvos)) {
ExceptionUtils.wrapBusinessException(NCLangRes4VoTransl.getNCLangRes().getStrByID("bdpub", "0bdpub0057"));
2025-08-29 10:26:41 +08:00
}
2025-09-15 21:44:33 +08:00
for (AggBomVO aggBomVO : aggbomvos) {
BomItemVO[] bomItemVOS = aggBomVO.getChildrenVO();
if (MMValueCheck.isEmpty(bomItemVOS)) {
continue; // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
}
for (BomItemVO bomItemVO : bomItemVOS) {
// ƥ<><C6A5>Ŀ<EFBFBD><C4BF><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (targetCbomBid.equals(bomItemVO.getCbom_bid())) {
BomReplVO[] replVOS = bomItemVO.getRepl();
List<BomReplVO> replList = MMValueCheck.isEmpty(replVOS)
? new ArrayList<>()
: new ArrayList<>(Arrays.asList(replVOS));
boolean isUpdated = false;
// <20><><EFBFBD><EFBFBD>cbom_replaceid<69><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (!MMValueCheck.isEmpty(targetCbomReplaceId)) {
for (BomReplVO replVO : replList) {
if (targetCbomReplaceId.equals(replVO.getCbom_replaceid())) {
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><EFBFBD>ù<EFBFBD><C3B9>߷<EFBFBD><DFB7><EFBFBD><EFBFBD><EFBFBD>
setReplVOProperties(replVO, param);
replVO.setStatus(VOStatus.UPDATED);
isUpdated = true;
break;
}
2025-08-29 10:26:41 +08:00
}
2025-08-26 09:24:51 +08:00
}
2025-08-29 10:26:41 +08:00
2025-09-15 21:44:33 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>cbom_replaceid<69><64><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
if (!isUpdated && MMValueCheck.isEmpty(targetCbomReplaceId)) {
BomReplVO newReplVO = new BomReplVO();
IdGenerator idGenerator = NCLocator.getInstance().lookup(IdGenerator.class);
2025-08-29 10:26:41 +08:00
2025-09-15 21:44:33 +08:00
newReplVO.setCbom_replaceid(idGenerator.generate()); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ID
newReplVO.setCbom_bid(targetCbomBid); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ǰ<EFBFBD><C7B0><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
2025-09-04 19:38:50 +08:00
2025-09-15 21:44:33 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>кţ<D0BA><><D4AD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD> + 1) * 10
int existingCount = replList.size();
int newRowNumber = (existingCount + 1) * 10;
newReplVO.setVrowno(String.valueOf(newRowNumber)); // <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>к<EFBFBD>
2025-09-04 19:38:50 +08:00
2025-09-15 21:44:33 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ԣ<EFBFBD><D4A3><EFBFBD><E1B8B2>param<61>е<EFBFBD>vrowno<6E><6F>ȷ<EFBFBD><C8B7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ɣ<EFBFBD>
setReplVOProperties(newReplVO, param);
2025-09-04 19:38:50 +08:00
2025-09-15 21:44:33 +08:00
newReplVO.setStatus(VOStatus.NEW);
replList.add(newReplVO);
}
2025-08-29 10:26:41 +08:00
2025-09-15 21:44:33 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
bomItemVO.setRepl(replList.toArray(new BomReplVO[0]));
}
2025-08-26 09:24:51 +08:00
}
2025-09-15 21:44:33 +08:00
// <20><><EFBFBD><EFBFBD>BOM
aggBomVO.setChildrenVO(bomItemVOS);
AggBomVO[] result = service.updateBomWithParam(
new AggBomVO[]{aggBomVO},
false,
false,
MMBDFactoryParameter.getMMECN001Value(
aggBomVO.getParentVO().getAttributeValue("pk_org").toString()
).booleanValue(),
true
);
bomReplVOS.addAll(Arrays.asList(result));
}
2025-08-26 09:24:51 +08:00
}
2025-08-29 10:26:41 +08:00
2025-09-15 21:44:33 +08:00
return ResultMessageUtil.toJSON(bomReplVOS, "BOM<EFBFBD><EFBFBD><EFBFBD>³ɹ<EFBFBD>");
} catch (BusinessException e) {
return ResultMessageUtil.exceptionToJSON(e);
2025-08-29 10:26:41 +08:00
}
}
}
2025-09-15 21:44:33 +08:00
2025-08-29 10:26:41 +08:00
// <20><>ȡ<EFBFBD><C8A1><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>Ϊ<EFBFBD><CEAA><EFBFBD>߷<EFBFBD><DFB7><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>
private void setReplVOProperties(BomReplVO replVO, Map<String, Object> param) throws UifException {
HYPubBO hybo = new HYPubBO();
// if (param.containsKey("pk_group")) {
// replVO.setPk_group((String) param.get("pk_group"));
// }
// if (param.containsKey("pk_org_v")) {
// replVO.setPk_org_v((String) param.get("pk_org_v"));
// }
if (param.containsKey("creplmaterialvid")) {
2025-09-15 21:44:33 +08:00
String mrlCode = (String) param.get("creplmaterialvid");
String mrlid = (String) hybo.findColValue("bd_material", "pk_material", " code = '" + mrlCode + "' ");
2025-08-29 10:26:41 +08:00
replVO.setCreplmaterialvid(mrlid);
}
if (param.containsKey("cbomid")) {
replVO.setVprodversion((String) param.get("cbomid"));
}
if (param.containsKey("vreplaceindex")) {
replVO.setVreplaceindex((String) param.get("vreplaceindex"));
}
2025-09-04 19:38:50 +08:00
// if (param.containsKey("vrowno")) {
// replVO.setVrowno((String) param.get("vrowno"));
// }
2025-08-29 10:26:41 +08:00
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
if (param.containsKey("ireplorder")) {
Object ireplorderObj = param.get("ireplorder");
if (ireplorderObj instanceof Double) {
replVO.setIreplorder(new UFDouble((Double) ireplorderObj).intValue());
} else if (ireplorderObj instanceof Number) {
replVO.setIreplorder(((Number) ireplorderObj).intValue());
}
}
// <20><><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD><EFBFBD>ת<EFBFBD><D7AA>
if (param.containsKey("bisdisplace")) {
Object bisdisplaceObj = param.get("bisdisplace");
if (bisdisplaceObj instanceof Boolean) {
replVO.setBisdisplace(UFBoolean.valueOf((Boolean) bisdisplaceObj));
} else if (bisdisplaceObj instanceof UFBoolean) {
replVO.setBisdisplace((UFBoolean) bisdisplaceObj);
}
}
}
2025-08-26 09:24:51 +08:00
2025-08-25 10:38:31 +08:00
public String getModule() {
return "mmbd";
}
}