精密-启源领料接口调整

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

View File

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