Browse Source

完善金蝶接口的对接的功能

master
yxt_djz 3 years ago
parent
commit
f05a32fc72
  1. 68
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java
  2. 34
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java
  3. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  4. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/purmrb/PurMrb.java
  5. 29
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stkinstock/StkInStock.java
  6. 12
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java
  7. 52
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  8. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/data_model.json
  9. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json
  10. 51
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java
  11. 12
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json
  12. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

68
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java

@ -290,72 +290,30 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
* 退料组织:FStockOrgId (必填项)
*/
purMrb.setFStockOrgId("101");
/**
* 需求组织:FRequireOrgId (必填项)
*/
//purMrb.setFRequireOrgId( "101");
/**
* 采购组织:FPurchaseOrgId (必填项)
*/
//purMrb.setFPurchaseOrgId("101");
/**
* 供应商:FSupplierID (必填项)
*/
purMrb.setFSupplierID("010001");
/**
* 接收方:FACCEPTORID
*/
//purMrb.setFACCEPTORID("010001");
/**
* 结算方:FSettleId
*/
//purMrb.setFSettleId("010001");
/**
* 收款方:FCHARGEID
*/
//purMrb.setFCHARGEID("010001");
/**
* 货主:FOwnerIdHead (必填项)
*/
//purMrb.setFOwnerIdHead("101");
/**
* 结算组织:FSettleOrgId (必填项)
*/
//purMrb.setFSettleOrgId("101");
List<PurMrb.FPURMRBENTRY> FPURMRBENTRY=new ArrayList<>();
PurMrb.FPURMRBENTRY fp=new PurMrb.FPURMRBENTRY();
/**
* 物料编码:FMATERIALID (必填项)
*/
fp.setFMATERIALID(" JX091054");
fp.setFMATERIALID(baseVehicle.getVinNo());
/**
* 物料说明:FMaterialDesc
*/
fp.setFMaterialDesc("X牵引6*4-550超");
/**
* 库存单位:FUnitID (必填项)
*/
// fp.setFUnitID("liang");
fp.setFMaterialDesc(baseVehicle.getConfigName());
/**
* 批号:FLot
*/
fp.setFLot("liang");
fp.setFLot(baseVehicle.getVinNo());
/**
* 实退数量:FRMREALQTY
*/
fp.setFRMREALQTY(1.0);
/**
* 补料数量:FREPLENISHQTY
*/
//fp.setFREPLENISHQTY(1.0);
/**
* 扣款数量:FKEAPAMTQTY
*/
//fp.setFKEAPAMTQTY(1.0);
/**
* 计价单位:FPRICEUNITID (必填项)
*/
//fp.setFPRICEUNITID("liang");
/**
* 仓库:FSTOCKID
*/
@ -364,22 +322,6 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
* 库存状态:FStockStatusId
*/
fp.setFStockStatusId("KCZT01_SYS");
/**
* 计价基本数量:FPriceBaseQty
*/
//fp.setFPriceBaseQty(1.0);
/**
* 采购单位:FCarryUnitId (必填项)
*/
//fp.setFCarryUnitId("liang");
/**
* 采购数量:FCarryQty
*/
//fp.setFCarryQty(1.0);
/**
* 采购基本数量:FCarryBaseQty
*/
//fp.setFCarryBaseQty(1.0);
FPURMRBENTRY.add(fp);
/**
* 物料列表

34
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleRest.java

@ -18,6 +18,8 @@ import com.yxt.anrui.base.biz.basevehiclecertificate.BaseVehicleCertificateServi
import com.yxt.anrui.base.biz.basevehiclemodel.BaseVehicleModelService;
import com.yxt.anrui.base.biz.busvehicleinquiry.BusVehicleInquiryService;
import com.yxt.anrui.base.common.enums.OperVehicleState;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
@ -81,7 +83,11 @@ public class BaseVehicleRest implements BaseVehicleFeign {
@Autowired
private BaseVehicleCertificateService baseVehicleCertificateService;
/**
* 财务模块中的金蝶接口
*/
@Autowired
private FinKingDeeFeign finKingDeeFeign;
@Override
public ResultBean<PagerVo<BaseVehicleVo>> pagerList(@RequestBody PagerQuery<BaseVehicleQuery> pagerQuery) {
ResultBean<PagerVo<BaseVehicleVo>> rb = ResultBean.fireFail();
@ -180,6 +186,32 @@ public class BaseVehicleRest implements BaseVehicleFeign {
if (eventType.equals(OperVehicleState.EventType.TC_SAVEVEH.getCode()))
baseVehicleService.saveVeh_tc(baseVehicle);
}
//入账生成台账 //外采入库生成台账
try{
if (eventType.equals(OperVehicleState.EventType.RZ_SAVEVEH.getCode())||eventType.equals(OperVehicleState.EventType.WC_SAVEVEH.getCode())){
StkInStock stkInStock=new StkInStock();
stkInStock.setFDate(DateUtil.now());
stkInStock.setFPurchaseDeptId("05.04");
stkInStock.setFPurchaseOrgId("100012");
stkInStock.setFSupplierId("010001");
stkInStock.setTOrgId("100012");
List<StkInStock.FInStockEntry> fInStockEntry=new ArrayList<>();
for (BaseVehicleDto baseVehicleDto : dto) {
StkInStock.FInStockEntry sf=new StkInStock.FInStockEntry();
sf.setCllx("03");
sf.setFLot("11112222");
sf.setFMaterialId(baseVehicleDto.getVinNo());
sf.setFStockId("CK001");
sf.setWlfz("01");
fInStockEntry.add(sf);
}
stkInStock.setFInStockEntry(fInStockEntry);
finKingDeeFeign.draftStkInStock(stkInStock);
}
}catch (Exception e){
e.printStackTrace();
}
return rb.success().setMsg("保存成功");
}

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java

@ -27,6 +27,8 @@ import com.yxt.anrui.buscenter.api.busmaindeposit.pc.PcBusMainDepositFeign;
import com.yxt.anrui.buscenter.api.busmaindeposit.pc.PcBusMainDepositVehicleQuery;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempDto;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
@ -1918,6 +1920,7 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
baseVehicleCertificate.setUseOrgName(baseVehicle.getUseOrgName());
baseVehicleCertificateService.save(baseVehicleCertificate);
return rb.success().setMsg("入账新增车辆台账数据成功");
}
return rb.setMsg("入账新增车辆台账据失败");

6
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/purmrb/PurMrb.java

@ -98,9 +98,9 @@ public class PurMrb {
public String FLot;
/**
* 实退数量:FRMREALQTY
*/@NotBlank
@JsonProperty("FRMREALQTY")
public double FRMREALQTY;
*///@NotBlank
//@JsonProperty("FRMREALQTY")
//public double FRMREALQTY;
/**
* 补料数量:FREPLENISHQTY
*///@NotBlank

29
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stkinstock/StkInStock.java

@ -15,12 +15,16 @@ import java.util.List;
@Data
public class StkInStock {
public String sid;
/**
* //分配目标组织:TOrgId (必填项)
*/@JsonProperty("TOrgId")
@NotBlank
public String TOrgId;
/**
* //采购组织:FPurchaseOrgId (必填项)
*/@JsonProperty("FPurchaseOrgId")
@NotBlank
public String FPurchaseOrgId;
/**
* // 收料组织:FStockOrgId (必填项)
*///@JsonProperty("FStockOrgId")
@ -77,7 +81,16 @@ public class StkInStock {
@Data
public static class FInStockEntry{
/**
* 物料分组
*/
@NotBlank
public String wlfz;
/**
* 车辆类型
*/
@NotBlank
public String cllx;
/**
* // 物料编码:FMaterialId (必填项)
*/@JsonProperty("FMaterialId")
@ -86,15 +99,15 @@ public class StkInStock {
/**
* // 库存单位:FUnitID (必填项)
*/@JsonProperty("FUnitID")
@NotBlank
public String FUnitID="liang";
*///@JsonProperty("FUnitID")
//@NotBlank
//public String FUnitID="liang";
/**
* // 实收数量:FRealQty
*/@JsonProperty("FRealQty")
@NotBlank
public double FRealQty;
*///@JsonProperty("FRealQty")
//@NotBlank
//public double FRealQty;
/**
* // 计价数量:FPriceUnitQty

12
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java

@ -254,6 +254,18 @@ public class FinKingDeeService {
ResultBean<String> kingDeeBillDataByNumber = getKingDeeBillDataByNumber(formId, number);
return kingDeeBillDataByNumber;
}
public ResultBean<String> getKingBillDataInfoList(String formId,String jsonParam) {
/* String jsonParam="{\\\"FormId\\\":\\\""+KingDeeBillId.BD_MATERIAL+"\\\"," +
"\\\"FieldKeys\\\":\\\"\\\",\\\"FilterString\\\":\\\"FName=''\\\",\\\"OrderString\\\":\\\"\\\"," +
"\\\"TopRowCount\\\":\\\"0\\\",\\\"StartRow\\\":\\\"0\\\",\\\"Limit\\\":\\\"0\\\"}";*/
KingDeeParams kdp = getKingDeeParams(formId, jsonParam);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<String> listResultBean = KingDeeSaveSKD.getKingBillDataInfoList(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用金蝶接口的数据格式
*/

52
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java

@ -68,6 +68,9 @@ public class KingDeeSaveSKD {
private static String Allocate_URL = url+"DynamicFormService.Allocate.common.kdsvc";
//查看单据接口的地址
private static String View_URL = url+"DynamicFormService.View.common.kdsvc";
//查询单据接口的地址
private static String ExecuteBillQuery_URL = url+"DynamicFormService.ExecuteBillQuery.common.kdsvc";
//登录,校验用户的API接口地址
private static String Login_URL = url+"AuthService.ValidateUser.common.kdsvc";
@ -271,6 +274,50 @@ public class KingDeeSaveSKD {
return rb;
}
/**
* 单据查询
* @param jsonParam
* @return
*/
public static ResultBean<String> getKingBillDataInfoList(FinKingDeeService.KingDeeParams jsonParam) {
ResultBean<String > rb= ResultBean.fireFail();
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
/********** 用户登录Begin ************************/
ResultBean<List<KingDeeResult>> rb1 = loginKingDeeSystem(httpclient);
if (!rb1.getSuccess()) return rb;
try {
URI save_uri = new URI(ExecuteBillQuery_URL);
HttpPost method = new HttpPost(save_uri);
//采购入库单保存参数
log.info("jsonParam:{}",JSON.toJSON(jsonParam.getData()));
//StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");"{\\\"FormId\\\":\\\"BD_MATERIAL\\\",\\\"TopRowCount\\\":0,\\\"Limit\\\":10,\\\"StartRow\\\":0,\\\"FilterString\\\":\\\"FNumber=' JX091054'\\\",\\\"OrderString\\\":\\\"FID ASC\\\",\\\"FieldKeys\\\":\\\"FUseOrgId,FNumber\\\"}"
StringEntity entity = new StringEntity("{\\\"FormId\\\":\\\"BD_MATERIAL\\\",\\\"FieldKeys\\\":\\\"FName\\\",\\\"FilterString\\\":\\\"\\\",\\\"OrderString\\\":\\\"\\\",\\\"TopRowCount\\\":\\\"0\\\",\\\"StartRow\\\":\\\"0\\\",\\\"Limit\\\":\\\"10\\\"}", "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;
}
/**
* 查看金蝶数据
* @param jsonParam
@ -323,8 +370,8 @@ public class KingDeeSaveSKD {
//登录请求参数
Map<String,String> loginParams=new HashMap<>();
loginParams.put("acctID",acctID);
loginParams.put("userName",userName_administrator);
loginParams.put("password",password_administrator);
loginParams.put("userName",userName);
loginParams.put("password",password);
loginParams.put("lcid",lcid);
String jsonParamdl=JSON.toJSONString(loginParams);
StringEntity entity = new StringEntity(jsonParamdl, "utf-8");
@ -410,4 +457,5 @@ public class KingDeeSaveSKD {
return new ResultBean<List<KingDeeResult>> (aBoolean,"操作成功!","200").setData(list);
}
}

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/data_model.json

@ -3,6 +3,7 @@
"FCreateOrgId": {
"FNumber": "100"
},
"FNumber": "@KD_FName",
"FUseOrgId": {
"FNumber": "100"
},

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json

@ -24,7 +24,7 @@
},
"FIsReceiveUpdateStock": false,
"FGiveAway": false,
"FPriceBaseQty": @KD_FRMREALQTY,
"FPriceBaseQty": 1.0,
"FCarryUnitId": {
"FNumber": "@KD_FCarryUnitId"
},

51
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java

@ -1,21 +1,29 @@
package com.yxt.anrui.fin.biz.kingdee.stkinstock;
import cn.hutool.core.bean.BeanUtil;
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.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.bdmaterial.BdMaterialService;
import com.yxt.common.core.result.ResultBean;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
@Slf4j
public class STKInStockService extends FinKingDeeService {
@Resource
private BdMaterialService bdMaterialService;
/**
* 保存采购入库单
* @param stkInStock
@ -23,6 +31,47 @@ public class STKInStockService extends FinKingDeeService {
*/
public ResultBean draftStkInStock(StkInStock stkInStock) {
// stkInStock=StkInStock.createStkInStock();
List<StkInStock.FInStockEntry> fInStockEntry1 = stkInStock.getFInStockEntry();
for (StkInStock.FInStockEntry f: fInStockEntry1){
ResultBean<String> kingDataInfoByNumber = getKingDataInfoByNumber(KingDeeBillId.BD_MATERIAL.getID(), f.getFMaterialId());
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
JSONObject jsonObject = JSONObject.parseObject(kingDataInfoByNumber.getData());
JSONObject result = (JSONObject)jsonObject.get("Result");
JSONObject responseStatus = (JSONObject)result.get("ResponseStatus");
if(responseStatus!=null){
//不存在该物料
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
BdMaterial bdMaterial=new BdMaterial();
bdMaterial.setFName(f.getFMaterialId());
bdMaterial.setF_PAEZ_Base(f.getCllx());
bdMaterial.setFMaterialGroup(f.getWlfz());
bdMaterial.setTOrgIds(stkInStock.getTOrgId());
bdMaterialService.draftBdMaterial(bdMaterial);
}else{
//存在该物料
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
JSONObject result2 = (JSONObject)result.get("Result");
Integer Id = (Integer)result2.get("Id");
log.info("Id:{}",Id);
String jsonParam="{\\\"FormId\\\":\\\""+KingDeeBillId.BD_MATERIAL+"\\\"," +
"\\\"FieldKeys\\\":\\\"FUseOrgId\\\",\\\"FilterString\\\":\\\"FNumber='"+f.getFMaterialId()+"'\\\",\\\"OrderString\\\":\\\"\\\"," +
"\\\"TopRowCount\\\":\\\"0\\\",\\\"StartRow\\\":\\\"0\\\",\\\"Limit\\\":\\\"100\\\"}";
ResultBean<String> kingBillDataInfoList = getKingBillDataInfoList(KingDeeBillId.BD_MATERIAL.getID(), jsonParam);
//if(kingBillDataInfoList.getData().indexOf(stkInStock.getTOrgId())<0){
String data="{\"formId\":\""+KingDeeBillId.BD_MATERIAL.getID()+"\"," +
"\"data\":\"{\\\"PkIds\\\":\\\""+Id+"\\\",\\\"TOrgIds\\\":\\\""+stkInStock.getTOrgId()+"\\\"," +
"\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
ResultBean<List<KingDeeResult>> resultBean3 =allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(),data);// allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), allocate);
if(!resultBean3.getSuccess()){
log.info("物料分配失败!");
// return resultBean3.setMsg("物料分配失败!");
}
log.info("物料分配成功!");
log.info("resultBean3:{}",resultBean3);
// }
}
}
// ResultBean<String> kingBillDataInfoList = bdMaterialService.getKingBillDataInfoList(KingDeeBillId.BD_MATERIAL, "");
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合

12
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json

@ -4,11 +4,11 @@
"FNumber": "@KD_FMaterialId"
},
"FUnitID": {
"FNumber": "@KD_FUnitID"
"FNumber": "liang"
},
"FRealQty": @KD_FRealQty,
"FRealQty": 1.0,
"FPriceUnitID": {
"FNumber": "@KD_FUnitID"
"FNumber": "liang"
},
"FLot": {
"FNumber": "@KD_Flot"
@ -26,11 +26,11 @@
"FIsReceiveUpdateStock": false,
"FPriceBaseQty": 1.0,
"FRemainInStockUnitId": {
"FNumber": "@KD_FUnitID"
"FNumber": "liang"
},
"FBILLINGCLOSE": false,
"FPriceUnitQty":@KD_FRealQty,
"FRemainInStockQty":@KD_FRealQty,
"FPriceUnitQty":1.0,
"FRemainInStockQty":1.0,
"FAPNotJoinQty": 1.0,
"FRemainInStockBaseQty": 1.0
}

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java

@ -1266,9 +1266,9 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
latestTaskVo.setASSIGNEE_(item.getAssignee());
// latestTaskVo.setId_(item.getId());
latestTaskVo.setId_(listResultBean_2!=null?listResultBean_2.getData().get(0).getId_():id_);
if(b){
//if(b){
// taskService.setAssignee(id_, assignee_);
}
// }
latestTaskVo.setName_(listResultBean_2!=null?listResultBean_2.getData().get(0).getName_():item.getName());
latestTaskVo.setTask_def_key_(listResultBean_2!=null?listResultBean_2.getData().get(0).getTask_def_key_():item.getId());
latestTaskVo.setIncomingSourceRef(listResultBean_2!=null?listResultBean_2.getData().get(0).getIncomingSourceRef():item.getIncomingFlows().get(0).getSourceRef());

Loading…
Cancel
Save