提交 528c7c20 authored 作者: inroi's avatar inroi

微调

上级 21bd6a7b
package org.jeecg.modules.iost.ims.Util;
import java.util.LinkedHashMap;
import java.util.List;
import java.util.Map;
/**
* 将数据封装成IMS需要的格式
* @author Lnori
*/
public class ImsUtil {
public static String getIms( String code,String mapjson) {
Map<String, Object> map = new LinkedHashMap<>();
map.put("DocType",code);
map.put("InputDTOXml", mapjson);
map.put("UpdateType", "INSERT");
String xml = XmlUtil.mapToXml(map);
return xml;
public static String getMessage(Object object) {
Map<String, Object> map = JsonUtil.toMap(JsonUtil.toString(object), String.class, Object.class);
String result = JsonUtil.toString(map.get("Result"));
Map<String, Object> toMap = JsonUtil.toMap(result, String.class, Object.class);
String responseStatus = JsonUtil.toString(toMap.get("ResponseStatus"));
Map<String, Object> objectMap = JsonUtil.toMap(responseStatus, String.class, Object.class);
List<Object> errorList = JsonUtil.toList(JsonUtil.toString(objectMap.get("Errors")), Object.class);
StringBuilder message = new StringBuilder();
for (Object obj : errorList) {
Map<String, Object> parse4 = JsonUtil.toMap(JsonUtil.toString(obj), String.class, Object.class);
message.append(parse4.get("Message").toString());
}
return message.toString();
}
}
......@@ -59,27 +59,17 @@ public class KingdeeLogUtil {
if (ObjectUtils.isEmpty(list)) {
kingdeelog.setSynchronization("false");
} else {
if (list.get(0).get(0).toString().contains("Errors")) {//返回判断
//返回判断
if (list.get(0).get(0).toString().contains("Errors")) {
kingdeelog.setSynchronization("false");
//如果有错误信息则返回
Map<String, Object> o = (Map<String, Object>) list.get(0).get(0);
Object result = o.get("Result");
String str = JsonUtil.toString(result);
Map<String, Object> toMap = JsonUtil.toMap(str, String.class, Object.class);
String responseStatus = JsonUtil.toString(toMap.get("ResponseStatus"));
Map<String, Object> objectMap = JsonUtil.toMap(responseStatus, String.class, Object.class);
List<Object> errorList = JsonUtil.toList(JsonUtil.toString(objectMap.get("Errors")), Object.class);
String message = "";
for (Object mapObeject : errorList) {
Map<String, Object> parse4 = JsonUtil.toMap(JsonUtil.toString(mapObeject), String.class, Object.class);
message = message + parse4.get("Message").toString();
}
String message = ImsUtil.getMessage(list.get(0).get(0));
kingdeelog.setFailReason(message);
} else {
kingdeelog.setSynchronization("true");
}
}
KingdeeLogUtil.uploadRooms.kingdeelogService.save(kingdeelog);//
KingdeeLogUtil.uploadRooms.kingdeelogService.save(kingdeelog);
}
......@@ -136,7 +126,7 @@ public class KingdeeLogUtil {
kingdeelog.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
Map map = ThreadLocalConfig.get();
if (!ObjectUtils.isEmpty(map)) {
long costime = Long.valueOf(map.get("Costime").toString());
long costime = Long.parseLong(map.get("Costime").toString());
kingdeelog.setCostTime(costime);
}
KingdeeLogUtil.uploadRooms.kingdeelogService.save(kingdeelog);
......
......@@ -135,6 +135,8 @@ public class WebApi {
IImsDeductionFormService deductionFormService;
@Autowired
IImsPurchaseWarehousingService iImsPurchaseWarehousingService;
@Autowired
IImsPurchaseReturnService iImsPurchaseReturnService;
/**
* 传入数据到金蝶云
*
......@@ -152,14 +154,14 @@ public class WebApi {
return Result.fail("操作失败", "查询参数不能全为空", request.getDocType());
}
Map<String, Object> data = null;
Map<String, Object> data = new HashMap<>();
//采购入库单
if ("STK_InStock".equals(request.getDocType())) {
data = iImsPurchaseWarehousingService.getData(request.getData());
}
//采购退货单
if ("PO".equals(request.getDocType())) {
//data = iImsPoService.getData(request.getData());
if ("PUR_MRB".equals(request.getDocType())) {
data = iImsPurchaseReturnService.getData(request.getData());
}
if (data.containsKey("false")) {
......
package org.jeecg.modules.iost.ims.kingdeeapi;
import org.jeecg.modules.iost.ims.Dao.CategoryDao;
import org.jeecg.modules.iost.ims.Util.ImsUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import java.util.*;
import java.util.stream.Collectors;
/**
* @author Inori
*/
@Component
public class PurchaseReturnKingdeeApi {
@Autowired
private CategoryDao categoryDao;
private static final String S_FORM_ID = "PUR_MRB";
private Map<String, String> key = new LinkedHashMap<>();
public PurchaseReturnKingdeeApi() {
/*查询字段*/
/* 单据头实体主键 */
key.put("FID", "FID");
/* 单据编号 */
key.put("FBillNo", "FBillNo");
/* 单据类型 */
key.put("FBillTypeID.Fname", "FBillTypeID.Fname");
/* 行号 */
key.put("FPURMRBENTRY_FSeq", "FPURMRBENTRY_FSeq");
/* 供应商 */
key.put("FSupplierId.Fnumber", "FSupplierId.Fnumber");
/* 退料时间 */
key.put("FDate", "FDate");
/* 税额 */
key.put("FBillTaxAmount", "FBillTaxAmount");
/* 未税金额 */
key.put("FBillAmount", "FBillAmount");
/* 含税否 */
key.put("FIsIncludedTax", "FIsIncludedTax");
/* 汇率 */
key.put("FExchangeRate", "FExchangeRate");
/* 税价合计 */
key.put("FBillAllAmount", "FBillAllAmount");
/* 付款条件 */
key.put("FPayConditionId.Fname", "FPayConditionId.Fname");
/* 结算币别 */
key.put("FSettleCurrId.Fname", "FSettleCurrId.Fname");
/* 结算方式 */
key.put("FSettleTypeId.Fname", "FSettleTypeId.Fname");
/* 物料编码 */
key.put("FMaterialId.Fnumber", "FMaterialId.Fnumber");
/* 实退数量 */
key.put("FRMREALQTY", "FRealQty");
/* 单价 */
key.put("FPrice", "FPrice");
/* 含税单价 */
key.put("FTaxPrice", "FTaxPrice");
/* 库存单位 */
key.put("FUnitID.Fname", "FUnitID.Fname");
/* 采购订单分录内码 */
key.put("FPOORDERENTRYID", "FPOORDERENTRYID");
}
/**
* 获取金蝶云数据
*/
public List<Map<String, Object>> selectAndLog(Map<String, String> map, String name) {
List<List<Object>> list = categoryDao.selectAndLog(S_FORM_ID, key, map, name);
return purchaseWarehousing(list);
}
/**
* 查询采购订单编号+行号
*/
public List<List<Object>> getPurchaseOrder(String id) {
List<List<Object>> list = categoryDao.select("PUR_PurchaseOrder", new LinkedHashMap<String, String>() {{
put("FBillNo", "FBillNo");
put("FPOOrderEntry_FSeq", "FPOOrderEntry_FSeq");
}}, new HashMap<String, String>() {{
put("FPOOrderEntry_FEntryID", id);
}});
if (CollectionUtils.isEmpty(list)) {
return new ArrayList<>();
}
return list;
}
List<Map<String, Object>> purchaseWarehousing(List<List<Object>> list) {
List<Map<String, Object>> result = new ArrayList<>();
if (!CollectionUtils.isEmpty(list)) {
if (!list.get(0).get(0).toString().contains("Errors")) {
List<String> codeList = list.stream().map(m -> m.get(1).toString()).distinct().collect(Collectors.toList());
for (String code : codeList) {
List<List<Object>> collect = list.stream().filter(m -> code.equals(m.get(1).toString())).collect(Collectors.toList());
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> mapList = new ArrayList<>();
for (List<Object> objectList : collect) {
map.put("RETURN_MATERIAL_CODE", objectList.get(1));
map.put("RETURN_MATERIAL_TYPE", String.valueOf(objectList.get(2)));
map.put("SUPPLIER_CODE", String.valueOf(objectList.get(4)));
map.put("RETURN_MATERIAL_DATE", String.valueOf(objectList.get(5)));
map.put("TAX_AMOUNT", String.valueOf(objectList.get(6)));
map.put("AMOUNT", String.valueOf(objectList.get(7)));
map.put("TAX_INCLUDED", String.valueOf(objectList.get(8)));
map.put("EXCHANGE_RATE", String.valueOf(objectList.get(9)));
map.put("ALL_AMOUNT", String.valueOf(objectList.get(10)));
map.put("PAYMENT_TERMS", String.valueOf(objectList.get(11)));
map.put("CURRENCY", String.valueOf(objectList.get(12)));
map.put("SETTLEMENT_METHOD", String.valueOf(objectList.get(13)));
Map<String, Object> detailedMap = new HashMap<>(7);
detailedMap.put("RETURN_MATERIAL_NO", objectList.get(1) + "_" + objectList.get(3));
detailedMap.put("MATERIAL_CODE", String.valueOf(objectList.get(14)));
detailedMap.put("ACTUAL_RETURNED_QTY", String.valueOf(objectList.get(15)));
detailedMap.put("PRICE", String.valueOf(objectList.get(16)));
detailedMap.put("TAX_PRICE", String.valueOf(objectList.get(17)));
detailedMap.put("UNIT", String.valueOf(objectList.get(18)));
List<List<Object>> tempList = getPurchaseOrder(String.valueOf(objectList.get(19)));
if (!CollectionUtils.isEmpty(tempList)) {
String purchaseBatchNumber = tempList.get(0).get(0).toString() + "_" + tempList.get(0).get(1).toString();
detailedMap.put("PURCHASE_BATCH_NUMBER", purchaseBatchNumber);
}
mapList.add(detailedMap);
}
map.put("RECORDS", mapList);
result.add(map);
}
} else {
//如果有错误信息则返回
String message = ImsUtil.getMessage(list.get(0).get(0));
Map<String, Object> resultMap = new HashMap<>(1);
resultMap.put("false", message);
result.add(resultMap);
}
}
return result;
}
}
package org.jeecg.modules.iost.ims.kingdeeapi;
import org.jeecg.modules.iost.ims.Dao.CategoryDao;
import org.jeecg.modules.iost.ims.Util.JsonUtil;
import org.jeecg.modules.iost.ims.Util.ImsUtil;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......@@ -62,6 +62,8 @@ public class PurchaseWarehousingKingdeeApi {
key.put("FTaxPrice", "FTaxPrice");
/* 库存单位 */
key.put("FUnitID.Fname", "FUnitID.Fname");
/* 采购订单分录内码 */
key.put("FPOORDERENTRYID", "FPOORDERENTRYID");
}
/**
......@@ -76,16 +78,16 @@ public class PurchaseWarehousingKingdeeApi {
* 查询采购订单编号+行号
*/
public List<List<Object>> getPurchaseOrder(String id) {
List<List<Object>> lists = categoryDao.select("PRD_PPBOM", new LinkedHashMap<String, String>() {{
put("FPOOrderEntry_FSeq", "FPOOrderEntry_FSeq");
List<List<Object>> list = categoryDao.select("PUR_PurchaseOrder", new LinkedHashMap<String, String>() {{
put("FBillNo", "FBillNo");
put("FPOOrderEntry_FSeq", "FPOOrderEntry_FSeq");
}}, new HashMap<String, String>() {{
put("FPOOrderEntry_FEntryID", id);
}});
if (CollectionUtils.isEmpty(lists)) {
if (CollectionUtils.isEmpty(list)) {
return new ArrayList<>();
}
return lists;
return list;
}
List<Map<String, Object>> purchaseWarehousing(List<List<Object>> list) {
......@@ -99,10 +101,9 @@ public class PurchaseWarehousingKingdeeApi {
Map<String, Object> map = new HashMap<>();
List<Map<String, Object>> mapList = new ArrayList<>();
for (List<Object> objectList : collect) {
map.put("WAREHOUSING_CODE", String.valueOf(objectList.get(1)));
map.put("WAREHOUSING_CODE", objectList.get(1));
map.put("WAREHOUSING_TYPE", String.valueOf(objectList.get(2)));
map.put("WAREHOUSING_FSEQ", String.valueOf(objectList.get(3)));
map.put("SUP_CODE", String.valueOf(objectList.get(4)));
map.put("SUPPLIER_CODE", String.valueOf(objectList.get(4)));
map.put("WAREHOUSING_DATE", String.valueOf(objectList.get(5)));
map.put("TAX_AMOUNT", String.valueOf(objectList.get(6)));
map.put("AMOUNT", String.valueOf(objectList.get(7)));
......@@ -113,34 +114,30 @@ public class PurchaseWarehousingKingdeeApi {
map.put("CURRENCY", String.valueOf(objectList.get(12)));
map.put("SETTLEMENT_METHOD", String.valueOf(objectList.get(13)));
Map<String, Object> map1 = new HashMap<>();
map1.put("MATERIAL_CODE", String.valueOf(objectList.get(14)));
map1.put("F_QTY", String.valueOf(objectList.get(15)));
map1.put("PRICE", String.valueOf(objectList.get(16)));
map1.put("TAX_PRICE", String.valueOf(objectList.get(17)));
map1.put("UNIT", String.valueOf(objectList.get(18)));
mapList.add(map1);
Map<String, Object> detailedMap = new HashMap<>(7);
detailedMap.put("WAREHOUSING_NO", objectList.get(1) + "_" + objectList.get(3));
detailedMap.put("MATERIAL_CODE", String.valueOf(objectList.get(14)));
detailedMap.put("RECEIVED_QTY", String.valueOf(objectList.get(15)));
detailedMap.put("PRICE", String.valueOf(objectList.get(16)));
detailedMap.put("TAX_PRICE", String.valueOf(objectList.get(17)));
detailedMap.put("UNIT", String.valueOf(objectList.get(18)));
List<List<Object>> tempList = getPurchaseOrder(String.valueOf(objectList.get(19)));
if (!CollectionUtils.isEmpty(tempList)) {
String purchaseBatchNumber = tempList.get(0).get(0).toString() + "_" + tempList.get(0).get(1).toString();
detailedMap.put("PURCHASE_BATCH_NUMBER", purchaseBatchNumber);
}
mapList.add(detailedMap);
}
map.put("records", mapList);
map.put("RECORDS", mapList);
result.add(map);
}
} else {
//如果有错误信息则返回
Map<String, Object> o = (Map<String, Object>) list.get(0).get(0);
Object resultStr = o.get("Result");
String str = JsonUtil.toString(resultStr);
Map<String, Object> toMap = JsonUtil.toMap(str, String.class, Object.class);
String responseStatus = JsonUtil.toString(toMap.get("ResponseStatus"));
Map<String, Object> objectMap = JsonUtil.toMap(responseStatus, String.class, Object.class);
List<Object> errorList = JsonUtil.toList(JsonUtil.toString(objectMap.get("Errors")), Object.class);
String message = "";
for (Object mapObeject : errorList) {
Map<String, Object> parse4 = JsonUtil.toMap(JsonUtil.toString(mapObeject), String.class, Object.class);
message = message + parse4.get("Message").toString();
}
Map<String, Object> salesordermap = new HashMap<>();
salesordermap.put("false", message);
result.add(salesordermap);
String message = ImsUtil.getMessage(list.get(0).get(0));
Map<String, Object> resultMap = new HashMap<>(1);
resultMap.put("false", message);
result.add(resultMap);
}
}
return result;
......
package org.jeecg.modules.iost.ims.service;
import java.util.Map;
/**
* @author Inori
*/
public interface IImsPurchaseReturnService {
/**
* 采购退料查询
*
* @param map 条件
* @return 返回结果
*/
Map<String, Object> getData(Map<String, Object> map);
}
......@@ -7,6 +7,12 @@ import java.util.Map;
*/
public interface IImsPurchaseWarehousingService {
/**
* 采购入库查询
*
* @param map 条件
* @return 返回结果
*/
Map<String, Object> getData(Map<String, Object> map);
......
package org.jeecg.modules.iost.ims.service.impl;
import org.jeecg.common.util.ThreadLocalConfig;
import org.jeecg.modules.iost.ims.Util.ImsLogUtil;
import org.jeecg.modules.iost.ims.Util.JsonUtil;
import org.jeecg.modules.iost.ims.kingdeeapi.PurchaseReturnKingdeeApi;
import org.jeecg.modules.iost.ims.service.IImsPurchaseReturnService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* @author Inori
*/
@Service
public class ImsPurchaseReturnServiceImpl implements IImsPurchaseReturnService {
@Autowired
private PurchaseReturnKingdeeApi purchaseReturnKingdeeApi;
@Override
public Map<String, Object> getData(Map<String, Object> map) {
String kingDeeLogOZTName = "采购退料查询";
Map map2 = ThreadLocalConfig.get();
map2.put("KingdeeLogOZTName", kingDeeLogOZTName);
//记录IMS日志
new ImsLogUtil().ImsRequestLog(JsonUtil.toString(map), "采购退料", "采购退料查询", "PUR_MRB");
Map<String, String> whereMap = new HashMap<>(4);
if (map.containsKey("RETURN_MATERIAL_NO")) {
whereMap.put("FBillNo", map.get("RETURN_MATERIAL_NO").toString());
}
if (map.containsKey("SUPPLIER_CODE")) {
whereMap.put("FSupplierId.Fnumber", map.get("SUPPLIER_CODE").toString());
}
if (map.containsKey("RETURN_MATERIAL_DATE")) {
whereMap.put("FDate", map.get("RETURN_MATERIAL_DATE").toString());
}
if (map.containsKey("MATERIAL_CODE")) {
whereMap.put("FMaterialId.Fumber", map.get("MATERIAL_CODE").toString());
}
List<Map<String, Object>> list = purchaseReturnKingdeeApi.selectAndLog(whereMap, "采购退料查询");
Map<String, Object> result = new HashMap<>(1);
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;
}
}
......@@ -33,25 +33,26 @@ public class ImsPurchaseWarehousingServiceImpl implements IImsPurchaseWarehousin
//记录IMS日志
new ImsLogUtil().ImsRequestLog(JsonUtil.toString(map), "采购入库", "采购入库查询", "STK_InStock");
Map<String, String> keyMap = new HashMap<>(4);
if (map.containsKey("FBillNo")) {
keyMap.put("FBillNo", map.get("FBillNo").toString());
Map<String, String> whereMap = new HashMap<>(4);
if (map.containsKey("WAREHOUSE_NO")) {
whereMap.put("FBillNo", map.get("WAREHOUSE_NO").toString());
}
if (map.containsKey("FSupplierId")) {
keyMap.put("FSupplierId.Fnumber", map.get("FSupplierId").toString());
if (map.containsKey("SUPPLIER_CODE")) {
whereMap.put("FSupplierId.Fnumber", map.get("SUPPLIER_CODE").toString());
}
if (map.containsKey("FDate")) {
keyMap.put("FDate", map.get("FDate").toString());
if (map.containsKey("WAREHOUSING_DATE")) {
whereMap.put("FDate", map.get("WAREHOUSING_DATE").toString());
}
if (map.containsKey("FMaterialId")) {
keyMap.put("FMaterialId.Fumber", map.get("FMaterialId").toString());
if (map.containsKey("MATERIAL_CODE")) {
whereMap.put("FMaterialId.Fumber", map.get("MATERIAL_CODE").toString());
}
List<Map<String, Object>> list = purchaseWarehousingKingdeeApi.selectAndLog(keyMap, "采购入库查询");
//金蝶数据查询
List<Map<String, Object>> list = purchaseWarehousingKingdeeApi.selectAndLog(whereMap, "采购入库查询");
Map<String, Object> result = new HashMap<>();
Map<String, Object> result = new HashMap<>(1);
if (!CollectionUtils.isEmpty(list)) {
if (list.get(0).containsKey("false")) {
result.put("false", JsonUtil.toString(list.get(0).get("false")));
result.put("false", list.get(0).get("false"));
} else {
result.put("true", list);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论