src/main/java/com/zy/asrs/controller/OpenController.java
@@ -57,17 +57,6 @@ } /** * 库存统计 */ @RequestMapping("/stock/default/v1") public R queryStock(@RequestHeader(required = false) String appkey, HttpServletRequest request) { auth(appkey, null, request); return R.ok().add(openService.queryStock()); } private void auth(String appkey, Object obj, HttpServletRequest request) { log.info("{}接口被访问;appkey:{};请求数据:{}", "open/sensorType/list/auth/v1", appkey, JSON.toJSONString(obj)); request.setAttribute("cache", obj); src/main/java/com/zy/asrs/entity/param/WcsTaskDistributionParam.java
@@ -20,7 +20,7 @@ add(131);add(132);add(133); }}; private Integer taskNo;//工作号 private Long taskNo;//工作号 private String startSta;//起点 private String endSta;//终点 src/main/java/com/zy/asrs/mapper/WrkMastMapper.java
@@ -11,6 +11,9 @@ @Repository public interface WrkMastMapper extends BaseMapper<WrkMast> { @Insert("insert into asr_wrk_mast_log select * from asr_wrk_mast where wrk_no=#{workNo}") int saveLog(Long workNo); WrkMast selectByLocNo(@Param("sourceLocNo") String sourceLocNo); WrkMast selectByLocNo1(@Param("sourceLocNo") String sourceLocNo); src/main/java/com/zy/asrs/service/WrkMastService.java
@@ -7,6 +7,8 @@ public interface WrkMastService extends IService<WrkMast> { boolean saveLog(Long workNo); int getWorkingMast(Integer devpNo); List<WrkMast> selectToBeCompleteData(); src/main/java/com/zy/asrs/service/impl/MainServiceImpl.java
@@ -179,6 +179,8 @@ break runRgv; } wrkMast.setWrkSts(2L); wrkMast.setRgvNo(rgvProtocol.getRgvNo()); wrkMast.setAppeTime(new Date()); try{ wrkMastService.updateById(wrkMast); continue ; @@ -225,6 +227,7 @@ break; } wrkMast.setWrkSts(3L); wrkMast.setAppeTime(new Date()); wrkMastService.updateById(wrkMast); } } src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -12,6 +12,7 @@ import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; import java.util.List; /** @@ -33,6 +34,7 @@ @Override @Transactional public R wcsTaskDistribution(WcsTaskDistributionParam param) { Date now = new Date(); WrkMast wrkMast1 = wrkMastService.selectOne(new EntityWrapper<WrkMast>().eq("wrk_no", param.getTaskNo())); if (!Cools.isEmpty(wrkMast1)){ return R.error("工作号已存在").add("工作号已存在,taskNo="+param.getTaskNo()); @@ -43,6 +45,8 @@ wrkMast.setStaNo(param.getEndSta$()); wrkMast.setWrkSts(1L); wrkMast.setIoType(1); wrkMast.setModiTime(now); wrkMast.setAppeTime(now); wrkMastService.insert(wrkMast); return R.ok(); } src/main/java/com/zy/asrs/service/impl/WrkMastServiceImpl.java
@@ -13,6 +13,11 @@ public class WrkMastServiceImpl extends ServiceImpl<WrkMastMapper, WrkMast> implements WrkMastService { @Override public boolean saveLog(Long workNo) { return this.baseMapper.saveLog(workNo) > 0; } @Override public int getWorkingMast(Integer devpNo) { return selectCount(new EntityWrapper<WrkMast>().eq("source_sta_no", devpNo).in("wrk_sts", 1, 6)); } src/main/java/com/zy/asrs/task/RgvTaskReportingScheduler.java
New file @@ -0,0 +1,43 @@ package com.zy.asrs.task; import com.baomidou.mybatisplus.mapper.EntityWrapper; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.RgvTaskReportingHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; /** * Created by Monkey D. Luffy on 2024.10.19 * 广东海玛..............以下.............环穿调度.............任务完成信息上传 */ @Slf4j @Component public class RgvTaskReportingScheduler { @Autowired private WrkMastService wrkMastService; @Autowired private RgvTaskReportingHandler rgvTaskReportingHandler; @Scheduled(cron = "0/3 * * * * ? ") private void execute(){//任务完成信息上传 List<WrkMast> wrkMasts = wrkMastService.selectList(new EntityWrapper<WrkMast>().eq("wrk_sts", 3L)); for (WrkMast wrkMast : wrkMasts){ try{ ReturnT<String> result = rgvTaskReportingHandler.start(wrkMast); if (result.getCode()==200){ break; } }catch (Exception e){ log.error("工作号"+wrkMast.getWrkNo()+"任务完成信息上传处理失败,异常信息:"+e); } } } } src/main/java/com/zy/asrs/task/WorkLogScheduler.java
New file @@ -0,0 +1,44 @@ package com.zy.asrs.task; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.handler.WorkLogHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.util.List; /** * Created by vincent on 2020/7/7 */ @Slf4j @Component public class WorkLogScheduler { @Autowired private WorkLogHandler workLogHandler; @Autowired private WrkMastService wrkMastService; @Scheduled(cron = "0/3 * * * * ? ") private void execute(){ List<WrkMast> wrkMasts = wrkMastService.selectToBeHistoryData(); if (wrkMasts.isEmpty()) { return; } for (WrkMast wrkMast : wrkMasts) { try{ ReturnT<String> result = workLogHandler.start(wrkMast); if (!result.isSuccess()) { log.error("工作档[workNo={}]历史档处理失败", wrkMast.getWrkNo()); } } catch (Exception e){ } } } } src/main/java/com/zy/asrs/task/escalationParam/RgvTaskReportingParam.java
New file @@ -0,0 +1,39 @@ package com.zy.asrs.task.escalationParam; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.utils.TimeCalculatorUtils; import lombok.Data; import java.util.ArrayList; import java.util.List; /* * Created by Monkey D. Luffy on 2023.07.19 * */ @Data public class RgvTaskReportingParam { private String taskNo; // 是 字符串 工作号 private Long during; // 是 字符串 作业时长 private String rgvNo; // 是 字符串 作业小车编号 private String startSta; // 是 字符串 起始作业站(环穿) private String endSta; // 是 字符串 目标作业站(环穿) private Integer status; // 是 字符串 任务状态 1:初始 2:作业中 3:完成 private String startTime; // 是 字符串 开始时间(格式:yyyy--MM-dd HH:mm:ss) private String endTime; // 是 字符串 结束时间(格式:yyyy--MM-dd HH:mm:ss) private List<String> error = new ArrayList<>(); // 是 字符串 异常信息(如无异常则为空数组) public RgvTaskReportingParam(){} public RgvTaskReportingParam(WrkMast wrkMast){ this.taskNo = wrkMast.getWrkNo().toString(); this.rgvNo = wrkMast.getRgvNo().toString(); this.startTime = wrkMast.getModiTime$(); this.endTime = wrkMast.getAppeTime$(); this.startSta = wrkMast.getSourceStaNo().toString(); this.endSta = wrkMast.getStaNo().toString(); this.during = TimeCalculatorUtils.differenceInMilliseconds(wrkMast.getModiTime(),wrkMast.getAppeTime()); this.status = wrkMast.getWrkSts().intValue(); this.error.add(wrkMast.getErrorMemo()); } } src/main/java/com/zy/asrs/task/escalationParam/ScaleEscalationParam.java
File was deleted src/main/java/com/zy/asrs/task/escalationParam/StaEscalationParam.java
File was deleted src/main/java/com/zy/asrs/task/handler/RgvTaskReportingHandler.java
New file @@ -0,0 +1,100 @@ package com.zy.asrs.task.handler; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.core.exception.CoolException; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.ApiLogService; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import com.zy.asrs.task.escalationParam.RgvTaskReportingParam; import com.zy.common.utils.HttpHandler; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import java.util.Date; /** * Created by Monkey D. Luffy on 2024.10.19 * 广东海玛..............以下.............环穿调度.............任务完成信息上传 */ @Slf4j @Service @Transactional public class RgvTaskReportingHandler extends AbstractHandler<String> { @Autowired private WrkMastService wrkMastService; @Autowired private ApiLogService apiLogService; // @Value("${srHangJia.url}") private String erpUrl = "192.168.18.229:16126"; // @Value("${srHangJia.reportOutPath}") private String reportOutPath = "open/rcs/task/cs/up/default/v1"; public ReturnT<String> start(WrkMast wrkMast) { try { Date now = new Date(); RgvTaskReportingParam rgvTaskReportingParam = new RgvTaskReportingParam(wrkMast); ReturnT<String> result = postMesData(reportOutPath,rgvTaskReportingParam); if (result.getCode()==200){ wrkMast.setWrkSts(4L); wrkMast.setAppeTime(now); wrkMastService.updateById(wrkMast); return SUCCESS; }else { log.error("任务完成信息上传失败"); } }catch (Exception e){ log.error("任务完成信息上传异常!!!"+e); return FAIL; } return FAIL; } private ReturnT<String> postMesData(String erpPath,Object combParam){ if(combParam != null){ String response = ""; boolean success = false; try { response = new HttpHandler.Builder() .setUri(erpUrl) .setPath(erpPath) .setJson(JSON.toJSONString(combParam)) .build() .doPost(); JSONObject jsonObject = JSON.parseObject(response); if (jsonObject.getInteger("code")==200) { success = true; } else { log.error("任务完成信息上传请求接口失败!!!url:{};request:{};response:{}"+erpUrl+erpPath, JSON.toJSONString(combParam), response); throw new CoolException("上报wcs系统失败"); } } catch (Exception e) { log.error("fail:上报wcs系统失败==>", e); // TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } finally { try { // 保存接口日志 apiLogService.save( "上报wcs系统", erpUrl + erpPath, null, erpUrl, JSON.toJSONString(combParam), response, success ); } catch (Exception e) { log.error("任务完成信息上传保存接口日志异常,异常信息:", e); } } } return SUCCESS; } } src/main/java/com/zy/asrs/task/handler/WorkLogHandler.java
New file @@ -0,0 +1,44 @@ package com.zy.asrs.task.handler; import com.zy.asrs.entity.WrkMast; import com.zy.asrs.service.WrkMastService; import com.zy.asrs.task.AbstractHandler; import com.zy.asrs.task.core.ReturnT; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.interceptor.TransactionAspectSupport; /** * Created by Monkey D. Luffy on 2024.10.19 * 广东海玛..............以下.............环穿调度.............任务完成信息上传 */ @Slf4j @Service public class WorkLogHandler extends AbstractHandler<String> { @Autowired private WrkMastService wrkMastService; @Transactional public ReturnT<String> start(WrkMast wrkMast) { try { // 保存工作主档历史档 if (!wrkMastService.saveLog(wrkMast.getWrkNo())) { exceptionHandle("保存工作历史档[workNo={0}]失败", wrkMast.getWrkNo()); } // 删除工作主档 if (!wrkMastService.deleteById(wrkMast)) { exceptionHandle("删除工作主档[workNo={0}]失败", wrkMast.getWrkNo()); } } catch (Exception e) { log.error("fail", e); e.printStackTrace(); TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); return FAIL.setMsg(e.getMessage()); } return SUCCESS; } } src/main/java/com/zy/asrs/utils/TimeCalculatorUtils.java
New file @@ -0,0 +1,387 @@ package com.zy.asrs.utils; import java.time.DayOfWeek; import java.time.LocalDate; import java.time.ZoneId; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.time.temporal.WeekFields; import java.util.*; public class TimeCalculatorUtils { //获取当前时间的小时数(24小时制): public static int nowTimeHour(){ // 获取当前时间戳 long timestamp = System.currentTimeMillis(); // 创建Date对象,并设置时间戳 Date date = new Date(timestamp); // 创建TimeZone对象,设置为中国北京时间 TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai"); // 创建Calendar对象,并设置时区 // 注意:Calendar类中的月份是从0开始的,所以需要减去1 Calendar calendar = Calendar.getInstance(timeZone); calendar.setTime(date); // 获取当前小时数(24小时制) return calendar.get(Calendar.HOUR_OF_DAY); } //获取当天小时数(24小时制)中国北京时间: public static int timeTimeHour(Date date){ // 创建TimeZone对象,设置为中国北京时间 TimeZone timeZone = TimeZone.getTimeZone("Asia/Shanghai"); // 创建Calendar对象,并设置时区 // 注意:Calendar类中的月份是从0开始的,所以需要减去1 Calendar calendar = Calendar.getInstance(timeZone); calendar.setTime(date); // 获取当前小时数(24小时制) return calendar.get(Calendar.HOUR_OF_DAY); } //获取前一天的日期(日期天数减一) public static Date timeYesterday(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, -1); return calendar.getTime(); } //获取七天前的日期(日期天数减七) public static Date timeFrontSevenYesterday(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, -7); return calendar.getTime(); } //获取七天后的日期(日期天数加七) public static Date timeAfterSevenYesterday(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, 7); return calendar.getTime(); } //获取相差n天的日期(日期天数加N) public static Date timeYesterdayN(Date date,int day){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.DAY_OF_MONTH, day); return calendar.getTime(); } //获取年月日 public static String timeYestMonthDay(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); int year = calendar.get(Calendar.YEAR); int month = calendar.get(Calendar.MONTH) + 1; // 月份从0开始,需要加1 int day = calendar.get(Calendar.DAY_OF_MONTH); return year+"年"+month+"月"+day+"日"; } //获取年 public static int timeYest(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.YEAR); } //获取月 public static int timeMonth(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.MONTH) + 1; } //获取日 public static int timeDay(Date date){ Calendar calendar = Calendar.getInstance(); calendar.setTime(date); return calendar.get(Calendar.DAY_OF_MONTH); } //获取年差异 public static int DifferenceYest(Date startDay,Date endDay){ int startYest = timeYest(startDay); int endYest = timeYest(endDay); return endYest-startYest; } //获取月差异 public static int DifferenceMonth(Date startDay,Date endDay){ int startMonth = timeMonth(startDay); int endMonth = timeMonth(endDay); return endMonth-startMonth; } //获取天差异 public static int DifferenceDayInt(Date startDay,Date endDay){ return DifferenceDayLong(startDay,endDay).intValue(); } //获取天差异 public static Long DifferenceDayLong(Date startDay,Date endDay){ LocalDate a = LocalDate.of(timeYest(startDay), timeMonth(startDay), timeDay(startDay)); LocalDate b = LocalDate.of(timeYest(endDay), timeMonth(endDay), timeDay(endDay)); return ChronoUnit.DAYS.between(a, b)+1; } //获取天差异 public static Double DifferenceDayMorningAfternoon(Date startDay,Date endDay,int startTime,int endTime){ double between = DifferenceDayLong(startDay, endDay).doubleValue(); if (startTime==2){ between = between-0.5; } if (endTime == 1){ between = between-0.5; } return between; } //获取毫秒差异 public static Long differenceInMilliseconds(Date startDay, Date endDay) { if (startDay == null || endDay == null) { throw new IllegalArgumentException("Dates cannot be null"); } // 获取毫秒差异 return endDay.getTime() - startDay.getTime(); } public static boolean CompareData(Date startDay,Date endDay){ // 将日期字符串解析为LocalDate对象 LocalDate a = LocalDate.of(timeYest(startDay), timeMonth(startDay), timeDay(startDay)); LocalDate b = LocalDate.of(timeYest(endDay), timeMonth(endDay), timeDay(endDay)); // 比较日期 if (a.isAfter(b)) { return false; } else if (a.isBefore(b)) { return true; } else { return true; } } //java.time.LocalDate 转换为 java.util.Date; public static Date DateLocalDate(LocalDate localDate) { return Date.from(localDate.atStartOfDay(ZoneId.systemDefault()).toInstant()); } //获取现在日期是当月第几周 public static int WeeklyNowMonthDay(Date date) { // int day = timeDay(date); // if (day<7){ // if (WeeklyNowMonth(WeeklyMonday(date))>2){ // return 1; // } // } return WeeklyNowMonth(WeeklyMonday(date)); } public static int WeeklyNowMonth(Date date) { // LocalDate currentDate = LocalDate.now(); LocalDate currentDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date)); WeekFields weekFields = WeekFields.of(Locale.getDefault()); int weekOfMonth = currentDate.get(weekFields.weekOfMonth()); return weekOfMonth; } //限制两个日期是周一和周末 工作日 周一到周六 public static void WeeklySix(Date date) { // LocalDate startDate = LocalDate.of(2022, 9, 5); // 假设开始日期是2022年9月5日,周一 LocalDate startDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date)); System.out.println("当前日期 " + startDate + " 周"); LocalDate endDate = startDate.plus(6, ChronoUnit.DAYS); // 结束日期是开始日期加上6天 System.out.println("当前日期加上6天是 " + endDate + " 周"); // 如果开始日期不是周一,则将它调整到下一个周一 if (startDate.getDayOfWeek() != DayOfWeek.MONDAY) { startDate = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } // 如果结束日期不是周末(即周六或周日),则将它调整到下一个周末 if (endDate.getDayOfWeek() != DayOfWeek.SATURDAY && endDate.getDayOfWeek() != DayOfWeek.SUNDAY) { endDate = endDate.with(TemporalAdjusters.next(DayOfWeek.SATURDAY)); } // 确保两个日期之间相隔七天 while (startDate.plus(7, ChronoUnit.DAYS).isBefore(endDate)) { startDate = startDate.plus(7, ChronoUnit.DAYS); } System.out.println("开始日期:" + startDate); System.out.println("结束日期:" + endDate); } //限制两个日期是周一和周末 周一到周日 public static List<Date> WeeklySeven(Date date) { // LocalDate startDate = LocalDate.of(2022, 9, 5); // 假设开始日期是2022年9月5日,周一 LocalDate startDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date)); // System.out.println("当前日期 " + startDate + " 周"); LocalDate endDate = startDate.plus(6, ChronoUnit.DAYS); // 结束日期是开始日期加上6天 // System.out.println("当前日期加上6天是 " + endDate + " 周"); // 如果开始日期不是周一,则将它调整到下一个周一 if (startDate.getDayOfWeek() != DayOfWeek.MONDAY) { startDate = startDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); } // 如果结束日期不是周日,则将它调整到下一个周日 if (endDate.getDayOfWeek() != DayOfWeek.SUNDAY) { endDate = endDate.with(TemporalAdjusters.next(DayOfWeek.SUNDAY)); } // 确保两个日期之间相隔七天 while (startDate.plus(7, ChronoUnit.DAYS).isBefore(endDate)) { startDate = startDate.plus(7, ChronoUnit.DAYS); } List<Date> dateList = new ArrayList<>(); dateList.add(DateLocalDate(startDate)); dateList.add(DateLocalDate(endDate)); return dateList; // System.out.println("开始日期:" + startDate); // System.out.println("结束日期:" + endDate); } //判断是不是周一 public static boolean WeeklyOneSign(Date date) { LocalDate localDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date)); // 判断是不是周一 if (localDate.getDayOfWeek() != DayOfWeek.MONDAY) { return false; } return true; } //获取本周周一 public static Date WeeklyMonday (Date date) { LocalDate localDate = LocalDate.of(timeYest(date), timeMonth(date), timeDay(date)); // 下周周一 localDate = localDate.with(TemporalAdjusters.next(DayOfWeek.MONDAY)); // 将LocalDate转换为Date Date monday = DateLocalDate(localDate); // 则将它调整到本周周一 return timeFrontSevenYesterday(monday); } //获取当前日期所在的周一及周日时间 public static List<Date> WeeklyMondayAndSundayNow(Date date) { Date nowMonday = WeeklyMonday(date); return WeeklySeven(nowMonday); } //获取当前日期上一周周一及周日时间 public static List<Date> WeeklyMondayAndSundayFront(Date date) { Date nowMonday = WeeklyMonday(date); Date frontSevenYesterday = timeFrontSevenYesterday(nowMonday); return WeeklySeven(frontSevenYesterday); } //获取当前日期下一周周一及周日时间 public static List<Date> WeeklyMondayAndSundayAfter(Date date) { Date nowMonday = WeeklyMonday(date); Date afterSevenYesterday = timeAfterSevenYesterday(nowMonday); return WeeklySeven(afterSevenYesterday); } //获取周一到周末 public static List<Date> WeeklyDays(Date date){ Date nowMonday = WeeklyMonday(date); List<Date> dateList = new ArrayList<>(); dateList.add(nowMonday); for (int i = 1; i<7 ; i++){ dateList.add(timeYesterdayN(nowMonday,i)); } return dateList; } //获取周一到周末 public static List<Date> WeeklyListDays(List<Date> dates){ Date date = dates.get(0); Date nowMonday = WeeklyMonday(date); List<Date> dateList = new ArrayList<>(); dateList.add(nowMonday); for (int i = 1; i<7 ; i++){ dateList.add(timeYesterdayN(nowMonday,i)); } return dateList; } public static void main(String[] args) { Date now = new Date(); int weeklyNowMonth = WeeklyNowMonthDay(now); System.out.println("当前日期是第 " + weeklyNowMonth + " 周"); LocalDate startDate1 = LocalDate.of(2024, 2, 29); int weeklyNowMonth1 = WeeklyNowMonthDay(DateLocalDate(startDate1)); System.out.println("当前日期是第 " + weeklyNowMonth1 + " 周"); LocalDate startDate2 = LocalDate.of(2024, 3, 5); int weeklyNowMonth2 = WeeklyNowMonthDay(DateLocalDate(startDate2)); System.out.println("当前日期是第 " + weeklyNowMonth2 + " 周"); LocalDate startDate3 = LocalDate.of(2024, 3, 10); int weeklyNowMonth3 = WeeklyNowMonthDay(DateLocalDate(startDate3)); System.out.println("当前日期是第 " + weeklyNowMonth3 + " 周"); LocalDate startDate4 = LocalDate.of(2024, 3, 31); int weeklyNowMonth4 = WeeklyNowMonthDay(DateLocalDate(startDate4)); System.out.println("当前日期是第 " + weeklyNowMonth4 + " 周"); LocalDate startDate5 = LocalDate.of(2024, 4, 1); int weeklyNowMonth5 = WeeklyNowMonthDay(DateLocalDate(startDate5)); System.out.println("当前日期是第 " + weeklyNowMonth5 + " 周"); LocalDate startDate6 = LocalDate.of(2024, 4, 7); int weeklyNowMonth6 = WeeklyNowMonthDay(DateLocalDate(startDate6)); System.out.println("当前日期是第 " + weeklyNowMonth6 + " 周"); } // public static void main(String[] args) { // Date now = new Date(); // //本周 // List<Date> dateList = WeeklyMondayAndSundayNow(now); // for (Date date : dateList){ // System.out.println("------------------------------"); // System.out.println(date); // } // //上周 // List<Date> dateList1 = WeeklyMondayAndSundayFront(now); // for (Date date : dateList1){ // System.out.println("------------------------------"); // System.out.println(date); // } // //下周 // List<Date> dateList2 = WeeklyMondayAndSundayAfter(now); // for (Date date : dateList2){ // System.out.println("------------------------------"); // System.out.println(date); // } // //周 // List<Date> dateList3 = WeeklyDays(now); // for (Date date : dateList3){ // System.out.println("------------------------------"); // System.out.println(date); // } // } } src/main/resources/mapper/WrkMastMapper.xml
@@ -80,7 +80,7 @@ <select id="selectToBeHistoryData" resultMap="BaseResultMap"> select * from asr_wrk_mast where wrk_sts=5 where wrk_sts=4 or (wrk_sts=15 and ove_mk='Y' and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and dateadd(mi,15,crn_end_time) <= getdate() and wrk_no not in (select wrk_no from asr_bas_devp)) or (wrk_sts=15 and crn_end_time is null and wrk_no not in (select wrk_no from asr_bas_devp))