Your Name 2 yıl önce
ebeveyn
işleme
d124d16943
29 değiştirilmiş dosya ile 1818 ekleme ve 341 silme
  1. 52
    1
      db/.back_文明创办/文明创办-backup-202312152442.pdma.json
  2. 261
    5
      db/.back_文明创办/文明创办-backup-202312205100.pdma.json
  3. 329
    5
      db/.back_文明创办/文明创办-backup-202312205256.pdma.json
  4. 275
    2
      db/文明创办.pdma.json
  5. 4
    0
      src/main/java/com/example/civilizedcity/CivilizedCityApplication.java
  6. 28
    0
      src/main/java/com/example/civilizedcity/common/Constants.java
  7. 20
    0
      src/main/java/com/example/civilizedcity/controller/TaIssueApplyController.java
  8. 37
    3
      src/main/java/com/example/civilizedcity/controller/TaIssueController.java
  9. 335
    321
      src/main/java/com/example/civilizedcity/controller/TaIssueProcessController.java
  10. 101
    0
      src/main/java/com/example/civilizedcity/controller/TaMessageController.java
  11. 1
    1
      src/main/java/com/example/civilizedcity/controller/TaOrgIssueController.java
  12. 11
    0
      src/main/java/com/example/civilizedcity/entity/TaIssue.java
  13. 57
    0
      src/main/java/com/example/civilizedcity/entity/TaMessage.java
  14. 1
    1
      src/main/java/com/example/civilizedcity/entity/TaOrgIssue.java
  15. 29
    0
      src/main/java/com/example/civilizedcity/event/MessagEvent.java
  16. 24
    0
      src/main/java/com/example/civilizedcity/event/listener/MessagEventListener.java
  17. 2
    0
      src/main/java/com/example/civilizedcity/mapper/TaIssueMapper.java
  18. 16
    0
      src/main/java/com/example/civilizedcity/mapper/TaMessageMapper.java
  19. 2
    0
      src/main/java/com/example/civilizedcity/mapper/TaOrgIssueMapper.java
  20. 4
    0
      src/main/java/com/example/civilizedcity/service/TaIssueService.java
  21. 18
    0
      src/main/java/com/example/civilizedcity/service/TaMessageService.java
  22. 4
    1
      src/main/java/com/example/civilizedcity/service/TaOrgIssueService.java
  23. 30
    0
      src/main/java/com/example/civilizedcity/service/impl/TaIssueApplyServiceImpl.java
  24. 10
    0
      src/main/java/com/example/civilizedcity/service/impl/TaIssueServiceImpl.java
  25. 127
    0
      src/main/java/com/example/civilizedcity/service/impl/TaMessageServiceImpl.java
  26. 18
    1
      src/main/java/com/example/civilizedcity/service/impl/TaOrgIssueServiceImpl.java
  27. 6
    0
      src/main/resources/mapper/TaIssueMapper.xml
  28. 6
    0
      src/main/resources/mapper/TaMessageMapper.xml
  29. 10
    0
      src/main/resources/mapper/TaOrgIssueMapper.xml

db/.back_文明创办/文明创办-backup-20221230141755.pdma.json → db/.back_文明创办/文明创办-backup-202312152442.pdma.json Dosyayı Görüntüle

@@ -4,7 +4,7 @@
4 4
   "avatar": "",
5 5
   "version": "4.2.0",
6 6
   "createdTime": "2022-12-12 09:36:12",
7
-  "updatedTime": "2022-12-30 09:34:54",
7
+  "updatedTime": "2023-1-2 14:06:29",
8 8
   "dbConns": [],
9 9
   "profile": {
10 10
     "default": {
@@ -3674,6 +3674,57 @@
3674 3674
           "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
3675 3675
           "id": "94EE1F8F-61A7-4104-B747-4E1C0036CBB8"
3676 3676
         },
3677
+        {
3678
+          "defKey": "apply_type",
3679
+          "defName": "当前申请",
3680
+          "comment": "",
3681
+          "type": "",
3682
+          "len": "",
3683
+          "scale": "",
3684
+          "primaryKey": false,
3685
+          "notNull": false,
3686
+          "autoIncrement": false,
3687
+          "defaultValue": "",
3688
+          "hideInGraph": false,
3689
+          "refDict": "",
3690
+          "extProps": {},
3691
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
3692
+          "id": "EA6F4EA5-1BD9-4919-B756-BA0A4949E625"
3693
+        },
3694
+        {
3695
+          "defKey": "apply_id",
3696
+          "defName": "当前申请ID",
3697
+          "comment": "",
3698
+          "type": "",
3699
+          "len": "",
3700
+          "scale": "",
3701
+          "primaryKey": false,
3702
+          "notNull": false,
3703
+          "autoIncrement": false,
3704
+          "defaultValue": "",
3705
+          "hideInGraph": false,
3706
+          "refDict": "",
3707
+          "extProps": {},
3708
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
3709
+          "id": "D30F4AC2-D4FE-452A-9A75-4821F0F0BA1E"
3710
+        },
3711
+        {
3712
+          "defKey": "validate_status",
3713
+          "defName": "审核状态",
3714
+          "comment": "0未审核,1审核通过,2审核不通过",
3715
+          "type": "",
3716
+          "len": "",
3717
+          "scale": "",
3718
+          "primaryKey": false,
3719
+          "notNull": false,
3720
+          "autoIncrement": false,
3721
+          "defaultValue": "",
3722
+          "hideInGraph": false,
3723
+          "refDict": "",
3724
+          "extProps": {},
3725
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
3726
+          "id": "BB943074-7DA2-4289-8163-8B09341F8C9B"
3727
+        },
3677 3728
         {
3678 3729
           "defKey": "status",
3679 3730
           "defName": "状态",

db/.back_文明创办/文明创办-backup-20221230093454.pdma.json → db/.back_文明创办/文明创办-backup-202312205100.pdma.json Dosyayı Görüntüle

@@ -4,7 +4,7 @@
4 4
   "avatar": "",
5 5
   "version": "4.2.0",
6 6
   "createdTime": "2022-12-12 09:36:12",
7
-  "updatedTime": "2022-12-29 16:25:56",
7
+  "updatedTime": "2023-1-2 15:24:42",
8 8
   "dbConns": [],
9 9
   "profile": {
10 10
     "default": {
@@ -3674,6 +3674,57 @@
3674 3674
           "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
3675 3675
           "id": "94EE1F8F-61A7-4104-B747-4E1C0036CBB8"
3676 3676
         },
3677
+        {
3678
+          "defKey": "apply_type",
3679
+          "defName": "当前申请",
3680
+          "comment": "",
3681
+          "type": "",
3682
+          "len": "",
3683
+          "scale": "",
3684
+          "primaryKey": false,
3685
+          "notNull": false,
3686
+          "autoIncrement": false,
3687
+          "defaultValue": "",
3688
+          "hideInGraph": false,
3689
+          "refDict": "",
3690
+          "extProps": {},
3691
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
3692
+          "id": "EA6F4EA5-1BD9-4919-B756-BA0A4949E625"
3693
+        },
3694
+        {
3695
+          "defKey": "apply_id",
3696
+          "defName": "当前申请ID",
3697
+          "comment": "",
3698
+          "type": "",
3699
+          "len": "",
3700
+          "scale": "",
3701
+          "primaryKey": false,
3702
+          "notNull": false,
3703
+          "autoIncrement": false,
3704
+          "defaultValue": "",
3705
+          "hideInGraph": false,
3706
+          "refDict": "",
3707
+          "extProps": {},
3708
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
3709
+          "id": "D30F4AC2-D4FE-452A-9A75-4821F0F0BA1E"
3710
+        },
3711
+        {
3712
+          "defKey": "validate_status",
3713
+          "defName": "审核状态",
3714
+          "comment": "0未审核,1审核提交,2审核通过,3审核不通过",
3715
+          "type": "",
3716
+          "len": "",
3717
+          "scale": "",
3718
+          "primaryKey": false,
3719
+          "notNull": false,
3720
+          "autoIncrement": false,
3721
+          "defaultValue": "",
3722
+          "hideInGraph": false,
3723
+          "refDict": "",
3724
+          "extProps": {},
3725
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
3726
+          "id": "BB943074-7DA2-4289-8163-8B09341F8C9B"
3727
+        },
3677 3728
         {
3678 3729
           "defKey": "status",
3679 3730
           "defName": "状态",
@@ -7503,7 +7554,7 @@
7503 7554
           "hideInGraph": false,
7504 7555
           "refDict": "",
7505 7556
           "extProps": {},
7506
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
7557
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
7507 7558
           "id": "18A5C4E3-563C-46B6-A12D-FDB002AA0480"
7508 7559
         },
7509 7560
         {
@@ -7554,7 +7605,7 @@
7554 7605
           "hideInGraph": false,
7555 7606
           "refDict": "",
7556 7607
           "extProps": {},
7557
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
7608
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
7558 7609
           "id": "464C7108-433F-42E8-BBE6-BA48AC65FAE6"
7559 7610
         },
7560 7611
         {
@@ -7571,7 +7622,7 @@
7571 7622
           "hideInGraph": false,
7572 7623
           "refDict": "",
7573 7624
           "extProps": {},
7574
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
7625
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
7575 7626
           "id": "0F8DF251-A5D0-48CC-AAD8-D06516BF72DC"
7576 7627
         },
7577 7628
         {
@@ -7929,6 +7980,210 @@
7929 7980
       ],
7930 7981
       "correlations": [],
7931 7982
       "indexes": []
7983
+    },
7984
+    {
7985
+      "id": "430EE745-314D-48CE-A20B-ED2C4D79BC92",
7986
+      "env": {
7987
+        "base": {
7988
+          "nameSpace": "",
7989
+          "codeRoot": ""
7990
+        }
7991
+      },
7992
+      "defKey": "ta_message",
7993
+      "defName": "消息通知",
7994
+      "comment": "",
7995
+      "properties": {},
7996
+      "nameTemplate": "{defKey}[{defName}]",
7997
+      "notes": {},
7998
+      "headers": [
7999
+        {
8000
+          "refKey": "hideInGraph",
8001
+          "hideInGraph": true
8002
+        },
8003
+        {
8004
+          "refKey": "defKey",
8005
+          "hideInGraph": false
8006
+        },
8007
+        {
8008
+          "refKey": "defName",
8009
+          "hideInGraph": false
8010
+        },
8011
+        {
8012
+          "refKey": "primaryKey",
8013
+          "hideInGraph": false
8014
+        },
8015
+        {
8016
+          "refKey": "notNull",
8017
+          "hideInGraph": true
8018
+        },
8019
+        {
8020
+          "refKey": "autoIncrement",
8021
+          "hideInGraph": true
8022
+        },
8023
+        {
8024
+          "refKey": "domain",
8025
+          "hideInGraph": true
8026
+        },
8027
+        {
8028
+          "refKey": "type",
8029
+          "hideInGraph": false
8030
+        },
8031
+        {
8032
+          "refKey": "len",
8033
+          "hideInGraph": false
8034
+        },
8035
+        {
8036
+          "refKey": "scale",
8037
+          "hideInGraph": false
8038
+        },
8039
+        {
8040
+          "refKey": "comment",
8041
+          "hideInGraph": true
8042
+        },
8043
+        {
8044
+          "refKey": "refDict",
8045
+          "hideInGraph": true
8046
+        },
8047
+        {
8048
+          "refKey": "defaultValue",
8049
+          "hideInGraph": true
8050
+        },
8051
+        {
8052
+          "refKey": "isStandard",
8053
+          "hideInGraph": false
8054
+        },
8055
+        {
8056
+          "refKey": "uiHint",
8057
+          "hideInGraph": true
8058
+        },
8059
+        {
8060
+          "refKey": "extProps",
8061
+          "hideInGraph": true
8062
+        }
8063
+      ],
8064
+      "fields": [
8065
+        {
8066
+          "defKey": "id",
8067
+          "defName": "ID",
8068
+          "comment": "",
8069
+          "type": "",
8070
+          "len": 32,
8071
+          "scale": "",
8072
+          "primaryKey": true,
8073
+          "notNull": true,
8074
+          "autoIncrement": false,
8075
+          "defaultValue": "",
8076
+          "hideInGraph": true,
8077
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8078
+          "refDict": "",
8079
+          "uiHint": "",
8080
+          "id": "FC7B9B05-7D57-4818-8266-F8A4D62DB212"
8081
+        },
8082
+        {
8083
+          "defKey": "org_id",
8084
+          "defName": "机构ID",
8085
+          "comment": "",
8086
+          "type": "",
8087
+          "len": "",
8088
+          "scale": "",
8089
+          "primaryKey": false,
8090
+          "notNull": false,
8091
+          "autoIncrement": false,
8092
+          "defaultValue": "",
8093
+          "hideInGraph": false,
8094
+          "refDict": "",
8095
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8096
+          "id": "FBCA3E18-1ABB-4B48-8370-9A9FB679B5A7",
8097
+          "uiHint": ""
8098
+        },
8099
+        {
8100
+          "defKey": "status",
8101
+          "defName": "状态",
8102
+          "comment": "",
8103
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
8104
+          "type": "",
8105
+          "len": "",
8106
+          "scale": "",
8107
+          "primaryKey": false,
8108
+          "notNull": false,
8109
+          "autoIncrement": false,
8110
+          "defaultValue": "1",
8111
+          "hideInGraph": true,
8112
+          "refDict": "",
8113
+          "uiHint": "",
8114
+          "id": "E1646EEB-D7B3-4C90-91B1-C5D45348549C"
8115
+        },
8116
+        {
8117
+          "defKey": "create_user",
8118
+          "defName": "创建人",
8119
+          "comment": "",
8120
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8121
+          "type": "",
8122
+          "len": "",
8123
+          "scale": "",
8124
+          "primaryKey": false,
8125
+          "notNull": false,
8126
+          "autoIncrement": false,
8127
+          "defaultValue": "",
8128
+          "hideInGraph": true,
8129
+          "refDict": "",
8130
+          "uiHint": "",
8131
+          "id": "210ABBCB-0350-4D79-B4E4-92543A825036"
8132
+        },
8133
+        {
8134
+          "defKey": "create_date",
8135
+          "defName": "创建时间",
8136
+          "comment": "",
8137
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
8138
+          "type": "",
8139
+          "len": "",
8140
+          "scale": "",
8141
+          "primaryKey": false,
8142
+          "notNull": false,
8143
+          "autoIncrement": false,
8144
+          "defaultValue": "CURRENT_TIMESTAMP",
8145
+          "hideInGraph": true,
8146
+          "refDict": "",
8147
+          "uiHint": "",
8148
+          "id": "5BCAB4B5-D041-4F14-8AC8-991595EB1EA5"
8149
+        },
8150
+        {
8151
+          "defKey": "update_user",
8152
+          "defName": "更新人",
8153
+          "comment": "",
8154
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8155
+          "type": "",
8156
+          "len": 32,
8157
+          "scale": "",
8158
+          "primaryKey": false,
8159
+          "notNull": false,
8160
+          "autoIncrement": false,
8161
+          "defaultValue": "",
8162
+          "hideInGraph": true,
8163
+          "refDict": "",
8164
+          "uiHint": "",
8165
+          "id": "35545F9B-03E1-4DB3-998C-596AB7F8820F"
8166
+        },
8167
+        {
8168
+          "defKey": "update_date",
8169
+          "defName": "更新时间",
8170
+          "comment": "",
8171
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
8172
+          "type": "",
8173
+          "len": "",
8174
+          "scale": "",
8175
+          "primaryKey": false,
8176
+          "notNull": false,
8177
+          "autoIncrement": false,
8178
+          "defaultValue": "",
8179
+          "hideInGraph": true,
8180
+          "refDict": "",
8181
+          "uiHint": "",
8182
+          "id": "14C5219E-6E5E-4B54-A7E6-429EFA934950"
8183
+        }
8184
+      ],
8185
+      "correlations": [],
8186
+      "indexes": []
7932 8187
     }
7933 8188
   ],
7934 8189
   "views": [],
@@ -8356,7 +8611,8 @@
8356 8611
         "3B58B8CA-AF26-40FE-907A-A34523419478",
8357 8612
         "B20E272F-91EB-4BAC-AAD6-AF99D517E44D",
8358 8613
         "EF3D4E17-6CE0-4944-B1DC-40280B2B689F",
8359
-        "5BEE62BD-F04C-49E8-A65A-32A11B093E7B"
8614
+        "5BEE62BD-F04C-49E8-A65A-32A11B093E7B",
8615
+        "430EE745-314D-48CE-A20B-ED2C4D79BC92"
8360 8616
       ],
8361 8617
       "refViews": [],
8362 8618
       "refDiagrams": [],

db/.back_文明创办/文明创办-backup-20221229162556.pdma.json → db/.back_文明创办/文明创办-backup-202312205256.pdma.json Dosyayı Görüntüle

@@ -4,7 +4,7 @@
4 4
   "avatar": "",
5 5
   "version": "4.2.0",
6 6
   "createdTime": "2022-12-12 09:36:12",
7
-  "updatedTime": "2022-12-28 18:37:52",
7
+  "updatedTime": "2023-1-2 20:51:00",
8 8
   "dbConns": [],
9 9
   "profile": {
10 10
     "default": {
@@ -3674,6 +3674,57 @@
3674 3674
           "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
3675 3675
           "id": "94EE1F8F-61A7-4104-B747-4E1C0036CBB8"
3676 3676
         },
3677
+        {
3678
+          "defKey": "apply_type",
3679
+          "defName": "当前申请",
3680
+          "comment": "",
3681
+          "type": "",
3682
+          "len": "",
3683
+          "scale": "",
3684
+          "primaryKey": false,
3685
+          "notNull": false,
3686
+          "autoIncrement": false,
3687
+          "defaultValue": "",
3688
+          "hideInGraph": false,
3689
+          "refDict": "",
3690
+          "extProps": {},
3691
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
3692
+          "id": "EA6F4EA5-1BD9-4919-B756-BA0A4949E625"
3693
+        },
3694
+        {
3695
+          "defKey": "apply_id",
3696
+          "defName": "当前申请ID",
3697
+          "comment": "",
3698
+          "type": "",
3699
+          "len": "",
3700
+          "scale": "",
3701
+          "primaryKey": false,
3702
+          "notNull": false,
3703
+          "autoIncrement": false,
3704
+          "defaultValue": "",
3705
+          "hideInGraph": false,
3706
+          "refDict": "",
3707
+          "extProps": {},
3708
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
3709
+          "id": "D30F4AC2-D4FE-452A-9A75-4821F0F0BA1E"
3710
+        },
3711
+        {
3712
+          "defKey": "validate_status",
3713
+          "defName": "审核状态",
3714
+          "comment": "0未审核,1审核提交,2审核通过,3审核不通过",
3715
+          "type": "",
3716
+          "len": "",
3717
+          "scale": "",
3718
+          "primaryKey": false,
3719
+          "notNull": false,
3720
+          "autoIncrement": false,
3721
+          "defaultValue": "",
3722
+          "hideInGraph": false,
3723
+          "refDict": "",
3724
+          "extProps": {},
3725
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
3726
+          "id": "BB943074-7DA2-4289-8163-8B09341F8C9B"
3727
+        },
3677 3728
         {
3678 3729
           "defKey": "status",
3679 3730
           "defName": "状态",
@@ -7503,7 +7554,7 @@
7503 7554
           "hideInGraph": false,
7504 7555
           "refDict": "",
7505 7556
           "extProps": {},
7506
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
7557
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
7507 7558
           "id": "18A5C4E3-563C-46B6-A12D-FDB002AA0480"
7508 7559
         },
7509 7560
         {
@@ -7554,7 +7605,7 @@
7554 7605
           "hideInGraph": false,
7555 7606
           "refDict": "",
7556 7607
           "extProps": {},
7557
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
7608
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
7558 7609
           "id": "464C7108-433F-42E8-BBE6-BA48AC65FAE6"
7559 7610
         },
7560 7611
         {
@@ -7571,7 +7622,7 @@
7571 7622
           "hideInGraph": false,
7572 7623
           "refDict": "",
7573 7624
           "extProps": {},
7574
-          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
7625
+          "domain": "54611CCC-CA4B-42E1-9F32-4944C85B85A6",
7575 7626
           "id": "0F8DF251-A5D0-48CC-AAD8-D06516BF72DC"
7576 7627
         },
7577 7628
         {
@@ -7858,6 +7909,23 @@
7858 7909
           "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
7859 7910
           "id": "6FD54E7F-E054-403B-83AB-9309AE4B2B72"
7860 7911
         },
7912
+        {
7913
+          "defKey": "result",
7914
+          "defName": "处理结果",
7915
+          "comment": "",
7916
+          "type": "TEXT",
7917
+          "len": 0,
7918
+          "scale": "",
7919
+          "primaryKey": false,
7920
+          "notNull": false,
7921
+          "autoIncrement": false,
7922
+          "defaultValue": "",
7923
+          "hideInGraph": false,
7924
+          "refDict": "",
7925
+          "extProps": {},
7926
+          "domain": "",
7927
+          "id": "A9868395-4BC7-464D-8BA5-07EFEB6CDF6E"
7928
+        },
7861 7929
         {
7862 7930
           "defKey": "status",
7863 7931
           "defName": "状态",
@@ -7912,6 +7980,261 @@
7912 7980
       ],
7913 7981
       "correlations": [],
7914 7982
       "indexes": []
7983
+    },
7984
+    {
7985
+      "id": "430EE745-314D-48CE-A20B-ED2C4D79BC92",
7986
+      "env": {
7987
+        "base": {
7988
+          "nameSpace": "",
7989
+          "codeRoot": ""
7990
+        }
7991
+      },
7992
+      "defKey": "ta_message",
7993
+      "defName": "消息通知",
7994
+      "comment": "",
7995
+      "properties": {},
7996
+      "nameTemplate": "{defKey}[{defName}]",
7997
+      "notes": {},
7998
+      "headers": [
7999
+        {
8000
+          "refKey": "hideInGraph",
8001
+          "hideInGraph": true
8002
+        },
8003
+        {
8004
+          "refKey": "defKey",
8005
+          "hideInGraph": false
8006
+        },
8007
+        {
8008
+          "refKey": "defName",
8009
+          "hideInGraph": false
8010
+        },
8011
+        {
8012
+          "refKey": "primaryKey",
8013
+          "hideInGraph": false
8014
+        },
8015
+        {
8016
+          "refKey": "notNull",
8017
+          "hideInGraph": true
8018
+        },
8019
+        {
8020
+          "refKey": "autoIncrement",
8021
+          "hideInGraph": true
8022
+        },
8023
+        {
8024
+          "refKey": "domain",
8025
+          "hideInGraph": true
8026
+        },
8027
+        {
8028
+          "refKey": "type",
8029
+          "hideInGraph": false
8030
+        },
8031
+        {
8032
+          "refKey": "len",
8033
+          "hideInGraph": false
8034
+        },
8035
+        {
8036
+          "refKey": "scale",
8037
+          "hideInGraph": false
8038
+        },
8039
+        {
8040
+          "refKey": "comment",
8041
+          "hideInGraph": true
8042
+        },
8043
+        {
8044
+          "refKey": "refDict",
8045
+          "hideInGraph": true
8046
+        },
8047
+        {
8048
+          "refKey": "defaultValue",
8049
+          "hideInGraph": true
8050
+        },
8051
+        {
8052
+          "refKey": "isStandard",
8053
+          "hideInGraph": false
8054
+        },
8055
+        {
8056
+          "refKey": "uiHint",
8057
+          "hideInGraph": true
8058
+        },
8059
+        {
8060
+          "refKey": "extProps",
8061
+          "hideInGraph": true
8062
+        }
8063
+      ],
8064
+      "fields": [
8065
+        {
8066
+          "defKey": "id",
8067
+          "defName": "ID",
8068
+          "comment": "",
8069
+          "type": "",
8070
+          "len": "",
8071
+          "scale": "",
8072
+          "primaryKey": true,
8073
+          "notNull": true,
8074
+          "autoIncrement": true,
8075
+          "defaultValue": "",
8076
+          "hideInGraph": true,
8077
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
8078
+          "refDict": "",
8079
+          "uiHint": "",
8080
+          "id": "FC7B9B05-7D57-4818-8266-F8A4D62DB212"
8081
+        },
8082
+        {
8083
+          "defKey": "title",
8084
+          "defName": "消息标题",
8085
+          "comment": "",
8086
+          "type": "",
8087
+          "len": "",
8088
+          "scale": "",
8089
+          "primaryKey": false,
8090
+          "notNull": false,
8091
+          "autoIncrement": false,
8092
+          "defaultValue": "",
8093
+          "hideInGraph": false,
8094
+          "refDict": "",
8095
+          "extProps": {},
8096
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
8097
+          "id": "CBA249ED-8EBD-4352-843D-7F6593CFE0CA"
8098
+        },
8099
+        {
8100
+          "defKey": "content",
8101
+          "defName": "消息内容",
8102
+          "comment": "",
8103
+          "type": "TEXT",
8104
+          "len": 0,
8105
+          "scale": "",
8106
+          "primaryKey": false,
8107
+          "notNull": false,
8108
+          "autoIncrement": false,
8109
+          "defaultValue": "",
8110
+          "hideInGraph": false,
8111
+          "refDict": "",
8112
+          "extProps": {},
8113
+          "domain": "",
8114
+          "id": "C333DA5B-4402-4455-BC1A-156E0F7171CE"
8115
+        },
8116
+        {
8117
+          "defKey": "target_type",
8118
+          "defName": "关联内容",
8119
+          "comment": "",
8120
+          "type": "",
8121
+          "len": "",
8122
+          "scale": "",
8123
+          "primaryKey": false,
8124
+          "notNull": false,
8125
+          "autoIncrement": false,
8126
+          "defaultValue": "",
8127
+          "hideInGraph": false,
8128
+          "refDict": "",
8129
+          "extProps": {},
8130
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
8131
+          "id": "402577E1-743E-42F4-976B-984FEEBAF594"
8132
+        },
8133
+        {
8134
+          "defKey": "target_id",
8135
+          "defName": "关联内容ID",
8136
+          "comment": "",
8137
+          "type": "",
8138
+          "len": "",
8139
+          "scale": "",
8140
+          "primaryKey": false,
8141
+          "notNull": false,
8142
+          "autoIncrement": false,
8143
+          "defaultValue": "",
8144
+          "hideInGraph": false,
8145
+          "refDict": "",
8146
+          "extProps": {},
8147
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8148
+          "id": "D67DAC89-0B94-42B6-AB35-C048092E53BC"
8149
+        },
8150
+        {
8151
+          "defKey": "receive_user",
8152
+          "defName": "接收人员",
8153
+          "comment": "",
8154
+          "type": "",
8155
+          "len": "",
8156
+          "scale": "",
8157
+          "primaryKey": false,
8158
+          "notNull": false,
8159
+          "autoIncrement": false,
8160
+          "defaultValue": "",
8161
+          "hideInGraph": false,
8162
+          "refDict": "",
8163
+          "extProps": {},
8164
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8165
+          "id": "BA7C44C3-6332-4808-B8A1-9CA4A0230B8C"
8166
+        },
8167
+        {
8168
+          "defKey": "org_id",
8169
+          "defName": "机构ID",
8170
+          "comment": "",
8171
+          "type": "",
8172
+          "len": "",
8173
+          "scale": "",
8174
+          "primaryKey": false,
8175
+          "notNull": false,
8176
+          "autoIncrement": false,
8177
+          "defaultValue": "",
8178
+          "hideInGraph": false,
8179
+          "refDict": "",
8180
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8181
+          "id": "FBCA3E18-1ABB-4B48-8370-9A9FB679B5A7",
8182
+          "uiHint": ""
8183
+        },
8184
+        {
8185
+          "defKey": "status",
8186
+          "defName": "状态",
8187
+          "comment": "",
8188
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
8189
+          "type": "",
8190
+          "len": "",
8191
+          "scale": "",
8192
+          "primaryKey": false,
8193
+          "notNull": false,
8194
+          "autoIncrement": false,
8195
+          "defaultValue": "1",
8196
+          "hideInGraph": true,
8197
+          "refDict": "",
8198
+          "uiHint": "",
8199
+          "id": "E1646EEB-D7B3-4C90-91B1-C5D45348549C"
8200
+        },
8201
+        {
8202
+          "defKey": "create_user",
8203
+          "defName": "创建人",
8204
+          "comment": "",
8205
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8206
+          "type": "",
8207
+          "len": "",
8208
+          "scale": "",
8209
+          "primaryKey": false,
8210
+          "notNull": false,
8211
+          "autoIncrement": false,
8212
+          "defaultValue": "",
8213
+          "hideInGraph": true,
8214
+          "refDict": "",
8215
+          "uiHint": "",
8216
+          "id": "210ABBCB-0350-4D79-B4E4-92543A825036"
8217
+        },
8218
+        {
8219
+          "defKey": "create_date",
8220
+          "defName": "创建时间",
8221
+          "comment": "",
8222
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
8223
+          "type": "",
8224
+          "len": "",
8225
+          "scale": "",
8226
+          "primaryKey": false,
8227
+          "notNull": false,
8228
+          "autoIncrement": false,
8229
+          "defaultValue": "CURRENT_TIMESTAMP",
8230
+          "hideInGraph": true,
8231
+          "refDict": "",
8232
+          "uiHint": "",
8233
+          "id": "5BCAB4B5-D041-4F14-8AC8-991595EB1EA5"
8234
+        }
8235
+      ],
8236
+      "correlations": [],
8237
+      "indexes": []
7915 8238
     }
7916 8239
   ],
7917 8240
   "views": [],
@@ -8339,7 +8662,8 @@
8339 8662
         "3B58B8CA-AF26-40FE-907A-A34523419478",
8340 8663
         "B20E272F-91EB-4BAC-AAD6-AF99D517E44D",
8341 8664
         "EF3D4E17-6CE0-4944-B1DC-40280B2B689F",
8342
-        "5BEE62BD-F04C-49E8-A65A-32A11B093E7B"
8665
+        "5BEE62BD-F04C-49E8-A65A-32A11B093E7B",
8666
+        "430EE745-314D-48CE-A20B-ED2C4D79BC92"
8343 8667
       ],
8344 8668
       "refViews": [],
8345 8669
       "refDiagrams": [],

+ 275
- 2
db/文明创办.pdma.json Dosyayı Görüntüle

@@ -4,7 +4,7 @@
4 4
   "avatar": "",
5 5
   "version": "4.2.0",
6 6
   "createdTime": "2022-12-12 09:36:12",
7
-  "updatedTime": "2022-12-30 14:17:55",
7
+  "updatedTime": "2023-1-2 20:52:56",
8 8
   "dbConns": [],
9 9
   "profile": {
10 10
     "default": {
@@ -3708,6 +3708,23 @@
3708 3708
           "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
3709 3709
           "id": "D30F4AC2-D4FE-452A-9A75-4821F0F0BA1E"
3710 3710
         },
3711
+        {
3712
+          "defKey": "validate_status",
3713
+          "defName": "审核状态",
3714
+          "comment": "0未审核,1审核提交,2审核通过,3审核不通过",
3715
+          "type": "",
3716
+          "len": "",
3717
+          "scale": "",
3718
+          "primaryKey": false,
3719
+          "notNull": false,
3720
+          "autoIncrement": false,
3721
+          "defaultValue": "",
3722
+          "hideInGraph": false,
3723
+          "refDict": "",
3724
+          "extProps": {},
3725
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
3726
+          "id": "BB943074-7DA2-4289-8163-8B09341F8C9B"
3727
+        },
3711 3728
         {
3712 3729
           "defKey": "status",
3713 3730
           "defName": "状态",
@@ -7963,6 +7980,261 @@
7963 7980
       ],
7964 7981
       "correlations": [],
7965 7982
       "indexes": []
7983
+    },
7984
+    {
7985
+      "id": "430EE745-314D-48CE-A20B-ED2C4D79BC92",
7986
+      "env": {
7987
+        "base": {
7988
+          "nameSpace": "",
7989
+          "codeRoot": ""
7990
+        }
7991
+      },
7992
+      "defKey": "ta_message",
7993
+      "defName": "消息通知",
7994
+      "comment": "",
7995
+      "properties": {},
7996
+      "nameTemplate": "{defKey}[{defName}]",
7997
+      "notes": {},
7998
+      "headers": [
7999
+        {
8000
+          "refKey": "hideInGraph",
8001
+          "hideInGraph": true
8002
+        },
8003
+        {
8004
+          "refKey": "defKey",
8005
+          "hideInGraph": false
8006
+        },
8007
+        {
8008
+          "refKey": "defName",
8009
+          "hideInGraph": false
8010
+        },
8011
+        {
8012
+          "refKey": "primaryKey",
8013
+          "hideInGraph": false
8014
+        },
8015
+        {
8016
+          "refKey": "notNull",
8017
+          "hideInGraph": true
8018
+        },
8019
+        {
8020
+          "refKey": "autoIncrement",
8021
+          "hideInGraph": true
8022
+        },
8023
+        {
8024
+          "refKey": "domain",
8025
+          "hideInGraph": true
8026
+        },
8027
+        {
8028
+          "refKey": "type",
8029
+          "hideInGraph": false
8030
+        },
8031
+        {
8032
+          "refKey": "len",
8033
+          "hideInGraph": false
8034
+        },
8035
+        {
8036
+          "refKey": "scale",
8037
+          "hideInGraph": false
8038
+        },
8039
+        {
8040
+          "refKey": "comment",
8041
+          "hideInGraph": true
8042
+        },
8043
+        {
8044
+          "refKey": "refDict",
8045
+          "hideInGraph": true
8046
+        },
8047
+        {
8048
+          "refKey": "defaultValue",
8049
+          "hideInGraph": true
8050
+        },
8051
+        {
8052
+          "refKey": "isStandard",
8053
+          "hideInGraph": false
8054
+        },
8055
+        {
8056
+          "refKey": "uiHint",
8057
+          "hideInGraph": true
8058
+        },
8059
+        {
8060
+          "refKey": "extProps",
8061
+          "hideInGraph": true
8062
+        }
8063
+      ],
8064
+      "fields": [
8065
+        {
8066
+          "defKey": "msg_id",
8067
+          "defName": "ID",
8068
+          "comment": "",
8069
+          "type": "",
8070
+          "len": "",
8071
+          "scale": "",
8072
+          "primaryKey": true,
8073
+          "notNull": true,
8074
+          "autoIncrement": true,
8075
+          "defaultValue": "",
8076
+          "hideInGraph": true,
8077
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
8078
+          "refDict": "",
8079
+          "uiHint": "",
8080
+          "id": "FC7B9B05-7D57-4818-8266-F8A4D62DB212"
8081
+        },
8082
+        {
8083
+          "defKey": "title",
8084
+          "defName": "消息标题",
8085
+          "comment": "",
8086
+          "type": "",
8087
+          "len": "",
8088
+          "scale": "",
8089
+          "primaryKey": false,
8090
+          "notNull": false,
8091
+          "autoIncrement": false,
8092
+          "defaultValue": "",
8093
+          "hideInGraph": false,
8094
+          "refDict": "",
8095
+          "extProps": {},
8096
+          "domain": "9092C4E0-1A54-4859-ABBB-5B62DBC27573",
8097
+          "id": "CBA249ED-8EBD-4352-843D-7F6593CFE0CA"
8098
+        },
8099
+        {
8100
+          "defKey": "content",
8101
+          "defName": "消息内容",
8102
+          "comment": "",
8103
+          "type": "TEXT",
8104
+          "len": 0,
8105
+          "scale": "",
8106
+          "primaryKey": false,
8107
+          "notNull": false,
8108
+          "autoIncrement": false,
8109
+          "defaultValue": "",
8110
+          "hideInGraph": false,
8111
+          "refDict": "",
8112
+          "extProps": {},
8113
+          "domain": "",
8114
+          "id": "C333DA5B-4402-4455-BC1A-156E0F7171CE"
8115
+        },
8116
+        {
8117
+          "defKey": "target_type",
8118
+          "defName": "关联内容",
8119
+          "comment": "",
8120
+          "type": "",
8121
+          "len": "",
8122
+          "scale": "",
8123
+          "primaryKey": false,
8124
+          "notNull": false,
8125
+          "autoIncrement": false,
8126
+          "defaultValue": "",
8127
+          "hideInGraph": false,
8128
+          "refDict": "",
8129
+          "extProps": {},
8130
+          "domain": "73FD2BAD-2358-4336-B96D-45DC897BD792",
8131
+          "id": "402577E1-743E-42F4-976B-984FEEBAF594"
8132
+        },
8133
+        {
8134
+          "defKey": "target_id",
8135
+          "defName": "关联内容ID",
8136
+          "comment": "",
8137
+          "type": "",
8138
+          "len": "",
8139
+          "scale": "",
8140
+          "primaryKey": false,
8141
+          "notNull": false,
8142
+          "autoIncrement": false,
8143
+          "defaultValue": "",
8144
+          "hideInGraph": false,
8145
+          "refDict": "",
8146
+          "extProps": {},
8147
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8148
+          "id": "D67DAC89-0B94-42B6-AB35-C048092E53BC"
8149
+        },
8150
+        {
8151
+          "defKey": "receive_user",
8152
+          "defName": "接收人员",
8153
+          "comment": "",
8154
+          "type": "",
8155
+          "len": "",
8156
+          "scale": "",
8157
+          "primaryKey": false,
8158
+          "notNull": false,
8159
+          "autoIncrement": false,
8160
+          "defaultValue": "",
8161
+          "hideInGraph": false,
8162
+          "refDict": "",
8163
+          "extProps": {},
8164
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8165
+          "id": "BA7C44C3-6332-4808-B8A1-9CA4A0230B8C"
8166
+        },
8167
+        {
8168
+          "defKey": "org_id",
8169
+          "defName": "机构ID",
8170
+          "comment": "",
8171
+          "type": "",
8172
+          "len": "",
8173
+          "scale": "",
8174
+          "primaryKey": false,
8175
+          "notNull": false,
8176
+          "autoIncrement": false,
8177
+          "defaultValue": "",
8178
+          "hideInGraph": false,
8179
+          "refDict": "",
8180
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8181
+          "id": "FBCA3E18-1ABB-4B48-8370-9A9FB679B5A7",
8182
+          "uiHint": ""
8183
+        },
8184
+        {
8185
+          "defKey": "status",
8186
+          "defName": "状态",
8187
+          "comment": "",
8188
+          "domain": "6BC8F04B-6CFA-4995-98D3-318F5CDD774E",
8189
+          "type": "",
8190
+          "len": "",
8191
+          "scale": "",
8192
+          "primaryKey": false,
8193
+          "notNull": false,
8194
+          "autoIncrement": false,
8195
+          "defaultValue": "1",
8196
+          "hideInGraph": true,
8197
+          "refDict": "",
8198
+          "uiHint": "",
8199
+          "id": "E1646EEB-D7B3-4C90-91B1-C5D45348549C"
8200
+        },
8201
+        {
8202
+          "defKey": "create_user",
8203
+          "defName": "创建人",
8204
+          "comment": "",
8205
+          "domain": "16120F75-6AA7-4483-868D-F07F511BB081",
8206
+          "type": "",
8207
+          "len": "",
8208
+          "scale": "",
8209
+          "primaryKey": false,
8210
+          "notNull": false,
8211
+          "autoIncrement": false,
8212
+          "defaultValue": "",
8213
+          "hideInGraph": true,
8214
+          "refDict": "",
8215
+          "uiHint": "",
8216
+          "id": "210ABBCB-0350-4D79-B4E4-92543A825036"
8217
+        },
8218
+        {
8219
+          "defKey": "create_date",
8220
+          "defName": "创建时间",
8221
+          "comment": "",
8222
+          "domain": "7CFFA0D3-6A93-4DDC-BC10-DF21211064DC",
8223
+          "type": "",
8224
+          "len": "",
8225
+          "scale": "",
8226
+          "primaryKey": false,
8227
+          "notNull": false,
8228
+          "autoIncrement": false,
8229
+          "defaultValue": "CURRENT_TIMESTAMP",
8230
+          "hideInGraph": true,
8231
+          "refDict": "",
8232
+          "uiHint": "",
8233
+          "id": "5BCAB4B5-D041-4F14-8AC8-991595EB1EA5"
8234
+        }
8235
+      ],
8236
+      "correlations": [],
8237
+      "indexes": []
7966 8238
     }
7967 8239
   ],
7968 8240
   "views": [],
@@ -8390,7 +8662,8 @@
8390 8662
         "3B58B8CA-AF26-40FE-907A-A34523419478",
8391 8663
         "B20E272F-91EB-4BAC-AAD6-AF99D517E44D",
8392 8664
         "EF3D4E17-6CE0-4944-B1DC-40280B2B689F",
8393
-        "5BEE62BD-F04C-49E8-A65A-32A11B093E7B"
8665
+        "5BEE62BD-F04C-49E8-A65A-32A11B093E7B",
8666
+        "430EE745-314D-48CE-A20B-ED2C4D79BC92"
8394 8667
       ],
8395 8668
       "refViews": [],
8396 8669
       "refDiagrams": [],

+ 4
- 0
src/main/java/com/example/civilizedcity/CivilizedCityApplication.java Dosyayı Görüntüle

@@ -2,7 +2,11 @@ package com.example.civilizedcity;
2 2
 
3 3
 import org.springframework.boot.SpringApplication;
4 4
 import org.springframework.boot.autoconfigure.SpringBootApplication;
5
+import org.springframework.scheduling.annotation.EnableAsync;
6
+import org.springframework.transaction.annotation.EnableTransactionManagement;
5 7
 
8
+@EnableAsync
9
+@EnableTransactionManagement
6 10
 @SpringBootApplication
7 11
 public class CivilizedCityApplication {
8 12
 

+ 28
- 0
src/main/java/com/example/civilizedcity/common/Constants.java Dosyayı Görüntüle

@@ -12,6 +12,21 @@ public class Constants {
12 12
     public final static String CHECK_ITEM_LOC = "loc";  // 实例调研
13 13
     public final static String CHECK_ITEM_SURVEY = "survey";  // 问卷调研
14 14
 
15
+
16
+    // 操作员身份
17
+    // 督察员
18
+    public final static String DUTY_INSPECTOR = "inspector";
19
+    // 管理员
20
+    public final static String DUTY_MANAGER = "manager";
21
+    // 单位人员
22
+    public final static String DUTY_ORG_USER = "org_user";
23
+    // 单位管理员
24
+    public final static String DUTY_ORG_MANAGER = "org_manager";
25
+    // 查询员
26
+    public final static String DUTY_QUERY_PERSON = "query_person";
27
+    // 市民
28
+    public final static String DUTY_CITIZEN = "citizen";
29
+
15 30
     // 问题单
16 31
     public final static String ATTACH_SOURCE_ISSUE = "issue";
17 32
     // 单位问题单
@@ -24,6 +39,14 @@ public class Constants {
24 39
     // 模拟测评
25 40
     public final static String ISSUE_SOURCE_CHECK = "check";
26 41
 
42
+    // 提交审核
43
+//    public final static String APPLY_VERIFY = "verify";
44
+    public final static String APPLY_STATUS_PASS = "pass"; // 通过
45
+    public final static String APPLY_STATUS_REJECT = "reject"; // 驳回
46
+    public final static String APPLY_DELAY = "delay"; // 延期申请
47
+    public final static String APPLY_REJECT = "reject"; // 驳回申请
48
+    public final static String APPLY_VERIFY = "verify"; // 审核申请
49
+    public final static String APPLY_END = "end"; // 办结申请
27 50
 
28 51
     // 待处理
29 52
     public final static String PROCESS_STATUS_READY = "ready";
@@ -59,4 +82,9 @@ public class Constants {
59 82
 
60 83
     // 流程结束: 已办结
61 84
     public final static String PROCESS_END = "end";
85
+
86
+    // 问题单
87
+    public final static String MESSAGE_TARGET_ISSUE = "issue";
88
+    // 申请流程
89
+    public final static String MESSAGE_TARGET_APPLY = "apply";
62 90
 }

+ 20
- 0
src/main/java/com/example/civilizedcity/controller/TaIssueApplyController.java Dosyayı Görüntüle

@@ -12,6 +12,7 @@ import java.util.List;
12 12
 
13 13
 import com.example.civilizedcity.common.StringUtils;
14 14
 import com.example.civilizedcity.entity.SysUser;
15
+import com.example.civilizedcity.service.TaIssueService;
15 16
 import io.swagger.annotations.Api;
16 17
 import io.swagger.annotations.ApiOperation;
17 18
 import io.swagger.annotations.ApiParam;
@@ -34,6 +35,9 @@ public class TaIssueApplyController extends BaseController {
34 35
     @Autowired
35 36
     private TaIssueApplyService taIssueApplyService;
36 37
 
38
+    @Autowired
39
+    private TaIssueService taIssueService;
40
+
37 41
     /**
38 42
      * 通过ID查询单条数据
39 43
      *
@@ -125,6 +129,13 @@ public class TaIssueApplyController extends BaseController {
125 129
 
126 130
         SysUser sysUser = currentUser();
127 131
 
132
+//        // 如果是问题单审核
133
+//        if (Constants.APPLY_VERIFY.equals(origin.getApplyType())) {
134
+//            if (StringUtils.isEmpty(taIssueApply.getVerifyDesc()) && Constants.APPLY_STATUS_REJECT.equals(taIssueApply.getVerifyStatus())) {
135
+//                return ResponseBean.error("请填写驳回理由");
136
+//            }
137
+//        }
138
+
128 139
         origin.setVerifyStatus(taIssueApply.getVerifyStatus());
129 140
         origin.setVerifyDesc(taIssueApply.getVerifyDesc());
130 141
         origin.setVerifyOrg(sysUser.getOrgId());
@@ -133,6 +144,15 @@ public class TaIssueApplyController extends BaseController {
133 144
         origin.setVerifyDate(LocalDateTime.now());
134 145
 
135 146
         taIssueApplyService.updateById(origin);
147
+
148
+        // 清空当前申请 - 表示申请流程已走完
149
+        taIssueService.updateApply(taIssueApply.getIssueId(), null, null);
150
+
151
+//        if (Constants.APPLY_VERIFY.equals(origin.getApplyType())) {
152
+//            int validateStatus = Constants.APPLY_STATUS_REJECT.equals(taIssueApply.getVerifyStatus()) ? Constants.VERIFY_REJECT : Constants.VERIFY_PASS;
153
+//            taIssueService.updateValidateStatus(taIssueApply.getIssueId(), validateStatus);
154
+//        }
155
+
136 156
         return ResponseBean.success(origin);
137 157
     }
138 158
 

+ 37
- 3
src/main/java/com/example/civilizedcity/controller/TaIssueController.java Dosyayı Görüntüle

@@ -16,11 +16,13 @@ import java.util.List;
16 16
 import com.example.civilizedcity.entity.SysUser;
17 17
 import com.example.civilizedcity.entity.TaAttach;
18 18
 import com.example.civilizedcity.entity.TaIssueProcess;
19
+import com.example.civilizedcity.service.SysUserDutyService;
19 20
 import com.example.civilizedcity.service.TaAttachService;
20 21
 import com.example.civilizedcity.service.TaIssueProcessService;
21 22
 import io.swagger.annotations.Api;
22 23
 import io.swagger.annotations.ApiOperation;
23 24
 import io.swagger.annotations.ApiParam;
25
+import io.swagger.models.auth.In;
24 26
 import org.springframework.beans.factory.annotation.Autowired;
25 27
 import org.springframework.web.bind.annotation.*;
26 28
 import com.example.civilizedcity.entity.TaIssue;
@@ -46,6 +48,9 @@ public class TaIssueController extends BaseController {
46 48
     @Autowired
47 49
     private TaIssueProcessService taIssueProcessService;
48 50
 
51
+    @Autowired
52
+    private SysUserDutyService sysUserDutyService;
53
+
49 54
     /**
50 55
      * 通过ID查询单条数据
51 56
      *
@@ -75,12 +80,28 @@ public class TaIssueController extends BaseController {
75 80
     public ResponseBean list(@ApiParam("页码") @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
76 81
                              @ApiParam("单页数据量") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
77 82
                              @ApiParam("问题单状态") @RequestParam(value = "bizStatus", required = false) String bizStatus,
78
-                             @ApiParam("来源") @RequestParam(value = "sourceType", required = false) String sourceType,
79
-                             @ApiParam("我的") @RequestParam(value = "mine", defaultValue = "false") Boolean mine) throws Exception {
83
+                             @ApiParam("来源") @RequestParam(value = "sourceType", required = false) String sourceType) throws Exception {
80 84
 
81 85
         SysUser sysUser = currentUser();
82 86
         String orgId = Constants.ROOT_ORG.equals(sysUser.getOrgId()) ? null : sysUser.getOrgId();
83 87
 
88
+        List<String> dutyList = sysUserDutyService.getListByUser(sysUser.getUserId());
89
+        if (dutyList == null || dutyList.size() < 1) {
90
+            return ResponseBean.error("暂无权限查询数据");
91
+        }
92
+
93
+        Boolean mine = false;
94
+        Integer validateStatus = null;
95
+        if (dutyList.contains(Constants.DUTY_INSPECTOR)) {
96
+            mine = true;
97
+        } else if (dutyList.contains(Constants.DUTY_MANAGER)) {
98
+            mine = true;
99
+            validateStatus = 0;
100
+        } else {
101
+            return ResponseBean.error("暂无权限查询数据");
102
+        }
103
+
104
+
84 105
         IPage<TaIssue> pg = new Page<>(pageNum, pageSize);
85 106
         QueryWrapper<TaIssue> queryWrapper = new QueryWrapper<>();
86 107
 
@@ -103,9 +124,17 @@ public class TaIssueController extends BaseController {
103 124
             queryWrapper.eq("process_status", Constants.PROCESS_STATUS_REJECT);
104 125
         }
105 126
 
127
+        if (mine && null != validateStatus) {
128
+            Integer vst = validateStatus;
129
+            queryWrapper.nested(q -> q.eq("create_user", sysUser.getUserId()).or().gt("validate_status", vst));
130
+        } else if (mine) {
131
+            queryWrapper.eq(mine, "create_user", sysUser.getUserId());
132
+        } else if (null != validateStatus) {
133
+            queryWrapper.gt(null != validateStatus, "validate_status", validateStatus);
134
+        }
135
+
106 136
         queryWrapper.eq(Constants.ISSUE_SOURCE_FEEDBACK.equals(sourceType), "source_type", "feedback");
107 137
         queryWrapper.ne(Constants.ISSUE_SOURCE_INSPECTOR.equals(sourceType), "source_type", "feedback");
108
-        queryWrapper.eq(mine, "create_user", sysUser.getUserId());
109 138
         queryWrapper.gt("status", Constants.STATUS_DELETE);
110 139
         queryWrapper.orderByDesc("create_date");
111 140
         IPage<TaIssue> result = taIssueService.page(pg, queryWrapper);
@@ -186,6 +215,11 @@ public class TaIssueController extends BaseController {
186 215
             return ResponseBean.error("拍照或者视频没有上传");
187 216
         }
188 217
 
218
+        // 清空负状态
219
+        if (Constants.PROCESS_STATUS_REJECT.equals(origin.getProcessStatus())) {
220
+            taIssue.setProcessStatus(Constants.PROCESS_STATUS_READY);
221
+        }
222
+
189 223
         taIssue.setIssueId(id);
190 224
         taIssueService.updateById(taIssue);
191 225
 

+ 335
- 321
src/main/java/com/example/civilizedcity/controller/TaIssueProcessController.java Dosyayı Görüntüle

@@ -11,17 +11,21 @@ import java.util.List;
11 11
 
12 12
 import com.example.civilizedcity.entity.SysUser;
13 13
 import com.example.civilizedcity.entity.TaIssue;
14
+import com.example.civilizedcity.event.MessagEvent;
14 15
 import com.example.civilizedcity.service.TaIssueService;
16
+import com.example.civilizedcity.service.TaOrgIssueService;
15 17
 import io.swagger.annotations.Api;
16 18
 import io.swagger.annotations.ApiOperation;
17 19
 import io.swagger.annotations.ApiParam;
18 20
 import org.springframework.beans.factory.annotation.Autowired;
21
+import org.springframework.context.ApplicationEventPublisher;
19 22
 import org.springframework.web.bind.annotation.*;
20 23
 import com.example.civilizedcity.entity.TaIssueProcess;
21 24
 import com.example.civilizedcity.service.TaIssueProcessService;
22 25
 
23
- /**
26
+/**
24 27
  * 问题处理;(ta_issue_process)表控制层
28
+ *
25 29
  * @author : http://njyunzhi.com
26 30
  * @date : 2022-12-12
27 31
  */
@@ -29,15 +33,21 @@ import com.example.civilizedcity.service.TaIssueProcessService;
29 33
 @RestController
30 34
 @RequestMapping("/")
31 35
 public class TaIssueProcessController extends BaseController {
32
-    
36
+
33 37
     @Autowired
34 38
     private TaIssueProcessService taIssueProcessService;
35 39
 
36 40
     @Autowired
37 41
     private TaIssueService taIssueService;
38
-    
39
-    /** 
40
-     * 通过ID查询单条数据 
42
+
43
+    @Autowired
44
+    private TaOrgIssueService taOrgIssueService;
45
+
46
+    @Autowired
47
+    ApplicationEventPublisher applicationEventPublisher;
48
+
49
+    /**
50
+     * 通过ID查询单条数据
41 51
      *
42 52
      * @param processId 主键
43 53
      * @return 实例对象
@@ -47,24 +57,26 @@ public class TaIssueProcessController extends BaseController {
47 57
     public ResponseBean queryById(@ApiParam("对象ID") @PathVariable Integer id) throws Exception {
48 58
         return ResponseBean.success(taIssueProcessService.getById(id));
49 59
     }
50
-    
51
-    /** 
60
+
61
+    /**
52 62
      * 分页查询
53 63
      *
54
-     * @param pageNum 当前页码
64
+     * @param pageNum  当前页码
55 65
      * @param pageSize 每页条数
56 66
      * @return 查询结果
57 67
      */
58 68
     @ApiOperation("分页查询")
59 69
     @GetMapping("/taIssueProcess")
60
-    public ResponseBean list(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
61
-                            @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception {
62
-        
70
+    public ResponseBean list(@ApiParam("页码") @RequestParam(value = "pageNum", defaultValue = "1") Integer pageNum,
71
+                             @ApiParam("单页数据量") @RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
72
+                             @ApiParam("问题单ID") @RequestParam(value = "issueId") Integer issueId) throws Exception {
73
+
63 74
         IPage<TaIssueProcess> pg = new Page<>(pageNum, pageSize);
64
-        // QueryWrapper<TaIssueProcess> queryWrapper = new QueryWrapper<>();
65
-        // queryWrapper.orderByDesc("create_date");
66
-        IPage<TaIssueProcess> result = taIssueProcessService.page(pg);
67
-        
75
+        QueryWrapper<TaIssueProcess> queryWrapper = new QueryWrapper<>();
76
+        queryWrapper.eq("issue_id", issueId);
77
+        queryWrapper.orderByDesc("create_date");
78
+        IPage<TaIssueProcess> result = taIssueProcessService.page(pg, queryWrapper);
79
+
68 80
         return ResponseBean.success(result);
69 81
     }
70 82
 
@@ -82,10 +94,6 @@ public class TaIssueProcessController extends BaseController {
82 94
             throw new Exception("当前问题已办结");
83 95
         }
84 96
 
85
-        if (Constants.ISSUE_SOURCE_CHECK.equals(taIssue.getSourceType())) {
86
-            throw new Exception("模拟测评问题不需要审核");
87
-        }
88
-
89 97
         return taIssue;
90 98
     }
91 99
 
@@ -102,17 +110,246 @@ public class TaIssueProcessController extends BaseController {
102 110
         taIssue.setProcessStatus(taIssueProcess.getProcessStatus());
103 111
         taIssueService.updateById(taIssue);
104 112
     }
105
-    
113
+
114
+//    /**
115
+//     * 审核
116
+//     *
117
+//     * @param taIssueProcess 实例对象
118
+//     * @return 实例对象
119
+//     */
120
+//    @SaCheckPermission("manager")
121
+//    @ApiOperation("审核")
122
+//    @PostMapping("/taIssueProcess/verify")
123
+//    public ResponseBean verify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
124
+//        TaIssue taIssue = checkIssue(taIssueProcess);
125
+//
126
+//        if (StringUtils.isEmpty(taIssueProcess.getProcessStatus())) {
127
+//            return ResponseBean.error("请设置审批是否通过");
128
+//        }
129
+//
130
+//        if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
131
+//            // 审核未通过
132
+//            if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
133
+//                return ResponseBean.error("请填写未通过原因");
134
+//            }
135
+//        }
136
+//
137
+//        updateUser(taIssueProcess, currentUser());
138
+//        taIssueProcess.setProcessNode(Constants.PROCESS_VERIFY);
139
+//        taIssueProcessService.save(taIssueProcess);
140
+//
141
+//        updateIssue(taIssue, taIssueProcess);
142
+//
143
+//        return ResponseBean.success(taIssueProcess);
144
+//    }
145
+
146
+    /**
147
+     * 交办
148
+     *
149
+     * @param taIssueProcess 实例对象
150
+     * @return 实例对象
151
+     */
152
+    @SaCheckPermission("manager")
153
+    @ApiOperation("交办")
154
+    @PostMapping("/taIssueProcess/assigned")
155
+    public ResponseBean assigned(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
156
+        TaIssue taIssue = checkIssue(taIssueProcess);
157
+
158
+        if (StringUtils.isEmpty(taIssueProcess.getOrgId())) {
159
+            return ResponseBean.error("请指定交办单位");
160
+        }
161
+        if (StringUtils.isEmpty(taIssueProcess.getExpireDate())) {
162
+            return ResponseBean.error("请设置截止日期");
163
+        } else {
164
+            if (DateUtils.isAfter(taIssueProcess.getExpireDate() + " 23:59:59")) {
165
+                return ResponseBean.error("请设置有效的截止日期");
166
+            }
167
+
168
+            taIssue.setExpireDate(taIssueProcess.getExpireDate());
169
+        }
170
+
171
+        SysUser sysUser = currentUser();
172
+
173
+        updateUser(taIssueProcess, sysUser);
174
+        taIssueProcess.setProcessNode(Constants.PROCESS_ASSIGNED);
175
+        taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
176
+        taIssueProcessService.save(taIssueProcess);
177
+
178
+        updateIssue(taIssue, taIssueProcess);
179
+
180
+        taOrgIssueService.createNewIssue(taIssue, taIssueProcess, sysUser);
181
+
182
+        return ResponseBean.success(taIssueProcess);
183
+    }
184
+
185
+    /**
186
+     * 驳回
187
+     *
188
+     * @param taIssueProcess 实例对象
189
+     * @return 实例对象
190
+     */
191
+    @SaCheckPermission("org_user")
192
+    @ApiOperation("驳回")
193
+    @PostMapping("/taIssueProcess/reject")
194
+    public ResponseBean reject(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
195
+        TaIssue taIssue = checkIssue(taIssueProcess);
196
+
197
+        if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
198
+            return ResponseBean.error("请填写未驳回原因");
199
+        }
200
+
201
+        updateUser(taIssueProcess, currentUser());
202
+        taIssueProcess.setProcessNode(Constants.PROCESS_START);
203
+        taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_REJECT);
204
+        taIssueProcessService.save(taIssueProcess);
205
+
206
+        updateIssue(taIssue, taIssueProcess);
207
+
208
+        // 发送消息
209
+        applicationEventPublisher.publishEvent(new MessagEvent(this, taIssue));
210
+        return ResponseBean.success(taIssueProcess);
211
+    }
212
+
213
+    /**
214
+     * 单位驳回
215
+     *
216
+     * @param taIssueProcess 实例对象
217
+     * @return 实例对象
218
+     */
219
+    @SaCheckPermission("org_user")
220
+    @ApiOperation("单位驳回")
221
+    @PostMapping("/taIssueProcess/org/reject")
222
+    public ResponseBean orgReject(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
223
+        TaIssue taIssue = checkIssue(taIssueProcess);
224
+
225
+        TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
226
+        if (null == prevProcess) {
227
+            return ResponseBean.error("未找到上级流程");
228
+        }
229
+
230
+        if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
231
+            return ResponseBean.error("请填写未驳回原因");
232
+        }
233
+
234
+        updateUser(taIssueProcess, currentUser());
235
+        taIssueProcess.setNextOrg(prevProcess.getOrgId());
236
+        taIssueProcess.setProcessNode(Constants.PROCESS_ASSIGNED);
237
+        taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_REJECT);
238
+        taIssueProcessService.save(taIssueProcess);
239
+
240
+        updateIssue(taIssue, taIssueProcess);
241
+
242
+        return ResponseBean.success(taIssueProcess);
243
+    }
244
+
245
+    /**
246
+     * 延期申请
247
+     *
248
+     * @param taIssueProcess 实例对象
249
+     * @return 实例对象
250
+     */
251
+    @SaCheckPermission("org_user")
252
+    @ApiOperation("延期申请")
253
+    @PostMapping("/taIssueProcess/org/delay/apply")
254
+    public ResponseBean delayApply(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
255
+        TaIssue taIssue = checkIssue(taIssueProcess);
256
+
257
+        if (StringUtils.isEmpty(taIssueProcess.getExpireDate())) {
258
+            return ResponseBean.error("请设置延期日期");
259
+        } else {
260
+            if (DateUtils.isAfter(taIssueProcess.getExpireDate() + " 23:59:59")) {
261
+                return ResponseBean.error("请设置有效的延期日期");
262
+            }
263
+        }
264
+
265
+        TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
266
+        if (null == prevProcess) {
267
+            return ResponseBean.error("未找到上级流程");
268
+        }
269
+
270
+        updateUser(taIssueProcess, currentUser());
271
+        taIssueProcess.setNextOrg(prevProcess.getOrgId());
272
+        taIssueProcess.setProcessNode(Constants.PROCESS_ORG_DELAY_APPLY);
273
+        taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
274
+        taIssueProcessService.save(taIssueProcess);
275
+
276
+        updateIssue(taIssue, taIssueProcess);
277
+
278
+        return ResponseBean.success(taIssueProcess);
279
+    }
280
+
106 281
     /**
107
-     * 审核
282
+     * 延期审核
108 283
      *
109 284
      * @param taIssueProcess 实例对象
110 285
      * @return 实例对象
111 286
      */
112 287
     @SaCheckPermission("manager")
113
-    @ApiOperation("审核")
114
-    @PostMapping("/taIssueProcess/verify")
115
-    public ResponseBean verify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
288
+    @ApiOperation("延期审核")
289
+    @PostMapping("/taIssueProcess/delay/verify")
290
+    public ResponseBean delayVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
291
+        TaIssue taIssue = checkIssue(taIssueProcess);
292
+
293
+        TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
294
+        if (null == prevProcess) {
295
+            return ResponseBean.error("未找到上级流程");
296
+        }
297
+
298
+        if (!Constants.PROCESS_ORG_DELAY_APPLY.equals(prevProcess.getProcessNode())) {
299
+            return ResponseBean.error("上级流程验证不正确");
300
+        }
301
+
302
+        if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
303
+            // 审核未通过
304
+            if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
305
+                return ResponseBean.error("请填写未通过原因");
306
+            }
307
+        } else {
308
+            taIssue.setExpireDate(prevProcess.getExpireDate());
309
+        }
310
+
311
+        updateUser(taIssueProcess, currentUser());
312
+        taIssueProcess.setNextOrg(prevProcess.getOrgId());
313
+        taIssueProcess.setProcessNode(Constants.PROCESS_DELAY_VERIFY);
314
+        taIssueProcessService.save(taIssueProcess);
315
+
316
+        updateIssue(taIssue, taIssueProcess);
317
+
318
+        return ResponseBean.success(taIssueProcess);
319
+    }
320
+
321
+    /**
322
+     * 单位交办
323
+     *
324
+     * @param taIssueProcess 实例对象
325
+     * @return 实例对象
326
+     */
327
+    @SaCheckPermission("org_user")
328
+    @ApiOperation("单位交办")
329
+    @PostMapping("/taIssueProcess/org/assigned")
330
+    public ResponseBean orgAssigned(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
331
+        TaIssue taIssue = checkIssue(taIssueProcess);
332
+
333
+        updateUser(taIssueProcess, currentUser());
334
+        taIssueProcess.setProcessNode(Constants.PROCESS_ORG_ASSIGNED);
335
+        taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
336
+        taIssueProcessService.save(taIssueProcess);
337
+
338
+        updateIssue(taIssue, taIssueProcess);
339
+
340
+        return ResponseBean.success(taIssueProcess);
341
+    }
342
+
343
+    /**
344
+     * 单位审核
345
+     *
346
+     * @param taIssueProcess 实例对象
347
+     * @return 实例对象
348
+     */
349
+    @SaCheckPermission("org_manager")
350
+    @ApiOperation("单位审核")
351
+    @PostMapping("/taIssueProcess/org/verify")
352
+    public ResponseBean orgVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
116 353
         TaIssue taIssue = checkIssue(taIssueProcess);
117 354
 
118 355
         if (StringUtils.isEmpty(taIssueProcess.getProcessStatus())) {
@@ -127,7 +364,7 @@ public class TaIssueProcessController extends BaseController {
127 364
         }
128 365
 
129 366
         updateUser(taIssueProcess, currentUser());
130
-        taIssueProcess.setProcessNode(Constants.PROCESS_VERIFY);
367
+        taIssueProcess.setProcessNode(Constants.PROCESS_ORG_VERIFY);
131 368
         taIssueProcessService.save(taIssueProcess);
132 369
 
133 370
         updateIssue(taIssue, taIssueProcess);
@@ -135,301 +372,78 @@ public class TaIssueProcessController extends BaseController {
135 372
         return ResponseBean.success(taIssueProcess);
136 373
     }
137 374
 
138
-     /**
139
-      * 交办
140
-      *
141
-      * @param taIssueProcess 实例对象
142
-      * @return 实例对象
143
-      */
144
-     @SaCheckPermission("manager")
145
-     @ApiOperation("交办")
146
-     @PostMapping("/taIssueProcess/assigned")
147
-     public ResponseBean assigned(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
148
-         TaIssue taIssue = checkIssue(taIssueProcess);
149
-
150
-         if (StringUtils.isEmpty(taIssueProcess.getNextOrg())) {
151
-             return ResponseBean.error("请指定责任单位");
152
-         }
153
-         if (StringUtils.isEmpty(taIssueProcess.getExpireDate())) {
154
-             return ResponseBean.error("请设置截止日期");
155
-         } else {
156
-             if (DateUtils.isAfter(taIssueProcess.getExpireDate() + " 23:59:59")) {
157
-                 return ResponseBean.error("请设置有效的截止日期");
158
-             }
159
-
160
-             taIssue.setExpireDate(taIssueProcess.getExpireDate());
161
-         }
162
-
163
-         updateUser(taIssueProcess, currentUser());
164
-         taIssueProcess.setProcessNode(Constants.PROCESS_ASSIGNED);
165
-         taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
166
-         taIssueProcessService.save(taIssueProcess);
167
-
168
-         updateIssue(taIssue, taIssueProcess);
169
-
170
-         return ResponseBean.success(taIssueProcess);
171
-     }
172
-
173
-     /**
174
-      * 驳回
175
-      *
176
-      * @param taIssueProcess 实例对象
177
-      * @return 实例对象
178
-      */
179
-     @SaCheckPermission("org_user")
180
-     @ApiOperation("驳回")
181
-     @PostMapping("/taIssueProcess/reject")
182
-     public ResponseBean reject(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
183
-         TaIssue taIssue = checkIssue(taIssueProcess);
184
-
185
-         if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
186
-             return ResponseBean.error("请填写未驳回原因");
187
-         }
188
-
189
-         updateUser(taIssueProcess, currentUser());
190
-         taIssueProcess.setProcessNode(Constants.PROCESS_ASSIGNED);
191
-         taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_REJECT);
192
-         taIssueProcessService.save(taIssueProcess);
193
-
194
-         updateIssue(taIssue, taIssueProcess);
195
-
196
-         return ResponseBean.success(taIssueProcess);
197
-     }
198
-
199
-     /**
200
-      * 单位驳回
201
-      *
202
-      * @param taIssueProcess 实例对象
203
-      * @return 实例对象
204
-      */
205
-     @SaCheckPermission("org_user")
206
-     @ApiOperation("单位驳回")
207
-     @PostMapping("/taIssueProcess/org/reject")
208
-     public ResponseBean orgReject(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
209
-         TaIssue taIssue = checkIssue(taIssueProcess);
210
-
211
-         TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
212
-         if (null == prevProcess) {
213
-             return ResponseBean.error("未找到上级流程");
214
-         }
215
-
216
-         if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
217
-             return ResponseBean.error("请填写未驳回原因");
218
-         }
219
-
220
-         updateUser(taIssueProcess, currentUser());
221
-         taIssueProcess.setNextOrg(prevProcess.getOrgId());
222
-         taIssueProcess.setProcessNode(Constants.PROCESS_ASSIGNED);
223
-         taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_REJECT);
224
-         taIssueProcessService.save(taIssueProcess);
225
-
226
-         updateIssue(taIssue, taIssueProcess);
227
-
228
-         return ResponseBean.success(taIssueProcess);
229
-     }
230
-
231
-     /**
232
-      * 延期申请
233
-      *
234
-      * @param taIssueProcess 实例对象
235
-      * @return 实例对象
236
-      */
237
-     @SaCheckPermission("org_user")
238
-     @ApiOperation("延期申请")
239
-     @PostMapping("/taIssueProcess/org/delay/apply")
240
-     public ResponseBean delayApply(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
241
-         TaIssue taIssue = checkIssue(taIssueProcess);
242
-
243
-         if (StringUtils.isEmpty(taIssueProcess.getExpireDate())) {
244
-             return ResponseBean.error("请设置延期日期");
245
-         } else {
246
-             if (DateUtils.isAfter(taIssueProcess.getExpireDate() + " 23:59:59")) {
247
-                 return ResponseBean.error("请设置有效的延期日期");
248
-             }
249
-         }
250
-
251
-         TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
252
-         if (null == prevProcess) {
253
-             return ResponseBean.error("未找到上级流程");
254
-         }
255
-
256
-         updateUser(taIssueProcess, currentUser());
257
-         taIssueProcess.setNextOrg(prevProcess.getOrgId());
258
-         taIssueProcess.setProcessNode(Constants.PROCESS_ORG_DELAY_APPLY);
259
-         taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
260
-         taIssueProcessService.save(taIssueProcess);
261
-
262
-         updateIssue(taIssue, taIssueProcess);
263
-
264
-         return ResponseBean.success(taIssueProcess);
265
-     }
266
-
267
-     /**
268
-      * 延期审核
269
-      *
270
-      * @param taIssueProcess 实例对象
271
-      * @return 实例对象
272
-      */
273
-     @SaCheckPermission("manager")
274
-     @ApiOperation("延期审核")
275
-     @PostMapping("/taIssueProcess/delay/verify")
276
-     public ResponseBean delayVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
277
-         TaIssue taIssue = checkIssue(taIssueProcess);
278
-
279
-         TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
280
-         if (null == prevProcess) {
281
-             return ResponseBean.error("未找到上级流程");
282
-         }
283
-
284
-         if (!Constants.PROCESS_ORG_DELAY_APPLY.equals(prevProcess.getProcessNode())) {
285
-             return ResponseBean.error("上级流程验证不正确");
286
-         }
287
-
288
-         if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
289
-             // 审核未通过
290
-             if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
291
-                 return ResponseBean.error("请填写未通过原因");
292
-             }
293
-         } else {
294
-             taIssue.setExpireDate(prevProcess.getExpireDate());
295
-         }
296
-
297
-         updateUser(taIssueProcess, currentUser());
298
-         taIssueProcess.setNextOrg(prevProcess.getOrgId());
299
-         taIssueProcess.setProcessNode(Constants.PROCESS_DELAY_VERIFY);
300
-         taIssueProcessService.save(taIssueProcess);
301
-
302
-         updateIssue(taIssue, taIssueProcess);
303
-
304
-         return ResponseBean.success(taIssueProcess);
305
-     }
306
-
307
-     /**
308
-      * 单位交办
309
-      *
310
-      * @param taIssueProcess 实例对象
311
-      * @return 实例对象
312
-      */
313
-     @SaCheckPermission("org_user")
314
-     @ApiOperation("单位交办")
315
-     @PostMapping("/taIssueProcess/org/assigned")
316
-     public ResponseBean orgAssigned(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
317
-         TaIssue taIssue = checkIssue(taIssueProcess);
318
-
319
-         updateUser(taIssueProcess, currentUser());
320
-         taIssueProcess.setProcessNode(Constants.PROCESS_ORG_ASSIGNED);
321
-         taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
322
-         taIssueProcessService.save(taIssueProcess);
323
-
324
-         updateIssue(taIssue, taIssueProcess);
325
-
326
-         return ResponseBean.success(taIssueProcess);
327
-     }
328
-
329
-     /**
330
-      * 单位审核
331
-      *
332
-      * @param taIssueProcess 实例对象
333
-      * @return 实例对象
334
-      */
335
-     @SaCheckPermission("org_manager")
336
-     @ApiOperation("单位审核")
337
-     @PostMapping("/taIssueProcess/org/verify")
338
-     public ResponseBean orgVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
339
-         TaIssue taIssue = checkIssue(taIssueProcess);
340
-
341
-         if (StringUtils.isEmpty(taIssueProcess.getProcessStatus())) {
342
-             return ResponseBean.error("请设置审批是否通过");
343
-         }
344
-
345
-         if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
346
-             // 审核未通过
347
-             if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
348
-                 return ResponseBean.error("请填写未通过原因");
349
-             }
350
-         }
351
-
352
-         updateUser(taIssueProcess, currentUser());
353
-         taIssueProcess.setProcessNode(Constants.PROCESS_ORG_VERIFY);
354
-         taIssueProcessService.save(taIssueProcess);
355
-
356
-         updateIssue(taIssue, taIssueProcess);
357
-
358
-         return ResponseBean.success(taIssueProcess);
359
-     }
360
-
361
-     /**
362
-      * 办结申请
363
-      *
364
-      * @param taIssueProcess 实例对象
365
-      * @return 实例对象
366
-      */
367
-     @SaCheckPermission("org_user")
368
-     @ApiOperation("办结申请")
369
-     @PostMapping("/taIssueProcess/org/finish/apply")
370
-     public ResponseBean finishApply(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
371
-         TaIssue taIssue = checkIssue(taIssueProcess);
372
-
373
-         updateUser(taIssueProcess, currentUser());
374
-         taIssueProcess.setNextOrg(Constants.ROOT_ORG);
375
-         taIssueProcess.setProcessNode(Constants.PROCESS_ORG_FINISH_APPLY);
376
-         taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
377
-         taIssueProcessService.save(taIssueProcess);
378
-
379
-         updateIssue(taIssue, taIssueProcess);
380
-
381
-         return ResponseBean.success(taIssueProcess);
382
-     }
383
-
384
-
385
-     /**
386
-      * 办结审核
387
-      *
388
-      * @param taIssueProcess 实例对象
389
-      * @return 实例对象
390
-      */
391
-     @SaCheckPermission("manager")
392
-     @ApiOperation("办结审核")
393
-     @PostMapping("/taIssueProcess/finish/verify")
394
-     public ResponseBean finishVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
395
-         TaIssue taIssue = checkIssue(taIssueProcess);
396
-
397
-         TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
398
-         if (null == prevProcess) {
399
-             return ResponseBean.error("未找到上级流程");
400
-         }
401
-
402
-         if (!Constants.PROCESS_ORG_FINISH_APPLY.equals(prevProcess.getProcessNode())) {
403
-             return ResponseBean.error("上级流程验证不正确");
404
-         }
405
-
406
-         if (StringUtils.isEmpty(taIssueProcess.getProcessStatus())) {
407
-             return ResponseBean.error("请设置审批是否通过");
408
-         }
409
-
410
-         if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
411
-             // 审核未通过
412
-             if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
413
-                 return ResponseBean.error("请填写未通过原因");
414
-             }
415
-             taIssueProcess.setNextOrg(prevProcess.getOrgId());
416
-             taIssueProcess.setProcessNode(Constants.PROCESS_FINISH_VERIFY);
417
-         } else {
418
-             // 审核通过, 说明整个流程结束
419
-             taIssue.setProcessNode(Constants.PROCESS_END);
420
-             taIssue.setProcessStatus(Constants.PROCESS_STATUS_PASS);
421
-         }
422
-
423
-         updateUser(taIssueProcess, currentUser());
424
-         taIssueProcessService.save(taIssueProcess);
425
-
426
-         taIssue.setOrgId(taIssueProcess.getOrgId());
427
-         taIssueService.updateById(taIssue);
428
-
429
-         return ResponseBean.success(taIssueProcess);
430
-     }
431
-    
432
-    /** 
375
+    /**
376
+     * 办结申请
377
+     *
378
+     * @param taIssueProcess 实例对象
379
+     * @return 实例对象
380
+     */
381
+    @SaCheckPermission("org_user")
382
+    @ApiOperation("办结申请")
383
+    @PostMapping("/taIssueProcess/org/finish/apply")
384
+    public ResponseBean finishApply(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
385
+        TaIssue taIssue = checkIssue(taIssueProcess);
386
+
387
+        updateUser(taIssueProcess, currentUser());
388
+        taIssueProcess.setNextOrg(Constants.ROOT_ORG);
389
+        taIssueProcess.setProcessNode(Constants.PROCESS_ORG_FINISH_APPLY);
390
+        taIssueProcess.setProcessStatus(Constants.PROCESS_STATUS_READY);
391
+        taIssueProcessService.save(taIssueProcess);
392
+
393
+        updateIssue(taIssue, taIssueProcess);
394
+
395
+        return ResponseBean.success(taIssueProcess);
396
+    }
397
+
398
+
399
+    /**
400
+     * 办结审核
401
+     *
402
+     * @param taIssueProcess 实例对象
403
+     * @return 实例对象
404
+     */
405
+    @SaCheckPermission("manager")
406
+    @ApiOperation("办结审核")
407
+    @PostMapping("/taIssueProcess/finish/verify")
408
+    public ResponseBean finishVerify(@ApiParam("对象实体") @RequestBody TaIssueProcess taIssueProcess) throws Exception {
409
+        TaIssue taIssue = checkIssue(taIssueProcess);
410
+
411
+        TaIssueProcess prevProcess = taIssueProcessService.getById(taIssueProcess.getPrevProcess());
412
+        if (null == prevProcess) {
413
+            return ResponseBean.error("未找到上级流程");
414
+        }
415
+
416
+        if (!Constants.PROCESS_ORG_FINISH_APPLY.equals(prevProcess.getProcessNode())) {
417
+            return ResponseBean.error("上级流程验证不正确");
418
+        }
419
+
420
+        if (StringUtils.isEmpty(taIssueProcess.getProcessStatus())) {
421
+            return ResponseBean.error("请设置审批是否通过");
422
+        }
423
+
424
+        if (Constants.PROCESS_STATUS_REJECT.equals(taIssueProcess.getProcessStatus())) {
425
+            // 审核未通过
426
+            if (StringUtils.isEmpty(taIssueProcess.getProcessResult())) {
427
+                return ResponseBean.error("请填写未通过原因");
428
+            }
429
+            taIssueProcess.setNextOrg(prevProcess.getOrgId());
430
+            taIssueProcess.setProcessNode(Constants.PROCESS_FINISH_VERIFY);
431
+        } else {
432
+            // 审核通过, 说明整个流程结束
433
+            taIssue.setProcessNode(Constants.PROCESS_END);
434
+            taIssue.setProcessStatus(Constants.PROCESS_STATUS_PASS);
435
+        }
436
+
437
+        updateUser(taIssueProcess, currentUser());
438
+        taIssueProcessService.save(taIssueProcess);
439
+
440
+        taIssue.setOrgId(taIssueProcess.getOrgId());
441
+        taIssueService.updateById(taIssue);
442
+
443
+        return ResponseBean.success(taIssueProcess);
444
+    }
445
+
446
+    /**
433 447
      * 通过主键删除数据
434 448
      *
435 449
      * @param processId 主键
@@ -437,7 +451,7 @@ public class TaIssueProcessController extends BaseController {
437 451
      */
438 452
     @ApiOperation("通过主键删除数据")
439 453
     @DeleteMapping("/taIssueProcess/{id}")
440
-    public ResponseBean deleteById(@ApiParam("对象ID") @PathVariable Integer id){
454
+    public ResponseBean deleteById(@ApiParam("对象ID") @PathVariable Integer id) {
441 455
         taIssueProcessService.removeLogicById(id);
442 456
         return ResponseBean.success("success");
443 457
     }

+ 101
- 0
src/main/java/com/example/civilizedcity/controller/TaMessageController.java Dosyayı Görüntüle

@@ -0,0 +1,101 @@
1
+package com.example.civilizedcity.controller;
2
+
3
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
4
+import com.baomidou.mybatisplus.core.metadata.IPage;
5
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
6
+import com.example.civilizedcity.common.BaseController;
7
+import com.example.civilizedcity.common.ResponseBean;
8
+import java.util.List;
9
+import io.swagger.annotations.Api;
10
+import io.swagger.annotations.ApiOperation;
11
+import io.swagger.annotations.ApiParam;
12
+import org.springframework.beans.factory.annotation.Autowired;
13
+import org.springframework.web.bind.annotation.*;
14
+import com.example.civilizedcity.entity.TaMessage;
15
+import com.example.civilizedcity.service.TaMessageService;
16
+
17
+ /**
18
+ * 消息通知;(ta_message)表控制层
19
+ * @author : http://njyunzhi.com
20
+ * @date : 2023-1-2
21
+ */
22
+@Api(tags = "消息通知对象功能接口")
23
+@RestController
24
+@RequestMapping("/")
25
+public class TaMessageController extends BaseController {
26
+    
27
+    @Autowired
28
+    private TaMessageService taMessageService;
29
+    
30
+    /** 
31
+     * 通过ID查询单条数据 
32
+     *
33
+     * @param msgId 主键
34
+     * @return 实例对象
35
+     */
36
+    @ApiOperation("通过ID查询单条数据")
37
+    @GetMapping("/taMessage/{id}")
38
+    public ResponseBean queryById(@ApiParam("对象ID") @PathVariable Integer id) throws Exception {
39
+        return ResponseBean.success(taMessageService.getById(id));
40
+    }
41
+    
42
+    /** 
43
+     * 分页查询
44
+     *
45
+     * @param pageNum 当前页码
46
+     * @param pageSize 每页条数
47
+     * @return 查询结果
48
+     */
49
+    @ApiOperation("分页查询")
50
+    @GetMapping("/taMessage")
51
+    public ResponseBean list(@ApiParam("页码") @RequestParam(value ="pageNum",defaultValue = "1") Integer pageNum,
52
+                            @ApiParam("单页数据量") @RequestParam(value ="pageSize",defaultValue = "10") Integer pageSize) throws Exception {
53
+        
54
+        IPage<TaMessage> pg = new Page<>(pageNum, pageSize);
55
+        // QueryWrapper<TaMessage> queryWrapper = new QueryWrapper<>();
56
+        // queryWrapper.orderByDesc("create_date");
57
+        IPage<TaMessage> result = taMessageService.page(pg);
58
+        
59
+        return ResponseBean.success(result);
60
+    }
61
+    
62
+    /** 
63
+     * 新增数据
64
+     *
65
+     * @param taMessage 实例对象
66
+     * @return 实例对象
67
+     */
68
+    @ApiOperation("新增数据")
69
+    @PostMapping("/taMessage")
70
+    public ResponseBean add(@ApiParam("对象实体") @RequestBody TaMessage taMessage) throws Exception {
71
+        taMessageService.save(taMessage);
72
+        return ResponseBean.success(taMessage);
73
+    }
74
+    
75
+    /** 
76
+     * 更新数据
77
+     *
78
+     * @param taMessage 实例对象
79
+     * @return 实例对象
80
+     */
81
+    @ApiOperation("更新数据")
82
+    @PutMapping("/taMessage/{id}")
83
+    public ResponseBean edit(@ApiParam("对象实体") @RequestBody TaMessage taMessage,
84
+                            @ApiParam("对象ID") @PathVariable Integer id ) throws Exception {
85
+        taMessageService.updateById(taMessage);
86
+        return ResponseBean.success(taMessage);
87
+    }
88
+    
89
+    /** 
90
+     * 通过主键删除数据
91
+     *
92
+     * @param msgId 主键
93
+     * @return 是否成功
94
+     */
95
+    @ApiOperation("通过主键删除数据")
96
+    @DeleteMapping("/taMessage/{id}")
97
+    public ResponseBean deleteById(@ApiParam("对象ID") @PathVariable Integer id){
98
+        taMessageService.removeLogicById(id);
99
+        return ResponseBean.success("success");
100
+    }
101
+}

+ 1
- 1
src/main/java/com/example/civilizedcity/controller/TaOrgIssueController.java Dosyayı Görüntüle

@@ -59,7 +59,7 @@ public class TaOrgIssueController extends BaseController {
59 59
 
60 60
          QueryWrapper<TaOrgIssue> queryWrapper = new QueryWrapper<>();
61 61
          queryWrapper.eq("issue_id", issueId);
62
-         queryWrapper.gt("status", Constants.STATUS_DELETE);
62
+         queryWrapper.eq("status", Constants.STATUS_NORMAL);
63 63
 
64 64
          TaOrgIssue taOrgIssue = taOrgIssueService.getOne(queryWrapper);
65 65
          if (null != taOrgIssue) {

+ 11
- 0
src/main/java/com/example/civilizedcity/entity/TaIssue.java Dosyayı Görüntüle

@@ -75,6 +75,17 @@ public class TaIssue implements Serializable,Cloneable{
75 75
       /** 来源ID */
76 76
       @ApiModelProperty(name = "来源ID",notes = "")
77 77
       private String sourceTarget ;
78
+
79
+       /** 当前申请类型 */
80
+       @ApiModelProperty(name = "当前申请类型",notes = "")
81
+       private String applyType ;
82
+       /** 当前申请ID */
83
+       @ApiModelProperty(name = "当前申请ID",notes = "")
84
+       private Integer applyId ;
85
+
86
+       /** 审核状态 */
87
+       @ApiModelProperty(name = "审核状态",notes = "")
88
+       private Integer validateStatus ;
78 89
       /** 状态 */
79 90
       @ApiModelProperty(name = "状态",notes = "")
80 91
       private Integer status ;

+ 57
- 0
src/main/java/com/example/civilizedcity/entity/TaMessage.java Dosyayı Görüntüle

@@ -0,0 +1,57 @@
1
+package com.example.civilizedcity.entity;
2
+
3
+import io.swagger.annotations.ApiModel;
4
+import io.swagger.annotations.ApiModelProperty;
5
+import com.baomidou.mybatisplus.annotation.IdType;
6
+import com.baomidou.mybatisplus.annotation.TableName;
7
+import com.baomidou.mybatisplus.annotation.TableId;
8
+import java.io.Serializable;
9
+import java.time.LocalDateTime;
10
+import lombok.Data;
11
+import lombok.EqualsAndHashCode;
12
+import lombok.experimental.Accessors;
13
+
14
+ /**
15
+ * 消息通知;
16
+ * @author : http://www.chiner.pro
17
+ * @date : 2023-1-2
18
+ */
19
+@Data
20
+@EqualsAndHashCode(callSuper = false)
21
+@Accessors(chain = true)
22
+@ApiModel(value = "消息通知",description = "")
23
+@TableName("ta_message")
24
+public class TaMessage implements Serializable,Cloneable{
25
+    /** ID */
26
+    @ApiModelProperty(name = "ID",notes = "")
27
+    @TableId(value = "msg_id", type = IdType.ASSIGN_UUID)
28
+    private Integer msgId ;
29
+    /** 消息标题 */
30
+    @ApiModelProperty(name = "消息标题",notes = "")
31
+    private String title ;
32
+    /** 消息内容 */
33
+    @ApiModelProperty(name = "消息内容",notes = "")
34
+    private String content ;
35
+    /** 关联内容 */
36
+    @ApiModelProperty(name = "关联内容",notes = "")
37
+    private String targetType ;
38
+    /** 关联内容ID */
39
+    @ApiModelProperty(name = "关联内容ID",notes = "")
40
+    private String targetId ;
41
+    /** 接收人员 */
42
+    @ApiModelProperty(name = "接收人员",notes = "")
43
+    private String receiveUser ;
44
+    /** 机构ID */
45
+    @ApiModelProperty(name = "机构ID",notes = "")
46
+    private String orgId ;
47
+    /** 状态 */
48
+    @ApiModelProperty(name = "状态",notes = "")
49
+    private Integer status ;
50
+    /** 创建人 */
51
+    @ApiModelProperty(name = "创建人",notes = "")
52
+    private String createUser ;
53
+    /** 创建时间 */
54
+    @ApiModelProperty(name = "创建时间",notes = "")
55
+    private LocalDateTime createDate ;
56
+
57
+}

+ 1
- 1
src/main/java/com/example/civilizedcity/entity/TaOrgIssue.java Dosyayı Görüntüle

@@ -27,7 +27,7 @@ import lombok.experimental.Accessors;
27 27
 public class TaOrgIssue implements Serializable,Cloneable{
28 28
     /** 单位问题单ID */
29 29
     @ApiModelProperty(name = "单位问题单ID",notes = "")
30
-    @TableId(value = "org_issue_id", type = IdType.ASSIGN_UUID)
30
+    @TableId(value = "org_issue_id", type = IdType.AUTO)
31 31
     private Integer orgIssueId ;
32 32
     /** 问题单ID */
33 33
     @ApiModelProperty(name = "问题单ID",notes = "")

+ 29
- 0
src/main/java/com/example/civilizedcity/event/MessagEvent.java Dosyayı Görüntüle

@@ -0,0 +1,29 @@
1
+package com.example.civilizedcity.event;
2
+
3
+import com.example.civilizedcity.entity.TaIssue;
4
+import com.example.civilizedcity.entity.TaIssueApply;
5
+import org.springframework.context.ApplicationEvent;
6
+
7
+public class MessagEvent extends ApplicationEvent {
8
+
9
+    private TaIssueApply taIssueApply = null;
10
+    private TaIssue taIssue = null;
11
+
12
+    public MessagEvent(Object source, TaIssue taIssue) {
13
+        super(source);
14
+        this.taIssue = taIssue;
15
+    }
16
+
17
+    public MessagEvent(Object source, TaIssueApply taIssueApply) {
18
+        super(source);
19
+        this.taIssueApply = taIssueApply;
20
+    }
21
+
22
+    public TaIssue getTaIssue() {
23
+        return taIssue;
24
+    }
25
+
26
+    public TaIssueApply getTaIssueApply() {
27
+        return taIssueApply;
28
+    }
29
+}

+ 24
- 0
src/main/java/com/example/civilizedcity/event/listener/MessagEventListener.java Dosyayı Görüntüle

@@ -0,0 +1,24 @@
1
+package com.example.civilizedcity.event.listener;
2
+
3
+import com.example.civilizedcity.event.MessagEvent;
4
+import com.example.civilizedcity.service.TaMessageService;
5
+import org.springframework.beans.factory.annotation.Autowired;
6
+import org.springframework.context.ApplicationListener;
7
+import org.springframework.stereotype.Component;
8
+
9
+@Component
10
+public class MessagEventListener implements ApplicationListener<MessagEvent> {
11
+    @Autowired
12
+    TaMessageService taMessageService;
13
+
14
+    @Override
15
+    public void onApplicationEvent(MessagEvent event) {
16
+        if (null != event.getTaIssue()) {
17
+            taMessageService.sendMessage(event.getTaIssue());
18
+        }
19
+
20
+        if (null != event.getTaIssueApply()) {
21
+            taMessageService.sendMessage(event.getTaIssueApply());
22
+        }
23
+    }
24
+}

+ 2
- 0
src/main/java/com/example/civilizedcity/mapper/TaIssueMapper.java Dosyayı Görüntüle

@@ -21,4 +21,6 @@ public interface TaIssueMapper  extends BaseMapper<TaIssue>{
21 21
      int updateApply(@Param("issueId") Integer issueId,
22 22
                      @Param("applyType") String applyType,
23 23
                      @Param("applyId") Integer applyId);
24
+
25
+     int updateValidateStatus(@Param("issueId") Integer issueId, @Param("validateStatus") int validateStatus);
24 26
  }

+ 16
- 0
src/main/java/com/example/civilizedcity/mapper/TaMessageMapper.java Dosyayı Görüntüle

@@ -0,0 +1,16 @@
1
+package com.example.civilizedcity.mapper;
2
+
3
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
4
+import org.apache.ibatis.annotations.Mapper;
5
+import org.apache.ibatis.annotations.Param;
6
+import com.example.civilizedcity.entity.TaMessage;
7
+
8
+ /**
9
+ * 消息通知;(ta_message)表数据库访问层
10
+ * @author : http://njyunzhi.com
11
+ * @date : 2023-1-2
12
+ */
13
+@Mapper
14
+public interface TaMessageMapper  extends BaseMapper<TaMessage>{
15
+    
16
+}

+ 2
- 0
src/main/java/com/example/civilizedcity/mapper/TaOrgIssueMapper.java Dosyayı Görüntüle

@@ -21,4 +21,6 @@ public interface TaOrgIssueMapper  extends BaseMapper<TaOrgIssue>{
21 21
                                    @Param("processNode") String processNode,
22 22
                                    @Param("isExpire") Boolean isExpire
23 23
      );
24
+
25
+     TaOrgIssue getByIssueAndOrg(@Param("issueId") Integer issueId, @Param("orgId") String orgId);
24 26
  }

+ 4
- 0
src/main/java/com/example/civilizedcity/service/TaIssueService.java Dosyayı Görüntüle

@@ -12,4 +12,8 @@ import com.example.civilizedcity.entity.TaIssue;
12 12
 public interface TaIssueService extends IBaseService<TaIssue> {
13 13
 
14 14
      IPage<TaIssue> getPageBy(IPage<TaIssue> pg, String orgId);
15
+
16
+     void updateValidateStatus(Integer issueId, int validateStatus);
17
+
18
+     void updateApply(Integer issueId, String applyType, Integer applyId);
15 19
  }

+ 18
- 0
src/main/java/com/example/civilizedcity/service/TaMessageService.java Dosyayı Görüntüle

@@ -0,0 +1,18 @@
1
+package com.example.civilizedcity.service;
2
+
3
+import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.example.civilizedcity.entity.TaIssue;
5
+import com.example.civilizedcity.entity.TaIssueApply;
6
+import com.example.civilizedcity.entity.TaMessage;
7
+
8
+ /**
9
+ * 消息通知;(ta_message)表服务接口
10
+ * @author : http://njyunzhi.com
11
+ * @date : 2023-1-2
12
+ */
13
+public interface TaMessageService extends IBaseService<TaMessage> {
14
+
15
+     void sendMessage(TaIssue taIssue);
16
+
17
+     void sendMessage(TaIssueApply taIssueApply);
18
+ }

+ 4
- 1
src/main/java/com/example/civilizedcity/service/TaOrgIssueService.java Dosyayı Görüntüle

@@ -1,8 +1,9 @@
1 1
 package com.example.civilizedcity.service;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
-import com.baomidou.mybatisplus.extension.service.IService;
4
+import com.example.civilizedcity.entity.SysUser;
5 5
 import com.example.civilizedcity.entity.TaIssue;
6
+import com.example.civilizedcity.entity.TaIssueProcess;
6 7
 import com.example.civilizedcity.entity.TaOrgIssue;
7 8
 
8 9
  /**
@@ -13,4 +14,6 @@ import com.example.civilizedcity.entity.TaOrgIssue;
13 14
 public interface TaOrgIssueService extends IBaseService<TaOrgIssue> {
14 15
 
15 16
      IPage<TaIssue> getIssuePageBy(IPage<TaIssue> pg, String orgId, String sourceType, String bizStatus);
17
+
18
+     void createNewIssue(TaIssue taIssue, TaIssueProcess taIssueProcess, SysUser sysUser);
16 19
  }

+ 30
- 0
src/main/java/com/example/civilizedcity/service/impl/TaIssueApplyServiceImpl.java Dosyayı Görüntüle

@@ -1,10 +1,15 @@
1 1
 package com.example.civilizedcity.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.example.civilizedcity.common.Constants;
4 5
 import com.example.civilizedcity.common.ResponseBean;
5 6
 import com.example.civilizedcity.entity.SysUser;
7
+import com.example.civilizedcity.entity.TaOrgIssue;
8
+import com.example.civilizedcity.event.MessagEvent;
6 9
 import com.example.civilizedcity.mapper.TaIssueMapper;
10
+import com.example.civilizedcity.mapper.TaOrgIssueMapper;
7 11
 import org.springframework.beans.factory.annotation.Autowired;
12
+import org.springframework.context.ApplicationEventPublisher;
8 13
 import org.springframework.stereotype.Service;
9 14
 import com.example.civilizedcity.entity.TaIssueApply;
10 15
 import com.example.civilizedcity.mapper.TaIssueApplyMapper;
@@ -24,6 +29,12 @@ public class TaIssueApplyServiceImpl extends BaseServiceImpl<TaIssueApplyMapper,
24 29
     @Autowired
25 30
     TaIssueMapper taIssueMapper;
26 31
 
32
+    @Autowired
33
+    TaOrgIssueMapper taOrgIssueMapper;
34
+
35
+    @Autowired
36
+    ApplicationEventPublisher applicationEventPublisher;
37
+
27 38
     @Override
28 39
     public void createNewApply(TaIssueApply taIssueApply, SysUser sysUser) throws Exception {
29 40
 
@@ -31,6 +42,18 @@ public class TaIssueApplyServiceImpl extends BaseServiceImpl<TaIssueApplyMapper,
31 42
             throw new Exception("校验问题单出错");
32 43
         }
33 44
 
45
+        if (!Constants.ROOT_ORG.equals(sysUser.getOrgId())) {
46
+            // 如果是责任单位打的申请
47
+            TaOrgIssue taOrgIssue = taOrgIssueMapper.getByIssueAndOrg(taIssueApply.getIssueId(), sysUser.getOrgId());
48
+            if (null == taOrgIssue) {
49
+                throw new Exception("未找到交办单位问题单");
50
+            }
51
+
52
+            // 标记在申请中
53
+            taOrgIssue.setResult(taIssueApply.getApplyType());
54
+            taOrgIssueMapper.updateById(taOrgIssue);
55
+        }
56
+
34 57
         taIssueApply.setApplyId(null);
35 58
         taIssueApply.setCreateUser(sysUser.getUserId());
36 59
         taIssueApply.setCreateUserName(sysUser.getName());
@@ -40,6 +63,13 @@ public class TaIssueApplyServiceImpl extends BaseServiceImpl<TaIssueApplyMapper,
40 63
         save(taIssueApply);
41 64
 
42 65
         taIssueMapper.updateApply(taIssueApply.getIssueId(), taIssueApply.getApplyType(), taIssueApply.getApplyId());
66
+
67
+
68
+//        if (Constants.APPLY_VERIFY.equals(taIssueApply.getApplyType())) {
69
+//            taIssueMapper.updateValidateStatus(taIssueApply.getIssueId(), Constants.VERIFY_SUBMIT);
70
+//        }
71
+
72
+        applicationEventPublisher.publishEvent(new MessagEvent(this, taIssueApply));
43 73
     }
44 74
 
45 75
     @Override

+ 10
- 0
src/main/java/com/example/civilizedcity/service/impl/TaIssueServiceImpl.java Dosyayı Görüntüle

@@ -25,4 +25,14 @@ public class TaIssueServiceImpl extends BaseServiceImpl<TaIssueMapper, TaIssue>
25 25
 
26 26
         return baseMapper.getPageBy(pg, orgId);
27 27
     }
28
+
29
+    @Override
30
+    public void updateValidateStatus(Integer issueId, int validateStatus) {
31
+        baseMapper.updateValidateStatus(issueId, validateStatus);
32
+    }
33
+
34
+    @Override
35
+    public void updateApply(Integer issueId, String applyType, Integer applyId) {
36
+        baseMapper.updateApply(issueId, applyType, applyId);
37
+    }
28 38
 }

+ 127
- 0
src/main/java/com/example/civilizedcity/service/impl/TaMessageServiceImpl.java Dosyayı Görüntüle

@@ -0,0 +1,127 @@
1
+package com.example.civilizedcity.service.impl;
2
+
3
+import com.example.civilizedcity.common.Constants;
4
+import com.example.civilizedcity.entity.TaIssue;
5
+import com.example.civilizedcity.entity.TaIssueApply;
6
+import org.apache.ibatis.annotations.Param;
7
+import org.springframework.beans.factory.annotation.Autowired;
8
+import org.springframework.scheduling.annotation.Async;
9
+import org.springframework.scheduling.annotation.EnableAsync;
10
+import org.springframework.stereotype.Service;
11
+import com.example.civilizedcity.entity.TaMessage;
12
+import com.example.civilizedcity.mapper.TaMessageMapper;
13
+import com.example.civilizedcity.service.TaMessageService;
14
+import org.springframework.transaction.annotation.Transactional;
15
+
16
+import java.time.LocalDateTime;
17
+
18
+/**
19
+ * 消息通知;(ta_message)表服务实现类
20
+ *
21
+ * @author : http://www.chiner.pro
22
+ * @date : 2023-1-2
23
+ */
24
+@Service
25
+public class TaMessageServiceImpl extends BaseServiceImpl<TaMessageMapper, TaMessage> implements TaMessageService {
26
+
27
+    @Async
28
+    @Transactional(rollbackFor = Exception.class)
29
+    @Override
30
+    public void sendMessage(TaIssue taIssue) {
31
+        TaMessage taMessage = new TaMessage();
32
+
33
+        // 问题单驳回
34
+        if (Constants.PROCESS_START.equals(taIssue.getProcessNode()) && Constants.PROCESS_STATUS_REJECT.equals(taIssue.getProcessStatus())) {
35
+            taMessage.setTitle("问题单被驳回");
36
+            taMessage.setTargetType(Constants.MESSAGE_TARGET_ISSUE);
37
+            taMessage.setTargetId(taIssue.getIssueId().toString());
38
+            taMessage.setStatus(Constants.STATUS_NORMAL);
39
+            taMessage.setCreateDate(LocalDateTime.now());
40
+
41
+            if (Constants.ISSUE_SOURCE_FEEDBACK.equals(taIssue.getSourceType())) {
42
+                // 如果是市民上报
43
+                // TODO
44
+            }
45
+
46
+            if (Constants.ISSUE_SOURCE_INSPECTOR.equals(taIssue.getSourceType())) {
47
+                // 如果是督察员上报
48
+                taMessage.setOrgId(Constants.ROOT_ORG);
49
+                taMessage.setReceiveUser(taIssue.getCreateUser());
50
+            }
51
+
52
+            save(taMessage);
53
+        }
54
+    }
55
+
56
+    @Async
57
+    @Transactional(rollbackFor = Exception.class)
58
+    @Override
59
+    public void sendMessage(TaIssueApply taIssueApply) {
60
+        boolean isApply = null == taIssueApply.getVerifyDate();
61
+        TaMessage taMessage = new TaMessage();
62
+        taMessage.setTargetType(Constants.MESSAGE_TARGET_APPLY);
63
+        taMessage.setTargetId(taIssueApply.getApplyId().toString());
64
+        taMessage.setStatus(Constants.STATUS_NORMAL);
65
+        taMessage.setCreateDate(LocalDateTime.now());
66
+
67
+        if (isApply) {
68
+            switch (taIssueApply.getApplyType()) {
69
+                case Constants.APPLY_DELAY:
70
+                    taMessage.setTitle("延期申请");
71
+                    taMessage.setContent("延期至: " + taIssueApply.getContent());
72
+                    taMessage.setReceiveUser(null);
73
+                    taMessage.setOrgId(Constants.ROOT_ORG);
74
+                    break;
75
+                case Constants.APPLY_REJECT:
76
+                    taMessage.setTitle("驳回申请");
77
+                    taMessage.setContent(null);
78
+                    taMessage.setReceiveUser(null);
79
+                    taMessage.setOrgId(Constants.ROOT_ORG);
80
+                    break;
81
+                case Constants.APPLY_VERIFY:
82
+                    taMessage.setTitle("审核申请");
83
+                    taMessage.setContent(null);
84
+                    taMessage.setReceiveUser(null);
85
+                    taMessage.setOrgId(taIssueApply.getOrgId());
86
+                    break;
87
+                case Constants.APPLY_END:
88
+                    taMessage.setTitle("消单申请");
89
+                    taMessage.setContent(null);
90
+                    taMessage.setReceiveUser(null);
91
+                    taMessage.setOrgId(Constants.ROOT_ORG);
92
+                    break;
93
+                default:
94
+                    taMessage.setTitle("未知申请");
95
+                    taMessage.setReceiveUser(null);
96
+                    taMessage.setOrgId(null);
97
+                    break;
98
+            }
99
+        } else {
100
+            taMessage.setContent("审核结果: " + (Constants.APPLY_STATUS_PASS.equals(taIssueApply.getVerifyStatus()) ? "通过" : "不通过"));
101
+            taMessage.setReceiveUser(null);
102
+            taMessage.setOrgId(taIssueApply.getOrgId());
103
+
104
+            switch (taIssueApply.getApplyType()) {
105
+                case Constants.APPLY_DELAY:
106
+                    taMessage.setTitle("延期审核");
107
+                    break;
108
+                case Constants.APPLY_REJECT:
109
+                    taMessage.setTitle("驳回审核");
110
+                    break;
111
+                case Constants.APPLY_VERIFY:
112
+                    taMessage.setTitle("问题单审核");
113
+                    break;
114
+                case Constants.APPLY_END:
115
+                    taMessage.setTitle("办结审核");
116
+                    break;
117
+                default:
118
+                    taMessage.setTitle("未知审核");
119
+                    taMessage.setReceiveUser(null);
120
+                    taMessage.setOrgId(null);
121
+                    break;
122
+            }
123
+        }
124
+
125
+        save(taMessage);
126
+    }
127
+}

+ 18
- 1
src/main/java/com/example/civilizedcity/service/impl/TaOrgIssueServiceImpl.java Dosyayı Görüntüle

@@ -1,14 +1,18 @@
1 1
 package com.example.civilizedcity.service.impl;
2 2
 
3 3
 import com.baomidou.mybatisplus.core.metadata.IPage;
4
+import com.example.civilizedcity.common.Constants;
4 5
 import com.example.civilizedcity.common.StringUtils;
6
+import com.example.civilizedcity.entity.SysUser;
5 7
 import com.example.civilizedcity.entity.TaIssue;
6
-import org.springframework.beans.factory.annotation.Autowired;
8
+import com.example.civilizedcity.entity.TaIssueProcess;
7 9
 import org.springframework.stereotype.Service;
8 10
 import com.example.civilizedcity.entity.TaOrgIssue;
9 11
 import com.example.civilizedcity.mapper.TaOrgIssueMapper;
10 12
 import com.example.civilizedcity.service.TaOrgIssueService;
11 13
 
14
+import java.time.LocalDateTime;
15
+
12 16
 /**
13 17
  * 单位问题单;(ta_org_issue)表服务实现类
14 18
  *
@@ -34,4 +38,17 @@ public class TaOrgIssueServiceImpl extends BaseServiceImpl<TaOrgIssueMapper, TaO
34 38
 
35 39
         return baseMapper.getIssuePageBy(pg, orgId, sourceType, processNode, isExpire);
36 40
     }
41
+
42
+    @Override
43
+    public void createNewIssue(TaIssue taIssue, TaIssueProcess taIssueProcess, SysUser sysUser) {
44
+        TaOrgIssue taOrgIssue = new TaOrgIssue();
45
+        taOrgIssue.setIssueId(taIssue.getIssueId());
46
+        taOrgIssue.setOrgId(taIssueProcess.getOrgId());
47
+        taOrgIssue.setProcessStatus(Constants.PROCESS_START);
48
+        taOrgIssue.setStatus(Constants.STATUS_NORMAL);
49
+        taOrgIssue.setCreateDate(LocalDateTime.now());
50
+        taOrgIssue.setCreateUser(sysUser.getUserId());
51
+
52
+        save(taOrgIssue);
53
+    }
37 54
 }

+ 6
- 0
src/main/resources/mapper/TaIssueMapper.xml Dosyayı Görüntüle

@@ -9,6 +9,12 @@
9 9
         WHERE
10 10
             t.issue_id = #{issueId}
11 11
     </update>
12
+    <update id="updateValidateStatus">
13
+        UPDATE ta_issue t
14
+        SET t.validate_status = #{validateStatus}
15
+        WHERE
16
+            t.issue_id = #{issueId}
17
+    </update>
12 18
 
13 19
     <select id="getPageBy" resultType="com.example.civilizedcity.entity.TaIssue">
14 20
         SELECT

+ 6
- 0
src/main/resources/mapper/TaMessageMapper.xml Dosyayı Görüntüle

@@ -0,0 +1,6 @@
1
+<?xml version="1.0" encoding="UTF-8"?>
2
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
3
+
4
+<mapper namespace="com.example.civilizedcity.mapper.TaMessageMapper">
5
+    
6
+</mapper>

+ 10
- 0
src/main/resources/mapper/TaOrgIssueMapper.xml Dosyayı Görüntüle

@@ -36,4 +36,14 @@
36 36
         ORDER BY
37 37
             t.create_date DESC
38 38
     </select>
39
+    <select id="getByIssueAndOrg" resultType="com.example.civilizedcity.entity.TaOrgIssue">
40
+        SELECT
41
+            *
42
+        FROM
43
+            ta_org_issue t
44
+        WHERE
45
+            t.issue_id = #{issueId}
46
+          AND t.org_id = #{orgId}
47
+          AND t.`status` = 1
48
+    </select>
39 49
 </mapper>