精密-启源领料接口调整

This commit is contained in:
mzr 2025-09-23 09:48:50 +08:00
parent 6aa16c719a
commit a90cb1ede0
2 changed files with 21 additions and 15 deletions

View File

@ -362,15 +362,15 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain {
// 启源领料 // 启源领料
/* /*
1传入数据基本非空校验 1传入数据基本非空校验
2根据传入的生产订单主键获取流程备料计划 2根据传入的生产订单主键获取关联的流程备料计划
3调用单据转换规则备料计划VO转为材料出库VO 3调用单据转换规则备料计划VO转为材料出库VO
4处理材料出库VO部分字段的赋值(行数量 = 本次领料套数(启源传入)*单位主用量(备料计划)) 4处理材料出库VO部分字段的赋值(行数量 = 本次领料套数(启源传入)*单位主用量(备料计划))
5调用材料出库的保存方法 5调用材料出库的保存方法
*/ */
List<String> mids; List<String> mids;
try { try {
String sql = "SELECT cpickmid from mm_pickm WHERE dr = 0 AND fbillstatus = 1 AND csourcebillid = '[csourcebillid]'"; String sql = "SELECT cpickmid from mm_pickm WHERE dr = 0 AND fbillstatus = 1 AND csourcebillrowid = '[csourcebillrowid]'";
sql = sql.replace("[csourcebillid]", paramMap.get("cpmohid").toString()); sql = sql.replace("[csourcebillrowid]", paramMap.get("cpmobid").toString());
mids = (List<String>) getDao().executeQuery(sql, new ColumnListProcessor()); mids = (List<String>) getDao().executeQuery(sql, new ColumnListProcessor());
} catch (DAOException e) { } catch (DAOException e) {
throw new BusinessException(e); throw new BusinessException(e);
@ -427,22 +427,29 @@ public class APIMaterialOutMaintainImpl implements IAPIMaterialOutMaintain {
} }
IMaterialOutMaintainAPI materialOut = NCLocator.getInstance().lookup(IMaterialOutMaintainAPI.class); IMaterialOutMaintainAPI materialOut = NCLocator.getInstance().lookup(IMaterialOutMaintainAPI.class);
MaterialOutVO[] outVOS = materialOut.insertBills(vos); MaterialOutVO[] outVOS = materialOut.insertBills(vos);
// 材料出库的来源单据id
Set<String> sourceIds = new HashSet<>();
for (MaterialOutVO outVO : outVOS) {
MaterialOutBodyVO[] bodys = outVO.getBodys();
for (MaterialOutBodyVO body : bodys) {
sourceIds.add(body.getCfirstbillhid());
}
}
// 查询备料计划行上的成套套数 nbsetpartsnum // 查询备料计划行上的成套套数 nbsetpartsnum
List<JSONObject> numList = new ArrayList<>(); AggPickmVO[] newPickmVOS = queryService.queryBillsByPks(sourceIds.toArray(new String[0]));
AggPickmVO[] newPickmVOS = queryService.queryBillsByPks(cpickmids); // 获取备料计划行上的成套套数的合计值
Double sum = 0d;
for (AggPickmVO newPickmVO : newPickmVOS) { for (AggPickmVO newPickmVO : newPickmVOS) {
PickmItemVO[] pickmItemVOS = (PickmItemVO[]) newPickmVO.getChildren(PickmItemVO.class); PickmItemVO[] pickmItemVOS = (PickmItemVO[]) newPickmVO.getChildren(PickmItemVO.class);
for (PickmItemVO pickmItemVO : pickmItemVOS) { for (PickmItemVO pickmItemVO : pickmItemVOS) {
JSONObject numJson = new JSONObject(); Double nbsetpartsnum = pickmItemVO.getNbsetpartsnum().toDouble();
String nbsetpartsnum = pickmItemVO.getNbsetpartsnum().toString(); sum += nbsetpartsnum;
numJson.put("nbsetpartsnum", nbsetpartsnum);
numJson.put("cbmaterialvid", pickmItemVO.getCbmaterialvid());
numList.add(numJson);
} }
} }
JSONObject result = new JSONObject(); JSONObject result = new JSONObject();
result.put("outVOS", outVOS); result.put("vbillcode", paramMap.get("vbillcode"));// 生产订单号
result.put("numList", numList); result.put("batchId", paramMap.get("batchId"));// 领料批次id
result.put("nbsetpartsnum", sum);// 累计领料套数
return result; return result;
} }

View File

@ -350,14 +350,13 @@ public class MaterialOutResource extends NCCPubRestResource {
@Produces("application/json") @Produces("application/json")
public JSONString saveByQyMes(Map<String, Object> paramMap) { public JSONString saveByQyMes(Map<String, Object> paramMap) {
try { try {
if (!paramMap.containsKey("num") || !paramMap.containsKey("cpmohid")) { if (!paramMap.containsKey("num") || !paramMap.containsKey("cpmobid")) {
return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含流程生产订单信息和领料数量信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含流程生产订单信息和领料数量信息", APIErrCodeEnum.BUSINESSEXCCODE.getCode());
} }
IAPIMaterialOutMaintain materialOut = IAPIMaterialOutMaintain materialOut =
NCLocator.getInstance().lookup(IAPIMaterialOutMaintain.class); NCLocator.getInstance().lookup(IAPIMaterialOutMaintain.class);
JSONObject result = materialOut.destIssue(paramMap); JSONObject result = materialOut.destIssue(paramMap);
return ResultMessageUtil.toJSON(result, nc.vo.ml.NCLangRes4VoTransl.getNCLangRes() return ResultMessageUtil.toJSON(result, "操作成功");
.getStrByID("4008027_0", "04008027-0472")/* @res "材料出库单保存成功" */);
} catch (Exception e) { } catch (Exception e) {
return ResultMessageUtil.exceptionToJSON(e); return ResultMessageUtil.exceptionToJSON(e);
} }