Browse Source

Merge remote-tracking branch 'origin/master'

zhanglei
wangpengfei 3 months ago
parent
commit
c131408891
  1. 13
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basefiles/BaseFiles.java
  2. 23
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseinternalpurchase/BaseInternalPurchaseFeign.java
  3. 11
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepurchasesystem/BasePurchaseSystemFeign.java
  4. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepurchasesystem/BasePurchaseSystemFeignFallback.java
  5. 14
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseshuntinginvoicingapply/BaseShuntingInvoicingApplyFeign.java
  6. 6
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclebrand/BaseVehicleBrandFeign.java
  7. 5
      anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclebrand/BaseVehicleBrandFeignFallback.java
  8. 70
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseaccadjapply/BaseAccadjApplyService.java
  9. 21
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseinternalpurchase/BaseInternalPurchaseService.java
  10. 6
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretwareveh/BaseManufacturerRetwareVehMapper.xml
  11. 37
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepurchasesystem/BasePurchaseSystemMapper.java
  12. 120
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepurchasesystem/BasePurchaseSystemRest.java
  13. 204
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepurchasesystem/BasePurchaseSystemService.java
  14. 3
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclebrand/BaseVehicleBrandMapper.java
  15. 5
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclebrand/BaseVehicleBrandRest.java
  16. 7
      anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclebrand/BaseVehicleBrandService.java
  17. 34
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java
  18. 2
      anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyService.java
  19. 2
      anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationFeign.java
  20. 171
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java
  21. 107
      anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/kingdee/FinKingDeeFeignRest.java
  22. 23
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowapprover/FlowApprover.java
  23. 20
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowapprover/FlowApproverDto.java
  24. 21
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowcc/FlowCc.java
  25. 8
      anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/utils/ProcDefEnum.java
  26. 39
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java
  27. 18
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Mapper.java
  28. 9
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Mapper.xml
  29. 112
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Rest.java
  30. 449
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Service.java
  31. 19
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverMapper.java
  32. 44
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverMapper.xml
  33. 53
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverService.java
  34. 18
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcMapper.java
  35. 37
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcMapper.xml
  36. 23
      anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcService.java
  37. 21
      anrui-management/anrui-management-ui/src/views/sysstaffinfo/yuangongAdd.vue
  38. 2
      anrui-management/anrui-management-ui/src/views/sysstaffinfo/yuangongInfo.vue
  39. 6
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexEnum.java
  40. 11
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java
  41. 2
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml
  42. 4
      anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java
  43. 17
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.java
  44. 1390
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml
  45. 4
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportRest.java
  46. 2939
      anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java
  47. 15
      anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/LoanHomevisitPrepFeign.java
  48. 75
      anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java
  49. 29
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/DownloadExcelVo.java
  50. 33
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ExcelInfo.java
  51. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelInfo.java
  52. 17
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelVo.java
  53. 58
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateDto.java
  54. 93
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateExcelVo.java
  55. 9
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeign.java
  56. 10
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeignFallback.java
  57. 16
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateQuery.java
  58. 6
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateVo.java
  59. 12
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/SpecialRebateExcelInfo.java
  60. 2
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelInfo.java
  61. 20
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelVo.java
  62. 25
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/OneExcelVo.java
  63. 110
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelVo.java
  64. 21
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java
  65. 5
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java
  66. 18
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateQuery.java
  67. 4
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateVo.java
  68. 29
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/TwoExcelVo.java
  69. 13
      anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmwarehouse/ScmWarehouse.java
  70. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyRest.java
  71. 21
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyService.java
  72. 16
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyService.java
  73. 6
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java
  74. 43
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml
  75. 288
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java
  76. 992
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java
  77. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyRest.java
  78. 18
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyService.java
  79. 10
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatecheckapplydetail/ScmSpecialrebateCheckapplydetailMapper.xml
  80. 6
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewithapply/ScmSpecialRebateWithApplyMapper.xml
  81. 16
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewithapply/ScmSpecialRebateWithApplyService.java
  82. 2
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java
  83. 52
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml
  84. 285
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java
  85. 647
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java
  86. 12
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyMapper.xml
  87. 19
      anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java
  88. BIN
      anrui-scm/anrui-scm-biz/src/main/resources/static/专项返利模版.xls
  89. 9
      anrui-scm/anrui-scm-ui/src/api/specialrebate/specialrebatemanagement.js
  90. 168
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobechecked.vue
  91. 4
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobecheckedByUpdate.vue
  92. 175
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue
  93. 26
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementAdd.vue
  94. 4
      anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue
  95. 144
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatetobechecked.vue
  96. 4
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatetobecheckedByUpdate.vue
  97. 267
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagement.vue
  98. 6
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagementAdd.vue
  99. 30
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatewithholding/specialrebatewithholdingAdd.vue
  100. 36
      anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatewithholding/specialrebatewithholdingInfo.vue

13
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basefiles/BaseFiles.java

@ -31,19 +31,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-base(安瑞基础信息) <br/>
* File: BaseDataList.java <br/>
* Class: com.yxt.anrui.base.api.basedatalist.BaseDataList <br/>
* Description: 资料清单. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-02-26 09:59:29 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "附件清单", description = "附件清单")
@TableName("base_files")
@Data

23
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseinternalpurchase/BaseInternalPurchaseFeign.java

@ -38,23 +38,9 @@ import io.swagger.annotations.ApiOperation;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* Project: anrui-base(内申请管理) <br/>
* File: BaseInternalPurchaseFeign.java <br/>
* Class: com.yxt.anrui.base.api.baseinternalpurchase.BaseInternalPurchaseFeign <br/>
* Description: 内购表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-06-16 13:46:25 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "内购表")
@FeignClient(
contextId = "anrui-base-BaseInternalPurchase",
@ -72,12 +58,12 @@ public interface BaseInternalPurchaseFeign {
@PostMapping("/save")
@ResponseBody
public ResultBean save(@RequestBody BaseInternalPurchaseDto dto);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
@ -91,6 +77,7 @@ public interface BaseInternalPurchaseFeign {
/**
* 申请方审批同意应对方审批同意除申请方最后一个环节
*
* @param bvd
* @return
*/
@ -100,6 +87,7 @@ public interface BaseInternalPurchaseFeign {
/**
* 申请方跳应对方的同意
*
* @param bvd
* @return
*/
@ -109,6 +97,7 @@ public interface BaseInternalPurchaseFeign {
/**
* 分公司到事业部同意
*
* @param bvd
* @return
*/
@ -138,6 +127,6 @@ public interface BaseInternalPurchaseFeign {
@ApiOperation(value = "移动端调车详情")
@PostMapping(value = "/getCompanyShunting/{sid}")
ResultBean<AppCompanyShuntingVo> getCompanyShunting(@PathVariable("sid")String sid);
ResultBean<AppCompanyShuntingVo> getCompanyShunting(@PathVariable("sid") String sid);
}

11
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepurchasesystem/BasePurchaseSystemFeign.java

@ -69,13 +69,13 @@ public interface BasePurchaseSystemFeign {
@ApiOperation("维护分摊比例")
@PostMapping("/maintenance")
@ResponseBody
public ResultBean maintenance(@RequestParam("sid") String sid,@RequestParam("shareProportion") String shareProportion);
public ResultBean maintenance(@RequestParam("sid") String sid, @RequestParam("shareProportion") String shareProportion);
@ApiOperation("根据sid删除记录")
@DeleteMapping("/delBySids")
@ResponseBody
public ResultBean delBySids(@RequestBody String[] sids);
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
@ResponseBody
@ -100,4 +100,9 @@ public interface BasePurchaseSystemFeign {
@GetMapping("/fetchDetailsByUseOrgPath")
@ResponseBody
public ResultBean<List<AppBasePurchSystemVo>> fetchDetailsByUseOrgPath(@RequestParam("orgPath") String orgPath);
@ApiOperation("根据采购系统名称查询采购系统sid")
@GetMapping("/selByPurchaseSystemName")
@ResponseBody
public ResultBean<String> selByPurchaseSystemName(@RequestParam("purchaseSystemName") String purchaseSystemName, @RequestParam("useOrgSid") String useOrgSid);
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basepurchasesystem/BasePurchaseSystemFeignFallback.java

@ -94,4 +94,9 @@ public class BasePurchaseSystemFeignFallback implements BasePurchaseSystemFeign
public ResultBean<List<AppBasePurchSystemVo>> fetchDetailsByUseOrgPath(String orgPath) {
return null;
}
@Override
public ResultBean<String> selByPurchaseSystemName(String purchaseSystemName, String useOrgSid) {
return null;
}
}

14
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/baseshuntinginvoicingapply/BaseShuntingInvoicingApplyFeign.java

@ -43,23 +43,9 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* Project: anrui-base(调车开票) <br/>
* File: BaseShuntingInvoicingApplyFeign.java <br/>
* Class: com.yxt.anrui.base.api.baseshuntinginvoicingapply.BaseShuntingInvoicingApplyFeign <br/>
* Description: 调车开票申请表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-07-11 15:30:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "调车开票申请表")
@FeignClient(
contextId = "anrui-base-BaseShuntingInvoicingApply",

6
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclebrand/BaseVehicleBrandFeign.java

@ -108,7 +108,7 @@ public interface BaseVehicleBrandFeign {
@ApiOperation("手机端根据厂商sid查询品牌列表")
@GetMapping("/selectAppListByManufacturerSid")
ResultBean<List<AppResultData>> selectAppListByManufacturerSid(@RequestParam(value = "manufacturerSid",required = false) String manufacturerSid);
ResultBean<List<AppResultData>> selectAppListByManufacturerSid(@RequestParam(value = "manufacturerSid", required = false) String manufacturerSid);
@ApiOperation("手机端-获取品牌数据字典")
@GetMapping("/selectAppListByUserSid/{userSid}")
@ -121,4 +121,8 @@ public interface BaseVehicleBrandFeign {
@ApiOperation("根据品牌sid获取品牌信息")
@GetMapping("/fetchBySid/{sid}")
BaseVehicleBrand fetchBySid(@RequestParam("sid") String sid);
@ApiOperation("根据品牌名称获取品牌sid")
@GetMapping("/selByBrandName")
ResultBean<String> selByBrandName(@RequestParam("brandName") String brandName);
}

5
anrui-base/anrui-base-api/src/main/java/com/yxt/anrui/base/api/basevehiclebrand/BaseVehicleBrandFeignFallback.java

@ -91,5 +91,10 @@ public class BaseVehicleBrandFeignFallback implements BaseVehicleBrandFeign {
return null;
}
@Override
public ResultBean<String> selByBrandName(String brandName) {
return null;
}
}

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

@ -28,7 +28,6 @@ package com.yxt.anrui.base.biz.baseaccadjapply;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.yxt.anrui.base.api.baseaccadjapply.*;
@ -37,25 +36,13 @@ import com.yxt.anrui.base.api.baseaccadjapply.flow.GetNodeQuery;
import com.yxt.anrui.base.api.baseaccadjapply.flow.GetNodeVo;
import com.yxt.anrui.base.api.baseaccadjapply.flow.SubmitBaseAccAdjApplyDto;
import com.yxt.anrui.base.api.baseaccadjapplyeveh.BaseAccadjApplyeVeh;
import com.yxt.anrui.base.api.baseinternalpurchase.BaseInternalPurchase;
import com.yxt.anrui.base.api.baseinternalpurchasevehicle.BaseInternalPurchaseVehicle;
import com.yxt.anrui.base.api.baseinternalpurchasevehicle.BaseInternalPurchaseVehicleDetailsVo;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturerDetailsVo;
import com.yxt.anrui.base.api.basemanufacturerbank.BaseManPayVo;
import com.yxt.anrui.base.api.baseoutsourcingapplication.BaseOutsourcingApplicationDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemDetailsVo;
import com.yxt.anrui.base.api.basepurchasesystem.BasePurchaseSystemFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleSelectVo;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
import com.yxt.anrui.base.api.basevehiclemodel.BaseVehicleModel;
import com.yxt.anrui.base.api.basevehinstall.BaseVehinstallDetailsVo;
import com.yxt.anrui.base.biz.baseaccadjapplyeveh.BaseAccadjApplyeVehService;
import com.yxt.anrui.base.biz.baseinternalpurchase.BaseInternalPurchaseService;
import com.yxt.anrui.base.biz.baseinternalpurchasevehicle.BaseInternalPurchaseVehicleService;
import com.yxt.anrui.base.biz.basemanufacturer.BaseManufacturerService;
import com.yxt.anrui.base.biz.basemanufacturerbank.BaseManufacturerBankService;
import com.yxt.anrui.base.biz.basepurchasesystem.BasePurchaseSystemService;
import com.yxt.anrui.base.biz.basevehicle.BaseVehicleService;
@ -80,7 +67,6 @@ import com.yxt.anrui.flowable.api.flowtask.FlowTaskFeign;
import com.yxt.anrui.flowable.api.flowtask.FlowTaskVo;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.flow.PCHistTaskListAndCommentList;
import com.yxt.anrui.portal.api.sysorganization.SysOrganization;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.portal.api.sysorganization.SysOrganizationVo;
@ -88,43 +74,25 @@ 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.portal.api.sysuser.UserQuery;
import com.yxt.anrui.portal.api.sysuser.UserRoleQuery;
import com.yxt.anrui.scm.api.scmapplyinboundquery.ScmApplyInboundQueryDto;
import com.yxt.anrui.scm.api.scmapplyinboundquery.ScmApplyInboundQueryFeign;
import com.yxt.anrui.scm.api.scmapplyinboundvehicle.ScmApplyInboundVehicleDto;
import com.yxt.anrui.scm.api.scmapplyinboundvehquery.ScmApplyInboundVehQueryDto;
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseFeign;
import com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouseVo;
import com.yxt.common.base.utils.HanZiConverterPinYin;
import org.apache.commons.lang3.StringUtils;
import com.yxt.common.base.service.MybatisBaseService;
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 org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
/**
* Project: anrui-base(调账管理) <br/>
* File: BaseAccadjApplyService.java <br/>
* Class: com.yxt.anrui.base.biz.baseaccadjapply.BaseAccadjApplyService <br/>
* Description: 调账申请表 业务逻辑. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-07-07 16:57:24 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Service
public class BaseAccadjApplyService extends MybatisBaseService<BaseAccadjApplyMapper, BaseAccadjApply> {
@ -514,21 +482,21 @@ public class BaseAccadjApplyService extends MybatisBaseService<BaseAccadjApplyMa
String confirmSid = "";
String confirmName = "";
String confirmDate = "";
if (baseAccadjApply.getAccadjTypeValue().equals("调入")){
if (baseAccadjApply.getAccadjTypeValue().equals("调入")) {
FlowRecordVo flowRecordVo = flowTaskFeign.businessFlowRecord(bv.getInstanceId()).getData();
List<FlowTask> flowList = flowRecordVo.getFlowList();
for (FlowTask flowTask : flowList) {
if (flowTask.getTaskName().equals("发起方分公司会计主管审批")){
if (flowTask.getTaskName().equals("发起方分公司会计主管审批")) {
confirmSid = flowTask.getTaskUserInfos().get(0).getAssigneeSid();
confirmName = flowTask.getTaskUserInfos().get(0).getAssigneeName();
confirmDate = DateUtil.formatDate(flowTask.getFinishTime());
}
}
}else if (baseAccadjApply.getAccadjTypeValue().equals("调出")){
} else if (baseAccadjApply.getAccadjTypeValue().equals("调出")) {
FlowRecordVo flowRecordVo = flowTaskFeign.businessFlowRecord(bv.getInstanceId()).getData();
List<FlowTask> flowList = flowRecordVo.getFlowList();
for (FlowTask flowTask : flowList) {
if (flowTask.getTaskName().equals("应对方分公司会计主管审批")){
if (flowTask.getTaskName().equals("应对方分公司会计主管审批")) {
confirmSid = flowTask.getTaskUserInfos().get(0).getAssigneeSid();
confirmName = flowTask.getTaskUserInfos().get(0).getAssigneeName();
confirmDate = DateUtil.formatDate(flowTask.getFinishTime());
@ -1083,21 +1051,10 @@ public class BaseAccadjApplyService extends MybatisBaseService<BaseAccadjApplyMa
return rb.setMsg("参数错误:userSid");
}
BaseAccadjApply baseAccadjApply = fetchBySid(query.getBusinessSid());
if (query.getUserSid().equals(baseAccadjApply.getCreateBySid())) {
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());
}
List<String> purchaseSids = baseAccadjApplyeVehService.fetchByMainSid(baseAccadjApply.getSid());
String businessTaskId = baseAccadjApply.getTaskId();
List<String> purchaseSids = baseAccadjApplyeVehService.fetchByMainSid(baseAccadjApply.getSid());
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (query.getUserSid().equals(baseAccadjApply.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
@ -1110,6 +1067,21 @@ public class BaseAccadjApplyService extends MybatisBaseService<BaseAccadjApplyMa
baseInternalPurchaseVehicleService.updateIsAccadj(purchaseSid, "0");
}
return rb.success().setData(resultBean.getData());
} else {
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);
for (String purchaseSid : purchaseSids) {
baseInternalPurchaseVehicleService.updateIsAccadj(purchaseSid, "0");
}
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");

21
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/baseinternalpurchase/BaseInternalPurchaseService.java

@ -940,7 +940,7 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal
BaseInternalPurchase baseInternalPurchase = fetchBySid(query.getBusinessSid());
String businessTaskId = baseInternalPurchase.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (query.getUserSid().equals(baseInternalPurchase.getCreateBySid())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.breakProcess(flowTaskVo);
@ -957,6 +957,25 @@ public class BaseInternalPurchaseService extends MybatisBaseService<BaseInternal
baseVehicleService.updateVeh(baseVehicle);
}
return rb.success().setData(resultBean.getData());
} else {
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());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
List<BaseInternalPurchaseVehicleVo> baseInternalPurchaseVehicleVos = baseInternalPurchaseVehicleService.fetchByMainSid(query.getBusinessSid());
for (BaseInternalPurchaseVehicleVo baseInternalPurchaseVehicleVo : baseInternalPurchaseVehicleVos) {
BaseVehicle baseVehicle = baseVehicleService.selVehicleByVinNoAndOrgSid(baseInternalPurchaseVehicleVo.getVinNo(), baseInternalPurchase.getCreateOrgSid());
baseVehicle.setVinNo(baseInternalPurchaseVehicleVo.getVinNo());
baseVehicle.setVehicleState(VehicleState.StockEnum.STOCK.getCode());
baseVehicle.setVehicleStateValue(VehicleState.StockEnum.STOCK.getRemarks());
baseVehicleService.updateVeh(baseVehicle);
}
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");

6
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basemanufacturerretwareveh/BaseManufacturerRetwareVehMapper.xml

@ -33,10 +33,10 @@
FROM
base_manufacturer_retware_veh mrv
LEFT JOIN base_manufacturer_retware mr
ON mrv.`mainSid` = mr.sid
ON mrv.mainSid = mr.sid
WHERE mrv.vinNo = #{vinNo}
AND mr.`createOrgSid` = #{createOrgSid}
ORDER BY mr.`createTime` DESC
AND mr.createOrgSid = #{createOrgSid}
ORDER BY mr.createTime DESC
LIMIT 1
</select>
</mapper>

37
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepurchasesystem/BasePurchaseSystemMapper.java

@ -56,24 +56,24 @@ import java.util.List;
@Mapper
public interface BasePurchaseSystemMapper extends BaseMapper<BasePurchaseSystem> {
//@Update("update base_purchase_system set name=#{msg} where id=#{id}")
//IPage<BasePurchaseSystemVo> voPage(IPage<BasePurchaseSystem> page, @Param(Constants.WRAPPER) QueryWrapper<BasePurchaseSystem> qw);
IPage<BasePurchaseSystemVo> selectPageVo(IPage<BasePurchaseSystem> page, @Param(Constants.WRAPPER) Wrapper<BasePurchaseSystem> qw);
List<BasePurchaseSystemVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BasePurchaseSystem> qw);
@Select("select * from base_purchase_system")
List<BasePurchaseSystemVo> selectListVo();
//@Update("update base_purchase_system set name=#{msg} where id=#{id}")
//IPage<BasePurchaseSystemVo> voPage(IPage<BasePurchaseSystem> page, @Param(Constants.WRAPPER) QueryWrapper<BasePurchaseSystem> qw);
@Select("select * from base_purchase_system where useOrgSid = #{useOrgSid}")
List<BasePurchaseSystemDetailsVo> fetchDetailsByUseOrgSid(String useOrgSid);
IPage<BasePurchaseSystemVo> selectPageVo(IPage<BasePurchaseSystem> page, @Param(Constants.WRAPPER) Wrapper<BasePurchaseSystem> qw);
@Select("select * from base_purchase_system where deptSid = #{deptSid}")
BasePurchaseSystemDetailsVo fetchDetailsByDeptSid(String deptSid);
List<BasePurchaseSystemVo> selectListAllVo(@Param(Constants.WRAPPER) Wrapper<BasePurchaseSystem> qw);
@Select("select * from base_purchase_system where deptSid = #{deptSid} and sid != #{sid}")
BasePurchaseSystemDetailsVo fetchDetailsByDeptSidAndSid(@Param("deptSid") String deptSid,@Param("sid") String sid);
@Select("select * from base_purchase_system")
List<BasePurchaseSystemVo> selectListVo();
@Select("select * from base_purchase_system where useOrgSid = #{useOrgSid}")
List<BasePurchaseSystemDetailsVo> fetchDetailsByUseOrgSid(String useOrgSid);
@Select("select * from base_purchase_system where deptSid = #{deptSid}")
BasePurchaseSystemDetailsVo fetchDetailsByDeptSid(String deptSid);
@Select("select * from base_purchase_system where deptSid = #{deptSid} and sid != #{sid}")
BasePurchaseSystemDetailsVo fetchDetailsByDeptSidAndSid(@Param("deptSid") String deptSid, @Param("sid") String sid);
List<BasePurchaseSystemDetailsVo> fetchOrgCodeByUseOrgSid(String useOrgSid);
@ -81,6 +81,9 @@ public interface BasePurchaseSystemMapper extends BaseMapper<BasePurchaseSystem>
List<BasePurchaseSystem> selectByUseOrgSid(String useOrgSid);
@Update("update base_purchase_system set shareProportion = #{shareProportion} where sid = #{sid}")
void maintenance(@Param("sid") String sid,@Param("shareProportion") String shareProportion);
@Update("update base_purchase_system set shareProportion = #{shareProportion} where sid = #{sid}")
void maintenance(@Param("sid") String sid, @Param("shareProportion") String shareProportion);
@Select("select deptSid from base_purchase_system where purchaseSystemName = #{purchaseSystemName} and useOrgSid = #{useOrgSid}")
String selByPurchaseSystemName(@Param("purchaseSystemName") String purchaseSystemName, @Param("useOrgSid") String useOrgSid);
}

120
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepurchasesystem/BasePurchaseSystemRest.java

@ -36,83 +36,75 @@ import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-base(采购系统管理) <br/>
* File: BasePurchaseSystemFeignFallback.java <br/>
* Class: com.yxt.anrui.base.biz.basepurchasesystem.BasePurchaseSystemRest <br/>
* Description: 采购系统管理表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-01-06 09:27:28 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "采购系统管理表")
@RestController("com.yxt.anrui.base.biz.basepurchasesystem.BasePurchaseSystemRest")
@RestController
@RequestMapping("v1/basepurchasesystem")
public class BasePurchaseSystemRest implements BasePurchaseSystemFeign {
@Autowired
private BasePurchaseSystemService basePurchaseSystemService;
@Autowired
private BasePurchaseSystemService basePurchaseSystemService;
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<BasePurchaseSystemVo>> listPage(@RequestBody PagerQuery<BasePurchaseSystemQuery> pq){
ResultBean rb = ResultBean.fireFail();
PagerVo<BasePurchaseSystemVo> pv = basePurchaseSystemService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("根据条件分页查询数据的列表")
@PostMapping("/listPage")
public ResultBean<PagerVo<BasePurchaseSystemVo>> listPage(@RequestBody PagerQuery<BasePurchaseSystemQuery> pq) {
ResultBean rb = ResultBean.fireFail();
PagerVo<BasePurchaseSystemVo> pv = basePurchaseSystemService.listPageVo(pq);
return rb.success().setData(pv);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody BasePurchaseSystemDto dto){
return basePurchaseSystemService.saveOrUpdateDto(dto);
}
@Override
@ApiOperation("新增或修改")
@PostMapping("/save")
public ResultBean save(@RequestBody BasePurchaseSystemDto dto) {
return basePurchaseSystemService.saveOrUpdateDto(dto);
}
@Override
public ResultBean maintenance(String sid, String shareProportion) {
return basePurchaseSystemService.maintenance(sid,shareProportion);
}
@Override
public ResultBean maintenance(String sid, String shareProportion) {
return basePurchaseSystemService.maintenance(sid, shareProportion);
}
@Override
@ApiOperation("根据sid批量删除")
@Override
@ApiOperation("根据sid批量删除")
@DeleteMapping("/delBySids")
public ResultBean delBySids(@RequestBody String[] sids){
ResultBean rb = ResultBean.fireFail();
basePurchaseSystemService.delBySids(sids);
return rb.success();
}
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb = ResultBean.fireFail();
basePurchaseSystemService.delBySids(sids);
return rb.success();
}
@Override
@ApiOperation("根据SID获取一条记录")
@Override
@ApiOperation("根据SID获取一条记录")
@GetMapping("/fetchDetailsBySid/{sid}")
public ResultBean<BasePurchaseSystemDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid){
ResultBean rb = ResultBean.fireFail();
BasePurchaseSystemDetailsVo vo = basePurchaseSystemService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
public ResultBean<BasePurchaseSystemDetailsVo> fetchDetailsBySid(@PathVariable("sid") String sid) {
ResultBean rb = ResultBean.fireFail();
BasePurchaseSystemDetailsVo vo = basePurchaseSystemService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@Override
public ResultBean<List<BasePurchaseSystemDetailsVo>> fetchDetailsByUseOrgSid(String useOrgSid) {
return basePurchaseSystemService.fetchDetailsByUseOrgSid(useOrgSid);
}
@Override
public ResultBean<List<BasePurchaseSystemDetailsVo>> fetchDetailsByUseOrgSid(String useOrgSid) {
return basePurchaseSystemService.fetchDetailsByUseOrgSid(useOrgSid);
}
@Override
public ResultBean<List<BasePurchaseSystemDetailsVo>> fetchOrgCodeByUseOrgSid(String useOrgSid) {
return basePurchaseSystemService.fetchOrgCodeByUseOrgSid(useOrgSid);
}
@Override
public ResultBean<List<BasePurchaseSystemDetailsVo>> fetchOrgCodeByUseOrgSid(String useOrgSid) {
return basePurchaseSystemService.fetchOrgCodeByUseOrgSid(useOrgSid);
}
@Override
public ResultBean<BasePurchaseSystemDetailsVo> fetchDetailsByDeptSid(String deptSid) {
return basePurchaseSystemService.fetchDetailsByDeptSid(deptSid);
}
@Override
public ResultBean<BasePurchaseSystemDetailsVo> fetchDetailsByDeptSid(String deptSid) {
return basePurchaseSystemService.fetchDetailsByDeptSid(deptSid);
}
@Override
public ResultBean<List<AppBasePurchSystemVo>> fetchDetailsByUseOrgPath(String orgPath) {
return basePurchaseSystemService.fetchDetailsByUseOrgPath(orgPath);
}
@Override
public ResultBean<List<AppBasePurchSystemVo>> fetchDetailsByUseOrgPath(String orgPath) {
return basePurchaseSystemService.fetchDetailsByUseOrgPath(orgPath);
}
@Override
public ResultBean<String> selByPurchaseSystemName(String purchaseSystemName, String useOrgSid) {
return basePurchaseSystemService.selByPurchaseSystemName(purchaseSystemName, useOrgSid);
}
}

204
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basepurchasesystem/BasePurchaseSystemService.java

@ -57,109 +57,115 @@ import java.util.List;
@Service
public class BasePurchaseSystemService extends MybatisBaseService<BasePurchaseSystemMapper, BasePurchaseSystem> {
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
private QueryWrapper<BasePurchaseSystem> createQueryWrapper(BasePurchaseSystemQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BasePurchaseSystem> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<BasePurchaseSystemVo> listPageVo(PagerQuery<BasePurchaseSystemQuery> pq) {
BasePurchaseSystemQuery query = pq.getParams();
QueryWrapper<BasePurchaseSystem> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getUseOrgSid())){
qw.eq("useOrgSid",query.getUseOrgSid());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())){
qw.like("purchaseSystemName",query.getPurchaseSystemName());
}
IPage<BasePurchaseSystem> page = PagerUtil.queryToPage(pq);
IPage<BasePurchaseSystemVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<BasePurchaseSystemVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveOrUpdateDto(BasePurchaseSystemDto dto){
ResultBean rb = ResultBean.fireFail();
@Autowired
private SysStaffOrgFeign sysStaffOrgFeign;
private QueryWrapper<BasePurchaseSystem> createQueryWrapper(BasePurchaseSystemQuery query) {
// todo: 这里根据具体业务调整查询条件
// 多字段Like示例:qw.and(wrapper -> wrapper.like("name", query.getName()).or().like("remark", query.getName()));
QueryWrapper<BasePurchaseSystem> qw = new QueryWrapper<>();
return qw;
}
public PagerVo<BasePurchaseSystemVo> listPageVo(PagerQuery<BasePurchaseSystemQuery> pq) {
BasePurchaseSystemQuery query = pq.getParams();
QueryWrapper<BasePurchaseSystem> qw = new QueryWrapper<>();
if (StringUtils.isNotBlank(query.getUseOrgSid())) {
qw.eq("useOrgSid", query.getUseOrgSid());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
IPage<BasePurchaseSystem> page = PagerUtil.queryToPage(pq);
IPage<BasePurchaseSystemVo> pagging = baseMapper.selectPageVo(page, qw);
PagerVo<BasePurchaseSystemVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}
public ResultBean saveOrUpdateDto(BasePurchaseSystemDto dto) {
ResultBean rb = ResultBean.fireFail();
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = baseMapper.fetchDetailsByDeptSid(dto.getDeptSid());
if (basePurchaseSystemDetailsVo == null){
this.insertByDto(dto);
return rb.success().setMsg("添加成功");
}
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = baseMapper.fetchDetailsByDeptSid(dto.getDeptSid());
if (basePurchaseSystemDetailsVo == null) {
this.insertByDto(dto);
return rb.success().setMsg("添加成功");
}
return rb.setMsg("该部门下已存在采购系统,请重新选择");
}
BasePurchaseSystem basePurchaseSystem = fetchBySid(dtoSid);
if (basePurchaseSystem == null){
return rb.setMsg("该采购系统信息不存在");
}
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = baseMapper.fetchDetailsByDeptSidAndSid(dto.getDeptSid(), dtoSid);
if (basePurchaseSystemDetailsVo == null){
this.updateByDto(dto);
return rb.success().setMsg("修改成功");
}
return rb.setMsg("该部门下已存在采购系统,请重新选择");
}
public void insertByDto(BasePurchaseSystemDto dto){
BasePurchaseSystem entity = new BasePurchaseSystem();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(BasePurchaseSystemDto dto){
String dtoSid = dto.getSid();
BasePurchaseSystem basePurchaseSystem = fetchBySid(dtoSid);
if (basePurchaseSystem == null) {
return rb.setMsg("该采购系统信息不存在");
}
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = baseMapper.fetchDetailsByDeptSidAndSid(dto.getDeptSid(), dtoSid);
if (basePurchaseSystemDetailsVo == null) {
this.updateByDto(dto);
return rb.success().setMsg("修改成功");
}
return rb.setMsg("该部门下已存在采购系统,请重新选择");
}
public void insertByDto(BasePurchaseSystemDto dto) {
BasePurchaseSystem entity = new BasePurchaseSystem();
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.insert(entity);
}
public void updateByDto(BasePurchaseSystemDto dto) {
String dtoSid = dto.getSid();
if (StringUtils.isBlank(dtoSid)) {
return;
}
BasePurchaseSystem entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public BasePurchaseSystemDetailsVo fetchDetailsVoBySid(String sid){
BasePurchaseSystem entity = fetchBySid(sid);
BasePurchaseSystemDetailsVo vo = new BasePurchaseSystemDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public ResultBean<List<BasePurchaseSystemDetailsVo>> fetchDetailsByUseOrgSid(String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
List<BasePurchaseSystemDetailsVo> basePurchaseSystemDetailsVos = baseMapper.fetchDetailsByUseOrgSid(useOrgSid);
return rb.success().setData(basePurchaseSystemDetailsVos);
}
public ResultBean<BasePurchaseSystemDetailsVo> fetchDetailsByDeptSid(String deptSid) {
ResultBean rb = ResultBean.fireFail();
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = baseMapper.fetchDetailsByDeptSid(deptSid);
return rb.success().setData(basePurchaseSystemDetailsVo);
}
public ResultBean<List<BasePurchaseSystemDetailsVo>> fetchOrgCodeByUseOrgSid(String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
List<BasePurchaseSystemDetailsVo> basePurchaseSystemDetailsVos = baseMapper.fetchOrgCodeByUseOrgSid(useOrgSid);
return rb.success().setData(basePurchaseSystemDetailsVos);
}
public ResultBean<List<AppBasePurchSystemVo>> fetchDetailsByUseOrgPath(String orgPath) {
ResultBean rb = ResultBean.fireFail();
String orgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
List<AppBasePurchSystemVo> basePurchSystemVoList = baseMapper.fetchDetailsByUseOrgPath(orgSid);
return rb.success().setData(basePurchSystemVoList);
}
public List<BasePurchaseSystem> selectByUseOrgSid(String useOrgSid) {
return baseMapper.selectByUseOrgSid(useOrgSid);
}
public ResultBean maintenance(String sid, String shareProportion) {
ResultBean rb = ResultBean.fireFail();
baseMapper.maintenance(sid,shareProportion);
return rb.success();
}
}
BasePurchaseSystem entity = fetchBySid(dtoSid);
BeanUtil.copyProperties(dto, entity, "id", "sid");
baseMapper.updateById(entity);
}
public BasePurchaseSystemDetailsVo fetchDetailsVoBySid(String sid) {
BasePurchaseSystem entity = fetchBySid(sid);
BasePurchaseSystemDetailsVo vo = new BasePurchaseSystemDetailsVo();
BeanUtil.copyProperties(entity, vo);
return vo;
}
public ResultBean<List<BasePurchaseSystemDetailsVo>> fetchDetailsByUseOrgSid(String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
List<BasePurchaseSystemDetailsVo> basePurchaseSystemDetailsVos = baseMapper.fetchDetailsByUseOrgSid(useOrgSid);
return rb.success().setData(basePurchaseSystemDetailsVos);
}
public ResultBean<BasePurchaseSystemDetailsVo> fetchDetailsByDeptSid(String deptSid) {
ResultBean rb = ResultBean.fireFail();
BasePurchaseSystemDetailsVo basePurchaseSystemDetailsVo = baseMapper.fetchDetailsByDeptSid(deptSid);
return rb.success().setData(basePurchaseSystemDetailsVo);
}
public ResultBean<List<BasePurchaseSystemDetailsVo>> fetchOrgCodeByUseOrgSid(String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
List<BasePurchaseSystemDetailsVo> basePurchaseSystemDetailsVos = baseMapper.fetchOrgCodeByUseOrgSid(useOrgSid);
return rb.success().setData(basePurchaseSystemDetailsVos);
}
public ResultBean<List<AppBasePurchSystemVo>> fetchDetailsByUseOrgPath(String orgPath) {
ResultBean rb = ResultBean.fireFail();
String orgSid = sysStaffOrgFeign.getOrgSidByPath(orgPath).getData();
List<AppBasePurchSystemVo> basePurchSystemVoList = baseMapper.fetchDetailsByUseOrgPath(orgSid);
return rb.success().setData(basePurchSystemVoList);
}
public List<BasePurchaseSystem> selectByUseOrgSid(String useOrgSid) {
return baseMapper.selectByUseOrgSid(useOrgSid);
}
public ResultBean maintenance(String sid, String shareProportion) {
ResultBean rb = ResultBean.fireFail();
baseMapper.maintenance(sid, shareProportion);
return rb.success();
}
public ResultBean<String> selByPurchaseSystemName(String purchaseSystemName, String useOrgSid) {
ResultBean rb = ResultBean.fireFail();
String purchaseSystemSid = baseMapper.selByPurchaseSystemName(purchaseSystemName, useOrgSid);
return rb.success().setData(purchaseSystemSid);
}
}

3
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclebrand/BaseVehicleBrandMapper.java

@ -138,4 +138,7 @@ public interface BaseVehicleBrandMapper extends BaseMapper<BaseVehicleBrand> {
String selectByManufacturerSid(@Param("carBrandSid") String carBrandSid);
List<BaseVehicleBrand> selectByUseOrgSid(String sid);
@Select("select sid from base_vehicle_brand where brandName=#{brandName}")
String selByBrandName(String brandName);
}

5
anrui-base/anrui-base-biz/src/main/java/com/yxt/anrui/base/biz/basevehiclebrand/BaseVehicleBrandRest.java

@ -189,4 +189,9 @@ public class BaseVehicleBrandRest implements BaseVehicleBrandFeign {
public BaseVehicleBrand fetchBySid(String sid) {
return baseVehicleBrandService.fetchBySid(sid);
}
@Override
public ResultBean<String> selByBrandName(String brandName) {
return baseVehicleBrandService.selByBrandName(brandName);
}
}

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

@ -10,6 +10,7 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.AppResultData;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
@ -256,4 +257,10 @@ public class BaseVehicleBrandService extends MybatisBaseService<BaseVehicleBrand
public List<BaseVehicleBrand> selectByUseOrgSid(String sid) {
return baseMapper.selectByUseOrgSid(sid);
}
public ResultBean<String> selByBrandName(String brandName) {
ResultBean rb = ResultBean.fireFail();
String sid = baseMapper.selByBrandName(brandName);
return rb.success().setData(sid);
}
}

34
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/busdeliveredapply/BusDeliveredApplyService.java

@ -1191,14 +1191,17 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
SolutionsDetailsVo solutionsDetailsVo = loanSolutionsFeign.selectDetailsss(saleOrderSid).getData();
if (solutionsDetailsVo != null) {
//三方金融的,在出库时推送单车返利数据,金额为厂家贴息。
if ("2".equals(busSalesOrder.getFinancePlan())) {
Future future11 = pool.submit(() -> {
pushVehRebate(busDeliveredApply, detailsList, solutionsDetailsVo.getFactoryDiscount());
});
Future future12 = pool.submit(() -> {
pushVehRebateAdjustBill(busDeliveredApply, detailsList, solutionsDetailsVo);
});
if(!"0".equals(solutionsDetailsVo.getFactoryDiscount())){
if ("2".equals(busSalesOrder.getFinancePlan())) {
Future future11 = pool.submit(() -> {
pushVehRebate(busDeliveredApply, detailsList, solutionsDetailsVo.getFactoryDiscount());
});
Future future12 = pool.submit(() -> {
pushVehRebateAdjustBill(busDeliveredApply, detailsList, solutionsDetailsVo);
});
}
}
}
}
}
@ -1680,14 +1683,17 @@ public class BusDeliveredApplyService extends MybatisBaseService<BusDeliveredApp
SolutionsDetailsVo solutionsDetailsVo = loanSolutionsFeign.selectDetailsss(saleOrderSid).getData();
if (solutionsDetailsVo != null) {
//三方金融的,在出库时推送单车返利数据,金额为厂家贴息。
if ("2".equals(busSalesOrder.getFinancePlan())) {
Future future11 = pool.submit(() -> {
pushVehRebate(busDeliveredApply, detailsList, solutionsDetailsVo.getFactoryDiscount());
});
Future future12 = pool.submit(() -> {
pushVehRebateAdjustBill(busDeliveredApply, detailsList, solutionsDetailsVo);
});
if(!"0".equals(solutionsDetailsVo.getFactoryDiscount())){
if ("2".equals(busSalesOrder.getFinancePlan())) {
Future future11 = pool.submit(() -> {
pushVehRebate(busDeliveredApply, detailsList, solutionsDetailsVo.getFactoryDiscount());
});
Future future12 = pool.submit(() -> {
pushVehRebateAdjustBill(busDeliveredApply, detailsList, solutionsDetailsVo);
});
}
}
}
}
}

2
anrui-buscenter/anrui-buscenter-biz/src/main/java/com/yxt/anrui/buscenter/biz/bussalesorderreturnvehapply/BusSalesOrderReturnVehApplyService.java

@ -746,7 +746,7 @@ public class BusSalesOrderReturnVehApplyService extends MybatisBaseService<BusSa
//修改出库申请车辆状态
busDeliveredApplyDetailsService.updateIsDel(vehSid);
//删除推送的单车返利管理
scmVehRebateFeign.delByVehSid(vehSid);
scmVehRebateFeign.delByVehSid2(vehSid,busSalesOrderReturnVehApply.getUseOrgSid(),"029");
}
//------------------------修改车辆持久状态--------------------------
BusSalesOrderVehicle busSalesOrderVehicle = busSalesOrderVehicleService.fetchBySid(busSalesOrderReturnVehDetailsVo.getBusVinSid());

2
anrui-fin/anrui-fin-api/src/main/java/com/yxt/anrui/fin/api/fincollectionconfirmation/FinCollectionConfirmationFeign.java

@ -118,7 +118,7 @@ public interface FinCollectionConfirmationFeign {
@PostMapping("/selectSids")
ResultBean<List<String>> selectSids(@RequestParam("busVehSid") String busVehSid);
/*-------------------------------------------------------------------------*/
/*-----------------------------售后认款申请--------------------------------------------*/
@ApiOperation("售后提交新增保存")
@PostMapping("/asSave")

171
anrui-fin/anrui-fin-biz/src/main/java/com/yxt/anrui/fin/biz/fincollectionconfirmation/FinCollectionConfirmationService.java

@ -52,14 +52,19 @@ import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerDe
import com.yxt.anrui.buscenter.api.bussalesorderborrower.BusSalesOrderBorrowerFeign;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicle;
import com.yxt.anrui.buscenter.api.bussalesordervehicle.BusSalesOrderVehicleFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.*;
import com.yxt.anrui.crm.api.crmcustomertemp.AppCrmCustomerTempDto;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempFeign;
import com.yxt.anrui.crm.api.crmcustomertemp.CrmCustomerTempVo;
import com.yxt.anrui.crm.api.crmcustomertemp.CustomerQuery;
import com.yxt.anrui.fin.api.fincollectionconfirmation.*;
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.AppBusArrearsCarryMoneyVo;
import com.yxt.anrui.fin.api.fincollectionconfirmation.app.FinConfirmDto;
import com.yxt.anrui.fin.api.fincollectionconfirmation.as.*;
import com.yxt.anrui.fin.api.fincollectionconfirmation.rsk.*;
import com.yxt.anrui.fin.api.finpaymentrecord.FinPaymentrecordDto;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.*;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.AppFinSelectedReceivablesDetailedDto;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedDto;
import com.yxt.anrui.fin.api.finselectedreceivablesdetailed.FinSelectedReceivablesDetailedVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.AppFinUncollectedReceivablesDetailedVo;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailed.FinUncollectedReceivablesDetailed;
import com.yxt.anrui.fin.api.finuncollectedreceivablesdetailedjr.FinUncollectedReceivablesDetailedJR;
@ -96,9 +101,6 @@ import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBank;
import com.yxt.anrui.riskcenter.api.loanfinbank.LoanFinBankFeign;
import com.yxt.anrui.riskcenter.api.loanfinotherPolicy.LoanFinOtherPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicy;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyFeign;
import com.yxt.anrui.riskcenter.api.loanfinpolicy.LoanFinPolicyVo;
import com.yxt.anrui.riskcenter.api.loanmonthlyaccrualrecord.LoanMonthlyAccrualRecord;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistory;
import com.yxt.anrui.riskcenter.api.loanpushfundhistory.LoanPushFundHistoryFeign;
import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistory;
@ -106,15 +108,11 @@ import com.yxt.anrui.riskcenter.api.loanrepaymenthistory.LoanRepaymentHistoryFei
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanPlanDetailsVoForFundVoucher;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetails;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsFeign;
import com.yxt.anrui.riskcenter.api.loanrepaymentplandetails.LoanRepaymentPlanDetailsForOverDue;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentSchedule;
import com.yxt.anrui.riskcenter.api.loanrepaymentschedule.LoanRepaymentScheduleFeign;
import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApply;
import com.yxt.anrui.riskcenter.api.loansettleapply.LoanSettleApplyFeign;
import com.yxt.anrui.riskcenter.api.loansettleapply.SettleFinVo;
import com.yxt.anrui.riskcenter.api.loansettlebankcost.LoanSettleBankCost;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutions;
import com.yxt.anrui.riskcenter.api.loansolutions.LoanSolutionsFeign;
import com.yxt.anrui.riskcenter.api.loansolutionsdetail.LoanSolutionsDetail;
import com.yxt.anrui.riskcenter.api.loansolutionsotherpolicy.LoanSolutionsOtherpolicy;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateDto;
@ -123,7 +121,10 @@ import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVehDto;
import com.yxt.common.base.config.component.DocPdfComponent;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.*;
import com.yxt.common.base.utils.HanZiConverterPinYin;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.base.utils.WordConvertUtils;
import com.yxt.common.base.utils.WordUtils;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
@ -2205,14 +2206,6 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
creditResult.setResultDetails(collectionDetailDtoListOne);
creditResult.setRemarks("放款差额");
creditResultService.pushOtherReceivableBill(creditResult);
//推送单车返利管理
ScmVehRebateDto scmVehRebateDto = new ScmVehRebateDto();
List<ScmVehRebateVehDto> scmVehRebateVehDtos = new ArrayList<>();
ScmVehRebateVehDto scmVehRebateVehDto = new ScmVehRebateVehDto();
scmVehRebateDto.setCreateBySid(confirmation.getCreateBySid());
scmVehRebateDto.setRebateTypeKey("029");
scmVehRebateDto.setRebateTypeValue("金融贴息");
scmVehRebateDto.setRebateName("金融贴息");
BigDecimal all = BigDecimal.ZERO;
if(loanSolutions.getActualDiscount() != null){
all = all.add(loanSolutions.getActualDiscount());
@ -2220,33 +2213,44 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if(loanSolutionsOtherpolicy != null && loanSolutionsOtherpolicy.getOtherActualDiscount() != null){
all = all.add(loanSolutionsOtherpolicy.getOtherActualDiscount());
}
scmVehRebateDto.setCalculationStandard(all.toString());
scmVehRebateDto.setPalceGenDate(DateUtil.format(new Date(), "yyyy-MM"));
scmVehRebateDto.setCalculationModeKey("002");
scmVehRebateDto.setCalculationModeValue("固定金额");
scmVehRebateDto.setOrgPath(confirmation.getOrgSidPath());
scmVehRebateVehDto.setState("2");
scmVehRebateVehDto.setBrandSid(baseVehicle.getCarBrandSid());
scmVehRebateVehDto.setBrandName(baseVehicle.getCarBrandName());
scmVehRebateVehDto.setVehModelSid(baseVehicle.getModelSid());
scmVehRebateVehDto.setVehModelName(baseVehicle.getModelName());
scmVehRebateVehDto.setVehSid(baseVehicle.getSid());
scmVehRebateVehDto.setVinNo(baseVehicle.getVinNo().substring(baseVehicle.getVinNo().length() - 8));
scmVehRebateVehDto.setManufactorSettlementPrice(baseVehicle.getCostPrice().toString());
scmVehRebateVehDto.setFreight(baseVehicle.getFreight().toString());
BigDecimal ll = BigDecimal.ZERO;
if(loanSolutions.getActualDiscount() != null){
ll = ll.add(loanSolutions.getActualDiscount());
}
if(loanSolutionsOtherpolicy != null && loanSolutionsOtherpolicy.getOtherActualDiscount() != null){
ll = ll.add(loanSolutionsOtherpolicy.getOtherActualDiscount());
if(all.compareTo(BigDecimal.ZERO) > 0){
//推送单车返利管理
ScmVehRebateDto scmVehRebateDto = new ScmVehRebateDto();
List<ScmVehRebateVehDto> scmVehRebateVehDtos = new ArrayList<>();
ScmVehRebateVehDto scmVehRebateVehDto = new ScmVehRebateVehDto();
scmVehRebateDto.setCreateBySid(confirmation.getCreateBySid());
scmVehRebateDto.setRebateTypeKey("029");
scmVehRebateDto.setRebateTypeValue("金融贴息");
scmVehRebateDto.setRebateName("金融贴息");
scmVehRebateDto.setCalculationStandard(all.toString());
scmVehRebateDto.setPalceGenDate(DateUtil.format(new Date(), "yyyy-MM"));
scmVehRebateDto.setCalculationModeKey("002");
scmVehRebateDto.setCalculationModeValue("固定金额");
scmVehRebateDto.setOrgPath(confirmation.getOrgSidPath());
scmVehRebateVehDto.setState("2");
scmVehRebateVehDto.setBrandSid(baseVehicle.getCarBrandSid());
scmVehRebateVehDto.setBrandName(baseVehicle.getCarBrandName());
scmVehRebateVehDto.setVehModelSid(baseVehicle.getModelSid());
scmVehRebateVehDto.setVehModelName(baseVehicle.getModelName());
scmVehRebateVehDto.setVehSid(baseVehicle.getSid());
scmVehRebateVehDto.setVinNo(baseVehicle.getVinNo().substring(baseVehicle.getVinNo().length() - 8));
scmVehRebateVehDto.setManufactorSettlementPrice(baseVehicle.getCostPrice().toString());
scmVehRebateVehDto.setFreight(baseVehicle.getFreight().toString());
BigDecimal ll = BigDecimal.ZERO;
if(loanSolutions.getActualDiscount() != null){
ll = ll.add(loanSolutions.getActualDiscount());
}
if(loanSolutionsOtherpolicy != null && loanSolutionsOtherpolicy.getOtherActualDiscount() != null){
ll = ll.add(loanSolutionsOtherpolicy.getOtherActualDiscount());
}
scmVehRebateVehDto.setEstimateRebate(ll.toString());
scmVehRebateVehDto.setPurchaseSystemSid(baseVehicle.getPurchaseSystemSid());
scmVehRebateVehDto.setPurchaseSystemName(baseVehicle.getPurchaseSystemName());
scmVehRebateVehDtos.add(scmVehRebateVehDto);
scmVehRebateDto.setScmVehRebateVehs(scmVehRebateVehDtos);
scmVehRebateFeign.save(scmVehRebateDto);
}
scmVehRebateVehDto.setEstimateRebate(ll.toString());
scmVehRebateVehDto.setPurchaseSystemSid(baseVehicle.getPurchaseSystemSid());
scmVehRebateVehDto.setPurchaseSystemName(baseVehicle.getPurchaseSystemName());
scmVehRebateVehDtos.add(scmVehRebateVehDto);
scmVehRebateDto.setScmVehRebateVehs(scmVehRebateVehDtos);
scmVehRebateFeign.save(scmVehRebateDto);
finUncollectedReceivablesDetailed.setReveivableMoney(finSelectedReceivablesDetailed.getSubscriptionMoney().toString());
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
}
@ -2374,14 +2378,6 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
creditResult.setResultDetails(collectionDetailDtoListOne);
creditResult.setRemarks("放款差额");
creditResultService.pushOtherReceivableBill(creditResult);
//推送单车返利管理
ScmVehRebateDto scmVehRebateDto = new ScmVehRebateDto();
List<ScmVehRebateVehDto> scmVehRebateVehDtos = new ArrayList<>();
ScmVehRebateVehDto scmVehRebateVehDto = new ScmVehRebateVehDto();
scmVehRebateDto.setCreateBySid(confirmation.getCreateBySid());
scmVehRebateDto.setRebateTypeKey("029");
scmVehRebateDto.setRebateTypeValue("金融贴息");
scmVehRebateDto.setRebateName("金融贴息");
BigDecimal all = BigDecimal.ZERO;
if(loanSolutions.getActualDiscount() != null){
all = all.add(loanSolutions.getActualDiscount());
@ -2389,33 +2385,45 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if(loanSolutionsOtherpolicy != null && loanSolutionsOtherpolicy.getOtherActualDiscount() != null){
all = all.add(loanSolutionsOtherpolicy.getOtherActualDiscount());
}
scmVehRebateDto.setCalculationStandard(all.toString());
scmVehRebateDto.setPalceGenDate(DateUtil.format(new Date(), "yyyy-MM"));
scmVehRebateDto.setCalculationModeKey("002");
scmVehRebateDto.setCalculationModeValue("固定金额");
scmVehRebateDto.setOrgPath(confirmation.getOrgSidPath());
scmVehRebateVehDto.setState("2");
scmVehRebateVehDto.setBrandSid(baseVehicle.getCarBrandSid());
scmVehRebateVehDto.setBrandName(baseVehicle.getCarBrandName());
scmVehRebateVehDto.setVehModelSid(baseVehicle.getModelSid());
scmVehRebateVehDto.setVehModelName(baseVehicle.getModelName());
scmVehRebateVehDto.setVehSid(baseVehicle.getSid());
scmVehRebateVehDto.setVinNo(baseVehicle.getVinNo().substring(baseVehicle.getVinNo().length() - 8));
scmVehRebateVehDto.setManufactorSettlementPrice(baseVehicle.getCostPrice().toString());
scmVehRebateVehDto.setFreight(baseVehicle.getFreight().toString());
BigDecimal ll = BigDecimal.ZERO;
if(loanSolutions.getActualDiscount() != null){
ll = ll.add(loanSolutions.getActualDiscount());
}
if(loanSolutionsOtherpolicy != null && loanSolutionsOtherpolicy.getOtherActualDiscount() != null){
ll = ll.add(loanSolutionsOtherpolicy.getOtherActualDiscount());
if(all.compareTo(BigDecimal.ZERO)>0){
//推送单车返利管理
ScmVehRebateDto scmVehRebateDto = new ScmVehRebateDto();
List<ScmVehRebateVehDto> scmVehRebateVehDtos = new ArrayList<>();
ScmVehRebateVehDto scmVehRebateVehDto = new ScmVehRebateVehDto();
scmVehRebateDto.setCreateBySid(confirmation.getCreateBySid());
scmVehRebateDto.setRebateTypeKey("029");
scmVehRebateDto.setRebateTypeValue("金融贴息");
scmVehRebateDto.setRebateName("金融贴息");
scmVehRebateDto.setCalculationStandard(all.toString());
scmVehRebateDto.setPalceGenDate(DateUtil.format(new Date(), "yyyy-MM"));
scmVehRebateDto.setCalculationModeKey("002");
scmVehRebateDto.setCalculationModeValue("固定金额");
scmVehRebateDto.setOrgPath(confirmation.getOrgSidPath());
scmVehRebateVehDto.setState("2");
scmVehRebateVehDto.setBrandSid(baseVehicle.getCarBrandSid());
scmVehRebateVehDto.setBrandName(baseVehicle.getCarBrandName());
scmVehRebateVehDto.setVehModelSid(baseVehicle.getModelSid());
scmVehRebateVehDto.setVehModelName(baseVehicle.getModelName());
scmVehRebateVehDto.setVehSid(baseVehicle.getSid());
scmVehRebateVehDto.setVinNo(baseVehicle.getVinNo().substring(baseVehicle.getVinNo().length() - 8));
scmVehRebateVehDto.setManufactorSettlementPrice(baseVehicle.getCostPrice().toString());
scmVehRebateVehDto.setFreight(baseVehicle.getFreight().toString());
BigDecimal ll = BigDecimal.ZERO;
if(loanSolutions.getActualDiscount() != null){
ll = ll.add(loanSolutions.getActualDiscount());
}
if(loanSolutionsOtherpolicy != null && loanSolutionsOtherpolicy.getOtherActualDiscount() != null){
ll = ll.add(loanSolutionsOtherpolicy.getOtherActualDiscount());
}
scmVehRebateVehDto.setEstimateRebate(ll.toString());
scmVehRebateVehDto.setPurchaseSystemSid(baseVehicle.getPurchaseSystemSid());
scmVehRebateVehDto.setPurchaseSystemName(baseVehicle.getPurchaseSystemName());
scmVehRebateVehDtos.add(scmVehRebateVehDto);
scmVehRebateDto.setScmVehRebateVehs(scmVehRebateVehDtos);
scmVehRebateFeign.save(scmVehRebateDto);
}
scmVehRebateVehDto.setEstimateRebate(ll.toString());
scmVehRebateVehDto.setPurchaseSystemSid(baseVehicle.getPurchaseSystemSid());
scmVehRebateVehDto.setPurchaseSystemName(baseVehicle.getPurchaseSystemName());
scmVehRebateVehDtos.add(scmVehRebateVehDto);
scmVehRebateDto.setScmVehRebateVehs(scmVehRebateVehDtos);
scmVehRebateFeign.save(scmVehRebateDto);
finUncollectedReceivablesDetailed.setReveivableMoney(finSelectedReceivablesDetailed.getSubscriptionMoney().toString());
finUncollectedReceivablesDetailedService.updateById(finUncollectedReceivablesDetailed);
}
@ -5826,6 +5834,11 @@ public class FinCollectionConfirmationService extends MybatisBaseService<FinColl
if (finSelectedReceivablesDetailedDtos.isEmpty()) {
return rb.setMsg("请添加认款信息");
}
for (AppFinSelectedReceivablesDetailedRskDto s : finSelectedReceivablesDetailedDtos) {
if (s.getConfirmMoney() == null) {
return rb.setMsg("款项明细中认款金额不能为空");
}
}
//认款金额相加
BigDecimal subscriptionMoneyAll = finSelectedReceivablesDetailedDtos.stream().map(AppFinSelectedReceivablesDetailedRskDto::getConfirmMoney).reduce(BigDecimal.ZERO, BigDecimal::add);
//判断收款金额与所选的总认款金额是否相等

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

@ -1656,21 +1656,23 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
bankCode = dictCommonVo.getDictValue();
}
if (voucherDetail.getSceneCode().equals(SceneCodeEnum.settle_VOUCHER1.getCode())) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
if (voucherDetail.getPaymentCharges().compareTo(BigDecimal.ZERO) > 0) {
if (voucherDetail.getAmount().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
if (voucherDetail.getPaymentCharges().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto0 = new Voucher.VoucherResultDetailDto(); //借方
dto0.setSummary("付款手续费");
dto0.setSubjectNo("6603.03.00");
dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges()));
resultDetails.add(dto0);
}
if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) > 0) {
if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方
dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免");
dto2.setSubjectNo("6002.01.17");
@ -1678,49 +1680,58 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto2.setCredit(String.valueOf(voucherDetail.getNoRelief()));
resultDetails.add(dto2);
}
if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) > 0) {
if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方
dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免");
dto3.setSubjectNo("1201.01.00");
dto3.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setDimensionCustom(voucherDetail.getCustomerCode());
dto3.setCredit(String.valueOf(voucherDetail.getRelief()));
resultDetails.add(dto3);
}
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款");
dto4.setSubjectNo("1009.01.00");
dto4.setDimensionDept(voucherDetail.getDeptCode());
dto4.setDimensionCustom(voucherDetail.getCustomerCode());
dto4.setBank("342");
dto4.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
resultDetails.add(dto4);
Voucher.VoucherResultDetailDto dto5 = new Voucher.VoucherResultDetailDto(); //贷方
dto5.setSummary(voucherDetail.getBankName() + "结清");
if (voucher.getPayTypeCode().equals("02")) {
dto5.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto5.setSubjectNo("1002.02.01");
if (voucherDetail.getSubtrahend().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "个贷保证金抵结清款");
dto4.setSubjectNo("1009.01.00");
dto4.setDimensionDept(voucherDetail.getDeptCode());
dto4.setDimensionCustom(voucherDetail.getCustomerCode());
dto4.setBank("342");
dto4.setCredit(String.valueOf(voucherDetail.getSubtrahend()));
resultDetails.add(dto4);
}
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto5 = new Voucher.VoucherResultDetailDto(); //贷方
dto5.setSummary(voucherDetail.getBankName() + "结清");
if (voucher.getPayTypeCode().equals("02")) {
dto5.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto5.setSubjectNo("1002.02.01");
}
dto5.setBankAccount(voucher.getBankAccount());
dto5.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto5);
}
dto5.setBankAccount(voucher.getBankAccount());
dto5.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto5);
} else {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
if (voucherDetail.getPaymentCharges().compareTo(BigDecimal.ZERO) > 0) {
if (voucherDetail.getAmount().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto1 = new Voucher.VoucherResultDetailDto(); //借方
dto1.setSummary(voucherDetail.getBankName() + "结清");
dto1.setSubjectNo(bankCode);
dto1.setDimensionDept(voucherDetail.getDeptCode());
dto1.setDimensionCustom(voucherDetail.getCustomerCode());
dto1.setDebit(String.valueOf(voucherDetail.getAmount()));
resultDetails.add(dto1);
}
if (voucherDetail.getPaymentCharges().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto0 = new Voucher.VoucherResultDetailDto(); //借方
dto0.setSummary("付款手续费");
dto0.setSubjectNo("6603.03.00");
dto0.setDebit(String.valueOf(voucherDetail.getPaymentCharges()));
resultDetails.add(dto0);
}
if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) > 0) {
if (voucherDetail.getNoRelief().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto2 = new Voucher.VoucherResultDetailDto(); //借方
dto2.setSummary(voucherDetail.getBankName() + "结清未到期利息不减免");
dto2.setSubjectNo("6002.01.17");
@ -1728,7 +1739,7 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto2.setCredit(String.valueOf(voucherDetail.getNoRelief()));
resultDetails.add(dto2);
}
if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) > 0) {
if (voucherDetail.getRelief().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto3 = new Voucher.VoucherResultDetailDto(); //借方
dto3.setSummary(voucherDetail.getBankName() + "结清未到期利息减免");
dto3.setSubjectNo("1201.01.00");
@ -1737,16 +1748,18 @@ public class FinKingDeeFeignRest implements FinKingDeeFeign {
dto3.setCredit(String.valueOf(voucherDetail.getRelief()));
resultDetails.add(dto3);
}
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "结清");
if (voucher.getPayTypeCode().equals("02")) {
dto4.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto4.setSubjectNo("1002.02.01");
if (voucherDetail.getBalance().compareTo(BigDecimal.ZERO) != 0) {
Voucher.VoucherResultDetailDto dto4 = new Voucher.VoucherResultDetailDto(); //贷方
dto4.setSummary(voucherDetail.getBankName() + "结清");
if (voucher.getPayTypeCode().equals("02")) {
dto4.setSubjectNo("1002.01.00");
} else if (voucher.getPayTypeCode().equals("01")) {
dto4.setSubjectNo("1002.02.01");
}
dto4.setBankAccount(voucher.getBankAccount());
dto4.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto4);
}
dto4.setBankAccount(voucher.getBankAccount());
dto4.setCredit(String.valueOf(voucherDetail.getBalance()));
resultDetails.add(dto4);
}
}
newVoucher.setResultDetails(resultDetails);

23
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowapprover/FlowApprover.java

@ -0,0 +1,23 @@
package com.yxt.anrui.flowable.api.flowapprover;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Data
public class FlowApprover extends BaseEntity {
private static final long serialVersionUID = 8140464420543873852L;
@ApiModelProperty("申请sid")
private String businessSid;
@ApiModelProperty("序号")
private Integer sortNo;
@ApiModelProperty("审批人sid")
private String approverSid;
@ApiModelProperty("审批人名称")
private String approverName;
}

20
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowapprover/FlowApproverDto.java

@ -0,0 +1,20 @@
package com.yxt.anrui.flowable.api.flowapprover;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Data
public class FlowApproverDto {
@ApiModelProperty("申请sid")
private String businessSid;
@ApiModelProperty("审批人sid")
private List<String> approverSidList;
}

21
anrui-flowable/anrui-flowable-api/src/main/java/com/yxt/anrui/flowable/api/flowcc/FlowCc.java

@ -0,0 +1,21 @@
package com.yxt.anrui.flowable.api.flowcc;
import com.yxt.common.core.domain.BaseEntity;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Data
public class FlowCc extends BaseEntity {
private static final long serialVersionUID = -4299550952719113083L;
@ApiModelProperty("申请sid")
private String businessSid;
@ApiModelProperty("抄送人sids")
private String ccSids;
@ApiModelProperty("抄送人名称")
private String ccNames;
}

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

@ -38,10 +38,10 @@ public enum ProcDefEnum {
QKBUSDELIVEREDAPPLY("欠款出库申请", "process_161otrwo:3:7192504"),
BASESHUNINVOICAPPLY("调车开票申请", "process_u4xrvaso:1:400008"),
BASEVEHINSTALLMODPRICE("上装调价申请", "process_s0a0svth:1:492508"),
SCMVEHREBATEWITHAPPLY("单车返利预提申请", "process_qegarc7r:4:16412508"),
SCMVEHREBATECHECKAPPLY("单车返利核对申请", "process_3xtbbru8:4:16412512"),
SCMSPECIALREBATEWITHAPPLY("专项返利预提申请", "process_l0yxpgs2:4:16412520"),
SCMSPECIALREBATECHECKAPPLY("专项返利核对申请", "process_qw22vupn:4:16412516"),
SCMVEHREBATEWITHAPPLY("单车返利预提申请", "process_qegarc7r:5:17935004"),
SCMVEHREBATECHECKAPPLY("单车返利核对申请", "process_3xtbbru8:5:17935008"),
SCMSPECIALREBATEWITHAPPLY("专项返利预提申请", "process_l0yxpgs2:5:17935012"),
SCMSPECIALREBATECHECKAPPLY("专项返利核对申请", "process_qw22vupn:5:17935016"),
SCMSPECIALREBATECHEDISTRIBUTE("专项返利分配申请", "process_h3w1aval:4:16412524"),
SCMCOLLECTIONREBATEWITHAPPLY("回款返利预提申请", "process_k4lodiyg:4:16412532"),
SCMCOLLECTIONREBATECHECKAPPLY("回款返利核对申请", "process_fgrv1mbv:4:16412528"),

39
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow3/Flow3Service.java

@ -95,8 +95,6 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
private MessageFeign messageFeign;
@Autowired
private SysFlowccFeign sysFlowccFeign;
@Autowired
private ProcessEngine processEngine;
public ResultBean<UpdateFlowFieldVo> businessStartProcessInstanceById(BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
@ -146,6 +144,8 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
String id_ = "";
String name_ = "";
String task_def_key_ = "";
//设置是否是管理员自动审批,默认否
boolean adminContains = false;
//查询当前实例的最新待办任务
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
if (StringUtils.isBlank(nextNodeUserSids)) {
@ -168,6 +168,21 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
taskService.setVariablesLocal(id_, variables);
}
}
tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
//遍历待办任务
for (int i = 0; i < tasks.size(); i++) {
Task task2 = tasks.get(i);
String isMultiInstanceTask = isMultiInstanceTask(task2);
id_ = task2.getId();
task_def_key_ = task2.getTaskDefinitionKey();
name_ = task2.getName();
if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) {
if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())){
adminContains = true;
break;
}
}
}
} else {
Task task2 = tasks.get(0);
id_ = task2.getId();
@ -179,8 +194,10 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
taskService.setVariablesLocal(id_, variables);
}
//提交前传入下一环节待办人
if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(nextNodeUserSids)) {
if (ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(nextNodeUserSids) || adminContains) {
return handleAutomaticApproval(bv, task, id_, task_def_key_, variables, variablesSeconds, processDefinition);
}
// 如果申请人与下一环节审批人相同,则自动审批
@ -301,6 +318,22 @@ public class Flow3Service extends MybatisBaseService<FlowMapper, Flowable> {
nodeState = task2.getName();
taskDefKey = task2.getTaskDefinitionKey();
}
tasks = taskService.createTaskQuery().processInstanceId(instanceId).list();
//遍历待办任务
for (int i = 0; i < tasks.size(); i++) {
Task task2 = tasks.get(i);
isMultiInstanceTask = isMultiInstanceTask(task2);
vo.setTaskId(task2.getId());
nodeState = task2.getName();
taskDefKey = task2.getTaskDefinitionKey();
if ("会签任务".equals(isMultiInstanceTask) || "或签任务".equals(isMultiInstanceTask)) {
if(ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId().equals(task2.getAssignee())){
nextUserSid = ProcDefEnum.DEFAUL_TADMIN_SID.getProDefId();
adminContains = true;
break;
}
}
}
} else {
nodeState = FlowComment.SETTLE.getRemark();
taskDefKey = "Event_end";

18
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Mapper.java

@ -0,0 +1,18 @@
package com.yxt.anrui.flowable.biz.flow4;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.flowable.api.flow.Flowable;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Mapper
public interface Flow4Mapper extends BaseMapper<Flowable> {
List<String> selectByProcInstId(String instanceId);
}

9
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Mapper.xml

@ -0,0 +1,9 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.flowable.biz.flow4.Flow4Mapper">
<select id="selectByProcInstId" resultType="java.lang.String">
select ASSIGNEE_
from act_hi_taskinst
where PROC_INST_ID_ = #{instanceId}
</select>
</mapper>

112
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Rest.java

@ -0,0 +1,112 @@
package com.yxt.anrui.flowable.biz.flow4;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSONObject;
import com.google.common.util.concurrent.ThreadFactoryBuilder;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowcc.FlowCc;
import com.yxt.anrui.flowable.biz.flow2.FlowRest;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccVo;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserByRolesAndOrgQuery;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.concurrent.*;
/**
* @description: 通用审批
* @author: dimengzhe
* @date: 2025/2/20
**/
@RestController
@RequestMapping("v4/flow")
public class Flow4Rest {
Logger log = LoggerFactory.getLogger(FlowRest.class);
@Autowired
private Flow4Service flowService;
@PostMapping("/startProcess")
public ResultBean<UpdateFlowFieldVo> startProcess(@RequestBody BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
//获取表单中的参数
Map<String, Object> formVariables = bv.getFormVariables();
formVariables = formVariables == null ? new HashMap<>() : formVariables;
//发起人的组织全路径
String orgPath = bv.getOrgSidPath();
formVariables.put("createrOrgPath", orgPath);
formVariables.put("businessSid", bv.getBusinessSid());
//启动流程实例
ResultBean<UpdateFlowFieldVo> startResultBean = flowService.businessStartProcessInstanceById(bv);
return startResultBean;
}
@PostMapping("/submit2")
ResultBean submit2() {
ResultBean rb = ResultBean.fireFail();
List<String> userIds = new ArrayList<>();
userIds.add("1d85d1fe-e527-4ec5-a5e4-c37a76a36518");
userIds.add("64e289bc-80cd-487a-9498-5ae61e260f71");
userIds.add("7ffcd76a-4fa0-4c9c-87ca-a0c2116bb2ed");
Map<String, Object> variables = new HashMap<>();
variables.put("approvers", userIds);
BusinessVariables bv = new BusinessVariables();
bv.setFormVariables(variables);
bv.setModelId("process_wj9q4vwi:1:17170004");
bv.setUserSid("7f56f6ec-4a5f-47b0-aaab-158d64cb97b1");
//启动流程
ResultBean<UpdateFlowFieldVo> voResultBean = startProcess(bv);
System.out.println("voResultBean{}" + voResultBean);
return voResultBean;
}
public ResultBean<UpdateFlowFieldVo> handleProsess(BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
ResultBean<UpdateFlowFieldVo> updateFlowFieldVoResultBean = flowService.handleProsess(bv, true);
//添加抄送
log.info("流程返回:{}", JSONObject.toJSONString(updateFlowFieldVoResultBean));
//需要判断办结后再执行 TODO
if (updateFlowFieldVoResultBean.getSuccess()) {
log.info("流程返回:{}", JSONObject.toJSONString(updateFlowFieldVoResultBean));
if ("Event_end".equals(updateFlowFieldVoResultBean.getData().getTaskDefKey())) {
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(2, 100,
0L, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
HashMap<String, Object> map = new HashMap<>();
map.put("bv", bv);
UpdateFlowFieldVo ufVo = updateFlowFieldVoResultBean.getData();
ufVo.setTaskId(bv.getTaskId());
map.put("uff", ufVo);
flowService.cc(map, bv.getTaskDefKey());
});
} catch (Exception e) {
e.printStackTrace();
return rb.setMsg("抄送失败");
}
}
}
return updateFlowFieldVoResultBean;
}
}

449
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flow4/Flow4Service.java

@ -0,0 +1,449 @@
package com.yxt.anrui.flowable.biz.flow4;
import cn.hutool.core.bean.BeanUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.yxt.anrui.flowable.api.flow.Flowable;
import com.yxt.anrui.flowable.api.flow.UpdateFlowFieldVo;
import com.yxt.anrui.flowable.api.flowapprover.FlowApprover;
import com.yxt.anrui.flowable.api.flowapprover.FlowApproverDto;
import com.yxt.anrui.flowable.api.flowcc.FlowCc;
import com.yxt.anrui.flowable.api.flowcomment.FlowComment;
import com.yxt.anrui.flowable.api.flowtask.LatestTaskVo;
import com.yxt.anrui.flowable.api.processcomment.ProcessCommentDto;
import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.biz.flow2.FlowMapper;
import com.yxt.anrui.flowable.biz.flowapprover.FlowApproverService;
import com.yxt.anrui.flowable.biz.flowcc.FlowCcService;
import com.yxt.anrui.flowable.biz.flowtask.FlowTaskService;
import com.yxt.anrui.flowable.biz.process.ProcessService;
import com.yxt.anrui.flowable.biz.processcomment.ProcessCommentService;
import com.yxt.anrui.flowable.common.ProcessConstants;
import com.yxt.anrui.flowable.feign.MessageFeign;
import com.yxt.anrui.flowable.feign.form.MessageFlowVo;
import com.yxt.anrui.flowable.feign.form.MessageFlowableQuery;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigFeign;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigQuery;
import com.yxt.anrui.portal.api.sysflowableconfig.SysFlowableConfigVvo;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccFeign;
import com.yxt.anrui.portal.api.sysflowcc.SysFlowccVo;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.anrui.portal.api.sysuser.UserByRolesAndOrgQuery;
import com.yxt.anrui.portal.api.sysuser.UserssQuery;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.StringUtils;
import com.yxt.common.core.result.ResultBean;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.BpmnModel;
import org.flowable.bpmn.model.FlowElement;
import org.flowable.bpmn.model.UserTask;
import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.*;
import org.flowable.engine.impl.cfg.ProcessEngineConfigurationImpl;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.DelegationState;
import org.flowable.task.api.Task;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.*;
import java.util.stream.Collectors;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Service
@Slf4j
public class Flow4Service extends MybatisBaseService<Flow4Mapper, Flowable> {
@Autowired
RepositoryService repositoryService;
@Autowired
RuntimeService runtimeService;
@Autowired
ManagementService managementService;
@Autowired
ProcessEngineConfigurationImpl processEngineConfiguration;
@Autowired
private SysUserFeign sysUserFeign;
@Autowired
protected IdentityService identityService;
@Autowired
protected TaskService taskService;
@Autowired
private SysFlowableConfigFeign sysFlowableConfigFeign;
@Autowired
private FlowTaskService flowTaskService;
@Autowired
private ProcessCommentService processCommentService;
@Autowired
protected HistoryService historyService;
@Autowired
private ProcessService processService;
@Autowired
private MessageFeign messageFeign;
@Autowired
private SysFlowccFeign sysFlowccFeign;
@Autowired
private FlowApproverService flowApproverService;
@Autowired
private FlowCcService flowCcService;
/**
* 启动流程
*
* @param bv
* @return
*/
public ResultBean<UpdateFlowFieldVo> businessStartProcessInstanceById(BusinessVariables bv) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
UpdateFlowFieldVo updateFlowFieldVo = new UpdateFlowFieldVo();
String procDefId = bv.getModelId();
String userSid = bv.getUserSid();
String nextNodeUserSids = bv.getNextNodeUserSids();
Map<String, Object> variables = bv.getFormVariables();
// 获取审批人列表
List<String> approvers = (List<String>) variables.get("approvers");
// 获取抄送人列表
List<String> ccList = (List<String>) variables.get("ccList");
//根据流程定义id查询
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId)
.latestVersion().singleResult();
if (Objects.nonNull(processDefinition) && processDefinition.isSuspended()) {
return rb.setMsg("流程已被挂起,请先激活流程");
}
// 设置流程发起人Id到流程中
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(userSid);
SysUserVo sysUser = sysUserVoResultBean.getData();
identityService.setAuthenticatedUserId(sysUser.getSid());
variables.put(ProcessConstants.PROCESS_INITIATOR, userSid);
variables.put(ProcessConstants.USER_TYPE_ASSIGNEE, userSid);
ProcessInstance processInstance = runtimeService.startProcessInstanceById(procDefId, variables);
// 给第一步申请人节点设置任务执行人和意见
Task task = taskService.createTaskQuery().processInstanceId(processInstance.getProcessInstanceId()).singleResult();
if (Objects.nonNull(task)) {
taskService.addComment(task.getId(), processInstance.getProcessInstanceId(), FlowComment.START.getType(),
sysUser.getName() + "发起流程申请");
taskService.setAssignee(task.getId(), userSid);
taskService.complete(task.getId(), variables);
}
assembleFlowApprover(bv);
//查询当前实例的最新待办任务
List<Task> tasks = taskService.createTaskQuery().processInstanceId(processInstance.getId()).list();
task = tasks.get(0);
Integer sortNo = sortNo(procDefId, task.getTaskDefinitionKey());
System.out.println("获取环节序号================" + sortNo);
String approverSid = flowApproverService.selectApproverSid(bv.getBusinessSid(), sortNo);
String id_ = task.getId();
String task_def_key_ = task.getTaskDefinitionKey();
String nodeState = task.getName();
//查询下一环节是否有转办并添加评论
nextNodeUserSids = change(approverSid, processInstance.getProcessInstanceId());
taskService.setAssignee(id_, nextNodeUserSids);
taskService.setVariablesLocal(id_, variables);
updateFlowFieldVo.setProcInsId(task.getProcessInstanceId());
updateFlowFieldVo.setNodeState(nodeState);
updateFlowFieldVo.setTaskId(id_);
updateFlowFieldVo.setTaskDefKey(task_def_key_);
updateFlowFieldVo.setProcDefId(bv.getModelId());
updateFlowFieldVo.setSid(bv.getBusinessSid());
updateFlowFieldVo.setName(processDefinition.getName());
return rb.success().setData(updateFlowFieldVo).setMsg("流程启动成功");
}
/**
* 查询下一环节用户是否有转办用户若有转办用户则添加转办评论
*
* @param nextNodeUserSids 下一环节用户
* @param instanceId 实例id
* @return
*/
public String change(String nextNodeUserSids, String instanceId) {
//查询下一环节是否有转办
String firstSid = "";
String firstName = "";
//默认无转办
boolean isChange = false;
if (StringUtils.isNotBlank(nextNodeUserSids)) {
List<String> nextUserList = Arrays.asList(nextNodeUserSids.split(","));
if (nextUserList.size() == 1) {
firstSid = nextUserList.get(0);
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(firstSid);
if (userVoResultBean.getData() != null) {
firstName = userVoResultBean.getData().getName();
}
SysFlowableConfigQuery sysFlowableConfigQuery = new SysFlowableConfigQuery();
sysFlowableConfigQuery.setUserSid(firstSid);
sysFlowableConfigQuery.setNowDate(new Date());
ResultBean<SysFlowableConfigVvo> sysFlowableConfigVvoResultBean = sysFlowableConfigFeign.selectByUserSid(sysFlowableConfigQuery);
if (sysFlowableConfigVvoResultBean.getData() != null) {
if (StringUtils.isNotBlank(sysFlowableConfigVvoResultBean.getData().getChangeUserSid())) {
nextNodeUserSids = sysFlowableConfigVvoResultBean.getData().getChangeUserSid();
isChange = true;
}
}
}
}
if (isChange) {//添加评论
ResultBean<SysUserVo> userVoResultBean = sysUserFeign.fetchBySid(nextNodeUserSids);
ProcessCommentDto processCommentDto = new ProcessCommentDto();
processCommentDto.setReviewerSid(firstSid);
if (userVoResultBean.getData() != null) {
String changeName = userVoResultBean.getData().getName();
processCommentDto.setReviewer(firstName);
processCommentDto.setContent("交" + changeName + "转办");
}
processCommentDto.setTime(new Date());
processCommentDto.setProcessId(instanceId);
processCommentService.saveOrUpdateDto(processCommentDto);
}
return nextNodeUserSids;
}
public Integer sortNo(String proDefId, String taskDefKey) {
// 获取所有 UserTask,并以 Map 形式存储环节位置
Map<String, Integer> taskKeyToPositionMap = new HashMap<>();
// 获取流程定义的 BPMN 模型
BpmnModel bpmnModel = repositoryService.getBpmnModel(proDefId);
// 使用 Stream API 遍历流程元素并缓存顺序
List<UserTask> userTasks = bpmnModel.getProcesses().stream()
.flatMap(process -> process.getFlowElements().stream()) // 遍历所有流程
.filter(flowElement -> flowElement instanceof UserTask) // 只筛选 UserTask
.map(flowElement -> (UserTask) flowElement)
.collect(Collectors.toList());
// 将 UserTask 的 key 和位置映射到 Map 中
int position = 1;
for (UserTask userTask : userTasks) {
taskKeyToPositionMap.put(userTask.getId(), position++);
}
Integer taskPosition = taskKeyToPositionMap.get(taskDefKey);
return taskPosition;
}
public void assembleFlowApprover(BusinessVariables bv) {
Map<String, Object> variables = bv.getFormVariables();
// 获取审批人列表
List<String> approvers = (List<String>) variables.get("approvers");
// 获取抄送人列表
List<String> ccList = (List<String>) variables.get("ccList");
if (approvers != null) {
FlowApproverDto flowApproverDto = new FlowApproverDto();
flowApproverDto.setBusinessSid(bv.getBusinessSid());
flowApproverDto.setApproverSidList(approvers);
ResultBean resultBean = flowApproverService.saveFlowApprover(flowApproverDto);
}
if (ccList != null) {
String ccSids = String.join(",", ccList);
ResultBean<List<SysUserVo>> listResultBean = sysUserFeign.fetchBySids(ccSids);
List<String> ccNameList = listResultBean.getData().stream().map(v -> v.getName()).collect(Collectors.toList());
// 将 List<String> 转换为逗号分隔的字符串
String result = String.join(",", ccNameList);
FlowCc flowCc = new FlowCc();
flowCc.setBusinessSid(bv.getBusinessSid());
flowCc.setCcSids(ccSids);
flowCc.setCcNames(result);
flowCcService.insertFlowCc(flowCc);
}
}
/**
* 办理
*
* @param bv
* @param b
* @return
*/
public ResultBean<UpdateFlowFieldVo> handleProsess(BusinessVariables bv, boolean b) {
ResultBean<UpdateFlowFieldVo> rb = ResultBean.fireFail();
UpdateFlowFieldVo vo = new UpdateFlowFieldVo();
//获取表单中的参数
Map<String, Object> formVariables = bv.getFormVariables();
formVariables = formVariables == null ? new HashMap<>() : formVariables;
formVariables.put("businessSid", bv.getBusinessSid());
String nextUserSid = bv.getNextNodeUserSids();
String taskId = bv.getTaskId();
String userSid = bv.getUserSid();
String instanceId = bv.getInstanceId();
String comment = bv.getComment();
String nodeState = "";
String taskDefKey = "";
String orgPath = bv.getOrgSidPath();
//查询任务id为taskId的任务是否存在
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
if (Objects.isNull(task)) {
return rb.setMsg("任务不存在");
}
String assignee = task.getAssignee();
if (b && (StringUtils.isNotBlank(assignee) && assignee.indexOf(userSid) < 0)) {
return rb.setMsg("当前用户不是环节的待办人,不能进行办理操作!");
}
if (DelegationState.PENDING.equals(task.getDelegationState())) {
//加签
Authentication.setAuthenticatedUserId(userSid);
taskService.addComment(taskId, instanceId,
FlowComment.DELEGATE.getType(), comment);
taskService.resolveTask(taskId, formVariables);
nodeState = task.getName();
taskDefKey = task.getTaskDefinitionKey();
} else {
//当前环节办理通过,且将下一环节用户放入流程中
taskService.addComment(taskId, instanceId, FlowComment.NORMAL.getType(), comment);
log.error("taskid:{},userSid:{}", taskId, userSid);
log.error("formVariables:{}", JSON.toJSONString(formVariables));
taskService.setAssignee(taskId, userSid);
taskService.complete(taskId, formVariables);//当前用户办理通过
//查询当前实例的最新待办任务
List<Task> tasks = taskService.createTaskQuery().processInstanceId(bv.getInstanceId()).list();
if (tasks.size() > 0) {
task = tasks.get(0);
Integer sortNo = sortNo(bv.getModelId(), task.getTaskDefinitionKey());
System.out.println("获取环节序号================" + sortNo);
String approverSid = flowApproverService.selectApproverSid(bv.getBusinessSid(), sortNo);
String id_ = task.getId();
//查询下一环节用户是否有转办人
nextUserSid = change(approverSid, bv.getInstanceId());
taskService.setAssignee(id_, nextUserSid);//将下一环节用户放入流程中
vo.setTaskId(id_);
//在act_ru_variable表中增加环节上的业务参数的变量
taskService.setVariablesLocal(id_, formVariables);
nodeState = task.getName();
taskDefKey = task.getTaskDefinitionKey();
} else {
nodeState = FlowComment.SETTLE.getRemark();
taskDefKey = "Event_end";
vo.setNodeState(FlowComment.SETTLE.getRemark());
}
}
vo.setProcInsId(instanceId);
vo.setProcDefId(bv.getModelId());
vo.setNodeState(nodeState);
vo.setTaskDefKey(taskDefKey);
vo.setSid(bv.getBusinessSid());
return rb.success().setData(vo);
}
/**
* 流程抄送的功能
*
* @param map
* @return
*/
public ResultBean cc(Map<String, Object> map, String taskDefKey) {
ResultBean rb = ResultBean.fireFail();
log.info("FlowableRest-cc:{}", JSONObject.toJSONString(map));
Object bv1 = map.get("bv");
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(bv1, bv);
Object uff1 = map.get("uff");
UpdateFlowFieldVo uff = new UpdateFlowFieldVo();
BeanUtil.copyProperties(uff1, uff);
uff.setTaskDefKey(taskDefKey);
StringBuilder userSids = new StringBuilder();
StringBuilder userName = new StringBuilder();
FlowCc flowCc = flowCcService.selectByBusinessSid(bv.getBusinessSid());
if(flowCc != null){
userSids = new StringBuilder(flowCc.getCcSids());
userName = new StringBuilder(flowCc.getCcNames());
}
//抄送的业务逻辑
MessageFlowableQuery mfq = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(uff, messageFlowVo);
mfq.setUfVo(messageFlowVo);
//移动端的参数
HistoricTaskInstance historicTaskInstance = historyService.createHistoricTaskInstanceQuery()
.includeProcessVariables().taskId(bv.getTaskId()).singleResult();
if (historicTaskInstance == null) {
log.info("抄送失败:没有获取到业务参数!");
return rb.setMsg("抄送失败!");
}
Map<String, Object> processVariables = historicTaskInstance.getProcessVariables();
String createrOrgPath = (String) processVariables.get("createrOrgPath");
if (historicTaskInstance == null) {
log.info("抄送失败:没有获取到业务参数!");
return rb.setMsg("抄送失败!");
}
//
String assignee = (String) processVariables.get("assignee");
ResultBean<SysUserVo> stringResultBean = sysUserFeign.fetchBySid(assignee);
String assigneeName = "";
if (stringResultBean.getData() != null) {
assigneeName = stringResultBean.getData().getName();
}
Map<String, Object> app = new HashMap<>();
if (processVariables.get("app") != null) {
app = (Map<String, Object>) processVariables.get("app");
}
log.info("抄送方法-historicTaskInstance:{}", JSONObject.toJSONString(historicTaskInstance));
mfq.setAppMap(app);
mfq.setBusinessSid(bv.getBusinessSid());
mfq.setMsgContent(assigneeName + "抄送的流程审批,请查看");
// act_re_procdef
Map<String, String> process = processService.getProcessDefByDefId(historicTaskInstance.getProcessDefinitionId());
log.info("抄送成功-process:{}", process);
if (process == null) {
log.info("抄送失败,流程定义不存在!");
return rb.setMsg("抄送失败,流程定义不存在!");
}
mfq.setModuleName(process.get("NAME_"));
if (processVariables.containsKey("orderNames")) {
mfq.setMsgTitle(processVariables.get("orderNames").toString());
} else {
mfq.setMsgTitle(process.get("NAME_"));
}
if (processVariables.containsKey("sendRecommendSid")) {//增加的其他的抄送人
userSids.append(processVariables.get("sendRecommendSid").toString()).append(",");
}
//查询是否有设置转办的,抄送给设置转办人员
List<String> zbUserSids = processCommentService.selectByIdAndComment("转办", bv.getInstanceId());
zbUserSids.removeAll(Collections.singleton(null));
if (!zbUserSids.isEmpty()) {
String zbUser = String.join(",", zbUserSids);
userSids.append(zbUser).append(",");
}
userSids.deleteCharAt(userSids.length() - 1);
//若抄送的用户已在审批人员中(审批记录中有该用户),则该用户不抄送
List<String> taskinstUserSidList = baseMapper.selectByProcInstId(bv.getInstanceId());
List<String> uss = Arrays.asList(userSids.toString().split(","));
List<String> uniqueList = new ArrayList<String>(new HashSet<String>(uss));
uniqueList.removeIf(taskinstUserSidList::contains);
String userSidss = String.join(",", uniqueList);
mfq.setUserSids(userSidss);
mfq.setOrgPath(createrOrgPath);
mfq.setUserSid(assignee);
mfq.setApplicationName(assigneeName);
ResultBean<String> resultBean = messageFeign.pushMessageCC(mfq);
log.info("抄送成功:{}", userName.toString());
log.info("抄送成功-resultBean:{}", resultBean);
if (!resultBean.getSuccess()) {
log.info("抄送失败,同送消息异常!:{}", JSONObject.toJSONString(resultBean));
return rb.setMsg("抄送失败,同送消息异常!");
}
return rb.success().setMsg("抄送" + userName.toString() + "成功!");
}
}

19
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverMapper.java

@ -0,0 +1,19 @@
package com.yxt.anrui.flowable.biz.flowapprover;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.flowable.api.flow.Flowable;
import com.yxt.anrui.flowable.api.flowapprover.FlowApprover;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Mapper
public interface FlowApproverMapper extends BaseMapper<FlowApprover> {
String selectApproverSid(@Param("businessSid") String businessSid, @Param("sortNo") Integer sortNo);
int insertApprover(FlowApprover flowApprover);
}

44
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverMapper.xml

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.flowable.biz.flowapprover.FlowApproverMapper">
<select id="selectApproverSid" resultType="java.lang.String">
select approverSid
from flow_approver
where businessSid = #{businessSid}
and sortNo = #{sortNo}
</select>
<insert id="insertApprover">
insert into flow_approver
<trim prefix="(" suffix=")" suffixOverrides=",">
sid,
<if test="businessSid != null">
businessSid,
</if>
<if test="approverSid != null">
approverSid,
</if>
<if test="approverName != null">
approverName,
</if>
<if test="sortNo != null">
sortNo,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
UUID(),
<if test="businessSid != null">
#{businessSid},
</if>
<if test="approverSid != null">
#{approverSid},
</if>
<if test="approverName != null">
#{approverName},
</if>
<if test="sortNo != null">
#{sortNo},
</if>
</trim>
</insert>
</mapper>

53
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowapprover/FlowApproverService.java

@ -0,0 +1,53 @@
package com.yxt.anrui.flowable.biz.flowapprover;
import com.yxt.anrui.flowable.api.flow.Flowable;
import com.yxt.anrui.flowable.api.flowapprover.FlowApprover;
import com.yxt.anrui.flowable.api.flowapprover.FlowApproverDto;
import com.yxt.anrui.flowable.biz.flow4.Flow4Mapper;
import com.yxt.anrui.portal.api.sysuser.SysUserFeign;
import com.yxt.anrui.portal.api.sysuser.SysUserVo;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.core.result.ResultBean;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.Collections;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Service
public class FlowApproverService extends MybatisBaseService<FlowApproverMapper, FlowApprover> {
@Autowired
private SysUserFeign sysUserFeign;
public ResultBean saveFlowApprover(FlowApproverDto flowApproverDto) {
ResultBean<String> rb = ResultBean.fireFail();
String businessSid = flowApproverDto.getBusinessSid();
List<String> approverSidList = flowApproverDto.getApproverSidList();
approverSidList.removeAll(Collections.singleton(null));
if (!approverSidList.isEmpty()) {
for (int i = 0; i < approverSidList.size(); i++) {
FlowApprover flowApprover = new FlowApprover();
String approverSid = approverSidList.get(i);
Integer sortNo = i + 2;
flowApprover.setBusinessSid(businessSid);
flowApprover.setApproverSid(approverSid);
ResultBean<SysUserVo> sysUserVoResultBean = sysUserFeign.fetchBySid(approverSid);
SysUserVo sysUser = sysUserVoResultBean.getData();
flowApprover.setApproverName(sysUser.getName());
flowApprover.setSortNo(sortNo);
baseMapper.insertApprover(flowApprover);
}
}
return rb.success();
}
public String selectApproverSid(String businessSid, Integer sortNo) {
return baseMapper.selectApproverSid(businessSid, sortNo);
}
}

18
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcMapper.java

@ -0,0 +1,18 @@
package com.yxt.anrui.flowable.biz.flowcc;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.yxt.anrui.flowable.api.flowapprover.FlowApprover;
import com.yxt.anrui.flowable.api.flowcc.FlowCc;
import org.apache.ibatis.annotations.Mapper;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Mapper
public interface FlowCcMapper extends BaseMapper<FlowCc> {
FlowCc selectByBusinessSid(String businessSid);
int insertFlowCc(FlowCc flowCc);
}

37
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcMapper.xml

@ -0,0 +1,37 @@
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yxt.anrui.flowable.biz.flowcc.FlowCcMapper">
<select id="selectByBusinessSid" resultType="com.yxt.anrui.flowable.api.flowcc.FlowCc">
select *
from flow_cc
where businessSid = #{businessSid}
</select>
<insert id="insertFlowCc">
insert into flow_cc
<trim prefix="(" suffix=")" suffixOverrides=",">
sid,
<if test="businessSid != null">
businessSid,
</if>
<if test="ccSids != null">
ccSids,
</if>
<if test="ccNames != null">
ccNames,
</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
UUID(),
<if test="businessSid != null">
#{businessSid},
</if>
<if test="ccSids != null">
#{ccSids},
</if>
<if test="ccNames != null">
#{ccNames},
</if>
</trim>
</insert>
</mapper>

23
anrui-flowable/anrui-flowable-biz/src/main/java/com/yxt/anrui/flowable/biz/flowcc/FlowCcService.java

@ -0,0 +1,23 @@
package com.yxt.anrui.flowable.biz.flowcc;
import com.yxt.anrui.flowable.api.flowapprover.FlowApprover;
import com.yxt.anrui.flowable.api.flowcc.FlowCc;
import com.yxt.anrui.flowable.biz.flowapprover.FlowApproverMapper;
import com.yxt.common.base.service.MybatisBaseService;
import org.springframework.stereotype.Service;
/**
* @description:
* @author: dimengzhe
* @date: 2025/2/20
**/
@Service
public class FlowCcService extends MybatisBaseService<FlowCcMapper, FlowCc> {
public FlowCc selectByBusinessSid(String businessSid) {
return baseMapper.selectByBusinessSid(businessSid);
}
public int insertFlowCc(FlowCc flowCc) {
return baseMapper.insertFlowCc(flowCc);
}
}

21
anrui-management/anrui-management-ui/src/views/sysstaffinfo/yuangongAdd.vue

@ -22,7 +22,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="jobNumber">
<el-input v-model="temp.jobNumber" maxlength="20" placeholder="系统自动生成" clearable readonly/>
<el-input v-model="temp.jobNumber" maxlength="20" placeholder="系统自动生成" clearable readonly />
</el-form-item>
</el-col>
<el-col :span="4">
@ -45,11 +45,11 @@
</el-form-item>
</el-col>
<el-col :span="4">
<span><span class="icon">*</span>出生年月</span>
<span>出生日</span>
</el-col>
<el-col :span="8">
<el-form-item prop="birthday">
<el-date-picker v-model="temp.birthday" style="width: 100%" type="date" placeholder="选择日期" value-format="yyyy-MM-dd"/>
<el-form-item>
<el-date-picker v-model="temp.birthday" style="width: 100%" type="date" placeholder="自动从身份证号中获取" value-format="yyyy-MM-dd" readonly />
</el-form-item>
</el-col>
</el-row>
@ -59,7 +59,7 @@
</el-col>
<el-col :span="8">
<el-form-item prop="idNo">
<el-input v-model="temp.idNo" maxlength="20" placeholder="请输入身份证号" clearable/>
<el-input v-model="temp.idNo" maxlength="20" placeholder="请输入身份证号" clearable @input="changeIdNo(temp.idNo)"/>
</el-form-item>
</el-col>
<el-col :span="4">
@ -553,7 +553,8 @@ export default {
// props
value: 'sid',
label: 'name',
children: 'children'
children: 'children',
checkStrictly: true
},
//
// photo_list: [],
@ -834,6 +835,14 @@ export default {
})
},
changeIdNo(value) {
if (value.length === 18) {
const year = value.substr(6, 4)
const month = value.substr(10, 2)
const day = value.substr(12, 2)
this.temp.birthday = year + '-' + (month >= 10 ? month : '0' + month) + '-' + (day >= 10 ? day : '0' + day)
}
},
getNational(value) {
console.log('触发下拉框按钮')
let bb = null

2
anrui-management/anrui-management-ui/src/views/sysstaffinfo/yuangongInfo.vue

@ -49,7 +49,7 @@
</el-col>
<el-col :span="4">
<el-form-item>
<span>出生年月</span>
<span>出生日</span>
</el-form-item>
</el-col>
<el-col :span="8">

6
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/index/AppIndexEnum.java

@ -54,9 +54,9 @@ public class AppIndexEnum {
JFKC("a204a3fa-c8ac-4795-966c-df1d0e131bcf", "家访考察"),
FKZLSC("65dc12e0-9213-4364-ae81-18afa9c7e1ee", "放款资料上传"),
DYBL("ab7df5a0-9708-48b1-b58a-60d7e024d0a2", "抵押办理"),
WXWB("c3a6be91-3e95-4520-b5a7-c805d8f187d7", "维修完毕-售后"),
SPSJ("781ce38b-b003-4efd-accf-fbee0ca33091", "商品上架-售后"),
PJJS("37905444-5454-4b08-897d-6c2c089c317d", "配件接收-售后"),
WXWB("c3a6be91-3e95-4520-b5a7-c805d8f187d7", "维修完毕"),
SPSJ("781ce38b-b003-4efd-accf-fbee0ca33091", "商品上架"),
PJJS("37905444-5454-4b08-897d-6c2c089c317d", "配件接收"),
;
/**

11
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysstaffinfo/SysStaffinfoService.java

@ -624,8 +624,15 @@ public class SysStaffinfoService extends MybatisBaseService<SysStaffinfoMapper,
if (reduce1.size() > 0) {
//根据staffSid查询token
String token = sysUserService.selectByStaffsid(sid).getToken();
//清空该token
redisUtil.remove(token);
if(StringUtils.isNotBlank(token)){
//查询redis中是否包含该token
String userName = redisUtil.get(token);
if(StringUtils.isNotBlank(userName)){
//清空该token
redisUtil.remove(token);
}
}
}
return rb.success().setMsg("更新员工信息成功");
}

2
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserMapper.xml

@ -481,10 +481,12 @@
#{deptSid},
'%'
)
<if test="name != null and name != ''">
AND st.name LIKE CONCAT(
'%',
#{name},
'%'
)
</if>
</select>
</mapper>

4
anrui-portal/anrui-portal-biz/src/main/java/com/yxt/anrui/portal/biz/sysuser/SysUserRest.java

@ -286,7 +286,9 @@ public class SysUserRest implements SysUserFeign {
if (i == 0) {
return ResultBean.fireFail().setMsg("修改失败");
}
redisUtil.remove(token);
if(StringUtils.isNotBlank(token)){
redisUtil.remove(token);
}
return ResultBean.fireSuccess().setMsg("修改成功");
}

17
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.java

@ -12,6 +12,7 @@ import org.apache.ibatis.annotations.Param;
import org.springframework.web.bind.annotation.RequestParam;
import java.util.List;
import java.util.Map;
/**
* @description:
@ -41,8 +42,10 @@ public interface DailyReportMapper extends BaseMapper<DailyReport> {
String select3(@Param("busOrgSid") String busOrgSid, @Param("brandSid") String brandSid, @Param("vehModelSid") String vehModelSid, @Param("vehMConfigSid") String vehMConfigSid, @Param("createTime") String createTime);
List<BrandVo> selectByBrand(@Param("sybOrgSid") String sybOrgSid, @Param("queryTime") String queryTime);
List<BrandVo> selectByBrandNew(@Param("sybOrgSid") String sybOrgSid, @Param("startDate") String startDate,@Param("endDate") String endDate);
List<DailyReportVo> selectReport(@Param("join") List<String> brandList, @Param("sybOrgSid") String sybOrgSid, @Param("queryTime") String queryTime);
List<DailyReportVo> selectReportNew(@Param("join") List<String> brandList, @Param("sybOrgSid") String sybOrgSid, @Param("startDate") String startDate,@Param("endDate") String endDate);
IPage<DailyReportListVo> pageList1(IPage<DailyReport> page, @Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
IPage<DailyReportListVo> pageList2(IPage<DailyReport> page, @Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
@ -50,14 +53,28 @@ public interface DailyReportMapper extends BaseMapper<DailyReport> {
ReportVo getReport(@Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
List<DailyReportVo> selectReport2(String date);
List<DailyReportVo> selectReport2New(@Param("startDate") String startDate,@Param("endDate") String endDate);
List<BrandVo> list2(String date);
List<BrandVo> list2New(@Param("startDate") String startDate,@Param("endDate") String endDate);
List<BrandVo> list3(@Param("date") String date, @Param("busOrgSid") String busOrgSid);
List<BrandVo> list3New(@Param("startDate") String startDate,@Param("endDate") String endDate, @Param("busOrgSid") String busOrgSid);
List<DailyReportVo> selectReport3(@Param("date") String date, @Param("busOrgSid") String busOrgSid);
List<DailyReportVo> selectReport3New(@Param("startDate") String startDate,@Param("endDate") String endDate, @Param("busOrgSid") String busOrgSid);
List<BrandVo> selectByBrand2(@Param("useOrgSid") String useOrgSid, @Param("date") String date,@Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
List<BrandVo> selectByBrand2New(@Param("useOrgSid") String useOrgSid,@Param("startDate") String startDate,@Param("endDate") String endDate,@Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
List<DailyReportVo> selectReport4(@Param("join") List<String> brandList, @Param("useOrgSid") String useOrgSid, @Param("date") String date,@Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
List<DailyReportVo> selectReport4New(@Param(Constants.WRAPPER) QueryWrapper<DailyReport> qw);
List<DailyReportListVo> selectRecordList(@Param("map") Map<String, Object> map, @Param(Constants.WRAPPER)QueryWrapper<DailyReport> qw);
int selectRecordCount(@Param(Constants.WRAPPER)QueryWrapper<DailyReport> qw);
List<DailyReportListVo> selectRecordList2(@Param("map") Map<String, Object> map, @Param(Constants.WRAPPER)QueryWrapper<DailyReport> qw);
List<DailyReportListVo> selectRecordList3(@Param("map") Map<String, Object> map, @Param(Constants.WRAPPER)QueryWrapper<DailyReport> qw);
}

1390
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportMapper.xml

File diff suppressed because it is too large

4
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportRest.java

@ -74,7 +74,7 @@ public class DailyReportRest implements DailyReportFeign {
@Override
public ResultBean<DailyReportAppVo> list1Old(String date, String busOrgSid) {
return dailyReportService.list1(date, busOrgSid);
return dailyReportService.list1Old(date, busOrgSid);
}
@Override
@ -106,7 +106,7 @@ public class DailyReportRest implements DailyReportFeign {
@Override
public ResultBean<DailyReportAppVo> list4Old(String date, String useOrgSid) {
return dailyReportService.list4(date, useOrgSid);
return dailyReportService.list4Old(date, useOrgSid);
}
@Override

2939
anrui-reportcenter/anrui-reportcenter-biz/src/main/java/com/yxt/anrui/reportcenter/biz/dailyreport/DailyReportService.java

File diff suppressed because it is too large

15
anrui-riskcenter/anrui-riskcenter-api/src/main/java/com/yxt/anrui/riskcenter/api/loanhomevisitprep/LoanHomevisitPrepFeign.java

@ -33,21 +33,6 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import java.util.List;
/**
* Project: anrui-riskcenter(家访准备) <br/>
* File: LoanHomevisitPrepFeign.java <br/>
* Class: com.yxt.anrui.riskcenter.api.loanhomevisitprep.LoanHomevisitPrepFeign <br/>
* Description: 家访准备. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2023-08-09 15:47:52 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "家访准备")
@FeignClient(
contextId = "anrui-riskcenter-LoanHomevisitPrep",

75
anrui-riskcenter/anrui-riskcenter-biz/src/main/java/com/yxt/anrui/riskcenter/biz/loandiff/LoanDiffService.java

@ -421,48 +421,51 @@ public class LoanDiffService extends MybatisBaseService<LoanDiffMapper, LoanDiff
creditResult.setResultDetails(collectionDetailDtoListOne);
creditResult.setRemarks("放款差额");
finKingDeeFeign.pushOtherReceivableBill(creditResult);
//推送单车返利管理
ScmVehRebateDto scmVehRebateDto = new ScmVehRebateDto();
List<ScmVehRebateVehDto> scmVehRebateVehDtos = new ArrayList<>();
ScmVehRebateVehDto scmVehRebateVehDto = new ScmVehRebateVehDto();
scmVehRebateDto.setCreateBySid(loanDiff.getCreateBySid());
scmVehRebateDto.setRebateTypeKey("029");
scmVehRebateDto.setRebateTypeValue("金融贴息");
scmVehRebateDto.setRebateName("金融贴息");
BigDecimal all = BigDecimal.ZERO;
if(loanDiffDetails.getRealityDiscount() != null){
if (loanDiffDetails.getRealityDiscount() != null) {
all = all.add(loanDiffDetails.getRealityDiscount());
}
if(loanDiffDetails.getRealityOtherDiscount() != null){
if (loanDiffDetails.getRealityOtherDiscount() != null) {
all = all.add(loanDiffDetails.getRealityOtherDiscount());
}
scmVehRebateDto.setCalculationStandard(all.toString());
scmVehRebateDto.setPalceGenDate(DateUtil.format(new Date(), "yyyy-MM"));
scmVehRebateDto.setCalculationModeKey("002");
scmVehRebateDto.setCalculationModeValue("固定金额");
scmVehRebateDto.setOrgPath(loanDiff.getOrgSidPath());
scmVehRebateVehDto.setState("2");
scmVehRebateVehDto.setBrandSid(baseVehicle.getCarBrandSid());
scmVehRebateVehDto.setBrandName(baseVehicle.getCarBrandName());
scmVehRebateVehDto.setVehModelSid(baseVehicle.getModelSid());
scmVehRebateVehDto.setVehModelName(baseVehicle.getModelName());
scmVehRebateVehDto.setVehSid(baseVehicle.getSid());
scmVehRebateVehDto.setVinNo(baseVehicle.getVinNo().substring(baseVehicle.getVinNo().length() - 8));
scmVehRebateVehDto.setManufactorSettlementPrice(baseVehicle.getCostPrice().toString());
scmVehRebateVehDto.setFreight(baseVehicle.getFreight().toString());
BigDecimal ll = BigDecimal.ZERO;
if(loanDiffDetails.getRealityDiscount() != null){
ll = ll.add(loanDiffDetails.getRealityDiscount());
}
if(loanDiffDetails.getRealityOtherDiscount() != null){
ll = ll.add(loanDiffDetails.getRealityOtherDiscount());
if (all.compareTo(BigDecimal.ZERO) > 0) {
//推送单车返利管理
ScmVehRebateDto scmVehRebateDto = new ScmVehRebateDto();
List<ScmVehRebateVehDto> scmVehRebateVehDtos = new ArrayList<>();
ScmVehRebateVehDto scmVehRebateVehDto = new ScmVehRebateVehDto();
scmVehRebateDto.setCreateBySid(loanDiff.getCreateBySid());
scmVehRebateDto.setRebateTypeKey("029");
scmVehRebateDto.setRebateTypeValue("金融贴息");
scmVehRebateDto.setRebateName("金融贴息");
scmVehRebateDto.setCalculationStandard(all.toString());
scmVehRebateDto.setPalceGenDate(DateUtil.format(new Date(), "yyyy-MM"));
scmVehRebateDto.setCalculationModeKey("002");
scmVehRebateDto.setCalculationModeValue("固定金额");
scmVehRebateDto.setOrgPath(loanDiff.getOrgSidPath());
scmVehRebateVehDto.setState("2");
scmVehRebateVehDto.setBrandSid(baseVehicle.getCarBrandSid());
scmVehRebateVehDto.setBrandName(baseVehicle.getCarBrandName());
scmVehRebateVehDto.setVehModelSid(baseVehicle.getModelSid());
scmVehRebateVehDto.setVehModelName(baseVehicle.getModelName());
scmVehRebateVehDto.setVehSid(baseVehicle.getSid());
scmVehRebateVehDto.setVinNo(baseVehicle.getVinNo().substring(baseVehicle.getVinNo().length() - 8));
scmVehRebateVehDto.setManufactorSettlementPrice(baseVehicle.getCostPrice().toString());
scmVehRebateVehDto.setFreight(baseVehicle.getFreight().toString());
BigDecimal ll = BigDecimal.ZERO;
if (loanDiffDetails.getRealityDiscount() != null) {
ll = ll.add(loanDiffDetails.getRealityDiscount());
}
if (loanDiffDetails.getRealityOtherDiscount() != null) {
ll = ll.add(loanDiffDetails.getRealityOtherDiscount());
}
scmVehRebateVehDto.setEstimateRebate(ll.toString());
scmVehRebateVehDto.setPurchaseSystemSid(baseVehicle.getPurchaseSystemSid());
scmVehRebateVehDto.setPurchaseSystemName(baseVehicle.getPurchaseSystemName());
scmVehRebateVehDtos.add(scmVehRebateVehDto);
scmVehRebateDto.setScmVehRebateVehs(scmVehRebateVehDtos);
scmVehRebateFeign.save(scmVehRebateDto);
}
scmVehRebateVehDto.setEstimateRebate(ll.toString());
scmVehRebateVehDto.setPurchaseSystemSid(baseVehicle.getPurchaseSystemSid());
scmVehRebateVehDto.setPurchaseSystemName(baseVehicle.getPurchaseSystemName());
scmVehRebateVehDtos.add(scmVehRebateVehDto);
scmVehRebateDto.setScmVehRebateVehs(scmVehRebateVehDtos);
scmVehRebateFeign.save(scmVehRebateDto);
int updateCount = baseMapper.selectByBusVnS(loanDiffDetails.getBusVinSid(), loanDiffDetails.getRealityLoan().toString());
}
}

29
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/DownloadExcelVo.java

@ -0,0 +1,29 @@
package com.yxt.anrui.scm.api.scmspecialrebate;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
@Data
public class DownloadExcelVo {
@ExportEntityMap(CnName = "采购系统*", EnName = "purchaseSystemName")
private String purchaseSystemName;
@ExportEntityMap(CnName = "品牌名称*", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "返利类型*", EnName = "rebateTypeValue")
private String rebateTypeValue;
@ExportEntityMap(CnName = "返利名称*", EnName = "rebateName")
private String rebateName;
@ExportEntityMap(CnName = "预提返利*", EnName = "estimateRebate")
private String estimateRebate;
@ExportEntityMap(CnName = "其中支出费用*", EnName = "expectItureCost")
private String expectItureCost;
@ExportEntityMap(CnName = "其中待支付费用*", EnName = "expectTreatCost")
private String expectTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用*", EnName = "expectSuppCost")
private String expectSuppCost;
@ExportEntityMap(CnName = "所属年月*", EnName = "palceGenDate")
private String palceGenDate;
@ExportEntityMap(CnName = "备注", EnName = "remarks")
private String remarks;
}

33
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ExcelInfo.java

@ -0,0 +1,33 @@
package com.yxt.anrui.scm.api.scmspecialrebate;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/4/28
**/
@Data
public class ExcelInfo {
//采购系统
private String purchaseSystemName;
//品牌名称
private String brandName;
//返利类型
private String rebateTypeValue;
//返利名称
private String rebateName;
//预提返利
private String estimateRebate;
//其中支出费用
private String expectItureCost;
//其中待支付费用
private String expectTreatCost;
//其中抵顶费用
private String expectSuppCost;
//所属年月
private String palceGenDate;
//备注
private String remarks;
}

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelInfo.java

@ -43,6 +43,8 @@ public class OneExcelInfo {
private String onceSuppRemark;
//调整说明
private String adjustmentRemarks;
//备注
private String remarks;
//是否调整
private String isAdjustment;
//调整金额

17
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/OneExcelVo.java

@ -13,49 +13,36 @@ public class OneExcelVo {
@ExportEntityMap(CnName = "采购系统*", EnName = "purchaseSystemName")
private String purchaseSystemName;
@ExportEntityMap(CnName = "品牌名称*", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "创建日期*", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "返利类型*", EnName = "rebateTypeValue")
private String rebateTypeValue;
@ExportEntityMap(CnName = "返利名称*", EnName = "rebateName")
private String rebateName;
@ExportEntityMap(CnName = "预提返利*", EnName = "estimateRebate")
private String estimateRebate;
@ExportEntityMap(CnName = "其中预提费用*", EnName = "expectCost")
private String expectCost;
@ExportEntityMap(CnName = "所属年月*", EnName = "palceGenDate")
private String palceGenDate;
@ExportEntityMap(CnName = "上传日期*", EnName = "uploadDate")
private String uploadDate;
@ExportEntityMap(CnName = "上传金额*", EnName = "uploadMoney")
private String uploadMoney;
@ExportEntityMap(CnName = "待确定金额*", EnName = "stayDetermineMoney")
private String stayDetermineMoney;
@ExportEntityMap(CnName = "其中支出费用*", EnName = "onceItureCost")
private String onceItureCost;
@ExportEntityMap(CnName = "其中待支付费用*", EnName = "onceTreatCost")
private String onceTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用*", EnName = "onceSuppCost")
private String onceSuppCost;
@ExportEntityMap(CnName = "抵顶费用说明", EnName = "onceSuppRemark")
private String onceSuppRemark;
@ExportEntityMap(CnName = "调整说明", EnName = "adjustmentRemarks")
private String adjustmentRemarks;
@ExportEntityMap(CnName = "备注", EnName = "remarks")
private String remarks;
}

58
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateDto.java

@ -25,28 +25,12 @@
*********************************************************/
package com.yxt.anrui.scm.api.scmspecialrebate;
import com.yxt.common.core.dto.Dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.math.BigDecimal;
/**
* Project: anrui-scm(专项返利管理) <br/>
* File: ScmSpecialRebateDto.java <br/>
* Class: com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateDto <br/>
* Description: 专项返利表 数据传输对象. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-09-08 16:11:43 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Data
@ApiModel(value = "专项返利表 数据传输对象", description = "专项返利表 数据传输对象")
public class ScmSpecialRebateDto implements Dto {
@ -55,39 +39,41 @@ public class ScmSpecialRebateDto implements Dto {
@ApiModelProperty("状态")
private String state; // 状态
@ApiModelProperty("创建人sid")
private String createBySid;
@ApiModelProperty("备注")
private String remarks; // 备注
@ApiModelProperty("品牌sid")
@ApiModelProperty("品牌sid")
private String brandSid; // 品牌sid
@ApiModelProperty("品牌名称")
@ApiModelProperty("品牌名称")
private String brandName; // 品牌名称
@ApiModelProperty("返利类型key")
@ApiModelProperty("返利类型key")
private String rebateTypeKey; // 返利类型key
@ApiModelProperty("返利类型value")
@ApiModelProperty("返利类型value")
private String rebateTypeValue; // 返利类型value
@ApiModelProperty("返利名称")
@ApiModelProperty("返利名称")
private String rebateName; // 返利名称
@ApiModelProperty("计算标准")
@ApiModelProperty("计算标准")
private String calculationStandard; // 计算标准
@ApiModelProperty("预计返利")
@ApiModelProperty("预计返利")
private String estimateRebate; // 预计返利
@ApiModelProperty("预提日期")
@ApiModelProperty("预提日期")
private String withholdingDate; // 预提日期
@ApiModelProperty("上传日期")
@ApiModelProperty("上传日期")
private String uploadDate; // 上传日期
@ApiModelProperty("上传金额")
@ApiModelProperty("上传金额")
private String uploadMoney; // 上传金额
@ApiModelProperty("二次上传日期")
@ApiModelProperty("二次上传日期")
private String secondaryUploadDate; // 二次上传日期
@ApiModelProperty("二次上传金额")
@ApiModelProperty("二次上传金额")
private String secondaryUploadMoney; // 二次上传金额
@ApiModelProperty("费用")
@ApiModelProperty("费用")
private String money; // 费用
@ApiModelProperty("是否调整")
@ApiModelProperty("是否调整")
private String isAdjustment; // 是否调整
@ApiModelProperty("调整金额")
@ApiModelProperty("调整金额")
private String adjustmentMoney; // 调整金额
@ApiModelProperty("调整说明")
@ApiModelProperty("调整说明")
private String adjustmentRemarks; // 调整说明
@ApiModelProperty("调整状态")
private Integer adjustmentState;
@ -140,13 +126,13 @@ public class ScmSpecialRebateDto implements Dto {
@ApiModelProperty("二次抵顶费用说明")
private String secondSuppRemark;
@ApiModelProperty("使用组织sid")
@ApiModelProperty("使用组织sid")
private String useOrgSid; // 使用组织sid
@ApiModelProperty("使用组织名称")
@ApiModelProperty("使用组织名称")
private String useOrgName; // 使用组织名称
@ApiModelProperty("创建组织sid")
@ApiModelProperty("创建组织sid")
private String createOrgSid; // 创建组织sid
@ApiModelProperty("创建组织名称")
@ApiModelProperty("创建组织名称")
private String createOrgName; // 创建组织名称
@ApiModelProperty("组织全路径")
private String orgPath;

93
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateExcelVo.java

@ -36,68 +36,53 @@ public class ScmSpecialRebateExcelVo {
@ExportEntityMap(CnName = "序号", EnName = "rankNo")
private Integer rankNo;
@ExportEntityMap(CnName = "状态", EnName = "state")
private String state;
@ExportEntityMap(CnName = "一次核对状态", EnName = "onceCheckState")
private String onceCheckState;
@ExportEntityMap(CnName = "分公司", EnName = "createOrgName")
private String createOrgName;
@ExportEntityMap(CnName = "采购系统", EnName = "purchaseSystemName")
private String purchaseSystemName;
@ExportEntityMap(CnName = "品牌", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "创建日期", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "所属年月", EnName = "palceGenDate")
private String palceGenDate;
@ExportEntityMap(CnName = "返利类型", EnName = "rebateTypeValue")
private String rebateTypeValue;
@ExportEntityMap(CnName = "返利名称", EnName = "rebateName")
private String rebateName;
@ExportEntityMap(CnName = "预提金额", EnName = "estimateRebate")
private BigDecimal estimateRebate;
@ExportEntityMap(CnName = "其中支出费用", EnName = "expectItureCost")
private BigDecimal expectItureCost;
@ExportEntityMap(CnName = "其中待支付费用", EnName = "expectTreatCost")
private BigDecimal expectTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用", EnName = "expectSuppCost")
private BigDecimal expectSuppCost;
@ExportEntityMap(CnName = "所属年月", EnName = "palceGenDate")
private String palceGenDate;
@ExportEntityMap(CnName = "上传日期", EnName = "uploadDate")
@ExportEntityMap(CnName = "预提", EnName = "estimateRebate")
private String estimateRebate;
@ExportEntityMap(CnName = "上传", EnName = "uploadMoney")
private String uploadMoney;
@ExportEntityMap(CnName = "二次上传", EnName = "secondaryUploadMoney")
private String secondaryUploadMoney;
@ExportEntityMap(CnName = "待确定", EnName = "stayDetermineMoney")
private String stayDetermineMoney;
@ExportEntityMap(CnName = "调整", EnName = "adjustmentMoney")
private String adjustmentMoney;
@ExportEntityMap(CnName = "未上传", EnName = "notUploadMoney")
private String notUploadMoney;
@ExportEntityMap(CnName = "预计", EnName = "withholdCost")
private String withholdCost;
@ExportEntityMap(CnName = "上传", EnName = "money")
private String money;
@ExportEntityMap(CnName = "创建", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "预提", EnName = "withholdingDate")
private String withholdingDate;
@ExportEntityMap(CnName = "上传", EnName = "uploadDate")
private String uploadDate;
@ExportEntityMap(CnName = "上传金额", EnName = "uploadMoney")
private BigDecimal uploadMoney;
@ExportEntityMap(CnName = "其中待确定金额", EnName = "stayDetermineMoney")
private BigDecimal stayDetermineMoney;
@ExportEntityMap(CnName = "其中支出费用", EnName = "onceItureCost")
private BigDecimal onceItureCost;
@ExportEntityMap(CnName = "其中待支付费用", EnName = "onceTreatCost")
private BigDecimal onceTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用", EnName = "onceSuppCost")
private BigDecimal onceSuppCost;
@ExportEntityMap(CnName = "二次上传日期", EnName = "secondaryUploadDate")
@ExportEntityMap(CnName = "二次上传", EnName = "secondaryUploadDate")
private String secondaryUploadDate;
@ExportEntityMap(CnName = "二次上传金额", EnName = "secondaryUploadMoney")
private BigDecimal secondaryUploadMoney;
@ExportEntityMap(CnName = "其中支出费用", EnName = "secondItureCost")
private BigDecimal secondItureCost;
@ExportEntityMap(CnName = "其中待支付费用", EnName = "secondTreatCost")
private BigDecimal secondTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用", EnName = "secondSuppCost")
private BigDecimal secondSuppCost;
@ExportEntityMap(CnName = "差异金额", EnName = "diffAmount")
private BigDecimal diffAmount;
@ExportEntityMap(CnName = "是否调整", EnName = "isAdjustment")
private String isAdjustment;
@ExportEntityMap(CnName = "返利调整金额", EnName = "adjustmentMoney")
private BigDecimal adjustmentMoney;
@ExportEntityMap(CnName = "支出费用调整金额", EnName = "itureAdjustmentMoney")
private BigDecimal itureAdjustmentMoney;
@ExportEntityMap(CnName = "待支付费用调整金额", EnName = "treatAdjustmentMoney")
private BigDecimal treatAdjustmentMoney;
@ExportEntityMap(CnName = "抵顶费用调整金额", EnName = "suppAdjustmentMoney")
private BigDecimal suppAdjustmentMoney;
@ExportEntityMap(CnName = "调整说明", EnName = "adjustmentRemarks")
private String adjustmentRemarks;
@ExportEntityMap(CnName = "流程", EnName = "state")
private String state;
@ExportEntityMap(CnName = "一次核对", EnName = "onceCheckState")
private String onceCheckState;
@ExportEntityMap(CnName = "二次核对", EnName = "secondCheckState")
private String secondCheckState;
@ExportEntityMap(CnName = "备注", EnName = "remarks")
private String remarks;
@ExportEntityMap(CnName = "品牌", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "分公司", EnName = "createOrgName")
private String createOrgName;
}

9
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeign.java

@ -102,6 +102,15 @@ public interface ScmSpecialRebateFeign {
@ResponseBody
public ResultBean<PagerVo<ScmStayDisRebateVo>> stayDisRebate(@RequestBody PagerQuery<ScmSpecialRebateQuery> pq);
@PostMapping("/downloadExcel")
@ApiOperation(value = "下载模板")
public void downloadExcel();
@ApiOperation(value = "导入")
@PostMapping("/getExcelInfo")
@ResponseBody
public ResultBean getExcelInfo(@RequestParam(value = "file") MultipartFile file, HttpServletRequest request, @RequestParam("userSid") String userSid, @RequestParam("orgPath") String orgPath) throws IOException, ParseException;
@ApiOperation("一次导出")
@PostMapping("/excelListOne")
public void excelListOne(@RequestBody ScmSpecialRebateQuery scmSpecialRebateQuery);

10
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateFeignFallback.java

@ -109,6 +109,16 @@ public class ScmSpecialRebateFeignFallback implements ScmSpecialRebateFeign {
return null;
}
@Override
public void downloadExcel() {
}
@Override
public ResultBean getExcelInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException, ParseException {
return null;
}
@Override
public void excelListOne(ScmSpecialRebateQuery scmSpecialRebateQuery) {

16
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateQuery.java

@ -85,6 +85,22 @@ public class ScmSpecialRebateQuery implements Query {
@ApiModelProperty("页面分配数量(0查询分配数量大于0的 1查询所有)")
private String isPage;
@ApiModelProperty("所属年月")
private String palceGenDate;
@ApiModelProperty("预提日期")
private String withholdingDate;
@ApiModelProperty("上传日期")
private String uploadStartDate;
private String uploadEndDate;
@ApiModelProperty("上传状态")
private String uploadState;
@ApiModelProperty("是否调整")
private String isAdjustment;
@ApiModelProperty("是否上传完成")
private String isUploadFinish;
@ApiModelProperty("二次上传状态")
private String secondUploadState;
private String userSid;
private String orgPath;
private String menuUrl;

6
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/ScmSpecialRebateVo.java

@ -138,4 +138,10 @@ public class ScmSpecialRebateVo implements Vo {
private String secondSuppRemark;
@ApiModelProperty("上传状态(0未上传、1已上传)")
private String uploadState;
@ApiModelProperty("未上传金额")
private BigDecimal notUploadMoney;
@ApiModelProperty("二次核对状态")
private String secondCheckState;
@ApiModelProperty("备注")
private String remarks;
}

12
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/SpecialRebateExcelInfo.java

@ -0,0 +1,12 @@
package com.yxt.anrui.scm.api.scmspecialrebate;
import lombok.Data;
import java.util.ArrayList;
import java.util.List;
@Data
public class SpecialRebateExcelInfo {
private String checkInfo;
private List<ExcelInfo> infos = new ArrayList<>();
}

2
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelInfo.java

@ -48,6 +48,8 @@ public class TwoExcelInfo {
private String secondSuppRemark;
//调整说明
private String adjustmentRemarks;
//备注
private String remarks;
//是否调整
private String isAdjustment;
//调整金额

20
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmspecialrebate/TwoExcelVo.java

@ -13,58 +13,42 @@ public class TwoExcelVo {
@ExportEntityMap(CnName = "采购系统*", EnName = "purchaseSystemName")
private String purchaseSystemName;
@ExportEntityMap(CnName = "品牌名称*", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "创建日期*", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "返利类型*", EnName = "rebateTypeValue")
private String rebateTypeValue;
@ExportEntityMap(CnName = "返利名称*", EnName = "rebateName")
private String rebateName;
@ExportEntityMap(CnName = "预提返利*", EnName = "estimateRebate")
private String estimateRebate;
@ExportEntityMap(CnName = "其中预提费用*", EnName = "expectCost")
private String expectCost;
@ExportEntityMap(CnName = "所属年月*", EnName = "palceGenDate")
private String palceGenDate;
@ExportEntityMap(CnName = "上传日期*", EnName = "uploadDate")
private String uploadDate;
@ExportEntityMap(CnName = "上传金额*", EnName = "uploadMoney")
private String uploadMoney;
@ExportEntityMap(CnName = "其中费用*", EnName = "money")
private String money;
@ExportEntityMap(CnName = "待确定金额*", EnName = "stayDetermineMoney")
private String stayDetermineMoney;
@ExportEntityMap(CnName = "二次上传日期*", EnName = "secondaryUploadDate")
private String secondaryUploadDate;
@ExportEntityMap(CnName = "二次上传金额*", EnName = "secondaryUploadMoney")
private String secondaryUploadMoney;
@ExportEntityMap(CnName = "其中支出费用*", EnName = "secondItureCost")
private String secondItureCost;
@ExportEntityMap(CnName = "其中待支付费用*", EnName = "secondTreatCost")
private String secondTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用*", EnName = "secondSuppCost")
private String secondSuppCost;
@ExportEntityMap(CnName = "抵顶费用说明", EnName = "secondSuppRemark")
private String secondSuppRemark;
@ExportEntityMap(CnName = "调整说明", EnName = "adjustmentRemarks")
private String adjustmentRemarks;
@ExportEntityMap(CnName = "备注", EnName = "remarks")
private String remarks;
}

25
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/OneExcelVo.java

@ -14,61 +14,36 @@ import java.util.Date;
@Data
public class OneExcelVo {
//车架号
@ExportEntityMap(CnName = "车架号*", EnName = "vinNo")
private String vinNo;
//厂家结算价
@ExportEntityMap(CnName = "厂家结算价*", EnName = "manufactorSettlementPrice")
private String manufactorSettlementPrice;
//其中运费金额
@ExportEntityMap(CnName = "其中运费金额*", EnName = "freight")
private String freight;
//创建日期
@ExportEntityMap(CnName = "创建日期*", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "返利类型*", EnName = "rebateTypeValue")
private String rebateTypeValue;
@ExportEntityMap(CnName = "返利名称*", EnName = "rebateName")
private String rebateName;
//预提返利
@ExportEntityMap(CnName = "预提返利*", EnName = "estimateRebate")
private String estimateRebate;
@ExportEntityMap(CnName = "其中预提费用*", EnName = "withholdCost")
private String withholdCost;
//所属年月
@ExportEntityMap(CnName = "所属年月*", EnName = "palceGenDate")
private String palceGenDate;
//上传日期
@ExportEntityMap(CnName = "上传日期*", EnName = "uploadDate")
private String uploadDate;
//上传金额
@ExportEntityMap(CnName = "上传金额*", EnName = "uploadMoney")
private String uploadMoney;
//待确定金额
@ExportEntityMap(CnName = "待确定金额*", EnName = "stayDetermineMoney")
private String stayDetermineMoney;
@ExportEntityMap(CnName = "待支付费用*", EnName = "onceTreatCost")
private String onceTreatCost;
@ExportEntityMap(CnName = "抵顶费用*", EnName = "onceSuppCost")
private String onceSuppCost;
@ExportEntityMap(CnName = "抵顶费用说明", EnName = "onceSuppRemark")
private String onceSuppRemark;
//调整说明
@ExportEntityMap(CnName = "调整说明", EnName = "adjustmentRemarks")
private String adjustmentRemarks;
}

110
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateExcelVo.java

@ -28,73 +28,75 @@ package com.yxt.anrui.scm.api.scmvehrebate;
import com.yxt.common.core.utils.ExportEntityMap;
import lombok.Data;
import java.math.BigDecimal;
@Data
public class ScmVehRebateExcelVo {
@ExportEntityMap(CnName = "序号", EnName = "rankNo")
private Integer rankNo;
@ExportEntityMap(CnName = "状态", EnName = "state")
private String state;
@ExportEntityMap(CnName = "一次核对状态", EnName = "onceCheckState")
private String onceCheckState;
@ExportEntityMap(CnName = "采购系统", EnName = "purchaseSystemName")
private String purchaseSystemName;
@ExportEntityMap(CnName = "品牌", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "车型", EnName = "vehModelName")
private String vehModelName;
@ExportEntityMap(CnName = "车架号", EnName = "vinNo")
private String vinNo;
@ExportEntityMap(CnName = "车辆入库价", EnName = "manufactorSettlementPrice")
private BigDecimal manufactorSettlementPrice;
@ExportEntityMap(CnName = "其中运费", EnName = "freight")
private BigDecimal freight;
@ExportEntityMap(CnName = "其中上装金额", EnName = "topAmount")
private BigDecimal topAmount;
@ExportEntityMap(CnName = "创建日期", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "车型", EnName = "vehModelName")
private String vehModelName;
@ExportEntityMap(CnName = "所属年月", EnName = "palceGenDate")
private String palceGenDate;
@ExportEntityMap(CnName = "返利类型", EnName = "rebateTypeValue")
private String rebateTypeValue;
@ExportEntityMap(CnName = "返利名称", EnName = "rebateName")
private String rebateName;
@ExportEntityMap(CnName = "预提金额", EnName = "estimateRebate")
private BigDecimal estimateRebate;
@ExportEntityMap(CnName = "其中待支付费用", EnName = "expectTreatCost")
private BigDecimal expectTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用", EnName = "expectSuppCost")
private BigDecimal expectSuppCost;
@ExportEntityMap(CnName = "所属年月", EnName = "palceGenDate")
private String palceGenDate;
@ExportEntityMap(CnName = "上传日期", EnName = "uploadDate")
@ExportEntityMap(CnName = "预提", EnName = "estimateRebate")
private String estimateRebate;
@ExportEntityMap(CnName = "上传", EnName = "uploadMoney")
private String uploadMoney;
@ExportEntityMap(CnName = "二次上传", EnName = "secondaryUploadMoney")
private String secondaryUploadMoney;
@ExportEntityMap(CnName = "待确定", EnName = "stayDetermineMoney")
private String stayDetermineMoney;
@ExportEntityMap(CnName = "调整", EnName = "adjustmentMoney")
private String adjustmentMoney;
@ExportEntityMap(CnName = "未上传", EnName = "notUploadMoney")
private String notUploadMoney;
@ExportEntityMap(CnName = "预提", EnName = "withholdCost")
private String withholdCost;
@ExportEntityMap(CnName = "上传", EnName = "money")
private String money;
@ExportEntityMap(CnName = "创建", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "预提", EnName = "withholdingDate")
private String withholdingDate;
@ExportEntityMap(CnName = "上传", EnName = "uploadDate")
private String uploadDate;
@ExportEntityMap(CnName = "上传金额", EnName = "uploadMoney")
private BigDecimal uploadMoney;
@ExportEntityMap(CnName = "其中待确定金额", EnName = "stayDetermineMoney")
private BigDecimal stayDetermineMoney;
@ExportEntityMap(CnName = "其中待支付费用", EnName = "onceTreatCost")
private BigDecimal onceTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用", EnName = "onceSuppCost")
private BigDecimal onceSuppCost;
@ExportEntityMap(CnName = "二次上传日期", EnName = "secondaryUploadDate")
@ExportEntityMap(CnName = "二次上传", EnName = "secondaryUploadDate")
private String secondaryUploadDate;
@ExportEntityMap(CnName = "二次上传金额", EnName = "secondaryUploadMoney")
private BigDecimal secondaryUploadMoney;
@ExportEntityMap(CnName = "其中待支付费用", EnName = "secondTreatCost")
private BigDecimal secondTreatCost;
@ExportEntityMap(CnName = "其中抵顶费用", EnName = "secondSuppCost")
private BigDecimal secondSuppCost;
@ExportEntityMap(CnName = "差异金额", EnName = "diffAmount")
private BigDecimal diffAmount;
@ExportEntityMap(CnName = "是否调整", EnName = "isAdjustment")
private String isAdjustment;
@ExportEntityMap(CnName = "返利调整金额", EnName = "adjustmentMoney")
private BigDecimal adjustmentMoney;
@ExportEntityMap(CnName = "待支付费用调整金额", EnName = "treatAdjustmentMoney")
private BigDecimal treatAdjustmentMoney;
@ExportEntityMap(CnName = "抵顶费用调整金额", EnName = "suppAdjustmentMoney")
private BigDecimal suppAdjustmentMoney;
@ExportEntityMap(CnName = "调整说明", EnName = "adjustmentRemarks")
private String adjustmentRemarks;
@ExportEntityMap(CnName = "流程", EnName = "state")
private String state;
@ExportEntityMap(CnName = "一次核对", EnName = "onceCheckState")
private String onceCheckState;
@ExportEntityMap(CnName = "二次核对", EnName = "secondCheckState")
private String secondCheckState;
@ExportEntityMap(CnName = "车辆入库价", EnName = "manufactorSettlementPrice")
private String manufactorSettlementPrice;
@ExportEntityMap(CnName = "运费", EnName = "freight")
private String freight;
@ExportEntityMap(CnName = "上装", EnName = "topAmount")
private String topAmount;
@ExportEntityMap(CnName = "方式", EnName = "calculationModeValue")
private String calculationModeValue;
@ExportEntityMap(CnName = "标准", EnName = "calculationStandard")
private String calculationStandard;
@ExportEntityMap(CnName = "备注", EnName = "remarks")
private String remarks;
@ExportEntityMap(CnName = "品牌", EnName = "brandName")
private String brandName;
@ExportEntityMap(CnName = "分公司", EnName = "createOrgName")
private String createOrgName;
}

21
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeign.java

@ -25,8 +25,6 @@
*********************************************************/
package com.yxt.anrui.scm.api.scmvehrebate;
import com.yxt.anrui.scm.api.scmvehrebatewith.ScmVehRebateWithQuery;
import com.yxt.anrui.scm.api.scmvehrebatewith.ScmVehRebateWithVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import com.yxt.common.core.query.PagerQuery;
@ -35,25 +33,11 @@ import com.yxt.common.core.vo.PagerVo;
import org.springframework.cloud.openfeign.FeignClient;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import java.io.IOException;
import java.text.ParseException;
import java.util.List;
/**
* Project: anrui-scm(单车返利) <br/>
* File: ScmVehRebateFeign.java <br/>
* Class: com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateFeign <br/>
* Description: 单车返利表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-08-24 09:01:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "单车返利表")
@FeignClient(
contextId = "anrui-scm-ScmVehRebate",
@ -149,4 +133,9 @@ public interface ScmVehRebateFeign {
@DeleteMapping("/delByVehSid")
@ResponseBody
ResultBean delByVehSid(@RequestParam("vehSid") String vehSid);
@ApiOperation("根据车辆sid、分公司sid、返利类型key删除单车返利记录")
@DeleteMapping("/delByVehSid2")
@ResponseBody
ResultBean delByVehSid2(@RequestParam("vehSid") String vehSid,@RequestParam("useOrgSid") String useOrgSid,@RequestParam("key") String key);
}

5
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateFeignFallback.java

@ -143,4 +143,9 @@ public class ScmVehRebateFeignFallback implements ScmVehRebateFeign {
public ResultBean delByVehSid(String vehSid) {
return null;
}
@Override
public ResultBean delByVehSid2(String vehSid, String useOrgSid, String key) {
return null;
}
}

18
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateQuery.java

@ -80,6 +80,24 @@ public class ScmVehRebateQuery implements Query {
@ApiModelProperty("采购系统")
private String purchaseSystemName;
@ApiModelProperty("所属年月")
private String palceGenDate;
@ApiModelProperty("预提日期")
private String withholdingDate;
@ApiModelProperty("上传日期")
private String uploadStartDate;
private String uploadEndDate;
@ApiModelProperty("上传状态")
private String uploadState;
@ApiModelProperty("是否调整")
private String isAdjustment;
@ApiModelProperty("是否上传完成")
private String isUploadFinish;
@ApiModelProperty("一次核对状态")
private String onceCheckState;
@ApiModelProperty("二次上传状态")
private String secondUploadState;
private String userSid;
private String orgPath;
private String menuUrl;

4
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/ScmVehRebateVo.java

@ -154,4 +154,8 @@ public class ScmVehRebateVo implements Vo {
private String purchaseSystemName;
@ApiModelProperty("上装金额")
private BigDecimal topAmount;
@ApiModelProperty("未上传金额")
private BigDecimal notUploadMoney;
@ApiModelProperty("二次核对状态")
private String secondCheckState;
}

29
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmvehrebate/TwoExcelVo.java

@ -14,71 +14,42 @@ import java.util.Date;
@Data
public class TwoExcelVo {
//车架号
@ExportEntityMap(CnName = "车架号*", EnName = "vinNo")
private String vinNo;
//厂家结算价
@ExportEntityMap(CnName = "厂家结算价*", EnName = "manufactorSettlementPrice")
private String manufactorSettlementPrice;
//其中运费金额
@ExportEntityMap(CnName = "其中运费金额*", EnName = "freight")
private String freight;
@ExportEntityMap(CnName = "创建日期*", EnName = "createTime")
private String createTime;
@ExportEntityMap(CnName = "返利类型*", EnName = "rebateTypeValue")
private String rebateTypeValue;
@ExportEntityMap(CnName = "返利名称*", EnName = "rebateName")
private String rebateName;
//预提返利
@ExportEntityMap(CnName = "预提返利*", EnName = "estimateRebate")
private String estimateRebate;
@ExportEntityMap(CnName = "其中预提费用*", EnName = "withholdCost")
private String withholdCost;
//所属年月
@ExportEntityMap(CnName = "所属年月*", EnName = "palceGenDate")
private String palceGenDate;
//上传日期
@ExportEntityMap(CnName = "上传日期*", EnName = "uploadDate")
private String uploadDate;
//上传金额
@ExportEntityMap(CnName = "上传金额*", EnName = "uploadMoney")
private String uploadMoney;
//待确定金额
@ExportEntityMap(CnName = "待确定金额*", EnName = "stayDetermineMoney")
private String stayDetermineMoney;
@ExportEntityMap(CnName = "其中费用*", EnName = "qzMoney")
private String qzMoney;
//二次上传日期
@ExportEntityMap(CnName = "二次上传日期*", EnName = "secondaryUploadDate")
private String secondaryUploadDate;
//二次上传金额
@ExportEntityMap(CnName = "二次上传金额*", EnName = "secondaryUploadMoney")
private String secondaryUploadMoney;
@ExportEntityMap(CnName = "待支付费用*", EnName = "secondTreatCost")
private String secondTreatCost;
@ExportEntityMap(CnName = "抵顶费费用*", EnName = "secondSuppCost")
private String secondSuppCost;
@ExportEntityMap(CnName = "抵顶费用说明", EnName = "secondSuppRemark")
private String secondSuppRemark;
//调整说明
@ExportEntityMap(CnName = "调整说明", EnName = "adjustmentRemarks")
private String adjustmentRemarks;
}

13
anrui-scm/anrui-scm-api/src/main/java/com/yxt/anrui/scm/api/scmwarehouse/ScmWarehouse.java

@ -31,19 +31,6 @@ import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* Project: anrui-scm(进销存) <br/>
* File: ScmWarehouse.java <br/>
* Class: com.yxt.anrui.scm.api.scmwarehouse.ScmWarehouse <br/>
* Description: 仓库. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-01-05 15:42:47 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@ApiModel(value = "仓库", description = "仓库")
@TableName("scm_warehouse")
@Data

2
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyRest.java

@ -78,7 +78,7 @@ public class ScmCollectionrebateCheckapplyRest implements ScmCollectionrebateChe
@Override
public ResultBean rePushVoucher(String sid) {
ResultBean rb = ResultBean.fireFail();
scmCollectionrebateCheckapplyService.pusCollectionRebateWithVoucher(sid);
scmCollectionrebateCheckapplyService.pusCollectionRebateCheckVoucher(sid);
return rb.success();
}

21
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatecheckapply/ScmCollectionrebateCheckapplyService.java

@ -29,6 +29,7 @@ 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.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturerFeign;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
@ -45,11 +46,8 @@ import com.yxt.anrui.flowable.api.utils.ProcDefEnum;
import com.yxt.anrui.flowable.sqloperationsymbol.BusinessVariables;
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.PrivilegeQuery;
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.scmcollectionrebate.ScmCollectionRebate;
import com.yxt.anrui.scm.api.scmcollectionrebatecheckapply.*;
@ -72,11 +70,13 @@ 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;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
@ -365,7 +365,7 @@ public class ScmCollectionrebateCheckapplyService extends MybatisBaseService<Scm
*
* @param sid
*/
public void pusCollectionRebateWithVoucher(String sid) {
public void pusCollectionRebateCheckVoucher(String sid) {
String summaryTag = "";//摘要前缀
ScmCollectionrebateCheckapply entity = fetchBySid(sid);
String format = scmVehRebateWithApplyService.returnBusDate(entity.getCreateTime());
@ -553,6 +553,19 @@ public class ScmCollectionrebateCheckapplyService extends MybatisBaseService<Scm
for (String collectionRebateSid : collectionRebateSids) {
scmCollectionRebateService.updateState(collectionRebateSid, 4);
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
pusCollectionRebateCheckVoucher(bv.getBusinessSid()); //回款返利核对凭证
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
//极光推送
scmCollectionrebateCheckapply = fetchBySid(bv.getBusinessSid());

16
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmcollectionrebatewithapply/ScmCollectionRebateWithApplyService.java

@ -30,6 +30,7 @@ import cn.hutool.core.date.DateUtil;
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.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturerFeign;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
@ -74,11 +75,13 @@ 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;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
@Service
@ -522,7 +525,18 @@ public class ScmCollectionRebateWithApplyService extends MybatisBaseService<ScmC
scmCollectionRebateDistributionService.save(scmCollectionRebateDistribution);
}
}
pushCollectionRebateWithVoucher(bv.getBusinessSid()); //回款返利预提凭证
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
pushCollectionRebateWithVoucher(bv.getBusinessSid()); //回款返利预提凭证
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
//极光推送
scmCollectionRebateWithApply = fetchBySid(bv.getBusinessSid());

6
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.java

@ -56,7 +56,7 @@ public interface ScmSpecialRebateMapper extends BaseMapper<ScmSpecialRebate> {
IPage<ScmSpecialRebateVo> selectPageVo(IPage<ScmSpecialRebate> page, @Param(Constants.WRAPPER) Wrapper<ScmSpecialRebate> qw);
IPage<ScmSpecialRebateVo> selectPageVoUpload(IPage<ScmSpecialRebate> page,@Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);
IPage<ScmSpecialRebateVo> selectPageVoUpload(IPage<ScmSpecialRebate> page, @Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);
@Update("update scm_special_rebate set state = #{state} where sid = #{specialRebateSid}")
void updateState(@Param("specialRebateSid") String specialRebateSid, @Param("state") Integer state);
@ -66,11 +66,11 @@ public interface ScmSpecialRebateMapper extends BaseMapper<ScmSpecialRebate> {
IPage<ScmStayDisRebateVo> stayDisRebate(IPage<ScmSpecialRebate> page, @Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);
ScmSpecialRebateVo selectExcelInfo(@Param("createOrgSid") String createOrgSid, @Param("rebateTypeValue") String rebateTypeValue, @Param("rebateName") String rebateName, @Param("estimateRebate") String estimateRebate, @Param("palceGenDate") String palceGenDate, @Param("purchaseSystemName") String purchaseSystemName, @Param("brandName") String brandName);
ScmSpecialRebateVo selectExcel(@Param("createOrgSid") String createOrgSid, @Param("rebateTypeValue") String rebateTypeValue, @Param("rebateName") String rebateName, @Param("estimateRebate") String estimateRebate, @Param("palceGenDate") String palceGenDate, @Param("purchaseSystemName") String purchaseSystemName, @Param("brandName") String brandName, @Param("remarks") String remarks);
void updateOneExcelInfo(@Param("uploadDate") String uploadDate, @Param("uploadMoney") String uploadMoney, @Param("stayDetermineMoney") String stayDetermineMoney, @Param("onceItureCost") String onceItureCost, @Param("onceTreatCost") String onceTreatCost, @Param("onceSuppCost") String onceSuppCost, @Param("onceSuppRemark") String onceSuppRemark, @Param("adjustmentRemarks") String adjustmentRemarks, @Param("isAdjustment") String isAdjustment, @Param("adjustmentMoney") String adjustmentMoney, @Param("diffAmount") String diffAmount, @Param("sid") String sid);
void updateTwoExcelInfo(@Param("secondaryUploadDate") String secondaryUploadDate, @Param("secondaryUploadMoney") String secondaryUploadMoney,@Param("secondItureCost") String secondItureCost, @Param("secondTreatCost") String secondTreatCost, @Param("secondSuppCost") String secondSuppCost, @Param("secondSuppRemark") String secondSuppRemark, @Param("adjustmentRemarks") String adjustmentRemarks, @Param("isAdjustment") String isAdjustment, @Param("adjustmentMoney") String adjustmentMoney, @Param("diffAmount") String diffAmount, @Param("sid") String sid);
void updateTwoExcelInfo(@Param("secondaryUploadDate") String secondaryUploadDate, @Param("secondaryUploadMoney") String secondaryUploadMoney, @Param("secondItureCost") String secondItureCost, @Param("secondTreatCost") String secondTreatCost, @Param("secondSuppCost") String secondSuppCost, @Param("secondSuppRemark") String secondSuppRemark, @Param("adjustmentRemarks") String adjustmentRemarks, @Param("isAdjustment") String isAdjustment, @Param("adjustmentMoney") String adjustmentMoney, @Param("diffAmount") String diffAmount, @Param("sid") String sid);
List<OneExcelVo> excelListOne(@Param(Constants.WRAPPER) QueryWrapper<ScmSpecialRebate> qw);

43
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateMapper.xml

@ -7,7 +7,8 @@
SELECT *,
expectItureCost + expectTreatCost + expectSuppCost AS expectCost,
expectItureCost + expectTreatCost + expectSuppCost AS withholdCost,
onceItureCost + onceTreatCost + onceSuppCost + secondItureCost + secondTreatCost + secondSuppCost AS money
onceItureCost + onceTreatCost + onceSuppCost + secondItureCost + secondTreatCost + secondSuppCost AS money,
estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0) AS notUploadMoney
FROM scm_special_rebate
<where>
${ew.sqlSegment}
@ -51,7 +52,8 @@
ssr.purchaseSystemName,
ssr.palceGenDate,
ssr.withholdingDate,
ssr.uploadMoney + ssr.secondaryUploadMoney - ssr.onceItureCost - ssr.onceTreatCost - ssr.onceSuppCost - ssr.secondItureCost - ssr.secondTreatCost - ssr.secondSuppCost as uploadMoney,
ssr.uploadMoney + ssr.secondaryUploadMoney - ssr.onceItureCost - ssr.onceTreatCost - ssr.onceSuppCost -
ssr.secondItureCost - ssr.secondTreatCost - ssr.secondSuppCost as uploadMoney,
sscad.mainSid as checkApplySid
FROM scm_specialrebate_checkapplydetail sscad
LEFT JOIN scm_special_rebate ssr
@ -63,7 +65,7 @@
</where>
</select>
<select id="selectExcelInfo" resultType="com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateVo">
<select id="selectExcel" resultType="com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateVo">
SELECT *
FROM scm_special_rebate
WHERE createOrgSid = #{createOrgSid}
@ -73,11 +75,12 @@
AND palceGenDate = #{palceGenDate}
AND purchaseSystemName = #{purchaseSystemName}
AND brandName = #{brandName}
AND remarks = #{remarks}
</select>
<update id="updateOneExcelInfo">
UPDATE
scm_special_rebate
scm_special_rebate
SET uploadDate = #{uploadDate},
uploadMoney = #{uploadMoney},
onceItureCost = #{onceItureCost},
@ -95,7 +98,7 @@
<update id="updateTwoExcelInfo">
UPDATE
scm_special_rebate
scm_special_rebate
SET secondaryUploadDate = #{secondaryUploadDate},
secondaryUploadMoney = #{secondaryUploadMoney},
secondItureCost = #{secondItureCost},
@ -109,6 +112,23 @@
WHERE sid = #{sid}
</update>
<select id="excelList" resultType="com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateExcelVo">
SELECT
*,
expectItureCost + expectTreatCost + expectSuppCost AS withholdCost,
onceItureCost + onceTreatCost + onceSuppCost + secondItureCost + secondTreatCost + secondSuppCost AS money,
estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0) AS notUploadMoney,
IF(secondaryUploadMoney > 0 AND isAdjustment = '是','是','否') AS secondCheckState,
@row_number := @row_number + 1 AS rankNo
FROM scm_special_rebate,(
SELECT
@row_number := 0
) AS t
<where>
${ew.sqlSegment}
</where>
</select>
<select id="excelListOne" resultType="com.yxt.anrui.scm.api.scmspecialrebate.OneExcelVo">
SELECT
*,
@ -139,19 +159,6 @@
</where>
</select>
<select id="excelList" resultType="com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateExcelVo">
SELECT
*,
@row_number := @row_number + 1 AS rankNo
FROM scm_special_rebate,(
SELECT
@row_number := 0
) AS t
<where>
${ew.sqlSegment}
</where>
</select>
<select id="checkApplyGetSpecialRebateAll" resultType="com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateVo">
SELECT *,
expectItureCost + expectTreatCost + expectSuppCost AS expectCost,

288
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateRest.java

@ -30,6 +30,7 @@ import cn.hutool.core.date.DateUtil;
import com.yxt.anrui.scm.api.scmspecialrebate.*;
import com.yxt.anrui.scm.api.scmspecialrebatecheckapply.SpecialRebateCheckExcelVo;
import com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApply;
import com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateExcelVo;
import com.yxt.anrui.scm.biz.scmspecialrebatewith.ScmSpecialRebateWithService;
import com.yxt.anrui.scm.biz.scmspecialrebatewithapply.ScmSpecialRebateWithApplyService;
import com.yxt.common.base.utils.ExportExcelUtils;
@ -38,6 +39,10 @@ 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.apache.commons.compress.utils.IOUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
@ -45,9 +50,12 @@ import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.text.ParseException;
import java.util.ArrayList;
import java.util.List;
@Api(tags = "专项返利表")
@ -58,10 +66,6 @@ public class ScmSpecialRebateRest implements ScmSpecialRebateFeign {
@Autowired
private ScmSpecialRebateService scmSpecialRebateService;
@Autowired
private ScmSpecialRebateWithService scmSpecialRebateWithService;
@Autowired
private ScmSpecialRebateWithApplyService scmSpecialRebateWithApplyService;
@Autowired
HttpServletResponse response;
@Override
@ -84,16 +88,135 @@ public class ScmSpecialRebateRest implements ScmSpecialRebateFeign {
@PostMapping("/excelList")
public void excelList(@RequestBody ScmSpecialRebateQuery query) {
//得到所有要导出的数据
List<ScmSpecialRebateExcelVo> exportVoList = scmSpecialRebateService.excelList(query);
//定义导出的excel名字
String excelName = "专项返利管理";
String fileNameURL = "";
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
List<ScmSpecialRebateExcelVo> dataList = scmSpecialRebateService.excelList(query);
// 创建一个新的Excel文档
XSSFWorkbook wb = new XSSFWorkbook();
// 创建一个名为Sheet1的工作表
XSSFSheet sheet = wb.createSheet("专项返利管理");
//样式
XSSFCellStyle titleStyle = createTitleCellStyle(wb);
XSSFCellStyle headerStyle = createHeadCellStyle(wb);
XSSFCellStyle contentStyle = createContentCellStyle(wb);
// 行号
int rowNum = 0;
// 创建第一页的第一行,索引从0开始
XSSFRow row0 = sheet.createRow(rowNum++);
// 设置行高
row0.setHeight((short) 600);
String[] row_Text = {"序号", "采购系统", "所属年月", "返利类型", "返利名称", "返利金额", "", "", "", "", "", "其中费用", "", "日期", "", "", "", "状态", "", "", "备注", "品牌", "分公司"};
for (int i = 0; i < row_Text.length; i++) {
XSSFCell c00 = row0.createCell(i);
c00.setCellValue(row_Text[i]);
c00.setCellStyle(headerStyle);
}
// 合并单元格,参数依次为起始列,结束列,起始行,结束行 (索引0开始)
sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 2, 2));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 3, 3));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 4, 4));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 5, 10));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 11, 12));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 13, 16));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 17, 19));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 20, 20));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 21, 21));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 22, 22));
//第二行
XSSFRow row2 = sheet.createRow(rowNum++);
row2.setHeight((short) 700);
String[] row_third = {"", "", "", "", "", "预提", "上传", "二次上传", "待确定", "调整", "未上传", "预提", "上传", "创建", "预提", "上传", "二次上传", "流程", "一次核对", "二次核对", "", "", ""};
for (int i = 0; i < row_third.length; i++) {
XSSFCell tempCell = row2.createCell(i);
tempCell.setCellValue(row_third[i]);
tempCell.setCellStyle(headerStyle);
}
for (ScmSpecialRebateExcelVo value : dataList) {
XSSFRow tempRow = sheet.createRow(rowNum++);
tempRow.setHeight((short) 500);
// 循环单元格填入数据
for (int j = 0; j < 23; j++) {
//列宽自适应,j为自适应的列,true就是自适应,false就是不自适应,默认不自适应
sheet.autoSizeColumn(j, true);
XSSFCell tempCell = tempRow.createCell(j);
tempCell.setCellStyle(contentStyle);
String tempValue = "";
switch (j) {
case 0:
tempValue = value.getRankNo().toString();
break;
case 1:
tempValue = value.getPurchaseSystemName();
break;
case 2:
tempValue = value.getPalceGenDate();
break;
case 3:
tempValue = value.getRebateTypeValue();
break;
case 4:
tempValue = value.getRebateName();
break;
case 5:
tempValue = value.getEstimateRebate();
break;
case 6:
tempValue = value.getUploadMoney();
break;
case 7:
tempValue = value.getSecondaryUploadMoney();
break;
case 8:
tempValue = value.getStayDetermineMoney();
break;
case 9:
tempValue = value.getAdjustmentMoney();
break;
case 10:
tempValue = value.getNotUploadMoney();
break;
case 11:
tempValue = value.getWithholdCost();
break;
case 12:
tempValue = value.getMoney();
break;
case 13:
tempValue = value.getCreateTime();
break;
case 14:
tempValue = value.getWithholdingDate();
break;
case 15:
tempValue = value.getUploadDate();
break;
case 16:
tempValue = value.getSecondaryUploadDate();
break;
case 17:
tempValue = value.getState();
break;
case 18:
tempValue = value.getOnceCheckState();
break;
case 19:
tempValue = value.getSecondCheckState();
break;
case 20:
tempValue = value.getRemarks();
break;
case 21:
tempValue = value.getBrandName();
break;
case 22:
tempValue = value.getCreateOrgName();
break;
}
tempCell.setCellValue(tempValue);
}
}
ExportExcelUtils.export(fileNameURL, exportVoList, ScmSpecialRebateExcelVo.class, response);
//导出到浏览器下载
buildExcelDocument("专项返利管理", wb, response);
}
@Override
@ -114,17 +237,10 @@ public class ScmSpecialRebateRest implements ScmSpecialRebateFeign {
public ResultBean delBySids(@RequestBody String[] sids) {
ResultBean rb = ResultBean.fireFail();
for (String sid : sids) {
List<String> stringList = scmSpecialRebateWithService.fetchBySpecialReBateSid(sid);
for (String s : stringList) {
ScmSpecialRebateWithApply scmSpecialRebateWithApply = scmSpecialRebateWithApplyService.fetchBySid(s);
if (!scmSpecialRebateWithApply.getNodeState().equals("待提交")) {
return rb.setMsg("所选数据中包含已提交专项返利信息,无法删除");
}
}
ScmSpecialRebate scmSpecialRebate = scmSpecialRebateService.fetchBySid(sid);
Integer state = scmSpecialRebate.getState();
if (state == 1) {
return rb.setMsg("所选数据中包含已预提专项返利信息,无法删除");
if (state != 0) {
return rb.setMsg("请选择流程状态为未预提的记录删除");
}
}
scmSpecialRebateService.delBySids(sids);
@ -175,6 +291,37 @@ public class ScmSpecialRebateRest implements ScmSpecialRebateFeign {
return rb.success().setData(pv);
}
@Override
public void downloadExcel() {
try {
InputStream resourceAsStream = this.getClass().getClassLoader().getResourceAsStream("static/专项返利模版.xls");
//获取要下载的模板名称
String fileName = "专项返利模版.xls";
response.setHeader("content-type", "application/octet-stream");
response.setContentType("application/octet-stream");
// 下载文件能正常显示中文
fileName = URLEncoder.encode(fileName, "UTF-8");
response.setHeader("Content-Disposition", "attachment;filename=" + fileName);
response.setHeader("fileName", fileName);
response.setHeader("Access-Control-Expose-Headers", "filename");
OutputStream out = response.getOutputStream();
byte[] b = new byte[2048];
int len;
while ((len = resourceAsStream.read(b)) != -1) {
out.write(b, 0, len);
}
out.close();
resourceAsStream.close();
} catch (Exception ex) {
ex.printStackTrace();
}
}
@Override
public ResultBean getExcelInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException, ParseException {
return scmSpecialRebateService.getExcelInfo(file, request, userSid, orgPath);
}
@Override
public void excelListOne(ScmSpecialRebateQuery scmSpecialRebateQuery) {
//得到所有要导出的数据
@ -214,4 +361,101 @@ public class ScmSpecialRebateRest implements ScmSpecialRebateFeign {
public ResultBean getExcelTwoInfo(MultipartFile file, HttpServletRequest request, String userSid, String orgPath) throws IOException, ParseException {
return scmSpecialRebateService.getExcelTwoInfo(file, request, userSid, orgPath);
}
/**
* @Description: [导出到浏览器]
* @Param: [fileName, wb, response]
* @return: void
* @Author: yangyongzhuo
* @Date: 2021/7/25 9:40
*/
private static void buildExcelDocument(String fileName, Workbook wb, HttpServletResponse response) {
try {
response.setContentType("application/octet-stream");
// 可自行定义编码格式
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
//清除jsp编译html文件的空白,防止excel出现空行
response.flushBuffer();
//写出
wb.write(response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(wb);
}
}
/**
* 创建标题样式
*
* @param wb
* @return
*/
private static XSSFCellStyle createTitleCellStyle(XSSFWorkbook wb) {
XSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直对齐
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// cellStyle.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex());//背景颜色
XSSFFont headerFont1 = (XSSFFont) wb.createFont(); // 创建字体样式
headerFont1.setBold(true); //字体加粗
headerFont1.setFontName("黑体"); // 设置字体类型
headerFont1.setFontHeightInPoints((short) 15); // 设置字体大小
cellStyle.setFont(headerFont1); // 为标题样式设置字体样式
return cellStyle;
}
/**
* 创建表头样式
*
* @param wb
* @return
*/
private static XSSFCellStyle createHeadCellStyle(XSSFWorkbook wb) {
XSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setWrapText(true);// 设置自动换行
cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());//背景颜色
cellStyle.setAlignment(HorizontalAlignment.CENTER); //水平居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); //垂直对齐
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// cellStyle.setBottomBorderColor(IndexedColors.BLACK.index);
cellStyle.setBorderBottom(BorderStyle.THIN); //下边框
cellStyle.setBorderLeft(BorderStyle.THIN); //左边框
cellStyle.setBorderRight(BorderStyle.THIN); //右边框
cellStyle.setBorderTop(BorderStyle.THIN); //上边框
XSSFFont headerFont = (XSSFFont) wb.createFont(); // 创建字体样式
headerFont.setBold(true); //字体加粗
headerFont.setFontName("黑体"); // 设置字体类型
headerFont.setFontHeightInPoints((short) 12); // 设置字体大小
cellStyle.setFont(headerFont); // 为标题样式设置字体样式
return cellStyle;
}
/**
* 创建内容样式
*
* @param wb
* @return
*/
private static XSSFCellStyle createContentCellStyle(XSSFWorkbook wb) {
XSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);// 水平居中
cellStyle.setWrapText(false);// 设置自动换行
cellStyle.setBorderBottom(BorderStyle.THIN); //下边框
cellStyle.setBorderLeft(BorderStyle.THIN); //左边框
cellStyle.setBorderRight(BorderStyle.THIN); //右边框
cellStyle.setBorderTop(BorderStyle.THIN); //上边框
// 生成12号字体
XSSFFont font = wb.createFont();
font.setColor((short) 8);
font.setFontHeightInPoints((short) 12);
cellStyle.setFont(font);
return cellStyle;
}
}

992
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebate/ScmSpecialRebateService.java

File diff suppressed because it is too large

2
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyRest.java

@ -66,7 +66,7 @@ public class ScmSpecialrebateCheckapplyRest implements ScmSpecialrebateCheckappl
@Override
public ResultBean rePushVoucher(String sid) {
ResultBean rb = ResultBean.fireFail();
scmSpecialrebateCheckapplyService.pushSpecialRebateWithVoucher(sid);
scmSpecialrebateCheckapplyService.pushSpecialRebateCheckVoucher(sid);
return rb.success();
}

18
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatecheckapply/ScmSpecialrebateCheckapplyService.java

@ -30,6 +30,7 @@ import cn.hutool.core.date.DateUtil;
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.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturerFeign;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
@ -79,11 +80,13 @@ import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import static java.util.Comparator.comparing;
@ -435,7 +438,7 @@ public class ScmSpecialrebateCheckapplyService extends MybatisBaseService<ScmSpe
* 推送单车返利核对凭证
*
*/
public void pushSpecialRebateWithVoucher(String sid) {
public void pushSpecialRebateCheckVoucher(String sid) {
String summaryTag = "";//摘要前缀
ScmSpecialrebateCheckapply entity = fetchBySid(sid);
String format = scmVehRebateWithApplyService.returnBusDate(entity.getCreateTime());
@ -886,8 +889,19 @@ public class ScmSpecialrebateCheckapplyService extends MybatisBaseService<ScmSpe
}
scmSpecialRebateService.updateOnceCheckState(scmSpecialrebateCheckapplydetailVo.getSpecialRebateSid(), 1);
}
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
pushSpecialRebateCheckVoucher(bv.getBusinessSid());
});
} catch (Exception e) {
e.printStackTrace();
}
pushSpecialRebateWithVoucher(bv.getBusinessSid());
} else {
//极光推送
scmSpecialrebateCheckapply = fetchBySid(bv.getBusinessSid());

10
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatecheckapplydetail/ScmSpecialrebateCheckapplydetailMapper.xml

@ -16,7 +16,7 @@
SUM(IF(ssc.onceCheckState = 1, ssc.secondaryUploadMoney,
ssc.uploadMoney + ssc.secondaryUploadMoney)) uploadMoney,
SUM(IF(ssc.onceCheckState = 1, 0, ssc.stayDetermineMoney)) stayDetermineMoney,
SUM(ssc.adjustmentMoney) adjustmentMoney,
SUM(CAST(ssc.adjustmentMoney AS DECIMAL(10, 2))) adjustmentMoney,
SUM(ssc.expectItureCost + ssc.expectTreatCost + ssc.expectSuppCost) AS withholdCost,
SUM(IF(ssc.onceCheckState = 1, ssc.secondItureCost + ssc.secondTreatCost + ssc.secondSuppCost,
ssc.onceItureCost + ssc.onceTreatCost + ssc.onceSuppCost + ssc.secondItureCost +
@ -41,7 +41,7 @@
SUM(IF(ssc.onceCheckState = 1, ssc.secondaryUploadMoney,
ssc.uploadMoney + ssc.secondaryUploadMoney)) uploadMoney,
SUM(IF(ssc.onceCheckState = 1, 0, ssc.stayDetermineMoney)) stayDetermineMoney,
SUM(ssc.adjustmentMoney) adjustmentMoney,
SUM(CAST(ssc.adjustmentMoney AS DECIMAL(10, 2))) adjustmentMoney,
SUM(ssc.expectItureCost + ssc.expectTreatCost + ssc.expectSuppCost) AS withholdCost,
SUM(IF(ssc.onceCheckState = 1, ssc.secondItureCost + ssc.secondTreatCost + ssc.secondSuppCost,
ssc.onceItureCost + ssc.onceTreatCost + ssc.onceSuppCost + ssc.secondItureCost +
@ -84,7 +84,7 @@
ssc.onceItureCost + ssc.onceTreatCost + ssc.onceSuppCost + ssc.secondItureCost +
ssc.secondTreatCost + ssc.secondSuppCost)) AS moneyTotal,
SUM(IF(ssc.onceCheckState = 1, 0, ssc.stayDetermineMoney)) stayDetermineMoneyTotal,
SUM(ssc.adjustmentMoney) adjustmentMoneyTotal,
SUM(CAST(ssc.adjustmentMoney AS DECIMAL(10, 2))) adjustmentMoneyTotal,
SUM(IF(ssc.isAdjustment = '是',
ssc.onceItureCost + ssc.onceTreatCost + ssc.onceSuppCost + ssc.secondItureCost +
ssc.secondTreatCost + ssc.secondSuppCost - ssc.expectItureCost - ssc.expectTreatCost -
@ -108,7 +108,7 @@
ssc.onceItureCost + ssc.onceTreatCost + ssc.onceSuppCost + ssc.secondItureCost +
ssc.secondTreatCost + ssc.secondSuppCost)) AS money,
SUM(IF(ssc.onceCheckState = 1, 0, ssc.stayDetermineMoney)) stayDetermineMoney,
SUM(ssc.adjustmentMoney) adjustmentMoney,
SUM(CAST(ssc.adjustmentMoney AS DECIMAL(10, 2))) adjustmentMoney,
SUM(IF(ssc.isAdjustment = '是',
ssc.onceItureCost + ssc.onceTreatCost + ssc.onceSuppCost + ssc.secondItureCost +
ssc.secondTreatCost + ssc.secondSuppCost - ssc.expectItureCost - ssc.expectTreatCost -
@ -134,7 +134,7 @@
ssc.onceItureCost + ssc.onceTreatCost + ssc.onceSuppCost + ssc.secondItureCost +
ssc.secondTreatCost + ssc.secondSuppCost)) AS money,
SUM(IF(ssc.onceCheckState = 1, 0, ssc.stayDetermineMoney)) stayDetermineMoney,
SUM(ssc.adjustmentMoney) adjustmentMoney,
SUM(CAST(ssc.adjustmentMoney AS DECIMAL(10, 2))) adjustmentMoney,
SUM(IF(ssc.isAdjustment = '是',
ssc.onceItureCost + ssc.onceTreatCost + ssc.onceSuppCost + ssc.secondItureCost +
ssc.secondTreatCost + ssc.secondSuppCost - ssc.expectItureCost - ssc.expectTreatCost -

6
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewithapply/ScmSpecialRebateWithApplyMapper.xml

@ -6,14 +6,14 @@
<select id="selectPageVo" resultType="com.yxt.anrui.scm.api.scmspecialrebatewithapply.ScmSpecialRebateWithApplyVo">
SELECT
ssrwa.*,
SUM(ssr.`estimateRebate`) withRebateTotal,
SUM(ssr.estimateRebate) withRebateTotal,
SUM(ssr.expectItureCost + ssr.expectTreatCost + ssr.expectSuppCost) as withholdCost
FROM
scm_special_rebate_with_apply ssrwa
LEFT JOIN scm_special_rebate_with ssrw
ON ssrwa.`sid` = ssrw.`mainSid`
ON ssrwa.sid = ssrw.mainSid
LEFT JOIN scm_special_rebate ssr
ON ssr.`sid` = ssrw.`specialRebateSid`
ON ssr.sid = ssrw.specialRebateSid
<where>
${ew.sqlSegment}
</where>

16
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmspecialrebatewithapply/ScmSpecialRebateWithApplyService.java

@ -30,6 +30,7 @@ import cn.hutool.core.date.DateUtil;
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.basemanufacturer.BaseManufacturer;
import com.yxt.anrui.base.api.basemanufacturer.BaseManufacturerFeign;
import com.yxt.anrui.base.api.basevehiclebrand.BaseVehicleBrand;
@ -79,11 +80,13 @@ import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import static java.util.Comparator.comparing;
@ -584,7 +587,18 @@ public class ScmSpecialRebateWithApplyService extends MybatisBaseService<ScmSpec
scmSpecialRebateService.updateState(specialRebateSid, 2);
scmSpecialRebateService.updateWithholdingDateBySid(specialRebateSid,scmSpecialRebateWithApply.getWithApply());
}
pushSpecialRebateWithVoucher(bv.getBusinessSid());
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
pushSpecialRebateWithVoucher(bv.getBusinessSid());
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
//极光推送
scmSpecialRebateWithApply = fetchBySid(bv.getBusinessSid());

2
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.java

@ -87,4 +87,6 @@ public interface ScmVehRebateMapper extends BaseMapper<ScmVehRebate> {
List<ScmVehRebateVo> checkApplyGetVehRebateAll(@Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
List<ScmVehRebateVo> listAll(@Param(Constants.WRAPPER) QueryWrapper<ScmVehRebate> qw);
int delByVehSid2(@Param("vehSid") String vehSid, @Param("useOrgSid") String useOrgSid, @Param("key") String key);
}

52
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateMapper.xml

@ -9,7 +9,9 @@
sid AS vehRebateSid,
expectTreatCost + expectSuppCost AS expectCost,
expectTreatCost + expectSuppCost AS withholdCost,
onceTreatCost + onceSuppCost + secondTreatCost + secondSuppCost AS money
onceTreatCost + onceSuppCost + secondTreatCost + secondSuppCost AS money,
estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0) AS notUploadMoney,
IF(secondaryUploadMoney > 0 AND isAdjustment = '是','是','否') AS secondCheckState
FROM
scm_veh_rebate
<where>
@ -62,6 +64,24 @@
AND createOrgSid = #{useOrgSid}
</select>
<select id="excelList" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateExcelVo">
SELECT
*,
expectTreatCost + expectSuppCost AS withholdCost,
onceTreatCost + onceSuppCost + secondTreatCost + secondSuppCost AS money,
estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0) AS notUploadMoney,
IF(secondaryUploadMoney > 0 AND isAdjustment = '是','是','否') AS secondCheckState,
@row_number := @row_number + 1 AS rankNo
FROM
scm_veh_rebate,(
SELECT
@row_number := 0
) AS t
<where>
${ew.sqlSegment}
</where>
</select>
<select id="excelListOne" resultType="com.yxt.anrui.scm.api.scmvehrebate.OneExcelVo">
SELECT
*,
@ -87,7 +107,7 @@
<update id="updateOneExcelInfo">
UPDATE
scm_veh_rebate
scm_veh_rebate
SET uploadDate = #{uploadDate},
uploadMoney = #{uploadMoney},
onceTreatCost = #{onceTreatCost},
@ -104,7 +124,7 @@
<update id="updateTwoExcelInfo">
UPDATE
scm_veh_rebate
scm_veh_rebate
SET secondaryUploadDate = #{secondaryUploadDate},
secondaryUploadMoney = #{secondaryUploadMoney},
secondTreatCost = #{secondTreatCost},
@ -117,28 +137,14 @@
WHERE sid = #{sid}
</update>
<select id="excelList" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateExcelVo">
SELECT
*,
@row_number := @row_number + 1 AS rankNo,
sid AS vehRebateSid
FROM
scm_veh_rebate,(
SELECT
@row_number := 0
) AS t
<where>
${ew.sqlSegment}
</where>
</select>
<select id="checkApplyGetVehRebateAll" resultType="com.yxt.anrui.scm.api.scmvehrebate.ScmVehRebateVo">
SELECT
*,
sid AS vehRebateSid,
expectTreatCost + expectSuppCost AS expectCost,
expectTreatCost + expectSuppCost AS withholdCost,
onceTreatCost + onceSuppCost + secondTreatCost + secondSuppCost AS money
onceTreatCost + onceSuppCost + secondTreatCost + secondSuppCost AS money,
estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0) AS notUploadMoney
FROM
scm_veh_rebate
<where>
@ -159,4 +165,12 @@
${ew.sqlSegment}
</where>
</select>
<delete id="delByVehSid2">
delete
from scm_veh_rebate
where vehSid = #{vehSid}
and useOrgSid = #{useOrgSid}
and rebateTypeKey = #{key}
</delete>
</mapper>

285
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateRest.java

@ -25,20 +25,20 @@
*********************************************************/
package com.yxt.anrui.scm.biz.scmvehrebate;
import com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateExcelVo;
import com.yxt.anrui.scm.api.scmspecialrebate.ScmSpecialRebateQuery;
import com.yxt.anrui.scm.api.scmvehrebate.*;
import com.yxt.common.base.utils.ExportExcelUtils;
import com.yxt.common.base.utils.StringUtils;
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.apache.commons.compress.utils.IOUtils;
import org.apache.poi.ss.usermodel.*;
import org.apache.poi.ss.util.CellRangeAddress;
import org.apache.poi.xssf.usermodel.*;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
@ -47,19 +47,6 @@ import java.net.URLEncoder;
import java.text.ParseException;
import java.util.List;
/**
* Project: anrui-scm(单车返利) <br/>
* File: ScmVehRebateFeignFallback.java <br/>
* Class: com.yxt.anrui.scm.biz.scmvehrebate.ScmVehRebateRest <br/>
* Description: 单车返利表. <br/>
* Copyright: Copyright (c) 2011 <br/>
* Company: https://gitee.com/liuzp315 <br/>
* Makedate: 2022-08-24 09:01:54 <br/>
*
* @author liupopo
* @version 1.0
* @since 1.0
*/
@Api(tags = "单车返利表")
@RestController
@RequestMapping("v1/scmvehrebate")
@ -90,16 +77,184 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
@PostMapping("/excelList")
public void excelList(@RequestBody ScmVehRebateQuery query) {
//得到所有要导出的数据
List<ScmVehRebateExcelVo> exportVoList = scmVehRebateService.excelList(query);
//定义导出的excel名字
String excelName = "单车返利管理";
String fileNameURL = "";
List<ScmVehRebateExcelVo> dataList = scmVehRebateService.excelList(query);
// 创建一个新的Excel文档
XSSFWorkbook wb = new XSSFWorkbook();
// 创建一个名为Sheet1的工作表
XSSFSheet sheet = wb.createSheet("单车返利管理");
//样式
XSSFCellStyle titleStyle = createTitleCellStyle(wb);
XSSFCellStyle headerStyle = createHeadCellStyle(wb);
XSSFCellStyle contentStyle = createContentCellStyle(wb);
// 行号
int rowNum = 0;
// 创建第一页的第一行,索引从0开始
XSSFRow row0 = sheet.createRow(rowNum++);
// 设置行高
row0.setHeight((short) 600);
String[] row_Text = {"序号", "采购系统", "车架号", "车型", "所属年月", "返利类型", "返利名称", "返利金额", "", "", "", "", "", "其中费用", "", "日期", "", "", "", "状态", "", "", "车辆入库价", "其中", "", "返利计算", "", "备注", "品牌", "分公司"};
for (int i = 0; i < row_Text.length; i++) {
XSSFCell c00 = row0.createCell(i);
c00.setCellValue(row_Text[i]);
c00.setCellStyle(headerStyle);
}
// 合并单元格,参数依次为起始列,结束列,起始行,结束行 (索引0开始)
sheet.addMergedRegion(new CellRangeAddress(0, 1, 0, 0));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 1, 1));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 2, 2));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 3, 3));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 4, 4));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 5, 5));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 6, 6));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 7, 12));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 13, 14));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 15, 18));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 19, 21));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 22, 22));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 23, 24));
sheet.addMergedRegion(new CellRangeAddress(0, 0, 25, 26));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 27, 27));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 28, 28));
sheet.addMergedRegion(new CellRangeAddress(0, 1, 29, 29));
//第二行
XSSFRow row2 = sheet.createRow(rowNum++);
row2.setHeight((short) 700);
String[] row_third = {"", "", "", "", "", "", "", "预提", "上传", "二次上传", "待确定", "调整", "未上传", "预提", "上传", "创建", "预提", "上传", "二次上传", "流程", "一次核对", "二次核对", "", "运费", "上装", "方式", "标准", "", "", ""};
for (int i = 0; i < row_third.length; i++) {
XSSFCell tempCell = row2.createCell(i);
tempCell.setCellValue(row_third[i]);
tempCell.setCellStyle(headerStyle);
}
for (ScmVehRebateExcelVo value : dataList) {
XSSFRow tempRow = sheet.createRow(rowNum++);
tempRow.setHeight((short) 500);
// 循环单元格填入数据
for (int j = 0; j < 30; j++) {
XSSFCell tempCell = tempRow.createCell(j);
tempCell.setCellStyle(contentStyle);
String tempValue = "";
switch (j) {
case 0:
tempValue = value.getRankNo().toString();
break;
case 1:
tempValue = value.getPurchaseSystemName();
break;
case 2:
tempValue = value.getVinNo();
break;
case 3:
tempValue = value.getVehModelName();
break;
case 4:
tempValue = value.getPalceGenDate();
break;
case 5:
tempValue = value.getRebateTypeValue();
break;
case 6:
tempValue = value.getRebateName();
break;
case 7:
tempValue = value.getEstimateRebate();
break;
case 8:
tempValue = value.getUploadMoney();
break;
case 9:
tempValue = value.getSecondaryUploadMoney();
break;
case 10:
tempValue = value.getStayDetermineMoney();
break;
case 11:
tempValue = value.getAdjustmentMoney();
break;
case 12:
tempValue = value.getNotUploadMoney();
break;
case 13:
tempValue = value.getWithholdCost();
break;
case 14:
tempValue = value.getMoney();
break;
case 15:
tempValue = value.getCreateTime();
break;
case 16:
tempValue = value.getWithholdingDate();
break;
case 17:
tempValue = value.getUploadDate();
break;
case 18:
tempValue = value.getSecondaryUploadDate();
break;
case 19:
tempValue = value.getState();
break;
case 20:
tempValue = value.getOnceCheckState();
break;
case 21:
tempValue = value.getSecondCheckState();
break;
case 22:
tempValue = value.getManufactorSettlementPrice();
break;
case 23:
tempValue = value.getFreight();
break;
case 24:
tempValue = value.getTopAmount();
break;
case 25:
tempValue = value.getCalculationModeValue();
break;
case 26:
tempValue = value.getCalculationStandard();
break;
case 27:
tempValue = value.getRemarks();
break;
case 28:
tempValue = value.getBrandName();
break;
case 29:
tempValue = value.getCreateOrgName();
break;
}
tempCell.setCellValue(tempValue);
//列宽自适应,j为自适应的列,true就是自适应,false就是不自适应,默认不自适应
sheet.autoSizeColumn(j, true);
}
}
//导出到浏览器下载
buildExcelDocument("单车返利管理", wb, response);
}
/**
* @Description: [导出到浏览器]
* @Param: [fileName, wb, response]
* @return: void
* @Author: yangyongzhuo
* @Date: 2021/7/25 9:40
*/
private static void buildExcelDocument(String fileName, Workbook wb, HttpServletResponse response) {
try {
fileNameURL = URLEncoder.encode(excelName, "UTF-8");
} catch (UnsupportedEncodingException e) {
response.setContentType("application/octet-stream");
// 可自行定义编码格式
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "utf-8"));
//清除jsp编译html文件的空白,防止excel出现空行
response.flushBuffer();
//写出
wb.write(response.getOutputStream());
} catch (IOException e) {
e.printStackTrace();
} finally {
IOUtils.closeQuietly(wb);
}
ExportExcelUtils.export(fileNameURL, exportVoList, ScmVehRebateExcelVo.class, response);
}
@Override
@ -197,8 +352,8 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
for (String sid : sids) {
ScmVehRebate scmVehRebate = scmVehRebateService.fetchBySid(sid);
Integer state = scmVehRebate.getState();
if (state == 1) {
return rb.setMsg("所选数据中包含已预提单车返利信息,无法删除");
if (state != 0) {
return rb.setMsg("请选择流程状态为未预提的记录删除");
}
}
scmVehRebateService.delBySids(sids);
@ -228,4 +383,82 @@ public class ScmVehRebateRest implements ScmVehRebateFeign {
public ResultBean delByVehSid(String vehSid) {
return scmVehRebateService.delByVehSid(vehSid);
}
@Override
public ResultBean delByVehSid2(String vehSid, String useOrgSid, String key) {
return scmVehRebateService.delByVehSid2(vehSid, useOrgSid, key);
}
/**
* 创建标题样式
*
* @param wb
* @return
*/
private static XSSFCellStyle createTitleCellStyle(XSSFWorkbook wb) {
XSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setAlignment(HorizontalAlignment.CENTER);//水平居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);//垂直对齐
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// cellStyle.setFillForegroundColor(IndexedColors.GREY_40_PERCENT.getIndex());//背景颜色
XSSFFont headerFont1 = (XSSFFont) wb.createFont(); // 创建字体样式
headerFont1.setBold(true); //字体加粗
headerFont1.setFontName("黑体"); // 设置字体类型
headerFont1.setFontHeightInPoints((short) 15); // 设置字体大小
cellStyle.setFont(headerFont1); // 为标题样式设置字体样式
return cellStyle;
}
/**
* 创建表头样式
*
* @param wb
* @return
*/
private static XSSFCellStyle createHeadCellStyle(XSSFWorkbook wb) {
XSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setWrapText(true);// 设置自动换行
cellStyle.setFillForegroundColor(IndexedColors.GREY_25_PERCENT.getIndex());//背景颜色
cellStyle.setAlignment(HorizontalAlignment.CENTER); //水平居中
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER); //垂直对齐
cellStyle.setFillPattern(FillPatternType.SOLID_FOREGROUND);
// cellStyle.setBottomBorderColor(IndexedColors.BLACK.index);
cellStyle.setBorderBottom(BorderStyle.THIN); //下边框
cellStyle.setBorderLeft(BorderStyle.THIN); //左边框
cellStyle.setBorderRight(BorderStyle.THIN); //右边框
cellStyle.setBorderTop(BorderStyle.THIN); //上边框
XSSFFont headerFont = (XSSFFont) wb.createFont(); // 创建字体样式
headerFont.setBold(true); //字体加粗
headerFont.setFontName("黑体"); // 设置字体类型
headerFont.setFontHeightInPoints((short) 12); // 设置字体大小
cellStyle.setFont(headerFont); // 为标题样式设置字体样式
return cellStyle;
}
/**
* 创建内容样式
*
* @param wb
* @return
*/
private static XSSFCellStyle createContentCellStyle(XSSFWorkbook wb) {
XSSFCellStyle cellStyle = wb.createCellStyle();
cellStyle.setVerticalAlignment(VerticalAlignment.CENTER);// 垂直居中
cellStyle.setAlignment(HorizontalAlignment.CENTER);// 水平居中
cellStyle.setWrapText(false);// 设置自动换行
cellStyle.setBorderBottom(BorderStyle.THIN); //下边框
cellStyle.setBorderLeft(BorderStyle.THIN); //左边框
cellStyle.setBorderRight(BorderStyle.THIN); //右边框
cellStyle.setBorderTop(BorderStyle.THIN); //上边框
// 生成12号字体
XSSFFont font = wb.createFont();
font.setColor((short) 8);
font.setFontHeightInPoints((short) 12);
cellStyle.setFont(font);
return cellStyle;
}
}

647
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebate/ScmVehRebateService.java

@ -54,7 +54,6 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import java.io.File;
@ -149,11 +148,60 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getPalceGenDate())) {
qw.eq("palceGenDate", query.getPalceGenDate());
}
if (StringUtils.isNotBlank(query.getWithholdingDate())) {
String[] w = query.getWithholdingDate().split("-");
String withholdingDate = w[0] + "年" + Integer.parseInt(w[1]) + "月";
qw.eq("withholdingDate", withholdingDate);
}
if (StringUtils.isNotBlank(query.getUploadState())) {
if (query.getUploadState().equals("0")) {
qw.and(wrapper -> wrapper.eq("uploadDate", "")
.or().isNull("uploadDate")
);
} else {
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
}
}
if (StringUtils.isNotBlank(query.getIsAdjustment())) {
qw.eq("isAdjustment", query.getIsAdjustment());
}
if (StringUtils.isNotBlank(query.getIsUploadFinish())) {
if (query.getIsUploadFinish().equals("1")) {
qw.eq("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
} else {
qw.ne("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
}
}
if (StringUtils.isNotBlank(query.getOnceCheckState())) {
qw.eq("onceCheckState", query.getOnceCheckState());
}
if (StringUtils.isNotBlank(query.getSecondUploadState())) {
if (query.getSecondUploadState().equals("1")) {
qw.isNotNull("secondaryUploadMoney");
qw.ne("secondaryUploadMoney", "");
qw.ne("secondaryUploadMoney", 0);
qw.eq("isAdjustment", "是");
} else {
qw.and(wrapper -> wrapper.eq("isAdjustment", '否').or().isNull("secondaryUploadMoney").or().eq("secondaryUploadMoney", ""));
}
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
String uploadStartDate = query.getUploadStartDate();
String uploadEndDate = query.getUploadEndDate();
qw.apply(StringUtils.isNotBlank(uploadStartDate), "date_format (uploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (uploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')").
or().
apply(StringUtils.isNotBlank(uploadStartDate), "date_format (secondaryUploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (secondaryUploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
IPage<ScmVehRebate> page = PagerUtil.queryToPage(pq);
IPage<ScmVehRebateVo> pagging = baseMapper.selectPageVo(page, qw);
@ -161,6 +209,15 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if ("001".equals(record.getCalculationModeKey())) {
record.setCalculationStandard(record.getCalculationStandard() + "%");
}
if (StringUtils.isNotBlank(record.getSecondaryUploadMoney())) {
if (new BigDecimal(record.getSecondaryUploadMoney()).compareTo(BigDecimal.ZERO) == 1 && "是".equals(record.getIsAdjustment())) {
record.setSecondCheckState("是");
} else {
record.setSecondCheckState("否");
}
} else {
record.setSecondCheckState("否");
}
}
PagerVo<ScmVehRebateVo> p = PagerUtil.pageToVo(pagging, null);
return p;
@ -232,11 +289,60 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getPalceGenDate())) {
qw.eq("palceGenDate", query.getPalceGenDate());
}
if (StringUtils.isNotBlank(query.getWithholdingDate())) {
String[] w = query.getWithholdingDate().split("-");
String withholdingDate = w[0] + "年" + Integer.parseInt(w[1]) + "月";
qw.eq("withholdingDate", withholdingDate);
}
if (StringUtils.isNotBlank(query.getUploadState())) {
if (query.getUploadState().equals("0")) {
qw.and(wrapper -> wrapper.eq("uploadDate", "")
.or().isNull("uploadDate")
);
} else {
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
}
}
if (StringUtils.isNotBlank(query.getIsAdjustment())) {
qw.eq("isAdjustment", query.getIsAdjustment());
}
if (StringUtils.isNotBlank(query.getIsUploadFinish())) {
if (query.getIsUploadFinish().equals("1")) {
qw.eq("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
} else {
qw.ne("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
}
}
if (StringUtils.isNotBlank(query.getOnceCheckState())) {
qw.eq("onceCheckState", query.getOnceCheckState());
}
if (StringUtils.isNotBlank(query.getSecondUploadState())) {
if (query.getSecondUploadState().equals("1")) {
qw.isNotNull("secondaryUploadMoney");
qw.ne("secondaryUploadMoney", "");
qw.ne("secondaryUploadMoney", 0);
qw.eq("isAdjustment", "是");
} else {
qw.and(wrapper -> wrapper.eq("isAdjustment", '否').or().isNull("secondaryUploadMoney").or().eq("secondaryUploadMoney", ""));
}
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
String uploadStartDate = query.getUploadStartDate();
String uploadEndDate = query.getUploadEndDate();
qw.apply(StringUtils.isNotBlank(uploadStartDate), "date_format (uploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (uploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')").
or().
apply(StringUtils.isNotBlank(uploadStartDate), "date_format (secondaryUploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (secondaryUploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
List<ScmVehRebateVo> scmVehRebateVoList = baseMapper.listAll(qw);
for (ScmVehRebateVo record : scmVehRebateVoList) {
@ -327,6 +433,8 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
return p;
}
}
qw.eq("state", 2);
qw.eq("adjustmentState", 0);
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
@ -342,19 +450,69 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("state", query.getState());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getPalceGenDate())) {
qw.eq("palceGenDate", query.getPalceGenDate());
}
if (StringUtils.isNotBlank(query.getWithholdingDate())) {
String[] w = query.getWithholdingDate().split("-");
String withholdingDate = w[0] + "年" + Integer.parseInt(w[1]) + "月";
qw.eq("withholdingDate", withholdingDate);
}
if (StringUtils.isNotBlank(query.getUploadState())) {
if (query.getUploadState().equals("0")) {
qw.and(wrapper -> wrapper.eq("uploadDate", "")
.or().isNull("uploadDate")
);
} else {
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
}
}
if (StringUtils.isNotBlank(query.getIsAdjustment())) {
qw.eq("isAdjustment", query.getIsAdjustment());
}
if (StringUtils.isNotBlank(query.getIsUploadFinish())) {
if (query.getIsUploadFinish().equals("1")) {
qw.eq("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
} else {
qw.ne("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
}
}
if (StringUtils.isNotBlank(query.getOnceCheckState())) {
qw.eq("onceCheckState", query.getOnceCheckState());
}
if (StringUtils.isNotBlank(query.getSecondUploadState())) {
if (query.getSecondUploadState().equals("1")) {
qw.isNotNull("secondaryUploadMoney");
qw.ne("secondaryUploadMoney", "");
qw.ne("secondaryUploadMoney", 0);
qw.eq("isAdjustment", "是");
} else {
qw.and(wrapper -> wrapper.eq("isAdjustment", '否').or().isNull("secondaryUploadMoney").or().eq("secondaryUploadMoney", ""));
}
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.eq("state", 2);
qw.eq("adjustmentState", 0);
String uploadStartDate = query.getUploadStartDate();
String uploadEndDate = query.getUploadEndDate();
qw.apply(StringUtils.isNotBlank(uploadStartDate), "date_format (uploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (uploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')").
or().
apply(StringUtils.isNotBlank(uploadStartDate), "date_format (secondaryUploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (secondaryUploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
IPage<ScmVehRebate> page = PagerUtil.queryToPage(pq);
IPage<ScmVehRebateVo> pagging = baseMapper.selectPageVo(page, qw);
@ -412,6 +570,8 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
return p;
}
}
qw.eq("state", 2);
qw.eq("adjustmentState", 0);
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
@ -427,19 +587,69 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("state", query.getState());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getPalceGenDate())) {
qw.eq("palceGenDate", query.getPalceGenDate());
}
if (StringUtils.isNotBlank(query.getWithholdingDate())) {
String[] w = query.getWithholdingDate().split("-");
String withholdingDate = w[0] + "年" + Integer.parseInt(w[1]) + "月";
qw.eq("withholdingDate", withholdingDate);
}
if (StringUtils.isNotBlank(query.getUploadState())) {
if (query.getUploadState().equals("0")) {
qw.and(wrapper -> wrapper.eq("uploadDate", "")
.or().isNull("uploadDate")
);
} else {
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
}
}
if (StringUtils.isNotBlank(query.getIsAdjustment())) {
qw.eq("isAdjustment", query.getIsAdjustment());
}
if (StringUtils.isNotBlank(query.getIsUploadFinish())) {
if (query.getIsUploadFinish().equals("1")) {
qw.eq("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
} else {
qw.ne("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
}
}
if (StringUtils.isNotBlank(query.getOnceCheckState())) {
qw.eq("onceCheckState", query.getOnceCheckState());
}
if (StringUtils.isNotBlank(query.getSecondUploadState())) {
if (query.getSecondUploadState().equals("1")) {
qw.isNotNull("secondaryUploadMoney");
qw.ne("secondaryUploadMoney", "");
qw.ne("secondaryUploadMoney", 0);
qw.eq("isAdjustment", "是");
} else {
qw.and(wrapper -> wrapper.eq("isAdjustment", '否').or().isNull("secondaryUploadMoney").or().eq("secondaryUploadMoney", ""));
}
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.eq("state", 2);
qw.eq("adjustmentState", 0);
String uploadStartDate = query.getUploadStartDate();
String uploadEndDate = query.getUploadEndDate();
qw.apply(StringUtils.isNotBlank(uploadStartDate), "date_format (uploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (uploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')").
or().
apply(StringUtils.isNotBlank(uploadStartDate), "date_format (secondaryUploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (secondaryUploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
List<ScmVehRebateVo> scmVehRebateVoList = baseMapper.checkApplyGetVehRebateAll(qw);
for (ScmVehRebateVo record : scmVehRebateVoList) {
@ -449,6 +659,15 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
} else {//上传状态:已上传
record.setUploadState("1");
}
if (StringUtils.isNotBlank(record.getSecondaryUploadMoney())) {
if (new BigDecimal(record.getSecondaryUploadMoney()).compareTo(BigDecimal.ZERO) == 1 && "是".equals(record.getIsAdjustment())) {
record.setSecondCheckState("是");
} else {
record.setSecondCheckState("否");
}
} else {
record.setSecondCheckState("否");
}
}
return scmVehRebateVoList;
}
@ -498,12 +717,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getVehModelName())) {
qw.like("vehModelName", query.getVehModelName());
}
@ -516,17 +729,75 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("state", query.getState());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
qw.eq("adjustmentState", 0);
qw.eq("state", 2);
qw.eq("onceCheckState", 0);
qw.and(wrapper -> wrapper.eq("uploadDate", "")
.or().isNull("uploadDate")
);
if (StringUtils.isNotBlank(query.getPalceGenDate())) {
qw.eq("palceGenDate", query.getPalceGenDate());
}
if (StringUtils.isNotBlank(query.getWithholdingDate())) {
String[] w = query.getWithholdingDate().split("-");
String withholdingDate = w[0] + "年" + Integer.parseInt(w[1]) + "月";
qw.eq("withholdingDate", withholdingDate);
}
if (StringUtils.isNotBlank(query.getUploadState())) {
if (query.getUploadState().equals("0")) {
qw.and(wrapper -> wrapper.eq("uploadDate", "")
.or().isNull("uploadDate")
);
} else {
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
}
}
if (StringUtils.isNotBlank(query.getIsAdjustment())) {
qw.eq("isAdjustment", query.getIsAdjustment());
}
if (StringUtils.isNotBlank(query.getIsUploadFinish())) {
if (query.getIsUploadFinish().equals("1")) {
qw.eq("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
} else {
qw.ne("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
}
}
if (StringUtils.isNotBlank(query.getOnceCheckState())) {
qw.eq("onceCheckState", query.getOnceCheckState());
}
if (StringUtils.isNotBlank(query.getSecondUploadState())) {
if (query.getSecondUploadState().equals("1")) {
qw.isNotNull("secondaryUploadMoney");
qw.ne("secondaryUploadMoney", "");
qw.ne("secondaryUploadMoney", 0);
qw.eq("isAdjustment", "是");
} else {
qw.and(wrapper -> wrapper.eq("isAdjustment", '否').or().isNull("secondaryUploadMoney").or().eq("secondaryUploadMoney", ""));
}
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
String uploadStartDate = query.getUploadStartDate();
String uploadEndDate = query.getUploadEndDate();
qw.apply(StringUtils.isNotBlank(uploadStartDate), "date_format (uploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (uploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')").
or().
apply(StringUtils.isNotBlank(uploadStartDate), "date_format (secondaryUploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (secondaryUploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
List<OneExcelVo> oneExcelVos = baseMapper.excelListOne(qw);
for (OneExcelVo oneExcelVo : oneExcelVos) {
@ -580,12 +851,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getVehModelName())) {
qw.like("vehModelName", query.getVehModelName());
}
@ -598,15 +863,73 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
if (StringUtils.isNotBlank(query.getState())) {
qw.eq("state", query.getState());
}
if (StringUtils.isNotBlank(query.getUseOrgName())) {
qw.like("useOrgName", query.getUseOrgName());
}
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
qw.eq("adjustmentState", 0);
qw.eq("state", 2);
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
if (StringUtils.isNotBlank(query.getPalceGenDate())) {
qw.eq("palceGenDate", query.getPalceGenDate());
}
if (StringUtils.isNotBlank(query.getWithholdingDate())) {
String[] w = query.getWithholdingDate().split("-");
String withholdingDate = w[0] + "年" + Integer.parseInt(w[1]) + "月";
qw.eq("withholdingDate", withholdingDate);
}
if (StringUtils.isNotBlank(query.getUploadState())) {
if (query.getUploadState().equals("0")) {
qw.and(wrapper -> wrapper.eq("uploadDate", "")
.or().isNull("uploadDate")
);
} else {
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
}
}
if (StringUtils.isNotBlank(query.getIsAdjustment())) {
qw.eq("isAdjustment", query.getIsAdjustment());
}
if (StringUtils.isNotBlank(query.getIsUploadFinish())) {
if (query.getIsUploadFinish().equals("1")) {
qw.eq("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
} else {
qw.ne("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
}
}
if (StringUtils.isNotBlank(query.getOnceCheckState())) {
qw.eq("onceCheckState", query.getOnceCheckState());
}
if (StringUtils.isNotBlank(query.getSecondUploadState())) {
if (query.getSecondUploadState().equals("1")) {
qw.isNotNull("secondaryUploadMoney");
qw.ne("secondaryUploadMoney", "");
qw.ne("secondaryUploadMoney", 0);
qw.eq("isAdjustment", "是");
} else {
qw.and(wrapper -> wrapper.eq("isAdjustment", '否').or().isNull("secondaryUploadMoney").or().eq("secondaryUploadMoney", ""));
}
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.eq("adjustmentState", 0);
qw.eq("state", 2);
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
String uploadStartDate = query.getUploadStartDate();
String uploadEndDate = query.getUploadEndDate();
qw.apply(StringUtils.isNotBlank(uploadStartDate), "date_format (uploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (uploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')").
or().
apply(StringUtils.isNotBlank(uploadStartDate), "date_format (secondaryUploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (secondaryUploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
List<TwoExcelVo> twoExcelVos = baseMapper.excelListTwo(qw);
for (TwoExcelVo twoExcelVo : twoExcelVos) {
@ -619,26 +942,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
ScmVehRebateQuery query = pq.getParams();
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
qw.eq("createOrgSid", query.getCreateOrgSid());
if (StringUtils.isNotBlank(query.getBrandName())) {
qw.like("brandName", query.getBrandName());
}
if (StringUtils.isNotBlank(query.getVehModelName())) {
qw.like("vehModelName", query.getVehModelName());
}
if (StringUtils.isNotBlank(query.getVinNo())) {
qw.like("vinNo", query.getVinNo());
}
if (StringUtils.isNotBlank(query.getRebateTypeKey())) {
qw.eq("rebateTypeKey", query.getRebateTypeKey());
}
if (StringUtils.isNotBlank(query.getRebateName())) {
qw.like("rebateName", query.getRebateName());
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
qw.eq("adjustmentState", 0);
qw.eq("state", 2);
if (query.getSidList().size() > 0) {
@ -1194,15 +1497,17 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
} else {
List<OneExcelInfo> infos = importReturn.getInfos();
for (OneExcelInfo info : infos) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectByVinNoAndOrgSid(info.getVinNo(), info.getRebateTypeValue(), info.getRebateName(), info.getPalceGenDate(), info.getEstimateRebate(), useOrgSid);
String uploadDate = "";
if (isNumber(info.getUploadDate())) {
Date javaDate = new Date((long) ((Double.valueOf(info.getUploadDate()) - 25569) * 86400 * 1000));
uploadDate = DateUtil.formatDate(javaDate);
} else {
uploadDate = info.getUploadDate();
if (StringUtils.isNotBlank(info.getUploadDate()) && StringUtils.isNotBlank(info.getUploadMoney())) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectByVinNoAndOrgSid(info.getVinNo(), info.getRebateTypeValue(), info.getRebateName(), info.getPalceGenDate(), info.getEstimateRebate(), useOrgSid);
String uploadDate = "";
if (isNumber(info.getUploadDate())) {
Date javaDate = new Date((long) ((Double.valueOf(info.getUploadDate()) - 25569) * 86400 * 1000));
uploadDate = DateUtil.formatDate(javaDate);
} else {
uploadDate = info.getUploadDate();
}
baseMapper.updateOneExcelInfo(uploadDate, info.getUploadMoney(), info.getStayDetermineMoney(), info.getOnceTreatCost(), info.getOnceSuppCost(), info.getOnceSuppRemark(), info.getAdjustmentRemarks(), info.getIsAdjustment(), info.getAdjustmentMoney(), info.getDiffAmount(), scmVehRebateVo.getSid());
}
baseMapper.updateOneExcelInfo(uploadDate, info.getUploadMoney(), info.getStayDetermineMoney(), info.getOnceTreatCost(), info.getOnceSuppCost(), info.getOnceSuppRemark(), info.getAdjustmentRemarks(), info.getIsAdjustment(), info.getAdjustmentMoney(), info.getDiffAmount(), scmVehRebateVo.getSid());
}
return rb.success().setMsg("成功导入数据,请点击确定按钮");
}
@ -1437,13 +1742,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
checkWord.add("返利类型不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getRebateTypeValue())) {
String dictKey = dictCommonFeign.selectByValue(excelInfo.getRebateTypeValue()).getData();
if (StringUtils.isBlank(dictKey)) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利类型填写不正确");
break;
}
}
if (StringUtils.isBlank(excelInfo.getEstimateRebate())) {
checkWord.add("预提返利不能为空");
break;
@ -1485,10 +1783,22 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getUploadDate())) {
checkWord.add("上传日期不能为空");
if (StringUtils.isBlank(excelInfo.getUploadDate()) && StringUtils.isNotBlank(excelInfo.getUploadMoney())) {
if (new BigDecimal(excelInfo.getUploadMoney()).compareTo(BigDecimal.ZERO) != 0){
checkWord.add("上传日期不能为空");
break;
}
}
if (StringUtils.isNotBlank(excelInfo.getUploadDate()) && StringUtils.isBlank(excelInfo.getUploadMoney())) {
checkWord.add("上传金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getUploadDate()) && StringUtils.isNotBlank(excelInfo.getUploadMoney())){
if (new BigDecimal(excelInfo.getUploadMoney()).compareTo(BigDecimal.ZERO) == 0){
checkWord.add("上传金额不能为0");
break;
}
}
if (StringUtils.isNotBlank(excelInfo.getUploadDate())) {
String uploadDate = "";
if (isNumber(excelInfo.getUploadDate())) {
@ -1506,10 +1816,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getUploadMoney())) {
checkWord.add("上传金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getUploadMoney())) {
String uploadMoney = excelInfo.getUploadMoney();
Pattern pattern = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$");
@ -1519,10 +1825,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getStayDetermineMoney())) {
checkWord.add("待确定金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getStayDetermineMoney())) {
String stayDetermineMoney = excelInfo.getStayDetermineMoney();
Pattern pattern = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$");
@ -1532,10 +1834,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getOnceTreatCost())) {
checkWord.add("待支付费用不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getOnceTreatCost())) {
String onceTreatCost = excelInfo.getOnceTreatCost();
Pattern pattern = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$");
@ -1545,10 +1843,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getOnceSuppCost())) {
checkWord.add("抵顶费用不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getOnceSuppCost())) {
String onceSuppCost = excelInfo.getOnceSuppCost();
Pattern pattern = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$");
@ -1558,29 +1852,31 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
int i = new BigDecimal(excelInfo.getStayDetermineMoney()).compareTo(BigDecimal.ZERO);
//上传返利金额
BigDecimal scflje = new BigDecimal(excelInfo.getUploadMoney()).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getOnceTreatCost())).subtract(new BigDecimal(excelInfo.getOnceSuppCost()));
//预提返利-其中预提费用
BigDecimal ytfy = new BigDecimal(excelInfo.getEstimateRebate()).subtract(new BigDecimal(excelInfo.getWithholdCost()));
//调整金额
BigDecimal tzje = new BigDecimal(excelInfo.getUploadMoney()).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getOnceTreatCost())).subtract(new BigDecimal(excelInfo.getOnceSuppCost())).subtract(new BigDecimal(excelInfo.getEstimateRebate())).add(new BigDecimal(excelInfo.getWithholdCost()));
if (i > 0) {
excelInfo.setIsAdjustment("否");
excelInfo.setAdjustmentMoney("0");
} else if (i == 0) {
if (scflje.compareTo(ytfy) > 0) {
excelInfo.setIsAdjustment("是");
excelInfo.setAdjustmentMoney(tzje.toString());
} else if (scflje.compareTo(ytfy) == 0) {
excelInfo.setIsAdjustment("是");
excelInfo.setAdjustmentMoney(tzje.toString());
} else if (scflje.compareTo(ytfy) < 0) {
if (StringUtils.isNotBlank(excelInfo.getUploadDate()) && StringUtils.isNotBlank(excelInfo.getUploadMoney())) {
int i = new BigDecimal(excelInfo.getStayDetermineMoney()).compareTo(BigDecimal.ZERO);
//上传返利金额
BigDecimal scflje = new BigDecimal(excelInfo.getUploadMoney()).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getOnceTreatCost())).subtract(new BigDecimal(excelInfo.getOnceSuppCost()));
//预提返利-其中预提费用
BigDecimal ytfy = new BigDecimal(excelInfo.getEstimateRebate()).subtract(new BigDecimal(excelInfo.getWithholdCost()));
//调整金额
BigDecimal tzje = new BigDecimal(excelInfo.getUploadMoney()).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getOnceTreatCost())).subtract(new BigDecimal(excelInfo.getOnceSuppCost())).subtract(new BigDecimal(excelInfo.getEstimateRebate())).add(new BigDecimal(excelInfo.getWithholdCost()));
if (i > 0) {
excelInfo.setIsAdjustment("否");
excelInfo.setAdjustmentMoney("0");
} else if (i == 0) {
if (scflje.compareTo(ytfy) > 0) {
excelInfo.setIsAdjustment("是");
excelInfo.setAdjustmentMoney(tzje.toString());
} else if (scflje.compareTo(ytfy) == 0) {
excelInfo.setIsAdjustment("是");
excelInfo.setAdjustmentMoney(tzje.toString());
} else if (scflje.compareTo(ytfy) < 0) {
excelInfo.setIsAdjustment("否");
excelInfo.setAdjustmentMoney("0");
}
}
excelInfo.setDiffAmount(scflje.subtract(ytfy).toString());
}
excelInfo.setDiffAmount(scflje.subtract(ytfy).toString());
}
}
StringBuffer sbcheck1 = new StringBuffer();
@ -1634,15 +1930,17 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
} else {
List<TwoExcelInfo> infos = importReturn.getInfos();
for (TwoExcelInfo info : infos) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectByVinNoAndOrgSid(info.getVinNo(), info.getRebateTypeValue(), info.getRebateName(), info.getPalceGenDate(), info.getEstimateRebate(), useOrgSid);
String secondaryUploadDate = "";
if (isNumber(info.getSecondaryUploadDate())) {
Date javaDate = new Date((long) ((Double.valueOf(info.getSecondaryUploadDate()) - 25569) * 86400 * 1000));
secondaryUploadDate = DateUtil.formatDate(javaDate);
} else {
secondaryUploadDate = info.getSecondaryUploadDate();
if (StringUtils.isNotBlank(info.getSecondaryUploadDate()) && StringUtils.isNotBlank(info.getSecondaryUploadMoney())) {
ScmVehRebateVo scmVehRebateVo = baseMapper.selectByVinNoAndOrgSid(info.getVinNo(), info.getRebateTypeValue(), info.getRebateName(), info.getPalceGenDate(), info.getEstimateRebate(), useOrgSid);
String secondaryUploadDate = "";
if (isNumber(info.getSecondaryUploadDate())) {
Date javaDate = new Date((long) ((Double.valueOf(info.getSecondaryUploadDate()) - 25569) * 86400 * 1000));
secondaryUploadDate = DateUtil.formatDate(javaDate);
} else {
secondaryUploadDate = info.getSecondaryUploadDate();
}
baseMapper.updateTwoExcelInfo(secondaryUploadDate, info.getSecondaryUploadMoney(), info.getSecondTreatCost(), info.getSecondSuppCost(), info.getSecondSuppRemark(), info.getAdjustmentRemarks(), info.getIsAdjustment(), info.getAdjustmentMoney(), info.getDiffAmount(), scmVehRebateVo.getSid());
}
baseMapper.updateTwoExcelInfo(secondaryUploadDate, info.getSecondaryUploadMoney(), info.getSecondTreatCost(), info.getSecondSuppCost(), info.getSecondSuppRemark(), info.getAdjustmentRemarks(), info.getIsAdjustment(), info.getAdjustmentMoney(), info.getDiffAmount(), scmVehRebateVo.getSid());
}
return rb.success().setMsg("成功导入数据,请点击确定按钮");
}
@ -1889,13 +2187,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
checkWord.add("返利类型不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getRebateTypeValue())) {
String dictKey = dictCommonFeign.selectByValue(excelInfo.getRebateTypeValue()).getData();
if (StringUtils.isBlank(dictKey)) {
checkWord.add("车架号" + excelInfo.getVinNo() + "导入的返利类型填写不正确");
break;
}
}
if (StringUtils.isBlank(excelInfo.getEstimateRebate())) {
checkWord.add("预提返利不能为空");
break;
@ -1997,10 +2288,22 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getUploadDate())) {
checkWord.add("二次上传日期不能为空");
if (StringUtils.isBlank(excelInfo.getSecondaryUploadDate()) && StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())) {
if (new BigDecimal(excelInfo.getSecondaryUploadMoney()).compareTo(BigDecimal.ZERO) != 0){
checkWord.add("二次上传日期不能为空");
break;
}
}
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadDate()) && StringUtils.isBlank(excelInfo.getSecondaryUploadMoney())) {
checkWord.add("二次上传金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadDate()) && StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())){
if (new BigDecimal(excelInfo.getSecondaryUploadMoney()).compareTo(BigDecimal.ZERO) == 0){
checkWord.add("二次上传金额不能为0");
break;
}
}
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadDate())) {
String secondaryUploadDate = "";
if (isNumber(excelInfo.getSecondaryUploadDate())) {
@ -2018,10 +2321,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getSecondaryUploadMoney())) {
checkWord.add("二次上传金额不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())) {
String secondaryUploadMoney = excelInfo.getSecondaryUploadMoney();
Pattern pattern = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$");
@ -2031,10 +2330,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getSecondTreatCost())) {
checkWord.add("待支付费用不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getSecondTreatCost())) {
String secondTreatCost = excelInfo.getSecondTreatCost();
Pattern pattern = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$");
@ -2044,10 +2339,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
if (StringUtils.isBlank(excelInfo.getSecondSuppCost())) {
checkWord.add("抵顶费费用不能为空");
break;
}
if (StringUtils.isNotBlank(excelInfo.getSecondSuppCost())) {
String secondSuppCost = excelInfo.getSecondSuppCost();
Pattern pattern = Pattern.compile("^(\\-|\\+)?\\d+(\\.\\d+)?$");
@ -2057,29 +2348,31 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
break;
}
}
int i = new BigDecimal(excelInfo.getStayDetermineMoney()).compareTo(BigDecimal.ZERO);
//上传返利金额
BigDecimal scflje = new BigDecimal(excelInfo.getUploadMoney()).add(new BigDecimal(excelInfo.getSecondaryUploadMoney())).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getQzMoney())).subtract(new BigDecimal(excelInfo.getSecondTreatCost())).subtract(new BigDecimal(excelInfo.getSecondSuppCost()));
//预提返利-其中预提费用
BigDecimal ytfy = new BigDecimal(excelInfo.getEstimateRebate()).subtract(new BigDecimal(excelInfo.getWithholdCost()));
//调整金额
BigDecimal tzje = new BigDecimal(excelInfo.getUploadMoney()).add(new BigDecimal(excelInfo.getSecondaryUploadMoney())).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getQzMoney())).subtract(new BigDecimal(excelInfo.getSecondTreatCost())).subtract(new BigDecimal(excelInfo.getSecondSuppCost())).subtract(new BigDecimal(excelInfo.getEstimateRebate())).add(new BigDecimal(excelInfo.getWithholdCost()));
if (i > 0) {
excelInfo.setIsAdjustment("否");
excelInfo.setAdjustmentMoney("0");
} else if (i == 0) {
if (scflje.compareTo(ytfy) > 0) {
excelInfo.setIsAdjustment("是");
excelInfo.setAdjustmentMoney(tzje.toString());
} else if (scflje.compareTo(ytfy) == 0) {
excelInfo.setIsAdjustment("是");
excelInfo.setAdjustmentMoney(tzje.toString());
} else if (scflje.compareTo(ytfy) < 0) {
if (StringUtils.isNotBlank(excelInfo.getSecondaryUploadDate()) && StringUtils.isNotBlank(excelInfo.getSecondaryUploadMoney())) {
int i = new BigDecimal(excelInfo.getStayDetermineMoney()).compareTo(BigDecimal.ZERO);
//上传返利金额
BigDecimal scflje = new BigDecimal(excelInfo.getUploadMoney()).add(new BigDecimal(excelInfo.getSecondaryUploadMoney())).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getQzMoney())).subtract(new BigDecimal(excelInfo.getSecondTreatCost())).subtract(new BigDecimal(excelInfo.getSecondSuppCost()));
//预提返利-其中预提费用
BigDecimal ytfy = new BigDecimal(excelInfo.getEstimateRebate()).subtract(new BigDecimal(excelInfo.getWithholdCost()));
//调整金额
BigDecimal tzje = new BigDecimal(excelInfo.getUploadMoney()).add(new BigDecimal(excelInfo.getSecondaryUploadMoney())).subtract(new BigDecimal(excelInfo.getStayDetermineMoney())).subtract(new BigDecimal(excelInfo.getQzMoney())).subtract(new BigDecimal(excelInfo.getSecondTreatCost())).subtract(new BigDecimal(excelInfo.getSecondSuppCost())).subtract(new BigDecimal(excelInfo.getEstimateRebate())).add(new BigDecimal(excelInfo.getWithholdCost()));
if (i > 0) {
excelInfo.setIsAdjustment("否");
excelInfo.setAdjustmentMoney("0");
} else if (i == 0) {
if (scflje.compareTo(ytfy) > 0) {
excelInfo.setIsAdjustment("是");
excelInfo.setAdjustmentMoney(tzje.toString());
} else if (scflje.compareTo(ytfy) == 0) {
excelInfo.setIsAdjustment("是");
excelInfo.setAdjustmentMoney(tzje.toString());
} else if (scflje.compareTo(ytfy) < 0) {
excelInfo.setIsAdjustment("否");
excelInfo.setAdjustmentMoney("0");
}
}
excelInfo.setDiffAmount(scflje.subtract(ytfy).toString());
}
excelInfo.setDiffAmount(scflje.subtract(ytfy).toString());
}
}
StringBuffer sbcheck1 = new StringBuffer();
@ -2115,6 +2408,12 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
return rb.success();
}
public ResultBean delByVehSid2(String vehSid, String useOrgSid, String key) {
ResultBean rb = ResultBean.fireFail();
baseMapper.delByVehSid2(vehSid, useOrgSid, key);
return rb.success();
}
public List<ScmVehRebateExcelVo> excelList(ScmVehRebateQuery query) {
QueryWrapper<ScmVehRebate> qw = new QueryWrapper<>();
//========================================数据授权开始
@ -2181,11 +2480,60 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
if (StringUtils.isNotBlank(query.getPurchaseSystemName())) {
qw.like("purchaseSystemName", query.getPurchaseSystemName());
}
if (StringUtils.isNotBlank(query.getPalceGenDate())) {
qw.eq("palceGenDate", query.getPalceGenDate());
}
if (StringUtils.isNotBlank(query.getWithholdingDate())) {
String[] w = query.getWithholdingDate().split("-");
String withholdingDate = w[0] + "年" + Integer.parseInt(w[1]) + "月";
qw.eq("withholdingDate", withholdingDate);
}
if (StringUtils.isNotBlank(query.getUploadState())) {
if (query.getUploadState().equals("0")) {
qw.and(wrapper -> wrapper.eq("uploadDate", "")
.or().isNull("uploadDate")
);
} else {
qw.ne("uploadDate", "");
qw.isNotNull("uploadDate");
}
}
if (StringUtils.isNotBlank(query.getIsAdjustment())) {
qw.eq("isAdjustment", query.getIsAdjustment());
}
if (StringUtils.isNotBlank(query.getIsUploadFinish())) {
if (query.getIsUploadFinish().equals("1")) {
qw.eq("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
} else {
qw.ne("estimateRebate - IFNULL(uploadMoney,0) - IFNULL(secondaryUploadMoney,0) + IFNULL(adjustmentMoney,0)", 0);
}
}
if (StringUtils.isNotBlank(query.getOnceCheckState())) {
qw.eq("onceCheckState", query.getOnceCheckState());
}
if (StringUtils.isNotBlank(query.getSecondUploadState())) {
if (query.getSecondUploadState().equals("1")) {
qw.isNotNull("secondaryUploadMoney");
qw.ne("secondaryUploadMoney", "");
qw.ne("secondaryUploadMoney", 0);
qw.eq("isAdjustment", "是");
} else {
qw.and(wrapper -> wrapper.eq("isAdjustment", '否').or().isNull("secondaryUploadMoney").or().eq("secondaryUploadMoney", ""));
}
}
String createStartTime = query.getCreateStartTime();
String createEndTime = query.getCreateEndTime();
qw.apply(StringUtils.isNotBlank(createStartTime), "date_format (createTime,'%Y-%m-%d') >= date_format('" + createStartTime + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(createEndTime), "date_format (createTime,'%Y-%m-%d') <= date_format('" + createEndTime + "','%Y-%m-%d')"
);
String uploadStartDate = query.getUploadStartDate();
String uploadEndDate = query.getUploadEndDate();
qw.apply(StringUtils.isNotBlank(uploadStartDate), "date_format (uploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (uploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')").
or().
apply(StringUtils.isNotBlank(uploadStartDate), "date_format (secondaryUploadDate,'%Y-%m-%d') >= date_format('" + uploadStartDate + "','%Y-%m-%d')").
apply(StringUtils.isNotBlank(uploadEndDate), "date_format (secondaryUploadDate,'%Y-%m-%d') <= date_format('" + uploadEndDate + "','%Y-%m-%d')"
);
qw.orderByDesc("createTime");
List<ScmVehRebateExcelVo> scmVehRebateExcelVos = baseMapper.excelList(qw);
for (ScmVehRebateExcelVo scmVehRebateExcelVo : scmVehRebateExcelVos) {
@ -2208,13 +2556,6 @@ public class ScmVehRebateService extends MybatisBaseService<ScmVehRebateMapper,
scmVehRebateExcelVo.setOnceCheckState("一次核对中");
}
scmVehRebateExcelVo.setCreateTime(DateUtil.formatDate(DateUtil.parse(scmVehRebateExcelVo.getCreateTime())));
if ("是".equals(scmVehRebateExcelVo.getIsAdjustment())) {
scmVehRebateExcelVo.setTreatAdjustmentMoney(scmVehRebateExcelVo.getOnceTreatCost().add(scmVehRebateExcelVo.getSecondTreatCost()).subtract(scmVehRebateExcelVo.getExpectTreatCost()));
scmVehRebateExcelVo.setSuppAdjustmentMoney(scmVehRebateExcelVo.getOnceSuppCost().add(scmVehRebateExcelVo.getSecondSuppCost()).subtract(scmVehRebateExcelVo.getExpectSuppCost()));
} else {
scmVehRebateExcelVo.setTreatAdjustmentMoney(BigDecimal.ZERO);
scmVehRebateExcelVo.setSuppAdjustmentMoney(BigDecimal.ZERO);
}
}
return scmVehRebateExcelVos;
}

12
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyMapper.xml

@ -6,18 +6,18 @@
<select id="selectPageVo" resultType="com.yxt.anrui.scm.api.scmvehrebatecheckapply.ScmVehrebateCheckapplyVo">
SELECT
svc.*,
SUM(svr.`estimateRebate`) estimateRebate,
SUM(svr.`uploadMoney`) uploadMoney,
SUM(svr.`stayDetermineMoney`) stayDetermineMoney,
SUM(svr.`adjustmentMoney`) adjustmentMoney,
SUM(svr.estimateRebate) estimateRebate,
SUM(svr.uploadMoney) uploadMoney,
SUM(svr.stayDetermineMoney) stayDetermineMoney,
SUM(svr.adjustmentMoney) adjustmentMoney,
SUM(svr.onceTreatCost + svr.onceSuppCost + svr.secondTreatCost + svr.secondSuppCost) money,
SUM(svr.expectTreatCost + svr.expectSuppCost) withholdCost
FROM
scm_vehrebate_checkapply svc
LEFT JOIN scm_vehrebate_checkapplydetail svcd
ON svc.`sid` = svcd.`mainSid`
ON svc.sid = svcd.mainSid
LEFT JOIN scm_veh_rebate svr
ON svr.`sid` = svcd.`vehRebateSid`
ON svr.sid = svcd.vehRebateSid
<where>
${ew.sqlSegment}
</where>

19
anrui-scm/anrui-scm-biz/src/main/java/com/yxt/anrui/scm/biz/scmvehrebatecheckapply/ScmVehrebateCheckapplyService.java

@ -30,6 +30,7 @@ import cn.hutool.core.date.DateUtil;
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.basevehicle.BaseVehicle;
import com.yxt.anrui.base.api.basevehicle.BaseVehicleFeign;
import com.yxt.anrui.base.api.basevehicleout.BaseVehicleOutFeign;
@ -83,11 +84,13 @@ import com.yxt.messagecenter.api.message.MessageFlowableQuery;
import com.yxt.messagecenter.api.messagelist.MessageList;
import com.yxt.messagecenter.api.messagelist.MessageListFeign;
import org.apache.commons.lang3.StringUtils;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.math.BigDecimal;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
import static java.util.Comparator.comparing;
@ -489,7 +492,21 @@ public class ScmVehrebateCheckapplyService extends MybatisBaseService<ScmVehreba
}
scmVehRebateService.updateOnceCheckState(scmVehrebateCheckapplydetailVo.getVehRebateSid(), 1);
}
pushVehRebateWithVoucher(bv.getBusinessSid()); //推送返利核对凭证
try {
ThreadFactory namedThreadFactory = new ThreadFactoryBuilder()
.setNameFormat("demo-pool-%d").build();
ExecutorService pool = new ThreadPoolExecutor(1, 10,
1000, TimeUnit.MILLISECONDS,
new LinkedBlockingQueue<Runnable>(1024), namedThreadFactory, new ThreadPoolExecutor.AbortPolicy());
Future future1 = pool.submit(() -> {
pushVehRebateWithVoucher(bv.getBusinessSid()); //推送返利核对凭证
});
} catch (Exception e) {
e.printStackTrace();
}
} else {
//极光推送
scmVehrebateCheckapply = fetchBySid(bv.getBusinessSid());

BIN
anrui-scm/anrui-scm-biz/src/main/resources/static/专项返利模版.xls

Binary file not shown.

9
anrui-scm/anrui-scm-ui/src/api/specialrebate/specialrebatemanagement.js

@ -53,5 +53,14 @@ export default {
responseType: 'blob', // 表明返回服务器返回的数据类型
headers: { 'Content-Type': 'application/json' }
})
},
// 下载模板
downloadExcel: function() {
return request({
url: '/scm/v1/scmspecialrebate/downloadExcel',
method: 'post',
responseType: 'blob', // 表明返回服务器返回的数据类型
headers: { 'Content-Type': 'application/json' }
})
}
}

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

@ -11,7 +11,7 @@
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.useOrgName" placeholder="" clearable/>
</el-form-item>
@ -29,8 +29,21 @@
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.createEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="所属年月">
<el-date-picker v-model="listQuery.params.palceGenDate" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="预提年月">
<el-date-picker v-model="listQuery.params.withholdingDate" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="上传日期">
<el-date-picker v-model="listQuery.params.uploadStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.uploadEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="返利类型">
<el-input v-model="listQuery.params.rebateTypeValue" placeholder="" clearable/>
<el-select v-model="listQuery.params.rebateTypeValue" placeholder="请选择" filterable clearable>
<el-option v-for="item in rebateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-form-item>
<el-form-item label="返利名称">
<el-input v-model="listQuery.params.rebateName" placeholder="" clearable/>
@ -40,6 +53,31 @@
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="上传状态">
<el-select v-model="listQuery.params.uploadState" placeholder="请选择" filterable clearable>
<el-option v-for="item in uploadState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="是否调整">
<el-select v-model="listQuery.params.isAdjustment" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-form-item>
<el-form-item label="是否上传完成">
<el-select v-model="listQuery.params.isUploadFinish" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="一次核对状态">
<el-select v-model="listQuery.params.onceCheckState" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="二次上传状态">
<el-select v-model="listQuery.params.secondUploadState" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
@ -58,47 +96,55 @@
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange" show-summary :summary-method="getSummaries">
<el-table-column fixed type="selection" align="center" width="60"/>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80"/>
<el-table-column label="操作" align="center" width="180">
<el-table-column fixed type="selection" align="center" width="55"/>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="60"/>
<el-table-column fixed label="操作" align="center" width="130">
<template slot-scope="scope">
<el-button type="primary" v-if="scope.row.onceCheckState == '0'" size="mini" @click="toSave(scope.row)">修改</el-button>
<el-button type="primary" v-else size="mini" @click="toAdjust(scope.row)">调整</el-button>
</template>
</el-table-column>
<el-table-column label="上传状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.uploadState == '0' ? '未上传' : scope.row.uploadState == '1' ? '已上传' : ''}}</span>
</template>
</el-table-column>
<el-table-column label="一次核对状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="createOrgName" label="分公司" align="center" width="150" />
<el-table-column prop="purchaseSystemName" label="采购系统" align="center" width="140" />
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column fixed prop="purchaseSystemName" label="采购系统" align="center" width="110" />
<el-table-column fixed prop="vinNo" label="车架号" align="center" width="90" />
<el-table-column prop="vehModelName" label="车型" align="center" min-width="200" />
<el-table-column prop="vinNo" label="车架号" align="center" width="150" />
<el-table-column prop="manufactorSettlementPrice" label="车辆入库价" align="center" width="140" />
<el-table-column prop="freight" label="其中运费" align="center" width="120" />
<el-table-column prop="createTime" label="创建日期" align="center" width="120" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="85" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="150" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" width="120" />
<el-table-column prop="withholdCost" label="其中预提费用" align="center" width="140" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="120" />
<el-table-column prop="uploadDate" label="上传日期" align="center" width="120" />
<el-table-column prop="uploadMoney" label="上传金额" align="center" width="120" />
<el-table-column prop="secondaryUploadDate" label="二次上传日期" align="center" width="140" />
<el-table-column prop="secondaryUploadMoney" label="二次上传金额" align="center" width="140" />
<el-table-column prop="stayDetermineMoney" label="待确定金额" align="center" width="130" />
<el-table-column prop="money" label="费用" align="center" width="120" />
<el-table-column prop="diffAmount" label="差异金额" align="center" width="120" />
<el-table-column prop="isAdjustment" label="是否调整" align="center" width="120" />
<el-table-column prop="adjustmentMoney" label="调整金额" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="130" />
<el-table-column label="金额" align="center">
<el-table-column prop="estimateRebate" label="预提" align="center" width="100" />
<el-table-column prop="uploadMoney" label="上传" align="center" width="100" />
<el-table-column prop="secondaryUploadMoney" label="二次上传" align="center" width="100" />
<el-table-column prop="stayDetermineMoney" label="待确定" align="center" width="100" />
<el-table-column prop="adjustmentMoney" label="调整" align="center" width="100" />
<el-table-column prop="notUploadMoney" label="未上传" align="center" width="100" />
</el-table-column>
<el-table-column label="其中费用" align="center">
<el-table-column prop="withholdCost" label="预提" align="center" width="100" />
<el-table-column prop="money" label="上传" align="center" width="100" />
</el-table-column>
<el-table-column label="日期" align="center">
<el-table-column prop="createTime" label="创建" align="center" width="95" />
<el-table-column prop="withholdingDate" label="预提" align="center" width="95" />
<el-table-column prop="uploadDate" label="上传" align="center" width="95" />
<el-table-column prop="secondaryUploadDate" label="二次上传" align="center" width="95" />
</el-table-column>
<el-table-column label="状态" align="center">
<el-table-column label="上传" align="center" width="70">
<template slot-scope="scope">
<span>{{ scope.row.uploadState == '0' ? '未上传' : scope.row.uploadState == '1' ? '已上传' : ''}}</span>
</template>
</el-table-column>
<el-table-column label="一次核对" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="secondCheckState" label="二次核对" align="center" width="120" />
</el-table-column>
<el-table-column prop="isAdjustment" label="是否调整" align="center" width="90" />
<el-table-column prop="adjustmentRemarks" label="调整说明" align="center" min-width="300" />
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column prop="createOrgName" label="分公司" align="center" width="150" />
</el-table>
</div>
<div class="pages">
@ -373,7 +419,7 @@ import ButtonBar from '@/components/ButtonBar'
import bicyclerebatecheck from './bicyclerebatecheck'
import bicyclerebatecheckAdd from './bicyclerebatecheckAdd'
import bicyclerebatetobecheckedByUpdate from './bicyclerebatetobecheckedByUpdate'
import { getOrgSidByPath } from '@/api/cheliang/dictcommons'
import { getOrgSidByPath, getTypeValueList } from '@/api/cheliang/dictcommons'
export default {
name: 'BicycleRebateToBeChecked',
@ -413,6 +459,7 @@ export default {
listAll: [],
sids: [],
FormLoading: false,
rebateType_list: [],
state_list: [
{
dictKey: '0',
@ -423,6 +470,26 @@ export default {
dictValue: '是'
}
],
uploadState_list: [
{
dictKey: '1',
dictValue: '已上传'
},
{
dictKey: '0',
dictValue: '未上传'
}
],
whether_list: [
{
dictKey: '1',
dictValue: '是'
},
{
dictKey: '0',
dictValue: '否'
}
],
listLoading: false,
listQuery: {
params: {
@ -436,6 +503,14 @@ export default {
state: '',
createEndTime: '',
createStartTime: '',
palceGenDate: '',
withholdingDate: '',
uploadStartDate: '',
uploadEndDate: '',
uploadState: '',
isAdjustment: '',
isUploadFinish: '',
secondUploadState: '',
orgPath: '',
userSid: '',
menuUrl: ''
@ -490,6 +565,11 @@ export default {
},
methods: {
init() {
getTypeValueList({ type: 'rebateType', groupNum: 'DC' }).then((res) => {
if (res.success) {
this.rebateType_list = res.data
}
})
getOrgSidByPath({ orgPath: window.sessionStorage.getItem('defaultOrgPath') }).then((resp) => {
if (resp.success) {
this.listQuery.params.createOrgSid = resp.data
@ -576,6 +656,14 @@ export default {
state: '',
createEndTime: '',
createStartTime: '',
palceGenDate: '',
withholdingDate: '',
uploadStartDate: '',
uploadEndDate: '',
uploadState: '',
isAdjustment: '',
isUploadFinish: '',
secondUploadState: '',
orgPath: '',
userSid: '',
menuUrl: ''
@ -841,4 +929,12 @@ export default {
margin-left: 120px !important;
width: calc(100% - 115px);
}
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed {
height: 100% !important;
}
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed-right {
height: 100% !important;
}
</style>

4
anrui-scm/anrui-scm-ui/src/views/bikerebate/bicyclerebatecheck/bicyclerebatetobecheckedByUpdate.vue

@ -248,7 +248,7 @@ export default {
req.fetchBySid(row.sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
if (this.formobj.secondaryUploadMoney.toString() === '0') {
if (parseFloat(this.formobj.secondaryUploadMoney) === 0) {
this.checked = false
}
this.isAdjustmentInput(this.formobj)
@ -299,7 +299,7 @@ export default {
let money = '0'
// ( + ) - - - -
money = Math.round((parseFloat(val.uploadMoney !== '' ? val.uploadMoney : 0) + parseFloat(val.secondaryUploadMoney !== '' ? val.secondaryUploadMoney : 0) - parseFloat(val.stayDetermineMoney !== '' ? val.stayDetermineMoney : 0) - (parseFloat(val.onceTreatCost !== '' ? val.onceTreatCost : 0) + parseFloat(val.onceSuppCost !== '' ? val.onceSuppCost : 0) + parseFloat(val.secondTreatCost !== '' ? val.secondTreatCost : 0) + parseFloat(val.secondSuppCost !== '' ? val.secondSuppCost : 0)) - (parseFloat(val.estimateRebate !== '' ? val.estimateRebate : 0) - parseFloat(val.expectTreatCost !== '' ? val.expectTreatCost : 0) - parseFloat(val.expectSuppCost !== '' ? val.expectSuppCost : 0))) * 100) / 100
if (val.stayDetermineMoney === '0') {
if (parseFloat(val.stayDetermineMoney) === 0) {
if (parseFloat(money) > 0) {
this.isAdjustment = '是'
val.adjustmentMoney = parseFloat(money)

175
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagement.vue

@ -7,7 +7,7 @@
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.createOrgName" placeholder="" clearable/>
</el-form-item>
@ -28,6 +28,17 @@
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.createEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="所属年月">
<el-date-picker v-model="listQuery.params.palceGenDate" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="预提年月">
<el-date-picker v-model="listQuery.params.withholdingDate" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="上传日期">
<el-date-picker v-model="listQuery.params.uploadStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.uploadEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="返利类型">
<el-select v-model="listQuery.params.rebateTypeKey" placeholder="请选择" filterable clearable>
<el-option v-for="item in rebateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
@ -36,11 +47,36 @@
<el-form-item label="返利名称">
<el-input v-model="listQuery.params.rebateName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="状态">
<el-form-item label="流程状态">
<el-select v-model="listQuery.params.state" placeholder="请选择" filterable clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="上传状态">
<el-select v-model="listQuery.params.uploadState" placeholder="请选择" filterable clearable>
<el-option v-for="item in uploadState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="是否调整">
<el-select v-model="listQuery.params.isAdjustment" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-form-item>
<el-form-item label="是否上传完成">
<el-select v-model="listQuery.params.isUploadFinish" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="一次核对状态">
<el-select v-model="listQuery.params.onceCheckState" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="二次上传状态">
<el-select v-model="listQuery.params.secondUploadState" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
@ -56,52 +92,63 @@
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange" show-summary :summary-method="getSummaries">
<el-table-column fixed type="selection" align="center" width="80" />
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80" />
<el-table-column fixed label="操作" align="center" width="180">
<el-table-column fixed type="selection" align="center" width="55" />
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="60" />
<el-table-column fixed label="操作" align="center" width="130">
<template slot-scope="scope">
<el-button type="primary" :disabled="scope.row.state !== '0'" size="mini" @click="toEdit(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="状态" align="center" width="150">
<template slot-scope="scope">
<span>{{ scope.row.state == '0' ? '未计提' : scope.row.state == '1' ? '计提中' : scope.row.state == '2' ? '待核对' : scope.row.state == '3' ? '核对中' : scope.row.state == '4' ? '已核对' : '' }}</span>
</template>
<el-table-column fixed prop="purchaseSystemName" label="采购系统" align="center" width="110" />
<el-table-column fixed prop="vinNo" label="车架号" align="center" width="90" />
<el-table-column prop="vehModelName" label="车型" align="center" width="200" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="85" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" width="130" />
<el-table-column label="返利金额" align="center">
<el-table-column prop="estimateRebate" label="预提" align="center" width="100" />
<el-table-column prop="uploadMoney" label="上传" align="center" width="100" />
<el-table-column prop="secondaryUploadMoney" label="二次上传" align="center" width="100" />
<el-table-column prop="stayDetermineMoney" label="待确定" align="center" width="100" />
<el-table-column prop="adjustmentMoney" label="调整" align="center" width="100" />
<el-table-column prop="notUploadMoney" label="未上传" align="center" width="100" />
</el-table-column>
<el-table-column label="一次核对状态" align="center" width="160">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
<el-table-column label="其中费用" align="center">
<el-table-column prop="expectCost" label="预提" align="center" width="100" />
<el-table-column prop="money" label="上传" align="center" width="100" />
</el-table-column>
<el-table-column label="日期" align="center">
<el-table-column prop="createTime" label="创建" align="center" width="95" />
<el-table-column prop="withholdingDate" label="预提" align="center" width="95" />
<el-table-column prop="uploadDate" label="上传" align="center" width="95" />
<el-table-column prop="secondaryUploadDate" label="二次上传" align="center" width="95" />
</el-table-column>
<el-table-column label="状态" align="center">
<el-table-column label="流程" align="center" width="70">
<template slot-scope="scope">
<span>{{ scope.row.state == '0' ? '未计提' : scope.row.state == '1' ? '计提中' : scope.row.state == '2' ? '待核对' : scope.row.state == '3' ? '核对中' : scope.row.state == '4' ? '已核对' : '' }}</span>
</template>
</el-table-column>
<el-table-column label="一次核对状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="secondCheckState" label="二次核对" align="center" width="120" />
</el-table-column>
<el-table-column prop="manufactorSettlementPrice" label="车辆入库价" align="center" width="110" />
<el-table-column label="其中" align="center">
<el-table-column prop="freight" label="运费" align="center" width="100" />
<el-table-column prop="topAmount" label="上装" align="center" width="100" />
</el-table-column>
<el-table-column label="返利计算" align="center">
<el-table-column prop="calculationModeValue" label="方式" align="center" width="80" />
<el-table-column prop="calculationStandard" label="标准" align="center" width="100" />
</el-table-column>
<el-table-column prop="createOrgName" label="分公司" align="center" width="150" />
<el-table-column prop="brandName" label="品牌" align="center" width="200" />
<el-table-column prop="purchaseSystemName" label="采购系统" align="center" width="140" />
<el-table-column prop="vehModelName" label="车型" align="center" width="200" />
<el-table-column prop="vinNo" label="车架号" align="center" width="150" />
<el-table-column prop="manufactorSettlementPrice" label="车辆入库价" align="center" width="140" />
<el-table-column prop="freight" label="其中运费" align="center" width="120" />
<el-table-column prop="topAmount" label="其中上装金额" align="center" width="140" />
<el-table-column prop="createTime" label="创建日期" align="center" width="120" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="150" />
<el-table-column prop="rebateName" label="返利名称" align="center" width="150" />
<el-table-column prop="calculationModeValue" label="计算方式" align="center" width="100" />
<el-table-column prop="calculationStandard" label="计算标准" align="center" width="100" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" width="120" />
<el-table-column prop="expectCost" label="其中预计费用" align="center" width="160" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="120" />
<el-table-column prop="withholdingDate" label="预提日期" align="center" width="120" />
<el-table-column prop="uploadDate" label="上传日期" align="center" width="120" />
<el-table-column prop="uploadMoney" label="上传金额" align="center" width="120" />
<el-table-column prop="secondaryUploadDate" label="二次上传日期" align="center" width="120" />
<el-table-column prop="secondaryUploadMoney" label="二次上传金额" align="center" width="120" />
<el-table-column prop="stayDetermineMoney" label="待确定金额" align="center" width="120" />
<el-table-column prop="money" label="费用" align="center" width="120" />
<el-table-column prop="isAdjustment" label="是否调整" align="center" width="100" />
<el-table-column prop="diffAmount" label="差异金额" align="center" width="120" />
<el-table-column prop="adjustmentMoney" label="调整金额" align="center" width="120" />
<el-table-column prop="adjustmentRemarks" label="调整说明" align="center" min-width="200" />
<el-table-column prop="remarks" label="备注" align="center" min-width="200" />
<el-table-column prop="brandName" label="品牌" align="center" width="140" />
<el-table-column prop="createOrgName" label="分公司" align="center" width="150" />
</el-table>
</div>
<div class="pages">
@ -161,7 +208,7 @@ import req from '@/api/bikerebate/bicyclerebatemanagement'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { typeValues } from '@/api/cheliang/dictcommons'
import { getTypeValueList } from '@/api/cheliang/dictcommons'
import bicyclerebatemanagementAdd from './bicyclerebatemanagementAdd'
import bicyclerebatemanagementEdit from './bicyclerebatemanagementEdit'
import bicyclerebatemanagementInfo from './bicyclerebatemanagementInfo'
@ -227,6 +274,26 @@ export default {
FormLoading: false,
listLoading: false,
rebateType_list: [],
uploadState_list: [
{
dictKey: '1',
dictValue: '已上传'
},
{
dictKey: '0',
dictValue: '未上传'
}
],
whether_list: [
{
dictKey: '1',
dictValue: '是'
},
{
dictKey: '0',
dictValue: '否'
}
],
state_list: [
{
dictKey: '0',
@ -261,6 +328,14 @@ export default {
vinNo: '',
vehModelName: '',
brandName: '',
palceGenDate: '',
withholdingDate: '',
uploadStartDate: '',
uploadEndDate: '',
uploadState: '',
isAdjustment: '',
isUploadFinish: '',
secondUploadState: '',
orgPath: '',
userSid: '',
menuUrl: ''
@ -294,7 +369,7 @@ export default {
},
methods: {
init() {
typeValues({ type: 'rebateType' }).then((res) => {
getTypeValueList({ type: 'rebateType', groupNum: 'DC' }).then((res) => {
if (res.success) {
this.rebateType_list = res.data
}
@ -388,6 +463,14 @@ export default {
vinNo: '',
vehModelName: '',
brandName: '',
palceGenDate: '',
withholdingDate: '',
uploadStartDate: '',
uploadEndDate: '',
uploadState: '',
isAdjustment: '',
isUploadFinish: '',
secondUploadState: '',
orgPath: '',
userSid: '',
menuUrl: ''
@ -559,4 +642,12 @@ export default {
}
</script>
<style scoped>
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed {
height: 100% !important;
}
/*表格列设置fixed后固定列出现下边框的设置*/
/deep/ .el-table__fixed-right {
height: 100% !important;
}
</style>

26
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementAdd.vue

@ -69,27 +69,27 @@
</el-table-column>
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column prop="purchaseSystemName" label="采购系统" align="center" width="140" />
<el-table-column prop="vinNo" label="车架号" align="center" width="150" />
<el-table-column prop="manufactorSettlementPrice" label="车辆入库价" align="center" width="140"/>
<el-table-column prop="freight" label="其中运费" align="center" width="130" />
<el-table-column prop="topAmount" label="上装" align="center" width="120" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" width="130" />
<el-table-column label="其中待支付费用" align="center" min-width="200">
<el-table-column prop="vinNo" label="车架号" align="center" width="90" />
<el-table-column prop="manufactorSettlementPrice" label="车辆入库价" align="center" width="110"/>
<el-table-column prop="freight" label="其中运费" align="center" width="100" />
<el-table-column prop="topAmount" label="上装" align="center" width="90" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" width="100" />
<el-table-column label="其中待支付费用" align="center" width="225">
<template slot-scope="scope">
<el-input v-model="scope.row.expectTreatCost" @keyup.native="scope.row.expectTreatCost = getNumber(scope.row.expectTreatCost, 2)" clearable placeholder=""></el-input>
<el-input v-model="scope.row.expectTreatCost" @keyup.native="scope.row.expectTreatCost = getNumber(scope.row.expectTreatCost, 2)" clearable placeholder="待支付的相关人员返利等"></el-input>
</template>
</el-table-column>
<el-table-column label="其中抵顶费用" align="center" min-width="200">
<el-table-column label="其中抵顶费用" align="center" width="310">
<template slot-scope="scope">
<el-input v-model="scope.row.expectSuppCost" @keyup.native="scope.row.expectSuppCost = getNumber(scope.row.expectSuppCost, 2)" clearable placeholder=""></el-input>
<el-input v-model="scope.row.expectSuppCost" @keyup.native="scope.row.expectSuppCost = getNumber(scope.row.expectSuppCost, 2)" clearable placeholder="抵顶各种垫付款,例如垫付厂家人员房租"></el-input>
</template>
</el-table-column>
<el-table-column label="抵顶费用说明" align="center" min-width="200">
<el-table-column label="抵顶费用说明" align="center" min-width="250">
<template slot-scope="scope">
<el-input v-model="scope.row.expectSuppRemark" clearable placeholder=""></el-input>
</template>
</el-table-column>
<el-table-column label="备注" align="center" min-width="200">
<el-table-column label="备注" align="center" min-width="250">
<template slot-scope="scope">
<el-input v-model="scope.row.remarks" clearable placeholder=""></el-input>
</template>
@ -313,9 +313,9 @@ export default {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
} else {
return prev
return Math.round((parseFloat(prev)) * 100) / 100
}
}, 0)
sums[index] += ''

4
anrui-scm/anrui-scm-ui/src/views/bikerebate/bikerebatemanagement/bicyclerebatemanagementEdit.vue

@ -74,11 +74,11 @@
</el-col>
<el-col :span="8">
<div class="span-sty">其中待支付费用</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectTreatCost" @keyup.native="formobj.expectTreatCost = getNumber(formobj.expectTreatCost, 2)" clearable placeholder="" /></el-form-item>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectTreatCost" @keyup.native="formobj.expectTreatCost = getNumber(formobj.expectTreatCost, 2)" clearable placeholder="待支付的相关人员返利等" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">其中抵顶费用</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectSuppCost" @keyup.native="formobj.expectSuppCost = getNumber(formobj.expectSuppCost, 2)" clearable placeholder="" /></el-form-item>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectSuppCost" @keyup.native="formobj.expectSuppCost = getNumber(formobj.expectSuppCost, 2)" clearable placeholder="抵顶各种垫付款,例如垫付厂家人员房租" /></el-form-item>
</el-col>
</el-row>
<el-row>

144
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatetobechecked.vue

@ -11,7 +11,7 @@
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="110px" class="tab-header">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.createOrgName" placeholder="" clearable/>
</el-form-item>
@ -34,9 +34,40 @@
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.createEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="所属年月">
<el-date-picker v-model="listQuery.params.palceGenDate" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="预提年月">
<el-date-picker v-model="listQuery.params.withholdingDate" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="上传日期">
<el-date-picker v-model="listQuery.params.uploadStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.uploadEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="上传状态">
<el-select v-model="listQuery.params.uploadState" placeholder="请选择" filterable clearable>
<el-option v-for="item in uploadState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="是否调整">
<el-select v-model="listQuery.params.isAdjustment" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-form-item>
<el-form-item label="是否上传完成">
<el-select v-model="listQuery.params.isUploadFinish" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="一次核对状态">
<el-select v-model="listQuery.params.onceCheckState" placeholder="请选择" filterable clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="二次上传状态">
<el-select v-model="listQuery.params.secondUploadState" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-form>
@ -57,43 +88,54 @@
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange" show-summary :summary-method="getSummaries">
<el-table-column fixed type="selection" align="center" width="60"/>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80"/>
<el-table-column label="操作" align="center" width="180">
<el-table-column fixed type="selection" align="center" width="55"/>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="60"/>
<el-table-column label="操作" align="center" width="130">
<template slot-scope="scope">
<el-button type="primary" v-if="scope.row.onceCheckState == '0'" size="mini" @click="toSave(scope.row)">修改</el-button>
<el-button type="primary" v-else size="mini" @click="toAdjust(scope.row)">调整</el-button>
</template>
</el-table-column>
<el-table-column label="上传状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.uploadState == '0' ? '未上传' : scope.row.uploadState == '1' ? '已上传' : ''}}</span>
</template>
<el-table-column prop="purchaseSystemName" label="采购系统" align="center" width="110" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="85" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="130" />
<el-table-column label="金额" align="center">
<el-table-column prop="estimateRebate" label="预提" align="center" width="100" />
<el-table-column prop="uploadMoney" label="上传" align="center" width="100" />
<el-table-column prop="secondaryUploadMoney" label="二次上传" align="center" width="100" />
<el-table-column prop="stayDetermineMoney" label="待确定" align="center" width="100" />
<el-table-column prop="adjustmentMoney" label="调整" align="center" width="100" />
<el-table-column prop="notUploadMoney" label="未上传" align="center" width="100" />
</el-table-column>
<el-table-column label="一次核对状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
<el-table-column label="其中费用" align="center">
<el-table-column prop="withholdCost" label="预提" align="center" width="100" />
<el-table-column prop="money" label="上传" align="center" width="100" />
</el-table-column>
<el-table-column prop="createOrgName" label="分公司" align="center" width="150" />
<el-table-column prop="purchaseSystemName" label="采购系统" align="center" width="140" />
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column prop="createTime" label="创建日期" align="center" width="120" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="150" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" width="120" />
<el-table-column prop="withholdCost" label="其中预提费用" align="center" width="140" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="120" />
<el-table-column prop="uploadDate" label="上传日期" align="center" width="120" />
<el-table-column prop="uploadMoney" label="上传金额" align="center" width="120" />
<el-table-column prop="secondaryUploadDate" label="二次上传日期" align="center" width="140" />
<el-table-column prop="secondaryUploadMoney" label="二次上传金额" align="center" width="140" />
<el-table-column prop="stayDetermineMoney" label="待确定金额" align="center" width="130" />
<el-table-column prop="money" label="费用" align="center" width="120" />
<el-table-column prop="diffAmount" label="差异金额" align="center" width="120" />
<el-table-column prop="isAdjustment" label="是否调整" align="center" width="120" />
<el-table-column prop="adjustmentMoney" label="调整金额" align="center" width="120" />
<el-table-column label="日期" align="center">
<el-table-column prop="createTime" label="创建" align="center" width="95" />
<el-table-column prop="withholdingDate" label="预提" align="center" width="95" />
<el-table-column prop="uploadDate" label="上传" align="center" width="95" />
<el-table-column prop="secondaryUploadDate" label="二次上传" align="center" width="95" />
</el-table-column>
<el-table-column label="状态" align="center">
<el-table-column label="上传" align="center" width="70">
<template slot-scope="scope">
<span>{{ scope.row.uploadState == '0' ? '未上传' : scope.row.uploadState == '1' ? '已上传' : ''}}</span>
</template>
</el-table-column>
<el-table-column label="一次核对" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="secondCheckState" label="二次核对" align="center" width="120" />
</el-table-column>
<el-table-column prop="isAdjustment" label="是否调整" align="center" width="90" />
<el-table-column prop="adjustmentRemarks" label="调整说明" align="center" min-width="300" />
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column prop="createOrgName" label="分公司" align="center" width="150" />
</el-table>
</div>
<div class="pages">
@ -358,7 +400,7 @@ import ButtonBar from '@/components/ButtonBar'
import specialrebatecheck from './specialrebatecheck'
import specialrebatecheckAdd from './specialrebatecheckAdd'
import specialrebatetobecheckedByUpdate from './specialrebatetobecheckedByUpdate'
import { getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons'
import { getOrgSidByPath, getTypeValueList } from '@/api/cheliang/dictcommons'
export default {
name: 'SpecialRebateToBeChecked',
@ -399,6 +441,26 @@ export default {
sids: [],
FormLoading: false,
rebateType_list: [],
uploadState_list: [
{
dictKey: '1',
dictValue: '已上传'
},
{
dictKey: '0',
dictValue: '未上传'
}
],
whether_list: [
{
dictKey: '1',
dictValue: '是'
},
{
dictKey: '0',
dictValue: '否'
}
],
state_list: [
{
dictKey: '0',
@ -425,6 +487,14 @@ export default {
onceCheckState: '',
createEndTime: '',
createStartTime: '',
palceGenDate: '',
withholdingDate: '',
uploadStartDate: '',
uploadEndDate: '',
uploadState: '',
isAdjustment: '',
isUploadFinish: '',
secondUploadState: '',
orgPath: '',
userSid: '',
menuUrl: ''
@ -482,7 +552,7 @@ export default {
},
methods: {
init() {
typeValues({ type: 'rebateType' }).then((res) => {
getTypeValueList({ type: 'rebateType', groupNum: 'ZX' }).then((res) => {
if (res.success) {
this.rebateType_list = res.data
}
@ -572,6 +642,14 @@ export default {
onceCheckState: '',
createEndTime: '',
createStartTime: '',
palceGenDate: '',
withholdingDate: '',
uploadStartDate: '',
uploadEndDate: '',
uploadState: '',
isAdjustment: '',
isUploadFinish: '',
secondUploadState: '',
orgPath: '',
userSid: '',
menuUrl: ''

4
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatecheck/specialrebatetobecheckedByUpdate.vue

@ -236,7 +236,7 @@ export default {
req.fetchBySid(row.sid).then((resp) => {
if (resp.success) {
this.formobj = resp.data
if (this.formobj.secondaryUploadMoney.toString() === '0') {
if (parseFloat(this.formobj.secondaryUploadMoney) === 0) {
this.checked = false
}
this.isAdjustmentInput(this.formobj)
@ -287,7 +287,7 @@ export default {
let money = '0'
// ( + ) - - - ( - )
money = Math.round((parseFloat(val.uploadMoney !== '' ? val.uploadMoney : 0) + parseFloat(val.secondaryUploadMoney !== '' ? val.secondaryUploadMoney : 0) - parseFloat(val.stayDetermineMoney !== '' ? val.stayDetermineMoney : 0) - (parseFloat(val.onceItureCost !== '' ? val.onceItureCost : 0) + parseFloat(val.onceTreatCost !== '' ? val.onceTreatCost : 0) + parseFloat(val.onceSuppCost !== '' ? val.onceSuppCost : 0) + parseFloat(val.secondItureCost !== '' ? val.secondItureCost : 0) + parseFloat(val.secondTreatCost !== '' ? val.secondTreatCost : 0) + parseFloat(val.secondSuppCost !== '' ? val.secondSuppCost : 0)) - (parseFloat(val.estimateRebate !== '' ? val.estimateRebate : 0) - parseFloat(val.expectItureCost !== '' ? val.expectItureCost : 0) - parseFloat(val.expectTreatCost !== '' ? val.expectTreatCost : 0) - parseFloat(val.expectSuppCost !== '' ? val.expectSuppCost : 0))) * 100) / 100
if (val.stayDetermineMoney === '0') {
if (parseFloat(val.stayDetermineMoney) === 0) {
if (parseFloat(money) > 0) {
this.isAdjustment = '是'
val.adjustmentMoney = parseFloat(money)

267
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagement.vue

@ -7,7 +7,7 @@
<div class="searchcon">
<el-button size="small" class="searchbtn" @click="clicksearchShow">{{ searchxianshitit }}</el-button>
<div v-show="isSearchShow" class="search">
<el-form ref="listQueryform" :inline="true" :model="listQuery" label-width="100px" class="tab-header">
<el-form ref="listQueryform" :inline="true" :model="listQuery" class="tab-header">
<el-form-item label="分公司">
<el-input v-model="listQuery.params.createOrgName" placeholder="" clearable/>
</el-form-item>
@ -22,6 +22,17 @@
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.createEndTime" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="所属年月">
<el-date-picker v-model="listQuery.params.palceGenDate" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="预提年月">
<el-date-picker v-model="listQuery.params.withholdingDate" type="month" clearable format="yyyy-MM" value-format="yyyy-MM" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="上传日期">
<el-date-picker v-model="listQuery.params.uploadStartDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
<span style="padding: 0 8px"></span>
<el-date-picker v-model="listQuery.params.uploadEndDate" type="date" clearable value-format="yyyy-MM-dd" placeholder="选择日期"/>
</el-form-item>
<el-form-item label="返利类型">
<el-select v-model="listQuery.params.rebateTypeKey" placeholder="请选择" filterable clearable>
<el-option v-for="item in rebateType_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
@ -30,11 +41,36 @@
<el-form-item label="返利名称">
<el-input v-model="listQuery.params.rebateName" placeholder="" clearable/>
</el-form-item>
<el-form-item label="状态">
<el-form-item label="流程状态">
<el-select v-model="listQuery.params.state" placeholder="请选择" filterable clearable>
<el-option v-for="item in state_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="上传状态">
<el-select v-model="listQuery.params.uploadState" placeholder="请选择" filterable clearable>
<el-option v-for="item in uploadState_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="是否调整">
<el-select v-model="listQuery.params.isAdjustment" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictValue"/>
</el-select>
</el-form-item>
<el-form-item label="是否上传完成">
<el-select v-model="listQuery.params.isUploadFinish" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="一次核对状态">
<el-select v-model="listQuery.params.onceCheckState" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
<el-form-item label="二次上传状态">
<el-select v-model="listQuery.params.secondUploadState" placeholder="请选择" filterable clearable>
<el-option v-for="item in whether_list" :key="item.dictKey" :label="item.dictValue" :value="item.dictKey"/>
</el-select>
</el-form-item>
</el-form>
<div class="btn" style="text-align: center;">
<el-button type="primary" icon="el-icon-search" @click="handleFilter" size="small">查询</el-button>
@ -48,45 +84,52 @@
</div>
<div class="">
<el-table :key="tableKey" v-loading="listLoading" :data="list" border style="width: 100%;" @selection-change="handleSelectionChange" show-summary :summary-method="getSummaries">
<el-table-column fixed type="selection" align="center" width="80"/>
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="80px"/>
<el-table-column fixed label="操作" align="center" width="180px" >
<el-table-column fixed type="selection" align="center" width="55" />
<el-table-column fixed label="序号" type="index" :index="indexMethod" align="center" width="60" />
<el-table-column fixed label="操作" align="center" width="130">
<template slot-scope="scope">
<el-button type="primary" :disabled="scope.row.state !== '0'" size="mini" @click="toEdit(scope.row)">编辑</el-button>
<el-button type="primary" size="mini" @click="toInfo(scope.row)">查看</el-button>
</template>
</el-table-column>
<el-table-column label="状态" align="center" width="200">
<template slot-scope="scope">
<span>{{ scope.row.state == '0' ? '未计提' : scope.row.state == '1' ? '计提中' : scope.row.state == '2' ? '待核对' : scope.row.state == '3' ? '核对中' : scope.row.state == '4' ? '已核对' : scope.row.state == '5' ? '分配中' : scope.row.state == '6' ? '' : scope.row.state == '已分配' ? '' : '' }}</span>
</template>
<el-table-column fixed prop="purchaseSystemName" label="采购系统" align="center" width="110" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="85" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="120" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="130" />
<el-table-column label="返利金额" align="center">
<el-table-column prop="estimateRebate" label="预提" align="center" width="100" />
<el-table-column prop="uploadMoney" label="上传" align="center" width="100" />
<el-table-column prop="secondaryUploadMoney" label="二次上传" align="center" width="100" />
<el-table-column prop="stayDetermineMoney" label="待确定" align="center" width="100" />
<el-table-column prop="adjustmentMoney" label="调整" align="center" width="100" />
<el-table-column prop="notUploadMoney" label="未上传" align="center" width="100" />
</el-table-column>
<el-table-column label="一次核对状态" align="center" width="160">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
<el-table-column label="其中费用" align="center">
<el-table-column prop="expectCost" label="预计" align="center" width="100" />
<el-table-column prop="money" label="上传" align="center" width="100" />
</el-table-column>
<el-table-column label="日期" align="center">
<el-table-column prop="createTime" label="创建" align="center" width="95" />
<el-table-column prop="withholdingDate" label="预提" align="center" width="95" />
<el-table-column prop="uploadDate" label="上传" align="center" width="95" />
<el-table-column prop="secondaryUploadDate" label="二次上传" align="center" width="95" />
</el-table-column>
<el-table-column label="状态" align="center">
<el-table-column label="流程" align="center" width="70">
<template slot-scope="scope">
<span>{{ scope.row.state == '0' ? '未计提' : scope.row.state == '1' ? '计提中' : scope.row.state == '2' ? '待核对' : scope.row.state == '3' ? '核对中' : scope.row.state == '4' ? '已核对' : scope.row.state == '5' ? '分配中' : scope.row.state == '6' ? '' : scope.row.state == '已分配' ? '' : '' }}</span>
</template>
</el-table-column>
<el-table-column label="一次核对状态" align="center" width="120">
<template slot-scope="scope">
<span>{{ scope.row.onceCheckState == '1' ? '是' : scope.row.onceCheckState == '0' ? '否' : scope.row.onceCheckState == '2' ? '一次核对中' : '' }}</span>
</template>
</el-table-column>
<el-table-column prop="secondCheckState" label="二次核对" align="center" width="120" />
</el-table-column>
<el-table-column prop="createOrgName" label="分公司" align="center" width="150" />
<el-table-column prop="purchaseSystemName" label="采购系统" align="center" width="140" />
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column prop="createTime" label="创建日期" align="center" width="120" />
<el-table-column prop="rebateTypeValue" label="返利类型" align="center" width="150" />
<el-table-column prop="rebateName" label="返利名称" align="center" min-width="150" />
<el-table-column prop="estimateRebate" label="预计返利" align="center" width="120" />
<el-table-column prop="expectCost" label="其中预计费用" align="center" width="120" />
<el-table-column prop="palceGenDate" label="所属年月" align="center" width="120" />
<el-table-column prop="withholdingDate" label="预提日期" align="center" width="120" />
<el-table-column prop="uploadDate" label="上传日期" align="center" width="120" />
<el-table-column prop="uploadMoney" label="上传金额" align="center" width="120" />
<el-table-column prop="secondaryUploadDate" label="二次上传日期" align="center" width="140" />
<el-table-column prop="secondaryUploadMoney" label="二次上传金额" align="center" width="140" />
<el-table-column prop="stayDetermineMoney" label="其中待确定金额" align="center" width="160" />
<el-table-column prop="money" label="其中费用" align="center" width="120" />
<el-table-column prop="diffAmount" label="差异金额" align="center" width="120" />
<el-table-column prop="isAdjustment" label="是否调整" align="center" width="120" />
<el-table-column prop="adjustmentMoney" label="调整金额" align="center" width="120" />
<el-table-column prop="adjustmentRemarks" label="调整说明" align="center" min-width="200" />
<el-table-column prop="remarks" label="备注" align="center" min-width="200" />
<el-table-column prop="brandName" label="品牌" align="center" width="120" />
<el-table-column prop="createOrgName" label="分公司" align="center" width="150" />
</el-table>
</div>
<div class="pages">
@ -97,6 +140,43 @@
</div>
<specialrebatemanagementAdd v-show="viewState == 2 || viewState == 3" ref="divAdd" @doback="resetState" @reloadlist="getList"/>
<specialrebatemanagementInfo v-show="viewState == 4" ref="divInfo" @doback="resetState"/>
<el-dialog :visible.sync="dialogVisible" width="70%" :show-close="false">
<div>
<el-button style="font-weight: bold" size="small" type="text" @click="downLoad">下载专项返利模板</el-button>
</div>
<el-card class="box-card">
<div>
<el-upload
ref="upload"
class="upload-demo"
accept=".xls"
name="file"
:action="updateAction"
:on-success="handleSuccess"
:on-remove="handleRemove"
:file-list="fileList"
:auto-upload="false"
:multiple="false"
:limit="1"
:data="uploadData"
:headers="headers"
>
<el-button slot="trigger" size="small" type="primary">选取文件</el-button>
<el-button style="margin-left: 10px;" size="small" type="success" @click="submitUpload">上传</el-button>
</el-upload>
</div>
<div>
<h3>文件上传结果</h3>
<el-card class="box-card">
<div>{{ uploadResultMesssage }}</div>
</el-card>
</div>
</el-card>
<div slot="footer" class="dialog-footer" style="text-align: center">
<el-button type="primary" size="small" @click="handleConfirm">确定</el-button>
<el-button size="small" @click="dialogVisible = false">取消</el-button>
</div>
</el-dialog>
</div>
</template>
@ -105,7 +185,7 @@ import req from '@/api/specialrebate/specialrebatemanagement'
import Pagination from '@/components/pagination'
import pageye from '@/components/pagination/pageye'
import ButtonBar from '@/components/ButtonBar'
import { getOrgSidByPath, typeValues } from '@/api/cheliang/dictcommons'
import { getOrgSidByPath, getTypeValueList } from '@/api/cheliang/dictcommons'
import specialrebatemanagementAdd from './specialrebatemanagementAdd'
import specialrebatemanagementInfo from './specialrebatemanagementInfo'
@ -129,6 +209,13 @@ export default {
btnKey: 'toAdd',
btnLabel: '新增'
},
{
type: 'success',
size: 'small',
icon: 'Import',
btnKey: 'doImport',
btnLabel: '导入'
},
{
type: 'success',
size: 'small',
@ -162,6 +249,26 @@ export default {
FormLoading: false,
listLoading: false,
rebateType_list: [],
uploadState_list: [
{
dictKey: '1',
dictValue: '已上传'
},
{
dictKey: '0',
dictValue: '未上传'
}
],
whether_list: [
{
dictKey: '1',
dictValue: '是'
},
{
dictKey: '0',
dictValue: '否'
}
],
state_list: [
{
dictKey: '0',
@ -203,6 +310,14 @@ export default {
createOrgName: '',
purchaseSystemName: '',
brandName: '',
palceGenDate: '',
withholdingDate: '',
uploadStartDate: '',
uploadEndDate: '',
uploadState: '',
isAdjustment: '',
isUploadFinish: '',
secondUploadState: '',
orgPath: '',
userSid: '',
menuUrl: ''
@ -211,7 +326,19 @@ export default {
size: 5,
total: 0
},
rules: {}
rules: {},
dialogVisible: false,
updateAction: process.env.VUE_APP_BASE_API + '/scm/v1/scmspecialrebate/getExcelInfo',
fileList: [],
uploadResultMesssage: '',
uploadData: {
sid: '',
userSid: '',
orgPath: ''
},
headers: {
token: window.sessionStorage.getItem('token')
}
}
},
created() {
@ -223,7 +350,7 @@ export default {
},
methods: {
init() {
typeValues({ type: 'rebateType' }).then((res) => {
getTypeValueList({ type: 'rebateType', groupNum: 'ZX' }).then((res) => {
if (res.success) {
this.rebateType_list = res.data
}
@ -250,6 +377,9 @@ export default {
case 'toAdd':
this.toAdd()
break
case 'doImport':
this.doImport()
break
case 'doExport':
this.doExport()
break
@ -319,6 +449,14 @@ export default {
createOrgName: '',
purchaseSystemName: '',
brandName: '',
palceGenDate: '',
withholdingDate: '',
uploadStartDate: '',
uploadEndDate: '',
uploadState: '',
isAdjustment: '',
isUploadFinish: '',
secondUploadState: '',
orgPath: '',
userSid: '',
menuUrl: ''
@ -370,6 +508,63 @@ export default {
}).catch(() => {
})
},
doImport() {
this.dialogVisible = true
this.fileList = []
this.uploadResultMesssage = ''
},
downLoad() {
const loading = this.$loading({
lock: true,
text: 'Loading',
spinner: 'el-icon-loading',
background: 'rgba(0, 0, 0, 0.7)'
})
req.downloadExcel().then((resp) => {
loading.close()
const blob = new Blob([resp], {
type: 'application/vnd.ms-excel'
})
const fileName = '专项返利模版' + '.xls'
const elink = document.createElement('a')
elink.download = fileName
elink.style.display = 'none'
elink.href = URL.createObjectURL(blob)
document.body.appendChild(elink)
elink.click()
URL.revokeObjectURL(elink.href)
document.body.removeChild(elink)
}).catch(() => {
loading.close()
})
},
handleRemove() {
this.uploadResultMesssage = ''
},
submitUpload() {
this.uploadData.userSid = window.sessionStorage.getItem('userSid')
this.uploadData.orgPath = window.sessionStorage.getItem('defaultOrgPath')
this.$refs.upload.submit()
},
handleSuccess(resp, file, fileList) {
const _this = this
if (resp.success) {
_this.uploadResultMesssage = resp.msg
} else {
_this.uploadResultMesssage = resp.msg
}
},
handleConfirm() {
if (this.uploadResultMesssage === '') {
this.$message({ showClose: true, type: 'error', message: '请先上传专项返利模版' })
return
} else {
this.dialogVisible = false
this.uploadData.userSid = ''
this.uploadData.orgPath = ''
this.getList()
}
},
doExport() {
const loading = this.$loading({
lock: true,

6
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatemanagement/specialrebatemanagementAdd.vue

@ -70,15 +70,15 @@
<el-row>
<el-col :span="8">
<div class="span-sty">其中支出费用</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectItureCost" @keyup.native="formobj.expectItureCost = getNumber(formobj.expectItureCost, 2)" placeholder="" clearable /></el-form-item>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectItureCost" @keyup.native="formobj.expectItureCost = getNumber(formobj.expectItureCost, 2)" placeholder="因组织行销活动而发生的实际支出费用" clearable /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">其中待支付费用</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectTreatCost" @keyup.native="formobj.expectTreatCost = getNumber(formobj.expectTreatCost, 2)" clearable placeholder="" /></el-form-item>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectTreatCost" @keyup.native="formobj.expectTreatCost = getNumber(formobj.expectTreatCost, 2)" clearable placeholder="待支付的相关人员返利等" /></el-form-item>
</el-col>
<el-col :span="8">
<div class="span-sty">其中抵顶费用</div>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectSuppCost" @keyup.native="formobj.expectSuppCost = getNumber(formobj.expectSuppCost, 2)" clearable placeholder="" /></el-form-item>
<el-form-item><el-input class="addinputInfo addinputw" v-model="formobj.expectSuppCost" @keyup.native="formobj.expectSuppCost = getNumber(formobj.expectSuppCost, 2)" clearable placeholder="抵顶各种垫付款,例如垫付厂家人员房租" /></el-form-item>
</el-col>
</el-row>
<el-row>

30
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatewithholding/specialrebatewithholdingAdd.vue

@ -354,40 +354,20 @@ export default {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
} else {
return prev
return Math.round((parseFloat(prev)) * 100) / 100
}
}, 0)
sums[index] += ''
this.formobj.withRebateTotal = sums[index] += ''
} else if (column.property === 'expectItureCost') {
} else if (column.property === 'expectItureCost' || column.property === 'expectTreatCost' || column.property === 'expectSuppCost') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
} else {
return prev
}
}, 0)
sums[index] += ''
} else if (column.property === 'expectTreatCost') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
} else if (column.property === 'expectSuppCost') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
return Math.round((parseFloat(prev)) * 100) / 100
}
}, 0)
sums[index] += ''

36
anrui-scm/anrui-scm-ui/src/views/specialrebate/specialrebatewithholding/specialrebatewithholdingInfo.vue

@ -147,43 +147,13 @@ export default {
return
}
const values = data.map(item => Number(item[column.property]))
if (column.property === 'withRebate') {
if (column.property === 'withRebate' || column.property === 'expectItureCost' || column.property === 'expectTreatCost' || column.property === 'expectSuppCost') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
return Math.round((parseFloat(prev) + parseFloat(curr)) * 100) / 100
} else {
return prev
}
}, 0)
sums[index] += ''
} else if (column.property === 'expectItureCost') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
} else if (column.property === 'expectTreatCost') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
}
}, 0)
sums[index] += ''
} else if (column.property === 'expectSuppCost') {
sums[index] = values.reduce((prev, curr) => {
const value = Number(curr)
if (!isNaN(value)) {
return prev + curr
} else {
return prev
return Math.round((parseFloat(prev)) * 100) / 100
}
}, 0)
sums[index] += ''

Some files were not shown because too many files changed in this diff

Loading…
Cancel
Save