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 a37fc40..269ea44 100644 --- a/so/src/public/nccloud/api/so/so/UpCloses/CloseSoResource.java +++ b/so/src/public/nccloud/api/so/so/UpCloses/CloseSoResource.java @@ -7,19 +7,31 @@ import nc.bs.framework.common.NCLocator; import nc.itf.so.m30.closemanage.ISaleOrderCloseManageMaintain; import nc.pubitf.so.m30.api.ISaleOrderQueryAPI; import nc.pubitf.uapbd.IRateTypePubService; +import nc.vo.pub.BusinessException; +import nc.vo.pub.lang.UFDateTime; +import nc.vo.scmpub.util.CombineViewToAggUtil; 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 nccloud.api.rest.utils.IJsonForAPI; +import nccloud.api.rest.utils.JsonFactoryForAPI; 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.arap.arappub.IArapBillPubUtilService; 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.resexp.PfResumeExceptionNccUtils; import nccloud.web.scmpub.pub.utils.SCMBatchOperatorResult; import nccloud.web.scmpub.pub.utils.batchopr.SCMBatchOperator; +import nccloud.web.scmpub.vocheck.VOSagaFrozenCheck; import nccloud.web.so.saleorderclose.entity.SaleOrderCloseInfo; import nccloud.api.so.so.UpCloses.SaleOrderCloseUtil; import nccloud.ws.rest.resource.AbstractNCCRestResource; @@ -29,6 +41,7 @@ import javax.ws.rs.Consumes; import javax.ws.rs.POST; import javax.ws.rs.Path; import javax.ws.rs.Produces; +import java.util.HashMap; import java.util.Map; @Path("so/so/Close") @@ -111,10 +124,13 @@ public class CloseSoResource extends AbstractNCCRestResource { if (array.isEmpty()) { return ResultMessageUtil.exceptionToJSON(new NullPointerException("请选择销售订单")); } + String[] stringArray = new String[array.size()]; - IJson json1 = JsonFactory.create(); - SaleOrderCloseInfo combineinfo = (SaleOrderCloseInfo)json1.fromJson(json.toJSONString(), SaleOrderCloseInfo.class); - SaleOrderViewVO[] result = SaleOrderCloseUtil.buttonClick(combineinfo, "billOpen"); + for (int i = 0; i < array.size(); i++) { + // 直接获取每个元素的字符串形式 + stringArray[i] = array.getString(i); + } + SaleOrderViewVO[] result = this.buttonClick(stringArray, "billOpen"); if (result.length == 0 ){ errojson.put("status", "0"); errojson.put("message", "打开失败"); @@ -151,4 +167,34 @@ public class CloseSoResource extends AbstractNCCRestResource { + + + + + + public static SaleOrderViewVO[] buttonClick(String [] bids, String buttonType) throws BusinessException { + SaleOrderViewVO[] vos = queryViewByBIDs(bids, ""); + CombineViewToAggUtil combineViewToAggUtil = new CombineViewToAggUtil(SaleOrderVO.class, SaleOrderHVO.class, SaleOrderBVO.class); + SaleOrderVO[] bills = (SaleOrderVO[])combineViewToAggUtil.combineViewToAgg(vos, "csaleorderid"); + 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; + } + + + + + }