Browse Source

新车买卖合同生成、调整样式

保外应收调差流程、流程配置、流程接口开发
测试问题修改
master
God 10 months ago
parent
commit
db6e92dfb5
  1. 331
      anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles.ftl
  2. 335
      anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl
  3. 28
      anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar.ftl
  4. 28
      anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar_black.ftl
  5. 32
      anrui-base/anrui-base-biz/src/main/resources/ftl/existingvehicles.ftl
  6. 28
      anrui-base/anrui-base-biz/src/main/resources/ftl/existingvehicles_black.ftl
  7. 14
      anrui-base/anrui-base-biz/src/main/resources/ftl/orderacar.ftl
  8. 14
      anrui-base/anrui-base-biz/src/main/resources/ftl/orderacar_black.ftl
  9. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clmmht.ftl
  10. 2
      anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclqrs.ftl
  11. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairPageVo.java
  12. 7
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/AsBwdiffapplyDetailsVo.java
  13. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/AsBwdiffapplyDto.java
  14. 23
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/BwdiffApplyDelegateQuery.java
  15. 18
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/BwdiffApplyNodeQuery.java
  16. 24
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/BwdiffApplyNodeVo.java
  17. 43
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/BwdiffApplyTaskQuery.java
  18. 35
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/CompleteBwdiffApplyDto.java
  19. 20
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/SubmitBwdiffApplyDto.java
  20. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapplydetail/AsBwdiffapplyDetailDetailsVo.java
  21. 2
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapplydetail/AsBwdiffapplyDetailDto.java
  22. 4
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/AsBwinvoiceapplyQuery.java
  23. 23
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/BwinvoiceApplyDelegateQuery.java
  24. 18
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/BwinvoiceApplyNodeQuery.java
  25. 24
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/BwinvoiceApplyNodeVo.java
  26. 43
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/BwinvoiceApplyTaskQuery.java
  27. 35
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/CompleteBwinvoiceApplyDto.java
  28. 20
      yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/SubmitBwinvoiceApplyDto.java
  29. 5
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml
  30. 13
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java
  31. 3
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwdiffapply/AsBwdiffapplyMapper.java
  32. 18
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwdiffapply/AsBwdiffapplyMapper.xml
  33. 60
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwdiffapply/AsBwdiffapplyRest.java
  34. 322
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwdiffapply/AsBwdiffapplyService.java
  35. 3
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyMapper.java
  36. 18
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyMapper.xml
  37. 60
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyRest.java
  38. 326
      yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyService.java
  39. 2
      yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java

331
anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles.ftl

@ -1067,17 +1067,6 @@
</w:rPr>
<w:t>(出卖方) :</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="7"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="005D1158" wsp:rsidRPr="005D1158">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -1089,16 +1078,6 @@
</w:rPr>
<w:t>${createOrgName!}</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00000000">
<w:pPr>
@ -1151,46 +1130,12 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<#--<w:t> </w:t>-->
<#if carSaleCustomerName??>
<w:t> ${carSaleCustomerName!} </w:t>
<#else>
<w:t></w:t>
<w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:i/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体"/>
<wx:font wx:val="宋体"/>
<w:i/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="6"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/>
@ -1223,29 +1168,9 @@
<#if carSaleIdNo??>
<w:t> ${carSaleIdNo!} </w:t>
<#else>
<w:t></w:t>
<w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00F05BA9" wsp:rsidRPr="000B0934" wsp:rsidRDefault="00000000">
<w:pPr>
@ -1284,39 +1209,6 @@
<w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:i/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体"/>
<wx:font wx:val="宋体"/>
<w:i/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="6"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/>
@ -1341,26 +1233,6 @@
<w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
</w:p>
<aml:annotation aml:id="0" w:type="Word.Bookmark.End"/>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00000000">
@ -1848,17 +1720,6 @@
</w:rPr>
<w:t>为</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="00F85FC6" wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -1877,30 +1738,8 @@
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> 元(大写</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
<w:t>元(大写</w:t>
</w:r>
<w:r wsp:rsidR="00155721" wsp:rsidRPr="00B738F3">
<w:rPr>
@ -1913,27 +1752,6 @@
</w:rPr>
<w:t>${priceRemarks!}</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -1995,17 +1813,6 @@
</w:rPr>
<w:t>向甲方交纳订金</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="1"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="00241CD5" wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2024,19 +1831,8 @@
<w:spacing w:val="1"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="1"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> 元, 乙方提车时交清全部车款。甲方未收到全款前, 车辆所有</w:t>
<w:t>元,乙方提车时交清全部车款。甲方未收到全款前,车辆所有</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
@ -2090,17 +1886,6 @@
</w:rPr>
<w:t>付地点</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="2"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="007E29F9" wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2112,17 +1897,6 @@
</w:rPr>
<w:t>${address!}</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="2"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2131,7 +1905,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ,乙方自提。</w:t>
<w:t>,乙方自提。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRPr="00B738F3" wsp:rsidRDefault="00000000">
@ -2173,7 +1947,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>乙方或乙方授权的提车人提车时需按照合同约定的车辆信息对车况及随车工具进行验收,验</w:t>
<w:t>乙方或乙方授权的提车人提车时需按照合同约定的车辆信息对车况及随车工具进行验 收,验</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
@ -2332,15 +2106,6 @@
</w:rPr>
<w:t>辆自身问题等甲方原因导致车辆不能登记上牌的,</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2369,16 +2134,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>解决; 由于乙方未按有关规定时限及时办理车辆登记上牌手续或车辆注册登记所在公司的</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
<w:t>解决;由于乙方未按有关规定时限及时办理车辆登记上牌手续或车辆注册登记所在公司的</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2408,7 +2164,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>非甲方原因导致不能办理车辆登记上牌手续的, 由乙方自行解决。</w:t>
<w:t>非甲方原因导致不能办理车辆登记上牌手续的,由乙方自行解决。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00000000">
@ -2430,7 +2186,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>七、乙方交纳订金后在 10 日内不提车的,视为乙方单方放</w:t>
<w:t>七、乙方交纳订金后在10日内不提车的,视为乙方单方放</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2440,16 +2196,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>弃购车, 甲方有权将车辆另行处置, 订</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
<w:t>弃购车,甲方有权将车辆另行处置,订</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2501,17 +2248,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>乙方交纳订金后,因甲方原因导致乙方不能提车的,甲方退还乙方订金,合同终止不再履行</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="7"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>。</w:t>
<w:t>乙方交纳订金后,因甲方原因导致乙方不能提车的,甲方退还乙方订金,合同终止不再履行。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00000000">
@ -2652,7 +2389,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
<w:t> </w:t>
</w:r>
<w:r>
<w:rPr>
@ -2822,26 +2559,6 @@
<w:sz-cs w:val="19"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="00DD2A6A" wsp:rsidRPr="00DD2A6A">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2850,7 +2567,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ${year!}</w:t>
<w:t> ${year!}</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2902,16 +2619,6 @@
</w:rPr>
<w:t>日</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="0002363F" wsp:rsidRPr="0002363F">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2920,7 +2627,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>${year!}</w:t>
<w:t> ${year!}</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2972,16 +2679,6 @@
</w:rPr>
<w:t>日</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00C15C93">
<w:pPr>

335
anrui-base/anrui-base-biz/src/main/resources/ftl/dai_existingvehicles_black.ftl

@ -1067,17 +1067,6 @@
</w:rPr>
<w:t>(出卖方) :</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="7"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="005D1158" wsp:rsidRPr="005D1158">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -1089,16 +1078,6 @@
</w:rPr>
<w:t> ${createOrgName!} </w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00000000">
<w:pPr>
@ -1142,50 +1121,6 @@
</w:rPr>
<w:t>(买受方):</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="6"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:i/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体"/>
<wx:font wx:val="宋体"/>
<w:i/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="6"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/>
@ -1206,36 +1141,6 @@
</w:rPr>
<w:t>号码:</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00F05BA9" wsp:rsidRPr="000B0934" wsp:rsidRDefault="00000000">
<w:pPr>
@ -1274,39 +1179,6 @@
<w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:i/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体"/>
<wx:font wx:val="宋体"/>
<w:i/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="6"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/>
@ -1331,26 +1203,6 @@
<w:t> </w:t>
</#if>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="等线" w:h-ansi="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="20"/>
<w:sz-cs w:val="20"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
</w:p>
<aml:annotation aml:id="0" w:type="Word.Bookmark.End"/>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00000000">
@ -1838,17 +1690,6 @@
</w:rPr>
<w:t>为</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="00F85FC6" wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -1867,30 +1708,8 @@
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> 元(大写</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
<w:t>元(大写</w:t>
</w:r>
<w:r wsp:rsidR="00155721" wsp:rsidRPr="00B738F3">
<w:rPr>
@ -1903,27 +1722,6 @@
</w:rPr>
<w:t> ${priceRemarks!} </w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="4"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -1985,17 +1783,6 @@
</w:rPr>
<w:t>向甲方交纳订金</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="1"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="00241CD5" wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2005,18 +1792,7 @@
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t> ${depositTotal!} </w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="1"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
<w:t> ${depositTotal!}</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
@ -2026,7 +1802,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> 元, 乙方提车时交清全部车款。甲方未收到全款前, 车辆所有</w:t>
<w:t>元,乙方提车时交清全部车款。甲方未收到全款前,车辆所有</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
@ -2080,17 +1856,6 @@
</w:rPr>
<w:t>付地点</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="2"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="007E29F9" wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2109,19 +1874,8 @@
<w:spacing w:val="2"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
<w:u w:val="single"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="2"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ,乙方自提。</w:t>
<w:t>,乙方自提。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRPr="00B738F3" wsp:rsidRDefault="00000000">
@ -2163,7 +1917,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>乙方或乙方授权的提车人提车时需按照合同约定的车辆信息对车况及随车工具进行验收,验</w:t>
<w:t>乙方或乙方授权的提车人提车时需按照合同约定的车辆信息对车况及随车工具进行验 收,验</w:t>
</w:r>
<w:r wsp:rsidRPr="00B738F3">
<w:rPr>
@ -2322,15 +2076,6 @@
</w:rPr>
<w:t>辆自身问题等甲方原因导致车辆不能登记上牌的,</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2359,16 +2104,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>解决; 由于乙方未按有关规定时限及时办理车辆登记上牌手续或车辆注册登记所在公司的</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
<w:t>解决;由于乙方未按有关规定时限及时办理车辆登记上牌手续或车辆注册登记所在公司的</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2398,7 +2134,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>非甲方原因导致不能办理车辆登记上牌手续的, 由乙方自行解决。</w:t>
<w:t>非甲方原因导致不能办理车辆登记上牌手续的,由乙方自行解决。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00000000">
@ -2430,16 +2166,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>弃购车, 甲方有权将车辆另行处置, 订</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
<w:t>弃购车,甲方有权将车辆另行处置, 订</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2642,7 +2369,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
<w:t> </w:t>
</w:r>
<w:r>
<w:rPr>
@ -2812,26 +2539,6 @@
<w:sz-cs w:val="19"/>
</w:rPr>
</w:pPr>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体" w:hint="fareast"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="00DD2A6A" wsp:rsidRPr="00DD2A6A">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2840,7 +2547,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ${year!}</w:t>
<w:t> ${year!}</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2892,16 +2599,6 @@
</w:rPr>
<w:t>日</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
<w:r wsp:rsidR="0002363F" wsp:rsidRPr="0002363F">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2910,7 +2607,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>${year!}</w:t>
<w:t> ${year!}</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2962,16 +2659,6 @@
</w:rPr>
<w:t>日</w:t>
</w:r>
<w:r>
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRDefault="00C15C93">
<w:pPr>

28
anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar.ftl

@ -2718,17 +2718,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>甲</w:t>
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="-12"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>方:</w:t>
<w:t>甲方:</w:t>
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
@ -2737,7 +2727,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
@ -2871,7 +2861,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ${year!}</w:t>
<w:t> ${year!}</w:t>
</w:r>
<w:r wsp:rsidR="00000000" wsp:rsidRPr="0086369C">
<w:rPr>
@ -2933,16 +2923,6 @@
</w:rPr>
<w:t>日</w:t>
</w:r>
<w:r wsp:rsidR="00577B45" wsp:rsidRPr="0086369C">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2951,7 +2931,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>${year!}</w:t>
<w:t> ${year!}</w:t>
</w:r>
<w:r wsp:rsidR="00000000" wsp:rsidRPr="0086369C">
<w:rPr>

28
anrui-base/anrui-base-biz/src/main/resources/ftl/dai_orderacar_black.ftl

@ -2703,17 +2703,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>甲</w:t>
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="-12"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>方:</w:t>
<w:t>甲方:</w:t>
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
@ -2722,7 +2712,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
@ -2856,7 +2846,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ${year!}</w:t>
<w:t> ${year!}</w:t>
</w:r>
<w:r wsp:rsidR="00000000" wsp:rsidRPr="0086369C">
<w:rPr>
@ -2918,16 +2908,6 @@
</w:rPr>
<w:t>日</w:t>
</w:r>
<w:r wsp:rsidR="00577B45" wsp:rsidRPr="0086369C">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
</w:r>
<w:r wsp:rsidRPr="0086369C">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
@ -2936,7 +2916,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>${year!}</w:t>
<w:t> ${year!}</w:t>
</w:r>
<w:r wsp:rsidR="00000000" wsp:rsidRPr="0086369C">
<w:rPr>

32
anrui-base/anrui-base-biz/src/main/resources/ftl/existingvehicles.ftl

@ -1730,7 +1730,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> 元(大写</w:t>
<w:t>元(大写</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -1877,7 +1877,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> 元, 乙方提车时交清全部车款。甲方未收到全款前, 车辆所有</w:t>
<w:t>元,乙方提车时交清全部车款。甲方未收到全款前,车辆所有</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -1972,7 +1972,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ,乙方自提。</w:t>
<w:t>,乙方自提。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00F05BA9" wsp:rsidRPr="000B0934" wsp:rsidRDefault="00000000">
@ -2014,7 +2014,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>乙方或乙方授权的提车人提车时需按照合同约定的车辆信息对车况及随车工具进行验收,验</w:t>
<w:t>乙方或乙方授权的提车人提车时需按照合同约定的车辆信息对车况及随车工具进行验 收,验</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2218,7 +2218,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>解决; 由于乙方未按有关规定时限及时办理车辆登记上牌手续或车辆注册登记所在公司的</w:t>
<w:t>解决;由于乙方未按有关规定时限及时办理车辆登记上牌手续或车辆注册登记所在公司的</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2257,7 +2257,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>非甲方原因导致不能办理车辆登记上牌手续的, 由乙方自行解决。</w:t>
<w:t>非甲方原因导致不能办理车辆登记上牌手续的,由乙方自行解决。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00F05BA9" wsp:rsidRPr="000B0934" wsp:rsidRDefault="00000000">
@ -2279,7 +2279,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>七、乙方交纳订金后在 10 日内不提车的,视为乙方单方放</w:t>
<w:t>七、乙方交纳订金后在10日内不提车的,视为乙方单方放</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2289,7 +2289,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>弃购车, 甲方有权将车辆另行处置, 订</w:t>
<w:t>弃购车,甲方有权将车辆另行处置,订</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2660,7 +2660,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2869,17 +2869,7 @@
<w:sz-cs w:val="19"/>
</w:rPr>
<w:tab/>
<w:t> ${year!} 年 ${month!} 月 ${day!} 日</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
<w:t> ${year!} 年 ${month!} 月 ${day!} 日</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2889,7 +2879,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ${year!} 年 ${month!} 月 ${day!} 日</w:t>
<w:t> ${year!} 年 ${month!} 月 ${day!} 日</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>

28
anrui-base/anrui-base-biz/src/main/resources/ftl/existingvehicles_black.ftl

@ -1730,7 +1730,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> 元(大写</w:t>
<w:t>元(大写</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -1877,7 +1877,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> 元, 乙方提车时交清全部车款。甲方未收到全款前, 车辆所有</w:t>
<w:t>元,乙方提车时交清全部车款。甲方未收到全款前,车辆所有</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2014,7 +2014,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>乙方或乙方授权的提车人提车时需按照合同约定的车辆信息对车况及随车工具进行验收,验</w:t>
<w:t>乙方或乙方授权的提车人提车时需按照合同约定的车辆信息对车况及随车工具进行验 收,验</w:t>
</w:r>
<w:r>
<w:rPr>
@ -2257,7 +2257,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>非甲方原因导致不能办理车辆登记上牌手续的, 由乙方自行解决。</w:t>
<w:t>非甲方原因导致不能办理车辆登记上牌手续的,由乙方自行解决。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00F05BA9" wsp:rsidRPr="000B0934" wsp:rsidRDefault="00000000">
@ -2279,7 +2279,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>七、乙方交纳订金后在 10 日内不提车的,视为乙方单方放</w:t>
<w:t>七、乙方交纳订金后在10日内不提车的,视为乙方单方放</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2289,7 +2289,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>弃购车, 甲方有权将车辆另行处置, 订</w:t>
<w:t>弃购车,甲方有权将车辆另行处置,订</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2660,7 +2660,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2869,17 +2869,7 @@
<w:sz-cs w:val="19"/>
</w:rPr>
<w:tab/>
<w:t> ${year!} 年 ${month!} 月 ${day!} 日</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="8"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t></w:t>
<w:t> ${year!} 年 ${month!} 月 ${day!} 日</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>
@ -2889,7 +2879,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ${year!} 年 ${month!} 月 ${day!} 日</w:t>
<w:t> ${year!} 年 ${month!} 月 ${day!} 日</w:t>
</w:r>
<w:r wsp:rsidRPr="000B0934">
<w:rPr>

14
anrui-base/anrui-base-biz/src/main/resources/ftl/orderacar.ftl

@ -2744,17 +2744,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>甲</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="-12"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>方:</w:t>
<w:t>甲方:</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -2763,7 +2753,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>

14
anrui-base/anrui-base-biz/src/main/resources/ftl/orderacar_black.ftl

@ -2743,17 +2743,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>甲</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
<w:rFonts w:ascii="宋体" w:fareast="宋体" w:h-ansi="宋体" w:cs="宋体"/>
<wx:font wx:val="宋体"/>
<w:spacing w:val="-12"/>
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t>方:</w:t>
<w:t>甲方:</w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>
@ -2762,7 +2752,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> </w:t>
<w:t> </w:t>
</w:r>
<w:r wsp:rsidRPr="0071392F">
<w:rPr>

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/clmmht.ftl

@ -1864,7 +1864,7 @@
<w:sz w:val="19"/>
<w:sz-cs w:val="19"/>
</w:rPr>
<w:t> ,乙方自提。</w:t>
<w:t>,乙方自提。</w:t>
</w:r>
</w:p>
<w:p wsp:rsidR="00C15C93" wsp:rsidRPr="00B738F3" wsp:rsidRDefault="00000000">

2
anrui-riskcenter/anrui-riskcenter-biz/src/main/resources/ftl/jsclqrs.ftl

@ -1353,7 +1353,7 @@
<w:sz w:val="28"/>
<w:szCs w:val="28"/>
</w:rPr>
<w:t>接收人签字(手印)或盖章:</w:t>
<w:t>接收人签字(手印):</w:t>
</w:r>
<w:r>
<w:rPr>

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbusrepairbill/AsBusrepairPageVo.java

@ -32,6 +32,8 @@ public class AsBusrepairPageVo {
//旧件回收说明
private String shortss;
//旧件照片
private String photoss;
//旧件照片
private List<String> photos = new ArrayList<>();

7
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/AsBwdiffapplyDetailsVo.java

@ -59,8 +59,15 @@ public class AsBwdiffapplyDetailsVo implements Vo {
private String sid; // sid
@JsonFormat(pattern = "yyyy-MM-dd",timezone = "GMT+8")
@ApiModelProperty("申请日期")
private Date createTime;
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("申请人sid")
private String createBySid;
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/AsBwdiffapplyDto.java

@ -62,6 +62,10 @@ public class AsBwdiffapplyDto implements Dto {
@ApiModelProperty("单据编号")
private String billNo; // 单据编号
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("申请人sid")
private String createBySid;
@ApiModelProperty("申请人")
private String createByName; // 申请人
@ApiModelProperty("申请部门sid")

23
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/BwdiffApplyDelegateQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.as.api.asbwdiffapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class BwdiffApplyDelegateQuery {
private String userSid;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

18
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/BwdiffApplyNodeQuery.java

@ -0,0 +1,18 @@
package com.yxt.anrui.as.api.asbwdiffapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class BwdiffApplyNodeQuery {
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

24
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/BwdiffApplyNodeVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.as.api.asbwdiffapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class BwdiffApplyNodeVo {
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

43
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/BwdiffApplyTaskQuery.java

@ -0,0 +1,43 @@
package com.yxt.anrui.as.api.asbwdiffapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class BwdiffApplyTaskQuery {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
}

35
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/CompleteBwdiffApplyDto.java

@ -0,0 +1,35 @@
package com.yxt.anrui.as.api.asbwdiffapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class CompleteBwdiffApplyDto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
}

20
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapply/flowable/SubmitBwdiffApplyDto.java

@ -0,0 +1,20 @@
package com.yxt.anrui.as.api.asbwdiffapply.flowable;
import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyDto;
import com.yxt.anrui.as.api.asbwdiffapply.AsBwdiffapplyDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class SubmitBwdiffApplyDto extends AsBwdiffapplyDto {
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapplydetail/AsBwdiffapplyDetailDetailsVo.java

@ -58,6 +58,8 @@ public class AsBwdiffapplyDetailDetailsVo implements Vo {
private String sid; // sid
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("业务sid")
private String mainSid; // 业务sid
@ApiModelProperty("维修工单sid")

2
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwdiffapplydetail/AsBwdiffapplyDetailDto.java

@ -59,6 +59,8 @@ public class AsBwdiffapplyDetailDto implements Dto {
private String sid; // sid
@ApiModelProperty("备注")
private String remarks;
@ApiModelProperty("业务sid")
private String mainSid; // 业务sid
@ApiModelProperty("维修工单sid")

4
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/AsBwinvoiceapplyQuery.java

@ -67,8 +67,8 @@ public class AsBwinvoiceapplyQuery implements Query {
private String finishTimeEnd;
@ApiModelProperty("开票名称")
private String invoiceTitle;
@ApiModelProperty("开票类型value")
private String invoiceTypeValue;
@ApiModelProperty("开票类型")
private String invoiceTypeKey;
private String orgPath;
private String userSid;

23
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/BwinvoiceApplyDelegateQuery.java

@ -0,0 +1,23 @@
package com.yxt.anrui.as.api.asbwinvoiceapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class BwinvoiceApplyDelegateQuery {
private String userSid;
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务Id")
private String taskId;
@ApiModelProperty("审批人sid")
private String assignee;
@ApiModelProperty("填写意见")
private String views;
}

18
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/BwinvoiceApplyNodeQuery.java

@ -0,0 +1,18 @@
package com.yxt.anrui.as.api.asbwinvoiceapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class BwinvoiceApplyNodeQuery {
@ApiModelProperty(value = "环节定义id")
private String taskDefKey;
@ApiModelProperty(value = "业务sid")
private String businessSid;
}

24
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/BwinvoiceApplyNodeVo.java

@ -0,0 +1,24 @@
package com.yxt.anrui.as.api.asbwinvoiceapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.util.List;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class BwinvoiceApplyNodeVo {
@ApiModelProperty(value = "节点名称")
private String name;
@ApiModelProperty(value = "节点id")
private String id;
@ApiModelProperty(value = "审批组")
private List<String> candidateGroups;
@ApiModelProperty(value = "是否是最后环节")
private String endTask;
}

43
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/BwinvoiceApplyTaskQuery.java

@ -0,0 +1,43 @@
package com.yxt.anrui.as.api.asbwinvoiceapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class BwinvoiceApplyTaskQuery {
/**
* 终止驳回撤回
*/
@ApiModelProperty("任务Id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
/**
* 终止驳回撤回
*/
@ApiModelProperty("业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
/**
* 终止驳回
*/
@ApiModelProperty("任务意见")
private String comment;
/**
* 终止撤回驳回
*/
@ApiModelProperty("用户Sid")
private String userSid;
/**
* 终止
*/
@ApiModelProperty("流程实例Id")
private String instanceId;
}

35
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/CompleteBwinvoiceApplyDto.java

@ -0,0 +1,35 @@
package com.yxt.anrui.as.api.asbwinvoiceapply.flowable;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import javax.validation.constraints.NotBlank;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class CompleteBwinvoiceApplyDto {
@ApiModelProperty(value = "用户sid")
@NotBlank(message = "参数错误:userSid")
private String userSid;
@ApiModelProperty(value = "用户全路径sid")
private String orgSidPath;
@ApiModelProperty(value = "节点id")
@NotBlank(message = "参数错误:taskDefKey")
private String taskDefKey;
@ApiModelProperty(value = "任务id")
@NotBlank(message = "参数错误:taskId")
private String taskId;
@ApiModelProperty(value = "流程id")
@NotBlank(message = "参数错误:instanceId")
private String instanceId;
@ApiModelProperty(value = "意见")
private String comment;
@ApiModelProperty(value = "业务sid")
@NotBlank(message = "参数错误:businessSid")
private String businessSid;
}

20
yxt-as/src/main/java/com/yxt/anrui/as/api/asbwinvoiceapply/flowable/SubmitBwinvoiceApplyDto.java

@ -0,0 +1,20 @@
package com.yxt.anrui.as.api.asbwinvoiceapply.flowable;
import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApplyDto;
import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyDto;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
/**
* @description:
* @author: dimengzhe
* @date: 2024/5/11
**/
@Data
public class SubmitBwinvoiceApplyDto extends AsBwinvoiceapplyDto {
@ApiModelProperty("流程实例id")
private String instanceId;
@ApiModelProperty("任务id")
private String taskId;
}

5
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillMapper.xml

@ -76,9 +76,12 @@
a.mobile,
b.vinNo,
b.vehMark,
DATE_FORMAT(a.entryTime, '%Y-%m-%d') as entryTime
DATE_FORMAT(a.entryTime, '%Y-%m-%d') as entryTime,
wor.shortss,
wor.photos as photoss
from as_busrepair_bill a
LEFT JOIN as_busrepair_bill_vech AS b on a.sid = b.billSid
LEFT JOIN yxt_wms.wms_old_register wor on a.billNo = wor.billNo
<where>
${ew.sqlSegment}
</where>

13
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbusrepairbill/AsBusrepairBillService.java

@ -43,6 +43,7 @@ import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
import com.yxt.anrui.as.feign.portal.sysstafforg.SysStaffOrgFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserFeign;
import com.yxt.anrui.as.feign.portal.sysuser.SysUserVo;
import com.yxt.common.base.config.component.FileUploadComponent;
import com.yxt.common.base.service.MybatisBaseService;
import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
@ -98,6 +99,8 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
private AsBusclaimBillService asBusclaimBillService;
@Autowired
private AsTrackBillService asTrackBillService;
@Autowired
private FileUploadComponent fileUploadComponent;
/**
* 维修领料获取派工单
@ -681,6 +684,16 @@ public class AsBusrepairBillService extends MybatisBaseService<AsBusrepairBillMa
qw.eq("a.nodeCode", 3);
IPage<AsBusrepairBill> page = PagerUtil.queryToPage(pagerQuery);
IPage<AsBusrepairPageVo> pagging = baseMapper.pageBillList(page, qw);
for (AsBusrepairPageVo record : pagging.getRecords()) {
String photoss = record.getPhotoss();
String[] files = photoss.split(",");
List<String> photos = new ArrayList<>();
for (String file : files) {
String url = fileUploadComponent.getUrlPrefix() + file;
photos.add(url);
}
record.setPhotos(photos);
}
PagerVo<AsBusrepairPageVo> p = PagerUtil.pageToVo(pagging, null);
return p;
}

3
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwdiffapply/AsBwdiffapplyMapper.java

@ -36,6 +36,7 @@ import com.yxt.anrui.as.api.asbwdiffapply.AsBwdiffapply;
import com.yxt.anrui.as.api.asbwdiffapply.AsBwdiffapplyVo;
import java.util.List;
import java.util.Map;
/**
* Project: yxt-as(保外工单) <br/>
@ -58,4 +59,6 @@ public interface AsBwdiffapplyMapper extends BaseMapper<AsBwdiffapply> {
String selectNum(String billNo);
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> beanToMap);
}

18
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwdiffapply/AsBwdiffapplyMapper.xml

@ -23,4 +23,22 @@
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
UPDATE as_bwdiffapply
SET nodeState=#{nodeState}, nodeId=#{taskDefKey}
<if test="nodeState == '已办结' or nodeState == '终止'">
, finishTime = NOW()
</if>
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
</mapper>

60
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwdiffapply/AsBwdiffapplyRest.java

@ -25,12 +25,17 @@
*********************************************************/
package com.yxt.anrui.as.biz.asbwdiffapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*;
import com.yxt.anrui.as.api.asbwdiffapply.flowable.*;
import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import com.yxt.anrui.as.api.asbwdiffapply.AsBwdiffapplyQuery;
@ -38,6 +43,9 @@ import com.yxt.anrui.as.api.asbwdiffapply.AsBwdiffapplyVo;
import com.yxt.anrui.as.api.asbwdiffapply.AsBwdiffapplyDetailsVo;
import com.yxt.anrui.as.api.asbwdiffapply.AsBwdiffapplyDto;
import javax.validation.Valid;
import java.util.List;
/**
* Project: yxt-as(保外工单) <br/>
* File: AsBwdiffapplyFeignFallback.java <br/>
@ -88,4 +96,56 @@ public class AsBwdiffapplyRest {
AsBwdiffapplyDetailsVo vo = asBwdiffapplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ApiOperation("提交")
@PostMapping("/submitApply")
public ResultBean submitApply(@Valid @RequestBody SubmitBwdiffApplyDto dto) {
return asBwdiffapplyService.submitApply(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody CompleteBwdiffApplyDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return asBwdiffapplyService.complete(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<BwdiffApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap BwdiffApplyNodeQuery query) {
return asBwdiffapplyService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<BwdiffApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap BwdiffApplyNodeQuery query) {
return asBwdiffapplyService.getNextNodesForSubmit(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@Valid @RequestBody BwdiffApplyTaskQuery query) {
return asBwdiffapplyService.taskReject(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody BwdiffApplyTaskQuery query) {
return asBwdiffapplyService.revokeProcess(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody BwdiffApplyTaskQuery query) {
return asBwdiffapplyService.breakProcess(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody BwdiffApplyDelegateQuery query) {
return asBwdiffapplyService.delegate(query);
}
}

322
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwdiffapply/AsBwdiffapplyService.java

@ -27,10 +27,15 @@ package com.yxt.anrui.as.biz.asbwdiffapply;
import cn.hutool.core.bean.BeanUtil;
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.as.api.asappendix.AsAppendix;
import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApply;
import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*;
import com.yxt.anrui.as.api.asbwdiffapply.*;
import com.yxt.anrui.as.api.asbwdiffapply.flowable.*;
import com.yxt.anrui.as.api.asbwdiffapplydetail.AsBwdiffapplyDetailDetailsVo;
import com.yxt.anrui.as.api.asbwdiffapplydetail.AsBwdiffapplyDetailDto;
import com.yxt.anrui.as.api.asbwdiffapplydetail.AsBwdiffapplyDetailFile;
@ -38,10 +43,18 @@ import com.yxt.anrui.as.biz.asappendix.AsAppendixService;
import com.yxt.anrui.as.biz.asbwdiffapplydetail.AsBwdiffapplyDetailService;
import com.yxt.anrui.as.feign.base.billno.Rule;
import com.yxt.anrui.as.feign.file.AsFileEnum;
import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables;
import com.yxt.anrui.as.feign.flowable.flow.FlowableFeign;
import com.yxt.anrui.as.feign.flowable.flow.ProcDefEnum;
import com.yxt.anrui.as.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.anrui.as.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.anrui.as.feign.flowable.flow2.FlowFeign;
import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskFeign;
import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskVo;
import com.yxt.anrui.as.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.anrui.as.feign.message.MessageFeign;
import com.yxt.anrui.as.feign.message.MessageFlowVo;
import com.yxt.anrui.as.feign.message.MessageFlowableQuery;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
@ -55,11 +68,13 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* Project: yxt-as(保外工单) <br/>
@ -302,4 +317,307 @@ public class AsBwdiffapplyService extends MybatisBaseService<AsBwdiffapplyMapper
}
return rb.success();
}
public ResultBean submitApply(SubmitBwdiffApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
AsBwdiffapply asBwdiffapply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, asBwdiffapply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
String businessSid = saveOrUpdateDto(dto);
asBwdiffapply = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//用户的部门全路径sid
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBwdiffapply.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getCreateBySid());
bv.setFormVariables(variables);
if (r == 1) {
//ToDo:流程定义id
bv.setModelId(ProcDefEnum.ASBWDIFFAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
asBwdiffapply = fetchBySid(businessSid);
//==================================添加线程
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());
AsBwdiffapply finalAsBwdiffapply = asBwdiffapply;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("工单应收调差申请");
messageFlowableQuery.setMsgContent(finalAsBwdiffapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("工单应收调差申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(asBwdiffapply.getTaskId());
bv.setTaskDefKey(asBwdiffapply.getNodeId());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private int updateFlowFiled(Map<String, Object> beanToMap) {
return baseMapper.updateFlowFiled(beanToMap);
}
private int submitBusinessData(SubmitBwdiffApplyDto dto, AsBwdiffapply asBwdiffapply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (asBwdiffapply != null) {
String businessTaskId = asBwdiffapply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
AsBwdiffapply asBwdiffapply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBwdiffapply.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}
bv.setModelId(asBwdiffapply.getProcDefId());
if (bv.getTaskId().equals(asBwdiffapply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
} else {
//极光推送
asBwdiffapply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(asBwdiffapply.getProcDefId());
messageFlowVo.setProcInsId(asBwdiffapply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("工单应收调差申请");
messageFlowableQuery.setMsgContent(asBwdiffapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("工单应收调差申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<BwdiffApplyNodeVo>> getPreviousNodesForReject(BwdiffApplyNodeQuery query) {
ResultBean<List<BwdiffApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
AsBwdiffapply asBwdiffapply = fetchBySid(query.getBusinessSid());
bv.setModelId(asBwdiffapply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<BwdiffApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BwdiffApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<BwdiffApplyNodeVo>> getNextNodesForSubmit(BwdiffApplyNodeQuery query) {
ResultBean<List<BwdiffApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
AsBwdiffapply asBwdiffapply = fetchBySid(query.getBusinessSid());
bv.setModelId(asBwdiffapply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<BwdiffApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BwdiffApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(BwdiffApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
AsBwdiffapply asBwdiffapply = fetchBySid(businessSid);
if (asBwdiffapply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = asBwdiffapply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
asBwdiffapply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = asBwdiffapply.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(asBwdiffapply.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("工单应收调差申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextName = listResultBean.getData().get(0).getName_();
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(asBwdiffapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("工单应收调差申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(BwdiffApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
AsBwdiffapply asBwdiffapply = fetchBySid(query.getBusinessSid());
String businessTaskId = asBwdiffapply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(BwdiffApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
AsBwdiffapply asBwdiffapply = fetchBySid(query.getBusinessSid());
String businessTaskId = asBwdiffapply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(asBwdiffapply.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());
} 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);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(BwdiffApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
}

3
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyMapper.java

@ -36,6 +36,7 @@ import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapply;
import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyVo;
import java.util.List;
import java.util.Map;
/**
* Project: yxt-as(保外工单) <br/>
@ -58,4 +59,6 @@ public interface AsBwinvoiceapplyMapper extends BaseMapper<AsBwinvoiceapply> {
String selectNum(String billNo);
int selectBySid(String join);
int updateFlowFiled(Map<String, Object> beanToMap);
}

18
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyMapper.xml

@ -23,4 +23,22 @@
WHERE nodeState != '待提交'
and find_in_set(sid, #{list})
</select>
<update id="updateFlowFiled">
UPDATE as_bwinvoiceapply
SET nodeState=#{nodeState}, nodeId=#{taskDefKey}
<if test="nodeState == '已办结' or nodeState == '终止'">
, finishTime = NOW()
</if>
<if test="procDefId != null and procDefId != ''">
, procDefId=#{procDefId}
</if>
<if test="procInsId != null and procInsId != ''">
, procInstId=#{procInsId}
</if>
<if test="taskId != null and taskId != ''">
, taskId=#{taskId}
</if>
WHERE sid=#{sid}
</update>
</mapper>

60
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyRest.java

@ -25,12 +25,17 @@
*********************************************************/
package com.yxt.anrui.as.biz.asbwinvoiceapply;
import cn.hutool.core.bean.BeanUtil;
import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*;
import com.yxt.anrui.as.api.asbwinvoiceapply.flowable.*;
import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.result.ResultBean;
import com.yxt.common.core.vo.PagerVo;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.cloud.openfeign.SpringQueryMap;
import org.springframework.web.bind.annotation.*;
import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyQuery;
@ -38,6 +43,9 @@ import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyVo;
import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyDetailsVo;
import com.yxt.anrui.as.api.asbwinvoiceapply.AsBwinvoiceapplyDto;
import javax.validation.Valid;
import java.util.List;
/**
* Project: yxt-as(保外工单) <br/>
* File: AsBwinvoiceapplyFeignFallback.java <br/>
@ -88,4 +96,56 @@ public class AsBwinvoiceapplyRest {
AsBwinvoiceapplyDetailsVo vo = asBwinvoiceapplyService.fetchDetailsVoBySid(sid);
return rb.success().setData(vo);
}
@ApiOperation("提交")
@PostMapping("/submitApply")
public ResultBean submitApply(@Valid @RequestBody SubmitBwinvoiceApplyDto dto) {
return asBwinvoiceapplyService.submitApply(dto);
}
@ApiOperation(value = "办理(同意)")
@PostMapping("/complete")
public ResultBean complete(@Valid @RequestBody CompleteBwinvoiceApplyDto query) {
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
bv.setModelId("");
return asBwinvoiceapplyService.complete(bv);
}
@ApiOperation(value = "获取上一个环节")
@GetMapping(value = "/getPreviousNodesForReject")
ResultBean<List<BwinvoiceApplyNodeVo>> getPreviousNodesForReject(@Valid @SpringQueryMap BwinvoiceApplyNodeQuery query) {
return asBwinvoiceapplyService.getPreviousNodesForReject(query);
}
@ApiOperation(value = "获取下一个环节")
@GetMapping(value = "/getNextNodesForSubmit")
ResultBean<List<BwinvoiceApplyNodeVo>> getNextNodesForSubmit(@Valid @SpringQueryMap BwinvoiceApplyNodeQuery query) {
return asBwinvoiceapplyService.getNextNodesForSubmit(query);
}
@ApiOperation(value = "驳回任务")
@PostMapping(value = "/reject")
public ResultBean taskReject(@Valid @RequestBody BwinvoiceApplyTaskQuery query) {
return asBwinvoiceapplyService.taskReject(query);
}
@ApiOperation(value = "撤回流程")
@PostMapping(value = "/revokeProcess")
public ResultBean revokeProcess(@Valid @RequestBody BwinvoiceApplyTaskQuery query) {
return asBwinvoiceapplyService.revokeProcess(query);
}
@ApiOperation(value = "终止任务")
@PostMapping(value = "/breakProcess")
public ResultBean breakProcess(@Valid @RequestBody BwinvoiceApplyTaskQuery query) {
return asBwinvoiceapplyService.breakProcess(query);
}
@ApiOperation(value = "加签")
@PostMapping(value = "/delegate")
@ResponseBody
public ResultBean delegate(@RequestBody BwinvoiceApplyDelegateQuery query) {
return asBwinvoiceapplyService.delegate(query);
}
}

326
yxt-as/src/main/java/com/yxt/anrui/as/biz/asbwinvoiceapply/AsBwinvoiceapplyService.java

@ -27,20 +27,33 @@ package com.yxt.anrui.as.biz.asbwinvoiceapply;
import cn.hutool.core.bean.BeanUtil;
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.as.api.asappendix.AsAppendix;
import com.yxt.anrui.as.api.asbusclaimcheckapply.AsBusclaimCheckApply;
import com.yxt.anrui.as.api.asbusclaimcheckapply.flowable.*;
import com.yxt.anrui.as.api.asbwinvoiceapply.*;
import com.yxt.anrui.as.api.asbwinvoiceapply.flowable.*;
import com.yxt.anrui.as.api.asbwinvoiceapplydetail.AsBwinvoiceapplyDetailDetailsVo;
import com.yxt.anrui.as.api.asbwinvoiceapplydetail.AsBwinvoiceapplyDetailDto;
import com.yxt.anrui.as.biz.asappendix.AsAppendixService;
import com.yxt.anrui.as.biz.asbwinvoiceapplydetail.AsBwinvoiceapplyDetailService;
import com.yxt.anrui.as.feign.base.billno.Rule;
import com.yxt.anrui.as.feign.file.AsFileEnum;
import com.yxt.anrui.as.feign.flowable.flow.BusinessVariables;
import com.yxt.anrui.as.feign.flowable.flow.FlowableFeign;
import com.yxt.anrui.as.feign.flowable.flow.ProcDefEnum;
import com.yxt.anrui.as.feign.flowable.flow.UpdateFlowFieldVo;
import com.yxt.anrui.as.feign.flowable.flow2.FlowDelegateQuery;
import com.yxt.anrui.as.feign.flowable.flow2.FlowFeign;
import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskFeign;
import com.yxt.anrui.as.feign.flowable.flowtask.FlowTaskVo;
import com.yxt.anrui.as.feign.flowable.flowtask.LatestTaskVo;
import com.yxt.anrui.as.feign.message.MessageFeign;
import com.yxt.anrui.as.feign.message.MessageFlowVo;
import com.yxt.anrui.as.feign.message.MessageFlowableQuery;
import com.yxt.anrui.as.feign.portal.privilege.PrivilegeQuery;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationFeign;
import com.yxt.anrui.as.feign.portal.sysorganization.SysOrganizationVo;
@ -54,11 +67,13 @@ import com.yxt.common.base.utils.PagerUtil;
import com.yxt.common.core.query.PagerQuery;
import com.yxt.common.core.vo.PagerVo;
import org.apache.tomcat.util.threads.ThreadPoolExecutor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.List;
import java.util.*;
import java.util.concurrent.*;
import java.util.stream.Collectors;
/**
* Project: yxt-as(保外工单) <br/>
@ -154,8 +169,8 @@ public class AsBwinvoiceapplyService extends MybatisBaseService<AsBwinvoiceapply
if (StringUtils.isNotBlank(query.getInvoiceTitle())){
qw.like("ab.invoiceTitle",query.getInvoiceTitle());
}
if (StringUtils.isNotBlank(query.getInvoiceTypeValue())){
qw.like("ab.invoiceTypeValue",query.getInvoiceTypeValue());
if (StringUtils.isNotBlank(query.getInvoiceTypeKey())){
qw.eq("ab.invoiceTypeKey",query.getInvoiceTypeKey());
}
String createTimeStart = query.getCreateTimeStart();
String createTimeEnd = query.getCreateTimeEnd();
@ -289,4 +304,307 @@ public class AsBwinvoiceapplyService extends MybatisBaseService<AsBwinvoiceapply
}
return rb.success();
}
public ResultBean submitApply(SubmitBwinvoiceApplyDto dto) {
ResultBean rb = ResultBean.fireFail();
AsBwinvoiceapply asBwinvoiceapply = fetchBySid(dto.getSid());
int r = submitBusinessData(dto, asBwinvoiceapply);
if (r == 3) {
return rb.setMsg("该申请不存在");
}
if (r == 0) {
return rb.setMsg("操作失败!提交的数据不一致");
}
String businessSid = saveOrUpdateDto(dto);
asBwinvoiceapply = fetchBySid(businessSid);
//创建BusinessVariables实体对象
BusinessVariables bv = new BusinessVariables();
//流程中的参数赋值、若有网关,则赋值网关中判断的字段。
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
//用户的部门全路径sid
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBwinvoiceapply.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}
bv.setBusinessSid(businessSid);
bv.setUserSid(dto.getCreateBySid());
bv.setFormVariables(variables);
if (r == 1) {
//ToDo:流程定义id
bv.setModelId(ProcDefEnum.ASBWINVOICEAPPLY.getProDefId());
ResultBean<UpdateFlowFieldVo> voResultBean = flowFeign.startProcess(bv);
if (!voResultBean.getSuccess()) {
return rb.setMsg(voResultBean.getMsg());
}
UpdateFlowFieldVo ufVo = voResultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(ufVo));
asBwinvoiceapply = fetchBySid(businessSid);
//==================================添加线程
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());
AsBwinvoiceapply finalAsBwinvoiceapply = asBwinvoiceapply;
Future future1 = pool.submit(() -> {
//极光推送
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("工单开票申请");
messageFlowableQuery.setMsgContent(finalAsBwinvoiceapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("工单开票申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
});
} catch (Exception e) {
e.printStackTrace();
}
//==================================添加线程
return voResultBean;
}
if (r == 2) {
// ToDo:驳回到发起人后再次提交
if (StringUtils.isBlank(dto.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
bv.setTaskId(asBwinvoiceapply.getTaskId());
bv.setTaskDefKey(asBwinvoiceapply.getNodeId());
bv.setComment("重新提交");
bv.setInstanceId(dto.getInstanceId());
return complete(bv);
}
return rb;
}
private int updateFlowFiled(Map<String, Object> beanToMap) {
return baseMapper.updateFlowFiled(beanToMap);
}
private int submitBusinessData(SubmitBwinvoiceApplyDto dto, AsBwinvoiceapply asBwinvoiceapply) {
int r = 0;
if (StringUtils.isBlank(dto.getSid())) {
r = 1;
} else {
if (asBwinvoiceapply != null) {
String businessTaskId = asBwinvoiceapply.getTaskId();
if (StringUtils.isBlank(businessTaskId) && StringUtils.isBlank(dto.getTaskId())) {
//新提交
r = 1;
} else if (StringUtils.isNotBlank(businessTaskId) && businessTaskId.equals(dto.getTaskId())) {
//二次提交//只有数据一致的时候才能进行下一步
r = 2;
}
} else {
r = 3;
}
}
return r;
}
public ResultBean complete(BusinessVariables bv) {
ResultBean rb = ResultBean.fireFail();
String businessSid = bv.getBusinessSid();
AsBwinvoiceapply asBwinvoiceapply = fetchBySid(businessSid);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
bv.setFormVariables(variables);
SysOrganizationVo sysOrganization = sysOrganizationFeign.fetchBySid(asBwinvoiceapply.getDeptSid()).getData();
if (sysOrganization != null) {
bv.setOrgSidPath(sysOrganization.getOrgSidPath());
}
bv.setModelId(asBwinvoiceapply.getProcDefId());
if (bv.getTaskId().equals(asBwinvoiceapply.getTaskId())) {
ResultBean<UpdateFlowFieldVo> resultBean = flowFeign.handleProsess(bv);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
if ("Event_end".equals(resultBean.getData().getTaskDefKey())) {
} else {
//极光推送
asBwinvoiceapply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
messageFlowVo.setProcDefId(asBwinvoiceapply.getProcDefId());
messageFlowVo.setProcInsId(asBwinvoiceapply.getProcInstId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("工单开票申请");
messageFlowableQuery.setMsgContent(asBwinvoiceapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
messageFlowableQuery.setMsgTitle("工单开票申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
}
return rb.success().setData(resultBean.getData());
} else {
return rb.setMsg("操作失败!提交的数据不一致");
}
}
public ResultBean<List<BwinvoiceApplyNodeVo>> getPreviousNodesForReject(BwinvoiceApplyNodeQuery query) {
ResultBean<List<BwinvoiceApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid());
bv.setModelId(asBwinvoiceapply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getPreviousNodesForReject(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<BwinvoiceApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BwinvoiceApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean<List<BwinvoiceApplyNodeVo>> getNextNodesForSubmit(BwinvoiceApplyNodeQuery query) {
ResultBean<List<BwinvoiceApplyNodeVo>> rb = ResultBean.fireFail();
BusinessVariables bv = new BusinessVariables();
BeanUtil.copyProperties(query, bv);
AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid());
bv.setModelId(asBwinvoiceapply.getProcDefId());
ResultBean<List<Map<String, Object>>> resultBean = flowTaskFeign.getNextNodesForSubmit(bv);
//判断数组是否为空,若为空则赋值,若不为空,则遍历循环将map中的数据赋值给TemplateApplyNodeVo
List<BwinvoiceApplyNodeVo> voList = Optional.ofNullable(resultBean.getData()).orElse(new ArrayList<>()).stream().map(m -> JSON.parseObject(JSON.toJSONString(m), BwinvoiceApplyNodeVo.class)).collect(Collectors.toList());
return rb.success().setData(voList);
}
public ResultBean taskReject(BwinvoiceApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
String businessSid = query.getBusinessSid();
AsBwinvoiceapply asBwinvoiceapply = fetchBySid(businessSid);
if (asBwinvoiceapply == null) {
return rb.setMsg("该申请不存在");
}
String businessTaskId = asBwinvoiceapply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
Map<String, Object> variables = new HashMap<>();
Map<String, Object> appMap = new HashMap<>();
appMap.put("sid", businessSid);
variables.put("app", appMap);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.taskReject(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
UpdateFlowFieldVo ufVo = resultBean.getData();
Map<String, Object> map = BeanUtil.beanToMap(ufVo);
//更新业务中的流程相关的参数
updateFlowFiled(map);
//极光推送
asBwinvoiceapply = fetchBySid(businessSid);
MessageFlowableQuery messageFlowableQuery = new MessageFlowableQuery();
MessageFlowVo messageFlowVo = new MessageFlowVo();
BeanUtil.copyProperties(ufVo, messageFlowVo);
String procId = asBwinvoiceapply.getProcInstId();
messageFlowVo.setProcInsId(procId);
messageFlowVo.setProcDefId(asBwinvoiceapply.getProcDefId());
messageFlowableQuery.setUfVo(messageFlowVo);
messageFlowableQuery.setAppMap(appMap);
messageFlowableQuery.setBusinessSid(businessSid);
messageFlowableQuery.setModuleName("工单开票申请");
ResultBean<List<LatestTaskVo>> listResultBean = flowTaskFeign.getLatestTasks(procId);
String nextName = listResultBean.getData().get(0).getName_();
String nextNodeUserSids = listResultBean.getData().get(0).getASSIGNEE_();
if ("发起申请".equals(nextName)) {
messageFlowableQuery.setMsgContent("您提交的" + messageFlowableQuery.getModuleName() + "已被驳回,请重新提交");
} else {
messageFlowableQuery.setMsgContent(asBwinvoiceapply.getCreateByName() + "提交的" + messageFlowableQuery.getModuleName() + ",请审批");
}
messageFlowableQuery.setMsgTitle("工单开票申请");
ResultBean<String> stringResultBean = messageFeign.pushMessage(messageFlowableQuery);
return rb.success();
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean revokeProcess(BwinvoiceApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid());
String businessTaskId = asBwinvoiceapply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (businessTaskId.equals(query.getTaskId())) {
FlowTaskVo flowTaskVo = new FlowTaskVo();
BeanUtil.copyProperties(query, flowTaskVo);
ResultBean<UpdateFlowFieldVo> resultBean = flowableFeign.revokeProcess(flowTaskVo);
if (!resultBean.getSuccess()) {
return rb.setMsg(resultBean.getMsg());
}
updateFlowFiled(BeanUtil.beanToMap(resultBean.getData()));
return rb.success().setData(resultBean.getData());
}
}
return rb.setMsg("操作失败,提交的数据不一致!");
}
public ResultBean breakProcess(BwinvoiceApplyTaskQuery query) {
ResultBean rb = ResultBean.fireFail();
if (StringUtils.isBlank(query.getInstanceId())) {
return rb.setMsg("参数错误:instanceId");
}
if (StringUtils.isBlank(query.getUserSid())) {
return rb.setMsg("参数错误:userSid");
}
if (StringUtils.isBlank(query.getComment())) {
return rb.setMsg("请填写意见");
}
AsBwinvoiceapply asBwinvoiceapply = fetchBySid(query.getBusinessSid());
String businessTaskId = asBwinvoiceapply.getTaskId();
if (StringUtils.isNotBlank(businessTaskId)) {
if (query.getUserSid().equals(asBwinvoiceapply.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());
} 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);
return rb.success().setData(resultBean.getData());
}
}
}
return rb.setMsg("操作失败!提交的数据不一致!");
}
public ResultBean delegate(BwinvoiceApplyDelegateQuery query) {
ResultBean rb = ResultBean.fireFail();
FlowDelegateQuery delegateQuery = new FlowDelegateQuery();
BeanUtil.copyProperties(query, delegateQuery);
flowFeign.delegate(delegateQuery);
return rb.success();
}
}

2
yxt-as/src/main/java/com/yxt/anrui/as/feign/flowable/flow/ProcDefEnum.java

@ -13,6 +13,8 @@ public enum ProcDefEnum {
REVERSESETTLEAPPLY("工单反结算申请", "process_g3r02po8:1:10975004"),
ASBUSCLAIMINVOICEBILL("索赔单开票申请", "process_33p7rz6h:1:11297504"),
ASBUSCLAIMCHECKAPPLY("索赔单调整申请", "process_7icw4lhq:1:11310004"),
ASBWDIFFAPPLY("工单应收调差申请", "process_zcxxb6de:1:12097508"),
ASBWINVOICEAPPLY("工单开票申请", "process_j8zlnkl1:1:12097504"),
;

Loading…
Cancel
Save