提交 64e32bc1 authored 作者: inroi's avatar inroi

微调

上级 92b06a0f
......@@ -867,30 +867,25 @@ public class CategoryDao {
return result2;
}
public String addReturnResult02(String KingdeeLogName, String sFormId, String json) {
public String addReturnResult02(String KingdeeLogName, Map<String, Object> data) {
String result2 = null;
JSONObject responseStatus = null;
try {
if (result) {
String content = "{\"IsDeleteEntry\":false,\"IsAutoSubmitAndAudit\":" + IsAutoSubmit + ",\"Model\":" + json + "}";
result2 = client.execute("LQKJ.PushAndSaveWebApi.Stub.CustomWebApiService.PushAndSave,LQKJ.PushAndSaveWebApi.Stub", new Object[]{content}, String.class);
result2 = client.execute("LQKJ.ERPWebApi.Stub.CustomWebApiService.PushAndSave,LQKJ.ERPWebApi.Stub", new Object[]{data}, String.class);
Result saveResult = KingdeeResultParseUtil.parseAddResult(result2);
String Fid = saveResult.getId();
System.out.println(JsonUtil.toString(data));
System.out.println(result2);
//记录修改金蝶云数据的请求和响应信息
KingdeeLogUtil kingdeeLogUtil = new KingdeeLogUtil();
kingdeeLogUtil.KingdeeLog2(content, result2, KingdeeLogName);
//根据手动设置的方式决定提交审核是否和修改分开进行
if (IsAutoSubmit == false && saveResult.getResponseStatus().getIsSuccess() == true) {
String AutoSubmitResult = AutoSubmit(sFormId, Fid, KingdeeLogName);
result2 = AutoSubmitResult;
}
kingdeeLogUtil.KingdeeLog3(JsonUtil.toString(data), result2, KingdeeLogName);
} else {
throw new KingdeeConnectException(loginResult);
}
} catch (KingdeeConnectException e) {
throw new KingdeeConnectException(loginResult);
} catch (Exception e) {
e.printStackTrace();
throw new KingdeeConnectException(KingDeeConstant.URL, baseCommonService);
}
return result2;
......
......@@ -10,6 +10,7 @@ import org.jeecg.modules.iost.ims.entity.Kingdeelog;
import org.jeecg.modules.iost.ims.service.IKingdeelogService;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
import javax.annotation.PostConstruct;
import java.text.SimpleDateFormat;
......@@ -116,6 +117,38 @@ public class KingdeeLogUtil {
}
public void KingdeeLog3(String request, String result, String name) {
//获取该线程的存入的变量,在接口开头添加追加的参数
Map map = ThreadLocalConfig.get();
Kingdeelog kingdeelog = new Kingdeelog();
if (!ObjectUtils.isEmpty(map)) {
long costime = Long.valueOf(map.get("Costime").toString());
kingdeelog.setCostTime(costime);
}
//设置金蝶云请求日志
kingdeelog.setRequest(request);
//设置金蝶云响应日志
kingdeelog.setResponse(result);
//获取result的返回信息的成功状态
kingdeelog.setName(name);
kingdeelog.setOztName(map.get("KingdeeLogOZTName") != null ? map.get("KingdeeLogOZTName").toString() : "");
kingdeelog.setCreatetime(new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(new Date()));
Map<String, Object> temp = JsonUtil.toMap(result, String.class, Object.class);
if (!CollectionUtils.isEmpty(temp)) {
if (map.containsKey("resultCode") && "0000".equals(map.get("resultCode"))) {
kingdeelog.setSynchronization("true");
} else {
kingdeelog.setSynchronization("false");
kingdeelog.setFailReason(String.valueOf(map.get("resultMsg")));
}
} else {
kingdeelog.setSynchronization("false");
kingdeelog.setFailReason(result);
}
KingdeeLogUtil.uploadRooms.kingdeelogService.save(kingdeelog);
}
public void synLog(String logName, String errorMessage) {
Kingdeelog kingdeelog = new Kingdeelog();
kingdeelog.setName(logName);
......
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.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.util.CollectionUtils;
......@@ -22,9 +21,12 @@ public class BillOfMaterialKingDeeApi {
private static final String KING_DEE_LOG_NAME = "生产用料清单";
public String addTwo(List<Map<String, Object>> lists) {
Map<String, Object> stringStringMap = imsToKingDee(lists);
System.out.println(JsonUtil.toString(stringStringMap));
return categoryDao.addReturnResult(KING_DEE_LOG_NAME, FORM_ID, JsonUtil.Mapjson(stringStringMap));
Map<String, Object> data = new LinkedHashMap<>(3);
data.put("FormId", FORM_ID);
data.put("IsInTransaction", true);
data.put("isAutoSubmit", "save");
data.put("Model", imsToKingDee(lists));
return categoryDao.addReturnResult02(KING_DEE_LOG_NAME, data);
}
/**
......@@ -51,13 +53,15 @@ public class BillOfMaterialKingDeeApi {
/**
* 查询行标识
*/
public List<List<Object>> getRowId(String mainCode) {
List<List<Object>> lists = categoryDao.selectByIds("PRD_PPBOM", new LinkedHashMap<String, String>() {{
public List<List<Object>> getRowId(String fid, String mainCode) {
List<List<Object>> lists = categoryDao.select("PRD_PPBOM", new LinkedHashMap<String, String>() {{
//行主键查询产品编码
put("FROWID", "FROWID");
}}, new HashMap<String, String>() {{
put("FID", fid);
put("FMaterialID2.Fnumber", mainCode);
}});
System.out.println(lists);
if (CollectionUtils.isEmpty(lists)) {
return null;
}
......@@ -71,7 +75,7 @@ public class BillOfMaterialKingDeeApi {
public Map<String, Object> imsToKingDee(List<Map<String, Object>> list) {
/* 单据头 */
Map<String, Object> modelMap = new HashMap<>();
Map<String, Object> modelMap = new LinkedHashMap<>();
//生产订单
String[] wplanCode = String.valueOf(list.get(0).get("wplan_code")).split("_");
......@@ -85,7 +89,7 @@ public class BillOfMaterialKingDeeApi {
List<Map<String, Object>> entryList = new ArrayList<>();
for (Map<String, Object> map : list) {
//转换成金蝶云格式
Map<String, Object> fEntityMap = new HashMap<>(10);
Map<String, Object> fEntityMap = new LinkedHashMap<>(10);
//行内码
fEntityMap.put("FEntryID", map.get("erp_sic"));
//物料编码
......@@ -100,15 +104,17 @@ public class BillOfMaterialKingDeeApi {
fEntityMap.put("FNeedQty2", map.get("tn_qty"));
//是否主料(父级行主键)
if ("false".equals(String.valueOf(map.get("is_main")))) {
List<List<Object>> tempList = getRowId(String.valueOf(map.get("main_code")));
if (!tempList.get(0).get(0).toString().contains("Errors") && !CollectionUtils.isEmpty(tempList.get(0))) {
fEntityMap.put("FParentRowId", tempList.get(0).get(0));
List<List<Object>> tempList = getRowId(String.valueOf(modelMap.get("FID")), String.valueOf(map.get("main_code")));
if (tempList != null) {
if (!tempList.get(0).get(0).toString().contains("Errors") && !CollectionUtils.isEmpty(tempList.get(0))) {
fEntityMap.put("FParentRowId", tempList.get(0).get(0));
}
}
}
entryList.add(fEntityMap);
}
modelMap.put("FEntityDetail", entryList);
modelMap.put("FEntity", entryList);
return modelMap;
}
......
......@@ -4,11 +4,12 @@ import com.alibaba.fastjson.JSON;
import org.jeecg.common.exception.kingdeeException;
import org.jeecg.common.util.ThreadLocalConfig;
import org.jeecg.modules.iost.ims.Util.ImsLogUtil;
import org.jeecg.modules.iost.ims.Util.ImsUtil;
import org.jeecg.modules.iost.ims.Util.JsonUtil;
import org.jeecg.modules.iost.ims.kingdeeapi.BillOfMaterialKingDeeApi;
import org.jeecg.modules.iost.ims.service.IBillOfMaterialServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.util.List;
import java.util.Map;
......@@ -33,13 +34,19 @@ public class BillOfMaterialServerImpl implements IBillOfMaterialServer {
new ImsLogUtil().ImsRequestLog(JSON.toJSONString(list), "生产用料清单", "生产用料清单", docType);
String addTwo = billOfMaterialKingDeeApi.addTwo(list);
if (ImsUtil.isError(addTwo)) {
throw new kingdeeException("操作失败!修改失败!", ImsUtil.getMessage(addTwo), docType);
Map<String, Object> map = JsonUtil.toMap(addTwo, String.class, Object.class);
if (CollectionUtils.isEmpty(map)) {
throw new kingdeeException("操作失败!修改失败!", addTwo, docType);
}
if (!CollectionUtils.isEmpty(map) && !"0000".equals(map.get("resultCode"))) {
List<Object> tempList = JsonUtil.toList(JsonUtil.toString(map.get("resultData")), Object.class);
List<String> msgList = tempList.stream().map(m -> JsonUtil.toMap(JsonUtil.toString(m), String.class, Object.class).get("msg").toString()).collect(Collectors.toList());
throw new kingdeeException("操作失败!修改失败!", String.join(", ", msgList), docType);
}
List<Map<String, Object>> addSuccessEntityList = ImsUtil.getSuccessEntity(addTwo);
List<String> numberList = addSuccessEntityList.stream().map(m -> m.get("Number").toString()).collect(Collectors.toList());
return String.join(", ", numberList);
List<Object> tempList = JsonUtil.toList(JsonUtil.toString(map.get("resultData")), Object.class);
List<String> codeList = tempList.stream().map(m -> JsonUtil.toMap(JsonUtil.toString(m), String.class, Object.class).get("code").toString()).collect(Collectors.toList());
return String.join(", ", codeList);
}
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论