提交 45bf8344 authored 作者: inroi's avatar inroi

微调

上级 ec2250af
......@@ -145,6 +145,9 @@ public class WebApi {
IImsCommonPushService iImsCommonPushService;
@Autowired
IImsPayableService iImsPayableService;
@Autowired
IImmediateInventoryService immediateInventoryService;
/**
* 传入数据到金蝶云
*
......@@ -170,6 +173,9 @@ public class WebApi {
} else if ("PUR_MRB".equals(request.getDocType())) {
//采购退货单
data = iImsPurchaseReturnService.getData(request.getData());
} else if ("STK_Inventory".equals(request.getDocType())) {
//采购退货单
data = immediateInventoryService.getData(request.getData());
} else {
return Result.fail("操作失败", request.getDocType() + "不存在!", request.getDocType());
}
......
......@@ -27,15 +27,21 @@ public class ImmediateInventoryKingdeeApi {
/* 单据头实体主键 */
key.put("FID", "FID");
/* 库存组织 */
key.put("STK_Inventory.FNumber", "STK_Inventory.FNumber");
key.put("FStockOrgId.FNumber", "FStockOrgId.FNumber");
/* 物料编码 */
key.put("FMaterialId.FNumber", "FMaterialId.FNumber");
/* 物料名称 */
key.put("FMaterialName", "FMaterialName");
/* 库存量(主单位) */
key.put("FQty", "FQty");
/* 库存量(基本单位) */
key.put("FBaseQty", "FBaseQty");
/* 仓库编码 */
key.put("FStockId.Fnumber", "FStockId.Fnumber");
}
public List<Map<String, Object>> select(Map<String, String> map) {
List<List<Object>> list = categoryDao.select(S_FORM_ID, key, map, "即时库存");
public List<Map<String, Object>> selectAndLog(Map<String, String> map, String kingDeeLogName) {
List<List<Object>> list = categoryDao.select(S_FORM_ID, key, map, kingDeeLogName);
return pojoToIms(list);
}
......@@ -47,21 +53,23 @@ public class ImmediateInventoryKingdeeApi {
if (!CollectionUtils.isEmpty(list)) {
if (!list.get(0).get(0).toString().contains("Errors")) {
for (List<Object> objectList : list) {
Map<String, Object> map = new HashMap<>();
Map<String, Object> map = new HashMap<>(5);
map.put("fid", objectList.get(0));
map.put("orgId", objectList.get(1));
map.put("mtrlCode", objectList.get(2));
map.put("stockQty", objectList.get(3));
map.put("org_id", objectList.get(1));
map.put("mtrl_code", objectList.get(2));
map.put("mtrl_name", objectList.get(3));
map.put("qty", objectList.get(4));
map.put("f_qty", objectList.get(5));
map.put("stock_code", objectList.get(6));
result.add(map);
}
} else {
//如果有错误信息则返回
String message = ImsUtil.getMessage(list.get(0).get(0));
Map<String, Object> salesordermap = new HashMap<>();
salesordermap.put("false", message);
result.add(salesordermap);
Map<String, Object> temp = new HashMap<>(2);
temp.put("false", message);
result.add(temp);
}
}
return result;
......
package org.jeecg.modules.iost.ims.service;
import org.jeecg.common.system.vo.LoginUser;
import java.util.Map;
/**
* @author Inori
*/
public interface IImmediateInventoryService {
Boolean synchronization(Object dataId, Object formId, LoginUser sysUser);
/**
* 即时库存查询
*
* @param map 条件
* @return 结果
*/
Map<String, Object> getData(Map<String, Object> map);
}
......@@ -54,8 +54,6 @@ public class ISynServiceImpl extends ServiceImpl<SynMapper, Syn> implements ISyn
IImsPickingListService iImsPickingListService;
@Autowired
IImsCommonSynService iImsCommonSynService;
@Autowired
IImmediateInventoryService immediateInventoryService;
/**
* 查询新更新的记录
......@@ -150,9 +148,6 @@ public class ISynServiceImpl extends ServiceImpl<SynMapper, Syn> implements ISyn
}*/ else if (data.get("formid").equals("LQKJ_ContrastRecord")) {
logName = "提料分析同步失败";
success = iImsPickingListService.synchronization(data.get("dataid"), data.get("formid"), sysUser);//提料分析
} else if (data.get("formid").equals("STK_Inventory")) {
logName = "即时库存同步失败";
success = immediateInventoryService.synchronization(data.get("dataid"), data.get("formid"), sysUser);//提料分析
} else {
logName = data.get("dataid") + "同步失败";
success = iImsCommonSynService.synchronization(data.get("dataid"), sysUser);//通用同步
......@@ -268,9 +263,6 @@ public class ISynServiceImpl extends ServiceImpl<SynMapper, Syn> implements ISyn
}*/ else if (data.get("formid").equals("LQKJ_ContrastRecord")) {
logName = "提料分析同步失败";
success = iImsPickingListService.synchronization(data.get("dataid"), data.get("formid"), sysUser);//提料分析
} else if (data.get("formid").equals("STK_Inventory")) {
logName = "即时库存同步失败";
success = immediateInventoryService.synchronization(data.get("dataid"), data.get("formid"), sysUser);//提料分析
} else {
logName = data.get("dataid") + "同步失败";
success = iImsCommonSynService.synchronization(data.get("dataid"), sysUser);//通用同步
......
package org.jeecg.modules.iost.ims.service.impl;
import org.jeecg.common.system.vo.LoginUser;
import org.jeecg.common.util.ThreadLocalConfig;
import org.jeecg.modules.iost.ims.ExternalInterface.IMSApi;
import org.jeecg.modules.iost.ims.Util.ImsLogUtil;
import org.jeecg.modules.iost.ims.Util.JsonUtil;
import org.jeecg.modules.iost.ims.kingdeeapi.ImmediateInventoryKingdeeApi;
import org.jeecg.modules.iost.ims.service.IImmediateInventoryService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
......@@ -22,48 +20,45 @@ import java.util.Map;
public class ImmediateInventoryServiceImpl implements IImmediateInventoryService {
@Autowired
private IMSApi imsApi;
@Autowired
private ImmediateInventoryKingdeeApi immediateInventoryKingdeeApi;
@Override
public Boolean synchronization(Object dataId, Object formId, LoginUser sysUser) {
//追加参数(上下文对象)
String kingDeeLogOZTName = "即时库存";
public Map<String, Object> getData(Map<String, Object> map) {
Map<String, Object> result = new HashMap<>(1);
String kingDeeLogOZTName = "即时库存查询";
Map map2 = ThreadLocalConfig.get();
map2.put("KingdeeLogOZTName", kingDeeLogOZTName);
//设置需要同步的主键
Map<String, String> whereMap = new HashMap<>();
whereMap.put("FID", dataId.toString());
List<Map<String, Object>> list = immediateInventoryKingdeeApi.select(whereMap);
//记录IMS日志
new ImsLogUtil().ImsRequestLog(JsonUtil.toString(map), "即时库存", "即时库存查询", "STK_Inventory");
Boolean flag;
List<Map<String, Object>> imsList = new ArrayList<>();
for (Map<String, Object> map : list) {
if (map.containsKey("false")) {
return false;
}
Map<String, String> whereMap = new HashMap<>(4);
if (map.containsKey("MTRL_CODE")) {
whereMap.put("FMaterialId.Fnumber", String.valueOf(map.get("MTRL_CODE")));
}
if (map.containsKey("MTRL_NAME")) {
whereMap.put("FMaterialName", String.valueOf(map.get("MTRL_NAME")));
}
Map<String, Object> imsMap = new HashMap<>(11);
imsMap.put("org_id", map.get("orgId"));
imsMap.put("mtrl_code", map.get("mtrlCode"));
imsMap.put("stock_qty", map.get("stockQty"));
imsList.add(imsMap);
if (CollectionUtils.isEmpty(whereMap)) {
result.put("false", "查询参数不能全为空");
return result;
}
List<Map<String, Object>> list = immediateInventoryKingdeeApi.selectAndLog(whereMap, "即时库存查询");
//将数据包装成IMS格式
Map<String, Object> map = new HashMap<>(3);
map.put("docType", "BS_MTRL_STOCK");
map.put("updateType", "UPDATE");
map.put("data", imsList);
String json = JsonUtil.toString(map);
String result = imsApi.add(json, "即时库存", "BS_MTRL_STOCK");
//记录IMS日志
flag = new ImsLogUtil().ImsLog(json, result, "即时库存", "BS_MTRL_STOCK", null);
return flag;
if (!CollectionUtils.isEmpty(list)) {
if (list.get(0).containsKey("false")) {
result.put("false", list.get(0).get("false"));
} else {
result.put("true", list);
}
} else {
result.put("true", list);
}
return result;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论