Browse Source

入库增加车辆对应的采购系统(部门)sid、采购系统(部门)名称字段、厂家销售通路sid、厂家销售通路

master
yxt_djz 3 years ago
parent
commit
68b54d47ee
  1. 18
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/ActualAndOrgDeptDto.java
  2. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeign.java
  3. 7
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeignFallback.java
  4. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclebrand/BaseVehicleBrandService.java
  5. 31
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java
  6. 1
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeBillId.java
  7. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appaybill/ApPayBill.java
  8. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdcustomer/BdCustomer.java
  9. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java
  10. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdstock/BDStock.java
  11. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/cnbankcnt/CNBankacnt.java
  12. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/orgorganizations/OrgOrganizations.java
  13. 37
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/paezcllx/PaezCllx.java
  14. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/saloutstock/SalOutStock.java
  15. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stkinstock/StkInStock.java
  16. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stktransferdirect/StkTransferDirect.java
  17. 31
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java
  18. 37
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/cnbankcnt/CNBankcntService.java
  19. 44
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/PaezCllxCastToKingDeeBillFields.java
  20. 74
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/PaezCllxService.java
  21. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/data.json
  22. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/data_data.json
  23. 11
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/data_model.json
  24. 44
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/remarks.txt
  25. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/webapi测试的数据.txt
  26. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/车辆类型的参数必填备注.xlsx
  27. 23
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java
  28. 37
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java

18
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/ActualAndOrgDeptDto.java

@ -0,0 +1,18 @@
package com.yxt.anrui.base.api.busvehicleorder;
import lombok.Data;
/**
* 采购系统部门sid采购系统部门名称字段厂家销售通路sid厂家销售通路
*/
@Data
public class ActualAndOrgDeptDto {
//厂家销售通路sid
private String actualSid;
//厂家销售通路
private String actualPay;
//采购系统(部门)
private String orgDeptName;
//采购系统(部门)sid
private String orgDeptSid;
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeign.java

@ -36,6 +36,7 @@ import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(车型信息) <br/>
@ -78,7 +79,6 @@ public interface BusVehicleOrderFeign {
@ApiOperation("根据sid查询车辆采购订单")
@GetMapping("/fetchBySid/{sid}")
public ResultBean<BusVehicleOrderVo> fetchBySid(@PathVariable("sid") String sid);
/**
* pc端排产车型列表()
* 2022/3/31
@ -115,4 +115,7 @@ public interface BusVehicleOrderFeign {
@ApiOperation("手机端销售订单选择采购订单列表")
@GetMapping("/getAppReadyCar/{modelSid}/{configSid}")
public ResultBean<List<AppOrderReadyCar>> getAppReadyCar(@PathVariable("modelSid") String modelSid, @PathVariable("configSid") String configSid);
@ApiOperation("查询采购系统(部门)sid、采购系统(部门)名称字段、厂家销售通路sid、厂家销售通路")
@GetMapping("/getActualAndOrgDept/{vehicleOrderSid}")
public ResultBean<ActualAndOrgDeptDto> getActualAndOrgDept(@PathVariable("vehicleOrderSid") String vehicleOrderSid);
}

7
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleorder/BusVehicleOrderFeignFallback.java

@ -32,6 +32,7 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.stereotype.Component;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(车型信息) <br/>
@ -107,4 +108,10 @@ public class BusVehicleOrderFeignFallback implements BusVehicleOrderFeign {
return null;
}
@Override
public ResultBean<ActualAndOrgDeptDto> getActualAndOrgDept(String vehicleOrderSid) {
return null;
}
}

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclebrand/BaseVehicleBrandService.java

@ -216,8 +216,6 @@ public class BaseVehicleBrandService extends MybatisBaseService<BaseVehicleBrand
return baseMapper.getBrandShortName(sid);
}
;
/**
* 手机端-获取品牌数据字典
*

31
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleorder/BusVehicleOrderRest.java

@ -27,7 +27,13 @@ package com.yxt.anrui.base.biz.busvehicleorder;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicle.AppCurrentCarDetailConfigVo;
import com.yxt.anrui.base.api.busvehicleapply.BusVehicleApplyDetailsVo;
import com.yxt.anrui.base.api.busvehicleapply.app.AppVehicleApplyVo;
import com.yxt.anrui.base.api.busvehicleapplydetail.BusVehicleApplyDetail;
import com.yxt.anrui.base.api.busvehicleapplydetail.BusVehicleApplyDetailVo;
import com.yxt.anrui.base.api.busvehicleorder.*;
import com.yxt.anrui.base.biz.busvehicleapply.BusVehicleApplyService;
import com.yxt.anrui.base.biz.busvehicleapplydetail.BusVehicleApplyDetailService;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -39,8 +45,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.Collections;
import java.util.List;
import java.util.*;
/**
* Project: anrui-base(车型信息) <br/>
@ -62,7 +67,10 @@ public class BusVehicleOrderRest implements BusVehicleOrderFeign {
@Autowired
private BusVehicleOrderService busVehicleOrderService;
@Autowired
private BusVehicleApplyService busVehicleApplyService;
@Autowired
private BusVehicleApplyDetailService busVehicleApplyDetailService;
@Override
public ResultBean<PagerVo<VehicleOrderListVo>> listPage(PagerQuery<BusVehicleOrderQuery> pq) {
ResultBean rb = ResultBean.fireFail();
@ -193,4 +201,21 @@ public class BusVehicleOrderRest implements BusVehicleOrderFeign {
return new ResultBean<List<AppOrderReadyCar>>().success().setData(list);
}
@Override
public ResultBean<ActualAndOrgDeptDto> getActualAndOrgDept(String vehicleOrderSid) {
ResultBean<ActualAndOrgDeptDto> rb = ResultBean.fireFail();
BusVehicleOrderVo vo = busVehicleOrderService.selectBySid(vehicleOrderSid);
if (vo == null) {
return rb;
}
BusVehicleApplyDetailsVo busVehicleApplyDetailsVo = busVehicleApplyService.fetchAllBySid(vo.getPurchaseRequisitionSid());
BusVehicleApplyDetail busVehicleApplyDetail = busVehicleApplyDetailService.fetchBySid(vo.getPurchaseApplyMediumModelSid());
ActualAndOrgDeptDto actualAndOrgDeptDto = new ActualAndOrgDeptDto();
actualAndOrgDeptDto.setOrgDeptSid(busVehicleApplyDetailsVo.getOrgDeptSid());
actualAndOrgDeptDto.setOrgDeptName(busVehicleApplyDetailsVo.getOrgDeptName());
actualAndOrgDeptDto.setActualPay(busVehicleApplyDetail.getActualPay());
actualAndOrgDeptDto.setActualSid(busVehicleApplyDetail.getActualSid());
return rb.success().setData(actualAndOrgDeptDto);
}
}

1
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeBillId.java

@ -15,6 +15,7 @@ public enum KingDeeBillId {
BD_MATERIAL("BD_MATERIAL","物料"),
BD_BANK("BD_BANK","银行"),
CN_BANKACNT("CN_BANKACNT","银行账号"),
PAEZ_CLLX("PAEZ_CLLX","车辆类型"),
BD_STOCK("BD_STOCK","仓库");
private String ID;
private String NAME;

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appaybill/ApPayBill.java

@ -49,7 +49,7 @@ public class ApPayBill {
* //备注:FREMARK
*/
@JsonProperty("FREMARK")
public String FREMARK;
public String FREMARK="";
/* @JsonProperty("FCONTACTUNITTYPE")
@NotBlank
//往来单位类型:FCONTACTUNITTYPE (必填项)

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdcustomer/BdCustomer.java

@ -28,7 +28,7 @@ public class BdCustomer {
* 备注
*/
@JsonProperty("FDescription")
public String FDescription;
public String FDescription="";
public final static BdCustomer bdCustomer = new BdCustomer();
static {
/* 创建组织:FCreateOrgId (必填项)*/

5
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java

@ -51,6 +51,9 @@ public class BdMaterial {
@NotBlank(message = "车辆类型:F_PAEZ_BaseKey ")
@JsonProperty("F_PAEZ_BaseKey")
public String F_PAEZ_BaseKey;
@NotBlank(message = "车辆类型:F_PAEZ_BaseName ")
@JsonProperty("F_PAEZ_BaseName")
public String F_PAEZ_BaseName;
@NotBlank(message = "车辆系别:F_PAEZ_Base2Type ")
@JsonProperty("F_PAEZ_Base2Type")
public String F_PAEZ_Base2Type;
@ -73,7 +76,7 @@ public class BdMaterial {
* 备注描述
*/
@JsonProperty("FDescription")
public String FDescription;
public String FDescription="";
/**
*创建组织:FCreateOrgId (必填项)
*/

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdstock/BDStock.java

@ -34,7 +34,7 @@ public class BDStock implements Serializable {
* 备注
*/
@JsonProperty("FStockProperty")
private String FStockProperty;
private String FStockProperty="";
/**
* 分配的分公司的id:TOrgIds (必填项)
*/

4
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/cnbankcnt/CNBankacnt.java

@ -18,6 +18,10 @@ public class CNBankacnt {
@NotBlank
@JsonProperty("FBANKID")
public String FBANKID;
/*银行名称:bankName (必填项)*/
@NotBlank
@JsonProperty("bankName")
public String bankName;
/*账户名称:FName (必填项)*/
@NotBlank
@JsonProperty("FName")

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/orgorganizations/OrgOrganizations.java

@ -24,7 +24,7 @@ public class OrgOrganizations {
public String FOrgFormID;
/*描述:FDescription*/
@JsonProperty("FDescription")
public String FDescription;
public String FDescription="";
public final static OrgOrganizations orgOrganizations = new OrgOrganizations();
static {
/*名称:FName (必填项)*/

37
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/paezcllx/PaezCllx.java

@ -0,0 +1,37 @@
package com.yxt.anrui.fin.api.kingdee.paezcllx;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 车辆类型
*/
@Data
public class PaezCllx {
/**
* 使用组织:FUseOrgId (必填项)
*/
@JsonProperty("FUseOrgId")
@NotBlank
public String FUseOrgId;
/**
* 创建组织:FCreateOrgId (必填项)
*/
@JsonProperty("FCreateOrgId")
@NotBlank
public String FCreateOrgId;
/**
* 类型名称:FName (必填项)
*/
@JsonProperty("FName")
@NotBlank
public String FName;
/**
* 类型编码:FNumber (必填项)
*/
@JsonProperty("FNumber")
@NotBlank
public String FNumber;
}

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/saloutstock/SalOutStock.java

@ -148,7 +148,7 @@ public class SalOutStock {
*/
@JsonProperty("FEntrynote")
@NotBlank
public String FEntrynote;
public String FEntrynote="";
}
public final static SalOutStock salOutStock = new SalOutStock();

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

@ -144,7 +144,7 @@ public class StkInStock {
* 备注
*/
@JsonProperty("FNote")
public String FNote;
public String FNote="";
}
public final static StkInStock stkInStock = new StkInStock();

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stktransferdirect/StkTransferDirect.java

@ -110,7 +110,7 @@ public class StkTransferDirect {
* 备注
*/
@JsonProperty("FNote")
public String FNote;
public String FNote="";
/* 调拨类型:FTransferBizType (必填项)*/
/*@JsonProperty("FTransferBizType")
@NotBlank

31
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java

@ -5,14 +5,19 @@ import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.KingDeeCode;
import com.yxt.anrui.fin.api.kingdee.bank.BDBank;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.paezcllx.PaezCllx;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.KingDeeConfig;
import com.yxt.anrui.fin.biz.kingdee.paezcllx.PaezCllxService;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.sysmapping.SysMappingInfoQueryBatch;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -25,6 +30,8 @@ import java.util.Map;
@Service
public class BdMaterialService extends FinKingDeeService {
private static Logger log= LoggerFactory.getLogger(BdMaterialService.class);
@Autowired
private PaezCllxService paezCllxService;
/**
* 批量暂存物料 list
* @param bdMaterials
@ -127,6 +134,22 @@ public class BdMaterialService extends FinKingDeeService {
ResultBean<String> rb=ResultBean.fireFail();
String kingDeeData = BdMaterialCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
try {
//车辆类型
String F_PAEZ_Base = map_fEntityModel_.get("F_PAEZ_Base");
JSONObject result = view(F_PAEZ_Base);
log.info(JSONObject.toJSONString(result));
Object result1 = result.get("Result");
if(result1==null){
PaezCllx p=new PaezCllx();
String TOrgIds = map_fEntityModel_.get("TOrgIds");
p.setFUseOrgId(TOrgIds);
p.setFCreateOrgId(TOrgIds);
String F_PAEZ_BaseName = map_fEntityModel_.get("F_PAEZ_BaseName");
p.setFName(F_PAEZ_BaseName);
String F_PAEZ_BaseKey = map_fEntityModel_.get("F_PAEZ_BaseKey");
p.setFNumber(F_PAEZ_BaseKey);
paezCllxService.draftPaezCllx(p);
}
ResultBean<String> draft = draft(kingDeeData);
String data = draft.getData();
ResultBean<String> submit = submitAuditAllocate(data);
@ -293,7 +316,7 @@ public class BdMaterialService extends FinKingDeeService {
*/
public ResultBean<String> unAudit(BdMaterial bdMaterial) throws Exception {
ResultBean<String> rb=ResultBean.fireFail();
JSONObject result = view(bdMaterial);
JSONObject result = view(bdMaterial.getOldFName());
JSONObject responseStatus = (JSONObject)result.get("ResponseStatus");
if(responseStatus!=null){//不存在该物料 //新增物料
return rb.setCode(KingDeeCode.NOTEXIST.getCode()).setMsg(KingDeeCode.NOTEXIST.getMsg());
@ -312,12 +335,12 @@ public class BdMaterialService extends FinKingDeeService {
/**
* 查看物料
* @param bdMaterial
* @param oldFName
* @return
* @throws Exception
*/
private JSONObject view(BdMaterial bdMaterial) throws Exception {
String getKDForNumbers = getGetKDForNumbers(KingDeeBillId.BD_MATERIAL.getID(), bdMaterial.getOldFName());
private JSONObject view(String oldFName) throws Exception {
String getKDForNumbers = getGetKDForNumbers(KingDeeBillId.BD_MATERIAL.getID(), oldFName);
ResultBean<String> kingDataInfoByNumber = accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(), getKDForNumbers,
KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.VIEW_URL.getURL());
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());

37
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/cnbankcnt/CNBankcntService.java

@ -1,12 +1,17 @@
package com.yxt.anrui.fin.biz.kingdee.cnbankcnt;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.anrui.fin.api.kingdee.bank.BDBank;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.cnbankcnt.CNBankacnt;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.KingDeeConfig;
import com.yxt.anrui.fin.biz.kingdee.bank.BDBankService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -15,6 +20,8 @@ import java.util.Map;
@Service
public class CNBankcntService extends FinKingDeeService {
@Autowired
private BDBankService bdBankService;
/**
* 保存银行账号信息 list
* @param cNBankacnts
@ -40,10 +47,24 @@ public class CNBankcntService extends FinKingDeeService {
//bdCustomer=BdCustomer.createBdCustomer();
ResultBean rb=ResultBean.fireFail();
try {
//银行
String fbankid = cNBankcnt.getFBANKID();
JSONObject result = view(fbankid);
log.info(JSONObject.toJSONString(result));
Object result1 = result.get("Result");
if(result1==null){
BDBank b=new BDBank();
b.setFName(cNBankcnt.getBankName());
b.setFNumber(cNBankcnt.getFBANKID());
b.setFCreateOrgId(cNBankcnt.getFCreateOrgId());
b.setFUseOrgId(cNBankcnt.getFUseOrgId());
bdBankService.draftBDBank(b);
}
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(cNBankcnt);
//准备 物料列表的数据 ForEntryBill
String kingDeeData = CNBankcntCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> resultBean = accessKingDeeInterface(
KingDeeBillId.CN_BANKACNT.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL());
@ -77,5 +98,19 @@ public class CNBankcntService extends FinKingDeeService {
}
return rb;
}
/**
* 查看物料
* @param bankName
* @return
* @throws Exception
*/
private JSONObject view(String bankName) throws Exception {
String getKDForNumbers = getGetKDForNumbers(KingDeeBillId.BD_BANK.getID(), bankName);
ResultBean<String> kingDataInfoByNumber = accessKingDeeInterface(KingDeeBillId.BD_BANK.getID(), getKDForNumbers,
KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.VIEW_URL.getURL());
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
JSONObject jsonObject = JSONObject.parseObject(kingDataInfoByNumber.getData().toString());
JSONObject result = (JSONObject)jsonObject.get("Result");
return result;
}
}

44
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/PaezCllxCastToKingDeeBillFields.java

@ -0,0 +1,44 @@
package com.yxt.anrui.fin.biz.kingdee.paezcllx;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.Map;
/**
* 封装转换的类
*/
public class PaezCllxCastToKingDeeBillFields {
private static Logger log=LoggerFactory.getLogger(PaezCllxCastToKingDeeBillFields.class);
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @param map_fEntityModel_
* @return
*/
public static String getKingDeeData(Map<String,String> map_fEntityModel_ ){
/**
* 取模板
*/
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/paezcllx/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/paezcllx/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/paezcllx/data_model.json");
log.info("readJsonFile:{}",readJsonFile);
log.info("fEntityData_:{}",fEntityData_);
log.info("fEntityModel_:{}",fEntityModel_);
//模板字符创转json
JSONObject jsonObj= JSONObject.parseObject(readJsonFile, Feature.OrderedField);
JSONObject jsonFEntityData_= JSONObject.parseObject(fEntityData_,Feature.OrderedField);
fEntityModel_ =KingDeeUtils.replaceTemplateParams(fEntityModel_, map_fEntityModel_);
JSONObject jsonFEntityModel_= JSONObject.parseObject(fEntityModel_,Feature.OrderedField);
jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField));
jsonObj.put("data",jsonFEntityData_.toJSONString());
return jsonObj.toJSONString();
}
}

74
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/PaezCllxService.java

@ -0,0 +1,74 @@
package com.yxt.anrui.fin.biz.kingdee.paezcllx;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.anrui.fin.api.kingdee.paezcllx.PaezCllx;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.bank.BDBankService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class PaezCllxService extends FinKingDeeService {
/**
* 保存车辆类型信息 list
* @param paezCllx
* @return
*/
public ResultBean<List<KingDeeResult>> draftPaezCllxList(List<PaezCllx> paezCllx) {
List<KingDeeResult> list=new ArrayList<>();
ResultBean rb=ResultBean.fireFail();
for(PaezCllx p:paezCllx) {
ResultBean<List<KingDeeResult>> resultBean = draftPaezCllx(p);
if (resultBean.getSuccess()) {
list.add(resultBean.getData().get(0));
}
}
return rb.success().setData(list);
}
/**
* 保存车辆类型信息
* @param paezCllx
* @return
*/
public ResultBean draftPaezCllx(PaezCllx paezCllx) {
//bdCustomer=BdCustomer.createBdCustomer();
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(paezCllx);
//准备 物料列表的数据 ForEntryBill
String kingDeeData = PaezCllxCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> resultBean = accessKingDeeInterface(
KingDeeBillId.PAEZ_CLLX.getID(), kingDeeData, KingDeeBillUrl.DRAFT_URL.getURL());
String submitKD = getSubmitKD(resultBean.getData(),KingDeeBillId.PAEZ_CLLX.getID());
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.PAEZ_CLLX.getID(),
submitKD,KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("车辆类型提交失败!");
return rb.setMsg("车辆类型提交失败!");
}
log.info("车辆类型提交成功!");
String auditKD = getAuditKD(resultBean.getData(),KingDeeBillId.CN_BANKACNT.getID());
ResultBean<String> resultBean2 = accessKingDeeInterface(KingDeeBillId.CN_BANKACNT.getID(), auditKD,KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("车辆类型审核失败!");
return rb.setMsg("车辆类型审核失败!");
}
log.info("车辆类型审核成功!");
return resultBean;
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
}

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/data.json

@ -0,0 +1,4 @@
{
"formId": "PAEZ_CLLX",
"data": "@KD_data"
}

13
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/data_data.json

@ -0,0 +1,13 @@
{
"Creator": "",
"NeedUpDateFields": [],
"NeedReturnFields": [],
"IsDeleteEntry": "True",
"SubSystemId": "",
"IsVerifyBaseDataField": "false",
"IsEntryBatchFill": "True",
"ValidateFlag": "True",
"NumberSearch": "True",
"InterationFlags": "",
"Model":{}
}

11
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/data_model.json

@ -0,0 +1,11 @@
{
"FContactId": 0,
"FNumber": "@KD_FNumber",
"FName": "@KD_FName",
"FUseOrgId": {
"FNumber": "@KD_FUseOrgId"
},
"FCreateOrgId": {
"FNumber": "@KD_FCreateOrgId"
}
}

44
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/remarks.txt

@ -0,0 +1,44 @@
一、请求参数说明:
1.formid:业务对象表单Id,字符串类型(必录)
2.data:Json格式数据(详情参考Json格式数据)(必录)
2.1.Creator:创建者内码(非必录)
2.2.NeedUpDateFields:需要更新的字段,数组类型,格式:[key1,key2,...](非必录),注(更新单据体字段得加上单据体key)
2.3.NeedReturnFields:需返回结果的字段集合,数组类型,格式:[key,entitykey.key,...](非必录),注(返回单据体字段格式:entitykey.key)
2.4.IsDeleteEntry:是否删除已存在的分录,布尔类型,默认true(非必录)
2.5.SubSystemId:表单所在的子系统内码,字符串类型(非必录)
2.6.IsVerifyBaseDataField:是否验证所有的基础资料有效性,布尔类,默认false(非必录)
2.7.IsEntryBatchFill:是否批量填充分录,默认true(非必录)
2.8.ValidateFlag:是否验证标志,布尔类型,默认true(非必录)
2.9.NumberSearch:是否用编码搜索基础资料,布尔类型,默认true(非必录)
2.10.InterationFlags:交互标志集合,字符串类型,分号分隔,格式:"flag1;flag2;..."(非必录),例如(允许负库存标识:STK_InvCheckResult)
2.11.Model:表单数据包,Json类型(必录)
二、Json格式数据:
{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FContactId\":\"0\",\"FNumber\":\"\",\"FName\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FCreateOrgId\":{\"FNumber\":\"\"},\"FDescription\":\"\"}}
三、返回参数:
{\"Result\":{\"ResponseStatus\":{\"ErrorCode\":\"\",\"IsSuccess\":\"false\",\"Errors\":[{\"FieldName\":\"\",\"Message\":\"\",\"DIndex\":0}],\"SuccessEntitys\":[{\"Id\":\"\",\"Number\":\"\",\"DIndex\":0}],\"SuccessMessages\":[{\"FieldName\":\"\",\"Message\":\"\",\"DIndex\":0}]},\"Id\":\"\",\"NeedReturnData\":[{}]}}
四、代码示例:
// 使用webapi引用组件Kingdee.BOS.WebApi.Client.dll
K3CloudApiClient client = new K3CloudApiClient("http://121.36.43.55/k3cloud/");
var ret = client.ValidateLogin("61dce6601125a0","Administrator","888888",2052);
var result = JObject.Parse(ret)["LoginResultType"].Value<int>();
// 登陆成功
if (result == 1)
{
client.Draft("PAEZ_CLLX","{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FContactId\":\"0\",\"FNumber\":\"\",\"FName\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FCreateOrgId\":{\"FNumber\":\"\"},\"FDescription\":\"\"}}");
}
五、字段说明:
创建人:FCreatorId
使用组织:FUseOrgId (必填项)
修改人:FModifierId
修改日期:FModifyDate
创建日期:FCreateDate
创建组织:FCreateOrgId (必填项)
禁用状态:FForbidStatus
数据状态:FDocumentStatus
类型名称:FName (必填项)
描述:FDescription
类型编码:FNumber (必填项)

1
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/webapi测试的数据.txt

@ -0,0 +1 @@
{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FContactId\":0,\"FNumber\":\"21\",\"FName\":\"2121\",\"FUseOrgId\":{\"FNumber\":\"101\"},\"FCreateOrgId\":{\"FNumber\":\"101\"}}}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/车辆类型的参数必填备注.xlsx

Binary file not shown.

23
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java

@ -8,6 +8,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleDto;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.busvehicleorder.ActualAndOrgDeptDto;
import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderFeign;
import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderVo;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
@ -481,14 +482,26 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
private void newBaseVehicleDto(ScmApplyInbound booad,List<ScmApplyInboundVehicleDto> scmApplyInboundVehicleDtos) {
List<BaseVehicleDto> baseVehicleDtos=new ArrayList<>();
//获取车辆对应的采购系统(部门)sid、采购系统(部门)名称字段、厂家销售通路sid、厂家销售通路
ResultBean<ActualAndOrgDeptDto> actualAndOrgDept = busVehicleOrderFeign.getActualAndOrgDept(booad.getVehicleOrderSid());
ActualAndOrgDeptDto aaodd = actualAndOrgDept.getData();
if(!actualAndOrgDept.getSuccess()||aaodd==null){
return;
}
for(ScmApplyInboundVehicleDto s:scmApplyInboundVehicleDtos){
//车辆台账推送数据
BaseVehicleDto baseVehicleDto = new BaseVehicleDto();
BusVehicleOrderVo busVehicleOrderVo = busVehicleOrderFeign.fetchBySid(booad.getVehicleOrderSid()).getData();
/*baseVehicleDto.setPurchaseSystemSid();
baseVehicleDto.setPurchaseSystemName();
baseVehicleDto.setManufSaleAccessSid();
baseVehicleDto.setManufSaleAccessName();*/
/* BusVehicleOrderVo busVehicleOrderVo = busVehicleOrderFeign.fetchBySid(booad.getVehicleOrderSid()).getData();
//排产/采购申请sid
String purchaseRequisitionSid = busVehicleOrderVo.getPurchaseRequisitionSid();*/
// //采购系统(部门)sid
baseVehicleDto.setPurchaseSystemSid(aaodd.getOrgDeptSid());
//采购系统(部门)
baseVehicleDto.setPurchaseSystemName(aaodd.getOrgDeptName());
//厂家销售通路sid
baseVehicleDto.setManufSaleAccessSid(aaodd.getActualSid());
//厂家销售通路
baseVehicleDto.setManufSaleAccessName(aaodd.getActualPay());
baseVehicleDto.setVinNo(s.getVinNo());
baseVehicleDto.setModelSid(booad.getModelSid());
baseVehicleDto.setModelName(booad.getModelName());

37
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java

@ -239,16 +239,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
updateFlowFiled(BeanUtil.beanToMap(uff));
//BaseVehicleUpdateQuery baseVehicleUpdateQuery = new BaseVehicleUpdateQuery();
//采购退库提交修改车辆台账库存状态 为 采购退库中
List<BaseVehicleDto> baseVehicleDtos = new ArrayList<>();
for (ScmVehicleReturnDetailsDto scmVehicleReturnDetailsDto : detailsList) {
BaseVehicleDto baseVehicleDto = new BaseVehicleDto();
baseVehicleDto.setVinNo(scmVehicleReturnDetailsDto.getVinNo());
baseVehicleDto.setUseOrgSid(scmVehicleReturnDto.getCreateOrgSid());
baseVehicleDto.setVehicleState(VehicleState.StockEnum.RETURNING_STOCK.getCode());
baseVehicleDto.setVehicleStateValue(VehicleState.StockEnum.RETURNING_STOCK.getRemarks());
baseVehicleDtos.add(baseVehicleDto);
}
baseVehicleFeign.saveOrUpdate(baseVehicleDtos, OperVehicleState.EventType.UPDATE_VEHICLE.getCode());
updateVehicleState(detailsList, scmVehicleReturnDto);
//极光推送
ScmVehicleReturn scmVehicleReturn = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
@ -285,21 +276,13 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
variables.put("app", appMap);
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.SCMVEHICLERETURN.getProDefId());
if (org.apache.commons.lang3.StringUtils.isBlank(businessTaskid) && org.apache.commons.lang3.StringUtils.isBlank(dto.getTaskId())) {
updateVehicleState(detailsList, booad);
saveOrUpdateVehicleReturn(dto);//update
ResultBean<UpdateFlowFieldVo> resultBean1 = flowableFeign.startProcess(bv);
UpdateFlowFieldVo uff = resultBean1.getData();
updateFlowFiled(BeanUtil.beanToMap(uff));
List<BaseVehicleDto> baseVehicleDtos = new ArrayList<>();
for (ScmVehicleReturnDetailsDto scmVehicleReturnDetailsDto : detailsList) {
BaseVehicleDto baseVehicleDto = new BaseVehicleDto();
baseVehicleDto.setVinNo(scmVehicleReturnDetailsDto.getVinNo());
baseVehicleDto.setUseOrgSid(booad.getCreateOrgSid());
baseVehicleDto.setVehicleState(VehicleState.StockEnum.RETURNING_STOCK.getCode());
baseVehicleDto.setVehicleStateValue(VehicleState.StockEnum.RETURNING_STOCK.getRemarks());
baseVehicleDtos.add(baseVehicleDto);
}
baseVehicleFeign.saveOrUpdate(baseVehicleDtos, OperVehicleState.EventType.UPDATE_VEHICLE.getCode());
//极光推送
ScmVehicleReturn scmVehicleReturn = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
@ -315,6 +298,7 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
// String msgSid = getMessage(uff, appMap, scmVehicleReturn);
return resultBean1;
} else if (org.apache.commons.lang3.StringUtils.isNotBlank(businessTaskid) && businessTaskid.equals(dto.getTaskId())) {//只有数据一致的时候才能进行下一步
updateVehicleState(detailsList, booad);
saveOrUpdateVehicleReturn(dto);//update
bv.setTaskDefKey(booad.getTaskDefKey());
bv.setComment(org.apache.commons.lang3.StringUtils.isNotBlank(dto.getComment()) ? dto.getComment() : "重新提交");
@ -342,6 +326,19 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
}
}
private void updateVehicleState(List<ScmVehicleReturnDetailsDto> detailsList, ScmVehicleReturnDto booad) {
List<BaseVehicleDto> baseVehicleDtos = new ArrayList<>();
for (ScmVehicleReturnDetailsDto scmVehicleReturnDetailsDto : detailsList) {
BaseVehicleDto baseVehicleDto = new BaseVehicleDto();
baseVehicleDto.setVinNo(scmVehicleReturnDetailsDto.getVinNo());
baseVehicleDto.setUseOrgSid(booad.getCreateOrgSid());
baseVehicleDto.setVehicleState(VehicleState.StockEnum.RETURNING_STOCK.getCode());
baseVehicleDto.setVehicleStateValue(VehicleState.StockEnum.RETURNING_STOCK.getRemarks());
baseVehicleDtos.add(baseVehicleDto);
}
baseVehicleFeign.saveOrUpdate(baseVehicleDtos, OperVehicleState.EventType.UPDATE_VEHICLE.getCode());
}
/**
* 办理流程
*

Loading…
Cancel
Save