Browse Source

Merge remote-tracking branch 'origin/master'

master
God 3 years ago
parent
commit
28186475c9
  1. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApply.java
  2. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyDetailsVo.java
  3. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyDto.java
  4. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/app/AppVehicleApplyVo.java
  5. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  6. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.xml
  7. 16
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  8. 18
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  9. 3
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeBillId.java
  10. 10
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/appaybill/ApPayBill.java
  11. 36
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdcustomer/BdCustomer.java
  12. 14
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java
  13. 57
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdsupplier/BdSupplier.java
  14. 33
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/orgorganizations/OrgOrganizations.java
  15. 42
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  16. 99
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java
  17. 12
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  18. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/appaybill/data_FPAYBILLENTRY.json
  19. 44
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/BdCustomerCastToKingDeeBillFields.java
  20. 80
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/BdCustomerService.java
  21. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/data.json
  22. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/data_data.json
  23. 35
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/data_model.json
  24. 187
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/remarks.txt
  25. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/webapi测试的数据.txt
  26. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/客户的参数必填备注.xlsx
  27. 79
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java
  28. 7
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/data_model.json
  29. 44
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierCastToKingDeeBillFields.java
  30. 78
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java
  31. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/data.json
  32. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/data_data.json
  33. 29
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/data_model.json
  34. 145
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/remarks.txt
  35. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/webapi测试的数据.txt
  36. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/供应商的参数必填备注.xlsx
  37. 48
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsCastToKingDeeBillFields.java
  38. 35
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java
  39. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/data.json
  40. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/data_data.json
  41. 23
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/data_model.json
  42. 73
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/remarks.txt
  43. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/webapi测试的数据.txt
  44. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/组织机构的参数必填备注.xlsx
  45. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stktransferdirect/StkTransferDirectService.java
  46. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java
  47. 81
      anrui-scm/anrui-scm-ui/src/api/bikerebate/bicyclerebatecheck.js
  48. 9
      anrui-scm/anrui-scm-ui/src/api/cheliang/basevehiclemodel.js
  49. 82
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheck.vue
  50. 413
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheckAdd.vue
  51. 88
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheckInfo.vue
  52. 413
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue
  53. 166
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/relation/bicyclerebatetobecheckedAdd.vue
  54. 35
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/relation/bicyclerebatetobecheckedInfo.vue
  55. 5
      anrui-scm/anrui-scm-ui/src/views/cheliang/chexing/chexingAdd.vue
  56. 5
      anrui-scm/anrui-scm-ui/src/views/cheliang/chexing/chexinglook.vue
  57. 29
      anrui-scm/anrui-scm-ui/src/views/cheliang/chexing/relation/chexingpeizhijiageweihuAdd.vue
  58. 6
      anrui-scm/anrui-scm-ui/src/views/cheliang/hegezhengtaizhang/hegezhengInfo.vue
  59. 10
      anrui-scm/anrui-scm-ui/src/views/cheliang/hegezhengtaizhang/hegezhengtaizhang.vue
  60. 26
      anrui-scm/anrui-scm-ui/src/views/cheliang/hegezhengtaizhang/hegezhengtaizhangAdd.vue
  61. 31
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/panku/pankuAdd.vue
  62. 37
      anrui-scm/anrui-scm-ui/src/views/kucunguanli/panku/pankuguanli.vue
  63. 8
      anrui-scm/anrui-scm-ui/src/views/supplychain/cheliangpaichan/cheliangpaichanAdd.vue
  64. 7
      anrui-scm/anrui-scm-ui/src/views/supplychain/cheliangpaichan/cheliangpaichanInfo.vue
  65. 4
      anrui-scm/anrui-scm-ui/src/views/supplychain/hegezhengpandianjilu/hegezhengpandianjilu.vue
  66. 4
      anrui-scm/anrui-scm-ui/src/views/supplychain/hegezhengpandianjilu/hegezhengpandianjiluAdd.vue
  67. 120
      anrui-scm/anrui-scm-ui/src/views/supplychain/yancheguanli/vehiclechecklist.vue
  68. 120
      anrui-scm/anrui-scm-ui/src/views/supplychain/yancheguanli/vehiclechecklistInfo.vue
  69. 7
      anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/vehicle.vue
  70. 7
      anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanDaiBanInfo.vue
  71. 11
      anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanEdit.vue
  72. 7
      anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanYiBanInfo.vue
  73. 7
      anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/vehicle.vue

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApply.java

@ -61,4 +61,7 @@ public class BusVehicleApply extends BaseEntity {
@ApiModelProperty("采购类型value")
private String applyType;
@ApiModelProperty("订金付款备注")
private String payRemarks;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyDetailsVo.java

@ -51,4 +51,6 @@ public class BusVehicleApplyDetailsVo implements Vo {
private String applyTypeKey;
private String applyType;
@ApiModelProperty("订金付款备注")
private String payRemarks;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/BusVehicleApplyDto.java

@ -64,4 +64,7 @@ public class BusVehicleApplyDto implements Dto {
@ApiModelProperty("采购类型value")
private String applyType;
@ApiModelProperty("订金付款备注")
private String payRemarks;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/busvehicleapply/app/AppVehicleApplyVo.java

@ -46,4 +46,6 @@ public class AppVehicleApplyVo implements Vo {
@ApiModelProperty(value = "采购类型")
private String applyType;
@ApiModelProperty("订金付款备注")
private String payRemarks;
}

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java

@ -555,6 +555,12 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if(query.getUserSid().equals(baseVehicleActualSales.getCreateBySid())){
//更新车辆状态为未买断
String settlementStatus = VehicleState.BuyoutEnum.UN_BUYOUT.getCode();
String settlementStatusValue = VehicleState.BuyoutEnum.UN_BUYOUT.getRemarks();
updateByVinNo(baseVehicleActualSales.getSid(), settlementStatus, settlementStatusValue);
}
return rb.success().setData(resultBean.getData());
}
}

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/busvehicleapply/BusVehicleApplyMapper.xml

@ -73,7 +73,8 @@
ba.taskId,
ba.createOrgSid as userSid,
ba.createOrgName,
ba.applyType
ba.applyType,
ba.payRemarks
from bus_vehicle_apply ba
where sid = #{sid}
</select>

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

@ -3,7 +3,10 @@ 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.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
@ -77,5 +80,18 @@ public interface FinKingDeeFeign {
@PostMapping("/draftStkTransferDirect")
@ResponseBody
public ResultBean<List<KingDeeResult>> draftStkTransferDirect(@RequestBody StkTransferDirect stkTransferDirect) ;
@ApiOperation("保存直接调拨单的接口")
@PostMapping("/draftOrgOrganizations")
@ResponseBody
public ResultBean<List<KingDeeResult>> draftOrgOrganizations(@RequestBody OrgOrganizations orgOrganizations) ;
@ApiOperation("保存供应商的接口")
@PostMapping("/draftBdSupplier")
@ResponseBody
ResultBean<List<KingDeeResult>> draftBdSupplier(@RequestBody BdSupplier bdSupplier);
@ApiOperation("保存客户信息的接口")
@PostMapping("/draftBdCustomer")
@ResponseBody
ResultBean<List<KingDeeResult>> draftBdCustomer(@RequestBody BdCustomer bdCustomer);
}

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

@ -3,7 +3,10 @@ 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.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
@ -59,4 +62,19 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<List<KingDeeResult>> draftOrgOrganizations(OrgOrganizations orgOrganizations) {
return null;
}
@Override
public ResultBean<List<KingDeeResult>> draftBdSupplier(BdSupplier bdSupplier) {
return null;
}
@Override
public ResultBean<List<KingDeeResult>> draftBdCustomer(BdCustomer bdCustomer) {
return null;
}
}

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

@ -9,6 +9,9 @@ public enum KingDeeBillId {
PUR_MRB("PUR_MRB","采购退料单"),
SAL_OUTSTOCK("SAL_OUTSTOCK","销售出库单"),
STK_TRANSFERDIRECT("STK_TransferDirect","直接调拨单"),
ORG_ORGANIZATIONS("ORG_Organizations","组织机构"),
BD_CUSTOMER("BD_Customer","客户"),
BD_SUPPLIER("BD_Supplier","供应商"),
BD_MATERIAL("BD_MATERIAL","物料");
private String ID;
private String NAME;

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

@ -62,13 +62,13 @@ public class ApPayBill {
/**
* 结算方式:FSETTLETYPEID (必填项)
*/
/*@JsonProperty("FSETTLETYPEID")
@JsonProperty("FSETTLETYPEID")
@NotBlank
private String FSETTLETYPEID="02";*/
//付款用途:FPURPOSEID (必填项)
/* @JsonProperty("FPURPOSEID")
private String FSETTLETYPEID="02";
//付款用途:FPURPOSEID (必填项) SFKYT08_SYS:采购付款 SFKYT09_SYS:预付款
@JsonProperty("FPURPOSEID")
@NotBlank
private String FPURPOSEID="SFKYT08_SYS";*/
private String FPURPOSEID;
@JsonProperty("FPAYTOTALAMOUNTFOR")
@NotBlank
//表体-应付金额:FPAYTOTALAMOUNTFOR

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

@ -0,0 +1,36 @@
package com.yxt.anrui.fin.api.kingdee.bdcustomer;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class BdCustomer {
/* 创建组织:FCreateOrgId (必填项)*/
/* @JsonProperty("FCreateOrgId")
private String FCreateOrgId;*/
/*客户名称:FName (必填项)*/
@JsonProperty("FName")
public String FName;
/*客户编码:FName (必填项)*/
@JsonProperty("FNumber")
public String FNumber;
/**
* 目标组织:TOrgId
*/
@JsonProperty("TOrgId")
public String TOrgIds;
public final static BdCustomer bdCustomer = new BdCustomer();
static {
/* 创建组织:FCreateOrgId (必填项)*/
// bdCustomer.setFCreateOrgId("100");
/*客户名称:FName (必填项)*/
bdCustomer.setFName("士大夫123");
/*客户编码:FNumber (必填项)*/
bdCustomer.setFNumber("33221133");
/*目标组织:TOrgId*/
bdCustomer.setTOrgIds("102");
}
public static BdCustomer createBdCustomer() {
return bdCustomer;
}
}

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

@ -18,13 +18,13 @@ public class BdMaterial {
/**
*创建组织:FCreateOrgId (必填项)
*/
@JsonProperty("FCreateOrgId")
private String FCreateOrgId;
// @JsonProperty("FCreateOrgId")
// private String FCreateOrgId;
/**
*使用组织:FUseOrgId (必填项)
*/
@JsonProperty("FUseOrgId")
private String FUseOrgId;
// @JsonProperty("FUseOrgId")
// private String FUseOrgId;
/**
*名称:FName (必填项)
*/
@ -65,7 +65,11 @@ public class BdMaterial {
/**
* 目标组织:TOrgId
*/
// bdMaterial.setTOrgIds("101");
// bdMaterial.setTOrgIds("101");
/**
* 车辆类型:F_PAEZ_Base (必填项)
*/
bdMaterial.setF_PAEZ_Base("02");
}
public static BdMaterial createBdMaterial() {
return bdMaterial;

57
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdsupplier/BdSupplier.java

@ -0,0 +1,57 @@
package com.yxt.anrui.fin.api.kingdee.bdsupplier;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
@Data
public class BdSupplier {
/* 名称:FName (必填项)*/
@JsonProperty("FName")
public String FName;
/* 创建组织:FCreateOrgId (必填项)*/
/* @JsonProperty("FCreateOrgId")
public String FCreateOrgId;*/
/* 使用组织:FUseOrgId (必填项)*/
/* @JsonProperty("FUseOrgId")
public String FUseOrgId;*/
/* 手机:FLocMobile (必填项)*/
@JsonProperty("FLocMobile")
public String FLocMobile;
/* 目标组织机构:TOrgIds (必填项)*/
@JsonProperty("TOrgIds")
public String TOrgIds;
/* 地点名称:FLocName (必填项)*/
/* @JsonProperty("FLocName")
public String FLocName;*/
/* 通讯地址:FLocAddress (必填项)*/
/* @JsonProperty("FLocAddress")
public String FLocAddress;*/
/* 联系人:FLocNewContact (必填项)*/
/*@JsonProperty("FLocNewContact")
public String FLocNewContact;*/
/* 结算币别:FPayCurrencyId (必填项)*/
/* @JsonProperty("FPayCurrencyId")
public String FPayCurrencyId="PRE001";*/
public static BdSupplier bdSupplier=new BdSupplier();
static {
/* 名称:FName (必填项)*/
bdSupplier.setFName("13");
/* 创建组织:FCreateOrgId (必填项)*/
// bdSupplier.setFCreateOrgId("100");
/* 使用组织:FUseOrgId (必填项)*/
// bdSupplier.setFUseOrgId("100");
/* 手机:FLocMobile (必填项)*/
bdSupplier.setFLocMobile("15097329653");
/* 目标组织机构:TOrgIds (必填项)*/
bdSupplier.setTOrgIds("100012");
/* 地点名称:FLocName (必填项)*/
// bdSupplier.setFLocName("");
/* 通讯地址:FLocAddress (必填项)*/
// bdSupplier.setFLocAddress("");
/* 联系人:FLocNewContact (必填项)*/
// bdSupplier.setFLocNewContact("");
}
public static BdSupplier createBdSupplier() {
return bdSupplier;
}
}

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

@ -0,0 +1,33 @@
package com.yxt.anrui.fin.api.kingdee.orgorganizations;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
/**
* 组织机构
*/
@Data
public class OrgOrganizations {
/*名称:FName (必填项)*/
@JsonProperty("FName")
public String FName;
/*编码:FNumber (必填项)*/
@JsonProperty("FNumber")
public String FNumber;
/*形态:FOrgFormID (必填项)*/
@JsonProperty("FOrgFormID")
public String FOrgFormID;
public final static OrgOrganizations orgOrganizations = new OrgOrganizations();
static {
/*名称:FName (必填项)*/
orgOrganizations.setFName("测试机构2");
/*编码:FNumber (必填项)*/
orgOrganizations.setFNumber("12367");
/*形态:FOrgFormID (必填项)*/
orgOrganizations.setFOrgFormID("102");
}
public static OrgOrganizations createOrgOrganizations() {
return orgOrganizations;
}
}

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

@ -5,14 +5,20 @@ import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
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.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.purmrb.PurMrb;
import com.yxt.anrui.fin.api.kingdee.saloutstock.SalOutStock;
import com.yxt.anrui.fin.api.kingdee.stkinstock.StkInStock;
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect;
import com.yxt.anrui.fin.biz.kingdee.appaybill.ApPayBillService;
import com.yxt.anrui.fin.biz.kingdee.appayable.APPayableService;
import com.yxt.anrui.fin.biz.kingdee.bdcustomer.BdCustomerService;
import com.yxt.anrui.fin.biz.kingdee.bdmaterial.BdMaterialService;
import com.yxt.anrui.fin.biz.kingdee.bdsupplier.BdSupplierService;
import com.yxt.anrui.fin.biz.kingdee.orgorganizations.OrgOrganizationsService;
import com.yxt.anrui.fin.biz.kingdee.purmrb.PurMrbService;
import com.yxt.anrui.fin.biz.kingdee.receivablebill.ReceivableBillService;
import com.yxt.anrui.fin.biz.kingdee.saloutstock.SalOutStockService;
@ -71,6 +77,21 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
*/
@Autowired
private StkTransferDirectService stkTransferDirectService;
/**
* 保存组织机构
*/
@Autowired
private OrgOrganizationsService orgOrganizationsService;
/**
* 保存供应商
*/
@Autowired
private BdSupplierService bdSupplierService;
/**
* 保存客户信息
*/
@Autowired
private BdCustomerService bdCustomerService;
@ApiOperation("入账保存应付单的接口")
@PostMapping("/draftEntryBill")
@ResponseBody
@ -136,4 +157,25 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
public ResultBean<List<KingDeeResult>> draftStkTransferDirect(@RequestBody StkTransferDirect stkTransferDirect) {
return stkTransferDirectService.draftStkTransferDirect(stkTransferDirect);
}
@ApiOperation("保存组织机构的接口")
@PostMapping("/draftOrgOrganizations")
@ResponseBody
@Override
public ResultBean<List<KingDeeResult>> draftOrgOrganizations(@RequestBody OrgOrganizations orgOrganizations) {
return orgOrganizationsService.draftOrgOrganizations(orgOrganizations);
}
@ApiOperation("保存供应商的接口")
@PostMapping("/draftBdSupplier")
@ResponseBody
@Override
public ResultBean<List<KingDeeResult>> draftBdSupplier(@RequestBody BdSupplier bdSupplier) {
return bdSupplierService.draftBdSupplier(bdSupplier);
}
@ApiOperation("保存客户信息的接口")
@PostMapping("/draftBdCustomer")
@ResponseBody
@Override
public ResultBean<List<KingDeeResult>> draftBdCustomer(@RequestBody BdCustomer bdCustomer) {
return bdCustomerService.draftBdCustomer(bdCustomer);
}
}

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

@ -1,6 +1,7 @@
package com.yxt.anrui.fin.biz.kingdee;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.common.core.result.ResultBean;
import org.slf4j.Logger;
@ -44,6 +45,20 @@ public class FinKingDeeService {
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用提交金蝶的数据接口
* @param formId
* @param result
* @return
*/
public ResultBean<List<KingDeeResult>> submitKingDeeBillData(String formId,ResultBean<List<KingDeeResult>> result) {
String data = getSubmitKD(result, formId);
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.submitKingDeeBillData(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用审核金蝶的数据接口
* @param formId
@ -57,6 +72,20 @@ public class FinKingDeeService {
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用审核金蝶的数据接口
* @param formId
* @param result
* @return
*/
public ResultBean<List<KingDeeResult>> auditKingDeeBillData(String formId,ResultBean<List<KingDeeResult>> result) {
String data = getAuditKD(result, formId);
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.auditKingDeeBillData(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用分配金蝶的数据接口
* @param formId
@ -70,6 +99,21 @@ public class FinKingDeeService {
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
/**
* 调用分配金蝶的数据接口
* @param formId
* @param tOrgIds
* @param result
* @return
*/
public ResultBean<List<KingDeeResult>> allocateKingDeeBillData(String formId,String tOrgIds,ResultBean<List<KingDeeResult>> result){
String data = getAllocate(result,tOrgIds, formId);
KingDeeParams kdp = getKingDeeParams(formId, data);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<List<KingDeeResult>> listResultBean = KingDeeSaveSKD.allocateKingDeeBillData(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
private KingDeeParams getKingDeeParams(String formId, String data) {
KingDeeParams kdp=new KingDeeParams();
@ -117,6 +161,61 @@ public class FinKingDeeService {
}
return resultList;
}
/**
* 构造提交接口的数据格式
* @param resultBean
* @return
*/
public String getSubmitKD(ResultBean<List<KingDeeResult>> resultBean,String formId) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\"}\"}";
}
/**
* 构造审核接口的数据格式
* @param resultBean
* @return
*/
public String getAuditKD(ResultBean<List<KingDeeResult>> resultBean,String formId) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\",\\\"InterationFlags\\\":\\\"\\\"}\"}";
}
/**
* 构造分配接口的数据格式
* @param resultBean
* @return
*/
public String getAllocate(ResultBean<List<KingDeeResult>> resultBean,String tOrgIds,String formId) {
/* 2.1.PkIds被分配的基础资料内码集合字符串类型格式"PkId1,PkId2,..."必录
2.2.TOrgIds目标组织内码集合字符串类型格式"TOrgId1,TOrgId2,..."必录
2.3.IsAutoSubmitAndAudit是否自动提交与审核布尔类型默认false非必录*/
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
/*{\"PkIds\":\"0\",\"TOrgIds\":\"\",\"IsAutoSubmitAndAudit\":\"false\"}*/
return "{\"formId\":\""+formId+"\",\"data\":\"{\\\"PkIds\\\":\\\""+s+"\\\",\\\"TOrgIds\\\":\\\""+tOrgIds+"\\\",\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
}
/**
* 调用金蝶接口的数据格式
*/

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

@ -45,6 +45,14 @@ public class KingDeeSaveSKD {
* 登录金蝶的账户信息
*/
private static String password = "123321";
/**
* 登录金蝶的账户信息
*/
private static String userName_administrator = "administrator";
/**
* 登录金蝶的账户信息
*/
private static String password_administrator = "ANrui123456.";
/**
* 登录金蝶的账户信息
*/
@ -269,8 +277,8 @@ public class KingDeeSaveSKD {
//登录请求参数
Map<String,String> loginParams=new HashMap<>();
loginParams.put("acctID",acctID);
loginParams.put("userName",userName);
loginParams.put("password",password);
loginParams.put("userName",userName_administrator);
loginParams.put("password",password_administrator);
loginParams.put("lcid",lcid);
String jsonParamdl=JSON.toJSONString(loginParams);
StringEntity entity = new StringEntity(jsonParamdl, "utf-8");

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

@ -1,9 +1,9 @@
{
"FSETTLETYPEID": {
"FNumber": "02"
"FNumber": "@KD_FSETTLETYPEID"
},
"FPURPOSEID": {
"FNumber": "SFKYT08_SYS"
"FNumber": "@KD_FPURPOSEID"
},
"FPAYTOTALAMOUNTFOR": @KD_FPAYTOTALAMOUNTFOR,
"FPAYAMOUNTFOR_E": @KD_FPAYAMOUNTFOR_E,

44
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/BdCustomerCastToKingDeeBillFields.java

@ -0,0 +1,44 @@
package com.yxt.anrui.fin.biz.kingdee.bdcustomer;
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 BdCustomerCastToKingDeeBillFields {
private static Logger log=LoggerFactory.getLogger(BdCustomerCastToKingDeeBillFields.class);
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @param map_fEntityModel_
* @return
*/
public static String getKingDeeData(Map<String,String> map_fEntityModel_ ){
/**
* 取模板
*/
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/bdcustomer/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/bdcustomer/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/bdcustomer/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();
}
}

80
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/BdCustomerService.java

@ -0,0 +1,80 @@
package com.yxt.anrui.fin.biz.kingdee.bdcustomer;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class BdCustomerService extends FinKingDeeService {
/**
* 保存客户信息 list
* @param bdCustomer
* @return
*/
public ResultBean<List<KingDeeResult>> draftBdMaterialList(List<BdCustomer> bdCustomer) {
List<KingDeeResult> list=new ArrayList<>();
ResultBean rb=ResultBean.fireFail();
for(BdCustomer b:bdCustomer) {
ResultBean<List<KingDeeResult>> resultBean = draftBdCustomer(b);
if (resultBean.getSuccess()) {
list.add(resultBean.getData().get(0));
}
}
return rb.success().setData(list);
}
/**
* 保存客户信息
* @param bdCustomer
* @return
*/
public ResultBean draftBdCustomer(BdCustomer bdCustomer) {
//bdCustomer=BdCustomer.createBdCustomer();
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(bdCustomer);
//准备 物料列表的数据 ForEntryBill
String kingDeeData = BdCustomerCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<List<KingDeeResult>> resultBean = saveBill(KingDeeBillId.BD_CUSTOMER.getID(), kingDeeData);
//String submitKD = getSubmitKD(resultBean,KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<List<KingDeeResult>> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_CUSTOMER.getID(), resultBean);
if(!resultBean1.getSuccess()){
log.info("客户提交失败!");
return rb.setMsg("客户提交失败!");
}
log.info("客户提交成功!");
//String auditKD = getAuditKD(resultBean,KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<List<KingDeeResult>> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_CUSTOMER.getID(), resultBean);
if(!resultBean2.getSuccess()){
log.info("客户审核失败!");
return rb.setMsg("客户审核失败!");
}
log.info("客户审核成功!");
//String allocate = getAllocate(resultBean1,bdCustomer.getTOrgIds(),KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<List<KingDeeResult>> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(),bdCustomer.getTOrgIds(), resultBean1);
if(!resultBean3.getSuccess()){
log.info("客户分配失败!");
return rb.setMsg("客户分配失败!");
}
log.info("客户分配成功!");
return resultBean3;
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
}

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

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

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

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

35
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/data_model.json

@ -0,0 +1,35 @@
{
"FCUSTID": 0,
"FCreateOrgId": {
"FNumber": "100"
},
"FNumber": "@KD_FNumber",
"FUseOrgId": {
"FNumber": "100"
},
"FName": "@KD_FName",
"FCOUNTRY": {
"FNumber": "China"
},
"FIsGroup": false,
"FIsDefPayer": false,
"FCustTypeId": {
"FNumber": "KHLB001_SYS"
},
"FTRADINGCURRID": {
"FNumber": "PRE001"
},
"FTaxType": {
"FNumber": "SFL02_SYS"
},
"FInvoiceType": "1",
"FTaxRate": {
"FNumber": "SL31_SYS"
},
"FPriority": 1,
"FISCREDITCHECK": true,
"FIsTrade": true,
"FT_BD_CUSTOMEREXT": {
"FEnableSL": false
}
}

187
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/remarks.txt

@ -0,0 +1,187 @@
一、请求参数说明:
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\":{\"FCUSTID\":\"0\",\"FCreateOrgId\":{\"FNumber\":\"\"},\"FNumber\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FName\":\"\",\"FShortName\":\"\",\"FCOUNTRY\":{\"FNumber\":\"\"},\"FPROVINCIAL\":{\"FNumber\":\"\"},\"FADDRESS\":\"\",\"FZIP1212\":\"\",\"FZIP121111\":\"\",\"FZIP12111\":\"\",\"FZIP13\":\"\",\"FZIP2\":\"\",\"FZIP122\":\"\",\"FZIP11\":\"\",\"FZIP1\":\"\",\"FZIP\":\"\",\"FZIP1211\":\"\",\"FZIP121\":\"\",\"FZIP12\":\"\",\"FWEBSITE\":\"\",\"FTEL111\":\"\",\"FTEL11\":\"\",\"FTEL\":\"\",\"FTEL1\":\"\",\"FFAX\":\"\",\"FTAXREGISTERCODE\":\"\",\"FCompanyClassify\":{\"FNumber\":\"\"},\"FCompanyNature\":{\"FNumber\":\"\"},\"FCompanyScale\":{\"FNumber\":\"\"},\"FSUPPLIERID\":{\"FNumber\":\"\"},\"FGROUPCUSTID\":{\"FNumber\":\"\"},\"FIsGroup\":\"false\",\"FIsDefPayer\":\"false\",\"FCustTypeId\":{\"FNumber\":\"\"},\"FGroup\":{\"FNumber\":\"\"},\"FCorrespondOrgId\":{\"FNumber\":\"\"},\"FTRADINGCURRID\":{\"FNumber\":\"\"},\"FSALDEPTID\":{\"FNumber\":\"\"},\"FDescription\":\"\",\"FSELLER\":{\"FNumber\":\"\"},\"FSETTLETYPEID\":{\"FNumber\":\"\"},\"FRECCONDITIONID\":{\"FNumber\":\"\"},\"FPRICELISTID\":{\"FNumber\":\"\"},\"FDISCOUNTLISTID\":{\"FNumber\":\"\"},\"FTRANSLEADTIME\":\"0\",\"FTaxType\":{\"FNumber\":\"\"},\"FInvoiceType\":\"\",\"FTaxRate\":{\"FNumber\":\"\"},\"FPriority\":\"0\",\"FRECEIVECURRID\":{\"FNumber\":\"\"},\"FISCREDITCHECK\":\"false\",\"FIsTrade\":\"false\",\"F_PAEZ_Date\":\"1900-01-01\",\"F_PAEZ_Base1\":{\"FNUMBER\":\"\"},\"F_PAEZ_Base22\":{\"FNUMBER\":\"\"},\"F_PAEZ_Base21\":{\"FNUMBER\":\"\"},\"F_PAEZ_Base2\":{\"FSTAFFNUMBER\":\"\"},\"F_PAEZ_Base3\":{\"FNUMBER\":\"\"},\"F_PAEZ_Text2\":\"\",\"F_PAEZ_Text3\":\"\",\"F_PAEZ_Text4\":\"\",\"F_PAEZ_Text6\":\"\",\"F_PAEZ_Remark2\":\"\",\"F_PAEZ_Remark3\":\"\",\"F_PAEZ_Remark\":\"\",\"F_PAEZ_Text\":\"\",\"F_PAEZ_Date1\":\"1900-01-01\",\"F_PAEZ_Date2\":\"1900-01-01\",\"F_PAEZ_Text12\":\"\",\"F_PAEZ_Text11\":\"\",\"F_PAEZ_Text1\":\"\",\"F_PAEZ_Text5\":\"\",\"F_PAEZ_Combo11\":\"\",\"F_PAEZ_Combo111\":\"\",\"F_PAEZ_Combo\":\"\",\"F_PAEZ_Combo1\":\"\",\"F_PAEZ_Date3\":\"1900-01-01\",\"F_PAEZ_Combo21\":\"\",\"F_PAEZ_Combo2\":\"\",\"F_PAEZ_LargeText\":\"\",\"F_PAEZ_LargeText_Tag\":\"\",\"F_PAEZ_Date4\":\"1900-01-01\",\"F_PAEZ_Remark1\":\"\",\"F_PAEZ_Text7\":\"\",\"F_PAEZ_Date5\":\"1900-01-01\",\"F_PAEZ_Date6\":\"1900-01-01\",\"F_PAEZ_Assistant\":{\"FNumber\":\"\"},\"FT_BD_CUSTOMEREXT\":{\"FEntryId\":\"0\",\"FEnableSL\":\"false\",\"FFreezeLimit\":\"\",\"FFreezeOperator\":{\"FUserID\":\"\"},\"FFreezeDate\":\"1900-01-01\",\"FPROVINCE\":{\"FNumber\":\"\"},\"FCITY\":{\"FNumber\":\"\"},\"FDefaultConsiLoc\":{\"FNUMBER\":\"\"},\"FDefaultSettleLoc\":{\"FNUMBER\":\"\"},\"FDefaultPayerLoc\":{\"FNUMBER\":\"\"},\"FDefaultContact\":{\"FNUMBER\":\"\"},\"FMarginLevel\":\"0\",\"FDebitCard\":\"\",\"FSettleId\":{\"FNUMBER\":\"\"},\"FChargeId\":{\"FNUMBER\":\"\"}},\"FT_BD_CUSTLOCATION\":[{\"FContactId\":{\"FNUMBER\":\"\"},\"FIsDefaultConsigneeCT\":\"false\"}],\"FT_BD_CUSTBANK\":[{\"FENTRYID\":\"0\",\"FCOUNTRY1\":{\"FNumber\":\"\"},\"FOPENBANKNAME\":\"\",\"FBANKCODE\":\"\",\"FACCOUNTNAME\":\"\",\"FTextBankDetail\":\"\",\"FOpenAddressRec\":\"\",\"FBankTypeRec\":{\"FNUMBER\":\"\"},\"FCNAPS\":\"\",\"FCURRENCYID\":{\"FNumber\":\"\"},\"FISDEFAULT1\":\"false\"}],\"FT_BD_CUSTCONTACT\":[{\"FENTRYID\":\"0\",\"FNUMBER1\":\"\",\"FNAME1\":\"\",\"FADDRESS1\":\"\",\"FTRANSLEADTIME1\":\"0\",\"FMOBILE\":\"\",\"FIsDefaultConsignee\":\"false\",\"FIsDefaultSettle\":\"false\",\"FIsDefaultPayer\":\"false\",\"FIsUsed\":\"false\"}],\"FT_BD_CUSTORDERORG\":[{\"FEntryID\":\"0\",\"FOrderOrgId\":{\"FNumber\":\"\"},\"FIsDefaultOrderOrg\":\"false\"}]}}
三、返回参数:
{\"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("BD_Customer","{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FCUSTID\":\"0\",\"FCreateOrgId\":{\"FNumber\":\"\"},\"FNumber\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FName\":\"\",\"FShortName\":\"\",\"FCOUNTRY\":{\"FNumber\":\"\"},\"FPROVINCIAL\":{\"FNumber\":\"\"},\"FADDRESS\":\"\",\"FZIP1212\":\"\",\"FZIP121111\":\"\",\"FZIP12111\":\"\",\"FZIP13\":\"\",\"FZIP2\":\"\",\"FZIP122\":\"\",\"FZIP11\":\"\",\"FZIP1\":\"\",\"FZIP\":\"\",\"FZIP1211\":\"\",\"FZIP121\":\"\",\"FZIP12\":\"\",\"FWEBSITE\":\"\",\"FTEL111\":\"\",\"FTEL11\":\"\",\"FTEL\":\"\",\"FTEL1\":\"\",\"FFAX\":\"\",\"FTAXREGISTERCODE\":\"\",\"FCompanyClassify\":{\"FNumber\":\"\"},\"FCompanyNature\":{\"FNumber\":\"\"},\"FCompanyScale\":{\"FNumber\":\"\"},\"FSUPPLIERID\":{\"FNumber\":\"\"},\"FGROUPCUSTID\":{\"FNumber\":\"\"},\"FIsGroup\":\"false\",\"FIsDefPayer\":\"false\",\"FCustTypeId\":{\"FNumber\":\"\"},\"FGroup\":{\"FNumber\":\"\"},\"FCorrespondOrgId\":{\"FNumber\":\"\"},\"FTRADINGCURRID\":{\"FNumber\":\"\"},\"FSALDEPTID\":{\"FNumber\":\"\"},\"FDescription\":\"\",\"FSELLER\":{\"FNumber\":\"\"},\"FSETTLETYPEID\":{\"FNumber\":\"\"},\"FRECCONDITIONID\":{\"FNumber\":\"\"},\"FPRICELISTID\":{\"FNumber\":\"\"},\"FDISCOUNTLISTID\":{\"FNumber\":\"\"},\"FTRANSLEADTIME\":\"0\",\"FTaxType\":{\"FNumber\":\"\"},\"FInvoiceType\":\"\",\"FTaxRate\":{\"FNumber\":\"\"},\"FPriority\":\"0\",\"FRECEIVECURRID\":{\"FNumber\":\"\"},\"FISCREDITCHECK\":\"false\",\"FIsTrade\":\"false\",\"F_PAEZ_Date\":\"1900-01-01\",\"F_PAEZ_Base1\":{\"FNUMBER\":\"\"},\"F_PAEZ_Base22\":{\"FNUMBER\":\"\"},\"F_PAEZ_Base21\":{\"FNUMBER\":\"\"},\"F_PAEZ_Base2\":{\"FSTAFFNUMBER\":\"\"},\"F_PAEZ_Base3\":{\"FNUMBER\":\"\"},\"F_PAEZ_Text2\":\"\",\"F_PAEZ_Text3\":\"\",\"F_PAEZ_Text4\":\"\",\"F_PAEZ_Text6\":\"\",\"F_PAEZ_Remark2\":\"\",\"F_PAEZ_Remark3\":\"\",\"F_PAEZ_Remark\":\"\",\"F_PAEZ_Text\":\"\",\"F_PAEZ_Date1\":\"1900-01-01\",\"F_PAEZ_Date2\":\"1900-01-01\",\"F_PAEZ_Text12\":\"\",\"F_PAEZ_Text11\":\"\",\"F_PAEZ_Text1\":\"\",\"F_PAEZ_Text5\":\"\",\"F_PAEZ_Combo11\":\"\",\"F_PAEZ_Combo111\":\"\",\"F_PAEZ_Combo\":\"\",\"F_PAEZ_Combo1\":\"\",\"F_PAEZ_Date3\":\"1900-01-01\",\"F_PAEZ_Combo21\":\"\",\"F_PAEZ_Combo2\":\"\",\"F_PAEZ_LargeText\":\"\",\"F_PAEZ_LargeText_Tag\":\"\",\"F_PAEZ_Date4\":\"1900-01-01\",\"F_PAEZ_Remark1\":\"\",\"F_PAEZ_Text7\":\"\",\"F_PAEZ_Date5\":\"1900-01-01\",\"F_PAEZ_Date6\":\"1900-01-01\",\"F_PAEZ_Assistant\":{\"FNumber\":\"\"},\"FT_BD_CUSTOMEREXT\":{\"FEntryId\":\"0\",\"FEnableSL\":\"false\",\"FFreezeLimit\":\"\",\"FFreezeOperator\":{\"FUserID\":\"\"},\"FFreezeDate\":\"1900-01-01\",\"FPROVINCE\":{\"FNumber\":\"\"},\"FCITY\":{\"FNumber\":\"\"},\"FDefaultConsiLoc\":{\"FNUMBER\":\"\"},\"FDefaultSettleLoc\":{\"FNUMBER\":\"\"},\"FDefaultPayerLoc\":{\"FNUMBER\":\"\"},\"FDefaultContact\":{\"FNUMBER\":\"\"},\"FMarginLevel\":\"0\",\"FDebitCard\":\"\",\"FSettleId\":{\"FNUMBER\":\"\"},\"FChargeId\":{\"FNUMBER\":\"\"}},\"FT_BD_CUSTLOCATION\":[{\"FContactId\":{\"FNUMBER\":\"\"},\"FIsDefaultConsigneeCT\":\"false\"}],\"FT_BD_CUSTBANK\":[{\"FENTRYID\":\"0\",\"FCOUNTRY1\":{\"FNumber\":\"\"},\"FOPENBANKNAME\":\"\",\"FBANKCODE\":\"\",\"FACCOUNTNAME\":\"\",\"FTextBankDetail\":\"\",\"FOpenAddressRec\":\"\",\"FBankTypeRec\":{\"FNUMBER\":\"\"},\"FCNAPS\":\"\",\"FCURRENCYID\":{\"FNumber\":\"\"},\"FISDEFAULT1\":\"false\"}],\"FT_BD_CUSTCONTACT\":[{\"FENTRYID\":\"0\",\"FNUMBER1\":\"\",\"FNAME1\":\"\",\"FADDRESS1\":\"\",\"FTRANSLEADTIME1\":\"0\",\"FMOBILE\":\"\",\"FIsDefaultConsignee\":\"false\",\"FIsDefaultSettle\":\"false\",\"FIsDefaultPayer\":\"false\",\"FIsUsed\":\"false\"}],\"FT_BD_CUSTORDERORG\":[{\"FEntryID\":\"0\",\"FOrderOrgId\":{\"FNumber\":\"\"},\"FIsDefaultOrderOrg\":\"false\"}]}}");
}
五、字段说明:
联系人编码:FContactId
默认:FISDEFAULT
职务:FJob
联系人名称:FCONTACT
挂靠单位:F_PAEZ_Assistant
登记证书编号:F_PAEZ_Text7
备注:F_PAEZ_Remark1
邮寄时间:F_PAEZ_Date6
收到日期::F_PAEZ_Date5
地点编码:FBIZLOCNUMBER
默认收货地址:FIsDefaultConsigneeCT
详细地址:FBizAddress
币别:FCURRENCYID
银行账号:FBANKCODE
传真:FFAX1
办公电话:FOFFICEPHONE
地点名称:FBIZLOCATION
邮箱:FContactEmail
移动电话:FMOBILEPHONE
合格证:F_PAEZ_Text1
抵押日期:F_PAEZ_Date2
抵押合同编号:F_PAEZ_Text12
进项发票:F_PAEZ_Text11
登记日期:F_PAEZ_Date1
车牌号:F_PAEZ_Remark
挂车架号:F_PAEZ_Remark3
钥匙:F_PAEZ_Text
车辆规格:FTEL11
邮寄单号:F_PAEZ_Text5
欠款:F_PAEZ_Combo21
续保:F_PAEZ_Combo2
邮寄日期:F_PAEZ_Date4
取回日期:F_PAEZ_LargeText
结清日期:F_PAEZ_Date3
保单:F_PAEZ_Combo1
合格证:F_PAEZ_Combo
发票:F_PAEZ_Combo111
抵押:F_PAEZ_Combo11
账户名称:FACCOUNTNAME
冻结范围:FFreezeLimit
冻结状态:FFreezeStatus
冻结日期:FFreezeDate
冻结人:FFreezeOperator
启用商联在线:FEnableSL
地址禁用状态:FLocationStatus
移动电话:FMOBILE
默认:FIsDefaultOrderOrg
订货组织:FOrderOrgId
省份:FPROVINCE
结算卡:FDebitCard
保证金比例(%):FMarginLevel
付款方:FChargeId
结算方:FSettleId
默认联系人:FDefaultContact
默认收货地点:FDefaultConsiLoc
城市:FCITY
默认付款地点:FDefaultPayerLoc
默认开票地点:FDefaultSettleLoc
选择银行网点:FTextBankDetail
联行号:FCNAPS
地点名称:FNAME1
地点编码:FNUMBER1
开户行地址:FOpenAddressRec
开户国家:FCOUNTRY1
默认:FISDEFAULT1
收款银行:FBankTypeRec
开户银行:FOPENBANKNAME
详细地址:FADDRESS1
电子邮箱:FEMail
固定电话:FTTel
联系人:FTContact
启用:FIsUsed
默认付款地址:FIsDefaultPayer
税率:FTAXRATE1
运输提前期:FTRANSLEADTIME1
默认开票地址:FIsDefaultSettle
默认收货地址:FIsDefaultConsignee
价目表:FPRICELISTID
运输提前期:FTRANSLEADTIME
结算方式:FSETTLETYPEID
折扣表:FDISCOUNTLISTID
销售员:FSELLER
结算币别:FTRADINGCURRID (必填项)
对应供应商:FSUPPLIERID
销售组:FSALGROUPID
销售部门:FSALDEPTID
收款币别:FRECEIVECURRID
税分类:FTaxType
禁用日期:FFORBIDDATE
身份证地址:FADDRESS
客户类别:FCustTypeId
禁用人:FFORBIDDERID
启用信用管理:FISCREDITCHECK
收款条件:FRECCONDITIONID
审核日期:FAPPROVEDATE
审核人:FAPPROVERID
使用组织:FUseOrgId
创建组织:FCreateOrgId (必填项)
修改人:FModifierId
创建人:FCreatorId
备注:FDescription
禁用状态:FForbidStatus
单据状态:FDocumentStatus
客户编码:FNumber
客户名称:FName (必填项)
创建日期:FCreateDate
GPS号:FTAXREGISTERCODE
联系电话:FTEL
对应集团客户:FGROUPCUSTID
实际车主:FFAX
贷款人姓名:FZIP
简称:FShortName
修改日期:FModifyDate
地区:FPROVINCIAL
国家:FCOUNTRY
公司网址:FWEBSITE
发票日期:F_PAEZ_Date
担保人电话:FZIP13
地区:F_PAEZ_Base1
发票金额:FTEL111
担保人姓名:FZIP2
发动机号:F_PAEZ_BaseProperty
数量:FTEL1
担保人证号:FZIP122
担保人地址:FZIP1212
城市:F_PAEZ_BaseProperty1
贷款期限:F_PAEZ_Text4
家访人:F_PAEZ_Text3
主车架号:F_PAEZ_Remark2
销售地区:F_PAEZ_Text6
银行账号:F_PAEZ_Text2
中介:F_PAEZ_Base21
业务员:F_PAEZ_Base2
贷款渠道:F_PAEZ_Base3
挂靠单位(旧):F_PAEZ_Base22
发票类型:FInvoiceType
客户优先级:FPriority
默认付款方:FIsDefPayer
默认税率:FTaxRate
对应组织:FCorrespondOrgId
公司规模:FCompanyScale
客户分组:FGroup
公司性质:FCompanyNature
公司类别:FCompanyClassify
订货平台管理员:FCPAdminCode
配偶姓名:FZIP1211
联系地址:FZIP121
配偶身份证:FZIP121111
配偶电话:FZIP12111
身份证号:FZIP12
是否交易客户:FIsTrade
集团客户:FIsGroup
邮政编码:FZIP11
贷款人电话:FZIP1

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

@ -0,0 +1 @@
{"formId":"BD_Customer","data":"{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FCUSTID\":0,\"FCreateOrgId\":{\"FNumber\":\"100\"},\"FNumber\":\"22113322\",\"FUseOrgId\":{\"FNumber\":\"100\"},\"FName\":\"13\",\"FCOUNTRY\":{\"FNumber\":\"China\"},\"FIsGroup\":false,\"FIsDefPayer\":false,\"FCustTypeId\":{\"FNumber\":\"KHLB001_SYS\"},\"FTRADINGCURRID\":{\"FNumber\":\"PRE001\"},\"FTaxType\":{\"FNumber\":\"SFL02_SYS\"},\"FInvoiceType\":\"1\",\"FTaxRate\":{\"FNumber\":\"SL31_SYS\"},\"FPriority\":1,\"FISCREDITCHECK\":true,\"FIsTrade\":true,\"FT_BD_CUSTOMEREXT\":{\"FEnableSL\":false}}}"}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdcustomer/客户的参数必填备注.xlsx

Binary file not shown.

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

@ -17,13 +17,13 @@ import java.util.List;
import java.util.Map;
/**
* 保存采购出库单
* 保存物料
*/
@Service
public class BdMaterialService extends FinKingDeeService {
private static Logger log= LoggerFactory.getLogger(BdMaterialService.class);
/**
* 保存采购出库单 list
* 保存物料 list
* @param bdMaterial
* @return
*/
@ -40,7 +40,7 @@ public class BdMaterialService extends FinKingDeeService {
return rb.success().setData(list);
}
/**
* 保存采购出库单
* 保存物料
* @param bdMaterial
* @return
*/
@ -59,24 +59,24 @@ public class BdMaterialService extends FinKingDeeService {
return rb.setMsg("物料保存失败!");
}
log.info("物料保存成功!");
String submitKD = getSubmitKD(resultBean);
ResultBean<List<KingDeeResult>> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), submitKD);
//String submitKD = getSubmitKD(resultBean,KingDeeBillId.BD_MATERIAL.getID());
ResultBean<List<KingDeeResult>> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), resultBean);//submitKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), submitKD);
if(!resultBean1.getSuccess()){
log.info("物料提交失败!");
return rb.setMsg("物料提交失败!");
}
log.info("物料提交成功!");
String auditKD = getAuditKD(resultBean);
ResultBean<List<KingDeeResult>> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), auditKD);
// String auditKD = getAuditKD(resultBean,KingDeeBillId.BD_MATERIAL.getID());
ResultBean<List<KingDeeResult>> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), resultBean);//auditKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), auditKD);
if(!resultBean2.getSuccess()){
log.info("物料审核失败!");
return rb.setMsg("物料审核失败!");
}
log.info("物料审核成功!");
String allocate = getAllocate(resultBean1,bdMaterial.getTOrgIds());
ResultBean<List<KingDeeResult>> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), allocate);
//String allocate = getAllocate(resultBean1,bdMaterial.getTOrgIds(),KingDeeBillId.BD_MATERIAL.getID());
ResultBean<List<KingDeeResult>> resultBean3 =allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(),bdMaterial.getTOrgIds(), resultBean1);// allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(), allocate);
if(!resultBean3.getSuccess()){
log.info("物料分配失败!");
return rb.setMsg("物料分配失败!");
@ -89,63 +89,4 @@ public class BdMaterialService extends FinKingDeeService {
return rb;
}
/**
* 构造分配接口的数据格式
* @param resultBean
* @return
*/
private String getAllocate(ResultBean<List<KingDeeResult>> resultBean,String tOrgIds) {
/* 2.1.PkIds被分配的基础资料内码集合字符串类型格式"PkId1,PkId2,..."必录
2.2.TOrgIds目标组织内码集合字符串类型格式"TOrgId1,TOrgId2,..."必录
2.3.IsAutoSubmitAndAudit是否自动提交与审核布尔类型默认false非必录*/
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\"BD_MATERIAL\",\"data\":\"{\\\"PkIds\\\":\\\""+s+"\\\",\\\"TOrgIds\\\":\\\""+tOrgIds+"\\\",\\\"IsAutoSubmitAndAudit\\\":\\\"true\\\"}\"}";
}
/**
* 构造审核接口的数据格式
* @param resultBean
* @return
*/
private String getAuditKD(ResultBean<List<KingDeeResult>> resultBean) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\"BD_MATERIAL\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\",\\\"InterationFlags\\\":\\\"\\\"}\"}";
}
/**
* 构造提交接口的数据格式
* @param resultBean
* @return
*/
private String getSubmitKD(ResultBean<List<KingDeeResult>> resultBean) {
//2.1.CreateOrgId:创建者组织内码,字符串类型(非必录)
//2.2.Numbers:单据编码集合,数组类型,格式:[No1,No2,...](使用编码时必录)
//2.3.Ids:单据内码集合,字符串类型,格式:"Id1,Id2,..."(使用内码时必录)
List<KingDeeResult> data = resultBean.getData();
StringBuilder Ids=new StringBuilder();
for (int i=0;i<data.size();i++){
Ids.append(data.get(i).getId()).append(",");
}
String s = Ids.toString();
s=s.substring(0,s.length()-1);
return "{\"formId\":\"BD_MATERIAL\",\"data\":\"{\\\"CreateOrgId\\\":\\\"\\\",\\\"Numbers\\\":[],\\\"Ids\\\":\\\""+s+"\\\"}\"}";
}
}

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

@ -1,10 +1,10 @@
{
"FMATERIALID": 0,
"FCreateOrgId": {
"FNumber": "@KD_FCreateOrgId"
"FNumber": "100"
},
"FUseOrgId": {
"FNumber": "@KD_FUseOrgId"
"FNumber": "100"
},
"FName": "@KD_FName",
"FMaterialGroup": {
@ -12,6 +12,9 @@
},
"FImgStorageType": "B",
"FIsSalseByNet": false,
"F_PAEZ_Base": {
"FNUMBER": "@KD_F_PAEZ_Base"
},
"SubHeadEntity": {
"FErpClsID": "1",
"FCategoryID": {

44
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierCastToKingDeeBillFields.java

@ -0,0 +1,44 @@
package com.yxt.anrui.fin.biz.kingdee.bdsupplier;
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 BdSupplierCastToKingDeeBillFields {
private static Logger log=LoggerFactory.getLogger(BdSupplierCastToKingDeeBillFields.class);
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @param map_fEntityModel_
* @return
*/
public static String getKingDeeData(Map<String,String> map_fEntityModel_ ){
/**
* 取模板
*/
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/bdsupplier/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/bdsupplier/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/bdsupplier/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();
}
}

78
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java

@ -0,0 +1,78 @@
package com.yxt.anrui.fin.biz.kingdee.bdsupplier;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeResult;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class BdSupplierService extends FinKingDeeService {
/**
* 保存供应商 list
* @param bdSupplier
* @return
*/
public ResultBean<List<KingDeeResult>> draftBdMaterialList(List<BdSupplier> bdSupplier) {
// bdMaterial=BdMaterial.createBdMaterial();
List<KingDeeResult> list=new ArrayList<>();
ResultBean rb=ResultBean.fireFail();
for(BdSupplier b:bdSupplier) {
ResultBean<List<KingDeeResult>> resultBean = draftBdSupplier(b);
if (resultBean.getSuccess()) {
list.add(resultBean.getData().get(0));
}
}
return rb.success().setData(list);
}
/**
* 保存供应商
* @param bdSupplier
* @return
*/
public ResultBean draftBdSupplier(BdSupplier bdSupplier) {
//bdSupplier=BdSupplier.createBdSupplier();
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(bdSupplier);
String kingDeeData = BdSupplierCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<List<KingDeeResult>> resultBean = saveBill(KingDeeBillId.BD_SUPPLIER.getID(), kingDeeData);
ResultBean<List<KingDeeResult>> resultBean1 = submitKingDeeBillData(KingDeeBillId.BD_CUSTOMER.getID(), resultBean);
if(!resultBean1.getSuccess()){
log.info("供应商提交失败!");
return rb.setMsg("供应商提交失败!");
}
log.info("供应商提交成功!");
//String auditKD = getAuditKD(resultBean,KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<List<KingDeeResult>> resultBean2 = auditKingDeeBillData(KingDeeBillId.BD_CUSTOMER.getID(), resultBean);
if(!resultBean2.getSuccess()){
log.info("供应商审核失败!");
return rb.setMsg("供应商审核失败!");
}
log.info("供应商审核成功!");
//String allocate = getAllocate(resultBean1,bdCustomer.getTOrgIds(),KingDeeBillId.BD_CUSTOMER.getID());
ResultBean<List<KingDeeResult>> resultBean3 = allocateKingDeeBillData(KingDeeBillId.BD_MATERIAL.getID(),bdSupplier.getTOrgIds(), resultBean1);
if(!resultBean3.getSuccess()){
log.info("供应商分配失败!");
return rb.setMsg("供应商分配失败!");
}
log.info("供应商分配成功!");
return resultBean3;
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
}

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

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

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

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

29
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/data_model.json

@ -0,0 +1,29 @@
{
"FSupplierId": 0,
"FCreateOrgId": {
"FNumber": "100"
},
"FUseOrgId": {
"FNumber": "100"
},
"FName": "@KD_FName",
"FBaseInfo": {
"FSupplyClassify": "CG"
},
"FBusinessInfo": {
"FVmiBusiness": false,
"FEnableSL": false
},
"FFinanceInfo": {
"FPayCurrencyId": {
"FNumber": "PRE001"
},
"FTaxType": {
"FNumber": "SFL02_SYS"
},
"FInvoiceType": "1",
"FTaxRateId": {
"FNUMBER": "SL31_SYS"
}
}
}

145
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/remarks.txt

@ -0,0 +1,145 @@
一、请求参数说明:
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\":{\"FSupplierId\":\"0\",\"FCreateOrgId\":{\"FNumber\":\"\"},\"FNumber\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FName\":\"\",\"FShortName\":\"\",\"FGroup\":{\"FNumber\":\"\"},\"FCorrespondOrgId\":{\"FNumber\":\"\"},\"FDescription\":\"\",\"FForbiderId\":{\"FUserID\":\"\"},\"FForbidDate\":\"1900-01-01\",\"FBaseInfo\":{\"FEntryId\":\"0\",\"FCountry\":{\"FNumber\":\"\"},\"FProvincial\":{\"FNumber\":\"\"},\"FAddress\":\"\",\"FZip\":\"\",\"FLanguage\":{\"FNumber\":\"\"},\"FWebSite\":\"\",\"FTrade\":{\"FNumber\":\"\"},\"FFoundDate\":\"1900-01-01\",\"FLegalPerson\":\"\",\"FRegisterFund\":\"0\",\"FRegisterCode\":\"\",\"FSOCIALCRECODE\":\"\",\"FTendPermit\":\"\",\"FRegisterAddress\":\"\",\"FDeptId\":{\"FNumber\":\"\"},\"FStaffId\":{\"FNumber\":\"\"},\"FSupplierClassify\":{\"FNumber\":\"\"},\"FSupplyClassify\":\"\",\"FSupplierGrade\":{\"FNumber\":\"\"},\"FCompanyClassify\":{\"FNumber\":\"\"},\"FCompanyNature\":{\"FNumber\":\"\"},\"FCompanyScale\":{\"FNumber\":\"\"}},\"FBusinessInfo\":{\"FEntryId\":\"0\",\"FFreezeOperator\":{\"FUserID\":\"\"},\"FFreezeDate\":\"1900-01-01\",\"FPurchaserGroupId\":{\"FNumber\":\"\"},\"FParentSupplierId\":{\"FNumber\":\"\"},\"FSettleTypeId\":{\"FNumber\":\"\"},\"FPRICELISTID\":{\"FNumber\":\"\"},\"FDiscountListId\":{\"FNumber\":\"\"},\"FProviderId\":{\"FNumber\":\"\"},\"FWipStockId\":{\"FNumber\":\"\"},\"FVmiBusiness\":\"false\",\"FWipStockPlaceId\":{\"FWIPSTOCKPLACEID__FF100001\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100002\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100003\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100004\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100005\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100006\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100007\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100008\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100009\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100010\":{\"FNumber\":\"\"}},\"FVmiStockId\":{\"FNUMBER\":\"\"},\"FEnableSL\":\"false\"},\"FFinanceInfo\":{\"FEntryId\":\"0\",\"FCustomerId\":{\"FNumber\":\"\"},\"FPayCurrencyId\":{\"FNumber\":\"\"},\"FPayCondition\":{\"FNumber\":\"\"},\"FSettleId\":{\"FNumber\":\"\"},\"FPayAdvanceAmount\":\"0\",\"FTaxType\":{\"FNumber\":\"\"},\"FTaxRegisterCode\":\"\",\"FChargeId\":{\"FNumber\":\"\"},\"FInvoiceType\":\"\",\"FTaxRateId\":{\"FNUMBER\":\"\"},\"FFinanceDesc\":\"\"},\"FBankInfo\":[{\"FBankId\":\"0\",\"FBankCountry\":{\"FNumber\":\"\"},\"FOpenBankName\":\"\",\"FBankCode\":\"\",\"FBankHolder\":\"\",\"FBankTypeRec\":{\"FNUMBER\":\"\"},\"FTextBankDetail\":\"\",\"FOpenAddressRec\":\"\",\"FCNAPS\":\"\",\"FSwiftCode\":\"\",\"FBankCurrencyId\":{\"FNumber\":\"\"},\"FBankIsDefault\":\"false\",\"FBankDesc\":\"\"}],\"FLocationInfo\":[{\"FLocationId\":\"0\",\"FLocName\":\"\",\"FLocNewContact\":{\"FNUMBER\":\"\"},\"FLocAddress\":\"\",\"FLocMobile\":\"\"}],\"FSupplierContact\":[{\"FContactId\":\"0\"}]}}
三、返回参数:
{\"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("BD_Supplier","{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FSupplierId\":\"0\",\"FCreateOrgId\":{\"FNumber\":\"\"},\"FNumber\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FName\":\"\",\"FShortName\":\"\",\"FGroup\":{\"FNumber\":\"\"},\"FCorrespondOrgId\":{\"FNumber\":\"\"},\"FDescription\":\"\",\"FForbiderId\":{\"FUserID\":\"\"},\"FForbidDate\":\"1900-01-01\",\"FBaseInfo\":{\"FEntryId\":\"0\",\"FCountry\":{\"FNumber\":\"\"},\"FProvincial\":{\"FNumber\":\"\"},\"FAddress\":\"\",\"FZip\":\"\",\"FLanguage\":{\"FNumber\":\"\"},\"FWebSite\":\"\",\"FTrade\":{\"FNumber\":\"\"},\"FFoundDate\":\"1900-01-01\",\"FLegalPerson\":\"\",\"FRegisterFund\":\"0\",\"FRegisterCode\":\"\",\"FSOCIALCRECODE\":\"\",\"FTendPermit\":\"\",\"FRegisterAddress\":\"\",\"FDeptId\":{\"FNumber\":\"\"},\"FStaffId\":{\"FNumber\":\"\"},\"FSupplierClassify\":{\"FNumber\":\"\"},\"FSupplyClassify\":\"\",\"FSupplierGrade\":{\"FNumber\":\"\"},\"FCompanyClassify\":{\"FNumber\":\"\"},\"FCompanyNature\":{\"FNumber\":\"\"},\"FCompanyScale\":{\"FNumber\":\"\"}},\"FBusinessInfo\":{\"FEntryId\":\"0\",\"FFreezeOperator\":{\"FUserID\":\"\"},\"FFreezeDate\":\"1900-01-01\",\"FPurchaserGroupId\":{\"FNumber\":\"\"},\"FParentSupplierId\":{\"FNumber\":\"\"},\"FSettleTypeId\":{\"FNumber\":\"\"},\"FPRICELISTID\":{\"FNumber\":\"\"},\"FDiscountListId\":{\"FNumber\":\"\"},\"FProviderId\":{\"FNumber\":\"\"},\"FWipStockId\":{\"FNumber\":\"\"},\"FVmiBusiness\":\"false\",\"FWipStockPlaceId\":{\"FWIPSTOCKPLACEID__FF100001\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100002\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100003\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100004\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100005\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100006\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100007\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100008\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100009\":{\"FNumber\":\"\"},\"FWIPSTOCKPLACEID__FF100010\":{\"FNumber\":\"\"}},\"FVmiStockId\":{\"FNUMBER\":\"\"},\"FEnableSL\":\"false\"},\"FFinanceInfo\":{\"FEntryId\":\"0\",\"FCustomerId\":{\"FNumber\":\"\"},\"FPayCurrencyId\":{\"FNumber\":\"\"},\"FPayCondition\":{\"FNumber\":\"\"},\"FSettleId\":{\"FNumber\":\"\"},\"FPayAdvanceAmount\":\"0\",\"FTaxType\":{\"FNumber\":\"\"},\"FTaxRegisterCode\":\"\",\"FChargeId\":{\"FNumber\":\"\"},\"FInvoiceType\":\"\",\"FTaxRateId\":{\"FNUMBER\":\"\"},\"FFinanceDesc\":\"\"},\"FBankInfo\":[{\"FBankId\":\"0\",\"FBankCountry\":{\"FNumber\":\"\"},\"FOpenBankName\":\"\",\"FBankCode\":\"\",\"FBankHolder\":\"\",\"FBankTypeRec\":{\"FNUMBER\":\"\"},\"FTextBankDetail\":\"\",\"FOpenAddressRec\":\"\",\"FCNAPS\":\"\",\"FSwiftCode\":\"\",\"FBankCurrencyId\":{\"FNumber\":\"\"},\"FBankIsDefault\":\"false\",\"FBankDesc\":\"\"}],\"FLocationInfo\":[{\"FLocationId\":\"0\",\"FLocName\":\"\",\"FLocNewContact\":{\"FNUMBER\":\"\"},\"FLocAddress\":\"\",\"FLocMobile\":\"\"}],\"FSupplierContact\":[{\"FContactId\":\"0\"}]}}");
}
五、字段说明:
银行账号:FBankCode
账户名称:FBankHolder
默认:FBankIsDefault
国家:FBankCountry
结算方:FSettleId
收款方:FChargeId
默认税率:FTaxRateId
开户行地址:FOpenAddressRec
联行号:FCNAPS
SwiftCode:FSwiftCode
收款银行:FBankTypeRec
描述:FBankDesc
币别:FBankCurrencyId
开户银行:FOpenBankName
启用供应商协同:FEnableSL
结算币别:FPayCurrencyId (必填项)
对应客户:FCustomerId
VMI业务:FVmiBusiness
冻结人:FFreezeOperator
冻结日期:FFreezeDate
VMI仓库:FVmiStockId
描述:FFinanceDesc
付款条件:FPayCondition
发票类型:FInvoiceType
税分类:FTaxType
单次预付额度:FPayAdvanceAmount
税务登记号:FTaxRegisterCode
经营类型:FTendType
职务:FPost
电话:FTel
手机:FMobile
联系人:FContact
默认收款地址:FIsDefaultPayee
联系人(旧):FLocContact
联系人:FLocNewContact (必填项)
备注:FContactDescription
供应商联系人:FCommonContactId
编码:FContactNumber
默认联系人:FContactIsDefault
传真:FFax
电子邮箱:FEMail
即时通讯:FIMCode
地点编码:FLocNumber
地点名称:FLocName (必填项)
通讯地址:FLocAddress (必填项)
备注:FLocDesc
选择银行网点:FTextBankDetail
运输时间:FTransportDays
计划交货周期:FPlanDeliveryPeriod
电子邮箱:FLocEMail
默认供货地址:FIsDefaultSupply
默认开票地址:FIsDefaultSettle
传真:FLocFax
启用:FLocIsUsed
电话:FLocTel
手机:FLocMobile (必填项)
供货方:FProviderId
对应组织:FCorrespondOrgId
同步货主状态(GY):FSYNCGYOWNERSTATUS
注册编码:FRegNumber
供应商分组:FGroup
审核日期:FAuditDate
审核人:FAuditorId
通讯地址:FAddress
公司网址:FWebSite
注册地址:FRegisterAddress
语言:FLanguage
国家:FCountry
地区:FProvincial
邮政编码:FZip
描述:FDescription
创建组织:FCreateOrgId (必填项)
使用组织:FUseOrgId (必填项)
编码:FNumber
数据状态:FDocumentStatus
禁用状态:FForbidStatus
名称:FName (必填项)
简称:FShortName
禁用人:FForbiderId
禁用日期:FForbidDate
修改日期:FModifyDate
创建人:FCreatorId
修改人:FModifierId
创建日期:FCreateDate
最小订单量:FMinPOValue
需要确认:FNeedConfirm
汇总公司:FParentSupplierId
采购组:FPurchaserGroupId
公司规模:FCompanyScale
供应类别:FSupplyClassify
统一社会信用代码:FSOCIALCRECODE
默认WIP仓位:FWipStockPlaceId
默认WIP仓库:FWipStockId
默认折扣表:FDiscountListId
默认价目表:FPRICELISTID
业务状态:FBusinessStatus
冻结范围:FFreezeLimit
结算方式:FSettleTypeId
注册资金(万元):FRegisterFund
工商登记号:FRegisterCode
生产经营许可证:FTendPermit
法人代表:FLegalPerson
行业:FTrade
公司性质:FCompanyNature
创立日期:FFoundDate
供应商等级:FSupplierGrade
生效日期:FStartDate
失效日期:FEndDate
公司类别:FCompanyClassify
负责部门:FDeptId
负责人:FStaffId
供应商分类:FSupplierClassify

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

@ -0,0 +1 @@
{"formId":"BD_Supplier","data":"{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FSupplierId\":0,\"FCreateOrgId\":{\"FNumber\":\"100\"},\"FUseOrgId\":{\"FNumber\":\"100\"},\"FName\":\"13\",\"FBaseInfo\":{\"FSupplyClassify\":\"CG\"},\"FBusinessInfo\":{\"FVmiBusiness\":false,\"FEnableSL\":false},\"FFinanceInfo\":{\"FPayCurrencyId\":{\"FNumber\":\"PRE001\"},\"FTaxType\":{\"FNumber\":\"SFL02_SYS\"},\"FInvoiceType\":\"1\",\"FTaxRateId\":{\"FNUMBER\":\"SL31_SYS\"}}}}"}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/供应商的参数必填备注.xlsx

Binary file not shown.

48
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsCastToKingDeeBillFields.java

@ -0,0 +1,48 @@
package com.yxt.anrui.fin.biz.kingdee.orgorganizations;
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 org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* 封装转换的类
*/
public class OrgOrganizationsCastToKingDeeBillFields {
private static Logger log=LoggerFactory.getLogger(OrgOrganizationsCastToKingDeeBillFields.class);
/**
* 构造金蝶需要的数据结构 并对字段赋值
*
* @param map_fEntityModel_
* @return
*/
public static String getKingDeeData(Map<String,String> map_fEntityModel_ ){
/**
* 取模板
*/
String readJsonFile = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/orgorganizations/data.json");
String fEntityData_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/orgorganizations/data_data.json");
String fEntityModel_ = KingDeeUtils.readJsonFile("com/yxt/anrui/fin/biz/kingdee/orgorganizations/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();
}
}

35
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java

@ -0,0 +1,35 @@
package com.yxt.anrui.fin.biz.kingdee.orgorganizations;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.api.kingdee.stktransferdirect.StkTransferDirect;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
@Service
public class OrgOrganizationsService extends FinKingDeeService {
/**
* 保存组织机构
* @param orgOrganizations
* @return
*/
public ResultBean draftOrgOrganizations(OrgOrganizations orgOrganizations) {
//orgOrganizations=OrgOrganizations.createOrgOrganizations();
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(orgOrganizations);
//准备 物料列表的数据 ForEntryBill
String kingDeeData = OrgOrganizationsCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
return saveBill(KingDeeBillId.ORG_ORGANIZATIONS.getID(),kingDeeData);
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
}

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

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

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

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

23
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/data_model.json

@ -0,0 +1,23 @@
{
"FOrgID": 0,
"FNumber": "@KD_FNumber",
"FName": "@KD_FName",
"FOrgFormID": "@KD_FOrgFormID",
"FIsAccountOrg": true,
"FIsBusinessOrg": false,
"FSaleBox": false,
"FPurchaseBox": false,
"FStockBox": false,
"FQualityBox": false,
"FCapitalBox": false,
"FFactoryBox": false,
"FReceiptAndPayBox": false,
"FHRBox": false,
"FClearingBox": false,
"FAssetBox": false,
"FShareCenter": false,
"FService": false,
"FMarketing": false,
"FIsSynCERPOwer": false,
"FAcctOrgType": "1"
}

73
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/remarks.txt

@ -0,0 +1,73 @@
一、请求参数说明:
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\":{\"FOrgID\":\"0\",\"FNumber\":\"\",\"FName\":\"\",\"FOrgFormID\":\"\",\"FContact\":\"\",\"FTel\":\"\",\"FPostCode\":\"\",\"FADDRESS\":\"\",\"FDescription\":\"\",\"FIsAccountOrg\":\"false\",\"FIsBusinessOrg\":\"false\",\"FSaleBox\":\"false\",\"FPurchaseBox\":\"false\",\"FStockBox\":\"false\",\"FQualityBox\":\"false\",\"FCapitalBox\":\"false\",\"FFactoryBox\":\"false\",\"FReceiptAndPayBox\":\"false\",\"FHRBox\":\"false\",\"FClearingBox\":\"false\",\"FAssetBox\":\"false\",\"FParentID\":{\"FNumber\":\"\"},\"FShareCenter\":\"false\",\"FService\":\"false\",\"FMarketing\":\"false\",\"FIsSynCERPOwer\":\"false\",\"FTimeZone\":{\"FNUMBER\":\"\"},\"FAcctOrgType\":\"\"}}
三、返回参数:
{\"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("ORG_Organizations","{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FOrgID\":\"0\",\"FNumber\":\"\",\"FName\":\"\",\"FOrgFormID\":\"\",\"FContact\":\"\",\"FTel\":\"\",\"FPostCode\":\"\",\"FADDRESS\":\"\",\"FDescription\":\"\",\"FIsAccountOrg\":\"false\",\"FIsBusinessOrg\":\"false\",\"FSaleBox\":\"false\",\"FPurchaseBox\":\"false\",\"FStockBox\":\"false\",\"FQualityBox\":\"false\",\"FCapitalBox\":\"false\",\"FFactoryBox\":\"false\",\"FReceiptAndPayBox\":\"false\",\"FHRBox\":\"false\",\"FClearingBox\":\"false\",\"FAssetBox\":\"false\",\"FParentID\":{\"FNumber\":\"\"},\"FShareCenter\":\"false\",\"FService\":\"false\",\"FMarketing\":\"false\",\"FIsSynCERPOwer\":\"false\",\"FTimeZone\":{\"FNUMBER\":\"\"},\"FAcctOrgType\":\"\"}}");
}
五、字段说明:
库存职能:FStockBox
采购职能:FPurchaseBox
工厂职能:FFactoryBox
结算职能:FClearingBox
HR职能:FHRBox
审核日期:FAUDITDATE
核算组织:FIsAccountOrg
审核人:FAUDITORID
销售职能:FSaleBox
邮编:FPostCode
服务职能:FService
组织职能:FOrgFunctions
共享中心:FShareCenter
时区:FTimeZone
同步管易货主:FIsSynCERPOwer
收付职能:FReceiptAndPayBox
资产职能:FAssetBox
质检职能:FQualityBox
营销职能:FMarketing
资金职能:FCapitalBox
创建日期:FCreateDate
创建人:FCreatorId
修改日期:FModifyDate
联系人:FContact
描述:FDescription
禁用状态:FForbidStatus
数据状态:FDocumentStatus
名称:FName (必填项)
修改人:FModifierId
编码:FNumber (必填项)
所属法人:FParentID
法人:FIsCorp
禁用人:FFORBIDORID
业务组织:FIsBusinessOrg
禁用日期:FForbidDate
地址:FADDRESS
形态:FOrgFormID (必填项)
联系电话:FTel
利润中心:FIsProfileCenter
核算组织类型:FAcctOrgType

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

@ -0,0 +1 @@
{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FOrgID\":0,\"FNumber\":\"1236\",\"FName\":\"测试机构1\",\"FOrgFormID\":\"102\",\"FIsAccountOrg\":true,\"FIsBusinessOrg\":false,\"FSaleBox\":false,\"FPurchaseBox\":false,\"FStockBox\":false,\"FQualityBox\":false,\"FCapitalBox\":false,\"FFactoryBox\":false,\"FReceiptAndPayBox\":false,\"FHRBox\":false,\"FClearingBox\":false,\"FAssetBox\":false,\"FShareCenter\":false,\"FService\":false,\"FMarketing\":false,\"FIsSynCERPOwer\":false,\"FAcctOrgType\":\"1\"}}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/组织机构的参数必填备注.xlsx

Binary file not shown.

4
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stktransferdirect/StkTransferDirectService.java

@ -13,12 +13,12 @@ import java.util.Map;
public class StkTransferDirectService extends FinKingDeeService {
/**
* 保存采购入库
* 保存直接调拨
* @param stkTransferDirect
* @return
*/
public ResultBean draftStkTransferDirect(StkTransferDirect stkTransferDirect) {
stkTransferDirect=StkTransferDirect.createStkTransferDirect();
//stkTransferDirect=StkTransferDirect.createStkTransferDirect();
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合

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

@ -561,11 +561,11 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
try {
for(ScmApplyInboundVehicleDto s:scmApplyInboundVehicleDtos){
BdMaterial bm=new BdMaterial();
bm.setFCreateOrgId("100");//创建机构
//bm.setFCreateOrgId("100");//创建机构
ResultBean<BaseVehicle> baseVehicleResultBean = baseVehicleFeign.selectByVinNoAndOrgSid(s.getVinNo(),scmApplyInbound.getUseOrgSid());
bm.setFName(baseVehicleResultBean.getData().getVinNo());//物料名称
bm.setFMaterialGroup("03");//物料分组
bm.setFUseOrgId("100");//使用组织
//bm.setFUseOrgId("100");//使用组织
bm.setTOrgIds("100020");//欧曼黑龙江
bm.setF_PAEZ_Base("牵引");//车辆类型
list.add(bm);

81
anrui-scm/anrui-scm-ui/src/api/bikerebate/bicyclerebatecheck.js

@ -0,0 +1,81 @@
import request from '@/utils/request'
export default {
// 单车返利核对(待核对)查询分页列表
listPage: function(data) {
return request({
url: '/scm/v1/scmvehrebate/checkApplyGetVehRebate',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 单车返利核对(待核对)列表保存修改记录
updateDate: function(data) {
return request({
url: '/scm/v1/scmvehrebate/update',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 单车返利核对(待核对)列表调整修改记录
adjustment: function(data) {
return request({
url: '/scm/v1/scmvehrebate/adjustment',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 单车返利核对申请--点击添加--选择已核对单车返利信息
checkApplyGetAlreadyUploadVehRebate: function(data) {
return request({
url: '/scm/v1/scmvehrebate/checkApplyGetAlreadyUploadVehRebate',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 核对审核申请分页列表
pagelist: function(data) {
return request({
url: '/scm/v1/scmvehrebatecheckapply/listPage',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 删除
delete: function(params) {
return request({
url: '/scm/v1/scmvehrebate/delBySids',
method: 'DELETE',
data: params,
headers: { 'Content-Type': 'application/json' }
})
},
// 通过sid查询一条记录
fetchDetailsBySid: function(data) {
return request({
url: '/scm/v1/scmvehrebatecheckapply/fetchDetailsBySid/' + data,
method: 'get'
})
},
// 单车返利核对审核申请保存
save: function(data) {
return request({
url: '/scm/v1/scmvehrebatecheckapply/save',
method: 'post',
data: data,
headers: { 'Content-Type': 'application/json' }
})
},
// 查看明细
vehRebateWithDetails: function(data) {
return request({
url: '/scm/v1/scmvehrebatewith/vehRebateWithDetails/' + data,
method: 'get'
})
},
}

9
anrui-scm/anrui-scm-ui/src/api/cheliang/basevehiclemodel.js

@ -39,6 +39,15 @@ export function details(data) {
})
}
// 编辑回显 已改
export function saveGetAll(data) {
return request({
url: '/base/v1/basevehiclemodel/saveGetAll/' + data.sid + '/' + data.userSid,
method: 'get',
params: data
})
}
// 编辑回显 已改
export function getAll(data) {
return request({

82
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheck.vue

@ -13,7 +13,12 @@
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="品牌">
<el-input v-model="listQuery.params.mainSid" placeholder="请输入车架号" clearable/>
<el-select v-model="listQuery.params.brandSid" placeholder="请选择" filterable clearable>
<el-option v-for="item in brand_list" :key="item.sid" :label="item.brandName" :value="item.sid"/>
</el-select>
</el-form-item>
<el-form-item label="申请标题">
<el-input v-model="listQuery.params.checkApply" placeholder="" clearable/>
</el-form-item>
<el-form-item label="创建日期">
<el-date-picker v-model="listQuery.params.createStartTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
@ -48,32 +53,52 @@
</el-table-column>
<el-table-column label="分公司" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.createTime }}</span>
<span>{{ scope.row.createOrgName }}</span>
</template>
</el-table-column>
<el-table-column label="品牌" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.createTime }}</span>
<span>{{ scope.row.brandName }}</span>
</template>
</el-table-column>
<el-table-column label="预提申请" align="center" width="200">
<el-table-column label="申请标题" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.applyPeoName }}</span>
<span>{{ scope.row.checkApply }}</span>
</template>
</el-table-column>
<el-table-column label="预提返利" align="center" width="250">
<template slot-scope="scope">
<span>{{ scope.row.createOrgName }}</span>
<span>{{ scope.row.estimateRebate }}</span>
</template>
</el-table-column>
<el-table-column label="上传金额" align="center" width="250">
<template slot-scope="scope">
<span>{{ scope.row.uploadMoney }}</span>
</template>
</el-table-column>
<el-table-column label="待确定金额" align="center" width="250">
<template slot-scope="scope">
<span>{{ scope.row.stayDetermineMoney }}</span>
</template>
</el-table-column>
<el-table-column label="费用" align="center" width="250">
<template slot-scope="scope">
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="调整金额" align="center" width="250">
<template slot-scope="scope">
<span>{{ scope.row.adjustmentMoney }}</span>
</template>
</el-table-column>
<el-table-column label="创建日期" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.applyTitle }}</span>
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="创建人" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.createByName }}</span>
</template>
</el-table-column>
</el-table>
@ -84,21 +109,25 @@
</div>
</div>
</div>
<bicyclerebatecheckAdd v-show="viewState == 2" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
</div>
</template>
<script>
import req from '@/api/othermenu/shangzhuangtiaojia'
import req from '@/api/bikerebate/bicyclerebatecheck'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { brandDown, getPathSidByUserSid } from '@/api/cheliang/dictcommons'
import bicyclerebatecheckAdd from './bicyclerebatecheckAdd'
export default {
name: 'bicyclerebatecheck',
components: {
Pagination,
pageye,
ButtonBar
ButtonBar,
bicyclerebatecheckAdd
},
data() {
return {
@ -128,9 +157,12 @@ export default {
sids: [],
FormLoading: false,
listLoading: false,
brand_list: '',
listQuery: {
params: {
createBySid: '',
brandSid: '',
checkApply: '',
createOrgSid: '',
createEndTime: '',
createStartTime: ''
},
@ -143,12 +175,25 @@ export default {
},
created() {
//
this.getList()
this.init()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {
if (res.success) {
this.brand_list = res.data
}
})
this.getList()
}
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
@ -188,8 +233,7 @@ export default {
//
getList() {
this.listLoading = true
this.listQuery.params.createBySid = window.sessionStorage.getItem('userSid')
req.listPage(this.listQuery).then((response) => {
req.pagelist(this.listQuery).then((response) => {
console.log('列表查询结果:', response)
this.listLoading = false
if (response.success && response.data && response.data.total > 0) {
@ -209,7 +253,9 @@ export default {
handleReset() {
this.listQuery = {
params: {
createBySid: '',
brandSid: '',
checkApply: '',
createOrgSid: '',
createEndTime: '',
createStartTime: ''
},
@ -222,12 +268,8 @@ export default {
handleClick() {
this.$parent.resetState()
},
toAdd() {
this.viewState = 2
this.$refs['divAdd'].showAdd(this.listQuery.params.createOrgSid)
},
toEdit(row) {
this.viewState = 3
this.viewState = 2
this.$refs['divAdd'].showEdit(row)
},
toInfo(row) {

413
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheckAdd.vue

@ -15,57 +15,61 @@
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="titwu"><span>单车返利核对审核申请</span></div>
<div class="titwu"><span>{{ formobj.checkApply }}单车返利核对审核申请</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-row class="rowStyle">
<el-col :span="24" class="tleftb colOneStyle">
<el-col :span="2" class="tleftb colOneStyle">
<span>品牌:</span>
</el-col>
<el-col :span="4" class="colOneStyle">
<el-form-item>
<el-select :disabled="dialogStatus === 'edit'" v-model="formobj.brandName" placeholder="请选择" filterable clearable @change="changeBrand">
<el-option v-for="item in brand_list" :key="item.sid" :label="item.brandName" :value="item.brandName"/>
</el-select>
</el-form-item>
</el-col>
<el-col :span="18" class="tleftb colOneStyle">
<el-button size="small" type="primary" @click="handleSelect()">添加</el-button>
</el-col>
</el-row>
<div class="title">
<div>本月各项返利核对情况</div>
</div>
<el-table :key="tableKey" :data="formobj.baseVehinstallModpricedetails" :index="index" border style="width: 100%">
<el-table :key="tableKey" :data="formobj.scmWhenVehrebateCheckapplydetailDetails" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column fixed prop="name" label="操作" width="100px" align="center" header-align="center">
<template slot-scope="scope">
<el-button size="mini" type="danger" @click="dataDelete(scope.$index)">删除
</el-button>
</template>
</el-table-column>
<el-table-column label="返利类型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.jacketName }}</span>
<span>{{ scope.row.rebateTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.num }}</span>
</template>
</el-table-column>
<el-table-column label="预提金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
<span>{{ scope.row.withRebate }}</span>
</template>
</el-table-column>
<el-table-column label="上传金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadMoney }}</span>
</template>
</el-table-column>
<el-table-column label="待确认金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.stayDetermineMoney }}</span>
</template>
</el-table-column>
<el-table-column label="调整金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.adjustmentMoney }}</span>
</template>
</el-table-column>
<el-table-column label="费用" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="明细" align="center">
@ -74,67 +78,67 @@
</template>
</el-table-column>
</el-table>
<div class="title">
<div class="divStyle">
<div>预提返利本月核对情况</div>
<el-button type="primary" size="mini" class="btntopblueline" @click="handleCheck">往月核对情况</el-button>
</div>
<el-table :key="baseVehinstallModpriceKey" :data="formobj.baseVehinstallModprice" :index="index" border style="width: 100%">
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table :key="lastVehrebateKey" :data="formobj.scmLastVehrebateCheckapplydetailDetails" border style="width: 100%">
<el-table-column label="预提年月" align="center">
<template slot-scope="scope">
<span>{{ scope.row.jacketName }}</span>
<span>{{ scope.row.palceGenDate }}</span>
</template>
</el-table-column>
<el-table-column label="预提数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.withholdingAmount }}</span>
</template>
</el-table-column>
<el-table-column label="预提金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
<span>{{ scope.row.withRebate }}</span>
</template>
</el-table-column>
<el-table-column label="上传数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadAmount }}</span>
</template>
</el-table-column>
<el-table-column label="上传金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadMoney }}</span>
</template>
</el-table-column>
<el-table-column label="待确认金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.stayDetermineMoney }}</span>
</template>
</el-table-column>
<el-table-column label="调整金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.adjustmentMoney }}</span>
</template>
</el-table-column>
<el-table-column label="费用" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="未上传数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.notUploadedAmount }}</span>
</template>
</el-table-column>
<el-table-column label="未上传金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.notUploadedCost }}</span>
</template>
</el-table-column>
</el-table>
<el-row>
<el-col :span="4">
<el-col :span="2" class="tleftb">
<span>备注</span>
</el-col>
<el-col :span="20">
<el-col :span="22">
<el-form-item><el-input v-model="formobj.remarks" placeholder="" class="addinputw" clearable></el-input></el-form-item>
</el-col>
</el-row>
@ -143,13 +147,53 @@
</div>
<!--End 添加修改部分-->
<yiheduidanchefanli v-show="viewState == 2" ref="divSelect" @backData="backData" @doback="resetState"/>
<bicyclerebatetobecheckedAdd v-show="viewState == 3" ref="divAdd" @doback="resetState"/>
<bicyclerebatetobecheckedAdd v-show="viewState == 3" ref="divAdd" @backAdd="backAdd" @doback="resetState"/>
<el-dialog :visible.sync="dialogVisible" width="60%">
<div class="titwu"><span>往月核对情况</span></div>
<el-form class="formadd">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="3" class="tleftb">
<span>月促政策</span>
</el-col>
<el-col :span="21">
<el-form-item><span>{{ summation }}</span></el-form-item>
</el-col>
</el-row>
<el-table :key="checkKey" :data="checkList" border width="100%">
<el-table-column label="计提月份" align="center">
<template slot-scope="scope">
<span>{{ scope.row.month }}</span>
</template>
</el-table-column>
<el-table-column label="计提" align="center">
<template slot-scope="scope">
<span>{{ scope.row.month }}</span>
</template>
</el-table-column>
<el-table-column label="上传" align="center">
<template slot-scope="scope">
<span>{{ scope.row.month }}</span>
</template>
</el-table-column>
<el-table-column label="未上传" align="center">
<template slot-scope="scope">
<span>{{ scope.row.month }}</span>
</template>
</el-table-column>
<el-table-column label="调整" align="center">
<template slot-scope="scope">
<span>{{ scope.row.month }}</span>
</template>
</el-table-column>
</el-table>
</el-form>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/othermenu/shangzhuangtiaojia'
import { getPathSidByUserSid, fetchBySid } from '@/api/cheliang/dictcommons'
import req from '@/api/bikerebate/bicyclerebatecheck'
import { fetchBySid, brandDown } from '@/api/cheliang/dictcommons'
import yiheduidanchefanli from './relation/yiheduidanchefanli'
import bicyclerebatetobecheckedAdd from './relation/bicyclerebatetobecheckedAdd'
@ -162,119 +206,274 @@ export default {
data() {
return {
viewTitle: '',
viewState: 1,
index: 0,
tableKey: 0,
baseVehinstallModpriceKey: 1,
viewState: 1,
lastVehrebateKey: 1,
checkKey: 2,
dialogVisible: false,
summation: '',
checkList: [],
dialogStatus: '',
brand_list: [],
//
formobj: {
applyPeoName: '',
applyTitle: '',
createBySid: '',
sid: '',
createByName: '',
brandName: '',
brandSid: '',
checkApply: '',
createOrgName: '',
createOrgSid: '',
modpriceReason: '',
nodeState: '',
sid: '',
useOrgName: '',
useOrgSid: '',
baseVehinstallModpricedetails: []
remarks: '',
instanceId: '', // ID
taskId: '', // ID
scmWhenVehrebateCheckapplydetailDetails: [],
scmLastVehrebateCheckapplydetailDetails: []
},
rules: {},
submitdisabled: false
}
},
methods: {
//
newDate() {
let date = new Date()
let year = date.getFullYear() //
let month = date.getMonth() + 1 //
let day = date.getDate() //
if (month < 10) {
month = '0' + month
}
if (day < 10) {
day = '0' + day
}
this.formobj.createTime = year + '-' + month + '-' + day
this.formobj.checkApply = year + '年' + month + '月'
},
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
if (resp.success) {
this.formobj.createOrgSid = resp.data
this.formobj.useOrgSid = resp.data
fetchBySid(this.formobj.createOrgSid).then((res) => {
if (res.success) {
this.formobj.createOrgName = res.data.name
this.formobj.useOrgName = res.data.name
}
})
fetchBySid(this.formobj.createOrgSid).then((res) => {
if (res.success) {
this.formobj.createOrgName = res.data.name
this.formobj.useOrgName = res.data.name
}
})
brandDown({ useOrg: this.formobj.createOrgSid }).then((res) => {
if (res.success) {
this.brand_list = res.data
}
})
},
showAdd() {
this.init()
this.newDate()
showAdd(createOrgSid) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
this.init()
this.newDate()
})
this.formobj.createBySid = window.sessionStorage.getItem('userSid')
this.formobj.applyPeoName = window.sessionStorage.getItem('name')
this.viewTitle = '【新增】单车返利预提申请'
this.dialogStatus = 'add'
this.formobj.createOrgSid = createOrgSid
this.formobj.useOrgSid = createOrgSid
this.formobj.createByName = window.sessionStorage.getItem('name')
this.viewTitle = '【新增】单车返利核对审核申请'
},
showEdit(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '【编辑】单车返利预提申请'
this.dialogStatus = 'edit'
this.viewTitle = '【编辑】单车返利核对审核申请'
console.log('编辑回显', row.sid)
req.fetchBySid(row.sid).then((resp) => {
req.fetchDetailsBySid(row.sid).then((resp) => {
this.formobj = resp.data
}).catch((e) => {
this.formobj = row
})
},
changeBrand(value) {
let bb = null
this.brand_list.forEach((e) => {
if (e.brandName === value) {
bb = {
name: e.brandName,
sid: e.sid
}
}
})
this.formobj.brandSid = bb.sid
},
//
handleSelect() {
if (this.formobj.brandName === '' || this.formobj.brandName === null || this.formobj.brandName === undefined) {
this.$message({ showClose: true, type: 'error', message: '请先选择品牌' })
return
}
this.viewState = 2
this.$refs['divSelect'].showData(this.formobj.baseVehinstallModpricedetails)
this.$refs['divSelect'].showData(this.formobj.scmWhenVehrebateCheckapplydetailDetails, this.formobj.scmLastVehrebateCheckapplydetailDetails, this.formobj.createOrgSid, this.formobj.brandSid)
},
backData(value) {
backData(value, val) {
this.viewState = 1
if (value.length > 0) {
value.forEach((e) => {
this.formobj.baseVehinstallModpricedetails.push({
adjustVehGuidedPrice: '',
costPrice: e.costPrice,
guidedPrice: e.guidedPrice,
incOrDecInPrice: '',
jacketName: e.jacketName,
jacketSid: e.jacketSid,
mainSid: '',
modelName: e.modelName,
modelSid: e.modelSid,
sid: '',
vehGuidedPrice: '',
vinNo: e.vinNo,
remarks: ''
})
})
for (var i in value) {
let cval = value[i]
if (!this.formobj.scmWhenVehrebateCheckapplydetailDetails || this.formobj.scmWhenVehrebateCheckapplydetailDetails.length === 0) {
this.formobj.scmWhenVehrebateCheckapplydetailDetails = []
}
let v = 0
for (var j in this.formobj.scmWhenVehrebateCheckapplydetailDetails) {
if (this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].rebateTypeValue === cval.rebateTypeValue) {
this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].num = parseInt(this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].num) + parseInt(1)
this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].withRebate = parseInt(this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].withRebate) + parseInt(cval.withRebate)
this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].uploadMoney = parseInt(this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].uploadMoney) + parseInt(cval.uploadMoney)
this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].stayDetermineMoney = parseInt(this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].stayDetermineMoney) + parseInt(cval.stayDetermineMoney)
this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].adjustmentMoney = parseInt(this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].adjustmentMoney) + parseInt(cval.adjustmentMoney)
this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].money = parseInt(this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].money) + parseInt(cval.money)
this.formobj.scmWhenVehrebateCheckapplydetailDetails[j].vehRebateSids.push(cval.sid)
v = 1
break
}
}
if (v === 0) {
this.formobj.scmWhenVehrebateCheckapplydetailDetails.push({
rebateTypeKey: cval.rebateTypeKey,
rebateTypeValue: cval.rebateTypeValue,
num: 1,
withRebate: cval.withRebate,
brandName: cval.brandName,
brandSid: cval.brandSid,
uploadMoney: cval.uploadMoney,
stayDetermineMoney: cval.stayDetermineMoney,
adjustmentMoney: cval.adjustmentMoney,
money: cval.money,
vehRebateSids: [cval.sid],
sid: '',
mainSid: ''
})
}
}
} else {
this.formobj.scmWhenVehrebateCheckapplydetailDetails = []
}
if (val.length > 0) {
for (var p in val) {
let bval = val[p]
if (!this.formobj.scmLastVehrebateCheckapplydetailDetails || this.formobj.scmLastVehrebateCheckapplydetailDetails.length === 0) {
this.formobj.scmLastVehrebateCheckapplydetailDetails = []
}
let v = 0
for (var l in this.formobj.scmLastVehrebateCheckapplydetailDetails) {
if (this.formobj.scmLastVehrebateCheckapplydetailDetails[l].palceGenDate === bval.palceGenDate) {
this.formobj.scmLastVehrebateCheckapplydetailDetails[l].withholdingAmount = parseInt(this.formobj.scmLastVehrebateCheckapplydetailDetails[l].withholdingAmount) + parseInt(1)
this.formobj.scmLastVehrebateCheckapplydetailDetails[l].uploadAmount = parseInt(this.formobj.scmLastVehrebateCheckapplydetailDetails[l].uploadAmount) + parseInt(1)
this.formobj.scmLastVehrebateCheckapplydetailDetails[l].withRebate = parseInt(this.formobj.scmLastVehrebateCheckapplydetailDetails[l].withRebate) + parseInt(bval.withRebate)
this.formobj.scmLastVehrebateCheckapplydetailDetails[l].uploadMoney = parseInt(this.formobj.scmLastVehrebateCheckapplydetailDetails[l].uploadMoney) + parseInt(bval.uploadMoney)
this.formobj.scmLastVehrebateCheckapplydetailDetails[l].stayDetermineMoney = parseInt(this.formobj.scmLastVehrebateCheckapplydetailDetails[l].stayDetermineMoney) + parseInt(bval.stayDetermineMoney)
this.formobj.scmLastVehrebateCheckapplydetailDetails[l].adjustmentMoney = parseInt(this.formobj.scmLastVehrebateCheckapplydetailDetails[l].adjustmentMoney) + parseInt(bval.adjustmentMoney)
this.formobj.scmLastVehrebateCheckapplydetailDetails[l].money = parseInt(this.formobj.scmLastVehrebateCheckapplydetailDetails[l].money) + parseInt(bval.money)
this.formobj.scmLastVehrebateCheckapplydetailDetails[l].vehRebateSids.push(bval.sid)
v = 1
break
}
}
if (v === 0) {
this.formobj.scmLastVehrebateCheckapplydetailDetails.push({
palceGenDate: bval.palceGenDate,
withholdingAmount: 1,
uploadAmount: 1,
withRebate: bval.withRebate,
uploadMoney: bval.uploadMoney,
stayDetermineMoney: bval.stayDetermineMoney,
adjustmentMoney: bval.adjustmentMoney,
money: bval.money,
notUploadedAmount: '',
notUploadedCost: '',
vehRebateSids: [bval.sid],
sid: '',
mainSid: ''
})
}
}
} else {
this.formobj.scmLastVehrebateCheckapplydetailDetails = []
}
},
//
dataDelete(index) {
this.formobj.baseVehinstallModpricedetails.splice(index, 1)
},
handleLook(row) {},
handleLook(row) {
this.viewState = 3
this.$refs['divAdd'].showInfo(row)
},
backAdd(value, rebateType) {
this.viewState = 1
const aa = []
if (value.length > 0) {
for (var i in value) {
let cval = value[i]
let v = 0
for (var j in aa) {
if (aa[j].rebateTypeValue === cval.rebateTypeValue) {
aa[j].num = parseInt(aa[j].num) + parseInt(1)
aa[j].withRebate = parseInt(aa[j].withRebate) + parseInt(cval.withRebate)
aa[j].uploadMoney = parseInt(aa[j].uploadMoney) + parseInt(cval.uploadMoney)
aa[j].stayDetermineMoney = parseInt(aa[j].stayDetermineMoney) + parseInt(cval.stayDetermineMoney)
aa[j].adjustmentMoney = parseInt(aa[j].adjustmentMoney) + parseInt(cval.adjustmentMoney)
aa[j].money = parseInt(aa[j].money) + parseInt(cval.money)
aa[j].vehRebateSids.push(cval.sid)
v = 1
break
}
}
if (v === 0) {
aa.push({
rebateTypeKey: cval.rebateTypeKey,
rebateTypeValue: cval.rebateTypeValue,
num: 1,
withRebate: cval.withRebate,
brandName: cval.brandName,
brandSid: cval.brandSid,
uploadMoney: cval.uploadMoney,
stayDetermineMoney: cval.stayDetermineMoney,
adjustmentMoney: cval.adjustmentMoney,
money: cval.money,
vehRebateSids: [cval.sid],
sid: '',
mainSid: ''
})
}
}
for (var k = 0; k < this.formobj.scmWhenVehrebateCheckapplydetailDetails.length; k++) {
if (this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].rebateTypeValue === rebateType) {
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].rebateTypeKey = aa[0].rebateTypeKey
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].rebateTypeValue = aa[0].rebateTypeValue
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].num = aa[0].num
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].withRebate = aa[0].withRebate
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].brandName = aa[0].brandName
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].brandSid = aa[0].brandSid
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].uploadMoney = aa[0].uploadMoney
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].stayDetermineMoney = aa[0].stayDetermineMoney
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].adjustmentMoney = aa[0].adjustmentMoney
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].money = aa[0].money
this.formobj.scmWhenVehrebateCheckapplydetailDetails[k].vehRebateSids = aa[0].vehRebateSids
break
}
}
} else if (value.length === 0) {
for (var l = 0; l < this.formobj.scmWhenVehrebateCheckapplydetailDetails.length; l++) {
if (this.formobj.scmWhenVehrebateCheckapplydetailDetails[l].rebateTypeValue === rebateType) {
this.formobj.scmWhenVehrebateCheckapplydetailDetails.splice(l, 1)
break
}
}
}
},
resetState() {
this.viewState = 1
},
handleCheck() {
this.dialogVisible = true
},
save() {
console.log(this.formobj)
this.$refs['form_obj'].validate((valid) => {
if (valid) {
this.submitdisabled = true
req.saveOrUpdate(this.formobj).then((resp) => {
req.save(this.formobj).then((resp) => {
this.submitdisabled = false
if (resp.success) {
this.$message({
@ -297,17 +496,20 @@ export default {
if (isreload === 'true') this.$emit('reloadlist')
//
this.formobj = {
applyPeoName: '',
applyTitle: '',
createBySid: '',
sid: '',
createByName: '',
brandName: '',
brandSid: '',
checkApply: '',
createOrgName: '',
createOrgSid: '',
modpriceReason: '',
nodeState: '',
sid: '',
useOrgName: '',
useOrgSid: '',
baseVehinstallModpricedetails: []
remarks: '',
instanceId: '', // ID
taskId: '', // ID
scmWhenVehrebateCheckapplydetailDetails: [],
scmLastVehrebateCheckapplydetailDetails: []
}
this.$refs['form_obj'].resetFields()
this.$emit('doback')
@ -316,6 +518,23 @@ export default {
}
</script>
<style scoped>
.divStyle {
padding: 7px;
font-weight: bold;
font-size: 16px;
background-color: #0294d7;
color: #ffffff;
text-align: left;
display: flex;
flex-direction: row;
justify-content: space-between;
align-items: center;
}
.titwu {
font-size: 28px;
text-align: center;
padding: 30px 0 20px 0;
}
.rowStyle {
border-left: 0px;
}

88
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatecheckInfo.vue

@ -22,37 +22,37 @@
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="返利类型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.jacketName }}</span>
<span>{{ scope.row.rebateTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.num }}</span>
</template>
</el-table-column>
<el-table-column label="预提金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
<span>{{ scope.row.withRebate }}</span>
</template>
</el-table-column>
<el-table-column label="上传金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadMoney }}</span>
</template>
</el-table-column>
<el-table-column label="待确认金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.stayDetermineMoney }}</span>
</template>
</el-table-column>
<el-table-column label="调整金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.adjustmentMoney }}</span>
</template>
</el-table-column>
<el-table-column label="费用" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="明细" align="center">
@ -68,52 +68,52 @@
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="预提年月" align="center">
<template slot-scope="scope">
<span>{{ scope.row.jacketName }}</span>
<span>{{ scope.row.palceGenDate }}</span>
</template>
</el-table-column>
<el-table-column label="预提数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.withholdingAmount }}</span>
</template>
</el-table-column>
<el-table-column label="预提金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
<span>{{ scope.row.withRebate }}</span>
</template>
</el-table-column>
<el-table-column label="上传数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadAmount }}</span>
</template>
</el-table-column>
<el-table-column label="上传金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadMoney }}</span>
</template>
</el-table-column>
<el-table-column label="待确认金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.stayDetermineMoney }}</span>
</template>
</el-table-column>
<el-table-column label="调整金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.adjustmentMoney }}</span>
</template>
</el-table-column>
<el-table-column label="费用" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="未上传数量" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.notUploadedAmount }}</span>
</template>
</el-table-column>
<el-table-column label="未上传金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.notUploadedCost }}</span>
</template>
</el-table-column>
</el-table>
@ -135,7 +135,6 @@
<script>
import req from '@/api/othermenu/shangzhuangtiaojia'
import { getPathSidByUserSid, fetchBySid } from '@/api/cheliang/dictcommons'
import bicyclerebatetobecheckedInfo from './relation/bicyclerebatetobecheckedInfo'
export default {
@ -152,43 +151,17 @@ export default {
baseVehinstallModpriceKey: 1,
viewState: 1,
//
formobj: {
applyPeoName: '',
applyTitle: '',
createBySid: '',
createOrgName: '',
createOrgSid: '',
modpriceReason: '',
nodeState: '',
sid: '',
useOrgName: '',
useOrgSid: '',
baseVehinstallModpricedetails: []
},
formobj: {},
rules: {},
submitdisabled: false
}
},
methods: {
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
if (resp.success) {
this.formobj.createOrgSid = resp.data
this.formobj.useOrgSid = resp.data
fetchBySid(this.formobj.createOrgSid).then((res) => {
if (res.success) {
this.formobj.createOrgName = res.data.name
this.formobj.useOrgName = res.data.name
}
})
}
})
},
showEdit(row) {
showInfo(row) {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '【编辑】单车返利预提申请'
this.viewTitle = '单车返利核对审核申请详情'
console.log('编辑回显', row.sid)
req.fetchBySid(row.sid).then((resp) => {
this.formobj = resp.data
@ -200,19 +173,7 @@ export default {
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
//
this.formobj = {
applyPeoName: '',
applyTitle: '',
createBySid: '',
createOrgName: '',
createOrgSid: '',
modpriceReason: '',
nodeState: '',
sid: '',
useOrgName: '',
useOrgSid: '',
baseVehinstallModpricedetails: []
}
this.formobj = {}
this.$refs['form_obj'].resetFields()
this.$emit('doback')
}
@ -220,12 +181,5 @@ export default {
}
</script>
<style scoped>
.rowStyle {
border-left: 0px;
}
.colOneStyle {
border-right: 0px !important;
border-bottom: 0px !important;
}
</style>

413
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue

@ -13,10 +13,12 @@
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form-item label="品牌">
<el-input v-model="listQuery.params.mainSid" placeholder="请输入车架号" clearable/>
<el-select v-model="listQuery.params.brandSid" placeholder="请选择" filterable clearable>
<el-option v-for="item in brand_list" :key="item.sid" :label="item.brandName" :value="item.sid"/>
</el-select>
</el-form-item>
<el-form-item label="车架号">
<el-input v-model="listQuery.params.mainSid" placeholder="请输入车架号" clearable/>
<el-input v-model="listQuery.params.vinNo" placeholder="" clearable/>
</el-form-item>
<el-form-item label="创建日期">
<el-date-picker v-model="listQuery.params.createStartTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
@ -24,14 +26,18 @@
<el-date-picker v-model="listQuery.params.createEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="返利类型">
<el-input v-model="listQuery.params.mainSid" placeholder="请输入车架号" clearable/>
<el-select v-model="listQuery.params.rebateTypeKey" placeholder="请选择" filterable clearable>
<el-option v-for="item in rebateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="返利名称">
<el-input v-model="listQuery.params.mainSid" placeholder="请输入车架号" clearable/>
</el-form-item>
<el-form-item label="上传状态">
<el-input v-model="listQuery.params.mainSid" placeholder="请输入车架号" clearable/>
<el-input v-model="listQuery.params.rebateName" placeholder="" clearable/>
</el-form-item>
<!-- <el-form-item label="上传状态">-->
<!-- <el-select v-model="listQuery.params.state" placeholder="请选择" filterable clearable>-->
<!-- <el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>-->
<!-- </el-select>-->
<!-- </el-form-item>-->
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
@ -52,118 +58,111 @@
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80px"/>
<el-table-column label="上传状态" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.nodeState }}</span>
<span>{{ scope.row.uploadState === '0' ? '未调整' : scope.row.uploadState === '1' ? '已调整' : scope.row.uploadState === '2' ? '未上传' : scope.row.uploadState === '3' ? '已上传' : ''}}</span>
</template>
</el-table-column>
<el-table-column label="品牌" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.createTime }}</span>
<span>{{ scope.row.brandName }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.applyPeoName }}</span>
<span>{{ scope.row.vehModelName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center" width="250">
<template slot-scope="scope">
<span>{{ scope.row.createOrgName }}</span>
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="厂家结算价" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.applyTitle }}</span>
<span>{{ scope.row.manufactorSettlementPrice }}</span>
</template>
</el-table-column>
<el-table-column label="其中运费" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.freight }}</span>
</template>
</el-table-column>
<el-table-column label="创建日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
</template>
</el-table-column>
<el-table-column label="返利类型" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="返利名称" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.rebateName }}</span>
</template>
</el-table-column>
<el-table-column label="计算标准" align="center" width="100">
<el-table-column label="返利类型" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.rebateTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="预计返利" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.estimateRebate }}</span>
</template>
</el-table-column>
<el-table-column label="所属年月" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
</template>
</el-table-column>
<el-table-column label="预提日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.palceGenDate }}</span>
</template>
</el-table-column>
<el-table-column label="上传日期" align="center" width="120">
<el-table-column label="上传日期" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<el-date-picker v-model="scope.row.uploadDate" type="date" style="width: 160px" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</template>
</el-table-column>
<el-table-column label="上传金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<el-input v-model="scope.row.uploadMoney" clearable placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column label="二次上传日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.secondaryUploadDate }}</span>
</template>
</el-table-column>
<el-table-column label="二次上传金额" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<span>{{ scope.row.secondaryUploadMoney }}</span>
</template>
</el-table-column>
<el-table-column label="待确定金额" align="center" width="120">
<el-table-column label="待确定金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<el-input v-model="scope.row.stayDetermineMoney" clearable placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column label="费用" align="center" width="120">
<el-table-column label="费用" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<el-input v-model="scope.row.money" clearable placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column label="是否调整" align="center" width="100">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<template slot-scope="scope"><!--@change="changeIsAdjustment(scope.row)" -->
<el-select v-model="scope.row.isAdjustment" @change="changeIsAdjustment(scope.row)" placeholder="" filterable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</template>
</el-table-column>
<el-table-column label="调整金额" align="center" width="100">
<el-table-column label="调整金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<el-input :disabled="scope.row.isAdjustment === '' || scope.row.isAdjustment === '否'" v-model="scope.row.adjustmentMoney" clearable placeholder=""></el-input>
<!-- <span>{{ scope.row.adjustmentMoney }}</span>-->
</template>
</el-table-column>
<el-table-column label="调整说明" align="center" width="120">
<el-table-column label="调整说明" align="center" width="300">
<template slot-scope="scope">
<span>{{ scope.row.modpriceReason }}</span>
<el-input :disabled="scope.row.isAdjustment === '' || scope.row.isAdjustment === '否'" v-model="scope.row.adjustmentRemarks" clearable placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column label="操作" align="center" width="180px" >
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="toEdit(scope.row)">保存</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">调整</el-button>
<el-button type="primary" size="mini" @click="toSave(scope.row)">保存</el-button>
<el-button type="primary" :disabled="scope.row.isAdjustment === '' || scope.row.isAdjustment === '是'" size="mini" @click="toAdjust(scope.row)">调整</el-button>
</template>
</el-table-column>
</el-table>
@ -176,15 +175,106 @@
</div>
<bicyclerebatecheck v-show="viewState == 2" ref="divCheck" @doback="resetState"/>
<bicyclerebatecheckAdd v-show="viewState == 3" ref="divCheckAdd" @doback="resetState"/>
<el-dialog center :visible.sync="dialogVisible" width="60%">
<div class="app-container">
<div class="tab-header webtop">
<!--标题-->
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="primary" size="small" :disabled="submitdisabled" @click="handleSave()">保存
</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<div class="title">
<div><span>待确定金额</span></div>
</div>
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="4" class="tleftb">
<span>待确定金额</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.stayDetermineMoney }}</span></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>其中含费用</span>
</el-col>
<el-col :span="4">
<el-form-item><el-input v-model="formobj.firstCost" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>其中含返利</span>
</el-col>
<el-col :span="4">
<el-form-item><el-input v-model="formobj.firstRebate" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<div class="title">
<el-checkbox v-model="checked"><span style="color: #FFFFFF">返利二次上传</span></el-checkbox>
</div>
<div v-if="checked">
<el-row>
<el-col :span="4" class="tleftb">
<span>剩余预计返利</span>
</el-col>
<el-col :span="4">
<el-form-item><span>{{ formobj.surplusRebate}}</span></el-form-item>
</el-col>
<el-col :span="4">
</el-col>
<el-col :span="4">
</el-col>
<el-col :span="4" class="tleftb">
<span>二次上传日期</span>
</el-col>
<el-col :span="4">
<el-form-item><el-date-picker v-model="formobj.secondaryUploadDate" type="date" clearable value-format="yyyy-MM-dd" style="width: 100%" placeholder="选择日期"/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>二次上传金额</span>
</el-col>
<el-col :span="4">
<el-form-item><el-input v-model="formobj.secondaryUploadMoney" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>其中含费用</span>
</el-col>
<el-col :span="4">
<el-form-item><el-input v-model="formobj.secondCost" clearable placeholder=""/></el-form-item>
</el-col>
<el-col :span="4" class="tleftb">
<span>其中含返利</span>
</el-col>
<el-col :span="4">
<el-form-item><el-input v-model="formobj.secondRebate" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="4" class="tleftb">
<span>调整金额合计</span>
</el-col>
<el-col :span="20">
<el-form-item><span>{{ adjustmentMoney() }}</span></el-form-item>
</el-col>
</el-row>
</div>
</el-form>
</div>
</el-dialog>
</div>
</template>
<script>
import req from '@/api/othermenu/shangzhuangtiaojia'
import req from '@/api/bikerebate/bicyclerebatecheck'
import Pagination from '@/components/pagination'
import ButtonBar from '@/components/ButtonBar'
import bicyclerebatecheck from './bicyclerebatecheck'
import bicyclerebatecheckAdd from './bicyclerebatecheckAdd'
import { brandDown, getPathSidByUserSid, typeValues } from '@/api/cheliang/dictcommons'
export default {
name: 'bicyclerebatetobechecked',
@ -192,11 +282,12 @@ export default {
Pagination,
ButtonBar,
bicyclerebatecheck,
bicyclerebatecheckAdd
bicyclerebatecheckAdd,
},
data() {
return {
btndisabled: false,
dialogVisible: false,
btnList: [
{
type: 'primary',
@ -209,7 +300,7 @@ export default {
type: 'primary',
size: 'small',
icon: '',
btnKey: 'toAdd',
btnKey: 'toClick',
btnLabel: '调整'
},
{
@ -222,16 +313,51 @@ export default {
],
isSearchShow: false,
searchxianshitit: '显示查询条件',
viewState: 3,
viewState: 1,
// -----------
tableKey: 0,
list: [],
sids: [],
FormLoading: false,
brand_list: [],
rebateType_list: [],
state_list: [
{
dictKey: 0,
dictValue: '未上传'
},
{
dictKey: 1,
dictValue: '已上传'
},
{
dictKey: 2,
dictValue: '未调整'
},
{
dictKey: 3,
dictValue: '已调整'
}
],
whether_list: [
{
dictKey: 0,
dictValue: '否'
},
{
dictKey: 1,
dictValue: '是'
}
],
listLoading: false,
listQuery: {
params: {
createBySid: '',
brandSid: '',
createOrgSid: '',
vinNo: '',
rebateTypeKey: '',
rebateName: '',
state: '',
createEndTime: '',
createStartTime: ''
},
@ -239,17 +365,50 @@ export default {
size: 5,
total: 0
},
rules: {}
rules: {},
viewTitle: '返利调整',
submitdisabled: false,
checked: false,
formobj: {
sid: '',
stayDetermineMoney: '',
firstCost: '',
firstRebate: '',
surplusRebate: '',
secondaryUploadDate: '',
secondaryUploadMoney: '',
secondCost: '',
secondRebate: '',
adjustmentMoney: ''
}
}
},
created() {
//
this.getList()
this.init()
},
mounted() {
this.$refs['btnbar'].setButtonList(this.btnList)
},
methods: {
init() {
typeValues({ type: 'rebateType' }).then((res) => {
if (res.success) {
this.rebateType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
brandDown({ useOrg: this.listQuery.params.createOrgSid }).then((res) => {
if (res.success) {
this.brand_list = res.data
}
})
this.getList()
}
})
},
//
clicksearchShow() {
this.isSearchShow = !this.isSearchShow
@ -295,7 +454,6 @@ export default {
//
getList() {
this.listLoading = true
this.listQuery.params.createBySid = window.sessionStorage.getItem('userSid')
req.listPage(this.listQuery).then((response) => {
console.log('列表查询结果:', response)
this.listLoading = false
@ -316,7 +474,12 @@ export default {
handleReset() {
this.listQuery = {
params: {
createBySid: '',
brandSid: '',
createOrgSid: '',
vinNo: '',
rebateTypeKey: '',
rebateName: '',
state: '',
createEndTime: '',
createStartTime: ''
},
@ -326,21 +489,151 @@ export default {
}
this.getList()
},
changeIsAdjustment(row) {
// if (row.isAdjustment === '') {
// if (row.uploadMoney === '') {
// row.isAdjustment = ''
// this.$message({ showClose: true, type: 'error', message: '' })
// return
// }
// if (row.money === '') {
// row.isAdjustment = ''
// this.$message({ showClose: true, type: 'error', message: '' })
// return
// }
// if (row.stayDetermineMoney === '') {
// row.isAdjustment = ''
// this.$message({ showClose: true, type: 'error', message: '' })
// return
// }
// if (row.uploadMoney !== '' && row.money !== '' && row.stayDetermineMoney !== '') {
// row.adjustmentMoney = parseInt(row.uploadMoney) - parseInt(row.money) - parseInt(row.stayDetermineMoney) - parseInt(row.estimateRebate)
// }
// } else {
// row.adjustmentMoney = 0
// row.adjustmentRemarks = ''
// }
if (row.isAdjustment === '否') {
row.adjustmentMoney = 0
row.adjustmentRemarks = ''
}
},
adjustmentMoney() {
this.formobj.adjustmentMoney = parseInt(this.formobj.firstRebate - 0) + parseInt(this.formobj.secondRebate - 0) - parseInt(this.formobj.surplusRebate - 0)
return this.formobj.adjustmentMoney
},
handleSave() {
let aa = null
if (!this.checked) {
aa = {
sid: this.formobj.sid,
stayDetermineMoney: 0,
cost: this.formobj.firstCost,
secondaryUploadDate: '',
secondaryUploadMoney: 0,
adjustmentMoney: this.formobj.firstRebate
}
} else {
aa = {
sid: this.formobj.sid,
stayDetermineMoney: 0,
cost: parseInt(this.formobj.firstCost) + parseInt(this.formobj.secondCost),
secondaryUploadDate: this.formobj.secondaryUploadDate,
secondaryUploadMoney: this.formobj.secondaryUploadMoney,
adjustmentMoney: this.formobj.adjustmentMoney
}
}
req.adjustment(aa).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.getList()
this.handleReturn()
}
})
},
handleReturn() {
this.dialogVisible = false
this.formobj = {
sid: '',
stayDetermineMoney: '',
firstCost: '',
firstRebate: '',
surplusRebate: '',
secondaryUploadDate: '',
secondaryUploadMoney: '',
secondCost: '',
secondRebate: '',
adjustmentMoney: ''
}
this.checked = false
},
handleClick() {
this.viewState = 2
},
toAdd() {
this.viewState = 2
this.$refs['divAdd'].showAdd(this.listQuery.params.createOrgSid)
},
toEdit(row) {
this.viewState = 3
this.$refs['divAdd'].showEdit(row)
this.$refs['divCheckAdd'].showAdd(this.listQuery.params.createOrgSid)
},
toSave(row) {
if (row.stayDetermineMoney === '') {
this.$message({ showClose: true, type: 'error', message: '待确定金额不能为空' })
return
}
if (row.stayDetermineMoney !== '0') {
if (row.isAdjustment === '是') {
this.$message({ showClose: true, type: 'error', message: '因待确定金额大于0,是否调整选项需选择否' })
return
}
} else if (row.stayDetermineMoney === '0') {
if (row.adjustmentMoney.toString().indexOf('-') !== -1) {
if (row.isAdjustment === '是') {
this.$message({ showClose: true, type: 'error', message: '因待确定金额等于0且调整金额小于0,是否调整选项需选择否' })
return
}
} else if (row.adjustmentMoney !== '0') {
if (row.isAdjustment === '否') {
this.$message({ showClose: true, type: 'error', message: '因待确定金额等于0且调整金额大于0,是否调整选项需选择是' })
return
}
} else if (row.adjustmentMoney === '0') {
if (row.isAdjustment === '否') {
this.$message({ showClose: true, type: 'error', message: '因待确定金额等于0且调整金额等于0,是否调整选项需选择是' })
return
}
}
}
if (row.isAdjustment === '是') {
if (row.adjustmentMoney === '') {
this.$message({ showClose: true, type: 'error', message: '调整金额不能为空' })
return
}
if (row.adjustmentRemarks === '') {
this.$message({ showClose: true, type: 'error', message: '调整说明不能为空' })
return
}
}
req.updateDate(row).then((resp) => {
if (resp.success) {
this.$message({ showClose: true, type: 'success', message: '保存成功' })
this.getList()
}
})
},
toInfo(row) {
this.viewState = 4
this.$refs['divInfo'].showInfo(row)
},
toAdjust(row) {
this.dialogVisible = true
this.formobj.stayDetermineMoney = row.stayDetermineMoney
this.formobj.sid = row.sid
this.formobj.firstCost = 0
this.formobj.firstRebate = 0
this.formobj.secondCost = 0
this.formobj.secondRebate = 0
this.formobj.secondaryUploadMoney = 0
this.formobj.surplusRebate = parseInt(row.estimateRebate) - parseInt(row.uploadMoney)
},
doDel() {
if (this.sids.length === 0) {
this.$message({ showClose: true, type: 'error', message: '请选择至少一条记录进行删除操作' })

166
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/relation/bicyclerebatetobecheckedAdd.vue

@ -7,101 +7,100 @@
<div>{{ viewTitle }}</div>
<!--start 添加修改按钮-->
<div>
<el-button type="danger" size="small">删除</el-button>
<el-button type="danger" size="small" @click="handleDelete">删除</el-button>
<el-button type="info" size="small" @click="handleReturn()">关闭</el-button>
</div>
</div>
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="titwu"><span>单车返利待核对申请明细</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-table :key="tableKey" :data="formobj.baseVehinstallModpricedetails" :index="index" border style="width: 100%" @selection-change="handleSelectionChange">
<el-form ref="form_obj" class="formadd">
<el-table :key="tableKey" :data="list" :index="index" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column fixed type="selection" align="center" width="50px"/>
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{ scope.row.jacketName }}</span>
<span>{{ scope.row.brandName }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<el-table-column label="车型" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.vehModelName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<el-table-column label="车架号" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="厂家合同价" align="center">
<el-table-column label="厂家合同价" align="center" width="150">
<template slot-scope="scope">
<el-button type="primary" size="mini" @click="handleLook(scope.row)">查看</el-button>
<span>{{ scope.row.manufactorSettlementPrice }}</span>
</template>
</el-table-column>
<el-table-column label="其中运费" align="center">
<el-table-column label="其中运费" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.freight }}</span>
</template>
</el-table-column>
<el-table-column label="创建日期" align="center">
<el-table-column label="创建日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="返利类型" align="center">
<el-table-column label="返利类型" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.rebateTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="返利名称" align="center">
<el-table-column label="返利名称" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.rebateName }}</span>
</template>
</el-table-column>
<el-table-column label="预计返利" align="center">
<el-table-column label="预计返利" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.estimateRebate }}</span>
</template>
</el-table-column>
<el-table-column label="所属年月" align="center">
<el-table-column label="所属年月" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.palceGenDate }}</span>
</template>
</el-table-column>
<el-table-column label="上传日期" align="center">
<el-table-column label="上传日期" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadDate }}</span>
</template>
</el-table-column>
<el-table-column label="上传金额" align="center">
<el-table-column label="上传金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadMoney }}</span>
</template>
</el-table-column>
<el-table-column label="待确定金额" align="center">
<el-table-column label="待确定金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.stayDetermineMoney }}</span>
</template>
</el-table-column>
<el-table-column label="费用" align="center">
<el-table-column label="费用" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="是否调整" align="center">
<el-table-column label="是否调整" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.isAdjustment }}</span>
</template>
</el-table-column>
<el-table-column label="调整金额" align="center">
<el-table-column label="调整金额" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.adjustmentMoney }}</span>
</template>
</el-table-column>
<el-table-column label="调整说明" align="center">
<el-table-column label="调整说明" align="center" width="300">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.adjustmentRemarks }}</span>
</template>
</el-table-column>
</el-table>
@ -113,8 +112,8 @@
</template>
<script>
import req from '@/api/othermenu/shangzhuangtiaojia'
import { getPathSidByUserSid, fetchBySid } from '@/api/cheliang/dictcommons'
import req from '@/api/bikerebate/bicyclerebatecheck'
import list from "@/views/vehicleModel/vehicleModelConfig/list";
export default {
name: 'bicyclerebatetobecheckedAdd',
@ -124,40 +123,15 @@ export default {
index: 0,
tableKey: 0,
viewState: 1,
rebateType: '',
sids: [],
//
formobj: {
applyPeoName: '',
applyTitle: '',
createBySid: '',
createOrgName: '',
createOrgSid: '',
modpriceReason: '',
nodeState: '',
sid: '',
useOrgName: '',
useOrgSid: '',
baseVehinstallModpricedetails: []
},
list: [],
rules: {},
submitdisabled: false
}
},
methods: {
init() {
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((resp) => {
if (resp.success) {
this.formobj.createOrgSid = resp.data
this.formobj.useOrgSid = resp.data
fetchBySid(this.formobj.createOrgSid).then((res) => {
if (res.success) {
this.formobj.createOrgName = res.data.name
this.formobj.useOrgName = res.data.name
}
})
}
})
},
handleSelectionChange(row) {
const aa = []
row.forEach((element) => {
@ -170,33 +144,51 @@ export default {
this.$nextTick(() => {
this.$refs['form_obj'].clearValidate()
})
this.viewTitle = '待预提单车返利明细'
console.log('编辑回显', row.sid)
req.fetchBySid(row.sid).then((resp) => {
this.formobj = resp.data
this.viewTitle = '单车返利核对审核申请明细'
this.rebateType = row.rebateTypeValue
console.log('编辑回显', row)
req.vehRebateWithDetails(row.vehRebateSid).then((resp) => {
this.list = resp.data
}).catch((e) => {
this.formobj = row
this.list = []
})
},
handleDelete() {
if (this.sids.length === 0) {
this.$message({
showClose: true,
type: 'error',
message: '请选择至少一条记录进行删除操作'
})
return
}
for (var i = 0; i < this.list.length; i++) {
for (var j = 0; j < this.sids.length; j++) {
if (this.list[i].sid === this.sids[j]) {
this.list.splice(i, 1)
}
}
}
},
// ===
handleReturn(isreload) {
if (isreload === 'true') this.$emit('reloadlist')
handleReturn() {
//
this.formobj = {
applyPeoName: '',
applyTitle: '',
createBySid: '',
createOrgName: '',
createOrgSid: '',
modpriceReason: '',
nodeState: '',
sid: '',
useOrgName: '',
useOrgSid: '',
baseVehinstallModpricedetails: []
const data_list = []
for (var i = 0; i < this.list.length; i++) {
data_list.push({
sid: this.list[i].sid,
rebateTypeValue: this.list[i].rebateTypeValue,
rebateTypeKey: this.list[i].rebateTypeKey,
withRebate: this.list[i].estimateRebate,
brandName: this.list[i].brandName,
brandSid: this.list[i].brandSid,
uploadMoney: this.list[i].uploadMoney,
stayDetermineMoney: this.list[i].stayDetermineMoney,
adjustmentMoney: this.list[i].adjustmentMoney,
money: this.list[i].money
})
}
this.$refs['form_obj'].resetFields()
this.$emit('doback')
this.$emit('backAdd', data_list, this.rebateType)
}
}
}

35
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/relation/bicyclerebatetobecheckedInfo.vue

@ -13,94 +13,93 @@
<!--标题按钮部分结束-->
<!--Start 新增修改部分-->
<div class="listconadd">
<div class="titwu"><span>单车返利待核对申请明细</span></div>
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formadd">
<el-table :key="tableKey" :data="formobj.baseVehinstallModpricedetails" :index="index" border style="width: 100%" @selection-change="handleSelectionChange">
<el-table-column fixed type="selection" align="center" width="50px"/>
<el-table-column fixed width="80px" label="序号" type="index" :index="index + 1" align="center"/>
<el-table-column label="品牌" align="center">
<template slot-scope="scope">
<span>{{ scope.row.jacketName }}</span>
<span>{{ scope.row.brandName }}</span>
</template>
</el-table-column>
<el-table-column label="车型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.vinNo }}</span>
<span>{{ scope.row.vehModelName }}</span>
</template>
</el-table-column>
<el-table-column label="车架号" align="center">
<template slot-scope="scope">
<span>{{ scope.row.modelName }}</span>
<span>{{ scope.row.vinNo }}</span>
</template>
</el-table-column>
<el-table-column label="厂家合同价" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.manufactorSettlementPrice }}</span>
</template>
</el-table-column>
<el-table-column label="其中运费" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.freight }}</span>
</template>
</el-table-column>
<el-table-column label="创建日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.createTime }}</span>
</template>
</el-table-column>
<el-table-column label="返利类型" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.rebateTypeValue }}</span>
</template>
</el-table-column>
<el-table-column label="返利名称" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.rebateName }}</span>
</template>
</el-table-column>
<el-table-column label="预计返利" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.estimateRebate }}</span>
</template>
</el-table-column>
<el-table-column label="所属年月" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.palceGenDate }}</span>
</template>
</el-table-column>
<el-table-column label="上传日期" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadDate }}</span>
</template>
</el-table-column>
<el-table-column label="上传金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.uploadMoney }}</span>
</template>
</el-table-column>
<el-table-column label="待确定金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.stayDetermineMoney }}</span>
</template>
</el-table-column>
<el-table-column label="费用" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.money }}</span>
</template>
</el-table-column>
<el-table-column label="是否调整" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.isAdjustment }}</span>
</template>
</el-table-column>
<el-table-column label="调整金额" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.adjustmentMoney }}</span>
</template>
</el-table-column>
<el-table-column label="调整说明" align="center">
<template slot-scope="scope">
<span>{{ scope.row.costPrice }}</span>
<span>{{ scope.row.adjustmentRemarks }}</span>
</template>
</el-table-column>
</el-table>

5
anrui-scm/anrui-scm-ui/src/views/cheliang/chexing/chexingAdd.vue

@ -189,7 +189,8 @@ import {
getPathSidByUserSid,
namesDownBySid,
SaveList,
selectByOrgSid
selectByOrgSid,
saveGetAll
} from '@/api/cheliang/basevehiclemodel'
import { fetchBySid, typeValues } from '@/api/cheliang/dictcommons'
import Upload from '@/components/uploadFile/uploadImg.vue'
@ -361,7 +362,7 @@ export default {
this.viewTitle = '【新增】车型信息'
//
const userSid = window.sessionStorage.getItem('userSid')
getAll({ sid: sid, userSid: userSid }).then(resp => {
saveGetAll({ sid: sid, userSid: userSid }).then(resp => {
if (resp.success) {
const data = resp.data
this.temp = data

5
anrui-scm/anrui-scm-ui/src/views/cheliang/chexing/chexinglook.vue

@ -250,11 +250,6 @@
<span>{{ props.row.multimedia }}</span>
</template>
</el-table-column>
<el-table-column prop="remarks" width="150" label="货箱" align="center">
<template slot-scope="props">
<span>{{ props.row.packingCase }}</span>
</template>
</el-table-column>
</el-table>
</template>
</div>

29
anrui-scm/anrui-scm-ui/src/views/cheliang/chexing/relation/chexingpeizhijiageweihuAdd.vue

@ -120,18 +120,25 @@ export default {
handleCreate() {
this.$refs['weihuForm'].validate(valid => {
if (valid) {
const temp = {
sid: this.temp.sid,
manufactorSettlementPrice: this.temp.manufactorSettlementPrice,
guidedPrice: this.temp.guidedPrice,
insideCode: this.temp.insideCode
}
update(temp).then(resp => {
if (resp.success) {
const data = resp.data
this.temp = data
this.handleReturn('true')
const tip = '请确认是否保存信息'
this.$confirm(tip, '提示', {
confirmButtonText: '确定',
cancelButtonText: '取消',
type: 'warning'
}).then(() => {
const temp = {
sid: this.temp.sid,
manufactorSettlementPrice: this.temp.manufactorSettlementPrice,
guidedPrice: this.temp.guidedPrice,
insideCode: this.temp.insideCode
}
update(temp).then(resp => {
if (resp.success) {
const data = resp.data
this.temp = data
this.handleReturn('true')
}
})
})
}
})

6
anrui-scm/anrui-scm-ui/src/views/cheliang/hegezhengtaizhang/hegezhengInfo.vue

@ -27,6 +27,12 @@
<el-col :span="4" class="trightb">领取人</el-col>
<el-col :span="8"> {{ temp.receiver }}</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">接收日期</el-col>
<el-col :span="8" class="tleft"> {{ temp.acceptDate }}</el-col>
<el-col :span="4" class="trightb">接收人</el-col>
<el-col :span="8"> {{ temp.acceptName }}</el-col>
</el-row>
<el-row>
<el-col :span="4" class="trightb">移交状态</el-col>
<el-col :span="8" class="tleft"> {{ temp.transferStateValue }}</el-col>

10
anrui-scm/anrui-scm-ui/src/views/cheliang/hegezhengtaizhang/hegezhengtaizhang.vue

@ -109,6 +109,16 @@
<span>{{ scope.row.receiver }}</span>
</template>
</el-table-column>
<el-table-column label="接收日期" width="140px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.acceptDate }}</span>
</template>
</el-table-column>
<el-table-column label="接收人" width="110px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.acceptName }}</span>
</template>
</el-table-column>
<el-table-column label="备注" width="370px" header-align="center" align="left">
<template slot-scope="scope">
<span>{{ scope.row.remarks }}</span>

26
anrui-scm/anrui-scm-ui/src/views/cheliang/hegezhengtaizhang/hegezhengtaizhangAdd.vue

@ -67,6 +67,22 @@
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item prop="receiveDate">
<span slot="label">接收日期</span>
<el-date-picker v-model="temp.acceptDate" type="date" class="addinputw" format="yyyy-MM-dd"
value-format="yyyy-MM-dd" placeholder="选择日期时间"/>
<!-- <el-date-picker v-model="temp.receiveDate" type="date" placeholder="选择日期时间" /> -->
</el-form-item>
</el-col>
<el-col :span="12">
<el-form-item prop="receiver">
<span slot="label">接收人</span>
<el-input v-model="temp.acceptName" maxlength="125" placeholder="" class="addinputw" clearable/>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
<el-form-item prop="remarks">
@ -527,11 +543,7 @@ export default {
//
querySearchAsync(queryString, cb) {
console.log('查询条件:', queryString)
if (
queryString != null &&
queryString != undefined &&
queryString !== ''
) {
if (queryString !== null && queryString !== undefined && queryString !== '') {
namesDown({
name: queryString
}).then((response) => {
@ -570,8 +582,8 @@ export default {
console.log('查询条件:', queryString)
if (
queryString != null &&
queryString != undefined &&
queryString !== null &&
queryString !== undefined &&
queryString !== ''
) {
getNamesDownes({

31
anrui-scm/anrui-scm-ui/src/views/kucunguanli/panku/pankuAdd.vue

@ -27,7 +27,7 @@
<el-col :span="12" class="colOneStyle">
<div class="span-sty spanOneWidth"><span>盘库人员:</span></div>
<el-form-item>
<el-select v-model="listQuery.params.inventoryName" placeholder="请选择" filterable @change="changeInventoryName" clearable class="addinputwOne">
<el-select v-model="listQuery.params.inventoryName" placeholder="请选择" filterable @change="changeInventoryName" class="addinputwOne">
<el-option v-for="item in staff_list" :key="item.sid" :label="item.namePath" :value="item.sid"></el-option>
</el-select>
</el-form-item>
@ -62,13 +62,6 @@
<span>{{ scope.row.mainSid }}</span>
</template>
</el-table-column>
<el-table-column label="合格证" width="150" align="center">
<template slot-scope="scope">
<el-select v-model="scope.row.certificate" placeholder="请选择" style="width: 80%" @change="changeCertificateType(scope.row,this)" clearable>
<el-option v-for="item in certificateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</template>
</el-table-column>
<el-table-column label="存放地点" align="center">
<template slot-scope="scope">
<span>{{ scope.row.location }}</span>
@ -119,7 +112,6 @@ export default {
list: [],
warehouse_list: [],
staff_list: [],
certificateType_list: [],
stateType_list: [
{
dictKey: 1,
@ -173,11 +165,6 @@ export default {
this.warehouse_list = res.data
}
})
typeValues({ type: 'certificate' }).then((res) => {
if (res.success) {
this.certificateType_list = res.data
}
})
this.getList()
},
//
@ -221,18 +208,6 @@ export default {
})
row.InventoryStateKey = bb.key
},
changeCertificateType(row) {
let bb = null
this.certificateType_list.forEach((e) => {
if (e.dictValue === row.certificate) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
row.certificateKey = bb.key
},
changeInventoryName(value) {
let bb = null
this.staff_list.forEach((e) => {
@ -248,6 +223,10 @@ export default {
this.formobj.inventorySid = bb.sid
},
handleAffirm(row) {
if (this.formobj.inventoryName === '' || this.formobj.inventoryName === null || this.formobj.inventoryName === undefined) {
this.$message({ showClose: true, type: 'error', message: '请选择盘库人员' })
return
}
this.formobj.sid = row.sid
this.formobj.mainSid = row.mainSid
this.formobj.location = row.location

37
anrui-scm/anrui-scm-ui/src/views/kucunguanli/panku/pankuguanli.vue

@ -52,11 +52,6 @@
<span>{{ scope.row.mainSid }}</span>
</template>
</el-table-column>
<el-table-column label="合格证" width="100px" align="center">
<template slot-scope="scope">
<span>{{ scope.row.certificate }}</span>
</template>
</el-table-column>
<el-table-column label="最新盘库日期" align="center" width="120px">
<template slot-scope="scope">
<span>{{ scope.row.InventoryDate }}</span>
@ -94,18 +89,10 @@
<el-dialog center :visible.sync="dialogVisible" width="70%">
<el-form ref="form_obj" :model="formobj" :rules="rules" class="formaddcopy02">
<el-row style="border-top: 1px solid #E0E3EB">
<el-col :span="12">
<el-col :span="24">
<div class="span-sty spanOneWidth"><span>车架号</span></div>
<el-form-item><span class="addinputInfo addinputwOne">{{ formobj.mainSid }}</span></el-form-item>
</el-col>
<el-col :span="12">
<div class="span-sty spanOneWidth"><span>合格证</span></div>
<el-form-item>
<el-select v-model="formobj.certificate" class="addinputw addinputwOne" placeholder="请选择" style="width: 30%" @change="changeCertificateType(scope.row,this)" clearable>
<el-option v-for="item in certificateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"></el-option>
</el-select>
</el-form-item>
</el-col>
</el-row>
<el-row>
<el-col :span="12">
@ -199,7 +186,6 @@ export default {
list: [],
formobj: {},
warehouse_list: [],
certificateType_list: [],
stateType_list: [
{
dictKey: 1,
@ -222,7 +208,7 @@ export default {
createOrgSid: ''
},
current: 1,
size: 10,
size: 5,
total: 0
},
rules: {}
@ -237,11 +223,6 @@ export default {
},
methods: {
init() {
typeValues({ type: 'certificate' }).then((res) => {
if (res.success) {
this.certificateType_list = res.data
}
})
getPathSidByUserSid({ userSid: window.sessionStorage.getItem('userSid') }).then((res) => {
if (res.success) {
this.listQuery.params.createOrgSid = res.data
@ -300,18 +281,6 @@ export default {
}
})
},
changeCertificateType(value) {
let bb = null
this.certificateType_list.forEach((e) => {
if (e.dictValue === value) {
bb = {
key: e.dictKey,
value: e.dictValue
}
}
})
this.formobj.certificateKey = bb.key
},
changeStateType(value) {
let bb = null
this.stateType_list.forEach((e) => {
@ -340,7 +309,7 @@ export default {
createOrgSid: ''
},
current: 1,
size: 10,
size: 5,
total: 0
}
this.init()

8
anrui-scm/anrui-scm-ui/src/views/supplychain/cheliangpaichan/cheliangpaichanAdd.vue

@ -42,7 +42,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="16" class="colStyle">
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>采购原因:</span></div>
<el-form-item>
<el-select v-model="formobj.schedulingType" placeholder="请选择" @change="changeSchedulingType" clearable class="addinputInfo addinputOne">
@ -50,6 +50,10 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>订金付款备注:</span></div>
<el-form-item><el-input class="addinputw addinputOne" :disabled="formobj.currentAmount === '0' || formobj.currentAmount === ''" v-model="formobj.payRemarks" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
@ -173,6 +177,7 @@ export default {
schedulingType: '', //
schedulingTypeKey: '',
remarks: '', //
payRemarks: '',
currentAmount: '', //
salesSid: '', // sid
instanceId: '', // ID
@ -444,6 +449,7 @@ export default {
this.formobj.schedulingType = '' //
this.formobj.schedulingTypeKey = ''
this.formobj.remarks = '' //
this.formobj.payRemarks = ''
this.formobj.currentAmount = ''
this.formobj.applicationCode = ''
this.formobj.applicationDate = ''

7
anrui-scm/anrui-scm-ui/src/views/supplychain/cheliangpaichan/cheliangpaichanInfo.vue

@ -35,11 +35,16 @@
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applyType }}</span>
</el-form-item>
</el-col>
<el-col :span="16" class="colStyle">
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>采购原因:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.schedulingType }}</span>
</el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>订金付款备注:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.payRemarks }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">

4
anrui-scm/anrui-scm-ui/src/views/supplychain/hegezhengpandianjilu/hegezhengpandianjilu.vue

@ -182,7 +182,7 @@ export default {
useOrg: '', // 使
listQuery: {
current: 1,
size: 10,
size: 5,
total: 0,
params: {
certNo: '', //
@ -296,7 +296,7 @@ export default {
resetQuery() {
this.listQuery = {
current: 1,
size: 10,
size: 5,
total: 0,
params: {
certNo: '', //

4
anrui-scm/anrui-scm-ui/src/views/supplychain/hegezhengpandianjilu/hegezhengpandianjiluAdd.vue

@ -21,7 +21,7 @@
</el-col>
<el-col :span="4" class="colStyle">
<el-form-item>
<el-select v-model="listQuery.params.inventoryName" placeholder="请选择" filterable @change="changeInventoryName" clearable class="addinputwOne">
<el-select v-model="listQuery.params.inventoryName" placeholder="请选择" filterable @change="changeInventoryName" class="addinputwOne">
<el-option v-for="item in staff_list" :key="item.sid" :label="item.namePath" :value="item.sid"></el-option>
</el-select>
</el-form-item>
@ -208,7 +208,7 @@ export default {
this.temp.inventorySid = bb.sid
},
handleAffirm(row) {
if (this.temp.inventoryName === '') {
if (this.temp.inventoryName === '' || this.temp.inventoryName === null || this.temp.inventoryName === undefined) {
this.$message({ showClose: true, type: 'error', message: '请选择盘点人员' })
return
}

120
anrui-scm/anrui-scm-ui/src/views/supplychain/yancheguanli/vehiclechecklist.vue

@ -7,72 +7,74 @@
<el-button type="info" size="small" @click="handleReturn">关闭</el-button>
</div>
</div>
<el-form class="formadd">
<div>
<el-table :data="scmResultImageDtos" border style="width: 100%; margin-top: 20px" max-height="600">
<el-table-column label="序号" width="70" align="center">
<template slot-scope="scope">
<span>{{ scope.row.sortNo }}</span>
</template>
</el-table-column>
<el-table-column label="项目" align="center" width="205">
<template slot-scope="scope">
<span>{{ scope.row.item }}</span>
</template>
</el-table-column>
<el-table-column label="检查内容" header-align="center" align="left" width="550">
<template slot-scope="scope"> <!-- 暂时不删除 :class="{btn: scope.row.itemDetailVoList.length - 1 > 0}" -->
<div class="con_style" v-for="(item, index) in scope.row.itemDetailVoList">
<span>{{index + 1}}{{ item.itemContent }}</span>
</div>
</template>
</el-table-column>
<el-table-column label="检查结果" align="center" width="150">
<template slot-scope="scope">
<el-radio v-model="scope.row.result" :label="1"></el-radio>
<el-radio v-model="scope.row.result" :label="0"></el-radio>
</template>
</el-table-column>
<el-table-column label="备注" align="center" width="300">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" resize="none" type="textarea" :autosize="{ minRows: 2, maxRows: 8 }"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="left" width="570">
<template slot-scope="scope">
<div v-if="scope.row.itemImgVoList.length > 0">
<div class="operate" v-for="(item,index) in scope.row.itemImgVoList">
<div>
<span>{{ item.imgTitle }}</span>
</div>
<div>
<el-button type="primary" size="small"
@click="handleLookImg(scope.row.itemImgVoList[index].imgUrlList)">查看
</el-button>
<div class="upload_img"> <!-- @change="getUrl($event, index,scope.$index)" -->
<div class="listconadd">
<el-form class="formadd">
<div>
<el-table :data="scmResultImageDtos" border style="width: 100%; margin-top: 20px">
<el-table-column label="序号" width="70" align="center">
<template slot-scope="scope">
<span>{{ scope.row.sortNo }}</span>
</template>
</el-table-column>
<el-table-column label="项目" align="center" width="205">
<template slot-scope="scope">
<span>{{ scope.row.item }}</span>
</template>
</el-table-column>
<el-table-column label="检查内容" header-align="center" align="left" width="300">
<template slot-scope="scope"> <!-- 暂时不删除 :class="{btn: scope.row.itemDetailVoList.length - 1 > 0}" -->
<div class="con_style" v-for="(item, index) in scope.row.itemDetailVoList">
<span>{{index + 1}}{{ item.itemContent }}</span>
</div>
</template>
</el-table-column>
<el-table-column label="检查结果" align="center" width="130">
<template slot-scope="scope">
<el-radio v-model="scope.row.result" :label="1"></el-radio>
<el-radio v-model="scope.row.result" :label="0"></el-radio>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder="" resize="none" type="textarea" :autosize="{ minRows: 2, maxRows: 8 }"></el-input>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="left" width="540">
<template slot-scope="scope">
<div v-if="scope.row.itemImgVoList.length > 0">
<div class="operate" v-for="(item,index) in scope.row.itemImgVoList">
<div>
<span>{{ item.imgTitle }}</span>
</div>
<div>
<el-button type="primary" size="small"
@click="handleLookImg(scope.row.itemImgVoList[index].imgUrlList)">查看
</el-button>
<div class="upload_img"> <!-- @change="getUrl($event, index,scope.$index)" -->
<upload_jianchabiao ref="uploadMoreImg"
v-model="scope.row.itemImgVoList[index].imgUrlList"
:limit="1" bucket="map"
:upload-data="{type:'0001'}"/>
</div>
<!-- <el-button type="primary" size="small" @click="handleUpload">上传</el-button>-->
<el-button type="primary" size="small"
@click="handleExample(scope.row.itemImgVoList[index].imgPathList)">图片示例
</el-button>
</div>
<div class="upload_img" v-show="scope.row.result == 0"> <!-- @change="getUrl($event, index,scope.$index)" -->
<upload_jianchabiao ref="uploadMoreImg"
v-model="scope.row.itemImgVoList[index].imgUrlList"
:limit="1" bucket="map"
:upload-data="{type:'0001'}"/>
</div>
<!-- <el-button type="primary" size="small" @click="handleUpload">上传</el-button>-->
<el-button type="primary" size="small"
@click="handleExample(scope.row.itemImgVoList[index].imgPathList)">图片示例
</el-button>
</div>
<div class="upload_img" v-show="scope.row.result == 0"> <!-- @change="getUrl($event, index,scope.$index)" -->
<upload_jianchabiao ref="uploadMoreImg"
v-model="scope.row.itemImgVoList[index].imgUrlList"
:limit="1" bucket="map"
:upload-data="{type:'0001'}"/>
</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
<!-- 查看上传图片弹窗 -->
<el-dialog title="检查项图片" :visible.sync="dialogVisible">
<div v-for="(item,index) in dialogUrl" style="display:inline-block;">

120
anrui-scm/anrui-scm-ui/src/views/supplychain/yancheguanli/vehiclechecklistInfo.vue

@ -7,69 +7,67 @@
<el-button type="info" size="small" @click="handleReturn">关闭</el-button>
</div>
</div>
<el-form class="formadd">
<div>
<el-table :data="scmResultImageDtos" border style="width: 100%; margin-top: 20px" max-height="600">
<el-table-column label="序号" width="70" align="center">
<template slot-scope="scope">
<span>{{ scope.row.sortNo }}</span>
</template>
</el-table-column>
<el-table-column label="项目" align="center" width="205">
<template slot-scope="scope">
<span>{{ scope.row.item }}</span>
</template>
</el-table-column>
<el-table-column label="检查内容" header-align="center" align="left" width="550">
<template slot-scope="scope"> <!-- 暂时不删除 :class="{btn: scope.row.itemDetailVoList.length - 1 > 0}" -->
<div class="con_style" v-for="(item, index) in scope.row.itemDetailVoList">
<span>{{ index + 1 }}{{ item.itemContent }}</span>
</div>
</template>
</el-table-column>
<el-table-column label="检查结果" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.result }}</span>
<!-- <el-radio v-model="scope.row.result" :label="1"></el-radio>-->
<!-- <el-radio v-model="scope.row.result" :label="0"></el-radio>-->
</template>
</el-table-column>
<el-table-column label="备注" align="center" width="300">
<template slot-scope="scope">
<span>{{scope.row.remarks}}</span>
<!-- <el-input v-model="scope.row.remarks" clearable placeholder="" resize="none" type="textarea"-->
<!-- :autosize="{ minRows: 2, maxRows: 8 }"></el-input>-->
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="left" width="360">
<template slot-scope="scope">
<div v-if="scope.row.itemImgVoList.length > 0">
<div class="operate" v-for="(item,index) in scope.row.itemImgVoList">
<div>
<span>{{ item.imgTitle }}</span>
</div>
<div>
<el-button type="primary" size="small"
@click="handleLookImg(scope.row.itemImgVoList[index].imgUrlList)">查看
</el-button>
<!-- <div class="upload_img"> &lt;!&ndash; @change="getUrl($event, index,scope.$index)" &ndash;&gt;-->
<!-- <upload_jianchabiao ref="uploadMoreImg"-->
<!-- v-model="scope.row.itemImgVoList[index].imgUrlList"-->
<!-- :limit="1" bucket="map"-->
<!-- :upload-data="{type:'0001'}"/>-->
<!-- </div>-->
<!-- <el-button type="primary" size="small" @click="handleUpload">上传</el-button>-->
<el-button type="primary" size="small"
@click="handleExample(scope.row.itemImgVoList[index].imgPathList)">图片示例
</el-button>
<div class="listconadd">
<el-form class="formadd">
<div>
<el-table :data="scmResultImageDtos" border style="width: 100%; margin-top: 20px">
<el-table-column label="序号" width="70" align="center">
<template slot-scope="scope">
<span>{{ scope.row.sortNo }}</span>
</template>
</el-table-column>
<el-table-column label="项目" align="center" width="205">
<template slot-scope="scope">
<span>{{ scope.row.item }}</span>
</template>
</el-table-column>
<el-table-column label="检查内容" header-align="center" align="left" width="300">
<template slot-scope="scope"> <!-- 暂时不删除 :class="{btn: scope.row.itemDetailVoList.length - 1 > 0}" -->
<div class="con_style" v-for="(item, index) in scope.row.itemDetailVoList">
<span>{{ index + 1 }}{{ item.itemContent }}</span>
</div>
</template>
</el-table-column>
<el-table-column label="检查结果" align="center" width="130">
<template slot-scope="scope">
<span>{{ scope.row.result }}</span>
</template>
</el-table-column>
<el-table-column label="备注" align="center">
<template slot-scope="scope">
<span>{{scope.row.remarks}}</span>
</template>
</el-table-column>
<el-table-column label="操作" header-align="center" align="left" width="450">
<template slot-scope="scope">
<div v-if="scope.row.itemImgVoList.length > 0">
<div class="operate" v-for="(item,index) in scope.row.itemImgVoList">
<div>
<span>{{ item.imgTitle }}</span>
</div>
<div>
<el-button type="primary" size="small"
@click="handleLookImg(scope.row.itemImgVoList[index].imgUrlList)">查看
</el-button>
<!-- <div class="upload_img"> &lt;!&ndash; @change="getUrl($event, index,scope.$index)" &ndash;&gt;-->
<!-- <upload_jianchabiao ref="uploadMoreImg"-->
<!-- v-model="scope.row.itemImgVoList[index].imgUrlList"-->
<!-- :limit="1" bucket="map"-->
<!-- :upload-data="{type:'0001'}"/>-->
<!-- </div>-->
<!-- <el-button type="primary" size="small" @click="handleUpload">上传</el-button>-->
<el-button type="primary" size="small"
@click="handleExample(scope.row.itemImgVoList[index].imgPathList)">图片示例
</el-button>
</div>
</div>
</div>
</div>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</template>
</el-table-column>
</el-table>
</div>
</el-form>
</div>
<!-- 查看上传图片弹窗 -->
<el-dialog title="检查项图片" :visible.sync="dialogVisible">
<div v-for="(item,index) in dialogUrl" style="display:inline-block;">

7
anrui-scm/anrui-scm-ui/src/views/weishoumaiduan/weishoumaiduanguanli/vehicle.vue

@ -12,7 +12,7 @@
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="120px" class="tab-header">
<el-form-item label="品牌:" class="searchlist">
<el-select v-model="listQuery.params.brandSid" placeholder="请选择" filterable clearable>
<el-option v-for="item in carBrand_list" :key="item.sid" :label="item.brandName" :value="item.sid"/>
@ -61,6 +61,9 @@
<el-form-item label="车型:" class="searchlist">
<el-input v-model="listQuery.params.vehicleAlias" placeholder="" clearable style="width: 150px"/>
</el-form-item>
<el-form-item label="采购订单编号:" class="searchlist">
<el-input v-model="listQuery.params.orderingNo" placeholder="" clearable style="width: 150px"/>
</el-form-item>
<el-form-item label="快捷检索:" class="searchlist">
<el-input v-model="listQuery.params.modelName" placeholder="" clearable style="width: 150px"/>
</el-form-item>
@ -166,6 +169,7 @@ export default {
vehicleType: '',
vehicleVersion: '',
userSid: '',
orderingNo: '',
vinNoList: []
},
total: 0
@ -286,6 +290,7 @@ export default {
this.listQuery.params.vehicleType = ''
this.listQuery.params.vehicleVersion = ''
this.listQuery.params.userSid = ''
this.listQuery.params.orderingNo = ''
this.getList()
},
handleSelectionChange(row) {

7
anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanDaiBanInfo.vue

@ -37,11 +37,16 @@
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applyType }}</span>
</el-form-item>
</el-col>
<el-col :span="16" class="colStyle">
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>采购原因:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.schedulingType }}</span>
</el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>订金付款备注:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.payRemarks }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">

11
anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanEdit.vue

@ -41,7 +41,7 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="16" class="colStyle">
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>采购原因:</span></div>
<el-form-item>
<el-select v-model="formobj.schedulingType" placeholder="请选择" @change="changeSchedulingType" clearable class="addinputInfo addinputOne">
@ -49,6 +49,10 @@
</el-select>
</el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>订金付款备注:</span></div>
<el-form-item><el-input class="addinputw addinputOne" :disabled="formobj.currentAmount === '0' || formobj.currentAmount === ''" v-model="formobj.payRemarks" clearable placeholder=""/></el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">
@ -171,6 +175,7 @@ export default {
schedulingType: '', //
schedulingTypeKey: '',
remarks: '', //
payRemarks: '',
currentAmount: '', //
salesSid: '', // sid
instanceId: '', // ID
@ -237,7 +242,7 @@ export default {
},
//
dataDelete(index, row) {
this.formobj.busVehicleApplyDetailDtoList.splice(index, 1)
this.formobj.busVehicleApplyDetailList.splice(index, 1)
},
showInfo(sid, row) {
this.$nextTick(() => {
@ -259,7 +264,7 @@ export default {
this.viewState = 1
if (value.length > 0) {
value.forEach((e) => {
this.formobj.busVehicleApplyDetailDtoList.push({
this.formobj.busVehicleApplyDetailList.push({
quantity: '',
applySid: '',
configSid: e.configurationItemsSid,

7
anrui-scm/anrui-scm-ui/src/views/workFlow/paichanguanliFlow/paichanguanli/cheliangpaichanYiBanInfo.vue

@ -35,11 +35,16 @@
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.applyType }}</span>
</el-form-item>
</el-col>
<el-col :span="16" class="colStyle">
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>采购原因:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.schedulingType }}</span>
</el-form-item>
</el-col>
<el-col :span="8" class="colStyle">
<div class="span-sty spanOneWidth"><span>订金付款备注:</span></div>
<el-form-item><span class="addinputInfo addinputOne">{{ formobj.payRemarks }}</span>
</el-form-item>
</el-col>
</el-row>
<el-row class="rowStyle">
<el-col :span="24" class="colStyle">

7
anrui-scm/anrui-scm-ui/src/views/workFlow/weishoumaiduanFlow/weishoumaiduanguanli/vehicle.vue

@ -12,7 +12,7 @@
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="120px" class="tab-header">
<el-form-item label="品牌:" class="searchlist">
<el-select v-model="listQuery.params.brandSid" placeholder="请选择" filterable clearable>
<el-option v-for="item in carBrand_list" :key="item.sid" :label="item.brandName" :value="item.sid"/>
@ -61,6 +61,9 @@
<el-form-item label="车型:" class="searchlist">
<el-input v-model="listQuery.params.vehicleAlias" placeholder="" clearable style="width: 150px"/>
</el-form-item>
<el-form-item label="采购订单编号:" class="searchlist">
<el-input v-model="listQuery.params.orderingNo" placeholder="" clearable style="width: 150px"/>
</el-form-item>
<el-form-item label="快捷检索:" class="searchlist">
<el-input v-model="listQuery.params.modelName" placeholder="" clearable style="width: 150px"/>
</el-form-item>
@ -166,6 +169,7 @@ export default {
vehicleType: '',
vehicleVersion: '',
userSid: '',
orderingNo: '',
vinNoList: []
},
total: 0
@ -286,6 +290,7 @@ export default {
this.listQuery.params.vehicleType = ''
this.listQuery.params.vehicleVersion = ''
this.listQuery.params.userSid = ''
this.listQuery.params.orderingNo = ''
this.getList()
},
handleSelectionChange(row) {

Loading…
Cancel
Save