销售订单同步关闭

This commit is contained in:
lihao 2025-05-16 09:39:52 +08:00
parent 13d8c2b50a
commit dc8a09b92e
2 changed files with 111 additions and 0 deletions

View File

@ -0,0 +1,6 @@
<?xml version="1.0" encoding='gb2312'?>
<module>
<rest>
<resource classname="nccloud.api.so.so.UpCloses.CloseSoResource" exinfo="关闭订单"/>
</rest>
</module>

View File

@ -0,0 +1,105 @@
package nccloud.api.so.so.UpCloses;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
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.so.m30.entity.SaleOrderBVO;
import nc.vo.so.m30.entity.SaleOrderVO;
import nccloud.api.rest.utils.ResultMessageUtil;
import nccloud.framework.service.ServiceLocator;
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.utils.batchopr.SCMBatchOperator;
import nccloud.ws.rest.resource.AbstractNCCRestResource;
import org.json.JSONString;
import javax.ws.rs.Consumes;
import javax.ws.rs.POST;
import javax.ws.rs.Path;
import javax.ws.rs.Produces;
import java.util.Map;
@Path("so/so/Close")
public class CloseSoResource extends AbstractNCCRestResource {
@Override
public String getModule() {
return "so";
}
@POST
@Path("/ClosesoWith")
@Consumes({"application/json"})
@Produces({"application/json"})
public JSONString CloseSoResource(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("bills");
if (array.isEmpty()) {
return ResultMessageUtil.exceptionToJSON(new NullPointerException("请选择销售订单"));
}
String[] ids = new String[array.size()];
for (int i = 0; i < array.size(); i++) {
SaleOrderVO saleOrderVO = new SaleOrderVO();
String pk = (String) array.getJSONObject(i).getOrDefault("pk", "");
ids[i] = pk;
}
ISaleOrderQueryAPI iSaleOrderQueryAPI= NCLocator.getInstance()
.lookup(ISaleOrderQueryAPI.class);
SaleOrderVO[] billvos = iSaleOrderQueryAPI.queryVOByIDs(ids);
// ISCMBatchOprContext context = new SCMBatchOprContext();
// context.setInterfaceName("nc.itf.so.m30.closemanage.ISaleOrderCloseManageMaintain");
// context.setMethodName("closeSaleOrder");
// context.setParamTypes(new Class[]{SaleOrderVO[].class});
// context.setParams(new Object[]{billvos});
// context.setBillPos(0);
// SCMBatchResultDTO resulet = SCMBatchOperator.doRemoteCall(context);
ISaleOrderCloseManageMaintain iSaleOrderCloseManageMaintain = NCLocator.getInstance()
.lookup(ISaleOrderCloseManageMaintain.class);
SaleOrderVO[] saleOrderVOS= iSaleOrderCloseManageMaintain.closeSaleOrder(billvos);
if(saleOrderVOS.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());
errojson.put("codeList", "");
// 返回表示操作失败的JSON字符串
return ResultMessageUtil.toJSON(errojson);
}
}
private void setCloseOpenReason(SaleOrderVO[] bills,String reason) {
for(SaleOrderVO bill : bills) {
SaleOrderBVO[] bodys = bill.getChildrenVO();
for(SaleOrderBVO body : bodys) {
body.setVclosereason(reason);
}
}
}
}