inspect-server/src/main/java/com/ruoyi/inspect/controller/InformationNotificationController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,40 @@ package com.ruoyi.inspect.controller; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; import com.ruoyi.system.service.InformationNotificationService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import java.util.Map; /** * <p> * æ¶æ¯éç¥ å端æ§å¶å¨ * </p> * * @author æ±èéµ·éç½ç»ç§ææéå ¬å¸ * @since 2024-04-23 02:14:30 */ @Api(tags = "æ¶æ¯éç¥") @RestController @RequestMapping("/informationNotification") public class InformationNotificationController { @Autowired private InformationNotificationService informationNotificationService; @ApiOperation(value = "æ¶æ¯éç¥-æ»å¨å页æ¥è¯¢") @GetMapping("page") public Result<?> getPage(Long size, Long current, String messageType) { return Result.success(informationNotificationService.getPage(new Page<>(current, size), messageType)); } @ApiOperation(value = "æ¶æ¯éç¥-æ»å¨æ¥è¯¢") @GetMapping("msgRoll") public Result<?> msgRoll(Page page) { return Result.success(informationNotificationService.msgRoll(page)); } } inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
@@ -255,7 +255,7 @@ @ApiOperation(value = "å é¤ç¹æ®æ£éªé¡¹ç»å®ä¿¡æ¯") @GetMapping("/delProductTreeByProductId") @DeleteMapping("/delProductTreeByProductId") public Result<?> delProductTreeByProductId(Integer productId) { return Result.success(insProductService.removeBindingProductTree(productId)); } inspect-server/src/main/java/com/ruoyi/inspect/controller/ReportController.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,32 @@ package com.ruoyi.inspect.controller; import com.ruoyi.common.core.domain.Result; import com.ruoyi.inspect.service.ReportService; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursLookDto; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.web.bind.annotation.*; @RestController @AllArgsConstructor @RequestMapping("/report") @Api(tags = "æ¥è¡¨æ¨¡å") public class ReportController { private ReportService reportService; @ApiOperation(value = "æ¥è¯¢æ¥åä»»å¡å¾") @GetMapping("/calendarWorkByWeek") public Result calendarWorkByWeek(){ return Result.success(reportService.calendarWorkByWeek()); } @ApiOperation(value = "å½åç¨æ·å·¥æ¶ç»è®¡") @GetMapping("/currentUserWorkHourCount") public Result currentUserWorkHourCount(AuxiliaryOriginalHoursLookDto dto){ return Result.success(reportService.currentUserWorkHourCount(dto)); } } inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsOrder.java
@@ -211,4 +211,8 @@ @ApiModelProperty("ç¬¬ä¸æ¬¡æäº¤æ¶é´") private LocalDateTime firstSubmitDate; @ApiModelProperty("æ ·æºå(é¤äºå ¶ä»æåå¤è¿ä¸ªåæ®µå¿ é,ç¨äºä¼ä¸å¾®ä¿¡æ¨é)") @TableField(exist = false) private Integer issueUser; } inspect-server/src/main/java/com/ruoyi/inspect/service/ReportService.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,13 @@ package com.ruoyi.inspect.service; import com.ruoyi.performance.dto.AuxiliaryAllDto; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursLookDto; import java.util.Map; public interface ReportService { //é¦é¡µ-->æ¥åä»»å¡å¾ Map<String, Object> calendarWorkByWeek(); AuxiliaryAllDto currentUserWorkHourCount(AuxiliaryOriginalHoursLookDto dto); } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/ReportServiceImpl.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,129 @@ package com.ruoyi.inspect.service.impl; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.common.core.domain.entity.SysRole; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.common.utils.SecurityUtils; import com.ruoyi.inspect.mapper.*; import com.ruoyi.inspect.pojo.InsOrder; import com.ruoyi.inspect.pojo.InsSample; import com.ruoyi.inspect.pojo.InsSampleUser; import com.ruoyi.inspect.service.ReportService; import com.ruoyi.performance.dto.AuxiliaryAllDto; import com.ruoyi.performance.dto.AuxiliaryOriginalHoursLookDto; import com.ruoyi.performance.service.AuxiliaryOriginalHoursService; import com.ruoyi.system.mapper.UserMapper; import lombok.AllArgsConstructor; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.math.BigDecimal; import java.time.LocalDate; import java.util.ArrayList; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @Service @AllArgsConstructor public class ReportServiceImpl implements ReportService { @Autowired private InsOrderMapper insOrderMapper; @Autowired private InsSampleMapper insSampleMapper; @Autowired private UserMapper userMapper; @Autowired private InsSampleUserMapper insSampleUserMapper; @Autowired private AuxiliaryOriginalHoursService auxiliaryOriginalHoursService; //é¦é¡µ-->æ¥åä»»å¡å¾ @Override public Map<String, Object> calendarWorkByWeek() { Integer userId = SecurityUtils.getUserId().intValue(); // List<SysRole> roleList = SecurityUtils.getLoginUser().getUser().getRoles(); // String name = roleMapper.selectById(userMapper.selectById(userId).getRoleId()).getName(); String name = roleList.stream().map(SysRole::getRoleName).collect(Collectors.joining(",")); Map<String, Object> map = new HashMap<>(); List<Integer> insState = new ArrayList<>(); insState.add(0); insState.add(1); /*è·ååä¸å¨æ¥æ*/ LocalDate currentDate = LocalDate.now(); List<LocalDate> weekDays = new ArrayList<>(); for (int i = 6, j = 0; i >= 0; i--, j++) { weekDays.add(currentDate.minusDays(i)); //æ¥è¯¢å½å¤©éè¦æ£æµçå§æè®¢å List<InsOrder> insOrders = insOrderMapper.selectList(Wrappers.<InsOrder>lambdaQuery() .eq(InsOrder::getState, 1) .in(InsOrder::getInsState, insState) .apply("DATE(create_time) = CURDATE() - INTERVAL " + j + " DAY")); //妿å½åç»å½äººæ¯æµè¯å·¥ç¨å¸æè æ¯æ£æµç»é¿,éè¦è¿æ»¤åºæ£éªäººæ¯ä»ä»¬ç订åæè æ¯è¿æ²¡æ£éªç订å if (name.contains("æµè¯å·¥ç¨å¸") || name.contains("æ£æµç»é¿")) { insOrders = insOrders.stream().filter(insOrder -> { List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insOrder.getId())); List<Integer> sampleId = insSamples.stream().map(InsSample::getId).collect(Collectors.toList()); List<InsSampleUser> insSampleUsers = insSampleUserMapper.selectList(Wrappers.<InsSampleUser>lambdaQuery() .in(InsSampleUser::getInsSampleId, sampleId) .eq(InsSampleUser::getState, 0) //æ£éªäºº ); return insSampleUsers.size() == 0 || insSampleUsers.stream().map(InsSampleUser::getUserId).collect(Collectors.toList()).contains(userId); }).collect(Collectors.toList()); } //妿å½åç»å½äººæ¯éæ ·å,éè¿æ»¤åºååçéæ ·åæ¯å½å人ç订å else if (name.contains("éæ ·å")) { insOrders = insOrders.stream().filter(insOrder -> ObjectUtils.isNotEmpty(insOrder.getIssueUser()) && insOrder.getIssueUser().equals(userId) ).collect(Collectors.toList()); } List<Map<String, Object>> works = insOrders.stream().map(insOrder -> { List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, insOrder.getId())); HashMap<String, Object> hashMap = new HashMap<>(); hashMap.put("text", insOrder.getEntrustCode()); hashMap.put("sample", insSamples.stream().map(InsSample::getSample).collect(Collectors.joining(","))); hashMap.put("type", insOrder.getType()); hashMap.put("state", insOrder.getState()); User user = userMapper.selectById(insOrder.getCreateUser()); hashMap.put("name", user.getName()); return hashMap; }).collect(Collectors.toList()); map.put("work" + i, works); } map.put("weekDays", weekDays); return map; } @Override public AuxiliaryAllDto currentUserWorkHourCount(AuxiliaryOriginalHoursLookDto dto) { List<AuxiliaryAllDto> auxiliaryAllDtos = auxiliaryOriginalHoursService.selectAuxiliaryAllByMonth(dto); int userId = SecurityUtils.getUserId().intValue(); // è¿æ»¤æéå½åç¨æ·æ°æ® AuxiliaryAllDto auxiliaryAllDto = null; for (AuxiliaryAllDto allDto : auxiliaryAllDtos) { if(userId == allDto.getUserId()){ auxiliaryAllDto = allDto; break; } } if(ObjectUtils.isEmpty(auxiliaryAllDto)){ auxiliaryAllDto = new AuxiliaryAllDto( new BigDecimal(0), new BigDecimal(0), new BigDecimal(0), userId,SecurityUtils.getUsername(), dto.getMonth() ); } return auxiliaryAllDto; } } performance-server/src/main/java/com/ruoyi/performance/dto/AuxiliaryAllDto.java
@@ -1,7 +1,9 @@ package com.ruoyi.performance.dto; import io.swagger.annotations.ApiModelProperty; import lombok.AllArgsConstructor; import lombok.Data; import lombok.NoArgsConstructor; import java.math.BigDecimal; @@ -12,6 +14,8 @@ * @Date 2024/10/25 */ @Data @AllArgsConstructor @NoArgsConstructor public class AuxiliaryAllDto { @ApiModelProperty("产éå·¥æ¶") ruoyi-system/src/main/java/com/ruoyi/system/mapper/InformationNotificationMapper.java
@@ -5,6 +5,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.entity.InformationNotification; import com.ruoyi.common.core.domain.entity.InformationNotificationDto; import org.apache.ibatis.annotations.Param; import java.util.List; /** * <p> @@ -17,4 +20,12 @@ public interface InformationNotificationMapper extends BaseMapper<InformationNotification> { IPage<InformationNotificationDto> getPage(Page page, String messageType, Integer userId); /** * æ¶æ¯éç¥-æ»å¨æ¥è¯¢ * * @param userId * @return */ IPage<InformationNotificationDto> msgRoll(Page page,@Param("userId") Integer userId); } ruoyi-system/src/main/java/com/ruoyi/system/service/InformationNotificationService.java
@@ -6,6 +6,7 @@ import com.ruoyi.common.core.domain.entity.InformationNotification; import com.ruoyi.common.core.domain.entity.InformationNotificationDto; import java.util.List; import java.util.Map; /** @@ -30,5 +31,10 @@ Map<String, Object> getNumberFourTypesMessagesHomePage(); /** * æ¶æ¯éç¥-æ»å¨æ¥è¯¢ * * @return */ IPage<InformationNotificationDto> msgRoll(Page page); } ruoyi-system/src/main/java/com/ruoyi/system/service/impl/InformationNotificationServiceImpl.java
@@ -13,6 +13,7 @@ import javax.annotation.Resource; import java.time.LocalDate; import java.util.Collections; import java.util.HashMap; import java.util.List; import java.util.Map; @@ -95,4 +96,14 @@ map.put("totalNumberOfMessagesInThePastSevenDays", totalNumberOfMessagesInThePastSevenDays); return map; } /** * æ¶æ¯éç¥-æ»å¨æ¥è¯¢ * * @return */ @Override public IPage<InformationNotificationDto> msgRoll(Page page) { return baseMapper.msgRoll(page,SecurityUtils.getUserId().intValue()); } } ruoyi-system/src/main/resources/mapper/system/InformationNotificationMapper.xml
@@ -13,4 +13,14 @@ </if> order by i.create_time desc </select> <select id="msgRoll" resultType="com.ruoyi.common.core.domain.entity.InformationNotificationDto"> select i.*, u.name senderUser, u2.name consigneeUser from information_notification i left join user u on i.sender_id = u.id left join user u2 on u2.id = i.consignee_id where i.consignee_id = #{userId} order by i.create_time desc </select> </mapper>