销售订单同步取消关闭接口

This commit is contained in:
lihao 2025-05-19 11:05:48 +08:00
parent dc8a09b92e
commit baf0b4a982
2 changed files with 118 additions and 0 deletions

View File

@ -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());

View File

@ -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<SaleOrderVO> 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<String, UFDateTime> 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;
}
}