Pārlūkot izejas kodu

部门奖惩记录表、请、休假记录表(特殊)、锦旗及感谢信导入功能开发

wangxx 3 nedēļas atpakaļ
vecāks
revīzija
e65cb25742

+ 57 - 1
airport-admin/src/main/java/com/sundot/airport/web/controller/ledger/LedgerImportController.java

@@ -52,6 +52,10 @@ public class LedgerImportController extends BaseController {
52 52
     @Autowired private ILedgerHealthSoldierService healthSoldierService;
53 53
     @Autowired private ILedgerDormFireSafetyService dormFireSafetyService;
54 54
     @Autowired private ILedgerTrainingIssueService trainingIssueService;
55
+    @Autowired private ILedgerRewardPenaltyService rewardPenaltyService;
56
+    @Autowired private ILedgerLeaveSpecialService leaveSpecialService;
57
+    @Autowired private ILedgerBannerLetterService bannerLetterService;
58
+
55 59
 
56 60
     private String generateBatchNo() {
57 61
         return DateUtils.dateTimeNow("yyyyMMddHHmmss") + UUID.randomUUID().toString().substring(0, 6).toUpperCase();
@@ -327,6 +331,58 @@ public class LedgerImportController extends BaseController {
327 331
     }
328 332
 
329 333
     /**
334
+     * 部门奖惩记录表导入
335
+     * LedgerRewardPenalty
336
+     */
337
+    @PreAuthorize("@ss.hasPermi('ledger:import:rewardPenalty')")
338
+    @Log(title = "台账导入-部门奖惩记录表", businessType = BusinessType.IMPORT)
339
+    @PostMapping("/rewardPenalty")
340
+    public AjaxResult importRewardPenalty(@RequestParam("file") MultipartFile file) throws Exception {
341
+        String batchNo = generateBatchNo();
342
+        List<LedgerRewardPenalty> list = new ArrayList<>();
343
+        EasyExcel.read(file.getInputStream(), LedgerRewardPenalty.class,
344
+                new SimpleListener<>(list)).headRowNumber(2).sheet().doRead();
345
+        list.forEach(item -> { item.setImportBatch(batchNo); item.setSourceType("1"); item.setCreateBy(getUsername()); });
346
+        rewardPenaltyService.batchInsert(list);
347
+        return AjaxResult.success("导入成功,共" + list.size() + "条");
348
+    }
349
+
350
+    /**
351
+     * 请休假记录(特殊)表导入
352
+     * LedgerLeaveSpecial
353
+     */
354
+    @PreAuthorize("@ss.hasPermi('ledger:import:leaveSpecial')")
355
+    @Log(title = "台账导入-请休假记录特殊", businessType = BusinessType.IMPORT)
356
+    @PostMapping("/leaveSpecial")
357
+    public AjaxResult importLeaveSpecial(@RequestParam("file") MultipartFile file) throws Exception {
358
+        String batchNo = generateBatchNo();
359
+        List<LedgerLeaveSpecial> list = new ArrayList<>();
360
+        EasyExcel.read(file.getInputStream(), LedgerLeaveSpecial.class,
361
+                new SimpleListener<>(list)).headRowNumber(2).sheet().doRead();
362
+        list.forEach(item -> { item.setImportBatch(batchNo); item.setSourceType("1"); item.setCreateBy(getUsername()); });
363
+        leaveSpecialService.batchInsert(list);
364
+        return AjaxResult.success("导入成功,共" + list.size() + "条");
365
+    }
366
+
367
+    /**
368
+     * 锦旗及感谢信记录表导入
369
+     * LedgerBannerLetter
370
+     */
371
+    @PreAuthorize("@ss.hasPermi('ledger:import:bannerLetter')")
372
+    @Log(title = "台账导入-锦旗及感谢信", businessType = BusinessType.IMPORT)
373
+    @PostMapping("/bannerLetter")
374
+    public AjaxResult importBannerLetter(@RequestParam("file") MultipartFile file) throws Exception {
375
+        String batchNo = generateBatchNo();
376
+        List<LedgerBannerLetter> list = new ArrayList<>();
377
+        EasyExcel.read(file.getInputStream(), LedgerBannerLetter.class,
378
+                new SimpleListener<>(list)).headRowNumber(2).sheet().doRead();
379
+        list.forEach(item -> { item.setImportBatch(batchNo); item.setSourceType("1"); item.setCreateBy(getUsername()); });
380
+        bannerLetterService.batchInsert(list);
381
+        return AjaxResult.success("导入成功,共" + list.size() + "条");
382
+    }
383
+
384
+
385
+    /**
330 386
      * 一键全量导入 - 解析多Sheet合并Excel(旅检三部"三三"数字管理平台.xlsx)
331 387
      */
332 388
     @PreAuthorize("@ss.hasPermi('ledger:import:combined')")
@@ -373,4 +429,4 @@ public class LedgerImportController extends BaseController {
373 429
         @Override
374 430
         public void doAfterAllAnalysed(AnalysisContext context) {}
375 431
     }
376
-}
432
+}

+ 12 - 1
airport-ledger/src/main/java/com/sundot/airport/ledger/domain/LedgerBannerLetter.java

@@ -53,6 +53,11 @@ public class LedgerBannerLetter extends BaseEntity {
53 53
     @Excel(name = "备注")
54 54
     private String remark;
55 55
 
56
+    private String importBatch;
57
+
58
+    @Excel(name = "数据来源")
59
+    private String sourceType;
60
+
56 61
     @Excel(name = "同步标志(0=未同步;1=已同步)")
57 62
     private String syncFlag;
58 63
 
@@ -92,6 +97,12 @@ public class LedgerBannerLetter extends BaseEntity {
92 97
     public String getRemark() { return remark; }
93 98
     public void setRemark(String remark) { this.remark = remark; }
94 99
 
100
+    public String getImportBatch() { return importBatch; }
101
+    public void setImportBatch(String importBatch) { this.importBatch = importBatch; }
102
+
103
+    public String getSourceType() { return sourceType; }
104
+    public void setSourceType(String sourceType) { this.sourceType = sourceType; }
105
+
95 106
     public String getSyncFlag() { return syncFlag; }
96 107
     public void setSyncFlag(String syncFlag) { this.syncFlag = syncFlag; }
97
-}
108
+}

+ 12 - 1
airport-ledger/src/main/java/com/sundot/airport/ledger/domain/LedgerLeaveSpecial.java

@@ -51,6 +51,11 @@ public class LedgerLeaveSpecial extends BaseEntity {
51 51
     @Excel(name = "备注")
52 52
     private String remark;
53 53
 
54
+    private String importBatch;
55
+
56
+    @Excel(name = "数据来源")
57
+    private String sourceType;
58
+
54 59
     @Excel(name = "同步标志(0=未同步;1=已同步)")
55 60
     private String syncFlag;
56 61
 
@@ -87,6 +92,12 @@ public class LedgerLeaveSpecial extends BaseEntity {
87 92
     public String getRemark() { return remark; }
88 93
     public void setRemark(String remark) { this.remark = remark; }
89 94
 
95
+    public String getImportBatch() { return importBatch; }
96
+    public void setImportBatch(String importBatch) { this.importBatch = importBatch; }
97
+
98
+    public String getSourceType() { return sourceType; }
99
+    public void setSourceType(String sourceType) { this.sourceType = sourceType; }
100
+
90 101
     public String getSyncFlag() { return syncFlag; }
91 102
     public void setSyncFlag(String syncFlag) { this.syncFlag = syncFlag; }
92
-}
103
+}

+ 12 - 1
airport-ledger/src/main/java/com/sundot/airport/ledger/domain/LedgerRewardPenalty.java

@@ -53,6 +53,11 @@ public class LedgerRewardPenalty extends BaseEntity {
53 53
     @Excel(name = "备注")
54 54
     private String remark;
55 55
 
56
+    private String importBatch;
57
+
58
+    @Excel(name = "数据来源")
59
+    private String sourceType;
60
+
56 61
     @Excel(name = "同步标志(0=未同步;1=已同步)")
57 62
     private String syncFlag;
58 63
 
@@ -92,6 +97,12 @@ public class LedgerRewardPenalty extends BaseEntity {
92 97
     public String getRemark() { return remark; }
93 98
     public void setRemark(String remark) { this.remark = remark; }
94 99
 
100
+    public String getImportBatch() { return importBatch; }
101
+    public void setImportBatch(String importBatch) { this.importBatch = importBatch; }
102
+
103
+    public String getSourceType() { return sourceType; }
104
+    public void setSourceType(String sourceType) { this.sourceType = sourceType; }
105
+
95 106
     public String getSyncFlag() { return syncFlag; }
96 107
     public void setSyncFlag(String syncFlag) { this.syncFlag = syncFlag; }
97
-}
108
+}

+ 13 - 7
airport-ledger/src/main/java/com/sundot/airport/ledger/service/impl/LedgerCombinedImportServiceImpl.java

@@ -145,9 +145,9 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
145 145
             case "terminalBonus":         return doTerminalBonus(sheet, batchNo, username);
146 146
             case "examScore":             return doExamScore(sheet, batchNo, username);
147 147
             case "rewardApproval":        return doRewardApproval(sheet, batchNo, username);
148
-            case "rewardPenalty":         return doRewardPenalty(sheet, username);
149
-            case "leaveSpecial":          return doLeaveSpecial(sheet, username);
150
-            case "bannerLetter":          return doBannerLetter(sheet, username);
148
+            case "rewardPenalty":         return doRewardPenalty(sheet, batchNo, username);
149
+            case "leaveSpecial":          return doLeaveSpecial(sheet, batchNo, username);
150
+            case "bannerLetter":          return doBannerLetter(sheet, batchNo, username);
151 151
             case "dailyTraining":         return doDailyTraining(sheet, batchNo, username);
152 152
             case "leaderDuty":            return doLeaderDuty(sheet, batchNo, username);
153 153
             case "healthSoldier":         return doHealthSoldier(sheet, batchNo, username);
@@ -780,7 +780,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
780 780
     /** 13. 部门奖惩记录表 → ledger_reward_penalty
781 781
      * R2: 姓名(0) 班组(1) 事由(2) 扣罚金额(3) 最后更新时间(4)
782 782
      */
783
-    private int doRewardPenalty(Sheet sheet, String username) {
783
+    private int doRewardPenalty(Sheet sheet, String batchNo, String username) {
784 784
         List<LedgerRewardPenalty> list = new ArrayList<>();
785 785
         for (Object[] c : dataRows(sheet, 2)) {
786 786
             LedgerRewardPenalty o = new LedgerRewardPenalty();
@@ -791,6 +791,8 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
791 791
             o.setScoreChange(amt != null ? amt.negate() : null);
792 792
             o.setType("2");  // 扣罚
793 793
             o.setRecordDate(date(c, 4));
794
+            o.setImportBatch(batchNo);
795
+            o.setSourceType("1");
794 796
             o.setCreateBy(username);
795 797
             list.add(o);
796 798
         }
@@ -802,7 +804,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
802 804
      * R2: 姓名(0) 班组(1) 时间(起)(2) 时间(止)(3) 休假类别(4) 天数/时长(5)
803 805
      * 天数/时长列可能是纯数字(天)或"X小时"格式;小时值按8小时/天换算成天数
804 806
      */
805
-    private int doLeaveSpecial(Sheet sheet, String username) {
807
+    private int doLeaveSpecial(Sheet sheet, String batchNo, String username) {
806 808
         List<LedgerLeaveSpecial> list = new ArrayList<>();
807 809
         for (Object[] c : dataRows(sheet, 2)) {
808 810
             LedgerLeaveSpecial o = new LedgerLeaveSpecial();
@@ -812,6 +814,8 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
812 814
             o.setStartDate(date(c, 2));
813 815
             o.setEndDate(date(c, 3));
814 816
             o.setDays(hoursOrDays(c, 5));
817
+            o.setImportBatch(batchNo);
818
+            o.setSourceType("1");
815 819
             o.setCreateBy(username);
816 820
             list.add(o);
817 821
         }
@@ -823,7 +827,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
823 827
      * R2: 时间(0) 姓名(1) 内容(2) 类别(3) 图片附件(4) 班组(5) 队室内勤(6)
824 828
      * 类别: 锦旗→'1', 其他→'2'
825 829
      */
826
-    private int doBannerLetter(Sheet sheet, String username) {
830
+    private int doBannerLetter(Sheet sheet, String batchNo, String username) {
827 831
         List<LedgerBannerLetter> list = new ArrayList<>();
828 832
         for (Object[] c : dataRows(sheet, 2)) {
829 833
             LedgerBannerLetter o = new LedgerBannerLetter();
@@ -835,6 +839,8 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
835 839
             o.setEvidenceFile(str(c, 4));
836 840
             o.setTeamName(str(c, 5));
837 841
             o.setRemark(str(c, 6));
842
+            o.setImportBatch(batchNo);
843
+            o.setSourceType("1");
838 844
             o.setCreateBy(username);
839 845
             list.add(o);
840 846
         }
@@ -1335,4 +1341,4 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
1335 1341
     private void clearImportCache() {
1336 1342
         this.importCache = null;
1337 1343
     }
1338
-}
1344
+}

+ 6 - 3
airport-ledger/src/main/resources/mapper/ledger/LedgerBannerLetterMapper.xml

@@ -14,7 +14,10 @@
14 14
         <result property="contentDesc" column="content_desc" />
15 15
         <result property="addScore" column="add_score" />
16 16
         <result property="evidenceFile" column="evidence_file" />
17
-        <result property="remark" column="remark" />        <result property="createBy"   column="create_by"   />
17
+        <result property="remark" column="remark" />
18
+        <result property="importBatch" column="import_batch" />
19
+        <result property="sourceType" column="source_type" />
20
+        <result property="createBy"   column="create_by"   />
18 21
         <result property="createTime" column="create_time" />
19 22
         <result property="updateBy"   column="update_by"   />
20 23
         <result property="updateTime" column="update_time" />
@@ -22,7 +25,7 @@
22 25
     </resultMap>
23 26
 
24 27
     <sql id="selectVo">
25
-        SELECT id, record_date,dept_name,team_name,person_name,person_user_id,type,giver,content_desc,add_score,evidence_file,remark, create_by, create_time, update_by, update_time, sync_flag
28
+        SELECT id, record_date,dept_name,team_name,person_name,person_user_id,type,giver,content_desc,add_score,evidence_file,remark, import_batch, source_type, create_by, create_time, update_by, update_time, sync_flag
26 29
         FROM ledger_banner_letter
27 30
         WHERE del_flag = '0'
28 31
     </sql>
@@ -47,4 +50,4 @@
47 50
         set sync_flag = '1'
48 51
         where sync_flag = '0'
49 52
     </update>
50
-</mapper>
53
+</mapper>

+ 6 - 3
airport-ledger/src/main/resources/mapper/ledger/LedgerLeaveSpecialMapper.xml

@@ -13,7 +13,10 @@
13 13
         <result property="endDate" column="end_date" />
14 14
         <result property="days" column="days" />
15 15
         <result property="deductScore" column="deduct_score" />
16
-        <result property="remark" column="remark" />        <result property="createBy"   column="create_by"   />
16
+        <result property="remark" column="remark" />
17
+        <result property="importBatch" column="import_batch" />
18
+        <result property="sourceType" column="source_type" />
19
+        <result property="createBy"   column="create_by"   />
17 20
         <result property="createTime" column="create_time" />
18 21
         <result property="updateBy"   column="update_by"   />
19 22
         <result property="updateTime" column="update_time" />
@@ -21,7 +24,7 @@
21 24
     </resultMap>
22 25
 
23 26
     <sql id="selectVo">
24
-        SELECT id, dept_name,team_name,person_name,person_user_id,leave_type,start_date,end_date,days,deduct_score,remark, create_by, create_time, update_by, update_time, sync_flag
27
+        SELECT id, dept_name,team_name,person_name,person_user_id,leave_type,start_date,end_date,days,deduct_score,remark, import_batch, source_type, create_by, create_time, update_by, update_time, sync_flag
25 28
         FROM ledger_leave_special
26 29
         WHERE del_flag = '0'
27 30
     </sql>
@@ -46,4 +49,4 @@
46 49
         set sync_flag = '1'
47 50
         where sync_flag = '0'
48 51
     </update>
49
-</mapper>
52
+</mapper>

+ 6 - 3
airport-ledger/src/main/resources/mapper/ledger/LedgerRewardPenaltyMapper.xml

@@ -14,7 +14,10 @@
14 14
         <result property="scoreChange" column="score_change" />
15 15
         <result property="scoreDimension" column="score_dimension" />
16 16
         <result property="evidenceFile" column="evidence_file" />
17
-        <result property="remark" column="remark" />        <result property="createBy"   column="create_by"   />
17
+        <result property="remark" column="remark" />
18
+        <result property="importBatch" column="import_batch" />
19
+        <result property="sourceType" column="source_type" />
20
+        <result property="createBy"   column="create_by"   />
18 21
         <result property="createTime" column="create_time" />
19 22
         <result property="updateBy"   column="update_by"   />
20 23
         <result property="updateTime" column="update_time" />
@@ -22,7 +25,7 @@
22 25
     </resultMap>
23 26
 
24 27
     <sql id="selectVo">
25
-        SELECT id, record_date,dept_name,team_name,person_name,person_user_id,type,event_desc,score_change,score_dimension,evidence_file,remark, create_by, create_time, update_by, update_time, sync_flag
28
+        SELECT id, record_date,dept_name,team_name,person_name,person_user_id,type,event_desc,score_change,score_dimension,evidence_file,remark, import_batch, source_type, create_by, create_time, update_by, update_time, sync_flag
26 29
         FROM ledger_reward_penalty
27 30
         WHERE del_flag = '0'
28 31
     </sql>
@@ -47,4 +50,4 @@
47 50
         set sync_flag = '1'
48 51
         where sync_flag = '0'
49 52
     </update>
50
-</mapper>
53
+</mapper>