提交 13b809e1 authored 作者: inroi's avatar inroi

新增提料分析同步

上级 87f55f17
......@@ -132,7 +132,7 @@ public class WebApi {
@Autowired
IImsProduceOrderReadyService iImsProduceOrderReadyService;
@Autowired
IDeductionFormService deductionFormService;
IImsDeductionFormService deductionFormService;
@Autowired
IImsPurchaseWarehousingService iImsPurchaseWarehousingService;
/**
......
package org.jeecg.modules.iost.ims.kingdeeapi;
import com.alibaba.fastjson.JSON;
import org.jeecg.modules.iost.ims.Dao.CategoryDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.*;
/**
* @author Inori
*/
@Component
public class ImsPickingListKingdeeApi {
private static final String S_FORM_ID = "LQKJ_ContrastRecord";
private Map<String, String> key = new LinkedHashMap<>();
@Autowired
private CategoryDao categoryDao;
public ImsPickingListKingdeeApi() {
/*查询字段*/
/* 单据头实体主键 */
key.put("FID", "FID");
/* 采购编码 */
key.put("F_LQKJ_Purchase", "F_LQKJ_Purchase");
/* 物料编码 */
key.put("F_LQKJ_FMaterial.Fnumber", "F_LQKJ_FMaterial.Fnumber");
/* 要求送货数量 */
key.put("F_LQKJ_PurchaseQty", "F_LQKJ_PurchaseQty");
/* 供应商编码 */
key.put("F_LQKJ_Supplier", "F_LQKJ_Supplier");
/* 分析单 */
key.put("F_LQKJ_NowLack", "F_LQKJ_NowLack");
/* 单位 */
key.put("F_LQKJ_Fstockunitid", "F_LQKJ_Fstockunitid");
/* 采购订单行号 */
key.put("F_LQKJ_PurchaseFsq", "F_LQKJ_PurchaseFsq");
/* 需求日期 */
key.put("F_LQKJ_NeedDate", "F_LQKJ_NeedDate");
/* 源单单号 */
key.put("F_LQKJ_XqBillno", "F_LQKJ_XqBillno");
/* 源单物料 */
key.put("F_LQKJ_XqMaterial", "F_LQKJ_XqMaterial");
}
public List<Map<String, String>> select(Map<String, String> map) {
List<List<Object>> list = categoryDao.select(S_FORM_ID, key, map, "提料分析单");
return pojoToIms(list);
}
/**
* 将查询到的数据封装成本地字段
*/
private List<Map<String, String>> pojoToIms(List<List<Object>> list) {
List<Map<String, String>> result = new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
if (!list.get(0).get(0).toString().contains("Errors")) {
Map<String, String> map = new HashMap<>(15);
map.put("fid", list.get(0).toString());
map.put("poCode", list.get(1).toString());
map.put("mtrlCode", list.get(2).toString());
map.put("deliverableQty", list.get(3).toString());
map.put("supCde", list.get(4).toString());
map.put("supMtrlDtAnalNo", list.get(5).toString());
map.put("mUnit", list.get(6).toString());
map.put("poSeq", list.get(7).toString());
map.put("demandDate", list.get(8).toString());
map.put("sdlNo", list.get(9).toString());
map.put("sdlMtrl", list.get(10).toString());
result.add(map);
} else {
//如果有错误信息则返回
Map<String, Object> map = (Map<String, Object>) list.get(0).get(0);
Object errors = map.get("Errors");
List parse3 = (List) JSON.parse(errors.toString());
Map parse4 = (Map) JSON.parse(parse3.get(0).toString());
Object message = parse4.get("Message");
Map<String, String> salesordermap = new HashMap<>();
salesordermap.put("false", message.toString());
result.add(salesordermap);
}
}
return result;
}
}
......@@ -6,7 +6,7 @@ import java.util.Map;
/**
* @author Inori
*/
public interface IDeductionFormService {
public interface IImsDeductionFormService {
String setData(List<Map<String, Object>> list, String code);
......
package org.jeecg.modules.iost.ims.service;
import org.jeecg.common.system.vo.LoginUser;
/**
* @author Inori
*/
public interface IImsPickingListService {
Boolean synchronization(Object object, LoginUser sysUser);
}
......@@ -50,6 +50,8 @@ public class ISynServiceImpl extends ServiceImpl<SynMapper, Syn> implements ISyn
IImsWmsAllotService wmsAllotService;
@Autowired
IImsImsNestingAnalysisService nestingAnalysisService;
@Autowired
IImsPickingListService iImsPickingListService;
/**
* 查询新更新的记录
......@@ -141,6 +143,9 @@ public class ISynServiceImpl extends ServiceImpl<SynMapper, Syn> implements ISyn
} else if (data.get("formid").equals("PRD_MatchAnalyseBill")) {
logName = "齐套分析同步失败";
success = nestingAnalysisService.synchronization(data.get("dataid"), sysUser);//齐套分析
} else if (data.get("formid").equals("LQKJ_ContrastRecord")) {
logName = "提料分析同步失败";
success = iImsPickingListService.synchronization(data.get("dataid"), sysUser);//提料分析
}
/*//将金蝶云的数据同步该成1 已同步
......
......@@ -2,7 +2,7 @@ package org.jeecg.modules.iost.ims.service.impl;
import org.jeecg.common.util.ThreadLocalConfig;
import org.jeecg.modules.iost.ims.kingdeeapi.DeductionFormKingdeeApi;
import org.jeecg.modules.iost.ims.service.IDeductionFormService;
import org.jeecg.modules.iost.ims.service.IImsDeductionFormService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -13,7 +13,7 @@ import java.util.Map;
* @author Inori
*/
@Service
public class DeductionFormServiceImpl implements IDeductionFormService {
public class ImsDeductionFormServiceImpl implements IImsDeductionFormService {
@Autowired
private DeductionFormKingdeeApi deductionFormKingdeeApi;
......
package org.jeecg.modules.iost.ims.service.impl;
import com.google.api.client.util.ArrayMap;
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.ImsPickingListKingdeeApi;
import org.jeecg.modules.iost.ims.service.IImsPickingListService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Inori
*/
@Service
public class ImsPickingListServiceImpl implements IImsPickingListService {
@Autowired
private IMSApi imsApi;
@Autowired
private ImsPickingListKingdeeApi imsPickingListKingdeeApi;
@Override
public Boolean synchronization(Object object, LoginUser sysUser) {
//追加参数(上下文对象)
String kingDeeLogOZTName = "提料分析";
Map map2 = ThreadLocalConfig.get();
map2.put("KingdeeLogOZTName", kingDeeLogOZTName);
//设置需要同步的主键
Map<String, String> whereMap = new HashMap<>();
whereMap.put("FID", object.toString());
List<Map<String, String>> list = imsPickingListKingdeeApi.select(whereMap);
Boolean flag;
List<Map<String, Object>> imsList = new ArrayList<>();
for (Map<String, String> map : list) {
if (map.containsKey("false")) {
return false;
}
Map<String, Object> imsMap = new ArrayMap<>();
imsMap.put("po_code", map.get("poCode"));
imsMap.put("mtrl_code", map.get("mtrlCode"));
imsMap.put("deliverable_qty", map.get("deliverableQty"));
imsMap.put("sup_code", map.get("supCde"));
imsMap.put("sup_mtrl_dt_anal_no", map.get("supMtrlDtAnalNo"));
imsMap.put("m_unit", map.get("mUnit"));
imsMap.put("po_seq", map.get("poSeq"));
imsMap.put("demand_date", map.get("demandDate"));
imsMap.put("sdl_no", map.get("sdlNo"));
imsMap.put("sdl_mtrl", map.get("sdlMtrl"));
}
//将数据包装成IMS格式
Map<String, Object> map = new HashMap<>();
map.put("docType", "IMS_NESTING_ANALYSIS");
map.put("updateType", "UPDATE");
map.put("data", imsList);
String json = JsonUtil.toString(map);
String result = imsApi.add(json, "提料分析单", "SUP_MTRL_DT_DATA");
//记录IMS日志
flag = new ImsLogUtil().ImsLog(json, result, "提料分析单", "SUP_MTRL_DT_DATA", null);
return flag;
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论