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