修改时间表查询bug

master
liuguijing 2 years ago
parent 66911541b4
commit a1aa674834

@ -13,7 +13,7 @@
<name>xymanager_admin</name> <name>xymanager_admin</name>
<description>Demo project for Spring Boot</description> <description>Demo project for Spring Boot</description>
<packaging>war</packaging> <!-- <packaging>war</packaging>-->
<properties> <properties>
<java.version>1.8</java.version> <java.version>1.8</java.version>
</properties> </properties>

@ -24,40 +24,40 @@ public class TerminalScheduleRuleListModel implements Serializable {
private int pagesize; private int pagesize;
@ApiModelProperty(value = "时间任务列表", example = "[]") @ApiModelProperty(value = "时间任务列表", example = "[]")
private List<ScheduleBean> list; private List<TerminalScheduleRuleModel> list;
@Data // @Data
public static class ScheduleBean { // public static class ScheduleBean {
//
@ApiModelProperty(value = "任务编号", example = "123456") // @ApiModelProperty(value = "任务编号", example = "123456")
private Integer id; // private Integer id;
//
@ApiModelProperty(value = "任务名称", example = "123456") // @ApiModelProperty(value = "任务名称", example = "123456")
private String name; // private String name;
//
@ApiModelProperty(value = "备注", example = "erwsafsasa") // @ApiModelProperty(value = "备注", example = "erwsafsasa")
private String remark; // private String remark;
//
@ApiModelProperty(value = "时间任务详情列表", example = "erwsafsasa") // @ApiModelProperty(value = "时间任务详情列表", example = "erwsafsasa")
private List<ScheduleDetailsBean> list; // private List<ScheduleDetailsBean> list;
//
} // }
@Data // @Data
public static class ScheduleDetailsBean { // public static class ScheduleDetailsBean {
@ApiModelProperty(value = "任务详情编号", example = "123456") // @ApiModelProperty(value = "任务详情编号", example = "123456")
private Integer id; // private Integer id;
//
@ApiModelProperty(value = "任务规则编号", example = "123456") // @ApiModelProperty(value = "任务规则编号", example = "123456")
private Integer scheduleId; // private Integer scheduleId;
//
@ApiModelProperty(value = "间隔", example = "213") // @ApiModelProperty(value = "间隔", example = "213")
private Integer span; // private Integer span;
//
@ApiModelProperty(value = "开始时间", example = "2022-06-08") // @ApiModelProperty(value = "开始时间", example = "2022-06-08")
private Time startTime; // private Time startTime;
//
@ApiModelProperty(value = "结束时间", example = "2022-06-08") // @ApiModelProperty(value = "结束时间", example = "2022-06-08")
private Time endTime; // private Time endTime;
} // }
} }

@ -64,63 +64,105 @@ public class ScheduleListUtils {
public static String relateTime(List<ScheduleDetailsDto> dtoList, int offset) { public static String relateTime(List<ScheduleDetailsDto> dtoList, int offset) {
StringBuffer timestr = new StringBuffer(); StringBuffer timestr = new StringBuffer();
short perset = dtoList.get(0).getPreset().shortValue(); short perset = dtoList.get(0).getPreset().shortValue();
int index = 0;
for (int i = 0; i < dtoList.size(); i++) { for (int i = 0; i < dtoList.size(); i++) {
short startHour = 0; short startHour = 0;
short startMin= 0; short startMin = 0;
short endHour= 0; short endHour = 0;
short endMin= 0; short endMin = 0;
short spanHour= 0; short spanHour = 0;
short spanMin= 0; short spanMin = 0;
if (XyNumberUtils.remainder(i, 3) == 1) { String string = "";
if (XyNumberUtils.remainder(i, 3) == 0) {
index = index + 3;
startHour = dtoList.get(i).getHour().shortValue(); startHour = dtoList.get(i).getHour().shortValue();
startMin = dtoList.get(i).getMinute().shortValue(); startMin = dtoList.get(i).getMinute().shortValue();
} else if (XyNumberUtils.remainder(i, 3) == 2) { string = " --hour" + index + "=" + startHour + " --min" + index + "=" + startMin + " --preset" + index + "=" + perset;
} else if (XyNumberUtils.remainder(i, 3) == 1) {
index = index - 1;
endHour = dtoList.get(i).getHour().shortValue(); endHour = dtoList.get(i).getHour().shortValue();
endMin = dtoList.get(i).getMinute().shortValue(); endMin = dtoList.get(i).getMinute().shortValue();
} else if (XyNumberUtils.remainder(i, 3) == 0) { string = " --hour" + index + "=" + endHour + " --min" + index + "=" + endMin + " --preset" + index + "=" + perset;
} else if (XyNumberUtils.remainder(i, 3) == 2) {
index = index - 1;
spanHour = dtoList.get(i).getHour().shortValue(); spanHour = dtoList.get(i).getHour().shortValue();
spanMin = dtoList.get(i).getMinute().shortValue(); spanMin = dtoList.get(i).getMinute().shortValue();
string = " --hour" + index + "=" + spanHour + " --min" + index + "=" + spanMin + " --preset" + index + "=" + perset;
index = index + 2;
} }
int spanindex = i+1;
int endindex = i+2;
int startindex = i+3;
String string = " --hour" + startindex + "=" + startHour + "\t" + "--min" + startindex + "=" + startMin + "\t" + "--preset" + startindex + "=" + perset + " --hour" + endindex + "=" + endHour + "\t" + "--min" + endindex + "=" + endMin + "\t"
+ "--preset" + endindex + "=" + perset +"--hour" + spanindex + "=" + spanHour + "\t" + "--min" + spanindex + "=" + spanMin + "\t" + "--preset" + spanindex + "=" + perset ;
timestr.append(string); timestr.append(string);
} }
return timestr.toString(); return timestr.toString();
} }
// /**
// * 将数据库标准转为前端的时间列表
// *
// * @param details
// * @return
// */
// public static ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> getScheduleRuleBeans(List<ScheduleDetailsDto> details) {
// ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = new ArrayList<>();
// for (int i = 0; i < details.size(); i++) {
// TerminalScheduleRuleModel.ScheduleRuleBean scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean();
// if (XyNumberUtils.remainder(i, 3) == 0) {
// Integer hour = details.get(i).getHour();
// Integer minute = details.get(i).getMinute();
// Time time = MyDateUtils.HHMMToTime(hour, minute);
// scheduleDetailsBean.setStartTime(time);
// } else if (XyNumberUtils.remainder(i, 3) == 1) {
// Integer hour = details.get(i).getHour();
// Integer minute = details.get(i).getMinute();
// Time time = MyDateUtils.HHMMToTime(hour, minute);
// scheduleDetailsBean.setEndTime(time);
// } else if (XyNumberUtils.remainder(i, 3) == 2) {
// Integer hour = details.get(i).getHour();
// Integer minute = details.get(i).getMinute();
// Number mul = XyNumberUtils.mul((Number) hour, 60);
// Number add = XyNumberUtils.add(mul, minute);
// scheduleDetailsBean.setSpan(add.intValue());
// }
// detailsBeans.add(scheduleDetailsBean);
// }
// return detailsBeans;
// }
/** /**
* *
*
* @param details * @param details
* @return * @return
*/ */
public static ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> getScheduleRuleBeans(List<ScheduleDetailsDto> details) { public static ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> getScheduleDetailsBeans(List<ScheduleDetailsDto> details) {
ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = new ArrayList<>(); ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = new ArrayList<>();
TerminalScheduleRuleModel.ScheduleRuleBean scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean();
for (int i = 0; i < details.size(); i++) { for (int i = 0; i < details.size(); i++) {
TerminalScheduleRuleModel.ScheduleRuleBean scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean(); ScheduleDetailsDto dto = details.get(i);
if (XyNumberUtils.remainder(i, 3) == 1) { if (XyNumberUtils.remainder(i, 3) == 0) {
Integer hour = details.get(i).getHour(); scheduleDetailsBean = new TerminalScheduleRuleModel.ScheduleRuleBean();
Integer minute = details.get(i).getMinute(); Integer hour = dto.getHour();
Integer minute = dto.getMinute();
Time time = MyDateUtils.HHMMToTime(hour, minute); Time time = MyDateUtils.HHMMToTime(hour, minute);
scheduleDetailsBean.setId(dto.getId());
scheduleDetailsBean.setScheduleId(dto.getScheduleId());
scheduleDetailsBean.setStartTime(time); scheduleDetailsBean.setStartTime(time);
} else if (XyNumberUtils.remainder(i, 3) == 2) { } else if (XyNumberUtils.remainder(i, 3) == 1) {
Integer hour = details.get(i).getHour(); Integer hour = dto.getHour();
Integer minute = details.get(i).getMinute(); Integer minute = dto.getMinute();
Time time = MyDateUtils.HHMMToTime(hour, minute); Time time = MyDateUtils.HHMMToTime(hour, minute);
scheduleDetailsBean.setEndTime(time); scheduleDetailsBean.setEndTime(time);
} else if (XyNumberUtils.remainder(i, 3) == 0) { } else if (XyNumberUtils.remainder(i, 3) == 2) {
Integer hour = details.get(i).getHour(); Integer hour = dto.getHour();
Integer minute = details.get(i).getMinute(); Integer minute = dto.getMinute();
Number mul = XyNumberUtils.mul((Number) hour, 60); Number mul = XyNumberUtils.mul((Number) hour, 60);
Number add = XyNumberUtils.add(mul, minute); Number add = XyNumberUtils.add(mul, minute);
scheduleDetailsBean.setSpan(add.intValue()); scheduleDetailsBean.setSpan(add.intValue());
detailsBeans.add(scheduleDetailsBean);
} }
detailsBeans.add(scheduleDetailsBean);
} }
return detailsBeans; return detailsBeans;
} }
} }

@ -9,7 +9,12 @@ import java.util.List;
public interface SchedulesDao { public interface SchedulesDao {
List<ScheduleAndRuleDto> selectAll(@Param("status") Integer status); List<Schedules> selectAll(@Param("status") Integer status);
List<ScheduleAndRuleDto> selectScheduleAndDetailsList(@Param("list") List<Schedules> list, @Param("status") Integer status);
ScheduleAndRuleDto selectSingleScheduleAndDetailsList(@Param("id") Integer id, @Param("status") Integer status);
ScheduleAndRuleDto selectSingle(@Param("id") Integer id, @Param("status") Integer status); ScheduleAndRuleDto selectSingle(@Param("id") Integer id, @Param("status") Integer status);

@ -34,7 +34,6 @@
where status = #{status} where status = #{status}
</select> </select>
<select id="selectAllBySceduleidList" resultMap="BaseResultMap"> <select id="selectAllBySceduleidList" resultMap="BaseResultMap">
select select
<include refid="Base_Column_List"/> <include refid="Base_Column_List"/>

@ -34,7 +34,14 @@
where id = #{id,jdbcType=INTEGER} where id = #{id,jdbcType=INTEGER}
</select> </select>
<select id="selectAll" resultMap="ScheduleAndRule"> <select id="selectAll" resultMap="BaseResultMap">
select
id ,name,remark,status
from schedules
where status = #{status} order by create_time desc
</select>
<select id="selectScheduleAndDetailsList" resultMap="ScheduleAndRule">
select select
x.id as id, x.id as id,
x.name as name, x.name as name,
@ -47,12 +54,36 @@
y.preset as preset y.preset as preset
from schedules x, from schedules x,
schedule_detailss y schedule_detailss y
where y.schedule_id = x.id and x.status = #{status} order by x.create_time desc where y.schedule_id = x.id and x.status = #{status}
<if test="list != null and list.size > 0">
and y.schedule_id in
<foreach collection="list" item="item" index="index" separator="," open="(" close=")">
#{item.id}
</foreach>
</if>
order by x.create_time desc
</select>
<select id="selectSingleScheduleAndDetailsList" resultMap="ScheduleAndRule">
select
x.id as id,
x.name as name,
x.remark as remark,
x.status as status,
y.id as ruleid,
y.schedule_id as schedule_id,
y.hour as hour,
y.minute as minute,
y.preset as preset
from schedules x,
schedule_detailss y
where y.schedule_id = x.id and x.status = #{status} and y.schedule_id = #{id}
order by x.create_time desc
</select> </select>
<select id="selectSingle" resultMap="ScheduleAndRule"> <select id="selectSingle" resultMap="ScheduleAndRule">
select select
x.id as id, x.id as id,
x.name as name, x.name as name,
x.remark as remark, x.remark as remark,
x.status as status, x.status as status,

@ -46,7 +46,6 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
@Autowired @Autowired
SchedulesDao schedulesDao; SchedulesDao schedulesDao;
@Autowired @Autowired
ScheduleDetailssDao scheduleDetailssDao; ScheduleDetailssDao scheduleDetailssDao;
@ -83,40 +82,20 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
int pageindex = vo.getPageindex(); int pageindex = vo.getPageindex();
int pagesize = vo.getPagesize(); int pagesize = vo.getPagesize();
PageUtils.SetPage(pageindex, pagesize); PageUtils.SetPage(pageindex, pagesize);
List<ScheduleAndRuleDto> list = schedulesDao.selectAll(CommonStatus.EFFECTIVE.value()); List<Schedules> schedules = schedulesDao.selectAll(CommonStatus.EFFECTIVE.value());
List<ScheduleAndRuleDto> list = schedulesDao.selectScheduleAndDetailsList(schedules, CommonStatus.EFFECTIVE.value());
boolean empty = CollectionUtil.isEmpty(list); boolean empty = CollectionUtil.isEmpty(list);
if (empty) { if (empty) {
model.setList(new ArrayList<>()); model.setList(new ArrayList<>());
} else { } else {
ArrayList<TerminalScheduleRuleListModel.ScheduleBean> beans = new ArrayList<>(); ArrayList<TerminalScheduleRuleModel> beans = new ArrayList<>();
for (ScheduleAndRuleDto item : list) { for (ScheduleAndRuleDto item : list) {
TerminalScheduleRuleListModel.ScheduleBean scheduleBean = new TerminalScheduleRuleListModel.ScheduleBean(); TerminalScheduleRuleModel scheduleBean = new TerminalScheduleRuleModel();
scheduleBean.setId(item.getId()); scheduleBean.setId(item.getId());
scheduleBean.setName(item.getName()); scheduleBean.setName(item.getName());
scheduleBean.setRemark(item.getRemark()); scheduleBean.setRemark(item.getRemark());
List<ScheduleDetailsDto> details = item.getList(); List<ScheduleDetailsDto> details = item.getList();
ArrayList<TerminalScheduleRuleListModel.ScheduleDetailsBean> detailsBeans = new ArrayList<>(); ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleDetailsBeans(details);
for (int i = 0; i < details.size(); i++) {
TerminalScheduleRuleListModel.ScheduleDetailsBean scheduleDetailsBean = new TerminalScheduleRuleListModel.ScheduleDetailsBean();
if (XyNumberUtils.remainder(i, 3) == 1) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Time time = MyDateUtils.HHMMToTime(hour, minute);
scheduleDetailsBean.setStartTime(time);
} else if (XyNumberUtils.remainder(i, 3) == 2) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Time time = MyDateUtils.HHMMToTime(hour, minute);
scheduleDetailsBean.setEndTime(time);
} else if (XyNumberUtils.remainder(i, 3) == 0) {
Integer hour = details.get(i).getHour();
Integer minute = details.get(i).getMinute();
Number mul = XyNumberUtils.mul((Number) hour, 60);
Number add = XyNumberUtils.add(mul, minute);
scheduleDetailsBean.setSpan(add.intValue());
}
detailsBeans.add(scheduleDetailsBean);
}
scheduleBean.setList(detailsBeans); scheduleBean.setList(detailsBeans);
beans.add(scheduleBean); beans.add(scheduleBean);
} }
@ -135,6 +114,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
return Asserts.success(model); return Asserts.success(model);
} }
/** /**
* *
* *
@ -143,22 +123,22 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
*/ */
@Override @Override
public ServiceBody<TerminalScheduleRuleModel> getSingleScheduleRule(ScheduleIdVo vo) { public ServiceBody<TerminalScheduleRuleModel> getSingleScheduleRule(ScheduleIdVo vo) {
ScheduleAndRuleDto bean = schedulesDao.selectSingle(vo.getId(), CommonStatus.EFFECTIVE.value()); ScheduleAndRuleDto dto = schedulesDao.selectSingleScheduleAndDetailsList(vo.getId(), CommonStatus.EFFECTIVE.value());
if (BeanUtil.isEmpty(bean)) {
if (BeanUtil.isEmpty(dto)) {
return Asserts.error("没有该对象"); return Asserts.error("没有该对象");
} else { } else {
TerminalScheduleRuleModel model = new TerminalScheduleRuleModel(); TerminalScheduleRuleModel model = new TerminalScheduleRuleModel();
model.setId(bean.getId()); model.setId(dto.getId());
model.setName(bean.getName()); model.setName(dto.getName());
model.setRemark(bean.getRemark()); model.setRemark(dto.getRemark());
List<ScheduleDetailsDto> details = bean.getList(); List<ScheduleDetailsDto> details = dto.getList();
ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleRuleBeans(details); ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleDetailsBeans(details);
model.setList(detailsBeans); model.setList(detailsBeans);
return Asserts.success(model); return Asserts.success(model);
} }
} }
/** /**
* *
* *
@ -177,7 +157,7 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
schedules.setUpdateTime(date); schedules.setUpdateTime(date);
int i1 = schedulesDao.insertSelective(schedules); int i1 = schedulesDao.insertSelective(schedules);
if (i1 != 0) { if (i1 != 0) {
ArrayList<ScheduleDetailss> list = ScheduleListUtils.getScheduleDetailsses(vo.getList(),schedules.getId()); ArrayList<ScheduleDetailss> list = ScheduleListUtils.getScheduleDetailsses(vo.getList(), schedules.getId());
int i = scheduleDetailssDao.insertList(list, date, date); int i = scheduleDetailssDao.insertList(list, date, date);
if (i != 0) { if (i != 0) {
return Asserts.success("录入成功"); return Asserts.success("录入成功");
@ -258,7 +238,8 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
if (CollectionUtil.isEmpty(terminalsList)) { if (CollectionUtil.isEmpty(terminalsList)) {
return Asserts.error("没有该装置"); return Asserts.error("没有该装置");
} }
ScheduleAndRuleDto dto = schedulesDao.selectSingle(scheduleid, CommonStatus.EFFECTIVE.value());
ScheduleAndRuleDto dto = schedulesDao.selectSingleScheduleAndDetailsList(scheduleid, CommonStatus.EFFECTIVE.value());
if (BeanUtil.isEmpty(dto)) { if (BeanUtil.isEmpty(dto)) {
return Asserts.error("没有该拍照时间规则"); return Asserts.error("没有该拍照时间规则");
} }
@ -305,8 +286,6 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
} }
/** /**
* *
* *
@ -378,10 +357,10 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
model.setList(new ArrayList<>()); model.setList(new ArrayList<>());
} else { } else {
Integer scheduleId = mapper.getScheduleId(); Integer scheduleId = mapper.getScheduleId();
ScheduleAndRuleDto bean = schedulesDao.selectSingle(scheduleId, CommonStatus.EFFECTIVE.value()); ScheduleAndRuleDto bean = schedulesDao.selectSingleScheduleAndDetailsList(scheduleId, CommonStatus.EFFECTIVE.value());
List<ScheduleDetailsDto> list = bean.getList(); List<ScheduleDetailsDto> list = bean.getList();
ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleRuleBeans(list); ArrayList<TerminalScheduleRuleModel.ScheduleRuleBean> detailsBeans = ScheduleListUtils.getScheduleDetailsBeans(list);
ArrayList<String> timestrlist = new ArrayList<>(); ArrayList<String> timestrlist = new ArrayList<>();
for (TerminalScheduleRuleModel.ScheduleRuleBean item : detailsBeans) { for (TerminalScheduleRuleModel.ScheduleRuleBean item : detailsBeans) {
Time startTime = item.getStartTime(); Time startTime = item.getStartTime();
@ -444,7 +423,6 @@ public class TerminalScheduleRuleServiceImpl implements TerminalScheduleRuleServ
resultList.add(dateTime); resultList.add(dateTime);
} }
} }
model.setList(resultList); model.setList(resultList);
model.setIsNew(true); model.setIsNew(true);

Loading…
Cancel
Save