lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/controller/MdcEquipmentOvertimeController.java
@@ -13,12 +13,14 @@ import org.jeecg.common.system.vo.LoginUser; import org.jeecg.modules.mdc.entity.MdcEquipmentOvertime; import org.jeecg.modules.mdc.service.IMdcEquipmentOvertimeService; import org.jeecg.modules.mdc.util.DateUtils; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.math.BigDecimal; import java.util.Arrays; /** @@ -89,6 +91,10 @@ @ApiOperation(value = "设备加班管理-编辑", notes = "设备加班管理-编辑") @RequestMapping(value = "/edit", method = {RequestMethod.PUT, RequestMethod.POST}) public Result<?> edit(@RequestBody MdcEquipmentOvertime mdcEquipmentOvertime) { String startTime = mdcEquipmentOvertime.getStartTime(); String endTime = mdcEquipmentOvertime.getEndTime(); long duration = DateUtils.differentSecond(DateUtils.setTimeForDay(DateUtils.getNow(), startTime), DateUtils.setTimeForDay(DateUtils.getNow(), endTime)); mdcEquipmentOvertime.setDuration(new BigDecimal(duration)); mdcEquipmentOvertimeService.updateById(mdcEquipmentOvertime); return Result.OK("编辑成功!"); } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/MdcEquipmentOvertime.java
@@ -31,17 +31,19 @@ private static final long serialVersionUID = -7163039765166584824L; @Excel(name = "设备编号", width = 20) @ApiModelProperty("日期") @ApiModelProperty("设备编号") private String equipmentId; @TableField(exist = false) @Excel(name = "设备名称", width = 20) @ApiModelProperty("设备名称") private String equipmentName; @ApiModelProperty("日期") @Excel(name = "日期", width = 20) private String theDate; @Excel(name = "自动计算标识", width = 15) // @Excel(name = "自动计算标识", width = 15) @ApiModelProperty("自动计算标识") private Integer autoFlag = CommonConstant.AUTO_FLAG_N; lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcEquipmentOvertimeMapper.xml
@@ -81,12 +81,10 @@ <!--查询加班时长--> <select id="computeOvertime" resultType="org.jeecg.modules.mdc.entity.MdcEquipmentOvertime"> SELECT meo.* * FROM mdc_equipment_overtime meo LEFT JOIN mdc_device_calendar mdc ON meo.calendar_id = mdc.id mdc_equipment_overtime WHERE mdc.effective_date LIKE CONCAT(#{ validDate }, '%') AND mdc.equipment_id = #{ equipmentId } the_date LIKE CONCAT(#{ validDate }, '%') AND equipment_id = #{ equipmentId } </select> </mapper> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentOvertimeServiceImpl.java
@@ -22,9 +22,7 @@ import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import java.math.BigDecimal; import java.time.Duration; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.math.RoundingMode; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -143,13 +141,7 @@ BigDecimal result = new BigDecimal("0"); if (list != null && !list.isEmpty()) { for (MdcEquipmentOvertime equipmentOvertime : list) { String date = DateUtils.format(DateUtils.toDate(validDate + "-01", DateUtils.STR_DATE), DateUtils.STR_DATE) + " "; String startTime = date + equipmentOvertime.getStartTime(); String endTime = date + equipmentOvertime.getEndTime(); LocalDateTime localStartTime = LocalDateTime.parse(startTime, DateTimeFormatter.ofPattern(DateUtils.STR_DATE_TIME_SMALL)); LocalDateTime localEndTime = LocalDateTime.parse(endTime, DateTimeFormatter.ofPattern(DateUtils.STR_DATE_TIME_SMALL)); int minutes = Math.toIntExact(Duration.between(localStartTime, localEndTime).toMinutes()); result = result.add(new BigDecimal(minutes)); result = result.add(equipmentOvertime.getDuration().divide(new BigDecimal("60"), 0, RoundingMode.HALF_UP)); } } return result; @@ -163,7 +155,7 @@ */ @Override public boolean addOvertime(MdcEquipmentOvertime mdcEquipmentOvertime) { String[] equipmentIds = mdcEquipmentOvertime.getEquipmentIds().split(","); String[] equipmentIds = mdcEquipmentOvertime.getEquipmentId().split(","); List<MdcEquipmentOvertime> mdcEquipmentOvertimes = new ArrayList<>(); // 计算时长(秒) String startTime = mdcEquipmentOvertime.getStartTime();