lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentRepairController.java
@@ -75,7 +75,7 @@ } LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); Page page = new Page(pageNo, pageSize); Page<MdcEquipmentRepair> page = new Page<MdcEquipmentRepair>(pageNo, pageSize); IPage<MdcEquipmentRepair> mdcEquipmentRepairIPage = mdcEquipmentRepairService.pageList(userId, page, repair, req); return Result.OK(mdcEquipmentRepairIPage); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcNoplanCloseController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,183 @@ package org.jeecg.modules.mdc.controller; import java.util.Arrays; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; import org.apache.shiro.SecurityUtils; import org.jeecg.common.api.vo.Result; import org.jeecg.common.system.base.controller.JeecgController; import org.jeecg.common.system.query.QueryGenerator; import org.jeecg.common.aspect.annotation.AutoLog; import lombok.extern.slf4j.Slf4j; import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.entity.MdcEquipmentRepair; import org.jeecg.modules.mdc.entity.MdcNoplanClose; import org.jeecg.modules.mdc.service.IMdcNoplanCloseService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcNoplanCloseVo; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; /** * @Description: é计ååæºç»´æ¤è¡¨ * @Author: Lius * @Date: 2023-07-13 * @Version: V1.0 */ @Slf4j @Api(tags = "é计ååæºç»´æ¤è¡¨") @RestController @RequestMapping("/mdc/mdcNoplanClose") public class MdcNoplanCloseController extends JeecgController<MdcNoplanClose, IMdcNoplanCloseService> { @Resource private IMdcNoplanCloseService mdcNoplanCloseService; /** * å页å表æ¥è¯¢ * * @param mdcNoplanClose * @param pageNo * @param pageSize * @param req * @return */ @AutoLog(value = "é计ååæºç»´æ¤è¡¨-å页å表æ¥è¯¢") @ApiOperation(value = "é计ååæºç»´æ¤è¡¨-å页å表æ¥è¯¢", notes = "é计ååæºç»´æ¤è¡¨-å页å表æ¥è¯¢") @GetMapping(value = "/list") public Result<?> queryPageList(MdcNoplanClose mdcNoplanClose, @RequestParam(name = "pageNo", defaultValue = "1") Integer pageNo, @RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize, HttpServletRequest req) { LoginUser user = (LoginUser) SecurityUtils.getSubject().getPrincipal(); String userId = user.getId(); Page<MdcNoplanClose> page = new Page<MdcNoplanClose>(pageNo, pageSize); IPage<MdcNoplanClose> pageList = mdcNoplanCloseService.pageList(userId, page, mdcNoplanClose, req); return Result.OK(pageList); } /** * æ·»å * * @param mdcNoplanCloseVo * @return */ @AutoLog(value = "é计ååæºç»´æ¤è¡¨-æ·»å ") @ApiOperation(value = "é计ååæºç»´æ¤è¡¨-æ·»å ", notes = "é计ååæºç»´æ¤è¡¨-æ·»å ") @PostMapping(value = "/add") public Result<?> add(@RequestBody MdcNoplanCloseVo mdcNoplanCloseVo) { if (StringUtils.isBlank(mdcNoplanCloseVo.getEquipmentIds())) { return Result.error("æªéæ©è®¾å¤ï¼è¯·ææ¥ï¼"); } boolean result = mdcNoplanCloseService.addNoplanClose(mdcNoplanCloseVo); if (!result) { return Result.error("æ¶é´æ®µæ°æ®å·²ç»åå¨ï¼è¯·ææ¥ï¼"); } return Result.OK("æ·»å æåï¼"); } /** * ç¼è¾ * * @param mdcNoplanClose * @return */ @AutoLog(value = "é计ååæºç»´æ¤è¡¨-ç¼è¾") @ApiOperation(value = "é计ååæºç»´æ¤è¡¨-ç¼è¾", notes = "é计ååæºç»´æ¤è¡¨-ç¼è¾") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> edit(@RequestBody MdcNoplanClose mdcNoplanClose) { //æ ¹æ®idæ¥è¯¢åææ°æ® MdcNoplanClose noplanClose = mdcNoplanCloseService.getById(mdcNoplanClose.getId()); if (!noplanClose.getStartTime().equals(mdcNoplanClose.getStartTime())) { if (noplanClose.getStartTime().before(DateUtils.getTodayZero(DateUtils.getNow()))) { return Result.error("ä¿®æ¹å¤±è´¥ï¼å纪å½å¼å§æ¶é´å°äºå½åæ¶é´ï¼"); } } boolean result = mdcNoplanCloseService.updateMdcNoplan(mdcNoplanClose); if (!result) { return Result.error("æ¶é´æ®µæ°æ®å·²ç»åå¨ï¼è¯·ææ¥ï¼"); } return Result.OK("ç¼è¾æå!"); } /** * éè¿idå é¤ * * @param id * @return */ @AutoLog(value = "é计ååæºç»´æ¤è¡¨-éè¿idå é¤") @ApiOperation(value = "é计ååæºç»´æ¤è¡¨-éè¿idå é¤", notes = "é计ååæºç»´æ¤è¡¨-éè¿idå é¤") @DeleteMapping(value = "/delete") public Result<?> delete(@RequestParam(name = "id", required = true) String id) { mdcNoplanCloseService.removeById(id); return Result.OK("å 餿å!"); } /** * æ¹éå é¤ * * @param ids * @return */ @AutoLog(value = "é计ååæºç»´æ¤è¡¨-æ¹éå é¤") @ApiOperation(value = "é计ååæºç»´æ¤è¡¨-æ¹éå é¤", notes = "é计ååæºç»´æ¤è¡¨-æ¹éå é¤") @DeleteMapping(value = "/deleteBatch") public Result<?> deleteBatch(@RequestParam(name = "ids", required = true) String ids) { this.mdcNoplanCloseService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("æ¹éå 餿åï¼"); } /** * éè¿idæ¥è¯¢ * * @param id * @return */ @AutoLog(value = "é计ååæºç»´æ¤è¡¨-éè¿idæ¥è¯¢") @ApiOperation(value = "é计ååæºç»´æ¤è¡¨-éè¿idæ¥è¯¢", notes = "é计ååæºç»´æ¤è¡¨-éè¿idæ¥è¯¢") @GetMapping(value = "/queryById") public Result<?> queryById(@RequestParam(name = "id", required = true) String id) { MdcNoplanClose mdcNoplanClose = mdcNoplanCloseService.getById(id); return Result.OK(mdcNoplanClose); } /** * 导åºexcel * * @param request * @param mdcNoplanClose */ @RequestMapping(value = "/exportXls") public ModelAndView exportXls(HttpServletRequest request, MdcNoplanClose mdcNoplanClose) { return super.exportXls(request, mdcNoplanClose, MdcNoplanClose.class, "é计ååæºç»´æ¤è¡¨"); } /** * éè¿excelå¯¼å ¥æ°æ® * * @param request * @param response * @return */ @RequestMapping(value = "/importExcel", method = RequestMethod.POST) public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) { return super.importExcel(request, response, MdcNoplanClose.class); } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcNoplanClose.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,99 @@ package org.jeecg.modules.mdc.entity; import java.io.Serializable; import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.annotation.TableField; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.EqualsAndHashCode; import lombok.experimental.Accessors; import com.fasterxml.jackson.annotation.JsonFormat; import org.jeecg.common.system.base.entity.JeecgEntity; import org.springframework.format.annotation.DateTimeFormat; import org.jeecgframework.poi.excel.annotation.Excel; /** * @Description: é计ååæºç»´æ¤è¡¨ * @Author: jeecg-boot * @Date: 2023-07-13 * @Version: V1.0 */ @Data @TableName("mdc_noplan_close") @EqualsAndHashCode(callSuper = false) @Accessors(chain = true) @ApiModel(value = "mdc_noplan_close对象", description = "é计ååæºç»´æ¤è¡¨") public class MdcNoplanClose extends JeecgEntity implements Serializable { private static final long serialVersionUID = 7255842838055432027L; /** * 设å¤ç¼å· */ @Excel(name = "设å¤ç¼å·", width = 15) @ApiModelProperty(value = "设å¤ç¼å·") private String equipmentId; /** * 设å¤åç§° */ @Excel(name = "设å¤åç§°", width = 15) @ApiModelProperty(value = "设å¤åç§°") private String equipmentName; /** * é计ååæºç±»å */ @Excel(name = "é计ååæºç±»å", width = 15) @ApiModelProperty(value = "é计ååæºç±»å") private String noplanType; /** * é计ååæºå¼å§æ¶é´ */ @Excel(name = "é计ååæºå¼å§æ¶é´", width = 20, format = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "é计ååæºå¼å§æ¶é´") private Date startTime; /** * é计ååæºç»ææ¶é´ */ @Excel(name = "é计ååæºç»ææ¶é´", width = 20, format = "yyyy-MM-dd HH:mm:ss") @JsonFormat(timezone = "GMT+8", pattern = "yyyy-MM-dd HH:mm:ss") @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss") @ApiModelProperty(value = "é计ååæºç»ææ¶é´") private Date endTime; /** * 夿³¨ */ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨") private String remark; /** * åå°ä¼ å ¥ 夿æ¯ä¸ªid */ @TableField(exist = false) private String parentId; /** * åå°ä¼ å ¥ 车é´å±çº§:1 é¨é¨å±çº§:2 */ @TableField(exist = false) private String typeTree; /** * é¨é¨parentId å ³èåéid */ @TableField(exist = false) private List<String> mdcSectionIds; @TableField(exist = false) private String equipmentIds; } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcPlanClose.java
@@ -31,24 +31,24 @@ */ @Excel(name = "计ååæºç±»å", width = 15) @ApiModelProperty(value = "计ååæºç±»å") private java.lang.String planCloseType; private String planCloseType; /** * 计ååæºæ¶é´ç±»å */ @Excel(name = "计ååæºæ¶é´ç±»å", width = 15) @ApiModelProperty(value = "计ååæºæ¶é´ç±»å") private java.lang.String planCloseTimeType; private String planCloseTimeType; /** * æ¶é¿ï¼åéï¼ */ @Excel(name = "æ¶é¿ï¼åéï¼", width = 15) @ApiModelProperty(value = "æ¶é¿ï¼åéï¼") private java.lang.Integer planCloseTimeLong; private Integer planCloseTimeLong; /** * 夿³¨ */ @Excel(name = "夿³¨", width = 15) @ApiModelProperty(value = "夿³¨") private java.lang.String remark; private String remark; } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/MdcNoplanCloseMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,28 @@ package org.jeecg.modules.mdc.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.ibatis.annotations.Param; import org.jeecg.modules.mdc.entity.MdcNoplanClose; /** * @Description: é计ååæºç»´æ¤è¡¨ * @Author: Lius * @Date: 2023-07-13 * @Version: V1.0 */ public interface MdcNoplanCloseMapper extends BaseMapper<MdcNoplanClose> { /** * å页æ¥è¯¢ * * @param page * @param mdcNoplanClose * @return */ IPage<MdcNoplanClose> pageList(Page<MdcNoplanClose> page, @Param("mdcNoplanClose") MdcNoplanClose mdcNoplanClose); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcNoplanCloseMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,33 @@ <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="org.jeecg.modules.mdc.mapper.MdcNoplanCloseMapper"> <!--å页æ¥è¯¢--> <select id="pageList" resultType="org.jeecg.modules.mdc.entity.MdcNoplanClose"> SELECT * FROM mdc_noplan_close <where> <if test="mdcNoplanClose.equipmentName != null and mdcNoplanClose.equipmentName != '' "> AND equipment_name LIKE CONCAT(CONCAT('%',#{mdcNoplanClose.equipmentName}),'%') </if> <if test="mdcNoplanClose.equipmentId != null and mdcNoplanClose.equipmentId != '' "> AND equipment_id LIKE CONCAT(CONCAT('%',#{mdcNoplanClose.equipmentId}),'%') </if> <if test="mdcNoplanClose.startTime != null "> AND end_time >= #{ mdcNoplanClose.startTime } </if> <if test="mdcNoplanClose.endTime != null "> AND start_time <= #{ mdcNoplanClose.endTime } </if> <if test="mdcNoplanClose.mdcSectionIds != null and mdcNoplanClose.mdcSectionIds.size() > 0 "> AND equipment_id IN <foreach collection="mdcNoplanClose.mdcSectionIds" item="id" index="index" open="(" close=")" separator=","> #{ id } </foreach> </if> ORDER BY start_time ASC </where> </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IMdcNoplanCloseService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,45 @@ package org.jeecg.modules.mdc.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import org.jeecg.modules.mdc.entity.MdcNoplanClose; import org.jeecg.modules.mdc.vo.MdcNoplanCloseVo; import javax.servlet.http.HttpServletRequest; /** * @Description: é计ååæºç»´æ¤è¡¨ * @Author: Lius * @Date: 2023-07-13 * @Version: V1.0 */ public interface IMdcNoplanCloseService extends IService<MdcNoplanClose> { /** * å页æ¥è¯¢ * * @param userId * @param page * @param mdcNoplanClose * @param req * @return */ IPage<MdcNoplanClose> pageList(String userId, Page<MdcNoplanClose> page, MdcNoplanClose mdcNoplanClose, HttpServletRequest req); /** * ä¿åæ°æ® * * @param mdcNoplanCloseVo * @return */ boolean addNoplanClose(MdcNoplanCloseVo mdcNoplanCloseVo); /** * ç¼è¾ * @param mdcNoplanClose * @return */ boolean updateMdcNoplan(MdcNoplanClose mdcNoplanClose); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcNoplanCloseServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,246 @@ package org.jeecg.modules.mdc.service.impl; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import org.apache.commons.lang.StringUtils; import org.jeecg.modules.mdc.entity.MdcEquipment; import org.jeecg.modules.mdc.entity.MdcEquipmentRepair; import org.jeecg.modules.mdc.entity.MdcNoplanClose; import org.jeecg.modules.mdc.mapper.MdcNoplanCloseMapper; import org.jeecg.modules.mdc.service.IMdcEquipmentService; import org.jeecg.modules.mdc.service.IMdcNoplanCloseService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.vo.MdcNoplanCloseVo; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.Collections; import java.util.Date; import java.util.List; import java.util.stream.Collectors; /** * @Description: é计ååæºç»´æ¤è¡¨ * @Author: Lius * @Date: 2023-07-13 * @Version: V1.0 */ @Service public class MdcNoplanCloseServiceImpl extends ServiceImpl<MdcNoplanCloseMapper, MdcNoplanClose> implements IMdcNoplanCloseService { @Resource private IMdcEquipmentService mdcEquipmentService; @Override public IPage<MdcNoplanClose> pageList(String userId, Page<MdcNoplanClose> page, MdcNoplanClose mdcNoplanClose, HttpServletRequest req) { List<String> equipmentIds = new ArrayList<>(); if (StringUtils.isNotEmpty(mdcNoplanClose.getParentId()) && StringUtils.isEmpty(mdcNoplanClose.getEquipmentId())) { if ("2".equals(mdcNoplanClose.getTypeTree())) { //é¨é¨å±çº§ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, mdcNoplanClose.getParentId()); } else { //产线å±çº§ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, mdcNoplanClose.getParentId()); } } else if (StringUtils.isNotEmpty(mdcNoplanClose.getEquipmentId())) { //åå°è®¾å¤ä¿¡æ¯ mdcNoplanClose.setMdcSectionIds(Collections.singletonList(mdcNoplanClose.getEquipmentId())); } else { //æ¥è¯¢ç¨æ·æ¥æçææè®¾å¤ä¿¡æ¯ if ("2".equals(mdcNoplanClose.getTypeTree())) { //é¨é¨å±çº§ equipmentIds = mdcEquipmentService.getEquipmentIdsByDepart(userId, null); } else { //产线å±çº§ equipmentIds = mdcEquipmentService.getEquipmentIdsProduction(userId, null); } } if (mdcNoplanClose.getMdcSectionIds() == null || mdcNoplanClose.getMdcSectionIds().isEmpty()) { mdcNoplanClose.setMdcSectionIds(equipmentIds); } if (mdcNoplanClose.getMdcSectionIds() == null || mdcNoplanClose.getMdcSectionIds().isEmpty()) { return null; } return this.baseMapper.pageList(page, mdcNoplanClose); } /** * ä¿åæ°æ® * * @param mdcNoplanCloseVo * @return */ @Override public boolean addNoplanClose(MdcNoplanCloseVo mdcNoplanCloseVo) { boolean result = false; String[] equipmentIds = mdcNoplanCloseVo.getEquipmentIds().split(","); List<MdcNoplanClose> mdcNoplanCloseList = new ArrayList<>(); a: for (String equipmentId : equipmentIds) { Date startTime = DateUtils.getFormatDate(mdcNoplanCloseVo.getStartTime(), DateUtils.STR_DATE_TIME_SMALL); Date endTime = DateUtils.getFormatDate(mdcNoplanCloseVo.getEndTime(), DateUtils.STR_DATE_TIME_SMALL); MdcEquipment mdcEquipment = mdcEquipmentService.findEquipmentNameByEquipmentId(equipmentId); LambdaQueryWrapper<MdcNoplanClose> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(MdcNoplanClose::getEquipmentId, equipmentId); queryWrapper.orderByAsc(MdcNoplanClose::getStartTime); List<MdcNoplanClose> mdcNoplanCloses = this.baseMapper.selectList(queryWrapper); if (mdcNoplanCloses != null && !mdcNoplanCloses.isEmpty()) { for (MdcNoplanClose noplanClose : mdcNoplanCloses) { if (startTime.before(noplanClose.getStartTime())) { //å¼å§æ¶é´å¨è®°å½å¼å§æ¶é´ä¹å if (endTime.after(noplanClose.getStartTime())) { //ç»ææ¶é´å¨è®°å½å¼å§æ¶é´ä¹å if (endTime.before(noplanClose.getEndTime())) { //ç»ææ¶é´å¨è®°å½ç»ææ¶é´ä¹å -> ä¿®æ¹ç»ææ¶é´ä¸ºè®°å½å¼å§æ¶é´ endTime = noplanClose.getStartTime(); } else { //ç»ææ¶é´å¨è®°å½ç»ææ¶é´ä¹å -> åå²ä¸ºä¸¤æ®µæ¶é´ å䏿®µæ¶é´ä¸å®å¯ä¸ï¼å䏿®µæ¶é´èµå¼éæ°æ¯è¾ //ä¿åç¬¬ä¸æ®µè®°å½ MdcNoplanClose mdcNoplanClose1 = new MdcNoplanClose(); mdcNoplanClose1.setEquipmentId(mdcEquipment.getEquipmentId()); mdcNoplanClose1.setEquipmentName(mdcEquipment.getEquipmentName()); mdcNoplanClose1.setStartTime(startTime); mdcNoplanClose1.setEndTime(noplanClose.getStartTime()); mdcNoplanClose1.setNoplanType(mdcNoplanCloseVo.getNoplanType()); mdcNoplanClose1.setRemark(mdcNoplanCloseVo.getRemark()); mdcNoplanCloseList.add(mdcNoplanClose1); //ç¬¬äºæ®µæ¶é´èµå¼ç» startTime = noplanClose.getEndTime(); } } } else { //å¼å§æ¶é´å¨è®°å½å¼å§æ¶é´ä¹å if (startTime.before(noplanClose.getEndTime())) { //å¼å§æ¶é´å¨è®°å½ç»ææ¶é´ä¹å if (endTime.before(noplanClose.getEndTime())) { //ç»ææ¶é´å¨è®°å½ç»ææ¶é´ä¹å -> æ¶é´éå continue a; } else { //ç»ææ¶é´å¨è®°å½ç»ææ¶é´ä¹å -> ä¿®æ¹å¼å§æ¶é´ä¸ºè®°å½ç»ææ¶é´ startTime = noplanClose.getEndTime(); } } } } MdcNoplanClose mdcNoplanClose1 = new MdcNoplanClose(); mdcNoplanClose1.setEquipmentId(mdcEquipment.getEquipmentId()); mdcNoplanClose1.setEquipmentName(mdcEquipment.getEquipmentName()); mdcNoplanClose1.setStartTime(startTime); mdcNoplanClose1.setEndTime(endTime); mdcNoplanClose1.setNoplanType(mdcNoplanCloseVo.getNoplanType()); mdcNoplanClose1.setRemark(mdcNoplanCloseVo.getRemark()); mdcNoplanCloseList.add(mdcNoplanClose1); // è¿æ»¤ mdcNoplanCloseList = mdcNoplanCloseList.stream().filter(mdcNoplanClose2 -> !mdcNoplanClose2.getEndTime().equals(mdcNoplanClose2.getStartTime())).collect(Collectors.toList()); boolean b = super.saveBatch(mdcNoplanCloseList); if (b) { result = true; } mdcNoplanCloseList.clear(); } else { // è¡¨ä¸æ è®°å½æ£å¸¸æ·»å MdcNoplanClose noplanClose = new MdcNoplanClose(); noplanClose.setEquipmentId(mdcEquipment.getEquipmentId()); noplanClose.setEquipmentName(mdcEquipment.getEquipmentName()); noplanClose.setStartTime(startTime); noplanClose.setEndTime(endTime); noplanClose.setNoplanType(mdcNoplanCloseVo.getNoplanType()); noplanClose.setRemark(mdcNoplanCloseVo.getRemark()); boolean b = super.save(noplanClose); if (b) { result = true; } } } return result; } /** * ç¼è¾ * * @param mdcNoplanClose * @return */ @Override public boolean updateMdcNoplan(MdcNoplanClose mdcNoplanClose) { boolean result = false; LambdaQueryWrapper<MdcNoplanClose> queryWrapper = new LambdaQueryWrapper<>(); queryWrapper.eq(MdcNoplanClose::getEquipmentId, mdcNoplanClose.getEquipmentId()); queryWrapper.orderByAsc(MdcNoplanClose::getStartTime); queryWrapper.ne(MdcNoplanClose::getId, mdcNoplanClose.getId()); List<MdcNoplanClose> mdcNoplanCloses = this.baseMapper.selectList(queryWrapper); List<MdcNoplanClose> mdcNoplanCloseList = new ArrayList<>(); if (mdcNoplanCloses != null && !mdcNoplanCloses.isEmpty()) { Date startTime = mdcNoplanClose.getStartTime(); Date endTime = mdcNoplanClose.getEndTime(); for (MdcNoplanClose noplanClose : mdcNoplanCloses) { if (startTime.before(noplanClose.getStartTime())) { //å¼å§æ¶é´å¨è®°å½å¼å§æ¶é´ä¹å if (endTime.after(noplanClose.getStartTime())) { //ç»ææ¶é´å¨è®°å½å¼å§æ¶é´ä¹å if (endTime.before(noplanClose.getEndTime())) { //ç»ææ¶é´å¨è®°å½ç»ææ¶é´ä¹å -> ä¿®æ¹ç»ææ¶é´ä¸ºè®°å½å¼å§æ¶é´ endTime = noplanClose.getStartTime(); } else { //ç»ææ¶é´å¨è®°å½ç»ææ¶é´ä¹å -> åå²ä¸ºä¸¤æ®µæ¶é´ å䏿®µæ¶é´ä¸å®å¯ä¸ï¼å䏿®µæ¶é´èµå¼éæ°æ¯è¾ //ä¿åç¬¬ä¸æ®µè®°å½ MdcNoplanClose mdcNoplanClose1 = new MdcNoplanClose(); mdcNoplanClose1.setEquipmentId(mdcNoplanClose.getEquipmentId()); mdcNoplanClose1.setEquipmentName(mdcNoplanClose.getEquipmentName()); mdcNoplanClose1.setStartTime(startTime); mdcNoplanClose1.setEndTime(noplanClose.getStartTime()); mdcNoplanClose1.setNoplanType(mdcNoplanClose.getNoplanType()); mdcNoplanClose1.setRemark(mdcNoplanClose.getRemark()); mdcNoplanCloseList.add(mdcNoplanClose1); //ç¬¬äºæ®µæ¶é´èµå¼ç» startTime = noplanClose.getEndTime(); } } } else { //å¼å§æ¶é´å¨è®°å½å¼å§æ¶é´ä¹å if (startTime.before(noplanClose.getEndTime())) { //å¼å§æ¶é´å¨è®°å½ç»ææ¶é´ä¹å if (endTime.before(noplanClose.getEndTime())) { //ç»ææ¶é´å¨è®°å½ç»ææ¶é´ä¹å -> æ¶é´éå // return false; break; } else { //ç»ææ¶é´å¨è®°å½ç»ææ¶é´ä¹å -> ä¿®æ¹å¼å§æ¶é´ä¸ºè®°å½ç»ææ¶é´ startTime = noplanClose.getEndTime(); } } } } if (!mdcNoplanCloseList.isEmpty()) { Date finalStartTime = startTime; Date finalEndTime = endTime; mdcNoplanCloseList = mdcNoplanCloseList.stream().filter(mdcNoplanClose1 -> !mdcNoplanClose1.getEndTime().equals(mdcNoplanClose1.getStartTime()) && (!mdcNoplanClose1.getStartTime().equals(finalStartTime) && !mdcNoplanClose1.getEndTime().equals(finalEndTime))).collect(Collectors.toList()); result = super.saveBatch(mdcNoplanCloseList); } if (!startTime.equals(endTime)) { mdcNoplanClose.setStartTime(startTime); mdcNoplanClose.setEndTime(endTime); result = super.updateById(mdcNoplanClose); } else if (!mdcNoplanCloseList.isEmpty()) { result = super.removeById(mdcNoplanClose); } else { return false; } } else { //æ å ¶ä»è®°å½ï¼ å¯ç´æ¥ä¿®æ¹ result = super.updateById(mdcNoplanClose); } return result; } } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/MdcNoplanCloseVo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,66 @@ package org.jeecg.modules.mdc.vo; import com.baomidou.mybatisplus.annotation.TableField; import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; import org.jeecgframework.poi.excel.annotation.Excel; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; import java.util.List; /** * @author: LiuS * @create: 2023-07-14 11:19 */ @Data public class MdcNoplanCloseVo { private String id; /** * 设å¤ç¼å· */ private String equipmentId; /** * 设å¤åç§° */ private String equipmentName; /** * é计ååæºç±»å */ private String noplanType; /** * é计ååæºå¼å§æ¶é´ */ private String startTime; /** * é计ååæºç»ææ¶é´ */ private String endTime; /** * 夿³¨ */ private String remark; /** * åå°ä¼ å ¥ 夿æ¯ä¸ªid */ private String parentId; /** * åå°ä¼ å ¥ 车é´å±çº§:1 é¨é¨å±çº§:2 */ private String typeTree; /** * é¨é¨parentId å ³èåéid */ private List<String> mdcSectionIds; /** * 设å¤ç» */ private String equipmentIds; }