From dd9759eaa3dabd3d55943fc0c741fd5018d2d76e Mon Sep 17 00:00:00 2001
From: java110 <928255095@qq.com>
Date: 星期三, 31 五月 2023 16:43:29 +0800
Subject: [PATCH] optimize dining

---
 service-store/src/main/java/com/java110/store/cmd/scheduleClasses/StaffMonthScheduleClassesCmd.java |  190 ++--------------------------------------------
 1 files changed, 11 insertions(+), 179 deletions(-)

diff --git a/service-store/src/main/java/com/java110/store/cmd/scheduleClasses/StaffMonthScheduleClassesCmd.java b/service-store/src/main/java/com/java110/store/cmd/scheduleClasses/StaffMonthScheduleClassesCmd.java
index 06dedc6..cda25ca 100644
--- a/service-store/src/main/java/com/java110/store/cmd/scheduleClasses/StaffMonthScheduleClassesCmd.java
+++ b/service-store/src/main/java/com/java110/store/cmd/scheduleClasses/StaffMonthScheduleClassesCmd.java
@@ -20,16 +20,12 @@
 import com.java110.core.context.ICmdDataFlowContext;
 import com.java110.core.event.cmd.Cmd;
 import com.java110.core.event.cmd.CmdEvent;
-import com.java110.dto.scheduleClasses.ScheduleClassesDto;
-import com.java110.dto.scheduleClassesDay.ScheduleClassesDayDto;
-import com.java110.dto.scheduleClassesStaff.ScheduleClassesStaffDto;
+import com.java110.dto.scheduleClasses.ScheduleClassesStaffDto;
 import com.java110.intf.store.IScheduleClassesDayV1InnerServiceSMO;
 import com.java110.intf.store.IScheduleClassesStaffV1InnerServiceSMO;
 import com.java110.intf.store.IScheduleClassesV1InnerServiceSMO;
 import com.java110.utils.exception.CmdException;
 import com.java110.utils.util.Assert;
-import com.java110.utils.util.BeanConvertUtil;
-import com.java110.utils.util.DateUtil;
 import com.java110.vo.ResultVo;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,7 +34,6 @@
 import org.springframework.http.ResponseEntity;
 
 import java.util.ArrayList;
-import java.util.Calendar;
 import java.util.List;
 
 
@@ -79,196 +74,33 @@
         ScheduleClassesStaffDto scheduleClassesStaffDto = new ScheduleClassesStaffDto();
         scheduleClassesStaffDto.setStaffId(reqJson.getString("staffId"));
         scheduleClassesStaffDto.setStaffNameLike(reqJson.getString("staffNameLike"));
+        scheduleClassesStaffDto.setScheduleId(reqJson.getString("scheduleId"));
+
         scheduleClassesStaffDto.setPage(reqJson.getIntValue("page"));
         scheduleClassesStaffDto.setRow(reqJson.getIntValue("row"));
         scheduleClassesStaffDto.setStoreId(storeId);
+        scheduleClassesStaffDto.setOrgId(reqJson.getString("orgId"));
 
         int count = scheduleClassesStaffV1InnerServiceSMOImpl.queryScheduleClassesStaffsCount(scheduleClassesStaffDto);
 
         List<ScheduleClassesStaffDto> scheduleClassesStaffDtos = null;
+        List<ScheduleClassesStaffDto> tmpScheduleClassesStaffDtos =  new ArrayList<>();
+        ScheduleClassesStaffDto tmpScheduleClassesStaffDto = null;
 
         if (count > 0) {
             scheduleClassesStaffDtos = scheduleClassesStaffV1InnerServiceSMOImpl.queryScheduleClassesStaffs(scheduleClassesStaffDto);
-            for (ScheduleClassesStaffDto tmpScheduleClassesStaffDto : scheduleClassesStaffDtos) {
-                computeStaffCurMonthWorkday(tmpScheduleClassesStaffDto, reqJson);
+            for (ScheduleClassesStaffDto scheduleClassesStaffDto1 : scheduleClassesStaffDtos) {
+                scheduleClassesStaffDto1.setCurDate(reqJson.getString("curDate"));
+                tmpScheduleClassesStaffDto = scheduleClassesStaffV1InnerServiceSMOImpl.computeStaffCurMonthWorkday(scheduleClassesStaffDto1);
+                tmpScheduleClassesStaffDtos.add(tmpScheduleClassesStaffDto);
             }
-        } else {
-            scheduleClassesStaffDtos = new ArrayList<>();
         }
 
-        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, scheduleClassesStaffDtos);
+        ResultVo resultVo = new ResultVo((int) Math.ceil((double) count / (double) reqJson.getInteger("row")), count, tmpScheduleClassesStaffDtos);
 
         ResponseEntity<String> responseEntity = new ResponseEntity<String>(resultVo.toString(), HttpStatus.OK);
 
         cmdDataFlowContext.setResponseEntity(responseEntity);
-    }
-
-    /**
-     * 璁$畻 鍛樺伐 鎺掔彮鎯呭喌
-     *
-     * @param scheduleClassesStaffDto
-     * @param reqJson
-     */
-    private void computeStaffCurMonthWorkday(ScheduleClassesStaffDto scheduleClassesStaffDto, JSONObject reqJson) {
-
-        ScheduleClassesDto scheduleClassesDto = new ScheduleClassesDto();
-        scheduleClassesDto.setScheduleId(scheduleClassesStaffDto.getScheduleId());
-        List<ScheduleClassesDto> scheduleClassesDtos = scheduleClassesV1InnerServiceSMOImpl.queryScheduleClassess(scheduleClassesDto);
-        //杩欓噷 濡傛灉娌℃湁鍛樺伐鎺掔彮 閭d箞灏辫涓� 鍛樺伐涓�鐩村湪涓婄彮
-        if (scheduleClassesDtos == null || scheduleClassesDtos.size() < 1) {
-            return;
-        }
-
-        ScheduleClassesDayDto scheduleClassesDayDto = new ScheduleClassesDayDto();
-        scheduleClassesDayDto.setScheduleId(scheduleClassesDtos.get(0).getScheduleId());
-        List<ScheduleClassesDayDto> scheduleClassesDayDtos = scheduleClassesDayV1InnerServiceSMOImpl.queryScheduleClassesDays(scheduleClassesDayDto);
-
-        //璁剧疆闂 锛岃繖閲岄粯璁ゅ弽棣堝湪绾�
-        if (scheduleClassesDayDtos == null || scheduleClassesDayDtos.size() < 1) {
-            return;
-        }
-
-        String curMonth = reqJson.getString("curDate");
-        String curMonthDay = curMonth + "-01";
-
-        Calendar calendar = Calendar.getInstance();
-        calendar.setTime(DateUtil.getDateFromStringB(curMonthDay));
-        int maxDay = calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
-
-        if (ScheduleClassesDto.SCHEDULE_TYPE_DAY.equals(scheduleClassesDtos.get(0).getScheduleType())) {
-            doDay(scheduleClassesStaffDto, scheduleClassesDtos.get(0), scheduleClassesDayDtos, curMonth, maxDay);
-        } else if (ScheduleClassesDto.SCHEDULE_TYPE_WEEK.equals(scheduleClassesDtos.get(0).getScheduleType())) {
-            doWeek(scheduleClassesStaffDto, scheduleClassesDtos.get(0), scheduleClassesDayDtos, curMonth, maxDay);
-        } else if (ScheduleClassesDto.SCHEDULE_TYPE_MONTH.equals(scheduleClassesDtos.get(0).getScheduleType())) {
-            doMonth(scheduleClassesStaffDto, scheduleClassesDtos.get(0), scheduleClassesDayDtos, curMonth, maxDay);
-        }
-
-
-
-    }
-
-    private void doDay(ScheduleClassesStaffDto scheduleClassesStaffDto,
-                       ScheduleClassesDto scheduleClassesDto,
-                       List<ScheduleClassesDayDto> scheduleClassesDayDtos,
-                       String curMonth, int maxDay) {
-        List<ScheduleClassesDayDto> days = new ArrayList<>();
-        ScheduleClassesDayDto scDay = null;
-        ScheduleClassesDayDto tmpScheduleClassesDayDto = null;
-        int curDay = 1;
-        for (int day = 1; day <= maxDay; day++) {
-            scDay = new ScheduleClassesDayDto();
-            String today = curMonth + "-"+day;
-
-            int scheduleCycle = Integer.parseInt(scheduleClassesDto.getScheduleCycle());
-
-            int allDay = DateUtil.daysBetween(scheduleClassesDto.getComputeTime(), today)+1;
-            curDay = allDay % scheduleCycle;
-
-            if (curDay == 0 && day == 1) {
-                curDay = 1;
-            }
-            if (curDay == 0 && day > 1) {
-                curDay = scheduleCycle;
-            }
-
-
-
-            scDay.setDay(day+"");
-            //璁$畻 鎺掔彮
-            for(ScheduleClassesDayDto scheduleClassesDayDto1 : scheduleClassesDayDtos){
-                if((curDay+"").equals(scheduleClassesDayDto1.getDay())){
-                    tmpScheduleClassesDayDto = scheduleClassesDayDto1;
-                }
-            }
-            if(tmpScheduleClassesDayDto != null ){
-                scDay.setWorkday(tmpScheduleClassesDayDto.getWorkday());
-                scDay.setTimes(tmpScheduleClassesDayDto.getTimes());
-            }
-            days.add(scDay);
-
-        }
-
-        scheduleClassesStaffDto.setDays(days);
-    }
-
-    private void doWeek(ScheduleClassesStaffDto scheduleClassesStaffDto,
-                       ScheduleClassesDto scheduleClassesDto,
-                       List<ScheduleClassesDayDto> scheduleClassesDayDtos,
-                       String curMonth, int maxDay) {
-        List<ScheduleClassesDayDto> days = new ArrayList<>();
-        ScheduleClassesDayDto scDay = null;
-        ScheduleClassesDayDto tmpScheduleClassesDayDto = null;
-        int curDay = 1;
-        for (int day = 1; day <= maxDay; day++) {
-            scDay = new ScheduleClassesDayDto();
-            Calendar today = Calendar.getInstance();
-            today.setTime(DateUtil.getDateFromStringB(curMonth + "-"+day));
-            int week = today.get(Calendar.WEEK_OF_MONTH);
-            curDay = today.get(Calendar.DAY_OF_WEEK);
-
-            //涓�鍛ㄧ涓�澶╂槸鍚︿负鏄熸湡澶�
-            boolean isFirstSunday = (today.getFirstDayOfWeek() == Calendar.SUNDAY);
-            //鑾峰彇鍛ㄥ嚑
-            //鑻ヤ竴鍛ㄧ涓�澶╀负鏄熸湡澶╋紝鍒�-1
-            if (isFirstSunday) {
-                curDay = curDay - 1;
-                if (curDay == 0) {
-                    curDay = 7;
-                }
-            }
-
-            scDay.setDay(day+"");
-            //璁$畻 鎺掔彮
-            for(ScheduleClassesDayDto scheduleClassesDayDto1 : scheduleClassesDayDtos){
-                if((curDay+"").equals(scheduleClassesDayDto1.getDay()) && (week+"").equals(scheduleClassesDayDto1.getWeekFlag())){
-                    tmpScheduleClassesDayDto = scheduleClassesDayDto1;
-                }
-            }
-            if(tmpScheduleClassesDayDto == null){ // 娌℃湁璁剧疆鍛�
-                for(ScheduleClassesDayDto scheduleClassesDayDto1 : scheduleClassesDayDtos){
-                    if((curDay+"").equals(scheduleClassesDayDto1.getDay())){
-                        tmpScheduleClassesDayDto = scheduleClassesDayDto1;
-                    }
-                }
-            }
-            if(tmpScheduleClassesDayDto != null ){
-                scDay.setWorkday(tmpScheduleClassesDayDto.getWorkday());
-                scDay.setTimes(tmpScheduleClassesDayDto.getTimes());
-            }
-            days.add(scDay);
-
-        }
-
-        scheduleClassesStaffDto.setDays(days);
-    }
-
-
-    private void doMonth(ScheduleClassesStaffDto scheduleClassesStaffDto,
-                        ScheduleClassesDto scheduleClassesDto,
-                        List<ScheduleClassesDayDto> scheduleClassesDayDtos,
-                        String curMonth, int maxDay) {
-        List<ScheduleClassesDayDto> days = new ArrayList<>();
-        ScheduleClassesDayDto scDay = null;
-        ScheduleClassesDayDto tmpScheduleClassesDayDto = null;
-        int curDay = 1;
-        for (int day = 1; day <= maxDay; day++) {
-            scDay = new ScheduleClassesDayDto();
-            curDay = day;
-            scDay.setDay(day+"");
-            //璁$畻 鎺掔彮
-            for(ScheduleClassesDayDto scheduleClassesDayDto1 : scheduleClassesDayDtos){
-                if((curDay+"").equals(scheduleClassesDayDto1.getDay())){
-                    tmpScheduleClassesDayDto = scheduleClassesDayDto1;
-                }
-            }
-            if(tmpScheduleClassesDayDto != null ){
-                scDay.setWorkday(tmpScheduleClassesDayDto.getWorkday());
-                scDay.setTimes(tmpScheduleClassesDayDto.getTimes());
-            }
-            days.add(scDay);
-        }
-
-        scheduleClassesStaffDto.setDays(days);
     }
 
 

--
Gitblit v1.8.0