Browse Source

Merge remote-tracking branch 'origin/master'

master
yunuo970428 3 years ago
parent
commit
7a07f5b3e7
  1. 32
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelVehicleVersionVo.java
  2. 4
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodpricemodel/BaseModelModpriceModelVo.java
  3. 2
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/AppBaseOutsourcingApplicationVo.java
  4. 32
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/AppBaseVesionVo.java
  5. 3
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/AppBaseVehicleActualDetailsVo.java
  6. 32
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehiVesionVo.java
  7. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AppCommonContractPageVo.java
  8. 11
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContract.java
  9. 33
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java
  10. 36
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeignFallback.java
  11. 38
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/flowable/CommonContractCompleteDto.java
  12. 24
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/flowable/CommonContractNodeQuery.java
  13. 26
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/flowable/CommonContractNodeVo.java
  14. 45
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/flowable/CommonContractTaskQuery.java
  15. 1
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/BillTypeEnum.java
  16. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java
  17. 30
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java
  18. 2
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigMapper.xml
  19. 12
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigService.java
  20. 27
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java
  21. 48
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java
  22. 1
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml
  23. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleService.java
  24. 73
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicleactualsales/BaseVehicleActualSalesService.java
  25. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.java
  26. 60
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.xml
  27. 40
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractRest.java
  28. 288
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java
  29. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.java
  30. 6
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml
  31. 29
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java
  32. 45
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdeposit/BusSalesOrderDepositService.java
  33. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.xml
  34. 7
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/bdmaterial/BdMaterial.java
  35. 78
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/purmrb/PurMrb.java
  36. 4
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/saloutstock/SalOutStock.java
  37. 32
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/stkinstock/StkInStock.java
  38. 10
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json
  39. 14
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_model.json
  40. 2
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/saloutstock/data_model.json
  41. 3
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json
  42. 6
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_model.json
  43. 9
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/TaskUserInfo.java
  44. 1
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  45. 70
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow/FlowableRest.java
  46. 155
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowtask/FlowTaskService.java
  47. 29
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmapplyinbound/ScmApplyInboundService.java
  48. 4
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionMapper.java
  49. 5
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java
  50. 6
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclereturn/ScmVehicleReturnService.java
  51. 25
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclestayinventory/ScmVehicleStayInventoryService.java
  52. 2
      anrui-system-ui/src/views/Home/Home.vue
  53. 51
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/AppCommonContractFeign.java
  54. 38
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/AppCommonContractFeignFallback.java
  55. 69
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/CommonContractInitVo.java
  56. 73
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/CrmCustomerFileDto.java
  57. 37
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/flowable/ContractDto.java
  58. 25
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/flowable/ContractQuery.java
  59. 47
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/flowable/ContractTaskQuery.java
  60. 32
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExterVesionVo.java
  61. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseVo.java
  62. 10
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/AppBaseModelModpriceFeign.java
  63. 3
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/ModelModPriceCompleteDto.java
  64. 5
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/ModelModpriceModelVo.java
  65. 32
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/ModelVehicleVersionVo.java
  66. 34
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/purchaseReturn/ScmReturnVersionVo.java
  67. 3
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/purchaseReturn/VehicleReturnDetailssVo.java
  68. 2
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/unsoldBuyout/UnsoldBuyoutDetailsListVo.java
  69. 32
      anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/unsoldBuyout/UnsoldVesionVo.java
  70. 42
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/contract/AppCommonContractRest.java
  71. 132
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/contract/AppCommonContractService.java
  72. 22
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/modelAdjust/AppBaseModelModpriceService.java
  73. 37
      anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/purchaseReturn/AppScmVehicleReturnService.java

32
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodprice/BaseModelVehicleVersionVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.base.api.basemodelmodprice;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/8/30 9:51
* @Description
*/
@Data
public class BaseModelVehicleVersionVo implements Vo {
private static final long serialVersionUID = -1925653992768754705L;
@ApiModelProperty("版本编码")
private Integer moduleVersion;
@ApiModelProperty("apk下载地址")
private String path;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("插件名称")
private String modulePluginName;
@ApiModelProperty("地址")
private String moduleAction;
private String json;
}

4
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basemodelmodpricemodel/BaseModelModpriceModelVo.java

@ -26,6 +26,7 @@
package com.yxt.anrui.base.api.basemodelmodpricemodel;
import com.yxt.anrui.base.api.basemodelmodprice.BaseModelVehicleVersionVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModel;
@ -69,4 +70,7 @@ public class BaseModelModpriceModelVo implements Vo {
private String incOrDecInPrice; // 价格增减数额
@ApiModelProperty("备注")
private String remarks; // 备注
private BaseModelVehicleVersionVo carDetailPage;
}

2
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/AppBaseOutsourcingApplicationVo.java

@ -60,4 +60,6 @@ public class AppBaseOutsourcingApplicationVo implements Vo {
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
private AppBaseVesionVo carDetailPage;
}

32
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseoutsourcingapplication/AppBaseVesionVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.base.api.baseoutsourcingapplication;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/8/30 11:00
* @Description
*/
@Data
public class AppBaseVesionVo implements Vo {
private static final long serialVersionUID = 6536128762018795190L;
@ApiModelProperty("版本编码")
private Integer moduleVersion;
@ApiModelProperty("apk下载地址")
private String path;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("插件名称")
private String modulePluginName;
@ApiModelProperty("地址")
private String moduleAction;
private String json;
}

3
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualdetails/AppBaseVehicleActualDetailsVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.base.api.basevehicleactualdetails;
import com.yxt.anrui.base.api.basevehicleactualsales.BaseVehiVesionVo;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -32,4 +33,6 @@ public class AppBaseVehicleActualDetailsVo implements Vo {
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
private BaseVehiVesionVo carDetailPage;
}

32
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehicleactualsales/BaseVehiVesionVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.base.api.basevehicleactualsales;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/8/30 10:37
* @Description
*/
@Data
public class BaseVehiVesionVo implements Vo {
private static final long serialVersionUID = 7281325868701017122L;
@ApiModelProperty("版本编码")
private Integer moduleVersion;
@ApiModelProperty("apk下载地址")
private String path;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("插件名称")
private String modulePluginName;
@ApiModelProperty("地址")
private String moduleAction;
private String json;
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/AppCommonContractPageVo.java

@ -1,5 +1,6 @@
package com.yxt.anrui.base.api.commoncontract;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@ -22,10 +23,14 @@ public class AppCommonContractPageVo implements Vo {
@ApiModelProperty("经办人")
private String handler;
@ApiModelProperty("车型")
private String model;
@ApiModelProperty("合同金额")
private String contractPrice;
@ApiModelProperty("是否显示办理按钮")
@JsonProperty("isShowUpdate")
private boolean isShowUpdate;
@ApiModelProperty("节点状态")

11
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContract.java

@ -96,4 +96,15 @@ public class CommonContract extends BaseEntity {
private BigDecimal price;
@ApiModelProperty("单台订金")
private BigDecimal oneDeposit;
@ApiModelProperty(value = "节点状态")
private String nodeState;
@ApiModelProperty(value = "节点id")
private String nodeId;
@ApiModelProperty(value = "流程id")
private String procDefId;
@ApiModelProperty(value = "实例id")
private String procInstId;
@ApiModelProperty(value = "任务id")
private String taskId;
}

33
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeign.java

@ -1,11 +1,16 @@
package com.yxt.anrui.base.api.commoncontract;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractCompleteDto;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeQuery;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeVo;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractTaskQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -150,7 +155,7 @@ public interface CommonContractFeign {
public ResultBean<PagerVo<AppCommonContractPageVo>> getContractList(@RequestBody PagerQuery<AppCommonContractQuery> pagerQuery);
@ApiOperation("移动端-初始化合同审核")
@PostMapping("/getContractInfo/{contractSid}/{userSid}")
@GetMapping("/getContractInfo/{contractSid}/{userSid}")
@ResponseBody
public ResultBean<AppCommonContractInitVo> getContractInfo(@PathVariable("contractSid") String contractSid, @PathVariable("userSid") String userSid);
@ -159,4 +164,30 @@ public interface CommonContractFeign {
@ResponseBody
public ResultBean saveContractInfo(@RequestBody AppCrmCustomerFileDto dto);
//====================移动端合同审核流程
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody CommonContractCompleteDto query);
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<CommonContractNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap CommonContractNodeQuery query);
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<CommonContractNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap CommonContractNodeQuery query);
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@Valid @RequestBody CommonContractTaskQuery query);
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody CommonContractTaskQuery query);
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody CommonContractTaskQuery query);
}

36
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/CommonContractFeignFallback.java

@ -1,5 +1,10 @@
package com.yxt.anrui.base.api.commoncontract;
import com.yxt.anrui.base.api.busvehicleapply.flow.GetNodeVo;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractCompleteDto;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeQuery;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeVo;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractTaskQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -8,6 +13,7 @@ import org.springframework.web.multipart.MultipartFile;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
import java.util.Map;
/**
@ -165,4 +171,34 @@ public class CommonContractFeignFallback implements CommonContractFeign {
public ResultBean saveContractInfo(AppCrmCustomerFileDto dto) {
return null;
}
@Override
public ResultBean complete(CommonContractCompleteDto query) {
return null;
}
@Override
public ResultBean<List<CommonContractNodeVo>> getPreviousNodesForReject(CommonContractNodeQuery query) {
return null;
}
@Override
public ResultBean<List<CommonContractNodeVo>> getNextNodesForSubmit(CommonContractNodeQuery query) {
return null;
}
@Override
public ResultBean taskReject(CommonContractTaskQuery query) {
return null;
}
@Override
public ResultBean revokeProcess(CommonContractTaskQuery query) {
return null;
}
@Override
public ResultBean breakProcess(CommonContractTaskQuery query) {
return null;
}
}

38
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/flowable/CommonContractCompleteDto.java

@ -0,0 +1,38 @@
package com.yxt.anrui.base.api.commoncontract.flowable;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/30 15:00
* @Description
*/
@Data
public class CommonContractCompleteDto implements Dto {
private static final long serialVersionUID = -1577957348084710482L;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
@NotBlank(message = "参数错误:orgSidPath")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
}

24
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/flowable/CommonContractNodeQuery.java

@ -0,0 +1,24 @@
package com.yxt.anrui.base.api.commoncontract.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/30 15:02
* @Description
*/
@Data
public class CommonContractNodeQuery implements Query {
private static final long serialVersionUID = 2719079015837709118L;
@ApiModelProperty(value = "环节定义id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

26
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/flowable/CommonContractNodeVo.java

@ -0,0 +1,26 @@
package com.yxt.anrui.base.api.commoncontract.flowable;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @Author dimengzhe
* @Date 2022/8/30 15:09
* @Description
*/
@Data
public class CommonContractNodeVo implements Vo {
private static final long serialVersionUID = -3011038115113343705L;
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

45
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/commoncontract/flowable/CommonContractTaskQuery.java

@ -0,0 +1,45 @@
package com.yxt.anrui.base.api.commoncontract.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/30 15:03
* @Description
*/
@Data
public class CommonContractTaskQuery implements Query {
private static final long serialVersionUID = 4020176288666396111L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
}

1
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/common/enums/BillTypeEnum.java

@ -19,6 +19,7 @@ public enum BillTypeEnum {
KCDDBGSQ("KCDDBG","库存地点变更申请"),
JYDDDJSQ("JYDDDJSQ","简易订单订金收取"),
JYDDCLYD("JYDDCLYD","简易订单车辆预定"),
XSDDHT("XSDDHT","销售订单合同"),
XSDD("XSDD","销售订单"),
;

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java

@ -415,7 +415,7 @@ public class BaseAccadjApplyService extends MybatisBaseService<BaseAccadjApplyMa
/**
* 发货组织:FStockOrgId (必填项)
*/
salOutStock.setFStockOrgId("101");
//salOutStock.setFStockOrgId("101");
List<SalOutStock.FEntity> fEntity=new ArrayList<>();

30
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretware/BaseManufacturerRetwareService.java

@ -293,11 +293,11 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
/**
* 需求组织:FRequireOrgId (必填项)
*/
purMrb.setFRequireOrgId( "101");
//purMrb.setFRequireOrgId( "101");
/**
* 采购组织:FPurchaseOrgId (必填项)
*/
purMrb.setFPurchaseOrgId("101");
//purMrb.setFPurchaseOrgId("101");
/**
* 供应商:FSupplierID (必填项)
*/
@ -305,23 +305,23 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
/**
* 接收方:FACCEPTORID
*/
purMrb.setFACCEPTORID("010001");
//purMrb.setFACCEPTORID("010001");
/**
* 结算方:FSettleId
*/
purMrb.setFSettleId("010001");
//purMrb.setFSettleId("010001");
/**
* 收款方:FCHARGEID
*/
purMrb.setFCHARGEID("010001");
//purMrb.setFCHARGEID("010001");
/**
* 货主:FOwnerIdHead (必填项)
*/
purMrb.setFOwnerIdHead("101");
//purMrb.setFOwnerIdHead("101");
/**
* 结算组织:FSettleOrgId (必填项)
*/
purMrb.setFSettleOrgId("101");
//purMrb.setFSettleOrgId("101");
List<PurMrb.FPURMRBENTRY> FPURMRBENTRY=new ArrayList<>();
PurMrb.FPURMRBENTRY fp=new PurMrb.FPURMRBENTRY();
/**
@ -335,7 +335,7 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
/**
* 库存单位:FUnitID (必填项)
*/
fp.setFUnitID("liang");
// fp.setFUnitID("liang");
/**
* 批号:FLot
*/
@ -347,15 +347,15 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
/**
* 补料数量:FREPLENISHQTY
*/
fp.setFREPLENISHQTY(1.0);
//fp.setFREPLENISHQTY(1.0);
/**
* 扣款数量:FKEAPAMTQTY
*/
fp.setFKEAPAMTQTY(1.0);
//fp.setFKEAPAMTQTY(1.0);
/**
* 计价单位:FPRICEUNITID (必填项)
*/
fp.setFPRICEUNITID("liang");
//fp.setFPRICEUNITID("liang");
/**
* 仓库:FSTOCKID
*/
@ -367,19 +367,19 @@ public class BaseManufacturerRetwareService extends MybatisBaseService<BaseManuf
/**
* 计价基本数量:FPriceBaseQty
*/
fp.setFPriceBaseQty(1.0);
//fp.setFPriceBaseQty(1.0);
/**
* 采购单位:FCarryUnitId (必填项)
*/
fp.setFCarryUnitId("liang");
//fp.setFCarryUnitId("liang");
/**
* 采购数量:FCarryQty
*/
fp.setFCarryQty(1.0);
//fp.setFCarryQty(1.0);
/**
* 采购基本数量:FCarryBaseQty
*/
fp.setFCarryBaseQty(1.0);
//fp.setFCarryBaseQty(1.0);
FPURMRBENTRY.add(fp);
/**
* 物料列表

2
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigMapper.xml

@ -585,7 +585,7 @@
FROM base_vehmodel_config bvc
WHERE bvc.modelSid = #{modelSid}
AND bvc.configurationItemsSid = #{configSid}
AND bvc.useOrgSid != #{useOrg}
AND bvc.useOrgSid != #{useOrg} and LENGTH(bvc.useOrgSid) >0
</select>
<select id="getCarConfigSummary" resultType="com.yxt.anrui.base.api.basemodelconfig.AppModelConfigListVo">
SELECT bmc.sid,

12
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelconfig/BaseModelConfigService.java

@ -558,8 +558,10 @@ public class BaseModelConfigService extends MybatisBaseService<BaseModelConfigMa
List<MoreConfigVo> moreConfigVos = baseMapper.getCompanyModelList(appModelConfigListVo.getModelSid(), appModelConfigListVo.getConfigSid(), orgSid, VehicleState.LockEnum.UN_LOCK.getCode());
for (MoreConfigVo moreConfigVo : moreConfigVos) {
String sid = moreConfigVo.getUseOrgSid();
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(sid).getData();
moreConfigVo.setCompanyName(sysOrganization.getName());
if(StringUtils.isNotBlank(sid)){
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(sid).getData();
moreConfigVo.setCompanyName(sysOrganization.getName());
}
if (StringUtils.isBlank(moreConfigVo.getProduceCarNum())) {
moreConfigVo.setProduceCarNum("0");
}
@ -842,8 +844,10 @@ public class BaseModelConfigService extends MybatisBaseService<BaseModelConfigMa
List<MoreConfigVo> moreConfigVos = baseMapper.getCompanyModelList(appModelConfigListVo.getModelSid(), appModelConfigListVo.getConfigSid(), orgSid, VehicleState.LockEnum.UN_LOCK.getCode());
for (MoreConfigVo moreConfigVo : moreConfigVos) {
String sid = moreConfigVo.getUseOrgSid();
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(sid).getData();
moreConfigVo.setCompanyName(sysOrganization.getName());
if(StringUtils.isNotBlank(sid)){
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(sid).getData();
moreConfigVo.setCompanyName(sysOrganization.getName());
}
if (StringUtils.isBlank(moreConfigVo.getProduceCarNum())) {
moreConfigVo.setProduceCarNum("0");
}

27
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemodelmodprice/BaseModelModpriceService.java

@ -27,6 +27,7 @@ package com.yxt.anrui.base.biz.basemodelmodprice;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basemodelmodprice.*;
@ -49,6 +50,8 @@ import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
@ -99,6 +102,8 @@ public class BaseModelModpriceService extends MybatisBaseService<BaseModelModpri
private SysProUrlFeign sysProUrlFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
public PagerVo<BaseModelModpriceVo> listPageVo(PagerQuery<BaseModelModpriceQuery> pq) {
BaseModelModpriceQuery query = pq.getParams();
@ -158,6 +163,24 @@ public class BaseModelModpriceService extends MybatisBaseService<BaseModelModpri
BaseModelModprice baseModelModprice = fetchBySid(sid);
BeanUtil.copyProperties(baseModelModprice, baseModelModpriceDetailVo);
List<BaseModelModpriceModelVo> baseModelModpriceModelVos = baseModelModpriceModelService.fetchByMainSid(sid);
//添加移动端车型页面信息
ResultBean<AppSubVersionVo> resultBean = appSubsetVersionFeign.selectLast();
AppSubVersionVo appSubVersionVo = resultBean.getData();
baseModelModpriceModelVos.removeAll(Collections.singleton(null));
if (!baseModelModpriceModelVos.isEmpty()) {
baseModelModpriceModelVos.stream().forEach(vos -> {
BaseModelVehicleVersionVo appVehicleVersionVo = new BaseModelVehicleVersionVo();
String modelSid = vos.getModelSid();
String configSid = vos.getConfigSid();
Map<String, Object> map = new HashMap<>();
map.put("modelSid", modelSid);
map.put("configSid", configSid);
map.put("selectType", 0);
appSubVersionVo.setJson(JSONObject.toJSONString(map));
BeanUtil.copyProperties(appSubVersionVo, appVehicleVersionVo);
vos.setCarDetailPage(appVehicleVersionVo);
});
}
baseModelModpriceDetailVo.setBaseModelModpriceModels(baseModelModpriceModelVos);
return rb.success().setData(baseModelModpriceDetailVo);
}
@ -240,7 +263,6 @@ public class BaseModelModpriceService extends MybatisBaseService<BaseModelModpri
messageFlowableQuery.setMsgContent(baseModelModprice.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, baseModelModprice);
return voResultBean;
}
if (r == 2) {
@ -338,8 +360,6 @@ public class BaseModelModpriceService extends MybatisBaseService<BaseModelModpri
messageFlowableQuery.setMsgContent(baseModelModprice.getApplyPeoName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, baseModelModprice);
}
return rb.success().setData(resultBean.getData());
} else {
@ -418,7 +438,6 @@ public class BaseModelModpriceService extends MybatisBaseService<BaseModelModpri
}
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, baseModelModprice);
return rb.success();
}
}

48
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseoutsourcingapplication/BaseOutsourcingApplicationService.java

@ -28,6 +28,7 @@ package com.yxt.anrui.base.biz.baseoutsourcingapplication;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.thread.ThreadUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.baseoutsourcingapplication.*;
@ -56,6 +57,8 @@ import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
@ -137,6 +140,8 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
private FileUploadComponent fileUploadComponent;
@Resource
private FinKingDeeFeign finKingDeeFeign;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
private QueryWrapper<BaseOutsourcingApplication> createQueryWrapper(BaseOutsourcingApplicationQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -510,8 +515,24 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
appMap.put("sid",bv.getBusinessSid());
bv.getFormVariables().put("app",appMap);
//================添加app相关参数
/* BaseOutsourcingApplicationDto dto = baseMapper.getBySid(bv.getBusinessSid());
ResultBean<List<GetNodeVo>> nextNodesForSubmit = getNextNodesForSubmit(dto);
List<GetNodeVo> datas = nextNodesForSubmit.getData();
GetNodeVo getNodeVo = datas.get(0);
List<String> candidateGroups = getNodeVo.getCandidateGroups();
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(candidateGroups.get(0));
userQuery.setOrgSidPath(bv.getOrgSidPath());
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData();
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
String taskDefKey = rb.getData().getTaskDefKey();
if(sysUserVos.size()==0){
bv.setTaskDefKey(rb.getData().getTaskDefKey());
bv.setTaskId(rb.getData().getTaskId());
return complete(bv);
}*/
BaseOutsourcingApplicationDto dto= baseMapper.getBySid(bv.getBusinessSid());
ResultBean<UpdateFlowFieldVo> rb = complete_handleProsess(bv,dto);
/* String taskDefKey = rb.getData().getTaskDefKey();
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData());
updateFlowFiled(stringObjectMap);
if ("Event_end".equals(taskDefKey)) {
@ -562,12 +583,23 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
// String msgSid = getMessage(uff, appMap, baseOutsourcingApplication);
//======================添加消息推送结束
}
*/
return rb;
} else {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
}
}
public ResultBean<UpdateFlowFieldVo> complete_handleProsess(BusinessVariables bv, BaseOutsourcingApplicationDto dto) {
ResultBean<List<GetNodeVo>> nextNodesForSubmit = getNextNodesForSubmit(dto);
List<GetNodeVo> datas = nextNodesForSubmit.getData();
GetNodeVo getNodeVo = datas.get(0);
List<String> candidateGroups = getNodeVo.getCandidateGroups();
ResultBean<UpdateFlowFieldVo> rb = flowableFeign.handleProsess(bv);
Map<String, Object> stringObjectMap = BeanUtil.beanToMap(rb.getData());
updateFlowFiled(stringObjectMap);
return rb;
}
/**
* 创建采购入库单
* @return
@ -854,6 +886,18 @@ public class BaseOutsourcingApplicationService extends MybatisBaseService<BaseOu
if (commonAppendixVos != null && commonAppendixVos.size() > 0) {
stringList.add(fileUploadComponent.getUrlPrefix()+commonAppendixVos.get(0).getFilePath());
}
ResultBean<AppSubVersionVo> resultBean = appSubsetVersionFeign.selectLast();
AppSubVersionVo appSubVersionVo = resultBean.getData();
AppBaseVesionVo appVehicleVersionVo = new AppBaseVesionVo();
String modelSid = vo.getModelSid();
String configSid = vo.getConfigSid();
Map<String, Object> map = new HashMap<>();
map.put("modelSid", modelSid);
map.put("configSid", configSid);
map.put("selectType", 0);
appSubVersionVo.setJson(JSONObject.toJSONString(map));
BeanUtil.copyProperties(appSubVersionVo, appVehicleVersionVo);
vo.setCarDetailPage(appVehicleVersionVo);
vo.setImages(stringList);
return rb.success().setData(vo);
}

1
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehicle/BaseVehicleMapper.xml

@ -599,6 +599,7 @@
WHERE bvc.modelSid = #{modelSid}
AND bvc.useOrgSid != #{useOrg}
group by bvc.useOrgSid
HAVING LENGTH(bvc.useOrgSid)> 0
</select>
<select id="getAppModelConfig"

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

@ -10,7 +10,6 @@ import com.yxt.anrui.base.api.basevehicle.*;
import com.yxt.anrui.base.api.basevehicle.app.AppBaseVehicleOrderVo;
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificate;
import com.yxt.anrui.base.api.basevehiclecertificate.BaseVehicleCertificateVo;
import com.yxt.anrui.base.api.basevehmodelconfig.BaseVehmodelVo;
import com.yxt.anrui.base.api.commonappendix.CommonAppendix;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
@ -858,8 +857,10 @@ public class BaseVehicleService extends MybatisBaseService<BaseVehicleMapper, Ba
List<MoreConfigVo> moreConfigVos = baseMapper.getCompanyModelList(record.getModelSid(), orgSid, VehicleState.LockEnum.UN_LOCK.getCode());
for (MoreConfigVo moreConfigVo : moreConfigVos) {
String sid = moreConfigVo.getUseOrgSid();
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(sid).getData();
moreConfigVo.setCompanyName(sysOrganization.getName());
if(StringUtils.isNotBlank(sid)){
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(sid).getData();
moreConfigVo.setCompanyName(sysOrganization.getName());
}
if (StringUtils.isBlank(moreConfigVo.getProduceCarNum())) {
moreConfigVo.setProduceCarNum("0");
}

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

@ -2,6 +2,7 @@ package com.yxt.anrui.base.biz.basevehicleactualsales;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
@ -24,9 +25,10 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlFeign;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
@ -36,7 +38,9 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.*;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
@ -71,6 +75,8 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
private SysProUrlFeign sysProUrlFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
/**
* 分页列表
@ -328,7 +334,6 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, baseVehicleActualSales);
return voResultBean;
}
if (r == 2) {
@ -406,7 +411,6 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
messageFlowableQuery.setMsgContent(baseVehicleActualSales.getApplicationName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, baseVehicleActualSales);
}
return rb.success().setData(resultBean.getData());
@ -519,7 +523,6 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, baseVehicleActualSales);
return rb.success();
}
}
@ -606,52 +609,22 @@ public class BaseVehicleActualSalesService extends MybatisBaseService<BaseVehicl
String orgSid = sysStaffOrgFeign.getPathSidByUserSid(vo.getUserSid()).getData();
//查询未售买断的车辆信息
List<AppBaseVehicleActualDetailsVo> records = baseVehicleActualDetailsService.getList(sid, orgSid);
records.removeAll(Collections.singleton(null));
ResultBean<AppSubVersionVo> resultBean = appSubsetVersionFeign.selectLast();
AppSubVersionVo appSubVersionVo = resultBean.getData();
if (!records.isEmpty()) {
records.stream().forEach(vos -> {
BaseVehiVesionVo appVehicleVersionVo = new BaseVehiVesionVo();
String modelSid = vos.getModelSid();
String configSid = vos.getConfigSid();
Map<String, Object> map = new HashMap<>();
map.put("modelSid", modelSid);
map.put("configSid", configSid);
map.put("selectType", 0);
appVehicleVersionVo.setJson(JSONObject.toJSONString(map));
BeanUtil.copyProperties(appSubVersionVo, appVehicleVersionVo);
vos.setCarDetailPage(appVehicleVersionVo);});}
vo.setRecords(records);
return rb.success().setData(vo);
}
public String getMessage(UpdateFlowFieldVo ufVo, Map<String, Object> appMap, BaseVehicleActualSales baseVehicleActualSales) {
//=====极光推送信息========================================参数组装
String procId = baseVehicleActualSales.getProcInstId();
ResultBean<List<LatestTaskVo>> resultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = resultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
//根据用户的sid查询用户的id
ResultBean<String> stringList1 = sysUserFeign.selectIdBySid(receiveSidList);
List<String> reveiveIdList = Arrays.asList(stringList1.getData().split(","));
MessageFlowableDto messageFlowableDto = new MessageFlowableDto();
MessageJsonDto messageJsonDto = new MessageJsonDto();
BeanUtil.copyProperties(ufVo, messageJsonDto);
//查询流程审批的页面操作地址组装json的参数
//根据taskDef和移动端标识
ResultBean<SysProUrlVo> selectUrlByKey = sysProUrlFeign.selectUrlByKey(ProcDefEnum.BASEVEHICLEACTUALSALES.getProDefId(), ufVo.getTaskDefKey(), "1", "2");
SysProUrlVo sysProUrlVo = selectUrlByKey.getData();
messageFlowableDto.setBusinessSid(baseVehicleActualSales.getSid());
messageFlowableDto.setApp_type("2");
if (sysProUrlVo.getUrl().contains("#")) {
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0));
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray();
;
messageJsonDto.setButtons(ints);
} else {
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl());
}
messageFlowableDto.setModuleSid(Arrays.asList(sysProUrlVo.getModulePluginName().split("#")).get(0));
messageJsonDto.setTaskName(ufVo.getNodeState());
messageJsonDto.setProcInsId(ufVo.getProcInsId());
messageJsonDto.setAppMap(appMap);
messageFlowableDto.setJson(messageJsonDto);
messageFlowableDto.setList(receiveSidList);
messageFlowableDto.setReceiveIdList(reveiveIdList);
messageFlowableDto.setModuleName("未售买断申请");
messageFlowableDto.setMsgContent("未售买断申请");
messageFlowableDto.setMsgTitle("未售买断申请");
messageFlowableDto.setCreateName(baseVehicleActualSales.getApplicationName());
messageFlowableDto.setTaskId(ufVo.getTaskId());
ResultBean<String> stringResultBean = messageFeign.getMessage(messageFlowableDto);
String msgSid = stringResultBean.getData();
return msgSid;
}
}

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.java

@ -9,6 +9,7 @@ import com.yxt.anrui.base.api.commoncontract.*;
import org.apache.ibatis.annotations.*;
import java.util.List;
import java.util.Map;
/**
* Project: anrui-base(安瑞基础) <br/>
@ -79,4 +80,6 @@ public interface CommonContractMapper extends BaseMapper<CommonContract> {
AppCommonContractInitVo getContractInfo(@Param("contractSid") String contractSid, @Param("staffSid") String staffSid);
int selectNum(String bill);
int updateFlowFiled(Map<String, Object> map);
}

60
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractMapper.xml

@ -3,7 +3,7 @@
<mapper namespace="com.yxt.anrui.base.biz.commoncontract.CommonContractMapper">
<insert id="saveList">
INSERT INTO common_contract(sid, contractNo, contractType, partyA, partyB, partyC, createBySid,
createDate, address, deposit, contractAmount, remarks)
createDate, address, deposit, contractAmount, remarks)
VALUES
<foreach collection="list" item="item" index="index" separator=",">
(UUID(),<!--sid-->
@ -39,19 +39,19 @@
</select>
<select id="listExcel" resultType="com.yxt.anrui.base.api.commoncontract.CommonContractExportVo">
SELECT cc.`contractNo`,
cc.`contractType`,
cc.`partyA`,
cc.`partyB`,
cc.`partyC`,
suser.`userName` creatName,
cc.`createDate`,
cc.`address`,
cc.`deposit`,
cc.`contractAmount`,
cc.`remarks`
cc.`contractType`,
cc.`partyA`,
cc.`partyB`,
cc.`partyC`,
suser.`userName` creatName,
cc.`createDate`,
cc.`address`,
cc.`deposit`,
cc.`contractAmount`,
cc.`remarks`
FROM common_contract cc
LEFT JOIN anrui_portal.`sys_user` suser
ON cc.createBySid = suser.`sid`
LEFT JOIN anrui_portal.`sys_user` suser
ON cc.createBySid = suser.`sid`
<where>
${ew.sqlSegment}
</where>
@ -68,13 +68,15 @@
</select>
<select id="getContractList" resultType="com.yxt.anrui.base.api.commoncontract.AppCommonContractPageVo">
SELECT sid AS contractSid,
contractNo AS contractId,
contractTypeKey AS contractType,
partyB,
handler,
contractAmount AS contractPrice,
nodeState
SELECT sid AS contractSid,
contractNo AS contractId,
contractType,
partyB,
modelName as model,
staffName as handler,
contractAmount AS contractPrice,
if(length(nodeState) > 0, nodeState, '待提交') as nodeState,
if(length(nodeState) > 0, false , true ) as isShowUpdate
FROM common_contract
<where>
${ew.sqlSegment}
@ -108,8 +110,24 @@
</delete>
<select id="selectNum" resultType="int">
select IFNULL(CAST(REPLACE(MAX(contractNo), #{bill}, '') AS SIGNED),0) as code
select IFNULL(CAST(REPLACE(MAX(contractNo), #{bill}, '') AS SIGNED), 0) as code
from common_contract
where contractNo LIKE concat(#{bill}, '%')
</select>
<update id="updateFlowFiled">
UPDATE common_contract
SET nodeState=#{nodeState}
, nodeId=#{taskDefKey}
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid = #{sid}
</update>
</mapper>

40
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractRest.java

@ -1,11 +1,18 @@
package com.yxt.anrui.base.biz.commoncontract;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.commonappendix.CommonAppendixVo;
import com.yxt.anrui.base.api.commonappendix.CommonAttachTypeEnum;
import com.yxt.anrui.base.api.commonappendix.PcCommonAppendixDto;
import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractCompleteDto;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeQuery;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeVo;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractTaskQuery;
import com.yxt.anrui.base.biz.commonappendix.CommonAppendixService;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailedFeign;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.base.utils.StringUtils;
@ -524,4 +531,37 @@ public class CommonContractRest implements CommonContractFeign {
ResultBean resultBean = commonContractService.saveContractInfo(dto);
return rb.success();
}
@Override
public ResultBean complete(CommonContractCompleteDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId(ProcDefEnum.CONTRACTAPPLY.getProDefId());
return commonContractService.complete(bv);
}
@Override
public ResultBean<List<CommonContractNodeVo>> getPreviousNodesForReject(CommonContractNodeQuery query) {
return commonContractService.getPreviousNodesForReject(query);
}
@Override
public ResultBean<List<CommonContractNodeVo>> getNextNodesForSubmit(CommonContractNodeQuery query) {
return commonContractService.getNextNodesForSubmit(query);
}
@Override
public ResultBean taskReject(CommonContractTaskQuery query) {
return commonContractService.taskReject(query);
}
@Override
public ResultBean revokeProcess(CommonContractTaskQuery query) {
return commonContractService.revokeProcess(query);
}
@Override
public ResultBean breakProcess(CommonContractTaskQuery query) {
return commonContractService.breakProcess(query);
}
}

288
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/commoncontract/CommonContractService.java

@ -1,11 +1,15 @@
package com.yxt.anrui.base.biz.commoncontract;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.base.api.commonappendix.CommonAppendix;
import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeQuery;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeVo;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractTaskQuery;
import com.yxt.anrui.base.biz.basemodelszconfig.BaseModelSzconfigService;
import com.yxt.anrui.base.biz.basetrailer.BaseTrailerService;
import com.yxt.anrui.base.biz.basevehiclebrand.BaseVehicleBrandService;
@ -25,8 +29,15 @@ import com.yxt.anrui.crm.api.crmcustomer.CrmCustomerFeign;
import com.yxt.anrui.crm.api.crmcustomerfile.CrmCustomerFileFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.flowable.api.flow.FlowableFeign;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.sysformlink.SysFormLinkFeign;
import com.yxt.anrui.flowable.api.sysformlink.SysFormStateVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
@ -46,6 +57,9 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import com.yxt.messagecenter.api.message.MessageFeign;
import com.yxt.messagecenter.api.message.MessageFlowVo;
import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
@ -130,6 +144,12 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
private CrmCustomerTempFeign crmCustomerTempFeign;
@Autowired
private BusDepositFictitiousFeign busDepositFictitiousFeign;
@Autowired
private FlowableFeign flowableFeign;
@Autowired
private MessageFeign messageFeign;
@Autowired
private FlowTaskFeign flowTaskFeign;
private QueryWrapper<CommonContract> createQueryWrapper(CommonContractQuery query) {
// todo: 这里根据具体业务调整查询条件
@ -990,7 +1010,7 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
qw.like("partyC", query.getNames());
}
if (StringUtils.isNotBlank(query.getStaffSid())) { // 业务员sid
qw.like("staffSid", query.getStaffSid());
qw.eq("staffSid", query.getStaffSid());
}
return qw;
}
@ -1006,43 +1026,47 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
String staffSid = sysUserFeign.getUserOrgInfoByUserSid(userSid).getData().getStaffSid();
AppCommonContractInitVo vo = baseMapper.getContractInfo(contractSid, staffSid);
String urlPrefix = fileUploadComponent.getUrlPrefix();
String[] split1 = vo.getAppdixUrl().split(",");
List<String> contract = new ArrayList<>();
List<String> contractImages = Arrays.asList(split1);
for (String contractImage : contractImages) {
String contractImageUrl = urlPrefix + contractImage;
contract.add(contractImageUrl);
vo.setUserSid(userSid);
if (StringUtils.isNotBlank(vo.getAppdixUrl())) {
String[] split1 = vo.getAppdixUrl().split(",");
List<String> contract = new ArrayList<>();
List<String> contractImages = Arrays.asList(split1);
for (String contractImage : contractImages) {
String contractImageUrl = urlPrefix + contractImage;
contract.add(contractImageUrl);
}
vo.setContractImages(contract);
}
vo.setContractImages(contract);
String[] split2 = vo.getSceneSignUrl().split(",");
List<String> siteSig = new ArrayList<>();
List<String> siteSigImages = Arrays.asList(split2);
for (String siteSigImage : siteSigImages) {
String siteSigImagesUrl = urlPrefix + siteSigImage;
siteSig.add(siteSigImagesUrl);
if (StringUtils.isNotBlank(vo.getSceneSignUrl())) {
String[] split2 = vo.getSceneSignUrl().split(",");
List<String> siteSig = new ArrayList<>();
List<String> siteSigImages = Arrays.asList(split2);
for (String siteSigImage : siteSigImages) {
String siteSigImagesUrl = urlPrefix + siteSigImage;
siteSig.add(siteSigImagesUrl);
}
vo.setSiteSigImages(siteSig);
}
vo.setSiteSigImages(siteSig);
if (vo.getCustomerKey().equals("1")) {
vo.setIdCardArchives(false);
if (StringUtils.isNotBlank(vo.getSceneSignUrl())) {
String[] split3 = vo.getSceneSignUrl().split(",");
List<String> idCard = new ArrayList<>();
List<String> idCardImages = Arrays.asList(split3);
for (String idCardImage : idCardImages) {
String idCardImagesUrl = urlPrefix + idCardImage;
idCard.add(idCardImagesUrl);
if (StringUtils.isNotBlank(vo.getCustomerKey())) {
if (vo.getCustomerKey().equals("1")) {
vo.setIdCardArchives(false);
if (StringUtils.isNotBlank(vo.getSceneSignUrl())) {
String[] split3 = vo.getSceneSignUrl().split(",");
List<String> idCard = new ArrayList<>();
List<String> idCardImages = Arrays.asList(split3);
for (String idCardImage : idCardImages) {
String idCardImagesUrl = urlPrefix + idCardImage;
idCard.add(idCardImagesUrl);
}
vo.setIdCardImages(idCard);
} else {
vo.setIdCardImages(new ArrayList<>());
}
vo.setIdCardImages(idCard);
} else {
vo.setIdCardImages(new ArrayList<>());
}
} else if (vo.getCustomerKey().equals("2")) {
vo.setIdCardArchives(true);
} else if (vo.getCustomerKey().equals("2")) {
vo.setIdCardArchives(true);
// 往里添加客户档案里的身份证信息
}
}
return vo;
}
@ -1056,9 +1080,8 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
@Transactional(rollbackFor = Exception.class)
public ResultBean saveContractInfo(AppCrmCustomerFileDto dto) {
ResultBean rb = ResultBean.fireFail();
AppUserOrgInfoVo data = sysUserFeign.getUserOrgInfoByUserSid(dto.getUserSid()).getData();
CommonContract commonContract = new CommonContract();
CommonContract commonContract = fetchBySid(dto.getContractSid());
commonContract.setContractNo(dto.getContractId());
commonContract.setPrice(dto.getPrice());
commonContract.setNum(Integer.valueOf(dto.getNumber()));
@ -1072,36 +1095,36 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
String s1 = "";
String s2 = "";
String s3 = "";
if (dto.getContractImages().size() > 0) {
if (dto.getContractImages() != null) {
for (String contractImage : dto.getContractImages()) {
if (contractImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
contractImage = contractImage.replace(fileUploadComponent.getUrlPrefix(), "");
}
s1 += contractImage + ",";
commonContract.setAppdixUrl(s1.substring(0, s1.length() - 1));
}
commonContract.setAppdixUrl(s1.substring(0, s1.length() - 1));
}
if (dto.getContractImages().size() > 0) {
if (dto.getContractImages() != null) {
for (String siteSigImages : dto.getSiteSigImages()) {
if (siteSigImages.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
siteSigImages = siteSigImages.replace(fileUploadComponent.getUrlPrefix(), "");
}
s2 += siteSigImages + ",";
commonContract.setSceneSignUrl(s2.substring(0, s2.length() - 1));
}
commonContract.setSceneSignUrl(s2.substring(0, s2.length() - 1));
}
if (dto.getContractImages().size() > 0) {
if (dto.getContractImages() != null) {
for (String idCardImage : dto.getIdCardImages()) {
if (idCardImage.indexOf(fileUploadComponent.getUrlPrefix()) > -1) {
idCardImage = idCardImage.replace(fileUploadComponent.getUrlPrefix(), "");
}
s3 += idCardImage + ",";
commonContract.setIdImagesUrl(s3.substring(0, s3.length() - 1));
}
commonContract.setIdImagesUrl(s3.substring(0, s3.length() - 1));
}
save(commonContract);
updateById(commonContract);
return rb.success();
}
@ -1287,4 +1310,183 @@ public class CommonContractService extends MybatisBaseService<CommonContractMapp
String billNo = Rule.getBillNo(bill, i);
return billNo;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
CommonContract commonContract = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
if (bv.getTaskId().equals(commonContract.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if (!"Event_end".equals(resultBean.getData().getTaskDefKey())) {
//极光推送
commonContract = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo,messageFlowVo);
ufVo.setProcInsId(commonContract.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("合同审核申请");
messageFlowableQuery.setMsgContent(commonContract.getStaffName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
messageFlowableQuery.setMsgTitle("业务中心");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
private int updateFlowFiled(Map<String, Object> map) {
return baseMapper.updateFlowFiled(map);
}
public ResultBean<List<CommonContractNodeVo>> getPreviousNodesForReject(CommonContractNodeQuery query) {
ResultBean<List<CommonContractNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.CONTRACTAPPLY.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<CommonContractNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), CommonContractNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<CommonContractNodeVo>> getNextNodesForSubmit(CommonContractNodeQuery query) {
ResultBean<List<CommonContractNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
bv.setFormVariables(variables);
bv.setModelId(ProcDefEnum.CONTRACTAPPLY.getProDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给getNodeVo
List<CommonContractNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), CommonContractNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(CommonContractTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
CommonContract commonContract = fetchBySid(businessSid);
if (commonContract == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = commonContract.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
flowTaskVo.setValues(variables);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
commonContract = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo,messageFlowVo);
String procId = commonContract.getProcInstId();
ufVo.setProcInsId(procId);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("合同审核申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
List<String> receiveSidList = Arrays.asList(nextNodeUserSids.split(","));
if(receiveSidList.size() == 1 && receiveSidList.get(0).equals(commonContract.getStaffSid())){
messageFlowableQuery.setMsgContent("您提交的"+messageFlowableQuery.getModuleName()+"已被驳回,请重新提交");
}else{
messageFlowableQuery.setMsgContent(commonContract.getStaffName()+"提交的"+messageFlowableQuery.getModuleName()+",请审批");
}
messageFlowableQuery.setMsgTitle("业务中心");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(CommonContractTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
CommonContract commonContract = fetchBySid(query.getBusinessSid());
String businessTaskId = commonContract.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(CommonContractTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
CommonContract commonContract = fetchBySid(query.getBusinessSid());
String businessTaskId = commonContract.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
Map<String, Object> map = BeanUtil.beanToMap(resultBean.getData());
updateFlowFiled(map);
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.java

@ -157,4 +157,6 @@ public interface BusSalesOrderMapper extends BaseMapper<BusSalesOrder> {
AppOrderDetailsVo getSaleOrderDetails(String sid);
int updateFlowFiled(Map<String, Object> map);
int selectNum(String bill);
}

6
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderMapper.xml

@ -207,4 +207,10 @@
</if>
WHERE sid = #{sid}
</update>
<select id="selectNum" resultType="int">
select IFNULL(CAST(REPLACE(MAX(billNo), #{bill}, '') AS SIGNED),0) as code
from bus_sales_order
where billNo LIKE concat(#{bill}, '%')
</select>
</mapper>

29
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorder/BusSalesOrderService.java

@ -46,6 +46,9 @@ import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderFeign;
import com.yxt.anrui.base.api.busvehicleorder.BusVehicleOrderVo;
import com.yxt.anrui.base.api.commoncontract.CommonContractBuscenterVo;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeign;
import com.yxt.anrui.base.common.enums.BillTypeEnum;
import com.yxt.anrui.base.common.utils.Rule;
import com.yxt.anrui.base.common.utils.domain.BillNo;
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousDetailsVo;
import com.yxt.anrui.buscenter.api.busdepositfictitious.BusDepositFictitiousDto;
import com.yxt.anrui.buscenter.api.bussalesorder.*;
@ -101,6 +104,7 @@ import com.yxt.anrui.portal.api.dictcommon.DictCommonFeign;
import com.yxt.anrui.portal.api.dictcommon.DictCommonVo;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
@ -1286,7 +1290,8 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
busSalesOrder.setCustomerPhoto(customerTempInfoVo.getCustomerPhoto());
busSalesOrder.setCustomerClass(customerTempInfoVo.getCustomerType());
busSalesOrder.setCustomerClassKey(customerTempInfoVo.getCustomerTypeKey());
busSalesOrder.setBillNo(generateBillNo(dto.getUserSid()).get("billNo_Num"));
String billNo = getApplyCode(dto.getUserSid());
busSalesOrder.setBillNo(billNo);
busSalesOrder.setCreateDate(new Date());
if ("0".equals(affiliatedType)) {
busSalesOrder.setAffiliatedCompany(dto.getAffiliatedOrgNameWrite());
@ -1359,6 +1364,20 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
return rb.success().setData(sid);
}
public String getApplyCode(String userSid) {
//获取分公司sid
ResultBean<String> resultBean = sysStaffOrgFeign.getPathSidByUserSid(userSid);
ResultBean<SysOrganizationVo> resultBean1 = sysOrganizationFeign.fetchBySid(resultBean.getData());
String orgCode = resultBean1.getData().getOrgCode();
BillNo b = new BillNo();
b.setOrgCode(orgCode);
b.setBillType(BillTypeEnum.XSDD.getBillType());
String bill = Rule.getBill(b);
int i = baseMapper.selectNum(bill);
String billNo = Rule.getBillNo(bill, i);
return billNo;
}
/**
* 初始化销售订单车型信息以及验证销售订单的车型信息是否发生了变化
*
@ -1482,7 +1501,13 @@ public class BusSalesOrderService extends MybatisBaseService<BusSalesOrderMapper
}
if ("3".equals(busSalesOrder.getType())) {
type = "2";
//查询数量
BusSalesOrderPrice busSalesOrderPrice = busSalesOrderPriceService.selectBySalesOrderSid(saleOrderSid);
if(busSalesOrderPrice != null){
if(busSalesOrderPrice.getQuantity() != null){
vo.setArrangeNumber(busSalesOrderPrice.getQuantity().toString());
}
}
}
vo.setOrderInfo(orderInfo);
vo.setState(type);

45
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderdeposit/BusSalesOrderDepositService.java

@ -150,8 +150,10 @@ public class BusSalesOrderDepositService extends MybatisBaseService<BusSalesOrde
if (!listVos.isEmpty()) {
for (AppBusSalesOrderDepositListVo listVo : listVos) {
String payPath = listVo.getPayPath();
List<String> stringList = Arrays.asList(payPath.split(","));
listVo.setEntrustImage(stringList);
if(StringUtils.isNotBlank(payPath)){
List<String> stringList = Arrays.asList(payPath.split(","));
listVo.setEntrustImage(stringList);
}
//根据销售订单
if (!busSalesOrder.getCustomerName().equals(listVo.getName())) {
listVo.setShowImage(true);
@ -182,16 +184,47 @@ public class BusSalesOrderDepositService extends MybatisBaseService<BusSalesOrde
if (busSalesOrder == null) {
return rb.setMsg("该销售订单单据不存在");
}
//先计算需补交订金是多少
//总的结转金额
BigDecimal makeUpDecimal = new BigDecimal("0");
if ("02".equals(dto.getDepositTypeKey())) {
List<AppBusSalesOrderDepositListDto> listVos = dto.getVirtualOrderList();
listVos.removeAll(Collections.singleton(null));
for (AppBusSalesOrderDepositListDto listDto : listVos) {
//查询付款人是否和客户一样
BusDeposit busDeposit = busDepositService.selectByBillSid(listDto.getDepositBillSid());
if (!busSalesOrder.getCustomerName().equals(busDeposit.getDraweeName())) {
if (listDto.getEntrustImage().isEmpty()) {
return rb.setMsg("选择的虚拟订金单中有付款人与该客户不一致,请上传款项支付委托书");
}
}
makeUpDecimal = makeUpDecimal.add(new BigDecimal(listDto.getPrice()));
}
}
BusSalesOrderDeposit busSalesOrderDeposit = baseMapper.selectByOrderSid(salesOrderSid);
String depositSid = "";
if (busSalesOrderDeposit == null) {
busSalesOrderDeposit = new BusSalesOrderDeposit();
BeanUtil.copyProperties(dto, busSalesOrderDeposit, "sid");
//计算需补交订金
if(StringUtils.isNotBlank(dto.getDepositAll())){
if("02".equals(dto.getDepositTypeKey())){
BigDecimal bigDecimalAll = new BigDecimal(dto.getDepositAll());
busSalesOrderDeposit.setMakeUpDeposit(bigDecimalAll.subtract(makeUpDecimal));
}
}
depositSid = busSalesOrderDeposit.getSid();
baseMapper.insert(busSalesOrderDeposit);
} else {
depositSid = busSalesOrderDeposit.getSid();
BeanUtil.copyProperties(dto, busSalesOrderDeposit, "sid");
//计算需补交订金
if(StringUtils.isNotBlank(dto.getDepositAll())){
if("02".equals(dto.getDepositTypeKey())){
BigDecimal bigDecimalAll = new BigDecimal(dto.getDepositAll());
busSalesOrderDeposit.setMakeUpDeposit(bigDecimalAll.subtract(makeUpDecimal));
}
}
baseMapper.updateById(busSalesOrderDeposit);
if ("01".equals(dto.getDepositTypeKey())) {
//将需补交订金设置为null
@ -208,14 +241,6 @@ public class BusSalesOrderDepositService extends MybatisBaseService<BusSalesOrde
List<AppBusSalesOrderDepositListDto> listVos = dto.getVirtualOrderList();
listVos.removeAll(Collections.singleton(null));
for (AppBusSalesOrderDepositListDto listDto : listVos) {
//查询付款人是否和客户一样
BusDeposit busDeposit = busDepositService.selectByBillSid(listDto.getDepositBillSid());
if (!busSalesOrder.getCustomerName().equals(busDeposit.getDraweeName())) {
if (listDto.getEntrustImage().isEmpty()) {
return rb.setMsg("选择的虚拟订金单中有付款人与该客户不一致,请上传款项支付委托书");
}
}
BusDepositFictitious busDepositFictitious = new BusDepositFictitious();
BeanUtil.copyProperties(listDto, busDepositFictitious, "sid");
busDepositFictitious.setDepositSid(depositSid);

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesordermakeup/BusSalesOrderMakeupMapper.xml

@ -68,6 +68,8 @@
NULL), IF(LENGTH(trim(GROUP_CONCAT(topPrice))) > 0, GROUP_CONCAT('上装价格:', topPrice),
NULL),
IF(LENGTH(trim(GROUP_CONCAT(moreConfig))) > 0, GROUP_CONCAT('更多配置:', moreConfig),
NULL),
IF(LENGTH(trim(GROUP_CONCAT(remarks))) > 0, GROUP_CONCAT('备注:', remarks),
NULL)) as topBean,
contractPath,
topName

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

@ -37,6 +37,13 @@ public class BdMaterial {
@NotBlank(message = "物料分组:FMaterialGroup (必填项)")
@JsonProperty("FMaterialGroup")
private String FMaterialGroup;
/**
*车辆类型:F_PAEZ_Base (必填项)
*/
@NotBlank(message = "车辆类型:F_PAEZ_Base ")
@JsonProperty("F_PAEZ_Base")
private String F_PAEZ_Base;
private final static BdMaterial bdMaterial = new BdMaterial();
static {
/**

78
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/kingdee/purmrb/PurMrb.java

@ -29,14 +29,14 @@ public class PurMrb {
public String FStockOrgId;
/**
* 需求组织:FRequireOrgId (必填项)
*/@NotBlank
@JsonProperty("FRequireOrgId")
public String FRequireOrgId;
*///@NotBlank
//@JsonProperty("FRequireOrgId")
//public String FRequireOrgId;
/**
* 采购组织:FPurchaseOrgId (必填项)
*/@NotBlank
@JsonProperty("FPurchaseOrgId")
public String FPurchaseOrgId;
*///@NotBlank
//@JsonProperty("FPurchaseOrgId")
//public String FPurchaseOrgId;
/**
* 供应商:FSupplierID (必填项)
*/@NotBlank
@ -44,29 +44,29 @@ public class PurMrb {
public String FSupplierID;
/**
* 接收方:FACCEPTORID
*/@NotBlank
@JsonProperty("FACCEPTORID")
public String FACCEPTORID;
*///@NotBlank
//@JsonProperty("FACCEPTORID")
//public String FACCEPTORID;
/**
* 结算方:FSettleId
*/@NotBlank
@JsonProperty("FSettleId")
public String FSettleId;
*///@NotBlank
//@JsonProperty("FSettleId")
//public String FSettleId;
/**
* 收款方:FCHARGEID
*/@NotBlank
@JsonProperty("FCHARGEID")
public String FCHARGEID;
*///@NotBlank
//@JsonProperty("FCHARGEID")
//public String FCHARGEID;
/**
* 货主:FOwnerIdHead (必填项)
*/@NotBlank
@JsonProperty("FOwnerIdHead")
public String FOwnerIdHead;
*///@NotBlank
//@JsonProperty("FOwnerIdHead")
//public String FOwnerIdHead;
/**
* 结算组织:FSettleOrgId (必填项)
*/@NotBlank
@JsonProperty("FSettleOrgId")
public String FSettleOrgId;
*///@NotBlank
//@JsonProperty("FSettleOrgId")
//public String FSettleOrgId;
/**
* 物料列表
*/@NotBlank
@ -90,7 +90,7 @@ public class PurMrb {
* 库存单位:FUnitID (必填项)
*/@NotBlank
@JsonProperty("FUnitID")
public String FUnitID;
public String FUnitID="liang";
/**
* 批号:FLot
*/@NotBlank
@ -103,19 +103,19 @@ public class PurMrb {
public double FRMREALQTY;
/**
* 补料数量:FREPLENISHQTY
*/@NotBlank
@JsonProperty("FREPLENISHQTY")
public double FREPLENISHQTY;
*///@NotBlank
//@JsonProperty("FREPLENISHQTY")
//public double FREPLENISHQTY;
/**
* 扣款数量:FKEAPAMTQTY
*/@NotBlank
@JsonProperty("FKEAPAMTQTY")
public double FKEAPAMTQTY;
*///@NotBlank
//@JsonProperty("FKEAPAMTQTY")
//public double FKEAPAMTQTY;
/**
* 计价单位:FPRICEUNITID (必填项)
*/@NotBlank
@JsonProperty("FPRICEUNITID")
public String FPRICEUNITID;
public String FPRICEUNITID="liang";
/**
* 仓库:FSTOCKID
*/@NotBlank
@ -128,24 +128,24 @@ public class PurMrb {
public String FStockStatusId;
/**
* 计价基本数量:FPriceBaseQty
*/@NotBlank
@JsonProperty("FPriceBaseQty")
public double FPriceBaseQty;
*///@NotBlank
//@JsonProperty("FPriceBaseQty")
//public double FPriceBaseQty;
/**
* 采购单位:FCarryUnitId (必填项)
*/@NotBlank
@JsonProperty("FCarryUnitId")
public String FCarryUnitId;
public String FCarryUnitId="liang";
/**
* 采购数量:FCarryQty
*/@NotBlank
@JsonProperty("FCarryQty")
public double FCarryQty;
*///@NotBlank
//@JsonProperty("FCarryQty")
//public double FCarryQty;
/**
* 采购基本数量:FCarryBaseQty
*/@NotBlank
@JsonProperty("FCarryBaseQty")
public double FCarryBaseQty;
*///@NotBlank
//@JsonProperty("FCarryBaseQty")
//public double FCarryBaseQty;
}

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

@ -34,8 +34,8 @@ public class SalOutStock {
private String FSaleDeptID;
/**
* 发货组织:FStockOrgId (必填项)
*/ @JsonProperty("FStockOrgId")
private String FStockOrgId;
*/ //@JsonProperty("FStockOrgId")
// private String FStockOrgId;
/**
* 付款方:FPayerID FCustomerID
*/ @JsonProperty("FPayerID")

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

@ -23,9 +23,9 @@ public class StkInStock {
/**
* // 收料组织:FStockOrgId (必填项)
*/@JsonProperty("FStockOrgId")
@NotBlank
public String FStockOrgId;
*///@JsonProperty("FStockOrgId")
// @NotBlank
// public String FStockOrgId;
/**
* // 采购部门:FPurchaseDeptId (必填项)
@ -47,9 +47,9 @@ public class StkInStock {
/**
* // 货主:FOwnerIdHead (必填项)
*/@JsonProperty("FOwnerIdHead")
@NotBlank
public String FOwnerIdHead;
*///@JsonProperty("FOwnerIdHead")
//@NotBlank
// public String FOwnerIdHead;
/**
* // 货主类型:FOwnerTypeIdHead (必填项)
@ -65,9 +65,9 @@ public class StkInStock {
/**
* // 结算组织:FSettleOrgId (必填项)
*/@JsonProperty("FSettleOrgId")
@NotBlank
public String FSettleOrgId;
*///@JsonProperty("FSettleOrgId")
//@NotBlank
//public String FSettleOrgId;
/**
* // 物料列表:FInStockEntry (必填项)
@ -88,7 +88,7 @@ public class StkInStock {
* // 库存单位:FUnitID (必填项)
*/@JsonProperty("FUnitID")
@NotBlank
public String FUnitID;
public String FUnitID="liang";
/**
* // 实收数量:FRealQty
@ -98,15 +98,15 @@ public class StkInStock {
/**
* // 计价数量:FPriceUnitQty
*/@JsonProperty("FPriceUnitQty")
@NotBlank
public String FPriceUnitQty;
*///@JsonProperty("FPriceUnitQty")
// @NotBlank
// public String FPriceUnitQty;
/**
* // 采购数量:FRemainInStockQty
*/@JsonProperty("FRemainInStockQty")
@NotBlank
public double FRemainInStockQty;
*///@JsonProperty("FRemainInStockQty")
// @NotBlank
//public double FRemainInStockQty;
/**
* // 批号:FLot

10
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_FPURMRBENTRY.json

@ -11,8 +11,8 @@
"FNumber": "@KD_Flot"
},
"FRMREALQTY": @KD_FRMREALQTY,
"FREPLENISHQTY": @KD_FREPLENISHQTY,
"FKEAPAMTQTY": @KD_FKEAPAMTQTY,
"FREPLENISHQTY": @KD_FRMREALQTY,
"FKEAPAMTQTY": @KD_FRMREALQTY,
"FPRICEUNITID": {
"FNumber": "@KD_FPRICEUNITID"
},
@ -24,12 +24,12 @@
},
"FIsReceiveUpdateStock": false,
"FGiveAway": false,
"FPriceBaseQty": @KD_FPriceBaseQty,
"FPriceBaseQty": @KD_FRMREALQTY,
"FCarryUnitId": {
"FNumber": "@KD_FCarryUnitId"
},
"FCarryQty": @KD_FCarryQty,
"FCarryBaseQty": @KD_FCarryBaseQty,
"FCarryQty": @KD_FRMREALQTY,
"FCarryBaseQty": @KD_FRMREALQTY,
"FBILLINGCLOSE": false,
"FIsStock": false
}

14
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/purmrb/data_model.json

@ -10,30 +10,30 @@
"FNumber": "@KD_FStockOrgId"
},
"FRequireOrgId": {
"FNumber": "@KD_FRequireOrgId"
"FNumber": "@KD_FStockOrgId"
},
"FPurchaseOrgId": {
"FNumber": "@KD_FPurchaseOrgId"
"FNumber": "@KD_FStockOrgId"
},
"FSupplierID": {
"FNumber": "@KD_FSupplierID"
},
"FACCEPTORID": {
"FNumber": "@KD_FACCEPTORID"
"FNumber": "@KD_FSupplierID"
},
"FSettleId": {
"FNumber": "@KD_FSettleId"
"FNumber": "@KD_FSupplierID"
},
"FCHARGEID": {
"FNumber": "@KD_FCHARGEID"
"FNumber": "@KD_FSupplierID"
},
"FOwnerTypeIdHead": "BD_OwnerOrg",
"FOwnerIdHead": {
"FNumber": "@KD_FOwnerIdHead"
"FNumber": "@KD_FStockOrgId"
},
"FPURMRBFIN": {
"FSettleOrgId": {
"FNumber": "@KD_FSettleOrgId"
"FNumber": "@KD_FStockOrgId"
},
"FSettleCurrId": {
"FNumber": "PRE001"

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

@ -14,7 +14,7 @@
"FNumber": "@KD_FSaleDeptID"
},
"FStockOrgId": {
"FNumber": "@KD_FStockOrgId"
"FNumber": "@KD_FSaleOrgId"
},
"FReceiverID": {
"FNumber": "@KD_FCustomerID"

3
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_FInStockEntry.json

@ -29,7 +29,8 @@
"FNumber": "@KD_FUnitID"
},
"FBILLINGCLOSE": false,
"FRemainInStockQty": @KD_FRemainInStockQty,
"FPriceUnitQty":@KD_FRealQty,
"FRemainInStockQty":@KD_FRealQty,
"FAPNotJoinQty": 1.0,
"FRemainInStockBaseQty": 1.0
}

6
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/stkinstock/data_model.json

@ -5,7 +5,7 @@
},
"FDate": "@KD_FDate",
"FStockOrgId": {
"FNumber": "@KD_FStockOrgId"
"FNumber": "@KD_FPurchaseOrgId"
},
"FDemandOrgId": {
"FNumber": ""
@ -30,11 +30,11 @@
},
"FOwnerTypeIdHead": "BD_OwnerOrg",
"FOwnerIdHead": {
"FNumber": "@KD_FOwnerIdHead"
"FNumber": "@KD_FPurchaseOrgId"
},
"FInStockFin": {
"FSettleOrgId": {
"FNumber": "@KD_FSettleOrgId"
"FNumber": "@KD_FPurchaseOrgId"
},
"FSettleCurrId": {
"FNumber": "PRE001"

9
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowtask/TaskUserInfo.java

@ -3,6 +3,15 @@ package com.yxt.anrui.flowable.api.flowtask;
public class TaskUserInfo {
private String assigneeName;
private String assigneeHeadImage;
private String assigneeSid;
public String getAssigneeSid() {
return assigneeSid;
}
public void setAssigneeSid(String assigneeSid) {
this.assigneeSid = assigneeSid;
}
public String getAssigneeName() {
return assigneeName;

1
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java

@ -31,6 +31,7 @@ public enum ProcDefEnum {
BASESHUNINVOICAPPLY("调车开票申请","process_u4xrvaso:1:400008"),
BASEVEHINSTALLMODPRICE("上装调价申请","process_s0a0svth:1:492508"),
SCMVEHREBATEWITHAPPLY("单车返利预提申请","process_qegarc7r:1:535004"),
CONTRACTAPPLY("合同审核","process_gd8c9xd5:1:545008"),
;
ProcDefEnum(String proDefName, String proDefId) {

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

@ -28,13 +28,14 @@ package com.yxt.anrui.flowable.biz.flow;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.flowable.api.flow.*;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowtask.FlowRecordVo;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService;
import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserQuery;
@ -43,6 +44,9 @@ import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiParam;
import org.flowable.bpmn.model.ExtensionAttribute;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.bpmn.model.UserTask;
import org.flowable.engine.TaskService;
import org.flowable.task.api.DelegationState;
import org.flowable.task.api.Task;
@ -52,10 +56,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.*;
/**
* Project: anrui-parent <br/>
@ -83,10 +84,8 @@ public class FlowableRest implements FlowableFeign {
private SysUserFeign sysUserFeign;
@Resource
protected TaskService taskService;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysOrganizationFeign sysOrganizationFeign;
@Resource
private ProcessService processService;
@Override
public ResultBean businessStart(BusinessVariables bv) {
return flowableService.businessStart( bv);
@ -221,9 +220,19 @@ public class FlowableRest implements FlowableFeign {
Logger log= LoggerFactory.getLogger(FlowableRest.class);
@Override
public ResultBean<UpdateFlowFieldVo> handleProsess(BusinessVariables dto) {
return handleProsess(dto,true);
}
/**
*
* @param dto
* @param b 是否连续跳转环节
* @return
*/
public ResultBean<UpdateFlowFieldVo> handleProsess(BusinessVariables dto,boolean b) {
UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
ResultBean rb = ResultBean.fireFail();
// Map<String, Object> formVariables = dto.getFormVariables();
// Map<String, Object> formVariables = dto.getFormVariables();
String taskId = dto.getTaskId();
if (StringUtils.isBlank(taskId)) {
@ -271,7 +280,7 @@ public class FlowableRest implements FlowableFeign {
return rb.setMsg("任务不存在");
}
String assignee = task.getAssignee();
if(StringUtils.isNotBlank(assignee)&& assignee.indexOf(userSid)<0){
if(b&&(StringUtils.isNotBlank(assignee)&& assignee.indexOf(userSid)<0)){
return rb.setMsg("当前用户不是环节的待办人,不能进行办理操作!");
}
String nodeState = "";
@ -309,6 +318,42 @@ public class FlowableRest implements FlowableFeign {
vo.setNodeState(FlowComment.SETTLE.getRemark());
}
}
//ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(dto.getInstanceId(), dto.getModelId());
List<FlowElement> flowElements = processService.calApprovePath(dto.getModelId(), dto.getModelId(),
dto.getFormVariables());
boolean contains=false;
for(int i=0;i<flowElements.size();i++){
FlowElement flowElement = flowElements.get(i);
String id = flowElement.getId();
if(taskDefKey.equals(id)&&i+1<flowElements.size()){
FlowElement flowElement1 = flowElements.get(i + 1);
if(flowElement1 instanceof UserTask){
UserTask userTask=(UserTask)flowElement1;
List<String> candidateGroups = userTask.getCandidateGroups();
List<SysUserVo> sysUserVoLists=new ArrayList<>();
for(String roleSid:candidateGroups){
UserQuery userQuery = new UserQuery();
userQuery.setRoleSid(roleSid);
userQuery.setOrgSidPath(dto.getOrgSidPath());
List<SysUserVo> sysUserVos = sysUserFeign.getUserByRole(userQuery).getData();
sysUserVoLists.addAll(sysUserVos);
}
if(sysUserVoLists.size()==1&&sysUserVoLists.get(0).getSid().equals(nextUserSid)){
contains=true;
break;
}
}
}
if(contains){
break;
}
}
if(contains){
dto.setUserSid(nextUserSid);
dto.setTaskId(vo.getTaskId());
dto.setTaskDefKey(taskDefKey);
return handleProsess(dto,false);
}
vo.setProcInsId(instanceId);
vo.setProcDefId(task.getProcessDefinitionId());
vo.setNodeState(nodeState);
@ -316,7 +361,6 @@ public class FlowableRest implements FlowableFeign {
vo.setNextNodeUserSids(nextUserSid);
return rb.success().setData(vo);
}
@Override
public ResultBean<UpdateFlowFieldVo> revokeProcess(com.yxt.anrui.flowable.api.flowtask.FlowTaskVo fl) {
ResultBean rb = ResultBean.fireFail();

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

@ -10,6 +10,7 @@ import com.yxt.anrui.flowable.api.flowcomment.FlowCommentDto;
import com.yxt.anrui.flowable.api.flowtask.*;
import com.yxt.anrui.flowable.api.sysform.SysForm;
import com.yxt.anrui.flowable.api.sysprourl.SysProUrlVo;
import com.yxt.anrui.flowable.biz.flow.FlowableService;
import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.biz.sysdeployform.SysDeployFormService;
import com.yxt.anrui.flowable.biz.sysprourl.SysProUrlService;
@ -110,7 +111,8 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
private SysStaffOrgFeign sysStaffOrgFeign;
@Resource
private SysOrganizationFeign sysOrganizationFeign;
@Resource
private FlowableService flowableService;
public ResultBean getProcessCirculationNodesByMap(BusinessVariables bv) {
String modelId = null;
if (bv.getModelId()!= null) {
@ -272,6 +274,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
for( SysUserVo data:data1){
TaskUserInfo taskUserInfo=new TaskUserInfo();
taskUserInfo.setAssigneeName(data.getName());
taskUserInfo.setAssigneeSid(data.getSid());
if(!StringUtils.isBlank(data.getHeadImage())){
taskUserInfo.setAssigneeHeadImage(fileUploadComponent.getUrlPrefix() +data.getHeadImage());
}
@ -1113,6 +1116,14 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
* @param flowTaskVo
*/
public ResultBean<List<LatestTaskVo>> taskReject(FlowTaskVo flowTaskVo) {
return taskReject_(flowTaskVo,false);
}
/**
* 驳回任务
*
* @param flowTaskVo
*/
public ResultBean<List<LatestTaskVo>> taskReject_(FlowTaskVo flowTaskVo,boolean b) {
// 当前任务 task
Task task = taskService.createTaskQuery().taskId(flowTaskVo.getTaskId()).singleResult();
if (task.isSuspended()) {
@ -1230,18 +1241,38 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
// 最近环节
parentUserTaskList.forEach(item -> {
Map<String, Object> map2 = flowTaskMapper.getTaskByDefKey(task.getProcessInstanceId(), targetIds.get(0));
Map<String, Object> map = flowTaskMapper.getHistTaskByID(task.getProcessInstanceId(), targetIds.get(0));
String assignee_ =item.getAssignee();
if(map.get("ASSIGNEE_")!=null){
assignee_ = map.get("ASSIGNEE_").toString();
}
// String assignee_ = map.get("ASSIGNEE_").toString();
String id_ = map2.get("id_").toString();
/* List<FlowElement> flowElements = processService.calApprovePath(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId(),
flowTaskVo.getValues());
for(int i=0;i<flowElements.size();i++){
FlowElement flowElement = flowElements.get(i);
System.out.println(flowElement.getId());
}*/
ResultBean<List<LatestTaskVo>> listResultBean_2=null;
if(flowTaskVo.getUserSid().equals(assignee_)){
flowTaskVo.setTaskId(id_);
flowTaskVo.setUserSid(assignee_);
flowTaskVo.setTargetKey(item.getId());
listResultBean_2= taskReject_(flowTaskVo, true);
}else{taskService.setAssignee(id_, assignee_);}
LatestTaskVo latestTaskVo = new LatestTaskVo();
latestTaskVo.setASSIGNEE_(item.getAssignee());
// latestTaskVo.setId_(item.getId());
Map<String, Object> map = flowTaskMapper.getHistTaskByID(task.getProcessInstanceId(), targetIds.get(0));
Map<String, Object> map2 = flowTaskMapper.getTaskByDefKey(task.getProcessInstanceId(), targetIds.get(0));
String id_ = map2.get("id_").toString();
latestTaskVo.setId_(id_);
String assignee_ = map.get("ASSIGNEE_").toString();
taskService.setAssignee(id_, assignee_);
latestTaskVo.setName_(item.getName());
latestTaskVo.setTask_def_key_(item.getId());
latestTaskVo.setIncomingSourceRef(item.getIncomingFlows().get(0).getSourceRef());
latestTaskVo.setId_(listResultBean_2!=null?listResultBean_2.getData().get(0).getId_():id_);
if(b){
taskService.setAssignee(id_, assignee_);
}
latestTaskVo.setName_(listResultBean_2!=null?listResultBean_2.getData().get(0).getName_():item.getName());
latestTaskVo.setTask_def_key_(listResultBean_2!=null?listResultBean_2.getData().get(0).getTask_def_key_():item.getId());
latestTaskVo.setIncomingSourceRef(listResultBean_2!=null?listResultBean_2.getData().get(0).getIncomingSourceRef():item.getIncomingFlows().get(0).getSourceRef());
latestTaskList.add(latestTaskVo);
});
} catch (FlowableObjectNotFoundException e) {
@ -1335,13 +1366,11 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
return historicActivityInstance.getTaskId();
}
// @Transactional(rollbackFor = Exception.class)
public ResultBean<List<LatestTaskVo>> revokeProcess(FlowTaskVo flowTaskVo) {
public ResultBean<List<LatestTaskVo>> revokeProcess(FlowTaskVo flowTaskVo,int j) {
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery().taskId(flowTaskVo.getTaskId()).singleResult();
Execution execution = runtimeService.createExecutionQuery().executionId(historicTaskInstance.getExecutionId()).singleResult();
DelegateExecution delegateExecution = (DelegateExecution) execution;
if(delegateExecution==null){
if (delegateExecution == null) {
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("流程已办结,不能撤回!").setData(new ArrayList<>());
}
// 获取当前节点的activityId,即xml中每个标签的ID
@ -1350,21 +1379,86 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
// taskService.addComment(currentTask.getId(), execution.getProcessInstanceId(), body.get("msg").toString());
// FlowNode flowNode2 = (FlowNode)bpmnModel.getFlowElement(sourceRef);
String taskId = getTaskId(currentActivityId, historicTaskInstance.getProcessInstanceId(), historicTaskInstance.getProcessDefinitionId());
if(StringUtils.isBlank(taskId)){
if (StringUtils.isBlank(taskId)) {
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("流程找不到上一环节,撤回操作失败!").setData(new ArrayList<>());
}
HistoricTaskInstance historicTaskInstance1 = historyService.createHistoricTaskInstanceQuery().taskId(taskId).singleResult();
String assignee = historicTaskInstance1.getAssignee();
String userSid = flowTaskVo.getUserSid();
if (!assignee.equals(userSid)) {
ResultBean<FlowRecordVo> flowRecordVoResultBean = flowableService.flowRecord(flowTaskVo.getInstanceId(), flowTaskVo.getInstanceId());
List<FlowTask> flowList = flowRecordVoResultBean.getData().getFlowList();
String ybrsid="";
int ii=0;
FlowTask flowTask_1 = flowList.get(j+1);
List<TaskUserInfo> taskUserInfos_1 = flowTask_1.getTaskUserInfos();
TaskUserInfo taskUserInfo_1 = taskUserInfos_1.get(0);
FlowTask flowTask_0 = flowList.get(j);
List<TaskUserInfo> taskUserInfos_0 = flowTask_0.getTaskUserInfos();
TaskUserInfo taskUserInfo_0 = taskUserInfos_0.get(0);
String assigneeSid1 = taskUserInfo_1.getAssigneeSid();
String assigneeSid0 = taskUserInfo_0.getAssigneeSid();
/* if(assigneeSid1.equals(assigneeSid0)){
ii=1;
ybrsid=userSid;
}else{
ybrsid=assigneeSid1;
}*/
if(!assigneeSid1.equals(assigneeSid0)){
ybrsid=assignee;
}else{
for(int i=1;i<flowList.size();i++){
FlowTask flowTask = flowList.get(i);
List<TaskUserInfo> taskUserInfos = flowTask.getTaskUserInfos();
TaskUserInfo taskUserInfo = taskUserInfos.get(0);
if(assigneeSid0.equals(taskUserInfo.getAssigneeSid())){
ii++;
continue;
}else{
ybrsid=flowList.get(i).getTaskUserInfos().get(0).getAssigneeSid();
break;
}
}
}
if (!ybrsid.equals(userSid)) {
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("您不是上一环节处理人,不能进行撤回操作!").setData(new ArrayList<>());
} else {
ResultBean<List<LatestTaskVo>> listResultBean = null;
for(int i=0;i<=ii;i++){
listResultBean = revokeProcess_(historicTaskInstance.getProcessInstanceId(),userSid);
}
return listResultBean;
}
}
public ResultBean<List<LatestTaskVo>> revokeProcess(FlowTaskVo flowTaskVo) {
return revokeProcess(flowTaskVo,0);
}
/* private ResultBean<List<LatestTaskVo>> getListResultBean(FlowTaskVo flowTaskVo, String assignee, ResultBean<List<LatestTaskVo>> listResultBean) {
List<LatestTaskVo> data = listResultBean.getData();
LatestTaskVo latestTaskVo = data.get(0);
flowTaskVo.setTaskId(latestTaskVo.getId_());
flowTaskVo.setUserSid(assignee);
// ResultBean<List<LatestTaskVo>> listResultBean1 = revokeProcess(flowTaskVo);
LatestTaskVo latestTaskVo2 = data.get(0);
String assignee_ = latestTaskVo2.getASSIGNEE_();
if(!assignee_.equals(assignee)){
return getListResultBean(flowTaskVo, assignee, listResultBean);
}
return listResultBean1;
}*/
// @Transactional(rollbackFor = Exception.class)
private ResultBean<List<LatestTaskVo>> revokeProcess_( String processInstanceId,
String assignee ) {
// 流程回退到上一个节点,审批人继续审批
/* runtimeService.createChangeActivityStateBuilder().processInstanceId(historicTaskInstance.getProcessInstanceId())
.moveActivityIdTo(currentActivityId,sourceRef).changeState();
*/
// 获取流程定义信息
String processInstanceId = historicTaskInstance.getProcessInstanceId();
Task task = taskService.createTaskQuery().processInstanceId(processInstanceId).singleResult();
ProcessDefinition processDefinition = repositoryService
.createProcessDefinitionQuery()
@ -1395,7 +1489,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}
// 如果流程已经结束,则得到结束节点
if (historyService.createHistoricProcessInstanceQuery().finished()
.processInstanceId(task.getProcessInstanceId()).count() > 0) {
.processInstanceId(processInstanceId).count() > 0) {
return new ResultBean<List<LatestTaskVo>>().fail().setMsg("当前已经结束不能撤回").setData(new ArrayList<>());
}
// 获取活动 ID 即节点 Key
@ -1403,7 +1497,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
parentUserTaskList.forEach(item -> parentUserTaskKeyList.add(item.getId()));
// 获取全部历史节点活动实例,即已经走过的节点历史,数据采用开始时间升序
List<HistoricTaskInstance> historicTaskInstanceList = historyService.createHistoricTaskInstanceQuery()
.processInstanceId(task.getProcessInstanceId())
.processInstanceId(processInstanceId)
.orderByHistoricTaskInstanceStartTime().asc().list();
// 数据清洗,将回滚导致的脏数据清洗掉
List<String> lastHistoricTaskInstanceList = FlowableUtils.historicTaskInstanceClean(allElements, historicTaskInstanceList);
@ -1437,7 +1531,7 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
UserTask oneUserTask = parentUserTaskList.get(0);
// 获取所有正常进行的任务节点 Key,这些任务不能直接使用,需要找出其中需要撤回的任务
List<Task> runTaskList = taskService.createTaskQuery()
.processInstanceId(task.getProcessInstanceId()).list();
.processInstanceId(processInstanceId).list();
List<String> runTaskKeyList = new ArrayList<>();
runTaskList.forEach(item -> runTaskKeyList.add(item.getTaskDefinitionKey()));
// 需驳回任务列表
@ -1459,10 +1553,14 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
}));
// 设置撤回意见
currentTaskIds.forEach(item -> {
taskService.addComment(item, historicTaskInstance.getProcessInstanceId(),
taskService.addComment(item, processInstanceId,
FlowComment.RECALL.getType(), "撤回办理");
// 设置实际办理人
taskService.setAssignee(item, userSid);
/* if(assignee.equals("0d8d8119-d476-47ce-89c2-075cd809dda6")){
taskService.setAssignee(item, assignee);
}else{*/
taskService.setAssignee(item, assignee);
/* }*/
});
// 最近环节
@ -1472,14 +1570,14 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
if (targetIds.size() > 1) {
// 1 对 多任务跳转,currentIds 当前节点(1),targetIds 跳转到的节点(多)
runtimeService.createChangeActivityStateBuilder()
.processInstanceId(task.getProcessInstanceId()).
.processInstanceId(processInstanceId).
moveSingleActivityIdToActivityIds(currentIds.get(0), targetIds).changeState();
}
// 如果父级任务只有一个,因此当前任务可能为网关中的任务
if (targetIds.size() == 1) {
// 1 对 1 或 多 对 1 情况,currentIds 当前要跳转的节点列表(1或多),targetIds.get(0) 跳转到的节点(1)
runtimeService.createChangeActivityStateBuilder()
.processInstanceId(task.getProcessInstanceId())
.processInstanceId(processInstanceId)
.moveActivityIdsToSingleActivityId(currentIds, targetIds.get(0)).changeState();
}
// 最近环节
@ -1491,8 +1589,13 @@ public class FlowTaskService extends MybatisBaseService<FlowTaskMapper, FlowTask
latestTaskVo.setTask_def_key_(item.getId());
latestTaskVo.setIncomingSourceRef(item.getIncomingFlows().get(0).getSourceRef());
Map<String, Object> task_map = flowTaskMapper.getTaskByDefKey(historicTaskInstance.getProcessInstanceId(), item.getId());
taskService.setAssignee(task_map.get("id_").toString(), userSid);
Map<String, Object> task_map = flowTaskMapper.getTaskByDefKey(processInstanceId, item.getId());
/* if(assignee.equals("0d8d8119-d476-47ce-89c2-075cd809dda6")){
taskService.setAssignee(task_map.get("id_").toString(), assignee);
}else{*/
taskService.setAssignee(task_map.get("id_").toString(), assignee);
/* }*/
latestTaskVo.setId_(task_map.get("id_").toString());
latestTaskList.add(latestTaskVo);
});

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

@ -524,23 +524,23 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
private StkInStock createStkInStock(ScmApplyInbound scmApplyInbound, List<ScmApplyInboundVehicleDto> scmApplyInboundVehicleDtos) {
StkInStock stkInStock=new StkInStock();
try {
stkInStock.setFPurchaseOrgId("101");
stkInStock.setFStockOrgId("101");
stkInStock.setFPurchaseDeptId("05.04");
stkInStock.setFSupplierId("010001");
stkInStock.setFPurchaseOrgId("101");//采购组织
// stkInStock.setFStockOrgId("101");// 收料组织
stkInStock.setFPurchaseDeptId("05.04");// 采购部门
stkInStock.setFSupplierId("010001");// 供应商
stkInStock.setFDate(scmApplyInbound.getApplicationDate());
stkInStock.setFOwnerIdHead("101");
stkInStock.setFSettleOrgId("101");
// stkInStock.setFOwnerIdHead("101");// 货主
// stkInStock.setFSettleOrgId("101"); // 结算组织
List<StkInStock.FInStockEntry> FInStockEntry=new ArrayList<>();
for(ScmApplyInboundVehicleDto s:scmApplyInboundVehicleDtos){
StkInStock.FInStockEntry fise=new StkInStock.FInStockEntry();
fise.setFMaterialId(s.getVinNo());
fise.setFRealQty(1.0);
fise.setFPriceUnitQty("1");
fise.setFRemainInStockQty(1.0);
fise.setFLot("1234567890");
fise.setFStockId("CK001");
fise.setFUnitID("liang");
fise.setFMaterialId(s.getVinNo());// 物料编码
fise.setFRealQty(1.0);// 实收数量
//fise.setFPriceUnitQty("1");// 计价数量
//fise.setFRemainInStockQty(1.0);// 采购数量
fise.setFLot("1234567890");// 批号
fise.setFStockId("CK001");// 仓库
//fise.setFUnitID("liang");// 库存单位
FInStockEntry.add(fise);
}
stkInStock.setFInStockEntry(FInStockEntry);
@ -563,10 +563,11 @@ public class ScmApplyInboundService extends MybatisBaseService<ScmApplyInboundMa
BdMaterial bm=new BdMaterial();
bm.setFCreateOrgId("100");//创建机构
ResultBean<BaseVehicle> baseVehicleResultBean = baseVehicleFeign.selectByVinNoAndOrgSid(s.getVinNo(),scmApplyInbound.getUseOrgSid());
bm.setFName(baseVehicleResultBean.getData().getModelName());//物料名称
bm.setFName(baseVehicleResultBean.getData().getVinNo());//物料名称
bm.setFMaterialGroup("03");//物料分组
bm.setFUseOrgId("100");//使用组织
bm.setTOrgIds("100020");//欧曼黑龙江
bm.setF_PAEZ_Base("牵引");//车辆类型
list.add(bm);
}
}catch (Exception e){

4
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionMapper.java

@ -116,6 +116,6 @@ public interface ScmVehicleGressionMapper extends BaseMapper<ScmVehicleGression>
List<ScmVehicleGressionVo> getlastTimeEqual(@Param("vinNo") String vinNo, @Param("targetLocationSid") String targetLocationSid);
@Select("SELECT count(*) FROM scm_vehicle_gression WHERE useOrgSid = #{useOrgSid} and handleState = '1' ")
int getToDoNum(@Param("useOrgSid") String useOrgSid);
@Select("SELECT count(*) FROM scm_vehicle_gression WHERE useOrgSid = #{useOrgSid} and createBySid = #{userSid} and handleState = '1' ")
int getToDoNum(@Param("useOrgSid") String useOrgSid, @Param("userSid") String userSid);
}

5
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclegression/ScmVehicleGressionService.java

@ -665,7 +665,6 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
messageFlowableQuery.setMsgContent(scmVehicleGression.getApplicantName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, scmVehicleGression);
return voResultBean;
}
if (r == 2) {
@ -769,7 +768,6 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
messageFlowableQuery.setMsgContent(scmVehicleGression.getApplicantName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, scmVehicleGression);
}
return rb.success().setData(resultBean.getData());
@ -874,7 +872,6 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
}
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(ufVo, appMap, scmVehicleGression);
return rb.success();
}
}
@ -1055,7 +1052,7 @@ public class ScmVehicleGressionService extends MybatisBaseService<ScmVehicleGres
public ResultBean<String> getToDoNum(String userSid) {
ResultBean rb = ResultBean.fireFail();
String useOrgSid = sysStaffOrgFeign.getPathSidByUserSid(userSid).getData();
int count = baseMapper.getToDoNum(useOrgSid);
int count = baseMapper.getToDoNum(useOrgSid,userSid);
return rb.success().setData(String.valueOf(count));
}

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

@ -268,7 +268,6 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
messageFlowableQuery.setMsgContent(scmVehicleReturn.getApplicationName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(uff, appMap, scmVehicleReturn);
return resultBean1;
}
return submitBusinessData(scmVehicleReturnDto, busSid, orgSidPath, variables);
@ -426,8 +425,6 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
messageFlowableQuery.setMsgContent(scmVehicleReturn.getApplicationName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
// String msgSid = getMessage(uff, appMap, scmVehicleReturn);
}
return rb1;
} else {
@ -749,8 +746,6 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
}
messageFlowableQuery.setMsgTitle("供应链");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
String msgSid = getMessage(uff, appMap, scmVehicleReturn);
return resultBean;
} else {
return ResultBean.fireFail().setMsg("操作失败,提交的数据不一致!");
@ -779,7 +774,6 @@ public class ScmVehicleReturnService extends MybatisBaseService<ScmVehicleReturn
messageFlowableDto.setModuleAction(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(0));
List<Integer> codesInteger = Arrays.asList(Arrays.asList(sysProUrlVo.getUrl().split("#")).get(1).split(",")).stream().map(Integer::parseInt).collect(Collectors.toList());
int[] ints = codesInteger.stream().mapToInt(Integer::valueOf).toArray();
;
messageJsonDto.setButtons(ints);
} else {
messageFlowableDto.setModuleAction(sysProUrlVo.getUrl());

25
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehiclestayinventory/ScmVehicleStayInventoryService.java

@ -186,17 +186,19 @@ public class ScmVehicleStayInventoryService extends MybatisBaseService<ScmVehicl
// 查询上一次的盘库人,盘库时间
List<ScmVehicleStayInventoryVo> scmVehicleStayInventoryVos = selInventory(record.getVin(), record.getId(), useOrgSid);
if (scmVehicleStayInventoryVos.size() <= 0) {
record.setInventoryDate("无");
} else {
ScmVehicleStayInventoryVo scmVehicleStayInventoryVo = scmVehicleStayInventoryVos.get(0);
record.setInventoryDate(simpleDateFormat.format(scmVehicleStayInventoryVo.getLastDate()));
}
if (scmVehicleStayInventoryVos.size() <= 0) {
record.setInventoryName("无");
} else {
if (scmVehicleStayInventoryVos.size() > 0) {
ScmVehicleStayInventoryVo scmVehicleStayInventoryVo = scmVehicleStayInventoryVos.get(0);
record.setInventoryName(scmVehicleStayInventoryVo.getLastName());
if (scmVehicleStayInventoryVo.getLastDate() == null) {
record.setInventoryDate("无");
} else {
record.setInventoryDate(simpleDateFormat.format(scmVehicleStayInventoryVo.getLastDate()));
}
if (StringUtils.isBlank(scmVehicleStayInventoryVo.getLastName())) {
record.setInventoryName("无");
} else {
record.setInventoryName(scmVehicleStayInventoryVo.getLastName());
}
}
}
return iPage;
@ -212,7 +214,8 @@ public class ScmVehicleStayInventoryService extends MybatisBaseService<ScmVehicl
* @param query
* @return
*/
private QueryWrapper<AppScmVehicleStayInventoryListPageVo> appQueryWrapper(AppScmVehicleStayInventoryListPageQuery query) {
private QueryWrapper<AppScmVehicleStayInventoryListPageVo> appQueryWrapper
(AppScmVehicleStayInventoryListPageQuery query) {
QueryWrapper<AppScmVehicleStayInventoryListPageVo> qw = new QueryWrapper<>();
qw.eq("svsi.isDelete", 0);
if (StringUtils.isNotBlank(query.getUseOrgSid())) {

2
anrui-system-ui/src/views/Home/Home.vue

@ -283,7 +283,7 @@
} else if (index == '8') {
let myPopup = window.open('http://120.46.172.184/message/#/' + '?token=' + getStorage(), '_blank')
} else if (index == '1') {
let myPopup = window.open('http://120.46.172.184/scm/#/' + '?token=' + getStorage(), '_blank')
let myPopup = window.open('http://127.0.0.1:9531/scm/#/' + '?token=' + getStorage(), '_blank')
} else if (index == '4') {
let myPopup = window.open('http://120.46.172.184/fin/#/' + '?token=' + getStorage(), '_blank')
} else if (index == '5') {

51
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/AppCommonContractFeign.java

@ -1,19 +1,19 @@
package com.yxt.anrui.terminal.api.autoservice.contract;
import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.anrui.base.api.commoncontract.AppCommonContractPageVo;
import com.yxt.anrui.base.api.commoncontract.AppCommonContractQuery;
import com.yxt.anrui.base.api.commoncontract.CommonContractFeignFallback;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractDto;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractQuery;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractTaskQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid;
import java.io.IOException;
import java.text.ParseException;
import java.util.Map;
/**
* Project: anrui-base(安瑞基础) <br/>
@ -30,8 +30,8 @@ import java.util.Map;
*/
@Api(tags = "合同表")
@FeignClient(
contextId = "anrui-base-CommonContract",
name = "anrui-base",
contextId = "anrui-terminal-CommonContract",
name = "anrui-terminal",
path = "/autoservice/v1/contract",
fallback = CommonContractFeignFallback.class)
public interface AppCommonContractFeign {
@ -42,5 +42,38 @@ public interface AppCommonContractFeign {
@ResponseBody
public ResultBean<PagerVo<AppCommonContractPageVo>> getContractList(@RequestBody PagerQuery<AppCommonContractQuery> pagerQuery);
@ApiOperation("移动端-初始化合同审核")
@GetMapping("/getContractInfo/{contractSid}/{userSid}")
@ResponseBody
public ResultBean<CommonContractInitVo> getContractInfo(@PathVariable("contractSid") String contractSid, @PathVariable("userSid") String userSid);
@ApiOperation("移动端-保存合同审核")
@PostMapping("/saveContractInfo")
@ResponseBody
public ResultBean saveContractInfo(@RequestBody CrmCustomerFileDto dto);
@ApiOperation("办理")
@PutMapping("/agreeContractInfo")
@ResponseBody
ResultBean agreeContractInfo(@RequestBody ContractDto dto);
@ApiOperation("驳回")
@PutMapping("/rejectContractInfo")
@ResponseBody
ResultBean rejectContractInfo(@RequestBody ContractTaskQuery query);
@ApiOperation("撤回")
@PutMapping("/recallContractInfo")
@ResponseBody
ResultBean recallContractInfo(@RequestBody ContractTaskQuery query);
@ApiOperation("终止")
@PutMapping("/stopContractInfo")
@ResponseBody
ResultBean stopContractInfo(@RequestBody ContractTaskQuery query);
@ApiOperation("获取流程操作标题")
@GetMapping("/getFlowOperateTitle")
@ResponseBody
ResultBean<String> getFlowOperateTitle(@SpringQueryMap ContractQuery query);
}

38
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/AppCommonContractFeignFallback.java

@ -1,6 +1,9 @@
package com.yxt.anrui.terminal.api.autoservice.contract;
import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractDto;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractQuery;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractTaskQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -31,4 +34,39 @@ public class AppCommonContractFeignFallback implements AppCommonContractFeign {
public ResultBean<PagerVo<AppCommonContractPageVo>> getContractList(PagerQuery<AppCommonContractQuery> pagerQuery) {
return null;
}
@Override
public ResultBean<CommonContractInitVo> getContractInfo(String contractSid, String userSid) {
return null;
}
@Override
public ResultBean saveContractInfo(CrmCustomerFileDto dto) {
return null;
}
@Override
public ResultBean agreeContractInfo(ContractDto dto) {
return null;
}
@Override
public ResultBean rejectContractInfo(ContractTaskQuery query) {
return null;
}
@Override
public ResultBean recallContractInfo(ContractTaskQuery query) {
return null;
}
@Override
public ResultBean stopContractInfo(ContractTaskQuery query) {
return null;
}
@Override
public ResultBean<String> getFlowOperateTitle(ContractQuery query) {
return null;
}
}

69
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/CommonContractInitVo.java

@ -0,0 +1,69 @@
package com.yxt.anrui.terminal.api.autoservice.contract;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
@Data
public class CommonContractInitVo implements Vo {
private static final long serialVersionUID = 8205950296578299984L;
@ApiModelProperty("合同sid")
private String contractSid;
@ApiModelProperty("单台价格")
private String price;
@ApiModelProperty("数量")
private String number;
@ApiModelProperty("车型")
private String model;
@ApiModelProperty("乙方名称")
private String partyB;
@ApiModelProperty("合同编号")
private String contractId;
@ApiModelProperty("合同价格")
private String contractPrice;
@ApiModelProperty("新车买卖合同")
private List<String> contractImages;
@ApiModelProperty("现场签署图片")
private List<String> siteSigImages;
@ApiModelProperty("身份证图片")
private List<String> idCardImages;
@ApiModelProperty("客户类型")
private String customerKey;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程实例id")
private String procInsId;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("是否是档案库里的身份证")
private boolean idCardArchives;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("合同附件")
private String appdixUrl;
@ApiModelProperty("现场签署图片附件")
private String sceneSignUrl;
@ApiModelProperty("身份证图片")
private String idImagesUrl;
}

73
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/CrmCustomerFileDto.java

@ -0,0 +1,73 @@
package com.yxt.anrui.terminal.api.autoservice.contract;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
import java.util.List;
@Data
public class CrmCustomerFileDto implements Dto {
private static final long serialVersionUID = 3534355480622793601L;
@ApiModelProperty("合同sid")
private String contractSid;
@ApiModelProperty("单台价格")
private BigDecimal price;
@ApiModelProperty("数量")
private String number;
@ApiModelProperty("车型")
private String model;
@ApiModelProperty("乙方名称")
private String partyB;
@ApiModelProperty("合同编号")
private String contractId;
@ApiModelProperty("合同价格")
private String contractPrice;
@ApiModelProperty("新车买卖合同")
private List<String> contractImages;
@ApiModelProperty("现场签署图片")
private List<String> siteSigImages;
@ApiModelProperty("身份证图片")
private List<String> idCardImages;
@ApiModelProperty("客户类型")
private String customerKey;
@ApiModelProperty("任务id")
private String taskId;
@ApiModelProperty("流程实例id")
private String procInsId;
@ApiModelProperty("用户sid")
private String userSid;
@ApiModelProperty("是否是档案库里的身份证")
private boolean idCardArchives;
@ApiModelProperty("客户sid")
private String customerSid;
@ApiModelProperty("合同附件")
private String appdixUrl;
@ApiModelProperty("现场签署图片附件")
private String sceneSignUrl;
@ApiModelProperty("身份证图片")
private String idImagesUrl;
}

37
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/flowable/ContractDto.java

@ -0,0 +1,37 @@
package com.yxt.anrui.terminal.api.autoservice.contract.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/30 15:57
* @Description
*/
@Data
public class ContractDto implements Dto {
private static final long serialVersionUID = -2994642678989084467L;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:procInsId")
@JsonProperty("procInsId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
}

25
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/flowable/ContractQuery.java

@ -0,0 +1,25 @@
package com.yxt.anrui.terminal.api.autoservice.contract.flowable;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotNull;
/**
* @Author dimengzhe
* @Date 2022/8/30 15:57
* @Description
*/
@Data
public class ContractQuery implements Query {
private static final long serialVersionUID = 3554621072454825756L;
@ApiModelProperty(value = "节点key")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
@ApiModelProperty(value = "0 上一环节 1下一环节")
@NotNull(message = "参数错误:next")
private Integer next;
}

47
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/autoservice/contract/flowable/ContractTaskQuery.java

@ -0,0 +1,47 @@
package com.yxt.anrui.terminal.api.autoservice.contract.flowable;
import com.fasterxml.jackson.annotation.JsonProperty;
import com.yxt.common.core.query.Query;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @Author dimengzhe
* @Date 2022/8/30 15:57
* @Description
*/
@Data
public class ContractTaskQuery implements Query {
private static final long serialVersionUID = -8643921324527025037L;
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
@JsonProperty("procInsId")
private String instanceId;
}

32
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExterVesionVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.terminal.api.supplychain.externalPurchase;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/8/30 10:58
* @Description
*/
@Data
public class ExterVesionVo implements Vo {
private static final long serialVersionUID = -2066221815836429401L;
@ApiModelProperty("版本编码")
private Integer moduleVersion;
@ApiModelProperty("apk下载地址")
private String path;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("插件名称")
private String modulePluginName;
@ApiModelProperty("地址")
private String moduleAction;
private String json;
}

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/externalPurchase/ExternalPurchaseVo.java

@ -74,4 +74,6 @@ public class ExternalPurchaseVo implements Vo {
private String modelSid;
@ApiModelProperty("配置sid")
private String configSid;
private ExterVesionVo carDetailPage;
}

10
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/AppBaseModelModpriceFeign.java

@ -25,15 +25,7 @@
*********************************************************/
package com.yxt.anrui.terminal.api.supplychain.modelAdjust;
import com.yxt.anrui.base.api.basemodelmodprice.*;
import com.yxt.anrui.base.api.basemodelmodprice.flow.BaseModelModPriceCompleteDto;
import com.yxt.anrui.base.api.basemodelmodprice.flow.BaseModelModPriceTaskQuery;
import com.yxt.anrui.base.api.basemodelmodprice.flow.GetNodeQuery;
import com.yxt.anrui.base.api.basemodelmodprice.flow.SubmitBaseModelModPriceDto;
import com.yxt.anrui.terminal.api.supplychain.scmvehiclegression.flowable.GressionQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
@ -63,7 +55,7 @@ import javax.validation.Valid;
fallback = AppBaseModelModpriceFeignFallback.class)
public interface AppBaseModelModpriceFeign {
@ApiOperation("获取车型调详情")
@ApiOperation("获取车型调详情")
@ResponseBody
@GetMapping("/getModelAdjust/{sid}")
public ResultBean<ModelModpriceDetailVo> getModelAdjust(@PathVariable("sid") String sid);

3
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/ModelModPriceCompleteDto.java

@ -15,9 +15,6 @@ public class ModelModPriceCompleteDto implements Dto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
// @NotBlank(message = "参数错误:orgSidPath")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;

5
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/ModelModpriceModelVo.java

@ -31,4 +31,9 @@ public class ModelModpriceModelVo implements Vo {
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("车型页面信息")
private ModelVehicleVersionVo carDetailPage;
}

32
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/modelAdjust/ModelVehicleVersionVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.terminal.api.supplychain.modelAdjust;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/8/30 9:45
* @Description
*/
@Data
public class ModelVehicleVersionVo implements Vo {
private static final long serialVersionUID = -245022776176515562L;
@ApiModelProperty("版本编码")
private Integer moduleVersion;
@ApiModelProperty("apk下载地址")
private String path;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("插件名称")
private String modulePluginName;
@ApiModelProperty("地址")
private String moduleAction;
private String json;
}

34
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/purchaseReturn/ScmReturnVersionVo.java

@ -0,0 +1,34 @@
package com.yxt.anrui.terminal.api.supplychain.purchaseReturn;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/8/31 9:29
* @Description
*/
@Data
public class ScmReturnVersionVo implements Vo {
private static final long serialVersionUID = -2293970651117088165L;
@ApiModelProperty("版本编码")
private Integer moduleVersion;
@ApiModelProperty("apk下载地址")
private String path;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("插件名称")
private String modulePluginName;
@ApiModelProperty("地址")
private String moduleAction;
private String json;
}

3
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/purchaseReturn/VehicleReturnDetailssVo.java

@ -34,4 +34,7 @@ public class VehicleReturnDetailssVo implements Vo {
@JsonProperty("reason")
private String costRemarks;
private ScmReturnVersionVo carDetailPage;
}

2
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/unsoldBuyout/UnsoldBuyoutDetailsListVo.java

@ -39,4 +39,6 @@ public class UnsoldBuyoutDetailsListVo implements Vo {
private int dayNum;
@ApiModelProperty("车辆数量")
private int vehicleNum;
private UnsoldVesionVo carDetailPage;
}

32
anrui-terminal/anrui-terminal-api/src/main/java/com/yxt/anrui/terminal/api/supplychain/unsoldBuyout/UnsoldVesionVo.java

@ -0,0 +1,32 @@
package com.yxt.anrui.terminal.api.supplychain.unsoldBuyout;
import com.yxt.common.core.vo.Vo;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @Author dimengzhe
* @Date 2022/8/30 10:34
* @Description
*/
@Data
public class UnsoldVesionVo implements Vo {
private static final long serialVersionUID = -8925410215132128967L;
@ApiModelProperty("版本编码")
private Integer moduleVersion;
@ApiModelProperty("apk下载地址")
private String path;
@ApiModelProperty("0.内置Activity 1.内置WebView 2.RePlugin插件")
private String type;
@ApiModelProperty("插件名称")
private String modulePluginName;
@ApiModelProperty("地址")
private String moduleAction;
private String json;
}

42
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/contract/AppCommonContractRest.java

@ -5,6 +5,11 @@ import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.anrui.terminal.api.autoservice.contract.AppCommonContractFeign;
import com.yxt.anrui.terminal.api.autoservice.contract.CommonContractInitVo;
import com.yxt.anrui.terminal.api.autoservice.contract.CrmCustomerFileDto;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractDto;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractQuery;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractTaskQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -41,6 +46,41 @@ public class AppCommonContractRest implements AppCommonContractFeign {
@Override
@ApiOperation("移动端-合同审核列表")
public ResultBean<PagerVo<AppCommonContractPageVo>> getContractList(PagerQuery<AppCommonContractQuery> pagerQuery) {
return appCommonContractService.getContractList(pagerQuery);
return appCommonContractService.getContractList(pagerQuery);
}
@Override
public ResultBean<CommonContractInitVo> getContractInfo(String contractSid, String userSid) {
return appCommonContractService.getContractInfo(contractSid,userSid);
}
@Override
public ResultBean saveContractInfo(CrmCustomerFileDto dto) {
return appCommonContractService.saveContractInfo(dto);
}
@Override
public ResultBean agreeContractInfo(ContractDto dto) {
return appCommonContractService.agreeContractInfo(dto);
}
@Override
public ResultBean rejectContractInfo(ContractTaskQuery query) {
return appCommonContractService.rejectContractInfo(query);
}
@Override
public ResultBean recallContractInfo(ContractTaskQuery query) {
return appCommonContractService.recallContractInfo(query);
}
@Override
public ResultBean stopContractInfo(ContractTaskQuery query) {
return appCommonContractService.stopContractInfo(query);
}
@Override
public ResultBean<String> getFlowOperateTitle(ContractQuery query) {
return appCommonContractService.getFlowOperateTitle(query);
}
}

132
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/autoservice/contract/AppCommonContractService.java

@ -1,16 +1,30 @@
package com.yxt.anrui.terminal.biz.autoservice.contract;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.commoncontract.*;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractCompleteDto;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeQuery;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractNodeVo;
import com.yxt.anrui.base.api.commoncontract.flowable.CommonContractTaskQuery;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.terminal.api.autoservice.contract.CommonContractInitVo;
import com.yxt.anrui.terminal.api.autoservice.contract.CrmCustomerFileDto;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractDto;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractQuery;
import com.yxt.anrui.terminal.api.autoservice.contract.flowable.ContractTaskQuery;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
@ -32,6 +46,10 @@ public class AppCommonContractService {
@Autowired
CommonContractFeign commonContractFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
/**
* 移动端-合同审核列表
@ -45,4 +63,112 @@ public class AppCommonContractService {
}
public ResultBean<CommonContractInitVo> getContractInfo(String contractSid, String userSid) {
ResultBean<CommonContractInitVo> rb = ResultBean.fireFail();
CommonContractInitVo vo = new CommonContractInitVo();
ResultBean<AppCommonContractInitVo> resultBean = commonContractFeign.getContractInfo(contractSid, userSid);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
AppCommonContractInitVo data = resultBean.getData();
BeanUtils.copyProperties(data, vo);
return rb.success().setData(vo);
}
public ResultBean saveContractInfo(CrmCustomerFileDto dto) {
ResultBean rb = ResultBean.fireFail();
AppCrmCustomerFileDto appCrmCustomerFileDto = new AppCrmCustomerFileDto();
BeanUtils.copyProperties(dto, appCrmCustomerFileDto);
ResultBean resultBean = commonContractFeign.saveContractInfo(appCrmCustomerFileDto);
if (!resultBean.getSuccess()) {
rb.setMsg(resultBean.getMsg());
}
return rb.success();
}
public ResultBean agreeContractInfo(ContractDto dto) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(dto.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
CommonContractCompleteDto commonContractCompleteDto = new CommonContractCompleteDto();
BeanUtil.copyProperties(dto, commonContractCompleteDto);
commonContractCompleteDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = commonContractFeign.complete(commonContractCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean rejectContractInfo(ContractTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
CommonContractTaskQuery commonContractTaskQuery = new CommonContractTaskQuery();
BeanUtil.copyProperties(query, commonContractTaskQuery);
ResultBean resultBean = commonContractFeign.taskReject(commonContractTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean recallContractInfo(ContractTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
CommonContractTaskQuery commonContractTaskQuery = new CommonContractTaskQuery();
BeanUtil.copyProperties(query, commonContractTaskQuery);
ResultBean resultBean = commonContractFeign.revokeProcess(commonContractTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean stopContractInfo(ContractTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
CommonContractTaskQuery commonContractTaskQuery = new CommonContractTaskQuery();
BeanUtil.copyProperties(query, commonContractTaskQuery);
ResultBean resultBean = commonContractFeign.breakProcess(commonContractTaskQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
return rb.success().setData(resultBean.getData());
}
public ResultBean<String> getFlowOperateTitle(ContractQuery query) {
ResultBean<String> rb = ResultBean.fireFail();
//0 上一环节 1下一环节
int next = query.getNext();
CommonContractNodeQuery getNodeQuery = new CommonContractNodeQuery();
BeanUtil.copyProperties(query, getNodeQuery);
String data = "";
if (next == 0) {
ResultBean<List<CommonContractNodeVo>> getPreviousNodesForReject = commonContractFeign.getPreviousNodesForReject(getNodeQuery);
if (getPreviousNodesForReject.getSuccess()) {
getPreviousNodesForReject.getData().removeAll(Collections.singleton(null));
data = getPreviousNodesForReject.getData().get(0).getName();
} else {
return rb.setMsg(getPreviousNodesForReject.getMsg());
}
} else if (next == 1) {
ResultBean<List<CommonContractNodeVo>> getNextNodesForSubmit = commonContractFeign.getNextNodesForSubmit(getNodeQuery);
if (getNextNodesForSubmit.getSuccess()) {
getNextNodesForSubmit.getData().removeAll(Collections.singleton(null));
data = getNextNodesForSubmit.getData().get(0).getName();
} else {
return rb.setMsg(getNextNodesForSubmit.getMsg());
}
} else {
return rb.setMsg("参数错误:next");
}
return rb.success().setData(data);
}
}

22
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/modelAdjust/AppBaseModelModpriceService.java

@ -29,6 +29,11 @@ import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceDetailVo;
import com.yxt.anrui.base.api.basemodelmodprice.BaseModelModpriceFeign;
import com.yxt.anrui.base.api.basemodelmodprice.flow.*;
import com.yxt.anrui.buscenter.api.busmaindeposit.BusMainDepositFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.terminal.api.supplychain.modelAdjust.*;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
@ -55,6 +60,10 @@ public class AppBaseModelModpriceService {
@Autowired
BaseModelModpriceFeign baseModelModpriceFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
/**
* 获取车型调车详情
@ -99,8 +108,21 @@ public class AppBaseModelModpriceService {
*/
public ResultBean agreeModelAdjustInfo(ModelModPriceCompleteDto query) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(query.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
BaseModelModPriceCompleteDto baseModelModPriceCompleteDto = new BaseModelModPriceCompleteDto();
BeanUtil.copyProperties(query, baseModelModPriceCompleteDto);
baseModelModPriceCompleteDto.setOrgSidPath(orgSidPath);
ResultBean resultBean = baseModelModpriceFeign.complete(baseModelModPriceCompleteDto);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());

37
anrui-terminal/anrui-terminal-biz/src/main/java/com/yxt/anrui/terminal/biz/supplychain/purchaseReturn/AppScmVehicleReturnService.java

@ -2,9 +2,15 @@ package com.yxt.anrui.terminal.biz.supplychain.purchaseReturn;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubVersionVo;
import com.yxt.anrui.portal.api.appsubsetversion.AppSubsetVersionFeign;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrg;
import com.yxt.anrui.portal.api.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.scm.api.flow.FlowTaskVo;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDetailsVo;
import com.yxt.anrui.scm.api.scmvehiclereturn.ScmVehicleReturnDto;
@ -18,7 +24,9 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
@ -35,6 +43,10 @@ public class AppScmVehicleReturnService {
BaseVehicleFeign baseVehicleFeign;
@Autowired
SysStaffOrgFeign sysStaffOrgFeign;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
private AppSubsetVersionFeign appSubsetVersionFeign;
/**
* 获取采购退库详情
@ -49,6 +61,8 @@ public class AppScmVehicleReturnService {
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
ResultBean<AppSubVersionVo> voResultBean = appSubsetVersionFeign.selectLast();
AppSubVersionVo appSubVersionVo = voResultBean.getData();
ScmVehicleReturnDetailsVo scmVehicleReturnDetailsVo = resultBean.getData();
BeanUtil.copyProperties(scmVehicleReturnDetailsVo, vo);
List<VehicleReturnDetailssVo> records = vo.getVoList();
@ -57,6 +71,16 @@ public class AppScmVehicleReturnService {
BaseVehicle data = baseVehicleFeign.selectByVinNoAndOrgSid(vinNo, vo.getCreateOrgSid()).getData();
record.setModelSid(data.getModelSid());
record.setConfigSid(data.getModelConfigSid());
ScmReturnVersionVo appVehicleVersionVo = new ScmReturnVersionVo();
String modelSid = data.getModelSid();
String configSid = data.getModelConfigSid();
Map<String, Object> map = new HashMap<>();
map.put("modelSid", modelSid);
map.put("configSid", configSid);
map.put("selectType", 0);
appSubVersionVo.setJson(JSONObject.toJSONString(map));
BeanUtil.copyProperties(appSubVersionVo, appVehicleVersionVo);
record.setCarDetailPage(appVehicleVersionVo);
}
return rb.success().setData(vo);
}
@ -155,8 +179,21 @@ public class AppScmVehicleReturnService {
*/
public ResultBean agreePurchaseReturnInfo(VehicleReturnFlowQuery vehicleReturnFlowQuery) {
ResultBean rb = ResultBean.fireFail();
//根据用户sid获取staffSid
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(vehicleReturnFlowQuery.getUserSid());
if (!userVoResultBean.getSuccess()) {
return rb.setMsg(userVoResultBean.getMsg());
}
//根据staffSid获取用户的组织全路径
ResultBean<SysStaffOrg> staffOrgResultBean = sysStaffOrgFeign.getOrgByStaffSid(userVoResultBean.getData().getStaffSid());
if (!staffOrgResultBean.getSuccess()) {
return rb.setMsg(staffOrgResultBean.getMsg());
}
//用户的组织全路径
String orgSidPath = staffOrgResultBean.getData().getOrgSidPath();
ScmVehicleReturnFlowQuery scmVehicleReturnFlowQuery = new ScmVehicleReturnFlowQuery();
BeanUtil.copyProperties(vehicleReturnFlowQuery, scmVehicleReturnFlowQuery);
scmVehicleReturnFlowQuery.setOrgSidPath(orgSidPath);
ResultBean resultBean = scmVehicleReturnFeign.complete(scmVehicleReturnFlowQuery);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());

Loading…
Cancel
Save