diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java index 9c8a06073e..e0e0a7418b 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java @@ -15,10 +15,9 @@ import com.yxt.common.core.result.ResultBean; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.cloud.openfeign.FeignClient; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.ResponseBody; +import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; /** @@ -94,4 +93,9 @@ public interface FinKingDeeFeign { @PostMapping("/draftBdCustomer") @ResponseBody ResultBean> draftBdCustomer(@RequestBody BdCustomer bdCustomer); + + @ApiOperation("使用number查看数据表单") + @GetMapping("/getKingDataInfoByNumber/{formId}/{number}") + @ResponseBody + ResultBean getKingDataInfoByNumber(@PathVariable("formId") String formId, @PathVariable("number") String number); } diff --git a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java index 2f5540e463..a6b93a5442 100644 --- a/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java +++ b/anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java @@ -13,6 +13,7 @@ import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock; import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect; import com.yxt.common.core.result.ResultBean; +import java.util.HashMap; import java.util.List; public class FinKingDeeFeignFallBack @@ -77,4 +78,9 @@ implements FinKingDeeFeign{ return null; } + @Override + public ResultBean getKingDataInfoByNumber(String formId,String number) { + return null; + } + } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java index 14638490a4..fbd798fcdb 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java @@ -30,6 +30,7 @@ import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.HashMap; import java.util.List; @Api(tags = "单据调用金蝶的保存接口") @@ -178,4 +179,12 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign { public ResultBean> draftBdCustomer(@RequestBody BdCustomer bdCustomer) { return bdCustomerService.draftBdCustomer(bdCustomer); } + @ApiOperation("使用number查看数据表单") + @GetMapping("/getKingDataInfoByNumber/{formId}/{number}") + @ResponseBody + @Override + public ResultBean getKingDataInfoByNumber(@PathVariable("formId") String formId,@PathVariable("number") String number) { + return bdCustomerService.getKingDataInfoByNumber(formId,number); + } + } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java index 0fb508dd33..3b42014490 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java @@ -1,11 +1,15 @@ package com.yxt.anrui.fin.biz.kingdee; +import cn.hutool.core.bean.BeanUtil; +import cn.hutool.json.JSONString; +import com.alibaba.fastjson.JSONArray; import com.alibaba.fastjson.JSONObject; import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; import com.yxt.anrui.fin.api.kingdee.KingDeeResult; import com.yxt.common.core.result.ResultBean; import org.slf4j.Logger; import org.slf4j.LoggerFactory; +import org.springframework.context.annotation.Bean; import org.springframework.stereotype.Service; import java.lang.reflect.Field; @@ -32,6 +36,26 @@ public class FinKingDeeService { log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); return listResultBean; } + /** + * 查看审核金蝶的数据接口 + * @param number + * @return + */ + public ResultBean getKingDeeBillDataByNumber(String formId,String number) { + /* String data="{\"formId\":\""+formId+"\"," + + "\"data\":\"{\\\"CreateOrgId\\\":\\\"0\\\",\\\"Number\\\":\\\""+number+"\\\",\\\"Id\\\":\\\"\\\"}\"}"; + KingDeeParams kdp = getKingDeeParams(formId, data); + log.info("kdp:{}", JSONObject.toJSONString(kdp)); + ResultBean> listResultBean = KingDeeSaveSKD.getKingDeeBillDataByNumber(kdp); + log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); + return listResultBean;*/ + String data = getGetKDForNumbers(formId, number); + KingDeeParams kdp = getKingDeeParams(formId, data); + log.info("kdp:{}",JSONObject.toJSONString(kdp)); + ResultBean listResultBean = KingDeeSaveSKD.getKingDeeBillDataByNumber(kdp); + log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); + return listResultBean; + } /** * 调用提交金蝶的数据接口 * @param formId @@ -161,6 +185,16 @@ public class FinKingDeeService { } return resultList; } + /** + * 构造查看接口的数据格式 + * @return + */ + public String getGetKDForNumbers(String formId, String Numbers) { + //2.1.CreateOrgId:创建者组织内码,字符串类型(非必录) + //2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录) + //2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录) + return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Number\\\":\\\""+Numbers+"\\\",\\\"Id\\\":\\\"\\\"}\"}"; + } /** * 构造提交接口的数据格式 * @param resultBean @@ -216,6 +250,10 @@ public class FinKingDeeService { /*{\"PkIds\":\"0\",\"TOrgIds\":\"\",\"IsAutoSubmitAndAudit\":\"false\"}*/ return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"PkIds\\\":\\\""+s+"\\\",\\\"TOrgIds\\\":\\\""+tOrgIds+"\\\",\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}"; } + public ResultBean getKingDataInfoByNumber(String formId,String number) { + ResultBean kingDeeBillDataByNumber = getKingDeeBillDataByNumber(formId, number); + return kingDeeBillDataByNumber; + } /** * 调用金蝶接口的数据格式 */ diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java index 235ae7406e..1ab3504c25 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java @@ -66,6 +66,8 @@ public class KingDeeSaveSKD { private static String Audit_URL = url+"DynamicFormService.Audit.common.kdsvc"; //数据分配接口的地址 private static String Allocate_URL = url+"DynamicFormService.Allocate.common.kdsvc"; + //查看单据接口的地址 + private static String View_URL = url+"DynamicFormService.View.common.kdsvc"; //登录,校验用户的API接口地址 private static String Login_URL = url+"AuthService.ValidateUser.common.kdsvc"; @@ -269,6 +271,50 @@ public class KingDeeSaveSKD { return rb; } + /** + * 查看金蝶数据 + * @param jsonParam + * @return + */ + public static ResultBean getKingDeeBillDataByNumber(FinKingDeeService.KingDeeParams jsonParam) { + ResultBean rb= ResultBean.fireFail(); + // 定义httpClient的实例 + HttpClient httpclient = new DefaultHttpClient(); + /********** 用户登录Begin ************************/ + ResultBean> rb1 = loginKingDeeSystem(httpclient); + if (!rb1.getSuccess()) return rb; + try { + URI save_uri = new URI(View_URL); + HttpPost method = new HttpPost(save_uri); + //采购入库单保存参数 + log.info("jsonParam:{}",JSON.toJSON(jsonParam.getData())); + //StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8"); + StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8"); + log.info(JSON.toJSONString(entity)); + entity.setContentEncoding("UTF-8"); + entity.setContentType("application/json"); + //把成功登录的Session信息传进去,获取连接信息 + method.setHeader(sessionkey, sessionValue); + method.setHeader(aspnetsessionkey, aspnetsessionValue); + //方法参数 + method.setEntity(entity); + HttpResponse result = httpclient.execute(method); + // 请求发送成功,并得到响应 + if (result.getStatusLine().getStatusCode() == 200) { + log.info("请求成功"); + // 读取服务器返回过来的json字符串数据 + String str = EntityUtils.toString(result.getEntity()); + if(StringUtils.isBlank(str)){ + return rb.setMsg("操作失败"); + } + log.info(str); + return rb.success().setData(str); + } + } catch (Exception e) { + e.printStackTrace(); + } + return rb; + } public static ResultBean> loginKingDeeSystem( HttpClient httpclient) { ResultBean > rb= ResultBean.fireFail(); try { @@ -357,10 +403,11 @@ public class KingDeeSaveSKD { JSONObject jr=JSONObject.parseObject(JSON.toJSONString(f)); KingDeeResult kingDeeResult = new KingDeeResult(); kingDeeResult.setDIndex(jr.get("DIndex").toString()); - kingDeeResult.setId(jr.get("Id").toString()); - kingDeeResult.setNumber(jr.get("Number").toString()); + kingDeeResult.setId(jr.get("Id")!=null?jr.get("Id").toString():""); + kingDeeResult.setNumber(jr.get("Number")!=null?jr.get("Number").toString():""); list.add(kingDeeResult); }); return new ResultBean> (aBoolean,"操作成功!","200").setData(list); } + } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java index c7946b3690..6ec3fdc2e5 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java @@ -46,7 +46,7 @@ public class BdSupplierService extends FinKingDeeService { String kingDeeData = BdSupplierCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_); ResultBean> resultBean = saveBill(KingDeeBillId.BD_SUPPLIER.getID(), kingDeeData); - ResultBean> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_CUSTOMER.getID(), resultBean); + ResultBean> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_SUPPLIER.getID(), resultBean); if(!resultBean1.getSuccess()){ log.info("供应商提交失败!"); return rb.setMsg("供应商提交失败!"); @@ -54,7 +54,7 @@ public class BdSupplierService extends FinKingDeeService { log.info("供应商提交成功!"); //String auditKD = getAuditKD(resultBean,KingDeeBillId.BD_CUSTOMER.getID()); - ResultBean> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_CUSTOMER.getID(), resultBean); + ResultBean> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_SUPPLIER.getID(), resultBean); if(!resultBean2.getSuccess()){ log.info("供应商审核失败!"); return rb.setMsg("供应商审核失败!"); @@ -62,7 +62,7 @@ public class BdSupplierService extends FinKingDeeService { log.info("供应商审核成功!"); //String allocate = getAllocate(resultBean1,bdCustomer.getTOrgIds(),KingDeeBillId.BD_CUSTOMER.getID()); - ResultBean> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(),bdSupplier.getTOrgIds(), resultBean1); + ResultBean> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_SUPPLIER.getID(),bdSupplier.getTOrgIds(), resultBean1); if(!resultBean3.getSuccess()){ log.info("供应商分配失败!"); return rb.setMsg("供应商分配失败!"); diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java index 740c6df856..964801889d 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java +++ b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java @@ -1,6 +1,8 @@ package com.yxt.anrui.fin.biz.kingdee.orgorganizations; +import com.alibaba.fastjson.JSONObject; import com.yxt.anrui.fin.api.kingdee.KingDeeBillId; +import com.yxt.anrui.fin.api.kingdee.KingDeeResult; import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations; import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect; import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService; @@ -26,10 +28,23 @@ public class OrgOrganizationsService extends FinKingDeeService { Map map_fEntityModel_= object2Map(orgOrganizations); //准备 物料列表的数据 ForEntryBill String kingDeeData = OrgOrganizationsCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_); - return saveBill(KingDeeBillId.ORG_ORGANIZATIONS.getID(),kingDeeData); + ResultBean> result = saveBill(KingDeeBillId.ORG_ORGANIZATIONS.getID(), kingDeeData); + if (!result.getSuccess()){ + return result; + } + String number = orgOrganizations.getFNumber(); + ResultBean kingDeeBillDataByNumber = getKingDeeBillDataByNumber(KingDeeBillId.ORG_ORGANIZATIONS.getID(), number); + String data = kingDeeBillDataByNumber.getData(); + JSONObject jsonObject = JSONObject.parseObject(data); + JSONObject result1 = (JSONObject) jsonObject.get("Result"); + JSONObject result2 = (JSONObject) result1.get("Result"); + int Id = (int) result2.get("Id"); + + return kingDeeBillDataByNumber.setData(Id+""); } catch (Exception e) { e.printStackTrace(); } return rb; } } + diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/组织机构的参数必填备注.xlsx b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/组织机构的参数必填备注.xlsx index 93ac5c1083..cd8ab096ad 100644 Binary files a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/组织机构的参数必填备注.xlsx and b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/组织机构的参数必填备注.xlsx differ