|
@@ -1,6 +1,7 @@
|
|
|
package com.ruoyi.warehouseBusiness.service.impl;
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
+import cn.hutool.core.collection.CollectionUtil;
|
|
|
import cn.hutool.core.util.ObjectUtil;
|
|
|
import com.alibaba.fastjson.JSON;
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
@@ -15,6 +16,7 @@ import com.ruoyi.basicData.domain.*;
|
|
|
import com.ruoyi.basicData.mapper.*;
|
|
|
import com.ruoyi.basicData.service.impl.TWarehouseServiceImpl;
|
|
|
import com.ruoyi.common.config.RuoYiConfig;
|
|
|
+import com.ruoyi.common.constant.CcbConstants;
|
|
|
import com.ruoyi.common.core.domain.AjaxResult;
|
|
|
import com.ruoyi.common.core.domain.entity.SysDept;
|
|
|
import com.ruoyi.common.core.domain.entity.SysDictData;
|
|
@@ -67,6 +69,9 @@ import com.ruoyi.warehouseBusiness.excel.*;
|
|
|
import com.ruoyi.warehouseBusiness.mapper.*;
|
|
|
import com.ruoyi.warehouseBusiness.service.ITWarehouseBillsService;
|
|
|
import lombok.AllArgsConstructor;
|
|
|
+import okhttp3.OkHttpClient;
|
|
|
+import okhttp3.Request;
|
|
|
+import okhttp3.RequestBody;
|
|
|
import org.apache.poi.hssf.usermodel.*;
|
|
|
import org.apache.poi.ss.usermodel.*;
|
|
|
import org.apache.poi.ss.util.CellRangeAddress;
|
|
@@ -4192,6 +4197,70 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
map.put("fDateChanged", tWarehouseBills.getfDateChanged());
|
|
|
map.put("warehousebills", tWarehouseBills);
|
|
|
map.put("warehousebillsitems", warehousebillsitemsList);
|
|
|
+
|
|
|
+ // 处理银行反馈
|
|
|
+ if (WarehouseTypeEnum.SJRK.getType().equals(billsType)) {
|
|
|
+ SysConfig feedbackConfig = sysConfigMapper.checkConfigKeyUnique("bank.feedback");
|
|
|
+ if (ObjectUtil.isNotNull(feedbackConfig) && "0".equals(feedbackConfig.getConfigValue())) {
|
|
|
+ // 出入库不同处理
|
|
|
+ TCorps corp = tCorpsMapper.selectTCorpsById(tWarehouseBills.getfCorpid());
|
|
|
+ if (ObjectUtil.isNull(corp)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("请求银行反馈异常,未找到客户");
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
+ json.put("userName", corp.getfCname());
|
|
|
+ json.put("uscc", corp.getUscc());
|
|
|
+ json.put("reqUser", corp.getfCname());
|
|
|
+
|
|
|
+ List<Map<String, Object>> stockList = tWhgenlegMapper.selectStockList(tWarehouseBills.getfBillno(), tWarehouseBills.getfCorpid());
|
|
|
+ if (CollectionUtil.isEmpty(stockList)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("请求银行反馈异常,未找到库存");
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONArray array = new JSONArray();
|
|
|
+ stockList.forEach(detail -> {
|
|
|
+ detail.put("numberUnit", "件");
|
|
|
+ detail.put("weightUnit", "千克");
|
|
|
+ detail.put("cargoBelong", corp.getfCname());
|
|
|
+ detail.put("inStorageNumber", detail.get("takeVoucher"));
|
|
|
+ detail.put("remainNumber", detail.get("numberLeft"));
|
|
|
+ detail.put("remainWeight", detail.get("weightLeft"));
|
|
|
+ detail.put("electronicTags", warehousebillsitemsElabelMapper.getLabelByTop(tWarehouseBills.getfId()));
|
|
|
+
|
|
|
+ JSONObject temp = new JSONObject();
|
|
|
+ json.put("cargo", temp);
|
|
|
+ json.put("result", "Y");
|
|
|
+ array.add(temp);
|
|
|
+ });
|
|
|
+
|
|
|
+ json.put("cargoInResults", array);
|
|
|
+
|
|
|
+ OkHttpClient okHttpClient = new OkHttpClient();
|
|
|
+ Request request = new Request.Builder()
|
|
|
+ .addHeader("content-type", "application/json")
|
|
|
+ .url(CcbConstants.IN_URL)
|
|
|
+ .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), json.toString()))
|
|
|
+ .build();
|
|
|
+
|
|
|
+ String s;
|
|
|
+ try {
|
|
|
+ s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
|
|
|
+ } catch (IOException e) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("请求银行反馈异常," + e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject result = JSON.parseObject(s);
|
|
|
+ if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
return AjaxResult.success("成功", map);
|
|
|
}
|
|
|
|
|
@@ -4450,6 +4519,69 @@ public class TWarehouseBillsServiceImpl implements ITWarehouseBillsService {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return AjaxResult.error("库存明细更新失败");
|
|
|
}
|
|
|
+
|
|
|
+ // 处理银行反馈
|
|
|
+ if (WarehouseTypeEnum.SJCK.getType().equals(billsType)) {
|
|
|
+ SysConfig feedbackConfig = sysConfigMapper.checkConfigKeyUnique("bank.feedback");
|
|
|
+ if (ObjectUtil.isNotNull(feedbackConfig) && "0".equals(feedbackConfig.getConfigValue())) {
|
|
|
+ // 出入库不同处理
|
|
|
+ TCorps corp = tCorpsMapper.selectTCorpsById(tWhgenle.getfCorpid());
|
|
|
+ if (ObjectUtil.isNull(corp)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("请求银行反馈异常,未找到客户");
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject json = new JSONObject();
|
|
|
+ json.put("userName", corp.getfCname());
|
|
|
+ json.put("uscc", corp.getUscc());
|
|
|
+ json.put("reqUser", corp.getfCname());
|
|
|
+
|
|
|
+ List<Map<String, Object>> stockList = tWhgenlegMapper.selectStockList(tWhgenle.getfOriginalbillno(), tWhgenle.getfCorpid());
|
|
|
+ if (CollectionUtil.isEmpty(stockList)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("请求银行反馈异常,未找到库存");
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONArray array = new JSONArray();
|
|
|
+ stockList.forEach(detail -> {
|
|
|
+ detail.put("numberUnit", "件");
|
|
|
+ detail.put("weightUnit", "千克");
|
|
|
+ detail.put("cargoBelong", corp.getfCname());
|
|
|
+ detail.put("inStorageNumber", detail.get("takeVoucher"));
|
|
|
+ detail.put("remainNumber", detail.get("numberLeft"));
|
|
|
+ detail.put("remainWeight", detail.get("weightLeft"));
|
|
|
+ detail.put("electronicTags", warehousebillsitemsElabelMapper.getLabelByPid(wbItem.getfId()));
|
|
|
+
|
|
|
+ JSONObject temp = new JSONObject();
|
|
|
+ json.put("cargo", temp);
|
|
|
+ json.put("result", "Y");
|
|
|
+ array.add(temp);
|
|
|
+ });
|
|
|
+
|
|
|
+ json.put("cargoInResults", array);
|
|
|
+
|
|
|
+ OkHttpClient okHttpClient = new OkHttpClient();
|
|
|
+ Request request = new Request.Builder()
|
|
|
+ .addHeader("content-type", "application/json")
|
|
|
+ .url(CcbConstants.OUT_URL)
|
|
|
+ .post(RequestBody.create(okhttp3.MediaType.parse("application/json; charset=utf-8"), json.toString()))
|
|
|
+ .build();
|
|
|
+
|
|
|
+ String s;
|
|
|
+ try {
|
|
|
+ s = Objects.requireNonNull(okHttpClient.newCall(request).execute().body()).string();
|
|
|
+ } catch (IOException e) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("请求银行反馈异常," + e.getMessage());
|
|
|
+ }
|
|
|
+
|
|
|
+ JSONObject result = JSON.parseObject(s);
|
|
|
+ if (!CcbConstants.SUCCESS.equals(result.getString("result"))) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return AjaxResult.error("请求银行反馈失败," + result.getString("reason"));
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
// 箱型数据
|
|
|
if (StringUtils.isNotNull(tCntr) && !"[]".equals(tCntr)) {
|