From 92442dca5ac89b58daa7129428cc72dcf001fb39 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期三, 24 七月 2024 15:22:47 +0800 Subject: [PATCH] 加班工时 --- performance-server/src/main/java/com/yuanchu/mom/pojo/PerformanceShift.java | 3 system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java | 32 +-- performance-server/src/main/java/com/yuanchu/mom/controller/ShiftTimeController.java | 63 ++++++ inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 108 ++++++++-- performance-server/src/main/resources/mapper/ShiftTimeMapper.xml | 17 + performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml | 3 performance-server/src/main/java/com/yuanchu/mom/service/ShiftTimeService.java | 22 ++ performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java | 148 +++++++------- performance-server/src/main/java/com/yuanchu/mom/pojo/ShiftTime.java | 59 +++++ performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java | 62 +++--- performance-server/src/main/java/com/yuanchu/mom/mapper/ShiftTimeMapper.java | 16 + performance-server/src/main/java/com/yuanchu/mom/service/impl/ShiftTimeServiceImpl.java | 35 +++ system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java | 6 performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java | 2 14 files changed, 421 insertions(+), 155 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index 8c51007..499f5ca 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -50,6 +50,7 @@ import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; +import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.*; import java.util.concurrent.CompletableFuture; @@ -79,6 +80,10 @@ private InsOrderStateMapper insOrderStateMapper; @Resource private InsProductMapper insProductMapper; + @Resource + private ShiftTimeMapper shiftTimeMapper; + @Resource + private PerformanceShiftMapper performanceShiftMapper; @Value("${wordUrl}") private String wordUrl; @@ -100,6 +105,9 @@ @Resource AuxiliaryOutputWorkingHoursMapper auxiliaryOutputWorkingHoursMapper; + + @Resource + AuxiliaryOutputWorkingHoursService auxiliaryOutputWorkingHoursService; @Resource private InformationNotificationService informationNotificationService; @@ -495,6 +503,7 @@ map.put("v", JSON.parseObject(JSON.toJSONString(insValue.get("v"))).get("v")); map.put("r", JSON.toJSONString(insValue.get("r"))); map.put("c", JSON.toJSONString(insValue.get("c"))); + map.put("w", insValue.get("w")); try { if ((insValue.get("u") == null || insValue.get("u").equals("")) && StrUtil.isNotEmpty(JSON.parseObject(JSON.toJSONString(insValue.get("v"))).get("v").toString())) { map.put("u", userId + ""); @@ -572,31 +581,80 @@ //鏌ヨ妫�楠屽崟淇℃伅 InsOrder insOrder = insOrderMapper.selectById(insSampleMapper.selectById(insProduct.getInsSampleId()).getInsOrderId()); //鏍¢獙濡傛灉杩欎釜浜鸿繖涓娴嬮」鐩凡缁忔坊鍔犺繃浜嗗垯涓嶉渶瑕佸啀鏂板 - Long count = auxiliaryOutputWorkingHoursMapper.selectCount(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() - .eq(AuxiliaryOutputWorkingHours::getCheck, userId) - .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) - .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) - .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode())); - if (count == 0 && ObjectUtils.isNotEmpty(insProduct.getManHour())) { - //娣诲姞姣忎釜浜虹殑浜ч噺宸ユ椂,瑕佸垽鏂綋鍓嶆椂闂存槸鍚︽槸杩欎釜浜虹殑鎺掔彮鏃堕棿,濡傛灉涓嶆槸鍒欐槸鍔犵彮 - AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); - auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� - auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� - auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 - auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� - auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� - auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� - auxiliaryOutputWorkingHours.setOutputWorkTime(insProduct.getManHour());//浜ч噺宸ユ椂 - auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 - DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); - DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); - auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 - LocalDateTime localDateTime = LocalDateTime.now(); - DateTime parse = DateUtil.parse(localDateTime.format(formatter)); - auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 - auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ - auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 - auxiliaryOutputWorkingHoursMapper.insert(auxiliaryOutputWorkingHours); + //棣栧厛鍒ゆ柇褰撳墠浜虹殑褰撳墠鏃堕棿鏄惁鏄帓鐝椂闂村唴,濡傛灉涓嶆槸灏辨槸鍔犵彮 + LocalDateTime today = LocalDateTime.of(LocalDate.now(), LocalTime.MIDNIGHT); + PerformanceShift performanceShift = performanceShiftMapper.selectOne(Wrappers.<PerformanceShift>lambdaQuery() + .eq(PerformanceShift::getUserId, userId) + .eq(PerformanceShift::getWorkTime, today)); + if (ObjectUtils.isNotEmpty(performanceShift)){ + ShiftTime shiftTime = shiftTimeMapper.selectOne(Wrappers.<ShiftTime>lambdaQuery().eq(ShiftTime::getShift, performanceShift.getShift())); + if (ObjectUtils.isNotEmpty(shiftTime)){ + DateTimeFormatter forma = DateTimeFormatter.ofPattern("HH:mm"); + LocalTime now = LocalTime.now(); + LocalTime startTime = LocalTime.parse(shiftTime.getStartTime(), forma); + LocalTime endTime = LocalTime.parse(shiftTime.getEndTime(), forma); + // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛� + boolean isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime); + //鍔犵彮 + AuxiliaryOutputWorkingHours count1 = auxiliaryOutputWorkingHoursMapper.selectOne(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() + .eq(AuxiliaryOutputWorkingHours::getCheck, userId) + .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) + .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) + .eq(AuxiliaryOutputWorkingHours::getOvertimeOrderNo, insOrder.getEntrustCode())); + //闈炲姞鐝� + AuxiliaryOutputWorkingHours count2 = auxiliaryOutputWorkingHoursMapper.selectOne(Wrappers.<AuxiliaryOutputWorkingHours>lambdaQuery() + .eq(AuxiliaryOutputWorkingHours::getCheck, userId) + .eq(AuxiliaryOutputWorkingHours::getInspectionItem, insProduct.getInspectionItem()) + .eq(AuxiliaryOutputWorkingHours::getInspectionItemSubclass, insProduct.getInspectionItemSubclass()) + .eq(AuxiliaryOutputWorkingHours::getOrderNo, insOrder.getEntrustCode())); + AuxiliaryOutputWorkingHours auxiliaryOutputWorkingHours = new AuxiliaryOutputWorkingHours(); + if (ObjectUtils.isNotEmpty(count1) ){ + auxiliaryOutputWorkingHours = count1; + } + else if (ObjectUtils.isNotEmpty(count2) ){ + auxiliaryOutputWorkingHours = count2; + } + if (ObjectUtils.isNotEmpty(insProduct.getManHour())) { + if (isWithinRange && ObjectUtils.isEmpty(count2)) { + //鍦ㄦ椂闂村唴灏辨槸姝e父涓婄彮 + auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� + auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� + auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 + auxiliaryOutputWorkingHours.setOrderNo(insOrder.getEntrustCode());//闈炲姞鐝鎵樺崟鍙� + auxiliaryOutputWorkingHours.setWorkTime(insProduct.getManHour());//闈炲姞鐝伐鏃� + auxiliaryOutputWorkingHours.setAmount(1);//闈炲姞鐝暟閲� + auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime())?auxiliaryOutputWorkingHours.getOvertimeWorkTime():0)+(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime())?auxiliaryOutputWorkingHours.getWorkTime():0));//浜ч噺宸ユ椂 + auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 + LocalDateTime localDateTime = LocalDateTime.now(); + DateTime parse = DateUtil.parse(localDateTime.format(formatter)); + auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 + auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ + auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + } else if(ObjectUtils.isEmpty(count1)) { + //鍔犵彮 + auxiliaryOutputWorkingHours.setInspectionItem(insProduct.getInspectionItem());//妫�娴嬬埗椤� + auxiliaryOutputWorkingHours.setInspectionItemSubclass(insProduct.getInspectionItemSubclass());//妫�娴嬪瓙椤� + auxiliaryOutputWorkingHours.setSample(insSampleMapper.selectById(insProduct.getInsSampleId()).getSampleCode());//鏍峰搧缂栧彿 + auxiliaryOutputWorkingHours.setOvertimeOrderNo(insOrder.getEntrustCode());//鍔犵彮濮旀墭鍗曞彿 + auxiliaryOutputWorkingHours.setOvertimeWorkTime(insProduct.getManHour());//鍔犵彮宸ユ椂 + auxiliaryOutputWorkingHours.setOvertimeAmount(1);//鍔犵彮鏁伴噺 + auxiliaryOutputWorkingHours.setOutputWorkTime((ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getOvertimeWorkTime())?auxiliaryOutputWorkingHours.getOvertimeWorkTime():0)+(ObjectUtils.isNotEmpty(auxiliaryOutputWorkingHours.getWorkTime())?auxiliaryOutputWorkingHours.getWorkTime():0));//浜ч噺宸ユ椂 + auxiliaryOutputWorkingHours.setManHourGroup(insProduct.getManHourGroup());//宸ユ椂鍒嗙粍 + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); + DateTimeFormatter formatters = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + auxiliaryOutputWorkingHours.setDateTime(LocalDateTime.now().toLocalDate().atStartOfDay().format(formatters));//鏃ユ湡 + LocalDateTime localDateTime = LocalDateTime.now(); + DateTime parse = DateUtil.parse(localDateTime.format(formatter)); + auxiliaryOutputWorkingHours.setWeekDay(getWeek(localDateTime.format(formatters)));//鏄熸湡 + auxiliaryOutputWorkingHours.setWeek(String.valueOf(DateUtil.weekOfYear(DateUtil.offsetDay(parse, 1))));//鍛ㄦ + auxiliaryOutputWorkingHours.setCheck(userId);//妫�娴嬩汉 + } + auxiliaryOutputWorkingHoursService.saveOrUpdate(auxiliaryOutputWorkingHours); + } + } } InsSample insSample = insSampleMapper.selectById(insProductMapper.selectById(insProduct.getId()).getInsSampleId()); diff --git a/performance-server/src/main/java/com/yuanchu/mom/controller/ShiftTimeController.java b/performance-server/src/main/java/com/yuanchu/mom/controller/ShiftTimeController.java new file mode 100644 index 0000000..80c41d3 --- /dev/null +++ b/performance-server/src/main/java/com/yuanchu/mom/controller/ShiftTimeController.java @@ -0,0 +1,63 @@ +package com.yuanchu.mom.controller; + +import com.yuanchu.mom.annotation.ValueAuth; +import com.yuanchu.mom.annotation.ValueClassify; +import com.yuanchu.mom.dto.PerformanceShiftAddDto; +import com.yuanchu.mom.pojo.ShiftTime; +import com.yuanchu.mom.service.PerformanceShiftService; +import com.yuanchu.mom.service.ShiftTimeService; +import com.yuanchu.mom.vo.Result; +import io.swagger.annotations.Api; +import io.swagger.annotations.ApiOperation; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.web.bind.annotation.PostMapping; +import org.springframework.web.bind.annotation.RequestBody; +import org.springframework.web.bind.annotation.RequestMapping; +import org.springframework.web.bind.annotation.RestController; + +/** + * <p> + * 鐝瀵瑰簲鐨勬椂闂� 鍓嶇鎺у埗鍣� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-07-24 11:22:17 + */ +@Api(tags = "缁╂晥绠$悊-鐝") +@RestController +@RequestMapping("/shiftTime") +public class ShiftTimeController { + + @Autowired + private ShiftTimeService shiftTimeService; + + @ValueAuth + @ApiOperation(value = "鎺掔彮鏃堕棿閰嶇疆") + @PostMapping("add") + public Result<?> shiftTimeAdd(@RequestBody ShiftTime shiftTime) { + shiftTimeService.shiftTimeAdd(shiftTime); + return Result.success(); + } + + @ValueClassify("鐝") + @ApiOperation(value = "鎺掔彮鏃堕棿閰嶇疆鏌ヨ") + @PostMapping("list") + public Result<?> shiftTimeList() { + return Result.success(shiftTimeService.shiftTimeList()); + } + + @ValueAuth + @ApiOperation(value = "鎺掔彮鏃堕棿閰嶇疆鍒犻櫎") + @PostMapping("remove") + public Result<?> shiftTimeRemove(Long id) { + return Result.success(shiftTimeService.removeById(id)); + } + + @ValueAuth + @ApiOperation(value = "鎺掔彮鏃堕棿閰嶇疆淇敼") + @PostMapping("update") + public Result<?> shiftTimeUpdate(@RequestBody ShiftTime shiftTime) { + return Result.success(shiftTimeService.updateById(shiftTime)); + } + +} diff --git a/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java index b94f040..4ded00e 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java +++ b/performance-server/src/main/java/com/yuanchu/mom/mapper/AuxiliaryOutputWorkingHoursMapper.java @@ -30,7 +30,7 @@ List<AuxiliaryOutputWorkingHoursDto> selectDataByUser(@Param("ids") List<Integer> ids); //鏌ヨ璇ユ湀鐨勪骇閲忓伐鏃� - List<Map<String, Object>> totalHours(@Param("month") String month, @Param("ids") List<Integer> ids); + List<Map<String, Object>> totalHours(@Param("month") String month, @Param("ids") List<Integer> ids, @Param("type") String type); List<AuxiliaryOutputWorkingHours> selectListByIds(@Param("ids") List<Integer> ids); diff --git a/performance-server/src/main/java/com/yuanchu/mom/mapper/ShiftTimeMapper.java b/performance-server/src/main/java/com/yuanchu/mom/mapper/ShiftTimeMapper.java new file mode 100644 index 0000000..52bb695 --- /dev/null +++ b/performance-server/src/main/java/com/yuanchu/mom/mapper/ShiftTimeMapper.java @@ -0,0 +1,16 @@ +package com.yuanchu.mom.mapper; + +import com.yuanchu.mom.pojo.ShiftTime; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * <p> + * 鐝瀵瑰簲鐨勬椂闂� Mapper 鎺ュ彛 + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-07-24 11:22:17 + */ +public interface ShiftTimeMapper extends BaseMapper<ShiftTime> { + +} diff --git a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java index 9d59780..31b97c9 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java +++ b/performance-server/src/main/java/com/yuanchu/mom/pojo/AuxiliaryCorrectionHours.java @@ -41,157 +41,157 @@ @ExcelProperty(value = "绫诲瀷") private String type; - @ApiModelProperty("1鏃�") + @ApiModelProperty("1") @ValueTableShow(4) @ExcelProperty(value = "1鏃�") private Double oneHours; - @ApiModelProperty("2鏃�") + @ApiModelProperty("2") @ValueTableShow(5) @ExcelProperty(value = "2鏃�") private Double twoHours; - @ApiModelProperty("3鏃�") + @ApiModelProperty("3") @ValueTableShow(6) @ExcelProperty(value = "3鏃�") private Double threeHours; - @ApiModelProperty("4鏃�") + @ApiModelProperty("4") @ValueTableShow(7) @ExcelProperty(value = "4鏃�") private Double fourHours; - @ApiModelProperty("5鏃�") + @ApiModelProperty("5") @ValueTableShow(8) @ExcelProperty(value = "5鏃�") private Double fiveHours; - @ApiModelProperty("6鏃�") + @ApiModelProperty("6") @ValueTableShow(9) @ExcelProperty(value = "6鏃�") private Double sixHours; - @ApiModelProperty("7鏃�") + @ApiModelProperty("7") @ValueTableShow(10) @ExcelProperty(value = "7鏃�") private Double sevenHours; - @ApiModelProperty("8鏃�") + @ApiModelProperty("8") @ValueTableShow(11) @ExcelProperty(value = "8鏃�") private Double eightHours; - @ApiModelProperty("9鏃�") + @ApiModelProperty("9") @ValueTableShow(12) @ExcelProperty(value = "9鏃�") private Double nineHours; - @ApiModelProperty("10鏃�") + @ApiModelProperty("10") @ValueTableShow(13) @ExcelProperty(value = "10鏃�") private Double tenHours; - @ApiModelProperty("11鏃�") + @ApiModelProperty("11") @ValueTableShow(14) @ExcelProperty(value = "11鏃�") private Double elevenHours; - @ApiModelProperty("12鏃�") + @ApiModelProperty("12") @ValueTableShow(15) @ExcelProperty(value = "12鏃�") private Double twelveHours; - @ApiModelProperty("13鏃�") + @ApiModelProperty("13") @ValueTableShow(16) @ExcelProperty(value = "13鏃�") private Double thirteenHours; - @ApiModelProperty("14鏃�") + @ApiModelProperty("14") @ValueTableShow(17) @ExcelProperty(value = "14鏃�") private Double fourteenHours; - @ApiModelProperty("15鏃�") + @ApiModelProperty("15") @ValueTableShow(18) @ExcelProperty(value = "15鏃�") private Double fifteenHours; - @ApiModelProperty("16鏃�") + @ApiModelProperty("16") @ValueTableShow(19) @ExcelProperty(value = "16鏃�") private Double sixteenHours; - @ApiModelProperty("17鏃�") + @ApiModelProperty("17") @ValueTableShow(20) @ExcelProperty(value = "17鏃�") private Double seventeenHours; - @ApiModelProperty("18鏃�") + @ApiModelProperty("18") @ValueTableShow(21) @ExcelProperty(value = "18鏃�") private Double eighteenHours; - @ApiModelProperty("19鏃�") + @ApiModelProperty("19") @ValueTableShow(22) @ExcelProperty(value = "19鏃�") private Double nineteenHours; - @ApiModelProperty("20鏃�") + @ApiModelProperty("20") @ValueTableShow(23) @ExcelProperty(value = "20鏃�") private Double twentyHours; - @ApiModelProperty("21鏃�") + @ApiModelProperty("21") @ValueTableShow(24) @ExcelProperty(value = "21鏃�") private Double twentyOneHours; - @ApiModelProperty("22鏃�") + @ApiModelProperty("22") @ValueTableShow(25) @ExcelProperty(value = "22鏃�") private Double twentyTwoHours; - @ApiModelProperty("23鏃�") + @ApiModelProperty("23") @ValueTableShow(26) @ExcelProperty(value = "23鏃�") private Double twentyThreeHours; - @ApiModelProperty("24鏃�") + @ApiModelProperty("24") @ValueTableShow(27) @ExcelProperty(value = "24鏃�") private Double twentyFourHours; - @ApiModelProperty("25鏃�") + @ApiModelProperty("25") @ValueTableShow(28) @ExcelProperty(value = "25鏃�") private Double twentyFiveHours; - @ApiModelProperty("26鏃�") + @ApiModelProperty("26") @ValueTableShow(29) @ExcelProperty(value = "26鏃�") private Double twentySixHours; - @ApiModelProperty("27鏃�") + @ApiModelProperty("27") @ValueTableShow(30) @ExcelProperty(value = "27鏃�") private Double twentySevenHours; - @ApiModelProperty("28鏃�") + @ApiModelProperty("28") @ValueTableShow(31) @ExcelProperty(value = "28鏃�") private Double twentyEightHours; - @ApiModelProperty("29鏃�") + @ApiModelProperty("29") @ValueTableShow(32) @ExcelProperty(value = "29鏃�") private Double twentyNineHours; - @ApiModelProperty("30鏃�") + @ApiModelProperty("30") @ValueTableShow(33) @ExcelProperty(value = "30鏃�") private Double thirtyHours; - @ApiModelProperty("31鏃�") + @ApiModelProperty("31") @ValueTableShow(34) @ExcelProperty(value = "31鏃�") private Double thirtyOneHours; diff --git a/performance-server/src/main/java/com/yuanchu/mom/pojo/PerformanceShift.java b/performance-server/src/main/java/com/yuanchu/mom/pojo/PerformanceShift.java index 8fd8910..ac57b7d 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/pojo/PerformanceShift.java +++ b/performance-server/src/main/java/com/yuanchu/mom/pojo/PerformanceShift.java @@ -1,6 +1,7 @@ package com.yuanchu.mom.pojo; import com.baomidou.mybatisplus.annotation.*; +import com.yuanchu.mom.common.OrderBy; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import lombok.Data; @@ -19,7 +20,7 @@ @Data @TableName("performance_shift") @ApiModel(value = "PerformanceShift瀵硅薄", description = "缁╂晥绠$悊-鐝") -public class PerformanceShift implements Serializable { +public class PerformanceShift extends OrderBy implements Serializable { private static final long serialVersionUID = 1L; diff --git a/performance-server/src/main/java/com/yuanchu/mom/pojo/ShiftTime.java b/performance-server/src/main/java/com/yuanchu/mom/pojo/ShiftTime.java new file mode 100644 index 0000000..0f69006 --- /dev/null +++ b/performance-server/src/main/java/com/yuanchu/mom/pojo/ShiftTime.java @@ -0,0 +1,59 @@ +package com.yuanchu.mom.pojo; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableField; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.time.LocalDateTime; + +import com.yuanchu.mom.common.OrderBy; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.Getter; +import lombok.Setter; + +/** + * <p> + * 鐝瀵瑰簲鐨勬椂闂� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-07-24 11:22:17 + */ +@Getter +@Setter +@TableName("shift_time") +@ApiModel(value = "ShiftTime瀵硅薄", description = "鐝瀵瑰簲鐨勬椂闂�") +public class ShiftTime extends OrderBy implements Serializable { + + @ApiModelProperty("涓婚敭ID") + @TableId(value = "id", type = IdType.AUTO) + private Integer id; + + @ApiModelProperty("鐝") + private String shift; + + @ApiModelProperty("寮�濮嬫椂闂�") + private String startTime; + + @ApiModelProperty("缁撴潫鏃堕棿") + private String endTime; + + @ApiModelProperty("鍒涘缓浜篒d") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ApiModelProperty("鍒涘缓鏃ユ湡") + @TableField(fill = FieldFill.INSERT) + private LocalDateTime createTime; + + @ApiModelProperty("鏇存柊浜篒d") + @TableField(fill = FieldFill.INSERT_UPDATE) + private Integer updateUser; + + @ApiModelProperty("鏇存柊鏃堕棿") + @TableField(fill = FieldFill.INSERT_UPDATE) + private LocalDateTime updateTime; +} diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/ShiftTimeService.java b/performance-server/src/main/java/com/yuanchu/mom/service/ShiftTimeService.java new file mode 100644 index 0000000..0705798 --- /dev/null +++ b/performance-server/src/main/java/com/yuanchu/mom/service/ShiftTimeService.java @@ -0,0 +1,22 @@ +package com.yuanchu.mom.service; + +import com.yuanchu.mom.pojo.ShiftTime; +import com.baomidou.mybatisplus.extension.service.IService; + +import java.util.List; + +/** + * <p> + * 鐝瀵瑰簲鐨勬椂闂� 鏈嶅姟绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-07-24 11:22:17 + */ +public interface ShiftTimeService extends IService<ShiftTime> { + + void shiftTimeAdd(ShiftTime shiftTime); + + List<ShiftTime> shiftTimeList(); + +} diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java index 51ec8c7..6079e42 100644 --- a/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java +++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/AuxiliaryOriginalHoursServiceImpl.java @@ -110,8 +110,9 @@ List<AuxiliaryOriginalHoursDto> auxiliaryOriginalHoursDtos = new ArrayList<>(); Map<String, AuxiliaryOriginalHoursDto> data1 = new HashMap<>(); Map<String, AuxiliaryOriginalHoursDto> data2 = new HashMap<>(); + Map<String, AuxiliaryOriginalHoursDto> data3 = new HashMap<>(); //浜ч噺宸ユ椂 - List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids); + List<Map<String, Object>> maps = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids,"浜ч噺宸ユ椂"); if (ObjectUtils.isNotEmpty(maps)) { data1 = getData(maps, "浜ч噺宸ユ椂"); auxiliaryOriginalHoursDtos.addAll(data1.values()); @@ -123,70 +124,23 @@ auxiliaryOriginalHoursDtos.addAll(data2.values()); } //鍔犵彮宸ユ椂 + List<Map<String, Object>> maps2 = auxiliaryOutputWorkingHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids,"鍔犵彮宸ユ椂"); + if (ObjectUtils.isNotEmpty(maps2)) { + data3 = getData(maps2, "鍔犵彮宸ユ椂"); + auxiliaryOriginalHoursDtos.addAll(data3.values()); + } //鎬诲伐鏃�=浜ч噺宸ユ椂+杈呭姪宸ユ椂+鍔犵彮宸ユ椂 Map<String, AuxiliaryOriginalHoursDto> data4 = new HashMap<String, AuxiliaryOriginalHoursDto>(); - Map<String, AuxiliaryOriginalHoursDto> data3 = data1; if (data1.size()>0) { + Map<String, AuxiliaryOriginalHoursDto> data5 = data1; if (data2.size() > 0) { - for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data2.entrySet()) { - String key = entry.getKey(); - AuxiliaryOriginalHoursDto value = entry.getValue(); - if (data3.containsKey(key)) { - for (Map.Entry<String, AuxiliaryOriginalHoursDto> dtoEntry : data3.entrySet()) { - if (dtoEntry.getKey().equals(key)) { - AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto(); - AuxiliaryOriginalHoursDto hoursDto = data3.get(key); - BeanUtils.copyProperties(hoursDto, auxiliaryOriginalHoursDto); - auxiliaryOriginalHoursDto.setType("鎬诲伐鏃�"); - auxiliaryOriginalHoursDto.setOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getOneHours()) ? value.getOneHours() : 0)); - auxiliaryOriginalHoursDto.setTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwoHours()) ? value.getTwoHours() : 0)); - auxiliaryOriginalHoursDto.setThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getThreeHours()) ? value.getThreeHours() : 0)); - auxiliaryOriginalHoursDto.setFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourHours()) ? value.getFourHours() : 0)); - auxiliaryOriginalHoursDto.setFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getFiveHours()) ? value.getFiveHours() : 0)); - auxiliaryOriginalHoursDto.setSixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixHours()) ? value.getSixHours() : 0)); - auxiliaryOriginalHoursDto.setSevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSevenHours()) ? value.getSevenHours() : 0)); - auxiliaryOriginalHoursDto.setEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getEightHours()) ? value.getEightHours() : 0)); - auxiliaryOriginalHoursDto.setNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineHours()) ? value.getNineHours() : 0)); - auxiliaryOriginalHoursDto.setTenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTenHours()) ? value.getTenHours() : 0)); - auxiliaryOriginalHoursDto.setElevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getElevenHours()) ? value.getElevenHours() : 0)); - auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0)); - auxiliaryOriginalHoursDto.setThirteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirteenHours()) ? value.getThirteenHours() : 0)); - auxiliaryOriginalHoursDto.setFourteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourteenHours()) ? value.getFourteenHours() : 0)); - auxiliaryOriginalHoursDto.setFifteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFifteenHours()) ? value.getFifteenHours() : 0)); - auxiliaryOriginalHoursDto.setSixteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixteenHours()) ? value.getSixteenHours() : 0)); - auxiliaryOriginalHoursDto.setSeventeenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSeventeenHours()) ? value.getSeventeenHours() : 0)); - auxiliaryOriginalHoursDto.setEighteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getEighteenHours()) ? value.getEighteenHours() : 0)); - auxiliaryOriginalHoursDto.setNineteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineteenHours()) ? value.getNineteenHours() : 0)); - auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0)); - auxiliaryOriginalHoursDto.setTwentyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyOneHours()) ? value.getTwentyOneHours() : 0)); - auxiliaryOriginalHoursDto.setTwentyTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyTwoHours()) ? value.getTwentyTwoHours() : 0)); - auxiliaryOriginalHoursDto.setTwentyThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyThreeHours()) ? value.getTwentyThreeHours() : 0)); - auxiliaryOriginalHoursDto.setTwentyFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : 0)); - auxiliaryOriginalHoursDto.setTwentyFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFiveHours()) ? value.getTwentyFiveHours() : 0)); - auxiliaryOriginalHoursDto.setTwentySixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySixHours()) ? value.getTwentySixHours() : 0)); - auxiliaryOriginalHoursDto.setTwentySevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySevenHours()) ? value.getTwentySevenHours() : 0)); - auxiliaryOriginalHoursDto.setTwentyEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyEightHours()) ? value.getTwentyEightHours() : 0)); - auxiliaryOriginalHoursDto.setTwentyNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyNineHours()) ? value.getTwentyNineHours() : 0)); - auxiliaryOriginalHoursDto.setThirtyHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyHours()) ? value.getThirtyHours() : 0)); - auxiliaryOriginalHoursDto.setThirtyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyOneHours()) ? value.getThirtyOneHours() : 0)); - auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTotal()) ? auxiliaryOriginalHoursDto.getTotal() : 0) + (ObjectUtils.isNotEmpty(value.getTotal()) ? value.getTotal() : 0)); - data4.put(key, auxiliaryOriginalHoursDto); - } else { - AuxiliaryOriginalHoursDto hoursDto = data3.get(dtoEntry.getKey()); - AuxiliaryOriginalHoursDto dto = new AuxiliaryOriginalHoursDto(); - BeanUtils.copyProperties(hoursDto, dto); - dto.setType("鎬诲伐鏃�"); - data4.put(dtoEntry.getKey(), dto); - } - } - } else { - value.setType("鎬诲伐鏃�"); - data4.put(key, value); - } - } + merge(data5,data4,data2); } - else { - for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data3.entrySet()) { + if (data3.size()>0){ + merge(data5,data4,data3); + } + if(data2.size()==0 && data3.size()==0) { + for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data5.entrySet()) { AuxiliaryOriginalHoursDto dto = entry.getValue(); AuxiliaryOriginalHoursDto originalHoursDto = new AuxiliaryOriginalHoursDto(); BeanUtils.copyProperties(dto, originalHoursDto); @@ -196,17 +150,6 @@ } auxiliaryOriginalHoursDtos.addAll(data4.values()); } - /*List<Map<String, Object>> maps2 = auxiliaryOriginalHoursMapper.totalHours(auxiliaryOriginalHoursLookDto.getMonth(), ids); - if (ObjectUtils.isNotEmpty(maps2)) { - //浜ч噺宸ユ椂+杈呭姪宸ユ椂閮戒笉涓虹┖ - auxiliaryOriginalHoursDtos.addAll(getData(maps2, "鎬诲伐鏃�").values()); - } - //濡傛灉杈呭姪宸ユ椂涓嶄负绌� - else if (ObjectUtils.isNotEmpty(maps1)) { - auxiliaryOriginalHoursDtos.addAll(getData(maps1, "鎬诲伐鏃�").values()); - } else if (ObjectUtils.isNotEmpty(maps)) { - auxiliaryOriginalHoursDtos.addAll(getData(maps, "鎬诲伐鏃�").values()); - }*/ auxiliaryOriginalHoursDtos = auxiliaryOriginalHoursDtos.stream().sorted(Comparator.comparing(AuxiliaryOriginalHoursDto::getName)).collect(Collectors.toList()); // 妫�鏌ユ瘡涓汉鐨勫伐鏃剁被鍨嬶紝琛ュ叏缂哄皯鐨勫伐鏃� @@ -586,4 +529,67 @@ } return dtoMap; } + + //鍚堝苟 + private void merge(Map<String, AuxiliaryOriginalHoursDto> data5,Map<String, AuxiliaryOriginalHoursDto> data4,Map<String, AuxiliaryOriginalHoursDto> data2) { + for (Map.Entry<String, AuxiliaryOriginalHoursDto> entry : data2.entrySet()) { + String key = entry.getKey(); + AuxiliaryOriginalHoursDto value = entry.getValue(); + if (data5.containsKey(key)) { + for (Map.Entry<String, AuxiliaryOriginalHoursDto> dtoEntry : data5.entrySet()) { + if (dtoEntry.getKey().equals(key)) { + AuxiliaryOriginalHoursDto auxiliaryOriginalHoursDto = new AuxiliaryOriginalHoursDto(); + AuxiliaryOriginalHoursDto hoursDto = data5.get(key); + BeanUtils.copyProperties(hoursDto, auxiliaryOriginalHoursDto); + auxiliaryOriginalHoursDto.setType("鎬诲伐鏃�"); + auxiliaryOriginalHoursDto.setOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getOneHours()) ? auxiliaryOriginalHoursDto.getOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getOneHours()) ? value.getOneHours() : 0)); + auxiliaryOriginalHoursDto.setTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwoHours()) ? auxiliaryOriginalHoursDto.getTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwoHours()) ? value.getTwoHours() : 0)); + auxiliaryOriginalHoursDto.setThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThreeHours()) ? auxiliaryOriginalHoursDto.getThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getThreeHours()) ? value.getThreeHours() : 0)); + auxiliaryOriginalHoursDto.setFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourHours()) ? auxiliaryOriginalHoursDto.getFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourHours()) ? value.getFourHours() : 0)); + auxiliaryOriginalHoursDto.setFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFiveHours()) ? auxiliaryOriginalHoursDto.getFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getFiveHours()) ? value.getFiveHours() : 0)); + auxiliaryOriginalHoursDto.setSixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixHours()) ? auxiliaryOriginalHoursDto.getSixHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixHours()) ? value.getSixHours() : 0)); + auxiliaryOriginalHoursDto.setSevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSevenHours()) ? auxiliaryOriginalHoursDto.getSevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSevenHours()) ? value.getSevenHours() : 0)); + auxiliaryOriginalHoursDto.setEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEightHours()) ? auxiliaryOriginalHoursDto.getEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getEightHours()) ? value.getEightHours() : 0)); + auxiliaryOriginalHoursDto.setNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineHours()) ? auxiliaryOriginalHoursDto.getNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineHours()) ? value.getNineHours() : 0)); + auxiliaryOriginalHoursDto.setTenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTenHours()) ? auxiliaryOriginalHoursDto.getTenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTenHours()) ? value.getTenHours() : 0)); + auxiliaryOriginalHoursDto.setElevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getElevenHours()) ? auxiliaryOriginalHoursDto.getElevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getElevenHours()) ? value.getElevenHours() : 0)); + auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0)); + auxiliaryOriginalHoursDto.setThirteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirteenHours()) ? auxiliaryOriginalHoursDto.getThirteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirteenHours()) ? value.getThirteenHours() : 0)); + auxiliaryOriginalHoursDto.setFourteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFourteenHours()) ? auxiliaryOriginalHoursDto.getFourteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFourteenHours()) ? value.getFourteenHours() : 0)); + auxiliaryOriginalHoursDto.setFifteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getFifteenHours()) ? auxiliaryOriginalHoursDto.getFifteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getFifteenHours()) ? value.getFifteenHours() : 0)); + auxiliaryOriginalHoursDto.setSixteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSixteenHours()) ? auxiliaryOriginalHoursDto.getSixteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSixteenHours()) ? value.getSixteenHours() : 0)); + auxiliaryOriginalHoursDto.setSeventeenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getSeventeenHours()) ? auxiliaryOriginalHoursDto.getSeventeenHours() : 0) + (ObjectUtils.isNotEmpty(value.getSeventeenHours()) ? value.getSeventeenHours() : 0)); + auxiliaryOriginalHoursDto.setEighteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getEighteenHours()) ? auxiliaryOriginalHoursDto.getEighteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getEighteenHours()) ? value.getEighteenHours() : 0)); + auxiliaryOriginalHoursDto.setNineteenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getNineteenHours()) ? auxiliaryOriginalHoursDto.getNineteenHours() : 0) + (ObjectUtils.isNotEmpty(value.getNineteenHours()) ? value.getNineteenHours() : 0)); + auxiliaryOriginalHoursDto.setTwelveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwelveHours()) ? auxiliaryOriginalHoursDto.getTwelveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwelveHours()) ? value.getTwelveHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyOneHours()) ? auxiliaryOriginalHoursDto.getTwentyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyOneHours()) ? value.getTwentyOneHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyTwoHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyTwoHours()) ? auxiliaryOriginalHoursDto.getTwentyTwoHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyTwoHours()) ? value.getTwentyTwoHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyThreeHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyThreeHours()) ? auxiliaryOriginalHoursDto.getTwentyThreeHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyThreeHours()) ? value.getTwentyThreeHours() : 0)); + double v = ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0; + double v1 = ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : 0; + double v2 = v + v1; + auxiliaryOriginalHoursDto.setTwentyFourHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFourHours()) ? auxiliaryOriginalHoursDto.getTwentyFourHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFourHours()) ? value.getTwentyFourHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyFiveHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyFiveHours()) ? auxiliaryOriginalHoursDto.getTwentyFiveHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyFiveHours()) ? value.getTwentyFiveHours() : 0)); + auxiliaryOriginalHoursDto.setTwentySixHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySixHours()) ? auxiliaryOriginalHoursDto.getTwentySixHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySixHours()) ? value.getTwentySixHours() : 0)); + auxiliaryOriginalHoursDto.setTwentySevenHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentySevenHours()) ? auxiliaryOriginalHoursDto.getTwentySevenHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentySevenHours()) ? value.getTwentySevenHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyEightHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyEightHours()) ? auxiliaryOriginalHoursDto.getTwentyEightHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyEightHours()) ? value.getTwentyEightHours() : 0)); + auxiliaryOriginalHoursDto.setTwentyNineHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTwentyNineHours()) ? auxiliaryOriginalHoursDto.getTwentyNineHours() : 0) + (ObjectUtils.isNotEmpty(value.getTwentyNineHours()) ? value.getTwentyNineHours() : 0)); + auxiliaryOriginalHoursDto.setThirtyHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyHours()) ? auxiliaryOriginalHoursDto.getThirtyHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyHours()) ? value.getThirtyHours() : 0)); + auxiliaryOriginalHoursDto.setThirtyOneHours((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getThirtyOneHours()) ? auxiliaryOriginalHoursDto.getThirtyOneHours() : 0) + (ObjectUtils.isNotEmpty(value.getThirtyOneHours()) ? value.getThirtyOneHours() : 0)); + auxiliaryOriginalHoursDto.setTotal((ObjectUtils.isNotEmpty(auxiliaryOriginalHoursDto.getTotal()) ? auxiliaryOriginalHoursDto.getTotal() : 0) + (ObjectUtils.isNotEmpty(value.getTotal()) ? value.getTotal() : 0)); + data4.put(key, auxiliaryOriginalHoursDto); + } /*else { + AuxiliaryOriginalHoursDto hoursDto = data5.get(dtoEntry.getKey()); + AuxiliaryOriginalHoursDto dto = new AuxiliaryOriginalHoursDto(); + BeanUtils.copyProperties(hoursDto, dto); + dto.setType("鎬诲伐鏃�"); + data4.put(dtoEntry.getKey(), dto); + }*/ + } + } else { + value.setType("鎬诲伐鏃�"); + data4.put(key, value); + } + } + } } diff --git a/performance-server/src/main/java/com/yuanchu/mom/service/impl/ShiftTimeServiceImpl.java b/performance-server/src/main/java/com/yuanchu/mom/service/impl/ShiftTimeServiceImpl.java new file mode 100644 index 0000000..50d2aaf --- /dev/null +++ b/performance-server/src/main/java/com/yuanchu/mom/service/impl/ShiftTimeServiceImpl.java @@ -0,0 +1,35 @@ +package com.yuanchu.mom.service.impl; + +import com.yuanchu.mom.pojo.ShiftTime; +import com.yuanchu.mom.mapper.ShiftTimeMapper; +import com.yuanchu.mom.service.ShiftTimeService; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.List; + +/** + * <p> + * 鐝瀵瑰簲鐨勬椂闂� 鏈嶅姟瀹炵幇绫� + * </p> + * + * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 + * @since 2024-07-24 11:22:17 + */ +@Service +public class ShiftTimeServiceImpl extends ServiceImpl<ShiftTimeMapper, ShiftTime> implements ShiftTimeService { + + @Resource + ShiftTimeMapper shiftTimeMapper; + + @Override + public void shiftTimeAdd(ShiftTime shiftTime) { + shiftTimeMapper.insert(shiftTime); + } + + @Override + public List<ShiftTime> shiftTimeList() { + return shiftTimeMapper.selectList(null); + } +} diff --git a/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml b/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml index 31958ad..f319878 100644 --- a/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml +++ b/performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursMapper.xml @@ -76,7 +76,8 @@ order_no, sample, man_hour_group, - output_work_time as manHours + case when #{type}='鍔犵彮宸ユ椂' then case when overtime_work_time is null then 0 else overtime_work_time end + else case when work_time is null then 0 else work_time end end as manHours -- FORMAT(SUM(output_work_time), 4) as manHours from auxiliary_output_working_hours aowh left join user on user.id=aowh.`check` diff --git a/performance-server/src/main/resources/mapper/ShiftTimeMapper.xml b/performance-server/src/main/resources/mapper/ShiftTimeMapper.xml new file mode 100644 index 0000000..9b3814b --- /dev/null +++ b/performance-server/src/main/resources/mapper/ShiftTimeMapper.xml @@ -0,0 +1,17 @@ +<?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="com.yuanchu.mom.mapper.ShiftTimeMapper"> + + <!-- 閫氱敤鏌ヨ鏄犲皠缁撴灉 --> + <resultMap id="BaseResultMap" type="com.yuanchu.mom.pojo.ShiftTime"> + <id column="id" property="id" /> + <result column="shift" property="shift" /> + <result column="start_time" property="startTime" /> + <result column="end_time" property="endTime" /> + <result column="create_user" property="createUser" /> + <result column="create_time" property="createTime" /> + <result column="update_user" property="updateUser" /> + <result column="update_time" property="updateTime" /> + </resultMap> + +</mapper> diff --git a/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java b/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java index cd06c0a..5d18f38 100644 --- a/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java +++ b/system-run/src/main/java/com/yuanchu/mom/CodeGenerator.java @@ -16,11 +16,11 @@ // 婕旂ず渚嬪瓙锛屾墽琛� main 鏂规硶鎺у埗鍙拌緭鍏ユā鍧楄〃鍚嶅洖杞﹁嚜鍔ㄧ敓鎴愬搴旈」鐩洰褰曚腑 public class CodeGenerator { - public static String database_url = "jdbc:mysql://10.1.200.86:3306/center-lims?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"; + public static String database_url = "jdbc:mysql://localhost:3306/aaa?useSSL=false&useUnicode=true&characterEncoding=utf-8&serverTimezone=GMT%2B8"; public static String database_username = "root"; - public static String database_password= "zttZTT123!"; + public static String database_password= "123456"; public static String author = "姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃"; - public static String model_name = "/cnas-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 + public static String model_name = "/performance-server"; // 濡傛灉涓哄垎甯冨紡濉瓙妯″潡鍚嶇О锛屽鏋滀笉鏄垎甯冨紡涓虹┖鍗冲彲 public static String setParent = "com.yuanchu.mom"; // 鍖呰矾寰� public static String tablePrefix = "device_"; // 璁剧疆杩囨护琛ㄥ墠缂� public static void main(String[] args) { diff --git a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java index 4e345ea..9784910 100644 --- a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java +++ b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java @@ -6,6 +6,7 @@ import java.time.LocalDate; import java.time.LocalDateTime; import java.time.LocalTime; +import java.time.format.DateTimeFormatter; import java.time.temporal.TemporalAdjusters; import java.time.temporal.WeekFields; import java.util.Locale; @@ -16,29 +17,16 @@ @Test void contextLoads() { - // 鑾峰彇褰撳墠鏃ユ湡 - LocalDate today = LocalDate.now(); - // 鑾峰彇鏈湀鐨勭涓�澶╁拰鏈�鍚庝竴澶� - LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); - LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); + DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm:ss"); + String a = "09:00:00"; + String b = "17:00:00"; + LocalTime now = LocalTime.now(); + LocalTime startTime = LocalTime.parse(a, formatter); + LocalTime endTime = LocalTime.parse(b, formatter); - // 鑾峰彇鍛ㄥ瓧娈典俊鎭紙鏍规嵁鍖哄煙璁剧疆锛� - WeekFields weekFields = WeekFields.of(Locale.getDefault()); - - // 鑾峰彇鏈湀绗竴澶╃殑鍛ㄤ竴 - LocalDate startOfWeek = firstDayOfMonth.with(TemporalAdjusters.previousOrSame(weekFields.getFirstDayOfWeek())); - - // 閬嶅巻鏈湀鎵�鏈夊ぉ鏁帮紝鎵惧嚭姣忓懆鐨勭涓�澶╁拰鏈�鍚庝竴澶� - LocalDate endOfWeek; - while (startOfWeek.isBefore(firstDayOfMonth.plusMonths(1))) { - endOfWeek = startOfWeek.plusDays(6); - LocalDateTime startDateTime = LocalDateTime.of(startOfWeek, LocalTime.MIDNIGHT); - LocalDateTime endDateTime = LocalDateTime.of(endOfWeek, LocalTime.MIDNIGHT); - - System.out.println("Week starts on " + startDateTime + " and ends on " + endDateTime); - - startOfWeek = startOfWeek.plusWeeks(1); - } + // 妫�鏌ュ綋鍓嶆椂闂存槸鍚﹀湪鑼冨洿鍐咃紙鍖呮嫭杈圭晫锛� + boolean isWithinRange = !now.isBefore(startTime) && !now.isAfter(endTime); + System.out.println(isWithinRange); } } -- Gitblit v1.9.3