From f05a32fc725ea0907c8c35c2f42738b3a9f3c9fe Mon Sep 17 00:00:00 2001 From: yxt_djz Date: Tue, 6 Sep 2022 14:14:19 +0800 Subject: [PATCH] =?UTF-8?q?=E5=AE=8C=E5=96=84=E9=87=91=E8=9D=B6=E6=8E=A5?= =?UTF-8?q?=E5=8F=A3=E7=9A=84=E5=AF=B9=E6=8E=A5=E7=9A=84=E5=8A=9F=E8=83=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../BaseManufacturerRetwareService.java | 68 ++----------------- .../base/biz/basevehicle/BaseVehicleRest.java | 34 +++++++++- .../biz/basevehicle/BaseVehicleService.java | 3 + .../anrui/fin/api/kingdee/purmrb/PurMrb.java | 6 +- .../api/kingdee/stkinstock/StkInStock.java | 29 +++++--- .../fin/biz/kingdee/FinKingDeeService.java | 12 ++++ .../anrui/fin/biz/kingdee/KingDeeSaveSKD.java | 52 +++++++++++++- .../biz/kingdee/bdmaterial/data_model.json | 1 + .../biz/kingdee/purmrb/data_FPURMRBENTRY.json | 2 +- .../kingdee/stkinstock/STKInStockService.java | 51 +++++++++++++- .../stkinstock/data_FInStockEntry.json | 12 ++-- .../biz/flowtask/FlowTaskService.java | 4 +- 12 files changed, 187 insertions(+), 87 deletions(-) diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java index 5754bd66a5..01cb643dcb 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java +++ b/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 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> pagerList(@RequestBody PagerQuery pagerQuery) { ResultBean> 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 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("保存成功"); } diff --git a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java b/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java index 7101fefe6a..f10ae4464d 100644 --- a/anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java +++ b/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 kingDeeBillDataByNumber = getKingDeeBillDataByNumber(formId, number); return kingDeeBillDataByNumber; } + + public ResultBean 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 listResultBean = KingDeeSaveSKD.getKingBillDataInfoList(kdp); + log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean)); + return listResultBean; + } + /** * 调用金蝶接口的数据格式 */ 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 1ab3504c25..aa33a0d6f3 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 @@ -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 getKingBillDataInfoList(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(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 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> (aBoolean,"操作成功!","200").setData(list); } + } diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/data_model.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/data_model.json index c4a263a352..46ccae3013 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/data_model.json +++ b/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" }, diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json index 1b96dec641..523f4d5cdd 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json +++ b/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" }, diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java index 406aa1fdd9..03bc2dbc57 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java +++ b/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 fInStockEntry1 = stkInStock.getFInStockEntry(); + for (StkInStock.FInStockEntry f: fInStockEntry1){ + ResultBean 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 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> 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 kingBillDataInfoList = bdMaterialService.getKingBillDataInfoList(KingDeeBillId.BD_MATERIAL, ""); ResultBean rb=ResultBean.fireFail(); try { //业务表的主表数据集合 diff --git a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json b/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json index e506d256f4..005791cf56 100644 --- a/anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json +++ b/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 } diff --git a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java b/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java index 3315bbb425..13d21a6f2c 100644 --- a/anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java +++ b/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