Przeglądaj źródła

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

wangxx 3 tygodni temu
rodzic
commit
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
     @Autowired private ILedgerHealthSoldierService healthSoldierService;
52
     @Autowired private ILedgerHealthSoldierService healthSoldierService;
53
     @Autowired private ILedgerDormFireSafetyService dormFireSafetyService;
53
     @Autowired private ILedgerDormFireSafetyService dormFireSafetyService;
54
     @Autowired private ILedgerTrainingIssueService trainingIssueService;
54
     @Autowired private ILedgerTrainingIssueService trainingIssueService;
55
+    @Autowired private ILedgerRewardPenaltyService rewardPenaltyService;
56
+    @Autowired private ILedgerLeaveSpecialService leaveSpecialService;
57
+    @Autowired private ILedgerBannerLetterService bannerLetterService;
58
+
55
 
59
 
56
     private String generateBatchNo() {
60
     private String generateBatchNo() {
57
         return DateUtils.dateTimeNow("yyyyMMddHHmmss") + UUID.randomUUID().toString().substring(0, 6).toUpperCase();
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
      * 一键全量导入 - 解析多Sheet合并Excel(旅检三部"三三"数字管理平台.xlsx)
386
      * 一键全量导入 - 解析多Sheet合并Excel(旅检三部"三三"数字管理平台.xlsx)
331
      */
387
      */
332
     @PreAuthorize("@ss.hasPermi('ledger:import:combined')")
388
     @PreAuthorize("@ss.hasPermi('ledger:import:combined')")
@@ -373,4 +429,4 @@ public class LedgerImportController extends BaseController {
373
         @Override
429
         @Override
374
         public void doAfterAllAnalysed(AnalysisContext context) {}
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
     @Excel(name = "备注")
53
     @Excel(name = "备注")
54
     private String remark;
54
     private String remark;
55
 
55
 
56
+    private String importBatch;
57
+
58
+    @Excel(name = "数据来源")
59
+    private String sourceType;
60
+
56
     @Excel(name = "同步标志(0=未同步;1=已同步)")
61
     @Excel(name = "同步标志(0=未同步;1=已同步)")
57
     private String syncFlag;
62
     private String syncFlag;
58
 
63
 
@@ -92,6 +97,12 @@ public class LedgerBannerLetter extends BaseEntity {
92
     public String getRemark() { return remark; }
97
     public String getRemark() { return remark; }
93
     public void setRemark(String remark) { this.remark = remark; }
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
     public String getSyncFlag() { return syncFlag; }
106
     public String getSyncFlag() { return syncFlag; }
96
     public void setSyncFlag(String syncFlag) { this.syncFlag = syncFlag; }
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
     @Excel(name = "备注")
51
     @Excel(name = "备注")
52
     private String remark;
52
     private String remark;
53
 
53
 
54
+    private String importBatch;
55
+
56
+    @Excel(name = "数据来源")
57
+    private String sourceType;
58
+
54
     @Excel(name = "同步标志(0=未同步;1=已同步)")
59
     @Excel(name = "同步标志(0=未同步;1=已同步)")
55
     private String syncFlag;
60
     private String syncFlag;
56
 
61
 
@@ -87,6 +92,12 @@ public class LedgerLeaveSpecial extends BaseEntity {
87
     public String getRemark() { return remark; }
92
     public String getRemark() { return remark; }
88
     public void setRemark(String remark) { this.remark = remark; }
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
     public String getSyncFlag() { return syncFlag; }
101
     public String getSyncFlag() { return syncFlag; }
91
     public void setSyncFlag(String syncFlag) { this.syncFlag = syncFlag; }
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
     @Excel(name = "备注")
53
     @Excel(name = "备注")
54
     private String remark;
54
     private String remark;
55
 
55
 
56
+    private String importBatch;
57
+
58
+    @Excel(name = "数据来源")
59
+    private String sourceType;
60
+
56
     @Excel(name = "同步标志(0=未同步;1=已同步)")
61
     @Excel(name = "同步标志(0=未同步;1=已同步)")
57
     private String syncFlag;
62
     private String syncFlag;
58
 
63
 
@@ -92,6 +97,12 @@ public class LedgerRewardPenalty extends BaseEntity {
92
     public String getRemark() { return remark; }
97
     public String getRemark() { return remark; }
93
     public void setRemark(String remark) { this.remark = remark; }
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
     public String getSyncFlag() { return syncFlag; }
106
     public String getSyncFlag() { return syncFlag; }
96
     public void setSyncFlag(String syncFlag) { this.syncFlag = syncFlag; }
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
             case "terminalBonus":         return doTerminalBonus(sheet, batchNo, username);
145
             case "terminalBonus":         return doTerminalBonus(sheet, batchNo, username);
146
             case "examScore":             return doExamScore(sheet, batchNo, username);
146
             case "examScore":             return doExamScore(sheet, batchNo, username);
147
             case "rewardApproval":        return doRewardApproval(sheet, batchNo, username);
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
             case "dailyTraining":         return doDailyTraining(sheet, batchNo, username);
151
             case "dailyTraining":         return doDailyTraining(sheet, batchNo, username);
152
             case "leaderDuty":            return doLeaderDuty(sheet, batchNo, username);
152
             case "leaderDuty":            return doLeaderDuty(sheet, batchNo, username);
153
             case "healthSoldier":         return doHealthSoldier(sheet, batchNo, username);
153
             case "healthSoldier":         return doHealthSoldier(sheet, batchNo, username);
@@ -780,7 +780,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
780
     /** 13. 部门奖惩记录表 → ledger_reward_penalty
780
     /** 13. 部门奖惩记录表 → ledger_reward_penalty
781
      * R2: 姓名(0) 班组(1) 事由(2) 扣罚金额(3) 最后更新时间(4)
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
         List<LedgerRewardPenalty> list = new ArrayList<>();
784
         List<LedgerRewardPenalty> list = new ArrayList<>();
785
         for (Object[] c : dataRows(sheet, 2)) {
785
         for (Object[] c : dataRows(sheet, 2)) {
786
             LedgerRewardPenalty o = new LedgerRewardPenalty();
786
             LedgerRewardPenalty o = new LedgerRewardPenalty();
@@ -791,6 +791,8 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
791
             o.setScoreChange(amt != null ? amt.negate() : null);
791
             o.setScoreChange(amt != null ? amt.negate() : null);
792
             o.setType("2");  // 扣罚
792
             o.setType("2");  // 扣罚
793
             o.setRecordDate(date(c, 4));
793
             o.setRecordDate(date(c, 4));
794
+            o.setImportBatch(batchNo);
795
+            o.setSourceType("1");
794
             o.setCreateBy(username);
796
             o.setCreateBy(username);
795
             list.add(o);
797
             list.add(o);
796
         }
798
         }
@@ -802,7 +804,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
802
      * R2: 姓名(0) 班组(1) 时间(起)(2) 时间(止)(3) 休假类别(4) 天数/时长(5)
804
      * R2: 姓名(0) 班组(1) 时间(起)(2) 时间(止)(3) 休假类别(4) 天数/时长(5)
803
      * 天数/时长列可能是纯数字(天)或"X小时"格式;小时值按8小时/天换算成天数
805
      * 天数/时长列可能是纯数字(天)或"X小时"格式;小时值按8小时/天换算成天数
804
      */
806
      */
805
-    private int doLeaveSpecial(Sheet sheet, String username) {
807
+    private int doLeaveSpecial(Sheet sheet, String batchNo, String username) {
806
         List<LedgerLeaveSpecial> list = new ArrayList<>();
808
         List<LedgerLeaveSpecial> list = new ArrayList<>();
807
         for (Object[] c : dataRows(sheet, 2)) {
809
         for (Object[] c : dataRows(sheet, 2)) {
808
             LedgerLeaveSpecial o = new LedgerLeaveSpecial();
810
             LedgerLeaveSpecial o = new LedgerLeaveSpecial();
@@ -812,6 +814,8 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
812
             o.setStartDate(date(c, 2));
814
             o.setStartDate(date(c, 2));
813
             o.setEndDate(date(c, 3));
815
             o.setEndDate(date(c, 3));
814
             o.setDays(hoursOrDays(c, 5));
816
             o.setDays(hoursOrDays(c, 5));
817
+            o.setImportBatch(batchNo);
818
+            o.setSourceType("1");
815
             o.setCreateBy(username);
819
             o.setCreateBy(username);
816
             list.add(o);
820
             list.add(o);
817
         }
821
         }
@@ -823,7 +827,7 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
823
      * R2: 时间(0) 姓名(1) 内容(2) 类别(3) 图片附件(4) 班组(5) 队室内勤(6)
827
      * R2: 时间(0) 姓名(1) 内容(2) 类别(3) 图片附件(4) 班组(5) 队室内勤(6)
824
      * 类别: 锦旗→'1', 其他→'2'
828
      * 类别: 锦旗→'1', 其他→'2'
825
      */
829
      */
826
-    private int doBannerLetter(Sheet sheet, String username) {
830
+    private int doBannerLetter(Sheet sheet, String batchNo, String username) {
827
         List<LedgerBannerLetter> list = new ArrayList<>();
831
         List<LedgerBannerLetter> list = new ArrayList<>();
828
         for (Object[] c : dataRows(sheet, 2)) {
832
         for (Object[] c : dataRows(sheet, 2)) {
829
             LedgerBannerLetter o = new LedgerBannerLetter();
833
             LedgerBannerLetter o = new LedgerBannerLetter();
@@ -835,6 +839,8 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
835
             o.setEvidenceFile(str(c, 4));
839
             o.setEvidenceFile(str(c, 4));
836
             o.setTeamName(str(c, 5));
840
             o.setTeamName(str(c, 5));
837
             o.setRemark(str(c, 6));
841
             o.setRemark(str(c, 6));
842
+            o.setImportBatch(batchNo);
843
+            o.setSourceType("1");
838
             o.setCreateBy(username);
844
             o.setCreateBy(username);
839
             list.add(o);
845
             list.add(o);
840
         }
846
         }
@@ -1335,4 +1341,4 @@ public class LedgerCombinedImportServiceImpl implements ILedgerCombinedImportSer
1335
     private void clearImportCache() {
1341
     private void clearImportCache() {
1336
         this.importCache = null;
1342
         this.importCache = null;
1337
     }
1343
     }
1338
-}
1344
+}

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

@@ -14,7 +14,10 @@
14
         <result property="contentDesc" column="content_desc" />
14
         <result property="contentDesc" column="content_desc" />
15
         <result property="addScore" column="add_score" />
15
         <result property="addScore" column="add_score" />
16
         <result property="evidenceFile" column="evidence_file" />
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
         <result property="createTime" column="create_time" />
21
         <result property="createTime" column="create_time" />
19
         <result property="updateBy"   column="update_by"   />
22
         <result property="updateBy"   column="update_by"   />
20
         <result property="updateTime" column="update_time" />
23
         <result property="updateTime" column="update_time" />
@@ -22,7 +25,7 @@
22
     </resultMap>
25
     </resultMap>
23
 
26
 
24
     <sql id="selectVo">
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
         FROM ledger_banner_letter
29
         FROM ledger_banner_letter
27
         WHERE del_flag = '0'
30
         WHERE del_flag = '0'
28
     </sql>
31
     </sql>
@@ -47,4 +50,4 @@
47
         set sync_flag = '1'
50
         set sync_flag = '1'
48
         where sync_flag = '0'
51
         where sync_flag = '0'
49
     </update>
52
     </update>
50
-</mapper>
53
+</mapper>

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

@@ -13,7 +13,10 @@
13
         <result property="endDate" column="end_date" />
13
         <result property="endDate" column="end_date" />
14
         <result property="days" column="days" />
14
         <result property="days" column="days" />
15
         <result property="deductScore" column="deduct_score" />
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
         <result property="createTime" column="create_time" />
20
         <result property="createTime" column="create_time" />
18
         <result property="updateBy"   column="update_by"   />
21
         <result property="updateBy"   column="update_by"   />
19
         <result property="updateTime" column="update_time" />
22
         <result property="updateTime" column="update_time" />
@@ -21,7 +24,7 @@
21
     </resultMap>
24
     </resultMap>
22
 
25
 
23
     <sql id="selectVo">
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
         FROM ledger_leave_special
28
         FROM ledger_leave_special
26
         WHERE del_flag = '0'
29
         WHERE del_flag = '0'
27
     </sql>
30
     </sql>
@@ -46,4 +49,4 @@
46
         set sync_flag = '1'
49
         set sync_flag = '1'
47
         where sync_flag = '0'
50
         where sync_flag = '0'
48
     </update>
51
     </update>
49
-</mapper>
52
+</mapper>

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

@@ -14,7 +14,10 @@
14
         <result property="scoreChange" column="score_change" />
14
         <result property="scoreChange" column="score_change" />
15
         <result property="scoreDimension" column="score_dimension" />
15
         <result property="scoreDimension" column="score_dimension" />
16
         <result property="evidenceFile" column="evidence_file" />
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
         <result property="createTime" column="create_time" />
21
         <result property="createTime" column="create_time" />
19
         <result property="updateBy"   column="update_by"   />
22
         <result property="updateBy"   column="update_by"   />
20
         <result property="updateTime" column="update_time" />
23
         <result property="updateTime" column="update_time" />
@@ -22,7 +25,7 @@
22
     </resultMap>
25
     </resultMap>
23
 
26
 
24
     <sql id="selectVo">
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
         FROM ledger_reward_penalty
29
         FROM ledger_reward_penalty
27
         WHERE del_flag = '0'
30
         WHERE del_flag = '0'
28
     </sql>
31
     </sql>
@@ -47,4 +50,4 @@
47
         set sync_flag = '1'
50
         set sync_flag = '1'
48
         where sync_flag = '0'
51
         where sync_flag = '0'
49
     </update>
52
     </update>
50
-</mapper>
53
+</mapper>