提交 92b06a0f authored 作者: inroi's avatar inroi

微调

上级 bd1c61f8
......@@ -247,9 +247,9 @@ public class CategoryDao {
if (result) {
String content;
if (where != null) {
content = "{\"FormId\":\"" + sFormId + "\"," + Stringkey(key) + Stringwhere(where) + ", \"OrderString\":\"FCreatorId\"" + "}";
content = "{\"FormId\":\"" + sFormId + "\"," + Stringkey(key) + Stringwhere(where) + ", \"OrderString\":\"FCreatorId ASC\"" + "}";
} else {
content = "{\"FormId\":\"" + sFormId + "\"," + Stringkey(key) + ", \"OrderString\":\"FCreatorId\"" + "}";
content = "{\"FormId\":\"" + sFormId + "\"," + Stringkey(key) + ", \"OrderString\":\"FCreatorId ASC\"" + "}";
}
System.out.println("================content==============" + content + "=================content===================");
list = client.executeBillQuery(content);
......@@ -867,6 +867,35 @@ public class CategoryDao {
return result2;
}
public String addReturnResult02(String KingdeeLogName, String sFormId, String json) {
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);
Result saveResult = KingdeeResultParseUtil.parseAddResult(result2);
String Fid = saveResult.getId();
//记录修改金蝶云数据的请求和响应信息
KingdeeLogUtil kingdeeLogUtil = new KingdeeLogUtil();
kingdeeLogUtil.KingdeeLog2(content, result2, KingdeeLogName);
//根据手动设置的方式决定提交审核是否和修改分开进行
if (IsAutoSubmit == false && saveResult.getResponseStatus().getIsSuccess() == true) {
String AutoSubmitResult = AutoSubmit(sFormId, Fid, KingdeeLogName);
result2 = AutoSubmitResult;
}
} else {
throw new KingdeeConnectException(loginResult);
}
} catch (KingdeeConnectException e) {
throw new KingdeeConnectException(loginResult);
} catch (Exception e) {
throw new KingdeeConnectException(KingDeeConstant.URL, baseCommonService);
}
return result2;
}
//提交并且审核
public String AutoSubmit(String sFormId, String Fid, String KingdeeLogName) {
String content = "{\"Ids\":" + Fid + "}";
......
......@@ -147,6 +147,8 @@ public class WebApi {
IImsPayableService iImsPayableService;
@Autowired
IImmediateInventoryService immediateInventoryService;
@Autowired
IBillOfMaterialServer billOfMaterialServer;
/**
* 传入数据到金蝶云
......@@ -302,6 +304,8 @@ public class WebApi {
result = productOutService.setData(request.getData(), request.getDocType());
} else if (request.getDocType().equals("SUP_DEDUCTIONS")) {//扣款单
result = deductionFormService.setData(request.getData(), request.getDocType());
} else if (request.getDocType().equals("BS_MOMN_CHANGE")) {//生产用料清单
result = billOfMaterialServer.setData(request.getData(), request.getDocType());
} else {
//通用下推
result = iImsCommonPushService.setData(request.getData(), request.getDocType());
......
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;
import java.util.*;
/**
* @author Inori
*/
@Component
public class BillOfMaterialKingDeeApi {
@Autowired
private CategoryDao categoryDao;
private static final String FORM_ID = "PRD_PPBOM";
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));
}
/**
* 查询FID
*/
public List<List<Object>> getFid(String temp01, String temp02) {
List<List<Object>> lists = categoryDao.select("PRD_PPBOM", new LinkedHashMap<String, String>() {{
put("FID", "FID");
}}, new HashMap<String, String>() {{
put("FMOBillNO", temp01);
put("FMOEntrySeq", temp02);
}});
if (CollectionUtils.isEmpty(lists)) {
return null;
}
if (lists.isEmpty() || ("").equals(lists.get(0).get(0).toString())) {
return null;
} else if (lists.get(0).get(0).toString().contains("Errors")) {
return null;
}
return lists;
}
/**
* 查询行标识
*/
public List<List<Object>> getRowId(String mainCode) {
List<List<Object>> lists = categoryDao.selectByIds("PRD_PPBOM", new LinkedHashMap<String, String>() {{
//行主键查询产品编码
put("FROWID", "FROWID");
}}, new HashMap<String, String>() {{
put("FMaterialID2.Fnumber", mainCode);
}});
if (CollectionUtils.isEmpty(lists)) {
return null;
}
if (lists.isEmpty() || ("").equals(lists.get(0).get(0).toString())) {
return null;
} else if (lists.get(0).get(0).toString().contains("Errors")) {
return null;
}
return lists;
}
public Map<String, Object> imsToKingDee(List<Map<String, Object>> list) {
/* 单据头 */
Map<String, Object> modelMap = new HashMap<>();
//生产订单
String[] wplanCode = String.valueOf(list.get(0).get("wplan_code")).split("_");
Integer integer = Integer.valueOf(wplanCode[1]);
List<List<Object>> objectList = getFid(wplanCode[0], String.valueOf(integer));
if (objectList != null) {
modelMap.put("FID", objectList.get(0).get(0));
} else {
modelMap.put("FID", null);
}
List<Map<String, Object>> entryList = new ArrayList<>();
for (Map<String, Object> map : list) {
//转换成金蝶云格式
Map<String, Object> fEntityMap = new HashMap<>(10);
//行内码
fEntityMap.put("FEntryID", map.get("erp_sic"));
//物料编码
fEntityMap.put("FMaterialID2", new HashMap<String, Object>(1) {{
put("FNumber", map.get("mtrl_code"));
}});
//用量
fEntityMap.put("FMustQty", map.get("dosage"));
//净需求数量
fEntityMap.put("FStdQty", map.get("nn_qty"));
//实际需求数量
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));
}
}
entryList.add(fEntityMap);
}
modelMap.put("FEntityDetail", entryList);
return modelMap;
}
}
package org.jeecg.modules.iost.ims.service;
import java.util.List;
import java.util.Map;
/**
* @author Inori
*/
public interface IBillOfMaterialServer {
String setData(List<Map<String, Object>> list, String code);
}
package org.jeecg.modules.iost.ims.service.impl;
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.kingdeeapi.BillOfMaterialKingDeeApi;
import org.jeecg.modules.iost.ims.service.IBillOfMaterialServer;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
* @author Inori
*/
@Service
public class BillOfMaterialServerImpl implements IBillOfMaterialServer {
@Autowired
private BillOfMaterialKingDeeApi billOfMaterialKingDeeApi;
@Override
public String setData(List<Map<String, Object>> list, String docType) {
Map map2 = ThreadLocalConfig.get();
map2.put("KingdeeLogOZTName", "生产用料清单");
ThreadLocalConfig.set(map2);
new ImsLogUtil().ImsRequestLog(JSON.toJSONString(list), "生产用料清单", "生产用料清单", docType);
String addTwo = billOfMaterialKingDeeApi.addTwo(list);
if (ImsUtil.isError(addTwo)) {
throw new kingdeeException("操作失败!修改失败!", ImsUtil.getMessage(addTwo), 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);
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论