From 19839d550efbe9926d7f534f6598c4927353f903 Mon Sep 17 00:00:00 2001 From: zhongqy <18262099959@163.com> Date: Tue, 16 Dec 2025 18:15:59 +0800 Subject: [PATCH 1/2] =?UTF-8?q?=E3=80=90=E5=95=86=E5=9F=8E=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E3=80=91--=E9=94=80=E5=94=AE=E9=80=80=E8=B4=A7?= =?UTF-8?q?=E7=94=B3=E8=AF=B7=E6=8E=A5=E5=8F=A3=EF=BC=9A=E5=94=AE=E5=90=8E?= =?UTF-8?q?=E5=85=A5=E5=BA=93=E6=8B=A6=E6=88=AA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SmReturnApplyController.java | 111 ++++++++++++++++++ 1 file changed, 111 insertions(+) create mode 100644 lc123/cloud/app/api/controller/SmReturnApplyController.java diff --git a/lc123/cloud/app/api/controller/SmReturnApplyController.java b/lc123/cloud/app/api/controller/SmReturnApplyController.java new file mode 100644 index 0000000..8caad17 --- /dev/null +++ b/lc123/cloud/app/api/controller/SmReturnApplyController.java @@ -0,0 +1,111 @@ +package tqq9.lc123.cloud.app.api.controller; + +import com.alibaba.fastjson.JSONObject; +import com.drew.lang.annotations.NotNull; +import kd.bos.dataentity.entity.DynamicObject; +import kd.bos.dataentity.entity.DynamicObjectCollection; +import kd.bos.openapi.common.custom.annotation.ApiController; +import kd.bos.openapi.common.custom.annotation.ApiParam; +import kd.bos.openapi.common.custom.annotation.ApiPostMapping; +import kd.bos.openapi.common.result.CustomApiResult; +import kd.bos.orm.query.QCP; +import kd.bos.orm.query.QFilter; +import kd.bos.servicehelper.BusinessDataServiceHelper; +import kd.bos.servicehelper.botp.BFTrackerServiceHelper; +import kd.bos.servicehelper.operation.SaveServiceHelper; +import kd.bos.util.StringUtils; +import tqq9.lc123.cloud.app.api.utils.ApiResultExt; +import tqq9.lc123.cloud.app.api.utils.Constants; +import tqq9.lc123.cloud.app.plugin.form.result.CloneBill; +import tqq9.lc123.cloud.app.plugin.utils.BillCloseCancelUtils; +import tqq9.lc123.cloud.app.plugin.utils.ConfigUtils; + +import java.util.ArrayList; +import java.util.HashSet; +import java.util.List; +import java.util.Map; + +import static tqq9.lc123.cloud.app.plugin.form.result.CloneBill.cloneOperation; + +/** + * 销售退货申请接口 + */ +@ApiController(value = "SmReturnApplyController", desc = "销售退货申请接口") +public class SmReturnApplyController { + @ApiPostMapping(value = "/closeSmReturnApply", desc = "根据销售退货申请单号做售后入库拦截") + public CustomApiResult closeSmDeliverNotice(@NotNull @ApiParam(value = "销售退货申请单单号", required = true) String orderBillNo) { + //返回值初始化 + ApiResultExt resultExt = new ApiResultExt(); + List results = new ArrayList<>(); + resultExt.setResult(results); + ApiResultExt.ResultBean resultBean = new ApiResultExt.ResultBean(); + results.add(resultBean); + JSONObject key = new JSONObject(); + key.put("billno", orderBillNo); + resultBean.setKeys(key); + ApiResultExt.Error error = new ApiResultExt.Error(); + resultBean.setErrors(error); + ArrayList rowmsg = new ArrayList<>(); + error.setRowMsg(rowmsg); + String errormsg = null; + resultBean.setBillIndex(0); + resultBean.setKeys(key); + resultBean.setNumber(orderBillNo); + resultBean.setType(Constants.TYPE_CLOSE); + + String message = null; + DynamicObject dataEntity = BusinessDataServiceHelper.loadSingle("sm_returnapply", new QFilter[]{new QFilter("billno", QCP.equals, orderBillNo)}); + boolean tqq9_isclose = dataEntity.getBoolean("tqq9_isclose"); + if (tqq9_isclose) { + resultExt = ApiResultExt.errorRetrun("sm_returnapply", "该单据已关闭", error, resultExt); + return CustomApiResult.success(resultExt); + } + Map> targetBills = BFTrackerServiceHelper.findTargetBills("sm_returnapply", new Long[]{dataEntity.getLong("id")}); + //下游存在系统进行提示不允许后续操作 + if (null != targetBills && targetBills.size() > 0 && targetBills.containsKey("im_saloutbill")) { + resultExt = ApiResultExt.errorRetrun("sm_returnapply", "存在下游单据,不允许拦截", error, resultExt); + return CustomApiResult.success(resultExt); + } + String entityType = "sm_returnapply"; + String entityName; + String label = "tqq9_isclose"; + DynamicObject org = dataEntity.getDynamicObject("org");//收货组织 + if (null != org) { + String number = org.getString("number"); + if ("SHLC".equals(number)) { + DynamicObjectCollection billentry = dataEntity.getDynamicObjectCollection("billentry"); + String warehouseCode = null; + for (DynamicObject dynamicObject : billentry) { + DynamicObject warehouse = dynamicObject.getDynamicObject("warehouse"); + if (null != warehouse) { + warehouseCode = warehouse.getString("number"); + } + } + String orderType = "THRK"; + entityName = "WMS-SH-销售退货申请单取消"; + message = BillCloseCancelUtils.wmsPartClose(orderType, warehouseCode, orderBillNo, entityType, entityName, label); + } else if ("BJLC".equals(number)) { + String BJ_URL = ConfigUtils.getThirdConfigByNumber("BJ_POSTURL"); + entityName = "WMS-BJ-销售退货申请单取消"; + message = BillCloseCancelUtils.BGSaCancelSalesReturn(orderBillNo, BJ_URL, entityType, entityName, label); + + } else if ("GZLC".equals(number)) { + String GZURL = ConfigUtils.getThirdConfigByNumber("GZ_POSTURL"); + entityName = "WMS-GZ-销售退货申请单取消"; + message = BillCloseCancelUtils.BGSaCancelSalesReturn(orderBillNo, GZURL, entityType, entityName, label); + + } + if (StringUtils.isNotEmpty(message) && message.contains("关闭成功")) { + cloneOperation(dataEntity, "销售退货申请单", "sm_salorder"); + }else{ + resultExt = ApiResultExt.errorRetrun(entityType, message, error, resultExt); + return CustomApiResult.success(resultExt); + } + } + //回传成功 + resultExt.setFailCount(0); + resultExt.setSuccessCount(1); + resultExt.setResult(results); + return CustomApiResult.success(resultExt); + } +} From cd3327a5c45c46dba90d70e81471174a5c99bb2d Mon Sep 17 00:00:00 2001 From: "tanfengling@x-ri.com" <123456> Date: Tue, 16 Dec 2025 18:53:43 +0800 Subject: [PATCH 2/2] =?UTF-8?q?=E3=80=90=E7=89=A9=E6=96=99=E5=BA=93?= =?UTF-8?q?=E5=AD=98=E6=9F=A5=E8=AF=A2=E3=80=91=20=E4=BF=AE=E6=94=B9?= =?UTF-8?q?=E6=9F=A5=E8=AF=A2=E6=9D=A1=E4=BB=B6=E6=B2=A1=E6=9C=89=E7=94=9F?= =?UTF-8?q?=E6=95=88=E7=9A=84bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- lc123/cloud/app/api/controller/FWInvQueryController.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lc123/cloud/app/api/controller/FWInvQueryController.java b/lc123/cloud/app/api/controller/FWInvQueryController.java index e6da388..af758f5 100644 --- a/lc123/cloud/app/api/controller/FWInvQueryController.java +++ b/lc123/cloud/app/api/controller/FWInvQueryController.java @@ -54,7 +54,7 @@ public class FWInvQueryController { list.add(qf5); } QFilter[] filterArr = new QFilter[list.size()]; - + filterArr = list.toArray(filterArr); DynamicObject[] realbalances = BusinessDataServiceHelper.load("im_inv_realbalance", "id,material,org,warehouse,lotnum,avbbaseqty,qty", filterArr); if(realbalances != null && realbalances.length > 0){