From 26becb8ead5a00ed870a02da6535d7f1c54f32cc Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 22 七月 2024 19:59:02 +0800 Subject: [PATCH] 班次新增定时+检验任务负责人 --- inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java | 2 system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java | 32 ++++++++++ inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java | 2 inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 2 inspect-server/src/main/resources/mapper/InsSampleMapper.xml | 5 + system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java | 75 ++++++++++++++++++++++++ inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java | 4 inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 22 +++++-- inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java | 3 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 4 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java | 12 +++ inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 2 12 files changed, 144 insertions(+), 21 deletions(-) diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java index 169a309..89582d8 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderController.java @@ -62,8 +62,8 @@ @ValueClassify("妫�楠屼笅鍗�") @ApiOperation(value = "妫�楠屽垎閰�") @PostMapping("/upInsOrder") - public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId) { - return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId)); + public Result<?> upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) { + return Result.success(insOrderService.upInsOrder(orderId, sampleId, appointed, userId,sonLaboratory)); } @ValueClassify("妫�楠屼笅鍗�") @ApiOperation(value = "娣诲姞妫�楠屼笅鍗曟暟鎹�") diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java index 406831b..d53cc19 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java @@ -90,8 +90,8 @@ @ValueClassify("妫�楠屼换鍔�") @ApiOperation(value = "浠诲姟浜ゆ帴") @PostMapping("/upPlanUser") - public Result<?> upPlanUser(Integer userId, Integer orderId) { - return Result.success(insOrderPlanService.upPlanUser(userId, orderId)); + public Result<?> upPlanUser(Integer userId, Integer orderId,String sonLaboratory) { + return Result.success(insOrderPlanService.upPlanUser(userId, orderId, sonLaboratory)); } @ValueClassify("妫�楠屼换鍔�") diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java index 69723bd..d776bbd 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsSampleMapper.java @@ -25,7 +25,7 @@ */ public interface InsSampleMapper extends BaseMapper<InsSample> { - IPage<InsOrderPlanVO> findInsSampleAndOrder(Page page, QueryWrapper<InsOrderPlanDTO> ew, Integer userId); + IPage<InsOrderPlanVO> findInsSampleAndOrder(Page page, QueryWrapper<InsOrderPlanDTO> ew, Integer userId,String sonLaboratory); IPage<InsOrderPlanTaskSwitchVo> inspectionOrderDetailsTaskSwitching(Page page, QueryWrapper<InsOrderPlanDTO> ew, Integer userId); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java index 2afb817..8512567 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsSampleUser.java @@ -10,6 +10,7 @@ import io.swagger.annotations.ApiModelProperty; import lombok.Data; import lombok.NoArgsConstructor; +import org.apache.poi.ss.formula.functions.T; /** * 鏍峰搧璐熻矗浜鸿褰� @@ -57,9 +58,18 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private LocalDateTime updateTime; - public InsSampleUser(Integer insSampleId, Integer userId, Integer state) { + /** + * 瀛愯瘯楠屽 + * @param insSampleId + * @param userId + * @param state + */ + private String sonLaboratory; + + public InsSampleUser(Integer insSampleId, Integer userId, Integer state,String sonLaboratory) { this.insSampleId = insSampleId; this.userId = userId; this.state = state; + this.sonLaboratory = sonLaboratory; } } \ No newline at end of file diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java index cacd4cc..4aa76b8 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java @@ -24,7 +24,7 @@ Map<String, Object> doInsOrder(Integer id, String laboratory); - int upPlanUser(Integer userId, Integer orderId); + int upPlanUser(Integer userId, Integer orderId,String sonLaboratory); int verifyPlan(Integer orderId, String laboratory, Integer type, String tell); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java index 2479a02..b6adc4e 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderService.java @@ -23,7 +23,7 @@ Map<String, Object> selectInsOrderParameter(IPage<InsOrder> page, SampleOrderDto sampleOrderDto); //淇敼妫�楠屼笅鍗曟暟鎹� - int upInsOrder(Integer orderId,Integer sampleId, String appointed, Integer userId); + int upInsOrder(Integer orderId,Integer sampleId, String appointed, Integer userId,String sonLaboratory); int addInsOrder(List<SampleProductDto> list, InsOrder insOrder, List<List<Integer>> pairing); 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 192afae..8d61c07 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 @@ -142,7 +142,8 @@ userId = map1.get("userId"); insOrderPlanDTO.setUserId(userId.longValue()); } - IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId); + String sonLaboratory = insOrderPlanDTO.getSonLaboratory();//璇曢獙瀹� + IPage<InsOrderPlanVO> insOrderPage = insSampleMapper.findInsSampleAndOrder(page, QueryWrappers.queryWrappers(insOrderPlanDTO), userId,sonLaboratory); map.put("body", insOrderPage); return map; } @@ -161,6 +162,7 @@ return map; } + //璁ら浠诲姟 @Override public boolean claimInsOrderPlan(InsOrderPlanDTO entity) { if (Objects.isNull(entity)) { @@ -168,7 +170,7 @@ } Map<String, Integer> map1 = getLook.selectPowerByMethodAndUserId(null); Integer userId = map1.get("userId"); - InsSampleUser insSampleUser = new InsSampleUser(entity.getInsSampleId().intValue(), userId, 1); + InsSampleUser insSampleUser = new InsSampleUser(entity.getInsSampleId().intValue(), userId, 1,entity.getSonLaboratory()); return insSampleUserMapper.insert(insSampleUser) > 0; } @@ -417,7 +419,7 @@ productVos = productVos.stream().sorted(Comparator.comparing(productVo -> productVo.getInsProduct().getInspectionItemClass())).collect(Collectors.toList()); } else { - //鐢靛姏--鐑惊鐜� + //鐢靛姏--鐑惊鐜拰娓╁崌璇曢獙 List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() .eq(InsProduct::getInsSampleId, sampleId) .eq(InsProduct::getInspectionItem, inspectionItem)); @@ -544,7 +546,7 @@ .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());//妫�娴嬪瓙椤� @@ -607,12 +609,14 @@ }); } + //浜ゆ帴 @Override - public int upPlanUser(Integer userId, Integer orderId) { + public int upPlanUser(Integer userId, Integer orderId,String sonLaboratory) { InsSampleUser insSampleUser = new InsSampleUser(); insSampleUser.setUserId(userId); insSampleUser.setInsSampleId(orderId); insSampleUser.setState(0); + insSampleUser.setSonLaboratory(sonLaboratory); return insSampleUserMapper.insert(insSampleUser); } @@ -3454,7 +3458,13 @@ info.setViewStatus(false); info.setJumpPath("b1-inspect-order-plan"); informationNotificationService.addInformationNotification(info); - upPlanUser(verifyUser, orderId); + //澶嶆牳浜�--妫�楠屽崟鐩稿叧璐熻矗浜� + InsSampleUser insSampleUser = new InsSampleUser(); + insSampleUser.setUserId(verifyUser); + insSampleUser.setInsSampleId(orderId); + insSampleUser.setState(0); + insSampleUser.setSonLaboratory(laboratory); + insSampleUserMapper.insert(insSampleUser); /*鏍¢獙涓�涓媟esult琛�*/ CompletableFuture.supplyAsync(() -> { List<Integer> ips = insProducts.stream().map(InsProduct::getId).distinct().collect(Collectors.toList()); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java index c9689b7..3588972 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderServiceImpl.java @@ -122,7 +122,7 @@ @Override @Transactional(rollbackFor = Exception.class) - public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId) { + public int upInsOrder(Integer orderId, Integer sampleId, String appointed, Integer userId,String sonLaboratory) { InsOrder insOrder = new InsOrder(); insOrder.setId(orderId); insOrder.setAppointed(LocalDate.parse(appointed)); @@ -147,6 +147,7 @@ insSampleUser.setState(0); insSampleUser.setUserId(userId); insSampleUser.setInsSampleId(orderId); + insSampleUser.setSonLaboratory(sonLaboratory); insSampleUserMapper.insert(insSampleUser); } return 1; diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml index 8c0fbce..b6396c8 100644 --- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml @@ -421,7 +421,7 @@ GROUP_CONCAT(b.inspection_item2 SEPARATOR ',') inspection_item from (select * , - GROUP_CONCAT(CONCAT(inspection_item,'',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP + GROUP_CONCAT(CONCAT(inspection_item,'@',inspection_item_subclass) SEPARATOR ',')inspection_item2 from ins_product where state = 1 and template_id IS NOT NULL GROUP BY ins_sample_id,man_hour_group) b GROUP BY b.ins_sample_id) c ON c.ins_sample_id = isa.id where (i.state = 1 or i.state = 3 or i.state = 4) and c.ins_sample_id IS not NULL)A GROUP BY diff --git a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml index c644e16..b2f30cf 100644 --- a/inspect-server/src/main/resources/mapper/InsSampleMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsSampleMapper.xml @@ -47,9 +47,10 @@ LEFT JOIN ( <!--SELECT * FROM ins_sample_user GROUP BY ins_sample_id, user_id --> SELECT * FROM ins_sample_user u - WHERE (ins_sample_id, id) IN ( + WHERE son_laboratory=#{sonLaboratory} and (ins_sample_id, id) IN ( SELECT ins_sample_id, MAX(id) FROM ins_sample_user + WHERE son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id ) ORDER BY ins_sample_id, id @@ -71,7 +72,7 @@ ) a LEFT JOIN ins_order_state ios ON ios.ins_order_id = a.id AND ios.laboratory = a.son_laboratory left join (SELECT td.user_id order_user_id, td.ins_sample_id FROM ins_sample_user td,(SELECT max(id) id FROM - ins_sample_user GROUP BY ins_sample_id) md where td.id = md.id + ins_sample_user where son_laboratory=#{sonLaboratory} GROUP BY ins_sample_id) md where td.id = md.id <if test="userId !=null and userId!=''"> and user_id = #{userId} OR user_id is NULL </if> diff --git a/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java b/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java index 1760331..2d3b8bd 100644 --- a/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java +++ b/system-run/src/main/java/com/yuanchu/mom/backup/MysqlDataBackup.java @@ -1,16 +1,34 @@ package com.yuanchu.mom.backup; +import com.yuanchu.mom.dto.PerformanceShiftAddDto; +import com.yuanchu.mom.mapper.EnumMapper; +import com.yuanchu.mom.pojo.Enums; +import com.yuanchu.mom.pojo.PerformanceShift; +import com.yuanchu.mom.pojo.User; +import com.yuanchu.mom.service.EnumService; +import com.yuanchu.mom.service.PerformanceShiftService; +import com.yuanchu.mom.service.UserService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Value; import org.springframework.scheduling.annotation.EnableScheduling; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; +import javax.annotation.Resource; import java.io.*; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.TemporalAdjusters; +import java.time.temporal.WeekFields; import java.util.Date; +import java.util.Dictionary; +import java.util.List; +import java.util.Locale; +import java.util.stream.Collectors; -//@Component +@Component @EnableScheduling @Slf4j public class MysqlDataBackup { @@ -55,11 +73,20 @@ @Value("${backup.mysqldump}") private String mysqldump; + @Resource + private PerformanceShiftService performanceShiftService; + + @Resource + private EnumService enumService; + + @Resource + private UserService userService; + /** * 姣忓ぉ鏅氫笂23鐐�05绉掓墽琛� 銆� 0 0 4 1/1 * ? 銆� * 娴嬭瘯 20 绉掍竴娆°�� 0/20 * * * * ? 銆慇Scheduled(cron = "5 * 23 * * ?") */ -// @Scheduled(cron = "5 0 23 * * ?") + //@Scheduled(cron = "0/20 * * * * ?") private void configureTasks() { log.info("銆愬浠芥暟鎹簱銆�--START"); String dbUrl2 = dbUrl.replace("jdbc:mysql://", ""); @@ -171,6 +198,50 @@ } } + + /** + * 瀹氭椂浠诲姟,姣忎釜鏈�1鍙风殑00:00:00 + * 缁欐瘡涓汉閮借繘琛屾帓鐝�(榛樿鏃╃彮) + */ + //@Scheduled(cron = "0 0 0 1 *?") + //@Scheduled(cron = "0/20 * * * * ?") + private void timerCreateSchedule(){ + System.out.println("寮�濮嬬粰姣忎釜浜鸿繘琛屾帓鐝�,榛樿鏃╃彮======start"); + // TODO 缁欐瘡涓汉閮借繘琛屾帓鐝�(榛樿鏃╃彮) + PerformanceShiftAddDto performanceShiftAddDto = new PerformanceShiftAddDto(); + //鐝--鏃�(鏌ヨ瀛楀吀) + List<Enums> shiftType = enumService.selectEnumByCategory("鐝绫诲瀷"); + List<String> collect = shiftType.stream().filter(enums -> enums.getLabel().equals("鏃�")).map(enums -> enums.getValue()).collect(Collectors.toList()); + performanceShiftAddDto.setShift(collect.get(0)); + //浜哄憳--鎵�鏈変汉 + String userIds = userService.getDeviceManager().stream().map(user -> user.getId().toString()).distinct().collect(Collectors.joining(",")); + performanceShiftAddDto.setUserId(userIds); + //鍛ㄦ--褰撴湀鎵�鏈� + // 鑾峰彇褰撳墠鏃ユ湡 + LocalDate today = LocalDate.now(); + // 鑾峰彇鏈湀鐨勭涓�澶╁拰鏈�鍚庝竴澶� + LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); + LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); + // 鑾峰彇鍛ㄥ瓧娈典俊鎭紙鏍规嵁鍖哄煙璁剧疆锛� + 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); + performanceShiftAddDto.setStartWeek(startDateTime); + performanceShiftAddDto.setEndWeek(endDateTime); + performanceShiftService.performanceShiftAdd(performanceShiftAddDto); + startOfWeek = startOfWeek.plusWeeks(1); + } + + System.out.println("鎺掔彮缁撴潫======end"); + } + /** * 鍒ゆ柇鏂囦欢鏄惁瀛樺湪锛屼笉瀛樺湪鍒涘缓 */ 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 c9fa8ae..4e345ea 100644 --- a/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java +++ b/system-run/src/test/java/com/yuanchu/mom/SystemRunApplicationTest.java @@ -3,12 +3,42 @@ import org.junit.jupiter.api.Test; import org.springframework.boot.test.context.SpringBootTest; +import java.time.LocalDate; +import java.time.LocalDateTime; +import java.time.LocalTime; +import java.time.temporal.TemporalAdjusters; +import java.time.temporal.WeekFields; +import java.util.Locale; + @SpringBootTest class SystemRunApplicationTest { @Test - void contextLoads() throws Exception { + void contextLoads() { + // 鑾峰彇褰撳墠鏃ユ湡 + LocalDate today = LocalDate.now(); + // 鑾峰彇鏈湀鐨勭涓�澶╁拰鏈�鍚庝竴澶� + LocalDate firstDayOfMonth = today.with(TemporalAdjusters.firstDayOfMonth()); + LocalDate lastDayOfMonth = today.with(TemporalAdjusters.lastDayOfMonth()); + + // 鑾峰彇鍛ㄥ瓧娈典俊鎭紙鏍规嵁鍖哄煙璁剧疆锛� + 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); + } } } -- Gitblit v1.9.3