From 89738988da95f392530dd8d274a508f71a1accec Mon Sep 17 00:00:00 2001 From: "zhangxinah@yonyou.com" Date: Wed, 9 Apr 2025 19:39:29 +0800 Subject: [PATCH] =?UTF-8?q?=E5=A2=9E=E5=8A=A0=E5=88=B0=E8=B4=A7=E5=8D=95?= =?UTF-8?q?=E5=AE=A1=E6=89=B9=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../openapi/pu/m23/PuArriveResource.java | 152 ++++++++++++++++++ 1 file changed, 152 insertions(+) create mode 100644 pu/src/public/nccloud/openapi/pu/m23/PuArriveResource.java diff --git a/pu/src/public/nccloud/openapi/pu/m23/PuArriveResource.java b/pu/src/public/nccloud/openapi/pu/m23/PuArriveResource.java new file mode 100644 index 0000000..c47ec7d --- /dev/null +++ b/pu/src/public/nccloud/openapi/pu/m23/PuArriveResource.java @@ -0,0 +1,152 @@ +package nccloud.openapi.pu.m23; + +import java.util.List; +import java.util.Map; +import java.util.ArrayList; +import javax.ws.rs.Consumes; +import nccloud.openapi.scmpub.util.CallReturnBuildUtil; +import javax.ws.rs.POST; +import javax.ws.rs.Path; +import javax.ws.rs.Produces; +import nc.bs.framework.common.NCLocator; +import nc.vo.pu.m23.entity.ArriveVO; +import nc.vo.pub.BusinessException; +import nc.vo.pubapp.pattern.exception.ExceptionUtils; +import nc.ws.opm.pub.utils.result.APIErrCodeEnum; +import nccloud.api.pu.m23.IAPIPuArriveMaitain; +import nccloud.api.pu.m23.IAPIPuArriveQuery; +import nccloud.api.rest.utils.ResultMessageUtil; +import nccloud.openapi.pu.PURestResource; +import org.json.JSONString; +import nc.pubitf.pu.m23.pubquery.IArrivePubQuery; +import nccloud.pubitf.scmpub.commit.service.IBatchRunScriptService; +import nccloud.api.rest.utils.NCCRestUtils; +import nccloud.dto.scmpub.script.entity.SCMScriptResultDTO; +import nccloud.pubitf.riart.pflow.CloudPFlowContext; + +/** + * 采购订单生成到货单操作资源类 + * + * @Description: + * + * @author: lanli + * @date: 2019-6-17 上午10:24:57 + * @version NCC1909 + */ +@Path("pu/arrive") +public class PuArriveResource extends PURestResource { + + private static String HEADTABLE = "po_arriveorder"; + private static String BODYTABLE = "po_arriveorder_b"; + + /** + * 根据订单生成到货单 + * + * @param param + * @return + */ + + @SuppressWarnings("unchecked") + @POST + @Path("operation/saveFromOrder") + @Consumes("application/json") + @Produces("application/json") + public JSONString saveFromOrder(Map param) { + List> paramList = (List>) param.get("data"); + JSONString result = saveFromOrder(paramList); + return result; + } + + @POST + @Path("saveFromOrder") + @Consumes("application/json") + @Produces("application/json") + public JSONString saveFromOrder(List> paramList) { + if (paramList.isEmpty()) { + return ResultMessageUtil.exceptionToJSON("根据传入数据未匹配到相关数据", APIErrCodeEnum.BUSINESSEXCCODE.getCode()); + + } + // 设置集团 + for (Map paramMap : paramList) { + if (!paramMap.containsKey(HEADTABLE) || !paramMap.containsKey(BODYTABLE)) { + return ResultMessageUtil.exceptionToJSON("传入数据异常,参数要包含表头信息和表体信息", + APIErrCodeEnum.BUSINESSEXCCODE.getCode()); + + } + } + ArriveVO[] proinVOs = null; + try { + proinVOs = nc.bs.framework.common.NCLocator.getInstance().lookup(IAPIPuArriveMaitain.class) + .saveFromOrder(paramList); + } catch (BusinessException e) { + ExceptionUtils.wrappException(e); + return ResultMessageUtil.exceptionToJSON(e); + } + ArriveVO vos = proinVOs[0]; +// proinVOList.add(vos); +// } + return ResultMessageUtil.toJSON(vos, "到货单保存成功"); + } + + @POST + @Path("querybyscheme") + @Consumes("application/json") + @Produces("application/json") + public JSONString queryByScheme(Map paramMap) { + ArriveVO[] resultVOs = null; + try { + resultVOs = NCLocator.getInstance().lookup(IAPIPuArriveQuery.class).queryVOByScheme(paramMap); + // 包装返回信息 + return ResultMessageUtil.toJSON(resultVOs, "查询到货单成功"); + } catch (Exception e) { + return ResultMessageUtil.exceptionToJSON(e); + } + } + + @POST + @Path("approveArrival") + @Consumes({ "application/json" }) + @Produces({ "application/json" }) + public JSONString approveArrival(Map paramMap) { + try { + List> bodyInfo = (List>) paramMap.get("pk_arriveorder"); + + ArrayList arr = new ArrayList<>(); + for (int i = 0; i < bodyInfo.size(); i++) { + Map bodyMap = (Map) bodyInfo.get(i); + arr.add(bodyMap.get("id")); + } + String[] arr1 = arr.toArray(new String[arr.size()]); + + IArrivePubQuery service = (IArrivePubQuery) NCLocator.getInstance().lookup(IArrivePubQuery.class); + ArriveVO[] vos = service.queryAggVOByHids(arr1); + + if (vos.length == 0) { + return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildFailResult(vos, "到货单没有找到数据,查询失败")); + } + ArrayList list = new ArrayList<>(); + for (int i = 0; i < vos.length; i++) { + Integer hvo = vos[i].getHVO().getFbillstatus(); + if (hvo == 0) { + list.add(vos[i]); + } + } + if (list.size() == 0) { + return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildFailResult(list, "到货单没有待审核数据,查询失败")); + } + + CloudPFlowContext context = new CloudPFlowContext(); + context.setBillType("23"); + context.setActionName("SAVE"); + context.setBillVos(list.toArray(new ArriveVO[list.size()])); + SCMScriptResultDTO dto = ((IBatchRunScriptService) NCLocator.getInstance() + .lookup(IBatchRunScriptService.class)).runBacth(context, ArriveVO.class); + + return NCCRestUtils.toJSONString(CallReturnBuildUtil.buildSuccessResult(null, "到货单审核成功")); + } catch (Exception var6) { + return NCCRestUtils + .toJSONString(CallReturnBuildUtil.buildFailResult((Object) null, "到货单审核失败:" + var6.getMessage())); + } + } + +}