Просмотр исходного кода

1、修改员工身份导入规则
2、修改校区打卡规则

Bingo 3 лет назад
Родитель
Сommit
9455fd6b49

+ 4 - 3
src/main/java/com/chuanghai/attendance/controller/MonthlySummaryController.java

@@ -10,6 +10,7 @@ import com.chuanghai.attendance.entity.MonitorFoldLineTable;
 import com.chuanghai.attendance.entity.MonthlySummary;
 import com.chuanghai.attendance.service.*;
 import com.chuanghai.attendance.utils.FileExportUtil;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.util.StringUtils;
@@ -30,6 +31,7 @@ import java.util.List;
  */
 @RestController
 @RequestMapping("month")
+@Slf4j
 public class MonthlySummaryController {
 
     @Autowired
@@ -86,9 +88,8 @@ public class MonthlySummaryController {
     @GetMapping("analyse")
     public CommonResult analyse() {
         List<MonthlyDto> monthlyDtoList = monthlySummaryService.analyse();
-        monthlyDtoList.forEach(monthlyDto -> {
-            System.out.println(monthlyDto);
-        });
+        MonthlyDto monthlyDto = monthlyDtoList.get(0);
+        log.info("monthlyDtomonthlyDtomonthlyDtomonthlyDto",monthlyDto);
         if (monthlyDtoList.size() > 0) {
             analyseStatu = Boolean.TRUE;
         }

+ 1 - 1
src/main/java/com/chuanghai/attendance/service/WorkerIdentityService.java

@@ -12,5 +12,5 @@ import org.springframework.web.multipart.MultipartFile;
  */
 public interface WorkerIdentityService extends IService<WorkerIdentity> {
     Boolean importWorkExcel(MultipartFile file) throws Exception;
-    String queryByuserId(String userId, String workNum);
+    String queryByuserId(String userId, String workNum, String workName);
 }

+ 17 - 10
src/main/java/com/chuanghai/attendance/service/impl/MonthlySummaryServiceImpl.java

@@ -11,6 +11,7 @@ import com.chuanghai.attendance.service.*;
 import com.chuanghai.attendance.utils.DateUtil;
 import com.chuanghai.attendance.utils.excel.ExcelImportXLSXUtil;
 import com.chuanghai.attendance.vo.ClockTimeVo;
+import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.util.StringUtils;
@@ -28,6 +29,7 @@ import static com.alibaba.excel.util.DateUtils.format;
  * @Description: com.chuanghai.attendance.service.impl
  * @Version: 1.0
  */
+@Slf4j
 @Service("monthlySummaryService")
 public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, MonthlySummary> implements MonthlySummaryService {
 
@@ -285,16 +287,16 @@ public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, Mo
 //                List<OriginalData> originalDataByDateList = originalDataService.queryByTimeAndUserId(date, "2328214111684948", null);
                 List<OriginalData> originalDataByDateList = originalDataService.queryByTimeAndUserId(date, monthlySummary.getUserId(), monthlySummary.getWorkNum());
 
-                String idCard = workerIdentityService.queryByuserId(monthlySummary.getUserId(), monthlySummary.getWorkNum());
+                String idCard = workerIdentityService.queryByuserId(monthlySummary.getUserId(), monthlySummary.getWorkNum(), monthlySummary.getWorkName());
 //                String idCard = workerIdentityService.queryByuserId("2328214111684948", null);
                 //查询该员工当日有打卡记录则记录出勤天数
                 Boolean attendanceStatu = originalDataByDateList.size() > 0 ? Boolean.TRUE : Boolean.FALSE;
                 //如果对应校区的打卡次数超过规定次数,则去除多余的打卡数据,保留对应的打卡机会
-                if (originalDataByDateList.get(0).getClockAddress().contains(HJH)) {
+                if (!originalDataByDateList.get(0).getClockAddress().contains(MXH)) { //标识黄家湖打卡记录
                     if (originalDataByDateList.size() > clockNameHJHList.size()) {
                         originalDataByDateList = originalDataByDateList.subList(0, countHJH);
                     }
-                } else {
+                } else {  //墨轩湖打卡记录
                     if (originalDataByDateList.size() > clockNameMXHList.size()) {
                         originalDataByDateList = originalDataByDateList.subList(0, countMXH);
                     }
@@ -305,11 +307,12 @@ public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, Mo
                 List<String> clockTimeList = new ArrayList<>();
                 for (OriginalData originalData1 : originalDataByDateList) {
 //                    if (originalData1.getClockAddress().contains(HJH) || originalData1.getClockEquipment().contains("手机")) {
-                    if (originalData1.getClockAddress().contains(HJH)) {
+                    if (!originalData1.getClockAddress().contains(MXH)) {
 //                        campusStr += HJH;
                         campusStr += HJH + ",";
                         clockTimeList.add(originalData1.getClockTime() + ":00");
-                    } else if (originalData1.getClockAddress().contains(MXH)) {
+                    } else {
+//                    } else if (originalData1.getClockAddress().contains(MXH)) {
 //                        campusStr += MXH;
                         campusStr += MXH + ",";
                         clockTimeList.add(originalData1.getClockTime() + ":00");
@@ -325,16 +328,18 @@ public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, Mo
                     OriginalData originalData = originalDataByDateList.get(m);
                     //获取第一次打卡的校区位置
                     String campus = "";
-                    if (originalDataByDateList.get(0).getClockAddress().contains(HJH)) {
+                    if (!originalDataByDateList.get(0).getClockAddress().contains(MXH)) {
                         campus = HJH;
-                    } else if (originalDataByDateList.get(0).getClockAddress().contains(MXH)) {
+                    } else {
+//                    } else if (originalDataByDateList.get(0).getClockAddress().contains(MXH)) {
                         campus = MXH;
                     }
                     //获取当前的打卡校区地址
                     String campusNow = "";
-                    if (originalDataByDateList.get(m).getClockAddress().contains(HJH)) {
+                    if (!originalDataByDateList.get(m).getClockAddress().contains(MXH)) {
                         campusNow = HJH;
-                    } else if (originalDataByDateList.get(m).getClockAddress().contains(MXH)) {
+                    } else {
+//                    } else if (originalDataByDateList.get(m).getClockAddress().contains(MXH)) {
                         campusNow = MXH;
                     }
 
@@ -414,6 +419,7 @@ public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, Mo
                                         for (int w = 0; w < clockCount; w++) {
                                             if (qw > 0) {
                                                 recondOfHJHStr += date.substring(3) + " " + clockNameHJHList.get(w+clockIndex+1) + "缺卡\r\n";
+//                                                recondOfHJHStr += date.substring(3) + " " + clockNameHJHList.get(w+clockIndex) + "缺卡\r\n";
                                             }else {
                                                 recondOfHJHStr += date.substring(3) + " " + clockNameHJHList.get(w+clockIndex) + "缺卡\r\n";
                                             }
@@ -559,8 +565,9 @@ public class MonthlySummaryServiceImpl extends ServiceImpl<MonthlySummaryDao, Mo
 
 
             }
+
             monthlyDtoList.add(monthlyDto);
-            //System.out.println(monthlyDto);
+//            System.out.println("sss"+monthlyDtoList.get(0));
         }
         return monthlyDtoList;
     }

+ 27 - 7
src/main/java/com/chuanghai/attendance/service/impl/WorkerIdentityServiceImpl.java

@@ -25,6 +25,8 @@ import java.util.List;
 public class WorkerIdentityServiceImpl extends ServiceImpl<WorkerIdentityDao, WorkerIdentity> implements WorkerIdentityService {
     @Override
     public Boolean importWorkExcel(MultipartFile file) throws Exception {
+        //导入数据前先删除原先的数据
+        deleteIdCard();
         List<WorkerIdentity> workerIdList = new ArrayList<>();
 
         List<String[]> list = ExcelImportXLSXUtil.readerExcel(file.getInputStream(), "员工身份", 4);
@@ -39,10 +41,10 @@ public class WorkerIdentityServiceImpl extends ServiceImpl<WorkerIdentityDao, Wo
             workerIdentity.setWorkName(strings[1]);
             workerIdentity.setIdCard(strings[2]);
             workerIdentity.setUserId(strings[3]);
-            WorkerIdentity queryByIdCard = queryByIdCard(strings[2]);
-            if (queryByIdCard == null) {
+//            WorkerIdentity queryByIdCard = queryByIdCard(strings[2],strings[1]);
+//            if (queryByIdCard == null) {
+//            }
                 workerIdList.add(workerIdentity);
-            }
 
         }
         if (workerIdList.size() > 0 ) {
@@ -53,8 +55,18 @@ public class WorkerIdentityServiceImpl extends ServiceImpl<WorkerIdentityDao, Wo
 
     }
 
+
+    public void deleteIdCard() {
+        List<WorkerIdentity> list = this.list();
+        List<Integer> idList = new ArrayList<>();
+        list.forEach(workerIdentity -> {
+            idList.add(workerIdentity.getId()) ;
+        });
+        this.removeByIds(idList);
+    }
+
     @Override
-    public String queryByuserId(String userId, String workNum) {
+    public String queryByuserId(String userId, String workNum, String workName) {
         QueryWrapper<WorkerIdentity> wrapper = new QueryWrapper<>();
         wrapper.eq("user_id",userId);
       //  System.out.println(userId);
@@ -67,15 +79,23 @@ public class WorkerIdentityServiceImpl extends ServiceImpl<WorkerIdentityDao, Wo
             }
         }
         if (one == null) {
-            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST,userId+" 用户ID不存在");
+            throw new RRException(BizCodeEnume.DATA_IS_NOT_EXIST,  "用户 "+workName+" userId不存在");
         }
         String idCard = one.getIdCard();
         return idCard;
     }
 
-    public WorkerIdentity queryByIdCard(String idCard) {
+    public WorkerIdentity queryByIdCard(String idCard,String workName) {
         QueryWrapper<WorkerIdentity> wrapper = new QueryWrapper<>();
         wrapper.eq("id_card", idCard);
-        return this.getOne(wrapper);
+        WorkerIdentity workerIdentity;
+        try {
+
+            workerIdentity = this.getOne(wrapper);
+        }catch (Exception e){
+
+            throw new  RRException(BizCodeEnume.DATA_IS_EXIST, "员工 " +workName+ " 身份证信息重复");
+        }
+        return workerIdentity;
     }
 }

+ 4 - 2
src/main/resources/application.yml

@@ -11,9 +11,11 @@ spring:
     allow-circular-references: true
   datasource:
     username: root
-    password: root
     driver-class-name: com.mysql.cj.jdbc.Driver
-    url: jdbc:mysql://127.0.0.1:3306/attendance?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
+#    password: root
+#    url: jdbc:mysql://127.0.0.1:3306/attendance?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
+    password: Chuanghai_2022.
+    url: jdbc:mysql://172.16.20.66:3306/attendance?characterEncoding=utf-8&useSSL=FALSE&useAffectedRows=TRUE&allowMultiQueries=true&serverTimezone=GMT%2B8
 
   #配置文件传输的大小
   servlet:

Разница между файлами не показана из-за своего большого размера
+ 145 - 8
src/main/resources/static/doc/index.html


+ 41 - 14
src/main/resources/static/doc/search.js

@@ -7,48 +7,75 @@ api.push({
     list: []
 })
 api.push({
-    alias: 'MonthlySummaryController',
+    alias: 'LateClockController',
     order: '2',
-    link: '',
-    desc: '',
+    link: '迟到早退',
+    desc: '迟到早退',
     list: []
 })
-api[1].list.push({
+api.push({
+    alias: 'MonthlySummaryController',
+    order: '3',
+    link: '月度汇总',
+    desc: '月度汇总',
+    list: []
+})
+api[2].list.push({
     order: '1',
     desc: '读取钉钉考勤excel原始数据,添加至数据库',
 });
-api.push({
-    alias: 'OriginalDataController',
+api[2].list.push({
+    order: '2',
+    desc: '分析钉钉原始数据',
+});
+api[2].list.push({
     order: '3',
-    link: '',
+    desc: '查询解析是否完成',
+});
+api[2].list.push({
+    order: '4',
+    desc: '下载excel数据',
+});
+api[2].list.push({
+    order: '5',
     desc: '',
+});
+api[2].list.push({
+    order: '6',
+    desc: '获取月度 日标题',
+});
+api.push({
+    alias: 'OriginalDataController',
+    order: '4',
+    link: '原始数据',
+    desc: '原始数据',
     list: []
 })
-api[2].list.push({
+api[3].list.push({
     order: '1',
     desc: '读取钉钉考勤excel原始数据,添加至数据库',
 });
 api.push({
     alias: 'WorkerIdentityController',
-    order: '4',
-    link: '',
-    desc: '',
+    order: '5',
+    link: '员工身份',
+    desc: '员工身份',
     list: []
 })
-api[3].list.push({
+api[4].list.push({
     order: '1',
     desc: '读取钉钉考勤excel原始数据,添加至数据库',
 });
 api.push({
     alias: 'error',
-    order: '5',
+    order: '6',
     link: 'error_code_list',
     desc: '错误码列表',
     list: []
 })
 api.push({
     alias: 'dict',
-    order: '6',
+    order: '7',
     link: 'dict_list',
     desc: '数据字典',
     list: []