Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 3 years ago
parent
commit
0cf475014d
  1. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorFeign.java
  2. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleNowModelQuery.java
  3. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorService.java
  4. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  5. 8
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/flow/FlowableService.java
  6. 27
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeign.java
  7. 27
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/FinKingDeeFeignFallBack.java
  8. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/KingDeeBillId.java
  9. 36
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bddepartment/BdDepartment.java
  10. 50
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdempinfo/BDEmpinfo.java
  11. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/orgorganizations/OrgOrganizations.java
  12. 46
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  13. 36
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeService.java
  14. 98
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeConfig.java
  15. 21
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeSaveSKD.java
  16. 44
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/BdDepartmentCastToKingDeeBillFields.java
  17. 144
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/BdDepartmentService.java
  18. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/data.json
  19. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/data_data.json
  20. 24
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/data_model.json
  21. 71
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/remarks.txt
  22. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/webapi测试的数据.txt
  23. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/部门的参数必填备注.xlsx
  24. 44
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/BDEmpinfoCastToKingDeeBillFields.java
  25. 143
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/BDEmpinfoService.java
  26. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/data.json
  27. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/data_data.json
  28. 13
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/data_model.json
  29. 87
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/remarks.txt
  30. 1
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/webapi测试的数据.txt
  31. BIN
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/部门的参数必填备注.xlsx
  32. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdmaterial/BdMaterialService.java
  33. 5
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdsupplier/BdSupplierService.java
  34. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/cnbankcnt/CNBankcntService.java
  35. 139
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/OrgOrganizationsService.java
  36. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/orgorganizations/data_model.json
  37. 4
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/paezcllx/PaezCllxService.java
  38. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/SalOutStockService.java
  39. 9
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/STKInStockService.java
  40. 10
      anrui-fin/anrui-fin-biz/src/main/resources/application-dev.yml
  41. 10
      anrui-fin/anrui-fin-biz/src/main/resources/application-pro.yml
  42. 8
      anrui-fin/anrui-fin-biz/src/main/resources/application-test.yml
  43. 4
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowdefinition/FlowDefinitionFeign.java
  44. 4
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowdefinition/FlowDefinitionFeignFallBack.java
  45. 3
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/LatestTaskVo.java
  46. 53
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  47. 4
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionRest.java
  48. 6
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml
  49. 46
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  50. 4
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFallback.java
  51. 4
      anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFeign.java
  52. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableRest.java
  53. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/flow/FlowableService.java

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basedistributor/BaseDistributorFeign.java

@ -79,7 +79,7 @@ public interface BaseDistributorFeign {
@GetMapping("/getBaseDistributorList")
ResultBean<List<PcBaseDistributorVo>> getBaseDistributorList(@SpringQueryMap PcBaseDistributorQuery query);
@ApiOperation("PC端-销售订单-经销商列表")
@ApiOperation("PC端-中介人员-经销商列表")
@PostMapping("/getDistributors")
ResultBean<List<BaseDistributorsListVo>> getDistributors(@RequestBody BaseDistributorsListQuery pagerQuery);
//---------------------------------------移动端-------------------------------------------------//

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicle/AppBaseVehicleNowModelQuery.java

@ -43,6 +43,9 @@ public class AppBaseVehicleNowModelQuery implements Query {
@ApiModelProperty("品牌")
private String brand;
@ApiModelProperty(value = "系列")
private String productLine;
@ApiModelProperty("分公司")
private String useOrg;

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basedistributor/BaseDistributorService.java

@ -537,11 +537,9 @@ public class BaseDistributorService extends MybatisBaseService<BaseDistributorMa
public List<BaseDistributorsListVo> getDistributors(BaseDistributorsListQuery pagerQuery) {
QueryWrapper<BaseMiddleman> qw = new QueryWrapper<>();
if (pagerQuery != null) {
if (StringUtils.isNotBlank(pagerQuery.getOrgName())) {
qw.like("disName", pagerQuery.getOrgName());
}
if (StringUtils.isNotBlank(pagerQuery.getOrgPath())) {
qw.eq("useOrg", pagerQuery.getOrgPath());
String path = sysStaffOrgFeign.getOrgSidByPath(pagerQuery.getOrgPath()).getData();
qw.eq("useOrg", path);
} else {
if (StringUtils.isNotBlank(pagerQuery.getUserSid())) {
ResultBean<String> resultBean = sysStaffOrgFeign.getPathSidByUserSid(pagerQuery.getUserSid());

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

@ -1346,6 +1346,9 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
if (StringUtils.isNotBlank(pagerQuery.getBrand())) { // 品牌
qw.eq("bvm.brandName", pagerQuery.getBrand());
}
if (StringUtils.isNotBlank(pagerQuery.getProductLine())) {
qw.eq("bvm.productLineValue", pagerQuery.getProductLine());
}
// qw.and(wrapper -> wrapper.eq("bv.vehicleState", "0004").or().eq("bv.vehicleState", "0005"));
// qw.and(wrapper -> wrapper.isNull("bv.lockedStateValue").or().eq("bv.lockedStateValue", ""));
return qw;

8
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/flow/FlowableService.java

@ -81,11 +81,11 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables) {
variables.put("procDefId",procDefId);
/*variables.put("procDefId",procDefId);
variables.put("userSid",userSid);
BusinessVariables bv= BusinessVariables.builder().build();
bv.setFormVariables(variables);
ResultBean<FlowTask> rb = flowDefinitionFeign.businessStart(bv);
//ResultBean<FlowTask> rb = flowDefinitionFeign.businessStart(bv);
if (!rb.getSuccess()) {
return rb;
}
@ -97,8 +97,8 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
map.put("sid", variables.get("businessSid").toString());
map.put("nodeState", nodeState);
map.put("procInsId", rb.getData().getProcInsId());
map.put("taskDefKey", task_def_key_);
return new ResultBean().success().setData(map);
map.put("taskDefKey", task_def_key_);*/
return null;// new ResultBean().success().setData(map);
}
public ResultBean myprocess(String userSid,PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {

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

@ -5,6 +5,8 @@ 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.bank.BDBank;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.bddepartment.BdDepartment;
import com.yxt.anrui.fin.api.kingdee.bdempinfo.BDEmpinfo;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.bdstock.BDStock;
import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
@ -84,6 +86,10 @@ public interface FinKingDeeFeign {
@PostMapping("/draftOrgOrganizations")
@ResponseBody
public ResultBean<String> draftOrgOrganizations(@RequestBody @Valid OrgOrganizations orgOrganizations) ;
@ApiOperation("批量修改组织机构的接口")
@PostMapping("/updateOrgOrganizations")
@ResponseBody
public ResultBean<String> updateOrgOrganizations(@RequestBody @Valid List<OrgOrganizations> orgOrganizations) ;
@ApiOperation("暂存供应商的接口")
@PostMapping("/draftBdSupplier")
@ResponseBody
@ -132,4 +138,25 @@ public interface FinKingDeeFeign {
@PostMapping("/draftCNRecpaypurpose")
@ResponseBody
public ResultBean<String> draftCNRecpaypurpose(@RequestBody @Valid CNRecpaypurpose cNRecpaypurpose);
@ApiOperation("保存部门的接口")
@PostMapping("/saveBdDepartment")
@ResponseBody
public ResultBean<String> saveBdDepartment(@RequestBody @Valid BdDepartment bdDepartment);
@ApiOperation("修改部门的接口")
@PostMapping("/updateBdDepartment")
@ResponseBody
public ResultBean<String> updateBdDepartment(@RequestBody @Valid BdDepartment bdDepartment);
@ApiOperation("保存员工的接口")
@PostMapping("/saveBDEmpinfo")
@ResponseBody
public ResultBean<String> saveBDEmpinfo(@RequestBody @Valid BDEmpinfo bdEmpinfo);
@ApiOperation("修改员工的接口")
@PostMapping("/updateBDEmpinfo")
@ResponseBody
public ResultBean<String> updateBDEmpinfo(@RequestBody @Valid BDEmpinfo bdEmpinfo);
}

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

@ -5,6 +5,8 @@ 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.bank.BDBank;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.bddepartment.BdDepartment;
import com.yxt.anrui.fin.api.kingdee.bdempinfo.BDEmpinfo;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.bdstock.BDStock;
import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
@ -71,6 +73,11 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> updateOrgOrganizations(List<OrgOrganizations> orgOrganizations) {
return null;
}
@Override
public ResultBean<String> draftBdSupplier(BdSupplier bdSupplier) {
return null;
@ -131,5 +138,25 @@ implements FinKingDeeFeign{
return null;
}
@Override
public ResultBean<String> saveBdDepartment(BdDepartment bdDepartment) {
return null;
}
@Override
public ResultBean<String> updateBdDepartment(BdDepartment bdDepartment) {
return null;
}
@Override
public ResultBean<String> saveBDEmpinfo(BDEmpinfo bdEmpinfo) {
return null;
}
@Override
public ResultBean<String> updateBDEmpinfo(BDEmpinfo bdEmpinfo) {
return null;
}
}

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

@ -10,7 +10,9 @@ public enum KingDeeBillId {
SAL_OUTSTOCK("SAL_OUTSTOCK","销售出库单"),
STK_TRANSFERDIRECT("STK_TransferDirect","直接调拨单"),
ORG_ORGANIZATIONS("ORG_Organizations","组织机构"),
BD_Department("BD_Department","部门"),
BD_CUSTOMER("BD_Customer","客户"),
BD_Empinfo("BD_Empinfo","员工"),
BD_SUPPLIER("BD_Supplier","供应商"),
BD_MATERIAL("BD_MATERIAL","物料"),
BD_BANK("BD_BANK","银行"),

36
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bddepartment/BdDepartment.java

@ -0,0 +1,36 @@
package com.yxt.anrui.fin.api.kingdee.bddepartment;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* 部门
*/
@Data
public class BdDepartment {
/* 使用组织:FUseOrgId (必填项)*/
@JsonProperty("FUseOrgId")
@NotBlank(message = "FUseOrgId不能为空")
public String FUseOrgId;
/* 创建组织:FCreateOrgId (必填项) */
@JsonProperty("FCreateOrgId")
@NotBlank(message = "FCreateOrgId不能为空")
public String FCreateOrgId;
/* 编码:FNumber*/
@JsonProperty("FNumber")
public String FNumber="";
/* 名称:FName (必填项)*/
@JsonProperty("FName")
@NotBlank(message = "FName不能为空")
public String FName;
/* 名称:FGroup (必填项)*/
@JsonProperty("FGroup")
@NotBlank(message = "FGroup不能为空")
public String FGroup="";
/* 名称:FParentID */
@JsonProperty("FParentID")
@NotBlank(message = "FParentID不能为空")
public String FParentID="";
}

50
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdempinfo/BDEmpinfo.java

@ -0,0 +1,50 @@
package com.yxt.anrui.fin.api.kingdee.bdempinfo;
import com.fasterxml.jackson.annotation.JsonProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
@Data
public class BDEmpinfo {
/*工作组织:FWorkOrgId (必填项)
所属部门:FPostDept (必填项)
就任岗位:FPost (必填项)
*/
/* 员工姓名:FName (必填项)*/
@JsonProperty("FName")
@NotBlank(message = "FName不能为空")
public String FName;
/**
* 使用组织:FUseOrgId (必填项)
*/
@JsonProperty("FUseOrgId")
@NotBlank(message = "FUseOrgId不能为空")
public String FUseOrgId;
/**
* 创建组织:FCreateOrgId (必填项)
*/
@JsonProperty("FCreateOrgId")
@NotBlank(message = "FCreateOrgId不能为空")
public String FCreateOrgId;
/**
* 描述:FDescription
*/
@JsonProperty("FDescription")
public String FDescription="";
/**
* 编码:FNumber
*/
@JsonProperty("FNumber")
public String FNumber;
/**
* 移动电话:FMobile
*/
@JsonProperty("FMobile")
public String FMobile;
/**
* 联系地址:FAddress
*/
@JsonProperty("FAddress")
public String FAddress;
}

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

@ -18,7 +18,7 @@ public class OrgOrganizations {
@JsonProperty("FNumber")
@NotBlank(message = "FNumber不能为空")
public String FNumber;
/*形态:FOrgFormID (必填项)*/
/*形态:FOrgFormID (必填项) 总公司101 公司102 部门107 事业部104 分公司105等*/
@JsonProperty("FOrgFormID")
@NotBlank(message = "FOrgFormID不能为空")
public String FOrgFormID;

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

@ -6,6 +6,8 @@ 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.bank.BDBank;
import com.yxt.anrui.fin.api.kingdee.bdcustomer.BdCustomer;
import com.yxt.anrui.fin.api.kingdee.bddepartment.BdDepartment;
import com.yxt.anrui.fin.api.kingdee.bdempinfo.BDEmpinfo;
import com.yxt.anrui.fin.api.kingdee.bdmaterial.BdMaterial;
import com.yxt.anrui.fin.api.kingdee.bdstock.BDStock;
import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
@ -21,6 +23,8 @@ 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.bank.BDBankService;
import com.yxt.anrui.fin.biz.kingdee.bdcustomer.BdCustomerService;
import com.yxt.anrui.fin.biz.kingdee.bddepartment.BdDepartmentService;
import com.yxt.anrui.fin.biz.kingdee.bdempinfo.BDEmpinfoService;
import com.yxt.anrui.fin.biz.kingdee.bdmaterial.BdMaterialService;
import com.yxt.anrui.fin.biz.kingdee.bdstock.BDStockService;
import com.yxt.anrui.fin.biz.kingdee.bdsupplier.BdSupplierService;
@ -127,6 +131,16 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
*/
@Autowired
private CNRecpaypurposeService cNRecpaypurposeService;
/**
* 部门
*/
@Autowired
private BdDepartmentService bdDepartmentService;
/**
* 员工
*/
@Autowired
private BDEmpinfoService bDEmpinfoService;
/**
*/
@Autowired
@ -202,6 +216,13 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
public ResultBean<String> draftOrgOrganizations(@RequestBody @Valid OrgOrganizations orgOrganizations) {
return orgOrganizationsService.draftOrgOrganizations(orgOrganizations);
}
@ApiOperation("批量修改组织机构的接口")
@PostMapping("/updateOrgOrganizations")
@ResponseBody
@Override
public ResultBean<String> updateOrgOrganizations(@RequestBody @Valid List<OrgOrganizations> orgOrganizations) {
return orgOrganizationsService.updateOrgOrganizations(orgOrganizations);
}
@ApiOperation("暂存供应商的接口")
@PostMapping("/draftBdSupplier")
@ResponseBody
@ -223,7 +244,6 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
public ResultBean<String> draftBdCustomers(@RequestBody @Valid List<BdCustomer> bdCustomers) {
return bdCustomerService.draftBdCustomers(bdCustomers);
}
@ApiOperation("修改客户信息的接口")
@PostMapping("/saveBdCustomers")
@ResponseBody
@ -295,5 +315,29 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
public ResultBean<String> draftCNRecpaypurpose(@RequestBody @Valid CNRecpaypurpose cNRecpaypurpose) {
return cNRecpaypurposeService.draftCNRecpaypurpose(cNRecpaypurpose);
}
@ApiOperation("保存部门的接口")
@PostMapping("/saveBdDepartment")
@ResponseBody
@Override
public ResultBean<String> saveBdDepartment(BdDepartment bdDepartment) {
return bdDepartmentService.saveBdDepartment(bdDepartment);
}
@ApiOperation("修改部门的接口")
@PostMapping("/updateBdDepartment")
@ResponseBody
@Override
public ResultBean<String> updateBdDepartment(BdDepartment bdDepartment) {
return bdDepartmentService.updateBdDepartment(bdDepartment);
}
@Override
public ResultBean<String> saveBDEmpinfo(BDEmpinfo bdEmpinfo) {
return bDEmpinfoService.saveBDEmpinfo(bdEmpinfo);
}
@Override
public ResultBean<String> updateBDEmpinfo(BDEmpinfo bdEmpinfo) {
return bDEmpinfoService.updateBDEmpinfo(bdEmpinfo);
}
}

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

@ -31,6 +31,10 @@ public class FinKingDeeService {
public static final Logger log = LoggerFactory.getLogger(FinKingDeeService.class);
@Autowired
public SysMappingFeign sysMappingFeign;
@Autowired
private KingDeeConfig kingDeeConfig;
@Autowired
private KingDeeSaveSKD kingDeeSaveSKD;
/**
* 调用金蝶的保存接口
* @param data
@ -47,14 +51,14 @@ public class FinKingDeeService {
*/
public ResultBean<String> accessKingDeeInterface(String formId,String data,String username,String psssword,String url) throws Exception {
KingDeeParams kdp = getKingDeeParams(formId, data);
kdp.setPassword(psssword==null?KingDeeConfig.password:psssword);
kdp.setUserName(username==null?KingDeeConfig.userName:username);
kdp.setPassword(psssword==null?kingDeeConfig.getPassword():psssword);
kdp.setUserName(username==null?kingDeeConfig.getUserName():username);
if(StringUtils.isBlank(url)){
return new ResultBean<String>().fail().setMsg("url不能为空");
}
kdp.setUrl(url);
log.info("kdp:{}",JSONObject.toJSONString(kdp));
ResultBean<String> listResultBean = KingDeeSaveSKD.accessKingDeeInterface(kdp);
ResultBean<String> listResultBean = kingDeeSaveSKD.accessKingDeeInterface(kdp);
log.info("listResultBean:{}",JSONObject.toJSONString(listResultBean));
return listResultBean;
}
@ -288,7 +292,8 @@ public class FinKingDeeService {
String getKDForNumbers = getGetKDForNumbers(formId, number);
try {
ResultBean<String> kingDataInfoByNumber = accessKingDeeInterface(formId, getKDForNumbers,
KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.VIEW_URL.getURL());
kingDeeConfig.getUserName_administrator(),
kingDeeConfig.getPassword_administrator(), KingDeeBillUrl.VIEW_URL.getURL());
return kingDataInfoByNumber;
} catch (Exception e) {
e.printStackTrace();
@ -304,10 +309,20 @@ public class FinKingDeeService {
* @throws Exception
*/
public boolean isAudit(String formId,String DocumentStatus,String id) throws Exception {
return isAudit(formId, DocumentStatus,id,null,null);
}
/**
* 反审核
* @param DocumentStatus
* @param id
* @return
* @throws Exception
*/
public boolean isAudit(String formId,String DocumentStatus,String id,String userName,String password) throws Exception {
log.info("DocumentStatus:{}",DocumentStatus);
if("C".equals(DocumentStatus)){
String auditKD = getUnAuditKD(id,formId);
ResultBean<String> rb1 = accessKingDeeInterface(formId, auditKD,KingDeeBillUrl.UNAUDIT_URL.getURL());
ResultBean<String> rb1 = accessKingDeeInterface(formId, auditKD,userName,password,KingDeeBillUrl.UNAUDIT_URL.getURL());
if(!rb1.getSuccess()){
log.info("反审核失败!");
return false;
@ -356,7 +371,7 @@ public class FinKingDeeService {
public JSONObject view(String formid,String Number) throws Exception {
String getKDForNumbers = getGetKDForNumbers(formid, Number);
ResultBean<String> kingDataInfoByNumber = accessKingDeeInterface(formid, getKDForNumbers,
KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.VIEW_URL.getURL());
kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator(), KingDeeBillUrl.VIEW_URL.getURL());
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
JSONObject jsonObject = JSONObject.parseObject(kingDataInfoByNumber.getData().toString());
JSONObject result = (JSONObject)jsonObject.get("Result");
@ -369,17 +384,20 @@ public class FinKingDeeService {
* @return
*/
public ResultBean<String> viewGetId(String formId,String number){
return viewGetId(formId,number,null,null);
}
public ResultBean<String> viewGetId(String formId,String number,String userName,String password){
ResultBean rb=ResultBean.fireFail();
String getKDForNumbers = getGetKDForNumbers(formId,number);
ResultBean<String> kingDataInfoByNumber = null;
try {
if(KingDeeBillId.ORG_ORGANIZATIONS.getID().equals(formId)){
kingDataInfoByNumber = accessKingDeeInterface(formId, getKDForNumbers,
KingDeeConfig.userName_administrator,
KingDeeConfig.password_administrator,
kingDeeConfig.getUserName_administrator(),
kingDeeConfig.getPassword_administrator(),
KingDeeBillUrl.VIEW_URL.getURL());
}else{
kingDataInfoByNumber = accessKingDeeInterface(formId, getKDForNumbers,KingDeeBillUrl.VIEW_URL.getURL());
kingDataInfoByNumber = accessKingDeeInterface(formId, getKDForNumbers,userName,password,KingDeeBillUrl.VIEW_URL.getURL());
}
} catch (Exception e) {

98
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/KingDeeConfig.java

@ -1,58 +1,56 @@
package com.yxt.anrui.fin.biz.kingdee;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Configuration;
/**
* 金蝶的系统的链接账号 url等信息
*/
@Configuration
public class KingDeeConfig {
public static String sessionkey = "kdservice-sessionid";
public static String aspnetsessionkey = "ASP.NET_SessionId";
public static String sessionValue = "";
public static String aspnetsessionValue = "";
/**
* 登录金蝶的账户信息 20211011
*/
// public static String acctID = "61654d8e138fe6";
/**
* 登录金蝶的账户信息 2022010测试
*/
// public static String acctID = "61dce6601125a0";
/**
* 登录金蝶的账户信息 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统
*/
public static String acctID = "5e84c526016ed7";
/**
* 登录金蝶的账户信息 2022010测试的
*/
// public static String userName = "信息部2";
/**
* 登录金蝶的账户信息
*/
//public static String password = "123321";
/**
* 登录金蝶的账户信息 2022010测试
*/
// public static String userName_administrator = "administrator";
/**
* 登录金蝶的账户信息 2022010测试
*/
// public static String password_administrator = "ANrui123456.";
/**
* 登录金蝶的账户信息 正式系统正式系统正式系统正式系统正式系统 正式系统 正式系统 正式系统 正式系统
*/
public static String userName = "信息部";
/**
* 登录金蝶的账户信息 正式系统正式系统正式系统正式系统正式系统 正式系统 正式系统 正式系统 正式系统
*/
public static String password = "ywzx0750";
/**
* 登录金蝶的账户信息 正式系统 正式系统 正式系统 正式系统
*/
public static String userName_administrator = "Administrator";
/**
* 登录金蝶的账户信息 正式系统 正式系统 正式系统 正式系统
*/
public static String password_administrator = "hebei@anrui202108.";
/**
* 登录金蝶的账户信息
*/
public static String lcid = "2052";
public static String url="http://121.36.43.55" ;
@Value("${kingdee.acctID}")
private String acctID;
@Value("${kingdee.userName}")
private String userName;
@Value("${kingdee.password}")
private String password;
@Value("${kingdee.userName_administrator}")
private String userName_administrator;
@Value("${kingdee.password_administrator}")
private String password_administrator;
@Value("${kingdee.lcid}")
private String lcid;
@Value("${kingdee.url}")
public String url;
public String getAcctID(){
return acctID;
}
public String getUrl() {
return url;
}
public String getUserName() {
return userName;
}
public String getPassword() {
return password;
}
public String getUserName_administrator() {
return userName_administrator;
}
public String getPassword_administrator() {
return password_administrator;
}
public String getLcid() {
return lcid;
}
}

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

@ -18,22 +18,27 @@ import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import java.net.URI;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Service
public class KingDeeSaveSKD {
private static Logger log= LoggerFactory.getLogger(KingDeeSaveSKD.class);
@Autowired
private KingDeeConfig kingDeeConfig;
/**
* 保存采购入库单
*
* @throws Exception
*/
@SuppressWarnings({"resource", "deprecation"})
public static ResultBean<String> accessKingDeeInterface(FinKingDeeService.KingDeeParams jsonParam ) throws Exception {
public ResultBean<String> accessKingDeeInterface(FinKingDeeService.KingDeeParams jsonParam ) throws Exception {
// 定义httpClient的实例
HttpClient httpclient = new DefaultHttpClient();
/********** 用户登录Begin ************************/
@ -53,11 +58,11 @@ public class KingDeeSaveSKD {
* @param httpclient
* @return
*/
private static ResultBean<String> accessKingDeeInterface(FinKingDeeService.KingDeeParams jsonParam,
private ResultBean<String> accessKingDeeInterface(FinKingDeeService.KingDeeParams jsonParam,
HttpClient httpclient,String aspnetsessionkey,String aspnetsessionValue) {
ResultBean<String> rb= ResultBean.fireFail();
try {
URI save_uri = new URI(KingDeeConfig.url+jsonParam.getUrl());
URI save_uri = new URI(kingDeeConfig.getUrl()+jsonParam.getUrl());
HttpPost method = new HttpPost(save_uri);
log.info(jsonParam.getData());
StringEntity entity = new StringEntity(jsonParam.getData(), "utf-8");
@ -86,17 +91,17 @@ public class KingDeeSaveSKD {
}
return rb;
}
public static ResultBean<Map<String,String>> loginKingDeeSystem( HttpClient httpclient,String userName,String password) {
public ResultBean<Map<String,String>> loginKingDeeSystem( HttpClient httpclient,String userName,String password) {
ResultBean<Map<String,String>> rb= ResultBean.fireFail();
try {
URI uri = new URI(KingDeeConfig.url+ KingDeeBillUrl.LOGIN_URL.getURL());
URI uri = new URI(kingDeeConfig.getUrl()+ KingDeeBillUrl.LOGIN_URL.getURL());
HttpPost method = new HttpPost(uri);
//登录请求参数
Map<String,String> loginParams=new HashMap<>();
loginParams.put("acctID",KingDeeConfig.acctID);
loginParams.put("acctID",kingDeeConfig.getAcctID());
loginParams.put("userName",userName);
loginParams.put("password",password);
loginParams.put("lcid",KingDeeConfig.lcid);
loginParams.put("lcid",kingDeeConfig.getLcid());
String jsonParamdl=JSON.toJSONString(loginParams);
StringEntity entity = new StringEntity(jsonParamdl, "utf-8");
entity.setContentEncoding("UTF-8");

44
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/BdDepartmentCastToKingDeeBillFields.java

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

144
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/BdDepartmentService.java

@ -0,0 +1,144 @@
package com.yxt.anrui.fin.biz.kingdee.bddepartment;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.bddepartment.BdDepartment;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.KingDeeConfig;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class BdDepartmentService extends FinKingDeeService {
@Autowired
private KingDeeConfig kingDeeConfig;
/**
* 保存部门
* @param bdDepartment
* @return
*/
public ResultBean saveBdDepartment(BdDepartment bdDepartment) {
//BdDepartments=BdDepartments.createBdDepartments();
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(bdDepartment);
map_fEntityModel_.put("FDEPTID","0");
map_fEntityModel_.put("IsDeleteEntry", "True");
String kingDeeData = BdDepartmentCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
return addBdDepartment(kingDeeData,bdDepartment.getFNumber());
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 批量修改 部门
* @param BdDepartments
* @return
*/
public ResultBean<String> updateBdDepartments(List<BdDepartment> BdDepartments) {
ResultBean rb=ResultBean.fireFail();
List<String> list=new ArrayList<>();
BdDepartments.forEach(o->{
ResultBean<String> r = updateBdDepartment(o);
if(r.getSuccess()){
list.add(r.getData());
}
});
return rb.success().setData(JSONObject.toJSONString(list));
}
/**
* 修改部门
* @param bdDepartment
* @return
*/
public ResultBean<String> updateBdDepartment( BdDepartment bdDepartment) {
//BdDepartments=BdDepartments.createBdDepartments();
ResultBean<String> rb=ResultBean.fireFail();
try {
Map<String,String> map_fEntityModel_= object2Map(bdDepartment);
map_fEntityModel_.put("FDEPTID","0");
map_fEntityModel_.put("IsDeleteEntry", "True");
String kingDeeData = BdDepartmentCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> stringResultBean = viewGetId(KingDeeBillId.BD_Department.getID(), bdDepartment.getFNumber()
);
String id = stringResultBean.getData();
if(!stringResultBean.getSuccess()&&"0".equals(id)){
return addBdDepartment(kingDeeData,bdDepartment.getFNumber());
}
//反审核
boolean c = isAudit(KingDeeBillId.BD_Department.getID(), "C", id);
//修改
map_fEntityModel_.put("FDEPTID",id);
map_fEntityModel_.put("IsDeleteEntry", "False");
kingDeeData = BdDepartmentCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
rb= accessKingDeeInterface(KingDeeBillId.BD_Department.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
//提交审核
ResultBean<String> resultBean2 = submitAndAudit(id);
return resultBean2;
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 新增
* @param kingDeeData
* @return
*/
private ResultBean<String> addBdDepartment(String kingDeeData,String FNumber){
ResultBean<String> rb=ResultBean.fireFail();
try{
rb= accessKingDeeInterface(KingDeeBillId.BD_Department.getID(), kingDeeData, KingDeeBillUrl.SAVE_URL.getURL());
String s = draftResultGetId(rb.getData());
return submitAndAudit(s);
}catch (Exception e){
e.printStackTrace();
return rb.setMsg("部门新增失败");
}
}
/**
* 提交审核部门
* @param id
* @return
*/
private ResultBean<String> submitAndAudit( String id){
ResultBean<String> rb=ResultBean.fireFail();
try{
String submitKDTempJson = getSubmitKDTempJson(KingDeeBillId.BD_Department.getID(),id );
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.BD_Department.getID(), submitKDTempJson,
KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("部门提交失败!");
return rb.setMsg("部门提交失败!");
}
log.info("部门提交成功!");
String auditKDTempJson = getAuditKDTempJson(KingDeeBillId.BD_Department.getID(), id);
ResultBean<String> resultBean2 =
accessKingDeeInterface(KingDeeBillId.BD_Department.getID(), auditKDTempJson,
KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("部门审核失败!");
return rb.setMsg("部门审核失败!");
}
log.info("部门审核成功!");
return resultBean2;
} catch (Exception e){
e.printStackTrace();
return rb.setMsg("部门提交审核失败");
}
}
}

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

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

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

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

24
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/data_model.json

@ -0,0 +1,24 @@
{
"FDEPTID": @KD_FDEPTID,
"FCreateOrgId": {
"FNumber": "@KD_FCreateOrgId"
},
"FNumber": "@KD_FNumber",
"FUseOrgId": {
"FNumber": "@KD_FUseOrgId"
},
"FName": "@KD_FName",
"FParentID": {
"FNumber": "@KD_FParentID"
},
"FEffectDate": "@KD_FParentID",
"FLapseDate": "9999-12-31 00:00:00",
"FDeptProperty": {
"FNumber": "DP02_SYS"
},
"FGroup": {
"FNumber": "@KD_FGroup"
},
"FIsCopyFlush": false,
"FSHRMapEntity": {}
}

71
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/remarks.txt

@ -0,0 +1,71 @@
一、请求参数说明:
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\":{\"FDEPTID\":\"0\",\"FCreateOrgId\":{\"FNumber\":\"\"},\"FNumber\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FName\":\"\",\"FHelpCode\":\"\",\"FParentID\":{\"FNumber\":\"\"},\"FFullName\":\"\",\"FEffectDate\":\"1900-01-01\",\"FLapseDate\":\"1900-01-01\",\"FDeptProperty\":{\"FNumber\":\"\"},\"FDescription\":\"\",\"FGroup\":{\"FNumber\":\"\"},\"FIsCopyFlush\":\"false\",\"FSHRMapEntity\":{\"FMAPID\":\"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_Department","{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FDEPTID\":\"0\",\"FCreateOrgId\":{\"FNumber\":\"\"},\"FNumber\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FName\":\"\",\"FHelpCode\":\"\",\"FParentID\":{\"FNumber\":\"\"},\"FFullName\":\"\",\"FEffectDate\":\"1900-01-01\",\"FLapseDate\":\"1900-01-01\",\"FDeptProperty\":{\"FNumber\":\"\"},\"FDescription\":\"\",\"FGroup\":{\"FNumber\":\"\"},\"FIsCopyFlush\":\"false\",\"FSHRMapEntity\":{\"FMAPID\":\"0\"}}}");
}
五、字段说明:
WIP仓位:FWIPLocationID
WIP仓库:FWIPStockID
深度:FDepth
层级码:FLevelCode
车间:FIsStock
HR部门:FIsHRDept
禁用日期:FForbidDate
业务组织本部:FIsOrg
对应业务组织:FOrg
是否根节点:FIsRoot
名称:FSHRName
编码:FSHRNumber
所属ERP组织:FErpCode
状态:FSHRStatus
SHR内码:FShrId
部门分组:FGroup
部门属性:FDeptProperty
副产品倒冲:FIsCopyFlush
来源于s-HR:FIsSHR
使用组织:FUseOrgId (必填项)
创建组织:FCreateOrgId (必填项)
修改人:FModifierId
创建人:FCreatorId
描述:FDescription
禁用状态:FForbidStatus
数据状态:FDocumentStatus
编码:FNumber
名称:FName (必填项)
创建日期:FCreateDate
审核日期:FAuditDate
审核人:FAuditorID
禁用人:FForbidderID
上级部门:FParentID
失效日期:FLapseDate
助记码:FHelpCode
修改日期:FModifyDate
生效日期:FEffectDate
部门全称:FFullName

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

@ -0,0 +1 @@
{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FDEPTID\":0,\"FCreateOrgId\":{\"FNumber\":\"101\"},\"FUseOrgId\":{\"FNumber\":\"101\"},\"FName\":\"1212211212211212\",\"FParentID\":{\"FNumber\":\"05.01\"},\"FEffectDate\":\"2022-10-28 00:00:00\",\"FLapseDate\":\"9999-12-31 00:00:00\",\"FDeptProperty\":{\"FNumber\":\"DP02_SYS\"},\"FGroup\":{\"FNumber\":\"01\"},\"FIsCopyFlush\":false,\"FSHRMapEntity\":{}}}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bddepartment/部门的参数必填备注.xlsx

Binary file not shown.

44
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/BDEmpinfoCastToKingDeeBillFields.java

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

143
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/BDEmpinfoService.java

@ -0,0 +1,143 @@
package com.yxt.anrui.fin.biz.kingdee.bdempinfo;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillId;
import com.yxt.anrui.fin.api.kingdee.KingDeeBillUrl;
import com.yxt.anrui.fin.api.kingdee.bdempinfo.BDEmpinfo;
import com.yxt.anrui.fin.api.kingdee.bdempinfo.BDEmpinfo;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.KingDeeConfig;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class BDEmpinfoService extends FinKingDeeService {
@Autowired
private KingDeeConfig kingDeeConfig;
/**
* 保存员工
* @param BDEmpinfo
* @return
*/
public ResultBean saveBDEmpinfo(BDEmpinfo BDEmpinfo) {
//BDEmpinfos=BDEmpinfos.createBDEmpinfos();
ResultBean rb=ResultBean.fireFail();
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(BDEmpinfo);
map_fEntityModel_.put("FID","0");
map_fEntityModel_.put("IsDeleteEntry", "True");
String kingDeeData = BDEmpinfoCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
return addBDEmpinfo(kingDeeData,BDEmpinfo.getFNumber());
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 批量修改 员工
* @param BDEmpinfos
* @return
*/
public ResultBean<String> updateBDEmpinfos(List<BDEmpinfo> BDEmpinfos) {
ResultBean rb=ResultBean.fireFail();
List<String> list=new ArrayList<>();
BDEmpinfos.forEach(o->{
ResultBean<String> r = updateBDEmpinfo(o);
if(r.getSuccess()){
list.add(r.getData());
}
});
return rb.success().setData(JSONObject.toJSONString(list));
}
/**
* 修改员工
* @param BDEmpinfo
* @return
*/
public ResultBean<String> updateBDEmpinfo( BDEmpinfo BDEmpinfo) {
//BDEmpinfos=BDEmpinfos.createBDEmpinfos();
ResultBean<String> rb=ResultBean.fireFail();
try {
Map<String,String> map_fEntityModel_= object2Map(BDEmpinfo);
map_fEntityModel_.put("FID","0");
map_fEntityModel_.put("IsDeleteEntry", "True");
String kingDeeData = BDEmpinfoCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> stringResultBean = viewGetId(KingDeeBillId.BD_Empinfo.getID(), BDEmpinfo.getFNumber());
String id = stringResultBean.getData();
if(!stringResultBean.getSuccess()&&"0".equals(id)){
return addBDEmpinfo(kingDeeData,BDEmpinfo.getFNumber());
}
//反审核
boolean c = isAudit(KingDeeBillId.BD_Empinfo.getID(), "C", id);
//修改
map_fEntityModel_.put("FID",id);
map_fEntityModel_.put("IsDeleteEntry", "False");
kingDeeData = BDEmpinfoCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
rb= accessKingDeeInterface(KingDeeBillId.BD_Empinfo.getID(), kingDeeData,KingDeeBillUrl.SAVE_URL.getURL());
//提交审核
ResultBean<String> resultBean2 = submitAndAudit(id);
return resultBean2;
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 新增
* @param kingDeeData
* @return
*/
private ResultBean<String> addBDEmpinfo(String kingDeeData,String FNumber){
ResultBean<String> rb=ResultBean.fireFail();
try{
rb= accessKingDeeInterface(KingDeeBillId.BD_Empinfo.getID(), kingDeeData,KingDeeBillUrl.SAVE_URL.getURL());
String s = draftResultGetId(rb.getData());
return submitAndAudit(s);
}catch (Exception e){
e.printStackTrace();
return rb.setMsg("员工新增失败");
}
}
/**
* 提交审核员工
* @param id
* @return
*/
private ResultBean<String> submitAndAudit( String id){
ResultBean<String> rb=ResultBean.fireFail();
try{
String submitKDTempJson = getSubmitKDTempJson(KingDeeBillId.BD_Empinfo.getID(),id );
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.BD_Empinfo.getID(), submitKDTempJson,
KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("员工提交失败!");
return rb.setMsg("员工提交失败!");
}
log.info("员工提交成功!");
String auditKDTempJson = getAuditKDTempJson(KingDeeBillId.BD_Empinfo.getID(), id);
ResultBean<String> resultBean2 =
accessKingDeeInterface(KingDeeBillId.BD_Empinfo.getID(), auditKDTempJson,
KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("员工审核失败!");
return rb.setMsg("员工审核失败!");
}
log.info("员工审核成功!");
return resultBean2;
} catch (Exception e){
e.printStackTrace();
return rb.setMsg("员工提交审核失败");
}
}
}

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

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

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

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

13
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/data_model.json

@ -0,0 +1,13 @@
{
"FID": @KD_FID,
"FName": "@KD_FNAME",
"FMobile": "@KD_FMobile",
"FAddress": "@KD_FAddress",
"FUseOrgId": {
"FNumber": "@KD_FUseOrgId"
},
"FCreateOrgId": {
"FNumber": "@KD_FCreateOrgId"
},
"FSHRMapEntity": {}
}

87
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/remarks.txt

@ -0,0 +1,87 @@
一、请求参数说明:
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\":{\"FID\":\"0\",\"FName\":\"\",\"FStaffNumber\":\"\",\"FMobile\":\"\",\"FTel\":\"\",\"FEmail\":\"\",\"FDescription\":\"\",\"FAddress\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FCreateOrgId\":{\"FNumber\":\"\"},\"FSHRMapEntity\":{\"FMAPID\":\"0\"},\"FPostEntity\":[{\"FENTRYID\":\"0\",\"FWorkOrgId\":{\"FNumber\":\"\"},\"FPostDept\":{\"FNumber\":\"\"},\"FPost\":{\"FNumber\":\"\"},\"FStaffStartDate\":\"1900-01-01\",\"FIsFirstPost\":\"false\"}],\"FBankInfo\":[{\"FBankId\":\"0\",\"FBankCountry\":{\"FNumber\":\"\"},\"FOpenBankName\":\"\",\"FBankCode\":\"\",\"FBankHolder\":\"\",\"FBankTypeRec\":{\"FNUMBER\":\"\"},\"FTextBankDetail\":\"\",\"FOpenAddressRec\":\"\",\"FCNAPS\":\"\",\"FBankCurrencyId\":{\"FNUMBER\":\"\"},\"FBankIsDefault\":\"false\",\"FBankDesc\":\"\"}]}}
三、返回参数:
{\"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_Empinfo","{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":\"0\",\"FName\":\"\",\"FStaffNumber\":\"\",\"FMobile\":\"\",\"FTel\":\"\",\"FEmail\":\"\",\"FDescription\":\"\",\"FAddress\":\"\",\"FUseOrgId\":{\"FNumber\":\"\"},\"FCreateOrgId\":{\"FNumber\":\"\"},\"FSHRMapEntity\":{\"FMAPID\":\"0\"},\"FPostEntity\":[{\"FENTRYID\":\"0\",\"FWorkOrgId\":{\"FNumber\":\"\"},\"FPostDept\":{\"FNumber\":\"\"},\"FPost\":{\"FNumber\":\"\"},\"FStaffStartDate\":\"1900-01-01\",\"FIsFirstPost\":\"false\"}],\"FBankInfo\":[{\"FBankId\":\"0\",\"FBankCountry\":{\"FNumber\":\"\"},\"FOpenBankName\":\"\",\"FBankCode\":\"\",\"FBankHolder\":\"\",\"FBankTypeRec\":{\"FNUMBER\":\"\"},\"FTextBankDetail\":\"\",\"FOpenAddressRec\":\"\",\"FCNAPS\":\"\",\"FBankCurrencyId\":{\"FNUMBER\":\"\"},\"FBankIsDefault\":\"false\",\"FBankDesc\":\"\"}]}}");
}
五、字段说明:
员工任岗ID:FStaffDetails
部门全称:FBaseProperty3
禁用状态:FStaffForbidStatus
编码:FSHRNumber
工作组织:FWorkOrgId (必填项)
是否主任岗:FIsFirstPost
数据状态:FStaffDocumentStatus
来源于s-HR:FIsSHR
任岗状态:FBaseProperty9
主任岗开始日期:FBaseProperty1
所属部门:FPostDept (必填项)
任岗开始日期:FStaffStartDate
就任岗位:FPost (必填项)
SHR内码:FShrId
开户行地址:FOpenAddressRec
描述:FBankDesc
默认:FBankIsDefault
选择银行网点:FTextBankDetail
收款银行:FBankTypeRec
联行号:FCNAPS
币别:FBankCurrencyId
国家:FBankCountry
状态:FSHRStatus
名称:FSHRName
账户名称:FBankHolder
银行账号:FBankCode
开户银行:FOpenBankName
创建日期:FCreateDate
修改人:FModifierId
创建人:FCreatorId
禁用人:FForbidderId
禁用日期:FForbidDate
修改日期:FModifyDate
使用组织:FUseOrgId (必填项)
员工姓名:FName (必填项)
禁用状态:FForbidStatus
数据状态:FDocumentStatus
创建组织:FCreateOrgId (必填项)
描述:FDescription
编码:FNumber
员工编号:FStaffNumber
人员:FPersonID
主任职职员信息:FStaffId
固定电话:FTel
主任岗岗位:FBaseProperty
主证件内码:FFirstCardID
员工姓名:FBaseProperty8
电子邮箱:FEmail
审核日期:FAuditDate
审核人:FAuditorID
照片:FPhoto
移动电话:FMobile
联系地址:FAddress
HR员工:FIsHR

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

@ -0,0 +1 @@
{\"Creator\":\"\",\"NeedUpDateFields\":[],\"NeedReturnFields\":[],\"IsDeleteEntry\":\"True\",\"SubSystemId\":\"\",\"IsVerifyBaseDataField\":\"false\",\"IsEntryBatchFill\":\"True\",\"ValidateFlag\":\"True\",\"NumberSearch\":\"True\",\"InterationFlags\":\"\",\"Model\":{\"FID\":0,\"FName\":\"员工姓名1\",\"FMobile\":\"15097329653\",\"FAddress\":\"联系地址联系地址联系地址联系地址\",\"FUseOrgId\":{\"FNumber\":\"101\"},\"FCreateOrgId\":{\"FNumber\":\"101\"},\"FSHRMapEntity\":{}}}

BIN
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/bdempinfo/部门的参数必填备注.xlsx

Binary file not shown.

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

@ -31,9 +31,11 @@ import java.util.Map;
public class BdMaterialService extends FinKingDeeService {
private static Logger log= LoggerFactory.getLogger(BdMaterialService.class);
@Autowired
private PaezCllxService paezCllxService;
private PaezCllxService paezCllxService;
@Autowired
private BDMaterialcategoryService bDMaterialcategoryService;
@Autowired
private KingDeeConfig kingDeeConfig;
/**
* 批量暂存物料 list
* @param bdMaterials
@ -220,7 +222,7 @@ public class BdMaterialService extends FinKingDeeService {
private ResultBean<String> draft( String kingDeeData) throws Exception {
ResultBean<String> rb=ResultBean.fireFail();
ResultBean<String> stringResultBean = accessKingDeeInterface(KingDeeBillId.BD_MATERIAL.getID(),
kingDeeData, KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.DRAFT_URL.getURL());
kingDeeData, kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator(), KingDeeBillUrl.DRAFT_URL.getURL());
if(!stringResultBean.getSuccess()){
log.info("物料保存失败!");
return rb.setMsg("物料保存失败!");

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

@ -7,6 +7,7 @@ import com.yxt.anrui.fin.api.kingdee.bdsupplier.BdSupplier;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.KingDeeConfig;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
@ -15,6 +16,8 @@ import java.util.Map;
@Service
public class BdSupplierService extends FinKingDeeService {
@Autowired
private KingDeeConfig kingDeeConfig;
/**
* 保存供应商 list
* @param bdSupplier
@ -45,7 +48,7 @@ public class BdSupplierService extends FinKingDeeService {
Map<String,String> map_fEntityModel_= object2Map(bdSupplier);
String kingDeeData = BdSupplierCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> resultBean = accessKingDeeInterface(KingDeeBillId.BD_SUPPLIER.getID(), kingDeeData,
KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.DRAFT_URL.getURL());
kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator(), KingDeeBillUrl.DRAFT_URL.getURL());
String submitKD = getSubmitKD(resultBean.getData(),KingDeeBillId.BD_SUPPLIER.getID());
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.BD_SUPPLIER.getID(), submitKD,KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){

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

@ -22,6 +22,8 @@ import java.util.Map;
public class CNBankcntService extends FinKingDeeService {
@Autowired
private BDBankService bdBankService;
@Autowired
private KingDeeConfig kingDeeConfig;
/**
* 保存银行账号信息 list
* @param cNBankacnts
@ -107,7 +109,7 @@ public class CNBankcntService extends FinKingDeeService {
private JSONObject view(String bankName) throws Exception {
String getKDForNumbers = getGetKDForNumbers(KingDeeBillId.BD_BANK.getID(), bankName);
ResultBean<String> kingDataInfoByNumber = accessKingDeeInterface(KingDeeBillId.BD_BANK.getID(), getKDForNumbers,
KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.VIEW_URL.getURL());
kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator(), KingDeeBillUrl.VIEW_URL.getURL());
log.info("kingDataInfoByNumber:{}",kingDataInfoByNumber.getData());
JSONObject jsonObject = JSONObject.parseObject(kingDataInfoByNumber.getData().toString());
JSONObject result = (JSONObject)jsonObject.get("Result");

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

@ -7,13 +7,17 @@ import com.yxt.anrui.fin.api.kingdee.orgorganizations.OrgOrganizations;
import com.yxt.anrui.fin.biz.kingdee.FinKingDeeService;
import com.yxt.anrui.fin.biz.kingdee.KingDeeConfig;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@Service
public class OrgOrganizationsService extends FinKingDeeService {
@Autowired
private KingDeeConfig kingDeeConfig;
/**
* 保存组织机构
* @param orgOrganizations
@ -25,42 +29,119 @@ public class OrgOrganizationsService extends FinKingDeeService {
try {
//业务表的主表数据集合
Map<String,String> map_fEntityModel_= object2Map(orgOrganizations);
map_fEntityModel_.put("FOrgID","0");
map_fEntityModel_.put("IsDeleteEntry", "True");
String kingDeeData = OrgOrganizationsCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> result = accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), kingDeeData,
KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.DRAFT_URL.getURL());
if (!result.getSuccess()){
return result;
}
String number = orgOrganizations.getFNumber();
String getKDForNumbers = getGetKDForNumbers(KingDeeBillId.ORG_ORGANIZATIONS.getID(), number);
ResultBean<String> listResultBean = accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), getKDForNumbers,
KingDeeConfig.userName_administrator, KingDeeConfig.password_administrator, KingDeeBillUrl.VIEW_URL.getURL());
String vie_result =listResultBean.getData();
JSONObject jsonObject = JSONObject.parseObject(vie_result);
JSONObject result1 = (JSONObject)jsonObject.get("Result");
JSONObject Result2 = (JSONObject)result1.get("Result");
Integer Id = (Integer)Result2.get("Id");
String id= Id+"";
String submitKDTempJson = getSubmitKDTempJson(KingDeeBillId.ORG_ORGANIZATIONS.getID(), id);
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), submitKDTempJson, KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("组织机构提交失败!");
return rb.setMsg("组织机构提交失败!");
return addOrganization(kingDeeData,orgOrganizations.getFNumber());
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 批量修改 组织机构
* @param orgOrganizations
* @return
*/
public ResultBean<String> updateOrgOrganizations(List<OrgOrganizations> orgOrganizations) {
ResultBean rb=ResultBean.fireFail();
List<String> list=new ArrayList<>();
orgOrganizations.forEach(o->{
ResultBean<String> r = updateOrgOrganization(o);
if(r.getSuccess()){
list.add(r.getData());
}
log.info("组织机构提交成功!");
String auditKDTempJson = getAuditKDTempJson(KingDeeBillId.ORG_ORGANIZATIONS.getID(), id);
ResultBean<String> resultBean2 =
accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), auditKDTempJson,KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator, KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("组织机构审核失败!");
return rb.setMsg("组织机构审核失败!");
});
return rb.success().setData(JSONObject.toJSONString(list));
}
/**
* 修改组织机构
* @param org
* @return
*/
public ResultBean<String> updateOrgOrganization( OrgOrganizations org) {
//orgOrganizations=OrgOrganizations.createOrgOrganizations();
ResultBean<String> rb=ResultBean.fireFail();
try {
Map<String,String> map_fEntityModel_= object2Map(org);
map_fEntityModel_.put("FOrgID","0");
map_fEntityModel_.put("IsDeleteEntry", "True");
String kingDeeData = OrgOrganizationsCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
ResultBean<String> stringResultBean = viewGetId(KingDeeBillId.ORG_ORGANIZATIONS.getID(), org.getFNumber()
,kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator());
String id = stringResultBean.getData();
if(!stringResultBean.getSuccess()&&"0".equals(id)){
return addOrganization(kingDeeData,org.getFNumber());
}
log.info("组织机构审核成功!");
//反审核
boolean c = isAudit(KingDeeBillId.ORG_ORGANIZATIONS.getID(), "C", id,
kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator());
//修改
map_fEntityModel_.put("FOrgID",id);
map_fEntityModel_.put("IsDeleteEntry", "False");
kingDeeData = OrgOrganizationsCastToKingDeeBillFields.getKingDeeData(map_fEntityModel_);
rb= accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), kingDeeData,
kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator(), KingDeeBillUrl.SAVE_URL.getURL());
//提交审核
ResultBean<String> resultBean2 = submitAndAudit(id);
return resultBean2;
} catch (Exception e) {
e.printStackTrace();
}
return rb;
}
/**
* 新增
* @param kingDeeData
* @return
*/
private ResultBean<String> addOrganization(String kingDeeData,String FNumber){
ResultBean<String> rb=ResultBean.fireFail();
try{
rb= accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), kingDeeData,
kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator(), KingDeeBillUrl.SAVE_URL.getURL());
ResultBean<String> stringResultBean = viewGetId(KingDeeBillId.ORG_ORGANIZATIONS.getID(), FNumber);
return submitAndAudit(stringResultBean.getData());
}catch (Exception e){
e.printStackTrace();
return rb.setMsg("组织机构新增失败");
}
}
/**
* 提交审核组织机构
* @param id
* @return
*/
private ResultBean<String> submitAndAudit( String id){
ResultBean<String> rb=ResultBean.fireFail();
try{
String submitKDTempJson = getSubmitKDTempJson(KingDeeBillId.ORG_ORGANIZATIONS.getID(),id );
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), submitKDTempJson,
kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator(), KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("组织机构提交失败!");
return rb.setMsg("组织机构提交失败!");
}
log.info("组织机构提交成功!");
String auditKDTempJson = getAuditKDTempJson(KingDeeBillId.ORG_ORGANIZATIONS.getID(), id);
ResultBean<String> resultBean2 =
accessKingDeeInterface(KingDeeBillId.ORG_ORGANIZATIONS.getID(), auditKDTempJson,
kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator(),
KingDeeBillUrl.AUDIT_URL.getURL());
if(!resultBean2.getSuccess()){
log.info("组织机构审核失败!");
return rb.setMsg("组织机构审核失败!");
}
log.info("组织机构审核成功!");
return resultBean2;
} catch (Exception e){
e.printStackTrace();
return rb.setMsg("组织机构提交审核失败");
}
}
}

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

@ -1,5 +1,5 @@
{
"FOrgID": 0,
"FOrgID": @KD_FOrgID,
"FNumber": "@KD_FNumber",
"FName": "@KD_FName",
"FOrgFormID": "@KD_FOrgFormID",

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

@ -17,6 +17,8 @@ import java.util.Map;
@Service
public class PaezCllxService extends FinKingDeeService {
@Autowired
private KingDeeConfig kingDeeConfig;
/**
* 保存车辆类型信息 list
* @param paezCllx
@ -53,7 +55,7 @@ public class PaezCllxService extends FinKingDeeService {
String submitKD = getSubmitKD(resultBean.getData(),KingDeeBillId.PAEZ_CLLX.getID());
log.info("draftPaezCllx-submitKD:{}",submitKD);
ResultBean<String> resultBean1 = accessKingDeeInterface(KingDeeBillId.PAEZ_CLLX.getID(),
submitKD, KingDeeConfig.userName_administrator,KingDeeConfig.password_administrator ,KingDeeBillUrl.SUBMIT_URL.getURL());
submitKD, kingDeeConfig.getUserName_administrator(),kingDeeConfig.getPassword_administrator() ,KingDeeBillUrl.SUBMIT_URL.getURL());
if(!resultBean1.getSuccess()){
log.info("车辆类型提交失败!");
return rb.setMsg("车辆类型提交失败!");

2
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/SalOutStockService.java

@ -53,7 +53,7 @@ public class SalOutStockService extends FinKingDeeService {
if(!IsBatchManage){//是否启用批号
f.setFlot("");//没有启用批号
}else{
f.setFlot(f.getFMaterialID());//没有启用批号
f.setFlot(f.getFMaterialID());//启用批号
}
String fStockID = f.getFStockID();
if(!"ARZTCK".equals(fStockID)){//如果不是在途仓库 设置成安瑞正式仓库

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

@ -55,12 +55,19 @@ public class STKInStockService extends FinKingDeeService {
JSONObject result2 = (JSONObject)result.get("Result");
Integer Id = (Integer)result2.get("Id");
log.info("Id:{}",Id);
JSONArray materialStocks = (JSONArray)result2.get("MaterialStock");
JSONObject materialStock = (JSONObject)materialStocks.get(0);
boolean IsBatchManage = (boolean) materialStock.get("IsBatchManage");
if(!IsBatchManage){//是否启用批号
f.setFLot("");//没有启用批号
}else{
f.setFLot(f.getFMaterialId());//启用批号
}
allocate(f,stkInStock,Id);
}
}
try {
//推送入库单
ResultBean<String> stringResultBean = stkInstock(stkInStock);
String data = stringResultBean.getData();

10
anrui-fin/anrui-fin-biz/src/main/resources/application-dev.yml

@ -23,4 +23,12 @@ image:
upload:
path: static/upload/
url:
prefix: http://192.168.1.116:8111/upload/
prefix: http://192.168.1.116:8111/upload/
kingdee: #金蝶的系统的链接账号 url等信息
acctID: 61dce6601125a0 #登录金蝶的账户信息 2022010测试
userName: 信息部2 #登录金蝶的账户信息 2022010测试的
password: 123321 #登录金蝶的账户信息
userName_administrator: administrator #登录金蝶的账户信息 2022010测试
password_administrator: ANrui123456. #登录金蝶的账户信息 2022010测试
lcid: 2052 #登录金蝶的账户信息
url: http://121.36.43.55 #金蝶财务系统ip地址

10
anrui-fin/anrui-fin-biz/src/main/resources/application-pro.yml

@ -23,4 +23,12 @@ image:
upload:
path: D:\anrui\upload\
url:
prefix: http://120.46.172.184/api/upload/
prefix: http://120.46.172.184/api/upload/
kingdee: #金蝶的系统的链接账号 url等信息
acctID: 5e84c526016ed7 #登录金蝶的账户信息 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统 正式系统
userName: 信息部 #登录金蝶的账户信息 2022010测试的
password: ywzx0750 #登录金蝶的账户信息
userName_administrator: Administrator #登录金蝶的账户信息 2022010测试
password_administrator: hebei@anrui202108. #登录金蝶的账户信息 2022010测试
lcid: 2052 #登录金蝶的账户信息
url: http://121.36.43.55 #金蝶财务系统ip地址

8
anrui-fin/anrui-fin-biz/src/main/resources/application-test.yml

@ -24,3 +24,11 @@ image:
path: /home/lzh/docker_data/nginx/html/anrui-system-ui/upload/
url:
prefix: http://anrui.yyundong.com/upload/
kingdee:
acctID: 61dce6601125a0 #登录金蝶的账户信息 2022010测试
userName: 信息部2 #登录金蝶的账户信息 2022010测试的
password: 123321 #登录金蝶的账户信息
userName_administrator: administrator #登录金蝶的账户信息 2022010测试
password_administrator: ANrui123456. #登录金蝶的账户信息 2022010测试
lcid: 2052 #登录金蝶的账户信息
url: http://121.36.43.55 #金蝶财务系统ip地址

4
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowdefinition/FlowDefinitionFeign.java

@ -77,9 +77,9 @@ public interface FlowDefinitionFeign {
public ResultBean start(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
@ApiOperation(value = "业务系统发起流程根据流程定义id启动流程实例")
/* @ApiOperation(value = "业务系统发起流程根据流程定义id启动流程实例")
@PostMapping("/businessStart")
@ResponseBody
public ResultBean<FlowTask> businessStart(@ApiParam(value = "请求参数") @RequestBody
BusinessVariables dto);
BusinessVariables dto);*/
}

4
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowdefinition/FlowDefinitionFeignFallBack.java

@ -60,9 +60,9 @@ public class FlowDefinitionFeignFallBack implements FlowDefinitionFeign {
return null;
}
@Override
/* @Override
public ResultBean<FlowTask> businessStart(BusinessVariables dto) {
return null;
}
*/
}

3
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/LatestTaskVo.java

@ -26,6 +26,9 @@ public class LatestTaskVo implements Vo {
@ApiModelProperty(value = "name_")
private String ASSIGNEE_;
@ApiModelProperty(value = "orgPath")
private String orgPath;
@ApiModelProperty(value = "incomingSourceRef")
private String incomingSourceRef;
}

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

@ -114,49 +114,8 @@ public class FlowableRest implements FlowableFeign {
@Override
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String orgSidPath=bv.getOrgSidPath();
//根据业务参数取流程流转的环节 信息
List<Map<String, Object>> list = (List<Map<String, Object>>) flowtaskService.getProcessCirculationNodesByMap(bv).getData();
if(list==null||list.size()<2){
return rb.setMsg("流程设计问题");
}
//取第二个环节的配置角色
Object o = list.get(1).get("candidateGroups");
if(o==null){
return rb.setMsg("流程设计问题");
}
return getNextUserSids(rb, orgSidPath, o);
}
private ResultBean< UserAndOrgPath> getNextUserSids(ResultBean rb, String orgSidPath, Object o) {
UserAndOrgPath mapParam=new UserAndOrgPath();
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o));
String roleSid = jsonArray.get(0).toString();
//根据组织架构、角色两个参数取相关符合条件的用户信息
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(orgSidPath);
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData();
if(sysUserVos==null||sysUserVos.size()<1){
return rb.fail().setMsg("环节没有用户");
}
StringBuilder nextNodeUserSids = new StringBuilder();
StringBuilder nextNodeOrgPathSids = new StringBuilder();
for (SysUserVo su : sysUserVos) {
nextNodeUserSids.append(su.getSid()).append(",");
nextNodeOrgPathSids.append(su.getOrgSidPath()).append(",");
}
//符合条件的用户的sid,拼接的字符串
String nextNodeUserSids_ = nextNodeUserSids.toString();
String nextNodeOrgPathSids_ = nextNodeOrgPathSids.toString();
if(StringUtils.isBlank(nextNodeUserSids_))
return rb.fail().setMsg("环节没有用户");
nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1);
nextNodeOrgPathSids_ = nextNodeOrgPathSids_.substring(0, nextNodeOrgPathSids_.length() - 1);
mapParam.setUserSid(nextNodeUserSids_);
mapParam.setOrgPath(nextNodeOrgPathSids_);
return rb.success().setData(mapParam);
return flowtaskService.getNextNodeUserSidsOfCreate(bv) ;
}
@Override
@ -182,7 +141,7 @@ public class FlowableRest implements FlowableFeign {
return rb.setData(new UserAndOrgPath());
}else{
Object o = task_map.get("candidateGroups");
return getNextUserSids(rb, orgSidPath, o);
return flowtaskService.getNextUserSids(rb, orgSidPath, o);
}
}
@ -350,8 +309,12 @@ public class FlowableRest implements FlowableFeign {
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(dto.getOrgSidPath());
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData();
sysUserVoLists.addAll(sysUserVos);
ResultBean<List<SysUserVo>> userByRole = sysUserFeign.getUserByRole(userQuery);
boolean success = userByRole.getSuccess();
if(!success){
continue;
}
sysUserVoLists.addAll(userByRole.getData());
}
if(sysUserVoLists.size()==1&&sysUserVoLists.get(0).getSid().equals(nextUserSid)){
contains=true;

4
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowdefinition/FlowDefinitionRest.java

@ -138,8 +138,8 @@ public class FlowDefinitionRest implements FlowDefinitionFeign {
return flowDefinitionService.startProcessInstanceById(procDefId, variables);
}
@Override
/* @Override
public ResultBean<FlowTask> businessStart(@ApiParam(value = "变量集合") @RequestBody BusinessVariables dto) {
return flowDefinitionService.businessStart(dto);
}
}*/
}

6
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskMapper.xml

@ -191,9 +191,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
task.name_ ,
task.task_def_key_ ,
task.id_,
task.ASSIGNEE_
task.ASSIGNEE_,
a.TEXT_ orgpath
FROM
act_ru_task task
act_ru_task task
LEFT JOIN `act_ru_variable` a ON task.id_= a.task_id_ AND a.name_='orgPath'
WHERE
task.proc_inst_id_= #{procId}
</select>

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

@ -5,6 +5,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.google.common.collect.Lists;
import com.yxt.anrui.flowable.api.flow.UserAndOrgPath;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowcomment.FlowCommentDto;
import com.yxt.anrui.flowable.api.flowtask.*;
@ -27,6 +28,7 @@ import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUser;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserQuery;
import com.yxt.anrui.portal.api.sysuserrole.SysUserRoleFeign;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
@ -113,6 +115,50 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
private SysOrganizationFeign sysOrganizationFeign;
@Resource
private FlowableService flowableService;
public ResultBean<UserAndOrgPath> getNextNodeUserSidsOfCreate(BusinessVariables bv){
ResultBean rb = ResultBean.fireFail();
String orgSidPath=bv.getOrgSidPath();
//根据业务参数取流程流转的环节 信息
List<Map<String, Object>> list = (List<Map<String, Object>>) getProcessCirculationNodesByMap(bv).getData();
if(list==null||list.size()<2){
return rb.setMsg("流程设计问题");
}
//取第二个环节的配置角色
Object o = list.get(1).get("candidateGroups");
if(o==null){
return rb.setMsg("流程设计问题");
}
return getNextUserSids(rb, orgSidPath, o);
}
public ResultBean<UserAndOrgPath> getNextUserSids(ResultBean rb, String orgSidPath, Object o) {
UserAndOrgPath mapParam=new UserAndOrgPath();
JSONArray jsonArray = JSONArray.parseArray(JSON.toJSONString(o));
String roleSid = jsonArray.get(0).toString();
//根据组织架构、角色两个参数取相关符合条件的用户信息
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(orgSidPath);
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData();
if(sysUserVos==null||sysUserVos.size()<1){
return rb.fail().setMsg("环节没有用户");
}
StringBuilder nextNodeUserSids = new StringBuilder();
StringBuilder nextNodeOrgPathSids = new StringBuilder();
for (SysUserVo su : sysUserVos) {
nextNodeUserSids.append(su.getSid()).append(",");
nextNodeOrgPathSids.append(su.getOrgSidPath()).append(",");
}
//符合条件的用户的sid,拼接的字符串
String nextNodeUserSids_ = nextNodeUserSids.toString();
String nextNodeOrgPathSids_ = nextNodeOrgPathSids.toString();
if(StringUtils.isBlank(nextNodeUserSids_))
return rb.fail().setMsg("环节没有用户");
nextNodeUserSids_ = nextNodeUserSids_.substring(0, nextNodeUserSids_.length() - 1);
nextNodeOrgPathSids_ = nextNodeOrgPathSids_.substring(0, nextNodeOrgPathSids_.length() - 1);
mapParam.setUserSid(nextNodeUserSids_);
mapParam.setOrgPath(nextNodeOrgPathSids_);
return rb.success().setData(mapParam);
}
public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) {
log.info("bv");
String modelId = null;

4
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFallback.java

@ -15,11 +15,11 @@ import java.util.Map;
@Component
public class FlowableFallback implements FlowableFeign{
@Override
/* @Override
public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) {
return null;
}
*/
@Override
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {
return null;

4
anrui-portal/anrui-portal-api/src/main/java/com/yxt/anrui/portal/api/flow/FlowableFeign.java

@ -32,11 +32,11 @@ public interface FlowableFeign {
* @param variables form参数
* @return
*/
@PostMapping("/businessStart/{procDefId}/{userSid}")
/* @PostMapping("/businessStart/{procDefId}/{userSid}")
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ApiParam(value = "变量集合,json对象") @RequestBody Map<String, Object> variables);
*/
/**
* 流程定义列表 一般业务中不需要查询该列表
*

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

@ -72,11 +72,13 @@ public class FlowableRest implements FlowableFeign {
private SysStaffOrgService sysStaffOrgService;
@Autowired
private SysUserService sysUserService;
/*
@Override
public ResultBean businessStart(String procDefId, String userSid, Map<String, Object> variables) {
return flowableService.businessStart(procDefId, userSid, variables);
}
*/
@Override
public ResultBean processPagerList(Integer pageNum, Integer pageSize) {

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

@ -92,6 +92,7 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
private AppSubsetVersionService appSubsetVersionService;
@Autowired
private FileUploadComponent fileUploadComponent;
/*
public ResultBean businessStart(@ApiParam(value = "流程定义id") @PathVariable(value = "procDefId") String procDefId,
@ApiParam(value = "用户sid") @PathVariable(value = "userSid") String userSid,
@ -109,6 +110,7 @@ public class FlowableService extends MybatisBaseService<FlowableMapper, Flowable
ResultBean rb = flowDefinitionFeign.businessStart(bv);
return rb;
}
*/
public ResultBean myprocess(String userSid, PagerQuery<FlowTaskQuery> taskQueryPagerQuery) {
PagerQuery<BusinessTaskQuery> pq = new PagerQuery<>();

Loading…
Cancel
Save