LiGuang 3 lat temu
rodzic
commit
fa9984809d

+ 22 - 4
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/attendance/service/impl/AttendanceServiceImpl.java

@@ -87,8 +87,14 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                                 Date endDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getEndDate()), sd);
                                 Date usStartDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(0).getUsDate()), sd);
                                 Date usEndDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
-                                if (usStartDate.getTime() > startDate.getTime() || usEndDate.getTime() < endDate.getTime()) {
+                                if (usStartDate.getTime() > startDate.getTime()) {
+                                    cont = "1";
+                                    attendances.get(0).setExceptionType("时间异常");
+                                    attendances.get(0).setHolidayType(sdt.format(attendanceRule.getStartDate()));
+                                }if(usEndDate.getTime() < endDate.getTime()){
                                     cont = "1";
+                                    attendances.get(attendances.size() - 1).setExceptionType("时间异常");
+                                    attendances.get(attendances.size() - 1).setHolidayType(sdt.format(attendanceRule.getEndDate()));
                                 }
                             }
                         } else {
@@ -113,8 +119,14 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                                     Date endDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendanceRule.getEndDate()), sd);
                                     Date usStartDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(0).getUsDate()), sd);
                                     Date usEndDate = DateUtils.str2Date("2021-10-21 " + sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
-                                    if (usStartDate.getTime() > startDate.getTime() || usEndDate.getTime() < endDate.getTime()) {
+                                    if (usStartDate.getTime() > startDate.getTime()) {
                                         cont = "1";
+                                        attendances.get(0).setExceptionType("时间异常");
+                                        attendances.get(0).setHolidayType(sdt.format(attendanceRule.getStartDate()));
+                                    }if (usEndDate.getTime() < endDate.getTime()){
+                                        cont = "1";
+                                        attendances.get(attendances.size() - 1).setExceptionType("时间异常");
+                                        attendances.get(attendances.size() - 1).setHolidayType(sdt.format(attendanceRule.getEndDate()));
                                     }
                                 }
                             } else {
@@ -124,7 +136,7 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                     }
                 }else  if (attendanceRule.getType().equals("2")){//规则类型 2,按班次上下班
                     List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, date,"");
-                    if (oneUserShift!=null&&oneUserShift.size()>0){
+                    if (oneUserShift!=null&&oneUserShift.size()>0&&!oneUserShift.get(0).get("id").equals("0")){
                         if (attendances!=null&&attendances.size()>1){//判断打卡记录是否有上下班
                             if (exitprio(attendances).equals("1")){//判断打卡记录是否异常,1,异常
                                 cont="1";
@@ -133,8 +145,14 @@ public class AttendanceServiceImpl extends ServiceImpl<AttendanceMapper, Attenda
                                 Date endDate = DateUtils.str2Date("2021-10-21 "+oneUserShift.get(0).get("endDate"), sd);
                                 Date usStartDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(0).getUsDate()), sd);
                                 Date usEndDate = DateUtils.str2Date("2021-10-21 "+sdt.format(attendances.get(attendances.size() - 1).getUsDate()), sd);
-                                if (usStartDate.getTime()>startDate.getTime()||usEndDate.getTime()<endDate.getTime()){
+                                if (usStartDate.getTime()>startDate.getTime()){
+                                    cont="1";
+                                    attendances.get(0).setExceptionType("时间异常");
+                                    attendances.get(0).setHolidayType(oneUserShift.get(0).get("startDate").toString());
+                                }if (usEndDate.getTime()<endDate.getTime()){
                                     cont="1";
+                                    attendances.get(attendances.size() - 1).setExceptionType("时间异常");
+                                    attendances.get(attendances.size() - 1).setHolidayType(oneUserShift.get(0).get("endDate").toString());
                                 }
                             }
                         }else {

+ 6 - 9
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/controller/UserShiftController.java

@@ -187,15 +187,12 @@ public class UserShiftController extends JeecgController<UserShift, IUserShiftSe
 
 
 
-//	 @GetMapping(value = "/queryByUser")
-//	 public Result<?> queryByUser(UserShift userShift) throws ParseException {
-//		// List<Map<String, Object>> oneUserShift = userShiftService.getMothUserShifts(userShift.getUserId(), DateUtils.formatDate(userShift.getShiftDate()));
-//		 List<Map<String, Object>> maps = userShiftService.mothUserShift(DateUtils.formatDate(userShift.getShiftDate()));
-//		 if (maps.size()<1){
-//			 maps=null;
-//		 }
-//		 return Result.OK(maps);
-//	 }
+	 @GetMapping(value = "/UserShiftType")
+	 public Result<?> UserShiftType(UserShift userShift) throws ParseException {
+
+		 String userShiftType = userShiftService.getUserShiftType(DateUtils.formatDate(userShift.getShiftDate()), userShift.getUserId());
+		 return Result.OK(userShiftType);
+	 }
 
 
 

+ 2 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/service/IUserShiftService.java

@@ -45,4 +45,6 @@ public interface IUserShiftService extends IService<UserShift> {
 
     IPage<Map<String,Object>>mothUserByCount(Page<Map<String,Object>> page,String date,List<String>deptids) throws ParseException;
     IPage<Map<String,Object>>query(Page<Map<String,Object>> page);
+
+    String getUserShiftType(String date,String userid);
 }

+ 12 - 0
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/userShift/service/impl/UserShiftServiceImpl.java

@@ -276,4 +276,16 @@ public class UserShiftServiceImpl extends ServiceImpl<UserShiftMapper, UserShift
     public IPage<Map<String, Object>> query(Page<Map<String, Object>> page) {
         return page.setRecords(shiftMapper.query(page));
     }
+
+    @Override
+    public String getUserShiftType(String date, String userid) {
+        List<Map<String,Object>> oneUserShift = userShiftMapper.getOneUserShift(userid, date,"");
+        String type="0";
+        if (oneUserShift!=null&&oneUserShift.size()>0){
+            if (!oneUserShift.get(0).get("id").equals("0")) {
+                type="1";
+            }
+        }
+        return type;
+    }
 }

+ 1 - 1
jeecg-boot-module-demo/src/main/java/org/jeecg/modules/geke/vacation/mapper/xml/VacationMapper.xml

@@ -98,7 +98,7 @@
                 and date_format(start_date,'%Y-%m-%d')>=date_format(#{date},'%Y-%m-%d')
             </if>
             GROUP BY user_id) b on a.id=b.id
-           left join (select person as 'id',sum(duration) as 'count' from bd_work_overtime where demo not like "%做六休一%" and demo not like "%做6休1%" and demo not like "%做六休1%" and demo not like "%做6休一%" and demo not like "%做六体一%"
+           left join (select person as 'id',sum(duration) as 'count' from bd_work_overtime where set_info='累计调休'
         <if test="userid!=null and ''!=userid">
             and person=#{userid}
         </if>

+ 4 - 4
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/controller/SysUserController.java

@@ -376,13 +376,13 @@ public class SysUserController {
                 }if (one!=null&&one.size()>0){
                     HistoryWages historyWages = one.get(0);
                     String is="0";
-                    if (!user.getWagesBase().equals(historyWages.getWagesBase())){
+                    if (user.getWagesBase()!=null&&!user.getWagesBase().equals(historyWages.getWagesBase())){
                         is="1";
-                    }else if (!user.getWagesOne().equals(historyWages.getWagesOne())){
+                    }else if (user.getWagesOne()!=null&&!user.getWagesOne().equals(historyWages.getWagesOne())){
                         is="1";
-                    }else if (!user.getWagesTwo().equals(historyWages.getWagesTwo())){
+                    }else if (user.getWagesTwo()!=null&&!user.getWagesTwo().equals(historyWages.getWagesTwo())){
                         is="1";
-                    }else if (!user.getSecurity().equals(historyWages.getSecurity())){
+                    }else if (user.getSecurity()!=null&&!user.getSecurity().equals(historyWages.getSecurity())){
                         is="1";
                     }
 

+ 73 - 41
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/service/impl/WeixinUserImpl.java

@@ -573,18 +573,24 @@ public class WeixinUserImpl implements IWeixinUserService{
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");//日期格式化
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
         int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
-        String sDate = "";
-        String eDate = "";
+//        String sDate = "";
+//        String eDate = "";
         Date stDate = null;
         Date enDate = null;
         long startDate;
         long endDate;
-        sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
-        eDate = simpleDateFormat.format(new Date())  + "-" + actualMaximum + " 23:59:59";
-        stDate = sdf.parse(sDate);
-        enDate = sdf.parse(eDate);
-        startDate = stDate.getTime() / 1000;
-        endDate = enDate.getTime() / 1000;
+        Calendar now = Calendar.getInstance();
+        endDate =now.getTime().getTime()/1000;
+        enDate = now.getTime();
+        now.add(Calendar.DAY_OF_MONTH, -30);
+        startDate = now.getTime().getTime()/1000;
+        stDate = now.getTime();
+//        sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
+//        eDate = simpleDateFormat.format(new Date())  + "-" + actualMaximum + " 23:59:59";
+//        stDate = sdf.parse(sDate);
+//        enDate = sdf.parse(eDate);
+//        startDate = stDate.getTime() / 1000;
+//        endDate = enDate.getTime() / 1000;
         try {
             List<String> list = WeixinUserIdList();
             if (list != null && list.size() > 0) {
@@ -692,27 +698,37 @@ public class WeixinUserImpl implements IWeixinUserService{
         UrlData.getToken();
         String msg="ok";
 
-            Calendar calendar = Calendar.getInstance();//获取系统时间实列
+            Calendar now = Calendar.getInstance();//获取系统时间实列
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");//日期格式化
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
+            int actualMaximum = now.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
             String sDate = "";
             String eDate = "";
             Date stDate = null;
             Date enDate = null;
             long startDate;
             long endDate;
-            sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
-            eDate = simpleDateFormat.format(new Date()) + "-" + actualMaximum + " 23:59:59";
-            stDate = sdf.parse(sDate);
-            enDate = sdf.parse(eDate);
-            startDate = stDate.getTime() / 1000;
-            endDate = enDate.getTime() / 1000;
+        endDate =now.getTime().getTime()/1000;
+        enDate = now.getTime();
+        now.add(Calendar.DAY_OF_MONTH, -30);
+        startDate = now.getTime().getTime()/1000;
+        stDate = now.getTime();
+//            sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
+//            eDate = simpleDateFormat.format(new Date()) + "-" + actualMaximum + " 23:59:59";
+//            stDate = sdf.parse(sDate);
+//            enDate = sdf.parse(eDate);
+//            startDate = stDate.getTime() / 1000;
+//            endDate = enDate.getTime() / 1000;
             List<String> list = WeixinVacationList(String.valueOf(startDate), String.valueOf(endDate),"5");
             for (String ls:list){//循环审批id
                 workOvertime workOvertime = WeixinWorks(ls);
                 if (workOvertime!=null) {
-                    Boolean aBoolean = iworkOvertimeService.workSave(workOvertime);
+                    try {
+                        Boolean aBoolean = iworkOvertimeService.workSave(workOvertime);
+                    }catch (Exception e){
+                        e.printStackTrace();
+                    }
+
                 }
             }
         return null;
@@ -730,22 +746,27 @@ public class WeixinUserImpl implements IWeixinUserService{
         UrlData.getToken();
         String msg="ok";
         List<UserQuit>lst=new ArrayList<>();
-        Calendar calendar = Calendar.getInstance();//获取系统时间实列
+        Calendar now = Calendar.getInstance();//获取系统时间实列
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");//日期格式化
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
+        int actualMaximum = now.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
         String sDate = "";
         String eDate = "";
         Date stDate = null;
         Date enDate = null;
         long startDate;
         long endDate;
-        sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
-        eDate = simpleDateFormat.format(new Date()) + "-" + actualMaximum + " 23:59:59";
-        stDate = sdf.parse(sDate);
-        enDate = sdf.parse(eDate);
-        startDate = stDate.getTime() / 1000;
-        endDate = enDate.getTime() / 1000;
+        endDate =now.getTime().getTime()/1000;
+        enDate = now.getTime();
+        now.add(Calendar.DAY_OF_MONTH, -30);
+        startDate = now.getTime().getTime()/1000;
+        stDate = now.getTime();
+//        sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
+//        eDate = simpleDateFormat.format(new Date()) + "-" + actualMaximum + " 23:59:59";
+//        stDate = sdf.parse(sDate);
+//        enDate = sdf.parse(eDate);
+//        startDate = stDate.getTime() / 1000;
+//        endDate = enDate.getTime() / 1000;
         List<String> list = WeixinVacationList(String.valueOf(startDate), String.valueOf(endDate),null);
         userQuitService.deleteQuit(sDate,eDate);
         for (String ls:list){//循环审批id
@@ -771,22 +792,27 @@ public class WeixinUserImpl implements IWeixinUserService{
         UrlData.getVacationToken();
         UrlData.getToken();
         String msg="ok";
-        Calendar calendar = Calendar.getInstance();//获取系统时间实列
+        Calendar now = Calendar.getInstance();//获取系统时间实列
         SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");//日期格式化
         SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-        int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
+        int actualMaximum = now.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
         String sDate = "";
         String eDate = "";
         Date stDate = null;
         Date enDate = null;
         long startDate;
         long endDate;
-        sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
-        eDate = simpleDateFormat.format(new Date()) + "-" + actualMaximum + " 23:59:59";
-        stDate = sdf.parse(sDate);
-        enDate = sdf.parse(eDate);
-        startDate = stDate.getTime() / 1000;
-        endDate = enDate.getTime() / 1000;
+        endDate =now.getTime().getTime()/1000;
+        enDate = now.getTime();
+        now.add(Calendar.DAY_OF_MONTH, -30);
+        startDate = now.getTime().getTime()/1000;
+        stDate = now.getTime();
+//        sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
+//        eDate = simpleDateFormat.format(new Date()) + "-" + actualMaximum + " 23:59:59";
+//        stDate = sdf.parse(sDate);
+//        enDate = sdf.parse(eDate);
+//        startDate = stDate.getTime() / 1000;
+//        endDate = enDate.getTime() / 1000;
         List<String> list = WeixinVacationList(String.valueOf(startDate), String.valueOf(endDate),"2");
         makeUpCardService.deleteDate(sDate);
         List<MakeUpCard>ls=new ArrayList<>();
@@ -1020,6 +1046,7 @@ public class WeixinUserImpl implements IWeixinUserService{
                 if (weixinApproval != null&&weixinApproval.getSp_status().equals("2")) {//获取数据库字段所需的数据
                     work=new workOvertime();
                     work.setCode(weixinApproval.getSp_no());
+                    work.setId(weixinApproval.getSp_no());
                     String us = weixinApproval.getApplyer().toString();
                     mapTypes = JSON.parseObject(us);
                     work.setPerson(mapTypes.get("userid").toString());
@@ -1153,22 +1180,27 @@ public class WeixinUserImpl implements IWeixinUserService{
       UrlData.getToken();
       String msg="ok";
         try {
-            Calendar calendar = Calendar.getInstance();//获取系统时间实列
+            Calendar now = Calendar.getInstance();//获取系统时间实列
             SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM");//日期格式化
             SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
-            int actualMaximum = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
+            int actualMaximum = now.getActualMaximum(Calendar.DAY_OF_MONTH);//获取前端传过来的时间获取月份的总天数
             String sDate = "";
             String eDate = "";
             Date stDate = null;
             Date enDate = null;
             long startDate;
             long endDate;
-            sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
-            eDate = simpleDateFormat.format(new Date()) + "-" + actualMaximum + " 23:59:59";
-            stDate = sdf.parse(sDate);
-            enDate = sdf.parse(eDate);
-            startDate = stDate.getTime() / 1000;
-            endDate = enDate.getTime() / 1000;
+            endDate =now.getTime().getTime()/1000;
+            enDate = now.getTime();
+            now.add(Calendar.DAY_OF_MONTH, -30);
+            startDate = now.getTime().getTime()/1000;
+            stDate = now.getTime();
+//            sDate = simpleDateFormat.format(new Date()) + "-01 00:00:00";
+//            eDate = simpleDateFormat.format(new Date()) + "-" + actualMaximum + " 23:59:59";
+//            stDate = sdf.parse(sDate);
+//            enDate = sdf.parse(eDate);
+//            startDate = stDate.getTime() / 1000;
+//            endDate = enDate.getTime() / 1000;
             UrlData.getVacationToken();
             List<String> list = WeixinVacationList(String.valueOf(startDate), String.valueOf(endDate),"1");
                     for (String ls:list){//循环审批id

+ 8 - 8
jeecg-boot-module-system/src/main/java/org/jeecg/modules/workOvertime/service/impl/workOvertimeServiceImpl.java

@@ -24,15 +24,15 @@ public class workOvertimeServiceImpl extends ServiceImpl<workOvertimeMapper, wor
 
     @Override
     public Boolean workSave(workOvertime work) {
-        Boolean b=true;
-        String one = works.getOne(work.getPerson(), DateUtils.formatDate(work.getCommitDate()));
-        if (one!=null&&!one.equals("")){
-            return true;
-        }
+//        Boolean b=true;
+//        String one = works.getOne(work.getPerson(), DateUtils.formatDate(work.getCommitDate()));
+//        if (one!=null&&!one.equals("")){
+//            return true;
+//        }
+//
+//        b= save(work);
 
-        b= save(work);
-
-       return b;
+       return save(work);
     }
 
     @Override