diff --git a/so/src/public/nccloud/api/so/so/UpCloses/CloseSoResource.java b/so/src/public/nccloud/api/so/so/UpCloses/CloseSoResource.java index 2559c9e..a37fc40 100644 --- a/so/src/public/nccloud/api/so/so/UpCloses/CloseSoResource.java +++ b/so/src/public/nccloud/api/so/so/UpCloses/CloseSoResource.java @@ -9,12 +9,19 @@ import nc.pubitf.so.m30.api.ISaleOrderQueryAPI; import nc.pubitf.uapbd.IRateTypePubService; import nc.vo.so.m30.entity.SaleOrderBVO; import nc.vo.so.m30.entity.SaleOrderVO; +import nc.vo.so.m30.entity.SaleOrderViewVO; import nccloud.api.rest.utils.ResultMessageUtil; +import nccloud.framework.core.json.IJson; import nccloud.framework.service.ServiceLocator; +import nccloud.framework.web.json.JsonFactory; import nccloud.pubitf.scmpub.pub.batchopr.dto.ISCMBatchOprContext; import nccloud.pubitf.scmpub.pub.batchopr.dto.SCMBatchOprContext; import nccloud.pubitf.scmpub.pub.batchopr.dto.SCMBatchResultDTO; +import nccloud.web.scmpub.pub.resexp.PfResumeExceptionNccUtils; +import nccloud.web.scmpub.pub.utils.SCMBatchOperatorResult; import nccloud.web.scmpub.pub.utils.batchopr.SCMBatchOperator; +import nccloud.web.so.saleorderclose.entity.SaleOrderCloseInfo; +import nccloud.api.so.so.UpCloses.SaleOrderCloseUtil; import nccloud.ws.rest.resource.AbstractNCCRestResource; import org.json.JSONString; @@ -81,6 +88,48 @@ public class CloseSoResource extends AbstractNCCRestResource { + } catch (Exception e) { + errojson.put("status", "0"); + errojson.put("message", e.getMessage()); + errojson.put("codeList", ""); + // 返回表示操作失败的JSON字符串 + return ResultMessageUtil.toJSON(errojson); + } + } + @POST + @Path("/OpenClose") + @Consumes({"application/json"}) + @Produces({"application/json"}) + public JSONString OpenClose(JSONString json) { + JSONObject errojson = new JSONObject(); + try { + JSONObject jObject = JSON.parseObject(json.toJSONString()); + if (jObject == null) { + return ResultMessageUtil.exceptionToJSON(new NullPointerException("JSONString:null")); + } + JSONArray array = jObject.getJSONArray("bids"); + if (array.isEmpty()) { + return ResultMessageUtil.exceptionToJSON(new NullPointerException("请选择销售订单")); + } + + IJson json1 = JsonFactory.create(); + SaleOrderCloseInfo combineinfo = (SaleOrderCloseInfo)json1.fromJson(json.toJSONString(), SaleOrderCloseInfo.class); + SaleOrderViewVO[] result = SaleOrderCloseUtil.buttonClick(combineinfo, "billOpen"); + if (result.length == 0 ){ + errojson.put("status", "0"); + errojson.put("message", "打开失败"); + errojson.put("codeList", ""); + return ResultMessageUtil.toJSON(errojson); + + } + errojson.put("status", "1"); + errojson.put("message", "打开成功"); + errojson.put("codeList", ""); + // 返回表示操作成功的JSON字符串 + return ResultMessageUtil.toJSON(errojson); + + + } catch (Exception e) { errojson.put("status", "0"); errojson.put("message", e.getMessage()); diff --git a/so/src/public/nccloud/api/so/so/UpCloses/SaleOrderCloseUtil.java b/so/src/public/nccloud/api/so/so/UpCloses/SaleOrderCloseUtil.java new file mode 100644 index 0000000..45d5ec9 --- /dev/null +++ b/so/src/public/nccloud/api/so/so/UpCloses/SaleOrderCloseUtil.java @@ -0,0 +1,69 @@ +// +// Source code recreated from a .class file by IntelliJ IDEA +// (powered by FernFlower decompiler) +// + +package nccloud.api.so.so.UpCloses; + +import java.util.Arrays; +import java.util.HashMap; +import java.util.Map; + +import nc.bs.framework.common.NCLocator; +import nc.itf.so.m30.closemanage.ISaleOrderCloseManageMaintain; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFDateTime; +import nc.vo.scmpub.util.CombineViewToAggUtil; +import nc.vo.scmpub.util.SagasUtil; +import nc.vo.so.m30.entity.SaleOrderBVO; +import nc.vo.so.m30.entity.SaleOrderHVO; +import nc.vo.so.m30.entity.SaleOrderVO; +import nc.vo.so.m30.entity.SaleOrderViewVO; +import nc.vo.so.m30.util.SaleOrderStateContext; +import nccloud.framework.service.ServiceLocator; +import nccloud.framework.web.ui.pattern.grid.Grid; +import nccloud.pubitf.scmpub.pub.batchopr.dto.ISCMBatchOprContext; +import nccloud.pubitf.scmpub.pub.batchopr.dto.SCMBatchOprContext; +import nccloud.pubitf.scmpub.pub.batchopr.dto.SCMBatchResultDTO; +import nccloud.pubitf.so.saleorderclose.service.IQuerySaleOrderCloseService; +import nccloud.pubitf.so.saleorderclose.service.ISaleOrderCloseMaintainService; +import nccloud.pubitf.so.saleorderclose.utils.SaleOrderCloseUtils; +import nccloud.util.so.TransBillUtil; +import nccloud.web.scmpub.pub.operator.SCMGridOperator; +import nccloud.web.scmpub.pub.utils.SCMBatchOperatorResult; +import nccloud.web.scmpub.pub.utils.batchopr.SCMBatchOperator; +import nccloud.web.scmpub.pub.utils.compare.SCMCompareUtil; +import nccloud.web.scmpub.vocheck.VOSagaFrozenCheck; +import nccloud.web.so.pub.batchopr.SOBatchOprResultViewConvertor; +import nccloud.web.so.pub.scale.SaleOrderViewScaleProcess; +import nccloud.web.so.saleorderclose.entity.SaleOrderCloseInfo; + +public class SaleOrderCloseUtil { + private static String[] operateByVO = new String[]{"billClose", "billOpen"}; + + public SaleOrderCloseUtil() { + } + + public static SaleOrderViewVO[] buttonClick(SaleOrderCloseInfo combineinfo, String buttonType) throws BusinessException { + SaleOrderViewVO[] vos = queryViewByBIDs(combineinfo.getBids(), combineinfo.getVclosereason()); + CombineViewToAggUtil combineViewToAggUtil = new CombineViewToAggUtil(SaleOrderVO.class, SaleOrderHVO.class, SaleOrderBVO.class); + SaleOrderVO[] bills = (SaleOrderVO[])combineViewToAggUtil.combineViewToAgg(vos, "csaleorderid"); + VOSagaFrozenCheck checkVo = new VOSagaFrozenCheck(true, "csaleorderid"); + checkVo.processCheck(bills); + ISaleOrderCloseMaintainService service=NCLocator.getInstance() + .lookup(ISaleOrderCloseMaintainService.class); + SaleOrderViewVO[] saleOrderViewVOS= service.billOpen(bills,false); + return saleOrderViewVOS; + } + + public static SaleOrderViewVO[] queryViewByBIDs(String[] bidts, String vclosereason) throws BusinessException { + Map bid_ts = new HashMap(); + String[] bids = TransBillUtil.splitBidts(bidts, bid_ts); + IQuerySaleOrderCloseService service = NCLocator.getInstance() + .lookup(IQuerySaleOrderCloseService.class); + SaleOrderViewVO[] vos = service.queryByIds(bids); + TransBillUtil.fillBodyTs(vos, "csaleorderbid", bid_ts); + SaleOrderCloseUtils.setCloseOpenReason(vos, vclosereason); + return vos; + } +}