Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
God 3 years ago
parent
commit
1860d16bc0
  1. 5
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  2. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  3. 6
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeBillId.java
  4. 123
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appaybill/ApPayBill.java
  5. 34
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  6. 157
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java
  7. 62
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java
  8. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  9. 59
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillCastToKingDeeBillFields.java
  10. 80
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillService.java
  11. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/data.json
  12. 17
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/data_FPAYBILLENTRY.json
  13. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/data_data.json
  14. 46
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/data_model.json
  15. 204
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/remarks.txt
  16. 15
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/testParams.txt
  17. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/webapi测试的数据.txt
  18. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/~$付款单的参数必填备注.xlsx
  19. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/付款单的参数必填备注.xlsx
  20. 74
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/entrybill/EntryBillService.java
  21. 76
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/ReceivableBillService.java
  22. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  23. 7
      anrui-gateway/src/main/resources/application.yml
  24. 5
      anrui-portal/anrui-portal-biz/pom.xml
  25. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/PortalApplication.java
  26. 40
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexRest.java
  27. 6
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleinventory/LastInfo.java
  28. 20
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryService.java
  29. 9
      anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/baseoutsourcingapplicationAdd.vue
  30. 18
      anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/workflow/baseoutsourcingapplicationAdd.vue
  31. 11
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/baseInfo/AppScmBaseInfoFeign.java
  32. 6
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/LastInfo.java
  33. 7
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/StayInventoryDetailedsVo.java
  34. 2
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/TerminalApplication.java

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

@ -1,6 +1,7 @@
package com.yxt.anrui.fin.api.kingdee;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
@ -37,4 +38,8 @@ public interface FinKingDeeFeign {
@PostMapping("/draftReceivableBill")
@ResponseBody
ResultBean draftReceivableBill(@RequestBody ARReceivable aRReceivable);
@ApiOperation("保存付款单的接口")
@PostMapping("/draftApPayBill")
@ResponseBody
public ResultBean draftApPayBill(ApPayBill apPayBill) ;
}

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

@ -1,6 +1,7 @@
package com.yxt.anrui.fin.api.kingdee;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.common.core.result.ResultBean;
@ -15,4 +16,9 @@ implements FinKingDeeFeign{
public ResultBean draftReceivableBill(ARReceivable aRReceivable) {
return null;
}
@Override
public ResultBean draftApPayBill(ApPayBill apPayBill) {
return null;
}
}

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

@ -2,7 +2,11 @@ package com.yxt.anrui.fin.api.kingdee;
public enum KingDeeBillId {
AP_PAYABLE("AP_Payable","应付单"),
AR_RECEIVABLE("AR_receivable","应收单"),;
AR_RECEIVABLE("AR_receivable","应收单"),
AP_PAYBILL("AP_PAYBILL","收款单"),
STK_INSTOCK("STK_InStock","采购入库单"),
PUR_MRB("PUR_MRB","采购退料单"),
SAL_OUTSTOCK("SAL_OUTSTOCK","销售出库单");
private String ID;
private String NAME;

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

@ -0,0 +1,123 @@
package com.yxt.anrui.fin.api.kingdee.appaybill;
import lombok.Data;
import javax.validation.constraints.NotBlank;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
@Data
public class ApPayBill {
@NotBlank
//登账日期:FPOSTDATE (必填项)
private String FPOSTDATE;
@NotBlank
//业务日期:FDATE (必填项)
private String FDATE;
@NotBlank
//往来单位类型:FCONTACTUNITTYPE (必填项)
private String FCONTACTUNITTYPE="BD_Supplier";
@NotBlank
//往来单位:FCONTACTUNIT (必填项)
private String FCONTACTUNIT="010001";
@NotBlank
//收款单位类型:FRECTUNITTYPE (必填项)
private String FRECTUNITTYPE="BD_Supplier";
@NotBlank
//收款单位:FRECTUNIT (必填项)
private String FRECTUNIT="010001";
@NotBlank
//结算组织:FSETTLEORGID (必填项)
private String FSETTLEORGID="101";
@NotBlank
//采购组织:FPURCHASEORGID
private String FPURCHASEORGID="101";
@NotBlank
//采购部门:FPURCHASEDEPTID(必填项)
private String FPURCHASEDEPTID="05.04";
@NotBlank
//付款组织:FPAYORGID (必填项)
private String FPAYORGID="101";
@NotBlank
private List<FPAYBILLENTRY> FPAYBILLENTRY=new ArrayList<>();
@Data
public static class FPAYBILLENTRY{
/**
* 结算方式:FSETTLETYPEID (必填项)
*/
@NotBlank
private String FSETTLETYPEID="02";
//付款用途:FPURPOSEID (必填项)
@NotBlank
private String FPURPOSEID="SFKYT08_SYS";
@NotBlank
//表体-应付金额:FPAYTOTALAMOUNTFOR
private double FPAYTOTALAMOUNTFOR=1000.0;
@NotBlank
//付款金额:FPAYAMOUNTFOR_E
private double FPAYAMOUNTFOR_E=1000.0;
@NotBlank
//折后金额:FSETTLEPAYAMOUNTFOR
private double FSETTLEPAYAMOUNTFOR=1000.0;
@NotBlank
//表体-实付金额:FREALPAYAMOUNTFOR_D
private double FREALPAYAMOUNTFOR_D=1000.0;
@NotBlank
//付款金额本位币:FPAYAMOUNT_E
private double FPAYAMOUNT_E=1000.0;
@NotBlank
//我方银行账号:FACCOUNTID 第1行分录,银行业务的结算方式,我方银行相关信息必录
private String FACCOUNTID;
@NotBlank
//登账日期:FPOSTDATE (必填项)
private String FPOSTDATE;
@NotBlank
//入账类型:FRuZhangType (必填项)
private String FRuZhangType="1";
@NotBlank
//支付类型:FPayType (必填项)
private String FPayType="A";
}
private final static ApPayBill apPayBill = new ApPayBill();
static {
SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
Date date=new Date();
apPayBill.setFPOSTDATE(sdf.format(date));
apPayBill.setFDATE(sdf.format(date));
apPayBill.setFCONTACTUNITTYPE("BD_Supplier");
apPayBill.setFCONTACTUNIT("010001");
apPayBill.setFRECTUNITTYPE("BD_Supplier");
apPayBill.setFRECTUNIT("010001");
apPayBill.setFSETTLEORGID("101");
apPayBill.setFPURCHASEORGID("101");
apPayBill.setFPURCHASEDEPTID("05.04");
apPayBill.setFPAYORGID("101");
List<FPAYBILLENTRY> FPAYBILLENTRYs=new ArrayList<>();
FPAYBILLENTRY fpaybillentry=new FPAYBILLENTRY();
fpaybillentry.setFSETTLETYPEID("02");
//付款用途:FPURPOSEID (必填项)
fpaybillentry.setFPURPOSEID("SFKYT08_SYS");
fpaybillentry.setFPAYTOTALAMOUNTFOR(1000.0);
fpaybillentry.setFPAYAMOUNTFOR_E(1000.0);
fpaybillentry.setFSETTLEPAYAMOUNTFOR(1000.0);
fpaybillentry.setFREALPAYAMOUNTFOR_D(1000.0);
fpaybillentry.setFPAYAMOUNT_E(1000.0);
fpaybillentry.setFPOSTDATE(sdf.format(date));
fpaybillentry.setFRuZhangType("1");
fpaybillentry.setFACCOUNTID("100473861600010002");
fpaybillentry.setFPayType("A");
FPAYBILLENTRYs.add(fpaybillentry);
apPayBill.setFPAYBILLENTRY(FPAYBILLENTRYs);
}
public static ApPayBill createApPayBill() {
return apPayBill;
}
}

34
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java

@ -2,7 +2,11 @@ package com.yxt.anrui.fin.biz.kingdee;
import com.yxt.anrui.fin.api.kingdee.FinKingDeeFeign;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
import com.yxt.anrui.fin.biz.kingdee.entrybill.EntryBillService;
import com.yxt.anrui.fin.biz.kingdee.receivablebill.ReceivableBillService;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
@ -16,21 +20,41 @@ import org.springframework.web.bind.annotation.RestController;
@RestController("com.yxt.anrui.fin.biz.kingdee.FinKingDeeFeignRest")
@RequestMapping("/finKingDee")
public class FinKingDeeFeignRest implements FinKingDeeFeign {
/**
* 应付单service
*/
@Autowired
private EntryBillService entryBillService;
/**
* 收款单service
*/
@Autowired
private FinKingDeeFeignService finKingDeeFeignService;
private ReceivableBillService receivableBillService;
/**
* 收款单service
*/
@Autowired
private ApPayBillService apPayBillService;
@ApiOperation("入账保存应付单的接口")
@PostMapping("/draftEntryBill")
@ResponseBody
@Override
public ResultBean draftEntryBill(APPayable APPayable) {
return finKingDeeFeignService.draftEntryBill(APPayable);
return entryBillService.draftEntryBill(APPayable);
}
@ApiOperation("入账保存应收单的接口")
@ApiOperation("保存应收单的接口")
@PostMapping("/draftReceivableBill")
@ResponseBody
@Override
public ResultBean draftReceivableBill(ARReceivable aRReceivable) {
return finKingDeeFeignService.draftReceivableBill(aRReceivable);
return receivableBillService.draftReceivableBill(aRReceivable);
}
@ApiOperation("保存付款单的接口")
@PostMapping("/draftApPayBill")
@ResponseBody
@Override
public ResultBean draftApPayBill(ApPayBill apPayBill) {
return apPayBillService.draftApPayBill(apPayBill);
}
}

157
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignService.java

@ -1,157 +0,0 @@
package com.yxt.anrui.fin.biz.kingdee;
import cn.hutool.core.io.FileUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.anrui.fin.api.kingdee.kingdeedata.Data;
import com.yxt.anrui.fin.biz.kingdee.entrybill.EntryBillCastToKingDeeBillFields;
import com.yxt.anrui.fin.biz.kingdee.receivablebill.ReceivableBillCastToKingDeeBillFields;
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.stereotype.Service;
import java.io.*;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 转换业务数据到金蝶的接口上
*/
@Service
public class FinKingDeeFeignService {
private static final Logger log = LoggerFactory.getLogger(FinKingDeeFeignService.class);
/**
* 保存入账申请接口生成的应付单的数据推送到金蝶的平台中
* @param aPPayable
* @return
*/
public ResultBean draftEntryBill(APPayable aPPayable) {
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
if(aPPayable.getApplicationDate()==null){
return rb.setMsg("业务日期 不能为空");
}
//业务日期
map_fEntityModel_.put("FDATE",aPPayable.getApplicationDate());
//供应商:FSUPPLIERID (必填项)
if(aPPayable.getApplicationDate()==null){
return rb.setMsg("供应商 不能为空");
}
map_fEntityModel_.put("FSUPPLIERID","010001");
List<APPayable.ScmApplyInboundVehicleDto> vehicleList = aPPayable.getVehicleList()==null?new ArrayList<>(): aPPayable.getVehicleList();
for(int i=0;i<vehicleList.size();i++){
APPayable.ScmApplyInboundVehicleDto f=vehicleList.get(i);
Map<String,String> m=new HashMap<>();
if(StringUtils.isBlank(f.getVinNo())){
return rb.setMsg("物料编码 不能为空");
}
if(StringUtils.isBlank(f.getRemarks())){
return rb.setMsg("物料名称 不能为空");
}
m.put("FMATERIALID",f.getVinNo());
m.put("FMaterialDesc",f.getRemarks());
vehicleListMap.add(m);
}
String kingDeeData = EntryBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
try {
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 生成的应收单的数据推送到金蝶的平台中
* @param aRReceivable
* @return
*/
public ResultBean draftReceivableBill(ARReceivable aRReceivable) {
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
if(aRReceivable.getApplicationDate()==null){
return rb.setMsg("业务日期 不能为空");
}
//业务日期
map_fEntityModel_.put("FDATE",aRReceivable.getApplicationDate());
map_fEntityModel_.put("FCUSTOMERID",aRReceivable.getFcustomerid()==null?" JXYXB":aRReceivable.getFcustomerid());
//供应商:FSUPPLIERID (必填项)
if(aRReceivable.getApplicationDate()==null){
return rb.setMsg("供应商 不能为空");
}
// map_fEntityModel_.put("FSUPPLIERID","010001");
List<ARReceivable.ScmApplyInboundVehicleDto> vehicleList = aRReceivable.getVehicleList()==null?new ArrayList<>(): aRReceivable.getVehicleList();
for(int i=0;i<vehicleList.size();i++){
ARReceivable.ScmApplyInboundVehicleDto f=vehicleList.get(i);
Map<String,String> m=new HashMap<>();
if(StringUtils.isBlank(f.getVinNo())){
return rb.setMsg("物料编码 不能为空");
}
if(StringUtils.isBlank(f.getRemarks())){
return rb.setMsg("物料名称 不能为空");
}
m.put("FMATERIALID",f.getVinNo());
m.put("FMaterialDesc",f.getRemarks());
m.put("FPRICEUNITID","liang");
vehicleListMap.add(m);
}
String kingDeeData = ReceivableBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap);
try {
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 调用金蝶的接口
* @param data
* @return
*/
private ResultBean saveBill(String formId,String data) throws Exception {
KingDeeParams kdp=new KingDeeParams();
kdp.setData(data);
kdp.setFormId(formId);
return KingDeeSaveSKD.SavePurRKD(kdp);
}
/**
* 调用金蝶接口的数据格式
*/
class KingDeeParams{
private String formId;
private String data;
public void setFormId(String formId) {
this.formId = formId;
}
public void setData(String data) {
this.data = data;
}
public String getFormId() {
return formId;
}
public String getData() {
return data;
}
}
}

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

@ -0,0 +1,62 @@
package com.yxt.anrui.fin.biz.kingdee;
import com.alibaba.fastjson.JSONObject;
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.stereotype.Service;
import java.util.List;
/**
* 转换业务数据到金蝶的接口上
*/
@Service
public class FinKingDeeService {
public static final Logger log = LoggerFactory.getLogger(FinKingDeeService.class);
/**
* 调用金蝶的接口
* @param data
* @return
*/
public ResultBean saveBill(String formId,String data) throws Exception {
KingDeeParams kdp=new KingDeeParams();
kdp.setData(data);
kdp.setFormId(formId);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.SavePurRKD(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用金蝶接口的数据格式
*/
class KingDeeParams{
/**
* 表单名称
*/
private String formId;
/**
* 接口的主要业务参数
*/
private String data;
public void setFormId(String formId) {
this.formId = formId;
}
public void setData(String data) {
this.data = data;
}
public String getFormId() {
return formId;
}
public String getData() {
return data;
}
}
}

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

@ -61,7 +61,7 @@ public class KingDeeSaveSKD {
* @throws Exception
*/
@SuppressWarnings({"resource", "deprecation"})
public static ResultBean<List<KingDeeResult> > SavePurRKD(FinKingDeeFeignService.KingDeeParams jsonParam ) throws Exception {
public static ResultBean<List<KingDeeResult> > SavePurRKD(FinKingDeeService.KingDeeParams jsonParam ) throws Exception {
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
/********** 用户登录Begin ************************/
@ -79,7 +79,7 @@ public class KingDeeSaveSKD {
* @param httpclient
* @return
*/
public static ResultBean<List<KingDeeResult>> saveKingDeeBillData(FinKingDeeFeignService.KingDeeParams jsonParam,HttpClient httpclient) {
public static ResultBean<List<KingDeeResult>> saveKingDeeBillData(FinKingDeeService.KingDeeParams jsonParam, HttpClient httpclient) {
ResultBean<List<KingDeeResult> > rb= ResultBean.fireFail();
try {
URI save_uri = new URI(Save_URL);
@ -88,6 +88,8 @@ public class KingDeeSaveSKD {
log.info(jsonParam.getData());
/*String ss="{\"formId\":\"AR_receivable\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"YSD01_SYS\\\"},\\\"FDATE\\\":\\\"2022-08-02 00:00:00\\\",\\\"FISINIT\\\":false,\\\"FENDDATE_H\\\":\\\"2022-08-02 00:00:00\\\",\\\"FCUSTOMERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FISPRICEEXCLUDETAX\\\":true,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FSALEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FISTAX\\\":true,\\\"FCancelStatus\\\":\\\"A\\\",\\\"FBUSINESSTYPE\\\":\\\"BZ\\\",\\\"FSetAccountType\\\":\\\"1\\\",\\\"FISHookMatch\\\":false,\\\"FISINVOICEARLIER\\\":false,\\\"F_PMZC_Assistant2\\\":{\\\"FNumber\\\":\\\"01\\\"},\\\"FsubHeadSuppiler\\\":{\\\"FORDERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FTRANSFERID\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"},\\\"FChargeId\\\":{\\\"FNumber\\\":\\\" JXYXB\\\"}},\\\"FsubHeadFinc\\\":{\\\"FACCNTTIMEJUDGETIME\\\":\\\"2022-08-02 00:00:00\\\",\\\"FMAINBOOKSTDCURRID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGETYPE\\\":{\\\"FNumber\\\":\\\"HLTX01_SYS\\\"},\\\"FExchangeRate\\\":1.0,\\\"FTaxAmountFor\\\":121.01,\\\"FNoTaxAmountFor\\\":12100.99},\\\"FEntityDetail\\\":[{\\\"FMATERIALID\\\":{\\\"FNumber\\\":\\\" JX091054\\\"},\\\"FMaterialDesc\\\":\\\"X牵引6*4-550超\\\",\\\"FPRICEUNITID\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FPriceQty\\\":1.0,\\\"FTaxPrice\\\":12222.0,\\\"FPrice\\\":12100.99,\\\"FEntryTaxRate\\\":1.0,\\\"FNoTaxAmountFor_D\\\":12100.99,\\\"FTAXAMOUNTFOR_D\\\":121.01,\\\"FALLAMOUNTFOR_D\\\":12222.0,\\\"FDeliveryControl\\\":false,\\\"FStockUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FStockQty\\\":1.0,\\\"FIsFree\\\":false,\\\"FStockBaseQty\\\":1.0,\\\"FSalUnitId\\\":{\\\"FNumber\\\":\\\"liang\\\"},\\\"FSalQty\\\":1.0,\\\"FSalBaseQty\\\":1.0,\\\"FPriceBaseDen\\\":1.0,\\\"FSalBaseNum\\\":1.0,\\\"FStockBaseNum\\\":1.0}],\\\"FEntityPlan\\\":[{\\\"FENDDATE\\\":\\\"2022-08-02 00:00:00\\\",\\\"FPAYRATE\\\":100.0,\\\"FPAYAMOUNTFOR\\\":12222.0}]}}\"}";
log.info("ss-:{}",ss);*/
/* String ss="{\"formId\":\"AP_PAYBILL\",\"data\":\"{\\\"Creator\\\":\\\"\\\",\\\"NeedUpDateFields\\\":[],\\\"NeedReturnFields\\\":[],\\\"IsDeleteEntry\\\":\\\"True\\\",\\\"SubSystemId\\\":\\\"\\\",\\\"IsVerifyBaseDataField\\\":\\\"false\\\",\\\"IsEntryBatchFill\\\":\\\"True\\\",\\\"ValidateFlag\\\":\\\"True\\\",\\\"NumberSearch\\\":\\\"True\\\",\\\"InterationFlags\\\":\\\"\\\",\\\"Model\\\":{\\\"FID\\\":0,\\\"FBillTypeID\\\":{\\\"FNUMBER\\\":\\\"FKDLX01_SYS\\\"},\\\"FDATE\\\":\\\"2022-08-10 00:00:00\\\",\\\"FCONTACTUNITTYPE\\\":\\\"BD_Supplier\\\",\\\"FCONTACTUNIT\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FRECTUNITTYPE\\\":\\\"BD_Supplier\\\",\\\"FRECTUNIT\\\":{\\\"FNumber\\\":\\\"010001\\\"},\\\"FISINIT\\\":false,\\\"FCURRENCYID\\\":{\\\"FNumber\\\":\\\"PRE001\\\"},\\\"FEXCHANGERATE\\\":1.0,\\\"FSETTLERATE\\\":1.0,\\\"FSETTLEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPURCHASEORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FPURCHASEDEPTID\\\":{\\\"FNumber\\\":\\\"05.04\\\"},\\\"FDOCUMENTSTATUS\\\":\\\"Z\\\",\\\"FCancelStatus\\\":\\\"A\\\",\\\"FPAYORGID\\\":{\\\"FNumber\\\":\\\"101\\\"},\\\"FISSAMEORG\\\":true,\\\"FIsCredit\\\":false,\\\"FSETTLECUR\\\":{\\\"FNUMBER\\\":\\\"PRE001\\\"},\\\"FIsWriteOff\\\":false,\\\"FREALPAY\\\":false,\\\"F_PAEZ_Assistant\\\":{\\\"FNumber\\\":\\\"001\\\"},\\\"FPAYBILLENTRY\\\":[{\\\"FSETTLETYPEID\\\":{\\\"FNumber\\\":\\\"02\\\"},\\\"FPURPOSEID\\\":{\\\"FNumber\\\":\\\"SFKYT08_SYS\\\"},\\\"FPAYTOTALAMOUNTFOR\\\":1000.0,\\\"FPAYAMOUNTFOR_E\\\":1000.0,\\\"FSETTLEPAYAMOUNTFOR\\\":1000.0,\\\"FREALPAYAMOUNTFOR_D\\\":1000.0,\\\"FPAYAMOUNT_E\\\":1000.0,\\\"FACCOUNTID\\\":{\\\"FNumber\\\":\\\"100473861600010002\\\"},\\\"FPOSTDATE\\\":\\\"2022-08-10 00:00:00\\\",\\\"FRuZhangType\\\":\\\"1\\\",\\\"FPayType\\\":\\\"A\\\"}]}}\"}";
log.info("ss-:{}",ss);*/
StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
log.info(JSON.toJSONString(entity));
entity.setContentEncoding("UTF-8");

59
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillCastToKingDeeBillFields.java

@ -0,0 +1,59 @@
package com.yxt.anrui.fin.biz.kingdee.appaybill;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.parser.Feature;
import com.yxt.anrui.fin.biz.kingdee.KingDeeUtils;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 封装转换的类
*/
public class ApPayBillCastToKingDeeBillFields {
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @param map_fEntityModel_
* @param vehicleList
* @return
*/
public static String getKingDeeData(Map<String,String> map_fEntityModel_,List<Map<String,String>> vehicleList){
/**
* 取模板
*/
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/appaybill/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/appaybill/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/appaybill/data_model.json");
String fPAYBILLENTRY_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/appaybill/data_FPAYBILLENTRY.json");
//模板字符创转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);
List<JSONObject> list_fEntityDetail_=new ArrayList<>();
//对模板字段赋值 根据传递进来的map数据的集合进行赋值
for(int i=0;i<vehicleList.size();i++){
Map<String,String> params=vehicleList.get(i);
Map<String,String> map_fEntityDetail_=new HashMap<>();
for (Map.Entry<String, String> entry : params.entrySet()) {
map_fEntityDetail_.put(entry.getKey(),entry.getValue());
}
fPAYBILLENTRY_ =KingDeeUtils.replaceTemplateParams(fPAYBILLENTRY_, map_fEntityDetail_);
list_fEntityDetail_.add(JSONObject.parseObject(fPAYBILLENTRY_,Feature.OrderedField));
}
jsonFEntityModel_.put("FPAYBILLENTRY", JSONArray.parseArray(JSON.toJSONString(list_fEntityDetail_)));
jsonFEntityData_.put("Model",JSONObject.parseObject(JSON.toJSONString(jsonFEntityModel_),Feature.OrderedField));
jsonObj.put("data",jsonFEntityData_.toJSONString());
return jsonObj.toJSONString();
}
}

80
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/ApPayBillService.java

@ -0,0 +1,80 @@
package com.yxt.anrui.fin.biz.kingdee.appaybill;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.appaybill.ApPayBill;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.entrybill.EntryBillCastToKingDeeBillFields;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class ApPayBillService extends FinKingDeeService {
/**
* 保存收款单
* @param apPayBill
* @return
*/
public ResultBean draftApPayBill(ApPayBill apPayBill) {
apPayBill=ApPayBill.createApPayBill();
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//业务日期
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(apPayBill);
List<ApPayBill.FPAYBILLENTRY> fpaybillentrYs = apPayBill.getFPAYBILLENTRY();
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
map_fEntityModel_.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
map_fEntityModel_.put(entry.getKey(), entry.getValue().toString());
}
}
//准备 物料列表的数据 ForEntryBill
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForApPayBill(fpaybillentrYs);
if(!vehicleListMap.getSuccess()){
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = ApPayBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
try {
return saveBill(KingDeeBillId.AP_PAYBILL.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 准备 物料列表的数据 ApPayBill
*/
private ResultBean<List<Map<String, String>>>
createVehicleListsForApPayBill(List<ApPayBill.FPAYBILLENTRY> vehicleList) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
for(int i = 0; i< vehicleList.size(); i++){
ApPayBill.FPAYBILLENTRY f= vehicleList.get(i);
Map<String,String> m=new HashMap<>();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(f);
for (Map.Entry<String, Object> entry : stringObjectMap.entrySet()) {
if (entry.getValue() instanceof String) {
log.info("String key:{},value:{}",entry.getKey(),(String) entry.getValue());
m.put(entry.getKey(), (String) entry.getValue());
}else if(entry.getValue() instanceof Double){
log.info("Double key:{},value:{}",entry.getKey(),entry.getValue());
m.put(entry.getKey(), entry.getValue().toString());
}
}
vehicleListMap.add(m);
}
return rb.success().setData(vehicleListMap);
}
}

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

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

17
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/data_FPAYBILLENTRY.json

@ -0,0 +1,17 @@
{
"FSETTLETYPEID": {
"FNumber": "@KD_FSETTLETYPEID"
},
"FPURPOSEID": {
"FNumber": "@KD_FPURPOSEID"
},
"FPAYTOTALAMOUNTFOR": @KD_FPAYTOTALAMOUNTFOR,
"FPAYAMOUNTFOR_E": @KD_FPAYAMOUNTFOR_E,
"FSETTLEPAYAMOUNTFOR": @KD_FSETTLEPAYAMOUNTFOR,
"FREALPAYAMOUNTFOR_D": @KD_FREALPAYAMOUNTFOR_D,
"FPAYAMOUNT_E": @KD_FPAYAMOUNT_E,
"FACCOUNTID": {"FNumber":"@KD_FACCOUNTID"},
"FPOSTDATE": "@KD_FPOSTDATE",
"FRuZhangType": "@KD_FRuZhangType",
"FPayType": "@KD_FPayType"
}

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

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

46
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/data_model.json

@ -0,0 +1,46 @@
{
"FID": 0,
"FBillTypeID": {
"FNUMBER": "FKDLX01_SYS"
},
"FDATE": "@KD_FDATE",
"FCONTACTUNITTYPE": "@KD_FCONTACTUNITTYPE",
"FCONTACTUNIT": {
"FNumber": "@KD_FCONTACTUNIT"
},
"FRECTUNITTYPE": "@KD_FRECTUNITTYPE",
"FRECTUNIT": {
"FNumber": "@KD_FRECTUNIT"
},
"FISINIT": false,
"FCURRENCYID": {
"FNumber": "PRE001"
},
"FEXCHANGERATE": 1.0,
"FSETTLERATE": 1.0,
"FSETTLEORGID": {
"FNumber": "@KD_FSETTLEORGID"
},
"FPURCHASEORGID": {
"FNumber": "@KD_FPURCHASEORGID"
},
"FPURCHASEDEPTID": {
"FNumber": "@KD_FPURCHASEDEPTID"
},
"FDOCUMENTSTATUS": "Z",
"FCancelStatus": "A",
"FPAYORGID": {
"FNumber": "@KD_FPAYORGID"
},
"FISSAMEORG": true,
"FIsCredit": false,
"FSETTLECUR": {
"FNUMBER": "PRE001"
},
"FIsWriteOff": false,
"FREALPAY": false,
"F_PAEZ_Assistant": {
"FNumber": "001"
},
"FPAYBILLENTRY": []
}

204
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/remarks.txt

@ -0,0 +1,204 @@
一、请求参数说明:
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类型(必录)
五、字段说明:
长短款本位币:FOVERSHORTAGE
长短款:FOVERSHORTAGEFOR
银企处理详细信息:FEBMSG
费用承担部门:FEXPENSEDEPTID_E
含税单价:FPRICE
计价单位:FPRICEUNITID
支付类型:FPayType (必填项)
物料名称:FMATERIALNAME
物料编码:FMATERIALID
登账日期:FPOSTDATE (必填项)
采购订单号:FPURCHASEORDERNO
入账类型:FRuZhangType (必填项)
采购订单明细内码:FORDERENTRYID
采购订单行号:FMATERIALSEQ
油卡号码:F_PMZC_Assistant1
物流项目:F_PMZC_Base1
物流车辆:F_PMZC_Base
应付金额:FAFTTAXTOTALAMOUNT
结算方式:FSRCSETTLETYPEID
本次付款金额:FREALPAYAMOUNT_S
立账日期:FOPENACCOUNTDATE
SwiftCode:FSwiftCode
退款关联数量:FREFUNDQTY
数量:FQTY
已核销金额本位币:FWRITTENOFFAMOUNT
运输编号:F_PMZC_Assistant
银行:F_PAEZ_Base
应付类别(表体):F_PAEZ_Assistant1
联行号:FCNAPS
收款类型:FRecType (必填项)
开户行地址:FOpenAddressRec
收款银行:FBankTypeRec
地区:FDistrict
城市:FCity
省:FProvince
我方开户行:FPAYBANKID
我方账户名称:FPAYACCOUNTNAME
我方银行账号:FACCOUNTID
对方开户行:FOPPOSITEBANKNAME
付款用途:FPURPOSEID (必填项)
勾对:FBLEND
结算号:FSETTLENO
退款关联金额:FRefundAmount
费用项目:FCOSTID
内部账户名称:FINNERACCOUNTNAME
现金账号:FCashAccount
是否登账:FISPOST
付款金额本位币:FPAYAMOUNT_E
付款金额:FPAYAMOUNTFOR_E
提交/撤销银行人:FSubmitUser
提交银行状态:FSubmitStatus
加急:FUrgent
提交/撤销银行时间:FSubmitBankTime
内部账号:FINNERACCOUNTID
银行状态码:FBankCode
银行处理状态:FBankStatus
源单内码:FSRCBILLID
内部账户:FINNERACCOUNTID_B
当前占用金额:FUSEDAMOUNTFOR
可用余额:FPARLEFTAMOUNTFOR
票据组织(临时用的):FTempOrgId
票面金额本位币:FBPPARAMOUNT
票面金额:FKDBPPARAMOUNT
票据号:FKDBPBILLNO
预付预收已核销金额:FPREMATCHAMOUNTFOR
关联金额:FASSAMOUNTFOR
关联单据编号:FASSBILLNO
票据流水号:FBILLID
结算状态:FKDBPSETTLESTATUS
到期日:FKDBPDUEDATE
票据类型:FKDBPBILLTYPE
往来单位类型:FBCONTACTUNITTYPE
票面金额:FParAmount
客户:FKDBPCUSTOMER
往来单位:FBCONTACTUNIT
票据号:FKDBPARBILLNO
背书金额本位币:FReturnAmountStd
票面金额本位币:FPARAMOUNTSTD
内部账户:FInnerActId
当前占用金额本位币:FUSEDAMOUNT
可用余额本位币:FPARLEFTAMOUNT
票据流水号:FReceivebleBillId
票据类型:FKDBPARBILLTYPE
背书金额:FReturnAmount
付款用途:FPayPurse
本次还本金额:FRealPclAmount
计划付利息金额:FPlanInstAmount
付款用途:FPAYPURPOSEID
本次付利息金额:FRealInstAmount
物料编码:FSRCMATERIALID
采购订单编号:FPURORDERNO
费用项目:FSRCCOSTID
到期日:FEXPIRY
源单行号:FSRCSEQ
源单行内码:FSRCROWID
计划付款金额:FPLANPAYAMOUNT
源单编号:FSRCBILLNO
源单类型:FSOURCETYPE
源单币别:FSRCCURRENCYID
备注:FSRCREMARK
预付采购订单号:FPREPAYORDERNO
本次付款金额本位币:FREALPAYAMOUNTLOC
计价单位:FSRCPRICEUNITID
关联单据ID:FASSBILLID
数量:FSRCQTY
含税单价:FSRCPRICE
采购订单明细内码:FSRCORDERENTRYID
采购订单行号:FSRCMATERIALSEQ
物料名称:FSRCMATERIALNAME
税额:FTAXAMOUNT
应付款金额本位币:FPLANPAYAMOUNTLOC
费用承担部门:FEXPENSEDEPTID
税额本位币:FTAXAMOUNTLOC
采购订单ID:FPURCHASEORDERID
作废状态:FCancelStatus (必填项)
作废人:FCancellerId
会计核算体系:FACCOUNTSYSTEM
作废日期:FCancelDate
收款单位类型:FRECTUNITTYPE (必填项)
往来单位:FCONTACTUNIT (必填项)
往来单位类型:FCONTACTUNITTYPE (必填项)
表头-实付金额:FREALPAYAMOUNTFOR_H
采购部门:FPURCHASEDEPTID
采购组:FPURCHASERGROUPID
是否期初单据:FISINIT
部门:FDepartment
业务类型:FBUSINESSTYPE
来源系统:FSOURCESYSTEM
收款单位:FRECTUNIT (必填项)
创建日期:FCreateDate
审核人:FAPPROVERID
创建人:FCreatorId
单据状态:FDOCUMENTSTATUS (必填项)
单据编号:FBillNo
修改人:FModifierId
采购员:FPURCHASERID
单据类型:FBillTypeID (必填项)
核销状态:FWRITTENOFFSTATUS
采购组织:FPURCHASEORGID
审核日期:FApproveDate
结算组织:FSETTLEORGID
表头-应付金额:FPAYTOTALAMOUNTFOR_H
修改日期:FModifyDate
业务日期:FDATE (必填项)
币别:FCURRENCYID (必填项)
结算方式:FSETTLETYPEID (必填项)
应付类别:F_PAEZ_Assistant (必填项)
转出往来单位类型:FOUTCONTACTTYPE
折后金额:FSETTLEPAYAMOUNTFOR
折后金额本位币:FSETTLEPAYAMOUNT
表体-应付金额:FPAYTOTALAMOUNTFOR
现金折扣:FSETTLEDISTAMOUNTFOR
期望付款日期:FBookingDate
备注:FREMARK
第三方单据编号:FTHIRDBILLNO
转出往来单位:FOUTCONTACTID
现购:FISCASHPURCHASE
流水号:FWBSETTLENO
手续费本位币:FHANDLINGCHARGE
手续费:FHANDLINGCHARGEFOR
采购订单:FPAYITEM
表体-实付金额:FREALPAYAMOUNTFOR_D
预付项目类型:FPAYITEMTYPE
关联金额:FASSTOTALAMOUNTFOR
表体-实付金额本位币:FREALPAYAMOUNT_D
表体明细-核销状态:FWRITTENOFFSTATUS_D
表体-应付金额本位币:FPAYTOTALAMOUNT
现金折扣本位币:FSETTLEDISTAMOUNT
表体明细-已核销金额:FWRITTENOFFAMOUNTFOR_D
对方账户名称:FOPPOSITECCOUNTNAME
备注:FCOMMENT
对方银行账号:FOPPOSITEBANKACCOUNT
结算汇率:FSETTLERATE
是否信贷业务:FIsCredit
付款金额:FPAYAMOUNTFOR
结算币别:FSETTLECUR (必填项)
本位币:FMAINBOOKID
汇率类型:FEXCHANGETYPE
付款组织:FPAYORGID (必填项)
是否相同组织:FISSAMEORG
扫描点:FScanPoint
是否转销:FIsWriteOff
实报实付:FREALPAY
核销方式:FMatchMethodID
表头-付款金额本位币:FPAYAMOUNT
表头-应付金额本位币:FPAYTOTALAMOUNT_H
汇率:FEXCHANGERATE
表头-实付金额本位币:FREALPAYAMOUNT_H

15
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/testParams.txt

@ -0,0 +1,15 @@
{
"sid": "63",
"userSid": "73",
"applicationDate": "2022-08-01 06:22:08",
"applicationCode": "1659335563",
"vehicleList": [
{
"sid": "25",
"applySid": "11",
"modelSid": " JX091054",
"vinNo": " JX091054",
"remarks": "X牵引6*4-550超"
}
]
}

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

@ -0,0 +1 @@
{"formId":"AP_PAYBILL","data":"{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":0,\"FBillTypeID\":{\"FNUMBER\":\"FKDLX01_SYS\"},\"FDATE\":\"2022-08-10 00:00:00\",\"FCONTACTUNITTYPE\":\"BD_Supplier\",\"FCONTACTUNIT\":{\"FNumber\":\"010001\"},\"FRECTUNITTYPE\":\"BD_Supplier\",\"FRECTUNIT\":{\"FNumber\":\"010001\"},\"FISINIT\":false,\"FCURRENCYID\":{\"FNumber\":\"PRE001\"},\"FEXCHANGERATE\":1.0,\"FSETTLERATE\":1.0,\"FSETTLEORGID\":{\"FNumber\":\"101\"},\"FPURCHASEORGID\":{\"FNumber\":\"101\"},\"FPURCHASEDEPTID\":{\"FNumber\":\"05.04\"},\"FDOCUMENTSTATUS\":\"Z\",\"FCancelStatus\":\"A\",\"FPAYORGID\":{\"FNumber\":\"101\"},\"FISSAMEORG\":true,\"FIsCredit\":false,\"FSETTLECUR\":{\"FNUMBER\":\"PRE001\"},\"FIsWriteOff\":false,\"FREALPAY\":false,\"F_PAEZ_Assistant\":{\"FNumber\":\"001\"},\"FPAYBILLENTRY\":[{\"FSETTLETYPEID\":{\"FNumber\":\"02\"},\"FPURPOSEID\":{\"FNumber\":\"SFKYT08_SYS\"},\"FPAYTOTALAMOUNTFOR\":1000.0,\"FPAYAMOUNTFOR_E\":1000.0,\"FSETTLEPAYAMOUNTFOR\":1000.0,\"FREALPAYAMOUNTFOR_D\":1000.0,\"FPAYAMOUNT_E\":1000.0,\"FACCOUNTID\":{\"FNumber\":\"100473861600010002\"},\"FPOSTDATE\":\"2022-08-10 00:00:00\",\"FRuZhangType\":\"1\",\"FPayType\":\"A\"}]}}"}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/~$付款单的参数必填备注.xlsx

Binary file not shown.

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/付款单的参数必填备注.xlsx

Binary file not shown.

74
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/entrybill/EntryBillService.java

@ -0,0 +1,74 @@
package com.yxt.anrui.fin.biz.kingdee.entrybill;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.appayable.APPayable;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class EntryBillService extends FinKingDeeService {
/**
* 保存入账申请接口生成的应付单的数据推送到金蝶的平台中
* @param aPPayable
* @return
*/
public ResultBean draftEntryBill(APPayable aPPayable) {
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
if(aPPayable.getApplicationDate()==null){
return rb.setMsg("业务日期 不能为空");
}
//业务日期
map_fEntityModel_.put("FDATE",aPPayable.getApplicationDate());
//供应商:FSUPPLIERID (必填项)
if(aPPayable.getApplicationDate()==null){
return rb.setMsg("供应商 不能为空");
}
map_fEntityModel_.put("FSUPPLIERID","010001");
List<APPayable.ScmApplyInboundVehicleDto> vehicleList = aPPayable.getVehicleList()==null?new ArrayList<>(): aPPayable.getVehicleList();
//准备 物料列表的数据 ForEntryBill
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForEntryBill(vehicleList);
if(!vehicleListMap.getSuccess()){
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = EntryBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
try {
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 准备 物料列表的数据 ForEntryBill
*/
public ResultBean<List<Map<String, String>>> createVehicleListsForEntryBill(List<APPayable.ScmApplyInboundVehicleDto> vehicleList) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
//物料的数组集合
List<Map<String,String>> vehicleListMap=new ArrayList<>();
for(int i = 0; i< vehicleList.size(); i++){
APPayable.ScmApplyInboundVehicleDto f= vehicleList.get(i);
Map<String,String> m=new HashMap<>();
if(StringUtils.isBlank(f.getVinNo())){
return rb.setMsg("物料编码 不能为空");
}
if(StringUtils.isBlank(f.getRemarks())){
return rb.setMsg("物料名称 不能为空");
}
m.put("FMATERIALID",f.getVinNo());
m.put("FMaterialDesc",f.getRemarks());
vehicleListMap.add(m);
}
return rb.success().setData(vehicleListMap);
}
}

76
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/receivablebill/ReceivableBillService.java

@ -0,0 +1,76 @@
package com.yxt.anrui.fin.biz.kingdee.receivablebill;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.arreceivable.ARReceivable;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class ReceivableBillService extends FinKingDeeService {
/**
* 生成的应收单的数据推送到金蝶的平台中
* @param aRReceivable
* @return
*/
public ResultBean draftReceivableBill(ARReceivable aRReceivable) {
ResultBean rb=ResultBean.fireFail();
//业务表的主表数据集合
Map<String,String> map_fEntityModel_=new HashMap<>();
//物料的数组集合
if(aRReceivable.getApplicationDate()==null){
return rb.setMsg("业务日期 不能为空");
}
//业务日期
map_fEntityModel_.put("FDATE",aRReceivable.getApplicationDate());
map_fEntityModel_.put("FCUSTOMERID",aRReceivable.getFcustomerid()==null?" JXYXB":aRReceivable.getFcustomerid());
//供应商:FSUPPLIERID (必填项)
if(aRReceivable.getApplicationDate()==null){
return rb.setMsg("供应商 不能为空");
}
// map_fEntityModel_.put("FSUPPLIERID","010001");
List<ARReceivable.ScmApplyInboundVehicleDto> vehicleList = aRReceivable.getVehicleList()==null?new ArrayList<>(): aRReceivable.getVehicleList();
//准备 物料列表的数据
ResultBean<List<Map<String, String>>> vehicleListMap = createVehicleListsForReceivableBill(vehicleList);
if(!vehicleListMap.getSuccess()){
return rb.setMsg(vehicleListMap.getMsg());
}
String kingDeeData = ReceivableBillCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_,vehicleListMap.getData());
try {
return saveBill(KingDeeBillId.AP_PAYABLE.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 准备 物料列表的数据 ForReceivableBill
*/
public ResultBean<List<Map<String, String>>> createVehicleListsForReceivableBill(List<ARReceivable.ScmApplyInboundVehicleDto> vehicleList) {
ResultBean<List<Map<String, String>>> rb=ResultBean.fireFail();
List<Map<String,String>> vehicleListMap=new ArrayList<>();
for(int i = 0; i< vehicleList.size(); i++){
ARReceivable.ScmApplyInboundVehicleDto f= vehicleList.get(i);
Map<String,String> m=new HashMap<>();
if(StringUtils.isBlank(f.getVinNo())){
return rb.setMsg("物料编码 不能为空");
}
if(StringUtils.isBlank(f.getRemarks())){
return rb.setMsg("物料名称 不能为空");
}
m.put("FMATERIALID",f.getVinNo());
m.put("FMaterialDesc",f.getRemarks());
m.put("FPRICEUNITID","liang");
vehicleListMap.add(m);
}
return rb.success().setData(vehicleListMap);
}
}

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java

@ -271,9 +271,9 @@ public class FlowableRest implements FlowableFeign {
return rb.setMsg("任务不存在");
}
String assignee = task.getAssignee();
/* if(StringUtils.isNotBlank(assignee)&& assignee.indexOf(userSid)<0){
if(StringUtils.isNotBlank(assignee)&& assignee.indexOf(userSid)<0){
return rb.setMsg("当前用户不是环节的待办人,不能进行办理操作!");
}*/
}
String nodeState = "";
String taskDefKey = "";
vo.setSid(businessSid);

7
anrui-gateway/src/main/resources/application.yml

@ -131,14 +131,15 @@ ignore:
- /portal/v1/regions/getCity
- /portal/v1/regions/getCounty
- /portal/v1/wxuser/test
- /portal/v1/appuser/updateAppId #解绑用户的appId
whitesTwo: #包含所有
###swagger相关开始
#- /doc.html
- /doc.html
- /webjars/**
#- /swagger-resources
#- /v2/**
- /swagger-resources
- /v2/**
- /favicon.ico
- /upload/**
###swagger相关结束

5
anrui-portal/anrui-portal-biz/pom.xml

@ -15,6 +15,11 @@
<version>0.0.1</version>
<dependencies>
<dependency>
<artifactId>anrui-terminal-api</artifactId>
<groupId>com.yxt.anrui</groupId>
<version>0.0.1</version>
</dependency>
<dependency>
<groupId>com.yxt</groupId>
<artifactId>yxt-common-base</artifactId>

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/PortalApplication.java

@ -14,7 +14,7 @@ import org.springframework.cloud.openfeign.EnableFeignClients;
"com.yxt.anrui.portal"
})
@EnableDiscoveryClient
@EnableFeignClients(basePackages = {"com.yxt.anrui.crm","com.yxt.anrui.flowable","com.yxt.messagecenter"})
@EnableFeignClients(basePackages = {"com.yxt.anrui.crm","com.yxt.anrui.flowable","com.yxt.messagecenter","com.yxt.anrui.terminal"})
public class PortalApplication {
public static void main(String[] args) {

40
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexRest.java

@ -11,8 +11,11 @@ import com.yxt.anrui.portal.biz.banner.BannerService;
import com.yxt.anrui.portal.biz.flow.FlowableService;
import com.yxt.anrui.portal.biz.formnotice.FormNoticeService;
import com.yxt.anrui.portal.biz.sysuser.SysUserService;
import com.yxt.anrui.terminal.api.supplychain.baseInfo.AppScmBaseInfoFeign;
import com.yxt.anrui.terminal.api.supplychain.baseInfo.AppScmBaseInfoVo;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.DateUtils;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
@ -53,6 +56,9 @@ public class AppIndexRest implements AppIndexFeign {
private String LINKSID = "147694bb-c765-4426-8f67-d19a66585f31";
@Autowired
private AppScmBaseInfoFeign appScmBaseInfoFeign;
@Override
public ResultBean<AppIndexVo> index(String userSid) {
ResultBean<AppIndexVo> rb = ResultBean.fireFail();
@ -69,12 +75,6 @@ public class AppIndexRest implements AppIndexFeign {
PagerQuery<FormNoticeQuery> formNoticeQueryPage = new PagerQuery<>();
formNoticeQueryPage.setParams(formNoticeQuery);
formNoticeQueryPage.getParams().setClosingDate(DateUtils.dateConvertStr(new Date()));
// SysUserVo sysUserVo = sysUserService.fetchBySidVo(query.getUserSid());
// if (null != sysUserVo) {
// formNoticeQueryPage.getParams().setCreateOrgSid(sysUserVo.getOrganizationSid());
// }else {
// formNoticeQueryPage.getParams().setCreateOrgSid("-1");
// }
//取前6条
formNoticeQueryPage.setSize(6);
List<FormNoticeVo> formNoticeVoList = formNoticeService.pageList(formNoticeQueryPage).getRecords();
@ -85,7 +85,33 @@ public class AppIndexRest implements AppIndexFeign {
String path = fileUploadComponent.getUrlPrefix();
List<AppSubsetVersionVo> subsetVersionVoList = appSubsetVersionService.selectVersionList(linkSid, path);
subsetVersionVoList.stream().forEach(item -> {
item.setCornerNum("3");
if ("98ff0724-5df4-4fc7-ab6d-3996e7706acd".equals(item.getAppSid())) {
//供应链
ResultBean<AppScmBaseInfoVo> indexCountVo = appScmBaseInfoFeign.getToDoNum(userSid);
int count = 0;
if (indexCountVo.getSuccess()) {
AppScmBaseInfoVo appScmBaseInfoVo = indexCountVo.getData();
if (StringUtils.isNotBlank(appScmBaseInfoVo.getInspectedCarNum())) {
count = count + Integer.valueOf(appScmBaseInfoVo.getInspectedCarNum()).intValue();
}
if (StringUtils.isNotBlank(appScmBaseInfoVo.getInspectinoCarNum())) {
count = count + Integer.valueOf(appScmBaseInfoVo.getInspectinoCarNum()).intValue();
}
if (StringUtils.isNotBlank(appScmBaseInfoVo.getMoveCarNum())) {
count = count + Integer.valueOf(appScmBaseInfoVo.getMoveCarNum()).intValue();
}
if (StringUtils.isNotBlank(appScmBaseInfoVo.getStorageCarNum())) {
count = count + Integer.valueOf(appScmBaseInfoVo.getStorageCarNum()).intValue();
}
if (StringUtils.isNotBlank(appScmBaseInfoVo.getInventoryCarNum())) {
count = count + Integer.valueOf(appScmBaseInfoVo.getInventoryCarNum()).intValue();
}
}
item.setCornerNum(String.valueOf(count));
} else {
item.setCornerNum("3");
}
});
map.put("apps", subsetVersionVoList);

6
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehicleinventory/LastInfo.java

@ -4,6 +4,9 @@ import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class LastInfo implements Vo {
@ -25,4 +28,7 @@ public class LastInfo implements Vo {
@ApiModelProperty("上次备注")
private String lastRemarks;
@ApiModelProperty("见证材料")
private List<String> images;
}

20
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehicleinventory/ScmVehicleInventoryService.java

@ -302,16 +302,18 @@ public class ScmVehicleInventoryService extends MybatisBaseService<ScmVehicleInv
scmFileService.deleteByLinkSidAndType(scmVehicleInventory.getSid(), type);
List<String> images = dto.getImages();
for (String image : images) {
if (image.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
s = image.replace(fileUploadComponent.getUrlPrefix(), "");
if (images.size() > 0) {
for (String image : images) {
if (image.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
s = image.replace(fileUploadComponent.getUrlPrefix(), "");
}
ScmFile scmFile = new ScmFile();
scmFile.setAttachType(type);
scmFile.setFileName("盘库见证材料");
scmFile.setFilePath(s);
scmFile.setLinkSid(scmVehicleInventory.getSid());
scmFileService.save(scmFile);
}
ScmFile scmFile = new ScmFile();
scmFile.setAttachType(type);
scmFile.setFileName("盘库见证材料");
scmFile.setFilePath(s);
scmFile.setLinkSid(scmVehicleInventory.getSid());
scmFileService.save(scmFile);
}
save(scmVehicleInventory);
return rb.success().setMsg("保存成功");

9
anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/baseoutsourcingapplicationAdd.vue

@ -633,13 +633,18 @@ export default {
this.nodeUserDialogVisible = false
},*/
doSubmit(row) {
var contract=this.formobj.contract;
if(!contract.fileName){
alert('合同附件不能为空!');
return false;
}
//
this.submitdisabled = true
//this.submitdisabled = true
this.formobj.userSid = window.sessionStorage.getItem('userSid')
this.formobj.orgSid = this.$store.getters.orgSid
//id
this.agree()
this.agree()
/*req.getNextNodesForSubmit(this.formobj).then(resp=>{
if (resp.success) {
//

18
anrui-scm/anrui-scm-ui/src/views/baseoutsourcingapplication/workflow/baseoutsourcingapplicationAdd.vue

@ -360,8 +360,7 @@ export default {
manufactorSettlementPrice: [{ required: true, message: '厂家合同价不能为空', trigger: 'blur' }], //
num: [{ required: true, message: '台数不能为空', trigger: 'blur' }], //
deposit: [{ required: true, message: '订金不能为空', trigger: 'blur' }], //
expenseName: [{ required: true, message: '费用名称不能为空', trigger: 'blur' }], //
totalExpenseAmount: [{ required: true, message: '费用金额合计不能为空', trigger: 'blur' }], //
/* expenseName: [{ required: true, message: '费用名称不能为空', trigger: 'blur' }], // 费用名称*/
orgSid: [{ required: true, message: '部门sid不能为空', trigger: 'blur' }] // sid
}
}
@ -399,12 +398,14 @@ export default {
methods: {
//
handleRemoveAttachment (file, files) {
this.formobj.fileList =
this.formobj.fileList.filter(item => item.uid !== file.uid)
this.fileList=this.fileList.filter(item => item.uid !== file.uid)
this.formobj.contract={}
},
//
handleDown(row) {
console.log(row);
var xhr=new XMLHttpRequest();
xhr.open('GET', process.env.VUE_APP_BASE_API+"/base/file/download?filePath="+ row.url+"&outFileName="+row.name,true);
xhr.setRequestHeader("token", getStorage());
@ -443,6 +444,12 @@ export default {
this.formobj.manufactorSettlementPrice = info.manufactorSettlementPrice//
},
handleSubmit() {
var contract=this.formobj.contract;
if(!contract.fileName){
alert('合同附件不能为空!');
return false;
}
//
this.submitdisabled = true
this.formobj.userSid = window.sessionStorage.getItem('userSid');
@ -579,6 +586,7 @@ export default {
url: vdata.contract.filePath
})
}
this.formobj.contract= vdata.contract
/* _this.fileList[0] = vdata.contract*/
_this.formobj.taskId = vdata.taskId
_this.formobj.insideCode = vdata.insideCode

11
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/baseInfo/AppScmBaseInfoFeign.java

@ -25,14 +25,13 @@
*********************************************************/
package com.yxt.anrui.terminal.api.supplychain.baseInfo;
import com.yxt.anrui.terminal.api.supplychain.carInspected.AppScmVehinspectItemFeignFallback;
import com.yxt.anrui.terminal.api.supplychain.carInspected.ItemDto;
import com.yxt.anrui.terminal.api.supplychain.carInspected.ItemInfoVo;
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.*;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.ResponseBody;
/**
* Project: anrui-scm(供应链) <br/>
@ -49,10 +48,10 @@ import org.springframework.web.bind.annotation.*;
*/
@Api(tags = "供应链待阅数量")
@FeignClient(
contextId = "anrui-terminal-AppScmVehinspectItem",
contextId = "anrui-terminal-AppScmBaseInfo",
name = "anrui-terminal",
path = "supplychain/v1/baseInfo",
fallback = AppScmVehinspectItemFeignFallback.class)
fallback = AppScmBaseInfoFeignFallback.class)
public interface AppScmBaseInfoFeign {

6
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/LastInfo.java

@ -4,6 +4,9 @@ import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class LastInfo implements Vo {
@ -25,4 +28,7 @@ public class LastInfo implements Vo {
@ApiModelProperty("上次备注")
private String lastRemarks;
@ApiModelProperty("见证材料")
private List<String> images = new ArrayList<>();
}

7
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/inventory/StayInventoryDetailedsVo.java

@ -31,6 +31,9 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
/**
* Project: anrui_scm(anrui_scm) <br/>
* File: ScmVehicleStayInventoryVo.java <br/>
@ -72,4 +75,8 @@ public class StayInventoryDetailedsVo implements Vo {
@ApiModelProperty("上次盘库信息 无 默认null")
private LastInfo lastInfo;
@ApiModelProperty("见证材料")
private List<String> images = new ArrayList<>();
}

2
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/TerminalApplication.java

@ -4,11 +4,13 @@ package com.yxt.anrui.terminal;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.boot.autoconfigure.jdbc.DataSourceAutoConfiguration;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
/**
* @author dimengzhe
*/
@EnableDiscoveryClient
@SpringBootApplication(scanBasePackages = {
"com.yxt.anrui.terminal",
"com.yxt.common.base.config"

Loading…
Cancel
Save