提交 3dafd39f authored 作者: inroi's avatar inroi

微调

上级 806f971b
......@@ -301,7 +301,6 @@ public class CategoryDao {
List<List<Object>> list = null;
String content = null;
try {
if (result) {
if (where != null) {
content = "{\"FormId\":\"" + sFormId + "\"," + Stringkey(key) + Stringwhere(where) + "}";
......
......@@ -9,10 +9,7 @@ import java.beans.PropertyDescriptor;
import java.io.IOException;
import java.math.BigDecimal;
import java.math.BigInteger;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.*;
/**
* 把不同的数据类型转化成json类型字符串
......@@ -200,4 +197,14 @@ public class JsonUtil {
}
}
public static <K, V> Map<K, V> toMap(String json, Class<K> kClass, Class<V> vClass) {
ObjectMapper MAPPER = new ObjectMapper();
try {
return MAPPER.readValue(json, MAPPER.getTypeFactory().constructMapType(Map.class, kClass, vClass));
} catch (IOException e) {
System.out.println("toMap解析错误,Json: " + json);
return new HashMap<>(10);
}
}
}
\ No newline at end of file
......@@ -33,43 +33,45 @@ public class KingdeeLogUtil {
uploadRooms = this;
uploadRooms.kingdeelogService = this.kingdeelogService;
}
public void KingdeeLog(List<List<Object>> list,String name,String content){
public void KingdeeLog(List<List<Object>> list, String name, String content) {
//获取该线程的存入的变量,在接口开头添加追加的参数
Map map = ThreadLocalConfig.get();
String kingdeeLogOZTName = map.get("KingdeeLogOZTName").toString();
Kingdeelog kingdeelog = new Kingdeelog();
if(!ObjectUtils.isEmpty(map)) {
if (!ObjectUtils.isEmpty(map)) {
long costime = Long.valueOf(map.get("Costime").toString());
kingdeelog.setCostTime(costime);
}
//设置金蝶云请求日志
kingdeelog.setRequest(content);
System.out.println("cccccccccccccccccccccccccccc "+list);
if(!ObjectUtils.isEmpty(list)) {
//设置金蝶云请求日志
kingdeelog.setRequest(content);
System.out.println("cccccccccccccccccccccccccccc " + list);
if (!ObjectUtils.isEmpty(list)) {
kingdeelog.setResponse(JsonUtil.Listjson(list));
}
else
{
} else {
kingdeelog.setFailReason("此单据不存在");
}
kingdeelog.setName(name);
kingdeelog.setName(name);
kingdeelog.setOztName(kingdeeLogOZTName);
kingdeelog.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//获取result的返回信息的成功状态
//查询失败则会有报错
if(ObjectUtils.isEmpty(list)) {
kingdeelog.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
//获取result的返回信息的成功状态
//查询失败则会有报错
if (ObjectUtils.isEmpty(list)) {
kingdeelog.setSynchronization("false");
}
else {
} else {
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 errors = o.get("Errors");
List parse3 = (List) JSON.parse(errors.toString());
String message="";
for(Object mapObeject:parse3){
Map parse4 = (Map) JSON.parse(mapObeject.toString());
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();
}
kingdeelog.setFailReason(message);
......@@ -77,16 +79,16 @@ public class KingdeeLogUtil {
kingdeelog.setSynchronization("true");
}
}
KingdeeLogUtil.uploadRooms.kingdeelogService.save(kingdeelog);//
}
KingdeeLogUtil.uploadRooms.kingdeelogService.save(kingdeelog);//
}
public JSONObject KingdeeLog2(String request,String result,String name){
public JSONObject KingdeeLog2(String request, String result, String name) {
//获取该线程的存入的变量,在接口开头添加追加的参数
Map map = ThreadLocalConfig.get();
String kingdeeLogOZTName = map.get("KingdeeLogOZTName").toString();
Kingdeelog kingdeelog=new Kingdeelog();
if(!ObjectUtils.isEmpty(map)) {
Kingdeelog kingdeelog = new Kingdeelog();
if (!ObjectUtils.isEmpty(map)) {
long costime = Long.valueOf(map.get("Costime").toString());
kingdeelog.setCostTime(costime);
}
......@@ -96,33 +98,31 @@ public class KingdeeLogUtil {
kingdeelog.setResponse(result);
//获取result的返回信息的成功状态
JSONObject jsonObject = JSON.parseObject(result);
JSONObject result1 = (JSONObject)jsonObject.get("Result");
JSONObject responseStatus = (JSONObject)result1.get("ResponseStatus");
JSONObject result1 = (JSONObject) jsonObject.get("Result");
JSONObject responseStatus = (JSONObject) result1.get("ResponseStatus");
List<JSONObject> successEntitys = (List<JSONObject>) responseStatus.get("SuccessEntitys");
Boolean isSuccess = (Boolean)responseStatus.get("IsSuccess");
Boolean isSuccess = (Boolean) responseStatus.get("IsSuccess");
kingdeelog.setName(name);
kingdeelog.setOztName(kingdeeLogOZTName);
kingdeelog.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" ).format(new Date()));
if (isSuccess!= true) {//返回判断
kingdeelog.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
if (isSuccess != true) {//返回判断
kingdeelog.setSynchronization("false");
Result result2 = KingdeeResultParseUtil.parseAddResult(result);
List<ErrorsInside> errors = result2.getResponseStatus().getErrors();
String result3=new String();
String result3 = new String();
for (ErrorsInside error : errors) {
result3=result3+error.getMessage()+"-";
result3 = result3 + error.getMessage() + "-";
}
kingdeelog.setFailReason(result3);
}else {
} else {
kingdeelog.setSynchronization("true");
}
KingdeeLogUtil.uploadRooms.kingdeelogService.save(kingdeelog);
//如果是修改数据就没有SuccessEntitys,就要获取Errors
if(ObjectUtils.isEmpty(successEntitys))
{
if (ObjectUtils.isEmpty(successEntitys)) {
List<JSONObject> Errors = (List<JSONObject>) responseStatus.get("Errors");
return (JSONObject) Errors.get(0);
}else
{
} else {
return (JSONObject) successEntitys.get(0);
}
......@@ -133,9 +133,9 @@ public class KingdeeLogUtil {
kingdeelog.setName(logName);
kingdeelog.setSynchronization("false");
kingdeelog.setFailReason(errorMessage);
kingdeelog.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss" ).format(new Date()));
kingdeelog.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
Map map = ThreadLocalConfig.get();
if(!ObjectUtils.isEmpty(map)) {
if (!ObjectUtils.isEmpty(map)) {
long costime = Long.valueOf(map.get("Costime").toString());
kingdeelog.setCostTime(costime);
}
......
......@@ -152,7 +152,7 @@ public class WebApi {
return Result.fail("操作失败", "查询参数不能全为空", request.getDocType());
}
Map<String, String> data = null;
Map<String, Object> data = null;
//采购入库单
if ("STK_InStock".equals(request.getDocType())) {
data = iImsPurchaseWarehousingService.getData(request.getData());
......
package org.jeecg.modules.iost.ims.kingdeeapi;
import com.alibaba.fastjson.JSON;
import org.jeecg.modules.iost.ims.Dao.CategoryDao;
import org.jeecg.modules.iost.ims.Util.JsonUtil;
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
......@@ -17,7 +18,7 @@ public class PurchaseWarehousingKingdeeApi {
@Autowired
private CategoryDao categoryDao;
private static final String S_FORM_ID = "PRD_MO";
private static final String S_FORM_ID = "STK_InStock";
private Map<String, String> key = new LinkedHashMap<>();
......@@ -66,7 +67,7 @@ public class PurchaseWarehousingKingdeeApi {
/**
* 获取金蝶云数据
*/
public List<Map<String, String>> selectAndLog(Map<String, String> map, String name) {
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);
}
......@@ -87,20 +88,60 @@ public class PurchaseWarehousingKingdeeApi {
return lists;
}
List<Map<String, String>> purchaseWarehousing(List<List<Object>> list) {
List<Map<String, String>> result = new ArrayList<>();
if (!list.get(0).get(0).toString().contains("Errors")) {
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());
} else {
//如果有错误信息则返回
Map<String, Object> o = (Map<String, Object>) list.get(0).get(0);
Object errors = o.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);
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_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("WAREHOUSING_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> 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.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);
}
}
return result;
}
......
......@@ -7,7 +7,7 @@ import java.util.Map;
*/
public interface IImsPurchaseWarehousingService {
Map<String, String> getData(Map<String, Object> map);
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.PurchaseWarehousingKingdeeApi;
import org.jeecg.modules.iost.ims.service.IImsPurchaseWarehousingService;
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;
......@@ -22,9 +24,14 @@ public class ImsPurchaseWarehousingServiceImpl implements IImsPurchaseWarehousin
@Override
public Map<String, String> getData(Map<String, Object> map) {
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), "采购入库", "采购入库查询", "STK_InStock");
new ImsLogUtil().ImsRequestLog(JsonUtil.toString(map), "采购入库", "采购入库查询", "STK_InStock");
Map<String, String> keyMap = new HashMap<>(4);
if (map.containsKey("FBillNo")) {
......@@ -39,10 +46,18 @@ public class ImsPurchaseWarehousingServiceImpl implements IImsPurchaseWarehousin
if (map.containsKey("FMaterialId")) {
keyMap.put("FMaterialId.Fumber", map.get("FMaterialId").toString());
}
List<Map<String, String>> list = purchaseWarehousingKingdeeApi.selectAndLog(keyMap, "");
List<Map<String, Object>> list = purchaseWarehousingKingdeeApi.selectAndLog(keyMap, "采购入库查询");
Map<String, String> result = new HashMap<>();
result.put("true", JsonUtil.toString(list));
Map<String, Object> result = new HashMap<>();
if (!CollectionUtils.isEmpty(list)) {
if (list.get(0).containsKey("false")) {
result.put("false", JsonUtil.toString(list.get(0).get("false")));
} else {
result.put("true", list);
}
} else {
result.put("true", list);
}
return result;
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论