2025-09-25 07:56:49 +00:00
|
|
|
|
package tqq9.lc123.cloud.app.api.controller;
|
|
|
|
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
|
|
|
import com.drew.lang.annotations.NotNull;
|
2025-10-04 03:50:49 +00:00
|
|
|
|
import com.google.gson.Gson;
|
2025-09-25 07:56:49 +00:00
|
|
|
|
import kd.bos.dataentity.OperateOption;
|
|
|
|
|
|
import kd.bos.dataentity.entity.DynamicObject;
|
|
|
|
|
|
import kd.bos.dataentity.utils.StringUtils;
|
|
|
|
|
|
import kd.bos.entity.operate.result.IOperateInfo;
|
|
|
|
|
|
import kd.bos.entity.operate.result.OperationResult;
|
|
|
|
|
|
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.operation.OperationServiceHelper;
|
|
|
|
|
|
import kd.bos.servicehelper.operation.SaveServiceHelper;
|
2025-10-04 03:50:49 +00:00
|
|
|
|
import tqq9.lc123.cloud.app.api.model.WMSXmlReturn;
|
2025-09-25 07:56:49 +00:00
|
|
|
|
import tqq9.lc123.cloud.app.api.utils.ApiResultExt;
|
|
|
|
|
|
import tqq9.lc123.cloud.app.api.utils.Constants;
|
|
|
|
|
|
|
2025-09-26 09:42:35 +00:00
|
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
import java.util.HashMap;
|
|
|
|
|
|
import java.util.List;
|
2025-10-04 03:50:49 +00:00
|
|
|
|
import java.util.Map;
|
2025-09-25 07:56:49 +00:00
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ApiController(value = "WMSSaleOutCloseController", desc = "WMS-出库关闭")
|
|
|
|
|
|
public class WMSSaleOutCloseController {
|
|
|
|
|
|
private static String SM_DELIVERNOTICE = "sm_delivernotice";//发货通知单
|
|
|
|
|
|
private static String SM_RETURNAPPLY = "sm_returnapply";//销售退货申请单
|
|
|
|
|
|
private static String TQQ9_OTHEROUTAPPLY = "tqq9_otheroutapply";//其他出库申请
|
2025-10-10 04:22:01 +00:00
|
|
|
|
private final static HashMap<String, String> billTypeMap = new HashMap<String, String>() {{
|
|
|
|
|
|
put("采购订单", "pm_receiptnotice");
|
|
|
|
|
|
put("其他入库单", "tqq9_otherinapply");
|
|
|
|
|
|
put("销售退货单", "sm_returnapply");
|
|
|
|
|
|
put("调拨入库单", "tqq9_otherinapply");
|
|
|
|
|
|
put("采购退货单", "pm_purrefundapplybill");
|
|
|
|
|
|
put("销售订单", "sm_delivernotice");
|
|
|
|
|
|
put("其他出库单", "tqq9_otheroutapply");
|
|
|
|
|
|
put("调拨出库单", "tqq9_otheroutapply");
|
|
|
|
|
|
put("PTCK", "sm_delivernotice");
|
|
|
|
|
|
put("CGTH", "pm_purrefundapplybill");
|
|
|
|
|
|
put("DBCK", "tqq9_otheroutapply");
|
|
|
|
|
|
put("PKCK", "tqq9_otheroutapply");
|
|
|
|
|
|
put("TZCK", "tqq9_otheroutapply");
|
|
|
|
|
|
put("YPCK", "tqq9_otheroutapply");
|
|
|
|
|
|
put("BSCK", "tqq9_otheroutapply");
|
|
|
|
|
|
put("GQCK", "tqq9_otheroutapply");
|
|
|
|
|
|
put("CGRK", "pm_receiptnotice");
|
|
|
|
|
|
put("DBRK", "tqq9_otherinapply");
|
|
|
|
|
|
put("THRK", "sm_returnapply");
|
|
|
|
|
|
put("ZPRK", "tqq9_otherinapply");
|
|
|
|
|
|
put("PYRK", "tqq9_otherinapply");
|
|
|
|
|
|
put("TZRK", "tqq9_otherinapply");
|
|
|
|
|
|
}};
|
2025-09-25 07:56:49 +00:00
|
|
|
|
@ApiPostMapping(value = "/WMSSaleOutClose", desc = "WMS-出库关闭")
|
|
|
|
|
|
public CustomApiResult<ApiResultExt> WMSSaleOutClose
|
2025-09-26 09:42:35 +00:00
|
|
|
|
(
|
|
|
|
|
|
@NotNull @ApiParam(value = "来源单据号", required = true) String cVouCode,
|
|
|
|
|
|
@NotNull @ApiParam(value = "单据类型", required = true) String VoucherType,
|
|
|
|
|
|
@NotNull @ApiParam(value = "归属", required = true) String BelongTo ) {
|
2025-09-25 07:56:49 +00:00
|
|
|
|
//返回值初始化
|
|
|
|
|
|
ApiResultExt resultExt = new ApiResultExt();
|
|
|
|
|
|
List<ApiResultExt.ResultBean> results = new ArrayList<>();
|
|
|
|
|
|
resultExt.setResult(results);
|
2025-09-26 09:42:35 +00:00
|
|
|
|
String billno = cVouCode;//单据编号
|
2025-09-25 07:56:49 +00:00
|
|
|
|
ApiResultExt.ResultBean resultBean = new ApiResultExt.ResultBean();
|
|
|
|
|
|
results.add(resultBean);
|
|
|
|
|
|
JSONObject key = new JSONObject();
|
|
|
|
|
|
key.put("billno", billno);
|
|
|
|
|
|
resultBean.setKeys(key);
|
|
|
|
|
|
ApiResultExt.Error error = new ApiResultExt.Error();
|
|
|
|
|
|
resultBean.setErrors(error);
|
|
|
|
|
|
ArrayList<String> rowmsg = new ArrayList<>();
|
|
|
|
|
|
error.setRowMsg(rowmsg);
|
|
|
|
|
|
String errormsg = null;
|
|
|
|
|
|
resultBean.setBillIndex(0);
|
|
|
|
|
|
resultBean.setKeys(key);
|
|
|
|
|
|
resultBean.setNumber(billno);
|
|
|
|
|
|
resultBean.setType(Constants.TYPE_PUSH);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
//必填项校验
|
2025-10-10 04:22:01 +00:00
|
|
|
|
VoucherType=billTypeMap.get(VoucherType);
|
2025-09-25 07:56:49 +00:00
|
|
|
|
if (ApiResultExt.validateRequired(VoucherType, "String")) {
|
|
|
|
|
|
errormsg = "传入参数 VoucherType 为空";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
if (ApiResultExt.validateRequired(billno, "String")) {
|
|
|
|
|
|
errormsg = "传入参数 cVouCode 为空";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
rowmsg = resultExt.getResult().get(0).getErrors().getRowMsg();
|
|
|
|
|
|
if (!rowmsg.isEmpty()) {
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ArrayList<String> VoucherTypes = new ArrayList<>();
|
|
|
|
|
|
VoucherTypes.add(SM_DELIVERNOTICE);
|
|
|
|
|
|
VoucherTypes.add(SM_RETURNAPPLY);
|
|
|
|
|
|
VoucherTypes.add(TQQ9_OTHEROUTAPPLY);
|
|
|
|
|
|
if(!VoucherTypes.contains(VoucherType)){
|
|
|
|
|
|
errormsg = "传入参数 VoucherType 为无效值";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//发货通知单
|
|
|
|
|
|
if (StringUtils.equals("sm_delivernotice", VoucherType)) {
|
|
|
|
|
|
//查询单据在金蝶系统中是否存在
|
|
|
|
|
|
DynamicObject delivernotice = BusinessDataServiceHelper.loadSingle(SM_DELIVERNOTICE, new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
|
|
|
|
|
if (delivernotice == null) {
|
|
|
|
|
|
errormsg = "根据传入编号:" + billno + "未找到对应发货通知单";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
resultBean.setId(delivernotice.getString("id"));
|
|
|
|
|
|
resultBean.setBillStatus(true);
|
|
|
|
|
|
if (!StringUtils.equals("C",delivernotice.getString("billstatus"))) {
|
|
|
|
|
|
errormsg = "编号:" + billno + "的单据状态非审核,无法关闭";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (StringUtils.equals("B",delivernotice.getString("closestatus"))) {
|
|
|
|
|
|
errormsg = "编号:" + billno + "的单据已关闭,无法重复关闭";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
//开始关闭
|
|
|
|
|
|
OperateOption operateOption = OperateOption.create();
|
|
|
|
|
|
OperationResult closeResult = OperationServiceHelper.executeOperate(Constants.TYPE_CLOSE, SM_DELIVERNOTICE, new DynamicObject[]{delivernotice}, operateOption);
|
|
|
|
|
|
if (!closeResult.isSuccess()) {
|
|
|
|
|
|
List<IOperateInfo> allErrorOrValidateInfo = closeResult.getAllErrorOrValidateInfo();
|
|
|
|
|
|
if (allErrorOrValidateInfo.size() != 0) {
|
|
|
|
|
|
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
|
|
|
|
|
|
HashMap<String, Object> returnMap = resultExt.addErrorToResultBeanByNumber(results, iOperateInfo, SM_DELIVERNOTICE);
|
|
|
|
|
|
results = (List<ApiResultExt.ResultBean>) returnMap.get("ResultBeanList");
|
|
|
|
|
|
}
|
|
|
|
|
|
} else if (StringUtils.isNotBlank(closeResult.getMessage())) {
|
|
|
|
|
|
HashMap<String, Object> returnMap = resultExt.addOneErrorToResultBeanByNumber(results, closeResult.getMessage(), SM_DELIVERNOTICE);
|
|
|
|
|
|
results = (List<ApiResultExt.ResultBean>) returnMap.get("ResultBeanList");
|
|
|
|
|
|
} else {
|
|
|
|
|
|
HashMap<String, Object> returnMap = resultExt.addOneErrorToResultBeanByNumber(results, closeResult.getInteractionContext().getSimpleMessage(), SM_DELIVERNOTICE);
|
|
|
|
|
|
results = (List<ApiResultExt.ResultBean>) returnMap.get("ResultBeanList");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//销售退货单
|
|
|
|
|
|
} else if (StringUtils.equals("sm_returnapply", VoucherType)) {
|
|
|
|
|
|
//查询单据在金蝶系统中是否存在
|
|
|
|
|
|
DynamicObject sm_returnapply = BusinessDataServiceHelper.loadSingle(SM_RETURNAPPLY, new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
|
|
|
|
|
if (sm_returnapply == null) {
|
|
|
|
|
|
errormsg = "根据传入编号:" + billno + "未找到对应销售退货单";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
resultBean.setId(sm_returnapply.getString("id"));
|
|
|
|
|
|
resultBean.setBillStatus(true);
|
|
|
|
|
|
if (!StringUtils.equals("C",sm_returnapply.getString("billstatus"))) {
|
|
|
|
|
|
errormsg = "编号:" + billno + "的单据状态非审核,无法关闭";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (StringUtils.equals("B",sm_returnapply.getString("closestatus"))) {
|
|
|
|
|
|
errormsg = "编号:" + billno + "的单据已关闭,无法重复关闭";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//开始关闭
|
|
|
|
|
|
OperateOption operateOption = OperateOption.create();
|
|
|
|
|
|
OperationResult closeResult = OperationServiceHelper.executeOperate(Constants.TYPE_CLOSE, SM_RETURNAPPLY, new DynamicObject[]{sm_returnapply}, operateOption);
|
|
|
|
|
|
if (!closeResult.isSuccess()) {
|
|
|
|
|
|
List<IOperateInfo> allErrorOrValidateInfo = closeResult.getAllErrorOrValidateInfo();
|
|
|
|
|
|
if (allErrorOrValidateInfo.size() != 0) {
|
|
|
|
|
|
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
|
|
|
|
|
|
HashMap<String, Object> returnMap = resultExt.addErrorToResultBeanByNumber(results, iOperateInfo, SM_RETURNAPPLY);
|
|
|
|
|
|
results = (List<ApiResultExt.ResultBean>) returnMap.get("ResultBeanList");
|
|
|
|
|
|
}
|
|
|
|
|
|
} else if (StringUtils.isNotBlank(closeResult.getMessage())) {
|
|
|
|
|
|
HashMap<String, Object> returnMap = resultExt.addOneErrorToResultBeanByNumber(results, closeResult.getMessage(), SM_RETURNAPPLY);
|
|
|
|
|
|
results = (List<ApiResultExt.ResultBean>) returnMap.get("ResultBeanList");
|
|
|
|
|
|
} else {
|
|
|
|
|
|
HashMap<String, Object> returnMap = resultExt.addOneErrorToResultBeanByNumber(results, closeResult.getInteractionContext().getSimpleMessage(), SM_RETURNAPPLY);
|
|
|
|
|
|
results = (List<ApiResultExt.ResultBean>) returnMap.get("ResultBeanList");
|
|
|
|
|
|
}
|
|
|
|
|
|
}
|
|
|
|
|
|
//其他出库申请单
|
|
|
|
|
|
} else if (StringUtils.equals("tqq9_otheroutapply", VoucherType)) {
|
|
|
|
|
|
//查询单据在金蝶系统中是否存在
|
|
|
|
|
|
DynamicObject tqq9_otheroutapply = BusinessDataServiceHelper.loadSingle(TQQ9_OTHEROUTAPPLY, new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
|
|
|
|
|
if (tqq9_otheroutapply == null) {
|
|
|
|
|
|
errormsg = "根据传入编号:" + billno + "未找到对应其他出库申请单";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
resultBean.setId(tqq9_otheroutapply.getString("id"));
|
|
|
|
|
|
resultBean.setBillStatus(true);
|
|
|
|
|
|
if (!StringUtils.equals("C",tqq9_otheroutapply.getString("billstatus"))) {
|
|
|
|
|
|
errormsg = "编号:" + billno + "的单据状态非审核,无法关闭";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (tqq9_otheroutapply.getBoolean("tqq9_isclose")) {
|
|
|
|
|
|
errormsg = "编号:" + billno + "的单据已关闭,无法重复关闭";
|
|
|
|
|
|
resultExt = ApiResultExt.errorRetrun(VoucherType, errormsg, error, resultExt);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
}
|
2025-09-29 09:40:02 +00:00
|
|
|
|
//开始关闭
|
2025-09-25 07:56:49 +00:00
|
|
|
|
tqq9_otheroutapply.set("tqq9_isclose",true);
|
|
|
|
|
|
SaveServiceHelper.save(new DynamicObject[]{tqq9_otheroutapply});
|
2025-09-29 09:40:02 +00:00
|
|
|
|
|
|
|
|
|
|
|
2025-09-25 07:56:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
//回传成功
|
|
|
|
|
|
int failCount = 0;//失败数量
|
|
|
|
|
|
int successCount = 1;//成功数量
|
|
|
|
|
|
resultExt.setFailCount(failCount);
|
|
|
|
|
|
resultExt.setSuccessCount(successCount);
|
|
|
|
|
|
resultExt.setResult(results);
|
|
|
|
|
|
return CustomApiResult.success(resultExt);
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
2025-10-04 03:50:49 +00:00
|
|
|
|
@ApiPostMapping(value = "/WMSSaleOutClose_SH", desc = "WMS-出库关闭")
|
|
|
|
|
|
public CustomApiResult<WMSXmlReturn> WMSSaleOutClose_SH
|
|
|
|
|
|
(@NotNull @ApiParam(value = "入参", required = true) Map<String, Object> dataMap) {
|
|
|
|
|
|
//返回值初始化
|
|
|
|
|
|
Gson gson = new Gson();
|
|
|
|
|
|
JSONObject data = gson.fromJson(dataMap.toString(), JSONObject.class);
|
|
|
|
|
|
JSONObject request = data.getJSONObject("request");
|
|
|
|
|
|
String billno = request.getString("orderCode");
|
|
|
|
|
|
String orderType = request.getString("orderType");
|
2025-10-10 04:22:01 +00:00
|
|
|
|
orderType=billTypeMap.get(orderType);
|
2025-10-04 03:50:49 +00:00
|
|
|
|
WMSXmlReturn wmsXmlReturn = new WMSXmlReturn();
|
|
|
|
|
|
WMSXmlReturn.Response response = new WMSXmlReturn.Response();
|
|
|
|
|
|
wmsXmlReturn.setResponse(response);
|
|
|
|
|
|
response.setCode("0");
|
|
|
|
|
|
response.setFlag("success");
|
|
|
|
|
|
response.setMessage("成功");
|
|
|
|
|
|
StringBuilder errormsg = new StringBuilder();
|
|
|
|
|
|
ArrayList<String> entryOrderTypes = new ArrayList<>();
|
|
|
|
|
|
entryOrderTypes.add(SM_DELIVERNOTICE);
|
|
|
|
|
|
entryOrderTypes.add(SM_RETURNAPPLY);
|
|
|
|
|
|
entryOrderTypes.add(TQQ9_OTHEROUTAPPLY);
|
|
|
|
|
|
if (!entryOrderTypes.contains(orderType)) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("传入参数 orderType 为无效值");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
//必填项校验
|
|
|
|
|
|
if (ApiResultExt.validateRequired(orderType, "String")) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("传入参数 orderType 为空");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
if (ApiResultExt.validateRequired(billno, "String")) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("传入参数 deliveryOrderCode 为空");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
//发货通知单
|
|
|
|
|
|
if (StringUtils.equals("sm_delivernotice", orderType)) {
|
|
|
|
|
|
//查询单据在金蝶系统中是否存在
|
|
|
|
|
|
DynamicObject sm_delivernotice = BusinessDataServiceHelper.loadSingle(SM_DELIVERNOTICE, new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
|
|
|
|
|
if (sm_delivernotice == null) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("根据传入编号:" + billno + "未找到对应发货通知单");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!StringUtils.equals("C",sm_delivernotice.getString("billstatus"))) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("编号:" + billno + "的单据状态非审核,无法关闭");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (sm_delivernotice.getBoolean("closestatus")) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("编号:" + billno + "的单据已关闭,无法重复关闭");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
//开始关闭
|
|
|
|
|
|
OperateOption operateOption = OperateOption.create();
|
|
|
|
|
|
OperationResult closeResult = OperationServiceHelper.executeOperate(Constants.TYPE_CLOSE, SM_RETURNAPPLY, new DynamicObject[]{sm_delivernotice}, operateOption);
|
|
|
|
|
|
if (!closeResult.isSuccess()) {
|
|
|
|
|
|
List<IOperateInfo> allErrorOrValidateInfo = closeResult.getAllErrorOrValidateInfo();
|
|
|
|
|
|
if (allErrorOrValidateInfo.size() != 0) {
|
|
|
|
|
|
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
|
|
|
|
|
|
String billMessage = iOperateInfo.getMessage();
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append(billMessage);
|
2025-10-04 03:50:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
} else if (StringUtils.isNotBlank(closeResult.getMessage())) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append(closeResult.getMessage());
|
2025-10-04 03:50:49 +00:00
|
|
|
|
} else {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append(closeResult.getInteractionContext().getSimpleMessage());
|
2025-10-04 03:50:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
//销售退货单
|
|
|
|
|
|
} else if (StringUtils.equals("sm_returnapply", orderType)) {
|
|
|
|
|
|
//查询单据在金蝶系统中是否存在
|
|
|
|
|
|
DynamicObject sm_returnapply = BusinessDataServiceHelper.loadSingle(SM_RETURNAPPLY, new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
|
|
|
|
|
if (sm_returnapply == null) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("根据传入编号:" + billno + "未找到对应销售退货单");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!StringUtils.equals("C",sm_returnapply.getString("billstatus"))) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("编号:" + billno + "的单据状态非审核,无法关闭");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (sm_returnapply.getBoolean("closestatus")) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("编号:" + billno + "的单据已关闭,无法重复关闭");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
//开始关闭
|
|
|
|
|
|
OperateOption operateOption = OperateOption.create();
|
|
|
|
|
|
OperationResult closeResult = OperationServiceHelper.executeOperate(Constants.TYPE_CLOSE, SM_RETURNAPPLY, new DynamicObject[]{sm_returnapply}, operateOption);
|
|
|
|
|
|
if (!closeResult.isSuccess()) {
|
|
|
|
|
|
List<IOperateInfo> allErrorOrValidateInfo = closeResult.getAllErrorOrValidateInfo();
|
|
|
|
|
|
if (allErrorOrValidateInfo.size() != 0) {
|
|
|
|
|
|
for (IOperateInfo iOperateInfo : allErrorOrValidateInfo) {
|
|
|
|
|
|
String billMessage = iOperateInfo.getMessage();
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append(billMessage);
|
2025-10-04 03:50:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
} else if (StringUtils.isNotBlank(closeResult.getMessage())) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append(closeResult.getMessage());
|
2025-10-04 03:50:49 +00:00
|
|
|
|
} else {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append(closeResult.getInteractionContext().getSimpleMessage());
|
2025-10-04 03:50:49 +00:00
|
|
|
|
}
|
|
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
//其他出库申请
|
|
|
|
|
|
} else if (StringUtils.equals("tqq9_otheroutapply", orderType)) {
|
|
|
|
|
|
//查询单据在金蝶系统中是否存在
|
|
|
|
|
|
DynamicObject tqq9_otheroutapply = BusinessDataServiceHelper.loadSingle(TQQ9_OTHEROUTAPPLY, new QFilter[]{new QFilter("billno", QCP.equals, billno)});
|
|
|
|
|
|
if (tqq9_otheroutapply == null) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("根据传入编号:" + billno + "未找到对应其他出库申请单");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (!StringUtils.equals("C",tqq9_otheroutapply.getString("billstatus"))) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("编号:" + billno + "的单据状态非审核,无法关闭");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
if (tqq9_otheroutapply.getBoolean("tqq9_isclose")) {
|
2025-10-09 09:05:55 +00:00
|
|
|
|
errormsg = errormsg.append(";").append("编号:" + billno + "的单据已关闭,无法重复关闭");
|
2025-10-04 03:50:49 +00:00
|
|
|
|
response.setMessage(errormsg.substring(1));
|
|
|
|
|
|
response.setCode("-1");
|
|
|
|
|
|
response.setFlag("failure");
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
//开始关闭
|
|
|
|
|
|
tqq9_otheroutapply.set("tqq9_isclose",true);
|
|
|
|
|
|
SaveServiceHelper.save(new DynamicObject[]{tqq9_otheroutapply});
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
//回传成功
|
|
|
|
|
|
return CustomApiResult.success(wmsXmlReturn);
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
2025-09-25 07:56:49 +00:00
|
|
|
|
}
|