From fbbfb006e1d745ca3b7ae9ef497c06da4128f380 Mon Sep 17 00:00:00 2001
From: zouyu <2723363702@qq.com>
Date: 星期三, 22 四月 2026 17:58:05 +0800
Subject: [PATCH] 报告编制:印章生成调整

---
 performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java |   99 +++++----------------------------
 basic-server/src/main/resources/mapper/SealMapper.xml                                                |    2 
 inspect-server/src/main/resources/mapper/InsReportMapper.xml                                         |    1 
 performance-server/src/main/java/com/ruoyi/performance/dto/PerformanceShiftAddDto.java               |   10 +--
 inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java                |   10 ++-
 inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java                           |    2 
 basic-server/src/main/java/com/ruoyi/basic/pojo/Seal.java                                            |    3 +
 basic-server/src/main/java/com/ruoyi/basic/controller/SealController.java                            |    3 
 8 files changed, 34 insertions(+), 96 deletions(-)

diff --git a/basic-server/src/main/java/com/ruoyi/basic/controller/SealController.java b/basic-server/src/main/java/com/ruoyi/basic/controller/SealController.java
index eacd5c4..11eaeb4 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/controller/SealController.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/controller/SealController.java
@@ -37,11 +37,12 @@
         }else{
             return Result.fail();
         }
-
     }
+
     @ApiOperation(value="鏌ヨ鍗扮珷鍒楄〃")
     @GetMapping("/selectSeal")
     public  Result selectSeal(Page page,Seal seal) {
         return Result.success(sealService.selectSeal(page,seal));
     }
+
 }
diff --git a/basic-server/src/main/java/com/ruoyi/basic/pojo/Seal.java b/basic-server/src/main/java/com/ruoyi/basic/pojo/Seal.java
index 783703c..47ba9c4 100644
--- a/basic-server/src/main/java/com/ruoyi/basic/pojo/Seal.java
+++ b/basic-server/src/main/java/com/ruoyi/basic/pojo/Seal.java
@@ -19,6 +19,9 @@
     @TableId(type = IdType.AUTO)
     private Integer id;
 
+    @ApiModelProperty(value = "鎵�灞炲煙锛圞JNS/ZTNS锛�")
+    private String contract;
+
     @ApiModelProperty(value = "瀹為獙瀹d")
     private Integer labId;
 
diff --git a/basic-server/src/main/resources/mapper/SealMapper.xml b/basic-server/src/main/resources/mapper/SealMapper.xml
index 79e036c..caa735f 100644
--- a/basic-server/src/main/resources/mapper/SealMapper.xml
+++ b/basic-server/src/main/resources/mapper/SealMapper.xml
@@ -4,7 +4,7 @@
         "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="com.ruoyi.basic.mapper.SealMapper">
     <select id="selectSeal" resultType="com.ruoyi.basic.pojo.Seal">
-        select * from (select l.id,s.lab_id,l.laboratory_name ,s.address, s.type as Type,s.create_time
+        select * from (select l.id,s.contract,s.lab_id,l.laboratory_name ,s.address, s.type as Type,s.create_time
         from seal s  LEFT JOIN laboratory l  on s.lab_id=l.id) a
         <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
             ${ew.customSqlSegment}
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
index 3e66633..9aebe59 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsReportMapper.java
@@ -34,7 +34,7 @@
                                        @Param("queryStatus") String queryStatus,
                                        @Param("createOrderUser") Integer createOrderUser);
 
-    String getLaboratoryByName(@Param("name") String name, @Param("type") String type);
+    String getLaboratoryByName(@Param("name") String name, @Param("type") String type,@Param("contract") String contract);
 
     /**
      * 鎶ュ憡鎶ヨ〃瀵煎嚭
diff --git a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
index 62688d0..3bda5d4 100644
--- a/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
+++ b/inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsReportServiceImpl.java
@@ -449,8 +449,12 @@
         }
         Integer insOrderId = insReportMapper.selectById(id).getInsOrderId();
         InsOrder order = insOrderMapper.selectById(insOrderId);
-        boolean isRawMater = order.getTypeSource() != null && order.getTypeSource().equals(1);
-
+        IfsInventoryQuantity ifsInventoryQuantity = null;
+        if(ObjectUtils.isNotEmpty(order.getIfsInventoryId())){
+            ifsInventoryQuantity = ifsInventoryQuantityMapper.selectById(order.getIfsInventoryId());
+        }
+        boolean isRawMater = order.getTypeSource() != null && !order.getTypeSource().equals(-1);
+        String contract = ObjectUtils.isNotEmpty(ifsInventoryQuantity)?ifsInventoryQuantity.getContract():order.getContract();//ifs鍩�
         //鑾峰彇鍦烘墍鐨勬姤鍛婁笓鐢ㄧ珷
         String sealUrl;
         String laboratory = insOrderMapper.selectById(insReport.getInsOrderId()).getLaboratory();
@@ -461,7 +465,7 @@
             } else {
                 type = "濮旀墭鎶ュ憡";
             }
-            sealUrl = insReportMapper.getLaboratoryByName(laboratory, type);
+            sealUrl = insReportMapper.getLaboratoryByName(laboratory, type,contract);
         } catch (Exception e) {
             throw new ErrorException(laboratory + "鎵句笉鍒版姤鍛婁笓鐢ㄧ珷");
         }
diff --git a/inspect-server/src/main/resources/mapper/InsReportMapper.xml b/inspect-server/src/main/resources/mapper/InsReportMapper.xml
index 68615c0..ad7a7b9 100644
--- a/inspect-server/src/main/resources/mapper/InsReportMapper.xml
+++ b/inspect-server/src/main/resources/mapper/InsReportMapper.xml
@@ -79,6 +79,7 @@
                  left join laboratory l on s.lab_id = l.id
         where l.laboratory_name = #{name}
           and s.type = #{type}
+          and s.contract = #{contract}
         order by s.create_time desc
         limit 1
     </select>
diff --git a/performance-server/src/main/java/com/ruoyi/performance/dto/PerformanceShiftAddDto.java b/performance-server/src/main/java/com/ruoyi/performance/dto/PerformanceShiftAddDto.java
index c074fa0..5a10afb 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/dto/PerformanceShiftAddDto.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/dto/PerformanceShiftAddDto.java
@@ -18,11 +18,9 @@
     @ApiModelProperty("鍛樺伐id鍒楄〃")
     private List<Integer> userIdList;
 
-    @NotNull(message = "璇烽�夋嫨鍛ㄦ")
-    @ApiModelProperty("鍛ㄦ寮�濮嬫椂闂�")
-    private LocalDateTime startWeek;
+    @ApiModelProperty("寮�濮嬫椂闂�")
+    private LocalDateTime startTime;
 
-    @NotNull(message = "璇烽�夋嫨鍛ㄦ")
-    @ApiModelProperty("鍛ㄦ缁撴潫鏃堕棿")
-    private LocalDateTime endWeek;
+    @ApiModelProperty("缁撴潫鏃堕棿")
+    private LocalDateTime endTime;
 }
diff --git a/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java b/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java
index 4b003f0..64228e2 100644
--- a/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java
+++ b/performance-server/src/main/java/com/ruoyi/performance/service/impl/PerformanceShiftServiceImpl.java
@@ -47,6 +47,7 @@
 import java.text.SimpleDateFormat;
 import java.time.LocalDate;
 import java.time.LocalDateTime;
+import java.time.LocalTime;
 import java.time.ZoneId;
 import java.time.format.DateTimeFormatter;
 import java.time.temporal.TemporalAdjusters;
@@ -66,9 +67,6 @@
 @Slf4j
 @Service
 public class PerformanceShiftServiceImpl extends ServiceImpl<PerformanceShiftMapper, PerformanceShift> implements PerformanceShiftService {
-
-    @Autowired
-    private ISysDictTypeService dictTypeService;
 
     @Autowired
     private StaffAttendanceTrackingRecordService trackingRecordService;
@@ -103,11 +101,11 @@
     public void performanceShiftAdd(PerformanceShiftAddDto performanceShiftAddDto) {
         //1.鏌ヨ鎵�閫夊懆娆℃椂闂磋寖鍥村唴宸叉帓鐝殑鏁版嵁
         List<PerformanceShift> shiftList = baseMapper.selectList(Wrappers.<PerformanceShift>lambdaQuery()
-                .between(ObjectUtils.allNotNull(performanceShiftAddDto.getStartWeek(), performanceShiftAddDto.getEndWeek()),
-                        PerformanceShift::getWorkTime, performanceShiftAddDto.getStartWeek(), performanceShiftAddDto.getEndWeek())
+                .between(ObjectUtils.allNotNull(performanceShiftAddDto.getStartTime(), performanceShiftAddDto.getEndTime()),
+                        PerformanceShift::getWorkTime, performanceShiftAddDto.getStartTime(), performanceShiftAddDto.getEndTime())
                 .in(!performanceShiftAddDto.getUserIdList().isEmpty(), PerformanceShift::getUserId, performanceShiftAddDto.getUserIdList())
         );
-        List<LocalDateTime> timeList = getLocalDateTimesBetween(performanceShiftAddDto.getStartWeek(), performanceShiftAddDto.getEndWeek());
+        List<LocalDateTime> timeList = getLocalDateTimesBetween(performanceShiftAddDto.getStartTime(), performanceShiftAddDto.getEndTime());
         //澶勭悊閫変腑浜哄憳
         List<PerformanceShift> newShiftList = new ArrayList<>();
         performanceShiftAddDto.getUserIdList().forEach(userId->{
@@ -158,14 +156,24 @@
         List<PerformanceShiftMapDto> mapIPage = baseMapper.performanceShift(firstDayOfMonth,lastDayOfMonth, userName, laboratory);
         Map<Integer, List<PerformanceShiftMapDto>> groupByUserId = mapIPage.stream().collect(Collectors.groupingBy(PerformanceShiftMapDto::getUserId));
         List<PerformanceShiftMapDto> newRecords = new ArrayList<>();
+        List<LocalDateTime> timeList = getLocalDateTimesBetween(LocalDateTime.of(firstDayOfMonth, LocalTime.MIN), LocalDateTime.of(lastDayOfMonth, LocalTime.MIN));
         groupByUserId.keySet().forEach(key->{
             PerformanceShiftMapDto shiftMapDto = new PerformanceShiftMapDto();
             List<PerformanceShiftMapDto> shiftMapDtos = groupByUserId.get(key);
+            List<PerformanceShiftMapDto> newShiftMapDtos = new ArrayList<>();
+            timeList.forEach(t->{
+                PerformanceShiftMapDto mapDto = shiftMapDtos.stream().filter(s -> t.isEqual(s.getWorkTime())).findFirst().orElse(null);
+                if(ObjectUtils.isNotEmpty(mapDto)){
+                    newShiftMapDtos.add(mapDto);
+                }else{
+                    newShiftMapDtos.add(null);
+                }
+            });
             //缁熻鍚勭彮娆″ぉ鏁�
             Map<String, Long> countShift = countShift(shiftMapDtos);
             shiftMapDto.setMonthlyAttendance(countShift);
             shiftMapDto.setMonthlyAttendanceStr(formateMap(countShift));
-            shiftMapDto.setList(shiftMapDtos);
+            shiftMapDto.setList(newShiftMapDtos);
 
             shiftMapDto.setUserName(shiftMapDtos.isEmpty()?"":shiftMapDtos.get(0).getUserName());
             shiftMapDto.setUserId(key);
@@ -602,82 +610,5 @@
             default:
                 return "鏈煡";
         }
-    }
-
-    /**
-     * 杩斿洖琛ㄥご
-     * <p>
-     * 澶栧眰List浠h〃琛屽唴灞� List浠h〃鍒�  鐩稿悓鐨勫垪鏁版嵁浼氳涓诲姩鍚堝苟
-     * 鏋勯�犲弻鍒楄〃澶�
-     *
-     * @return List<List < String>>
-     */
-    private static List<List<String>> getYearHeader(String year, List<SysDictData> enums) {
-        List<List<String>> line = new ArrayList<>();
-        line.add(Arrays.asList("鑰冨嫟姹囨��", "搴忓彿", "搴忓彿"));
-        line.add(Arrays.asList("鑰冨嫟姹囨��", "宸ュ彿", "宸ュ彿"));
-        line.add(Arrays.asList("鑰冨嫟姹囨��", "濮撳悕", "濮撳悕"));
-        line.add(Arrays.asList("鍑哄嫟璇︽儏", year, "鍑哄嫟"));
-        // 骞� header
-        for (SysDictData anEnum : enums) {
-            if (!anEnum.getDictValue().equals("5")) {
-                line.add(Arrays.asList("鑰冨嫟姹囨��", year, anEnum.getDictLabel()));
-            }
-        }
-        // 鏈坔eader
-        for (int i = 1; i < 13; i++) {
-            line.add(Arrays.asList("鍑哄嫟璇︽儏", i + " 鏈�", "鍑哄嫟"));
-            for (SysDictData anEnum : enums) {
-                if (!anEnum.getDictValue().equals("5")) {
-                    line.add(Arrays.asList("鍑哄嫟璇︽儏", i + " 鏈�", anEnum.getDictLabel()));
-                }
-            }
-        }
-        return line;
-    }
-
-    private static List<List<String>> getMonthHeader(LocalDateTime localDateTimeYear, List<SysDictData> enums) {
-        String year = localDateTimeYear.getYear() + " 骞翠汉鍛樼彮娆�";
-        List<List<String>> line = new ArrayList<>();
-        line.add(Arrays.asList(year, "搴忓彿", "搴忓彿", "搴忓彿"));
-        line.add(Arrays.asList(year, "濮撳悕", "濮撳悕", "濮撳悕"));
-        line.add(Arrays.asList(year, "瀹為獙瀹�", "瀹為獙瀹�", "瀹為獙瀹�"));
-        line.add(Arrays.asList(year, localDateTimeYear.getYear() + "", localDateTimeYear.getYear() + "", "鍑哄嫟"));
-        line.add(Arrays.asList(year, localDateTimeYear.getYear() + "", localDateTimeYear.getYear() + "", enums.get(3).getDictLabel()));
-        line.add(Arrays.asList(year, "骞�", "骞�", enums.get(4).getDictLabel()));
-        line.add(Arrays.asList(year, localDateTimeYear.getMonthValue() + "", localDateTimeYear.getMonthValue() + "", enums.get(0).getDictLabel()));
-        line.add(Arrays.asList(year, "鏈�", "鏈�", enums.get(1).getDictLabel()));
-        line.add(Arrays.asList(year, "", "", enums.get(2).getDictLabel()));
-        line.add(Arrays.asList(year, "鍛ㄦ", "鏄熸湡", "鍑哄樊"));
-        LocalDate firstDayOfMonth = localDateTimeYear.toLocalDate().withDayOfMonth(1);
-        LocalDate lastDayOfMonth = localDateTimeYear.toLocalDate().with(TemporalAdjusters.lastDayOfMonth());
-        List<LocalDateTime> timeList = getLocalDateTimesBetween(firstDayOfMonth.atStartOfDay(), lastDayOfMonth.atStartOfDay());
-        timeList.forEach(i -> {
-            int dayOfYear = i.getDayOfMonth();
-            Date from = Date.from(i.atZone(ZoneId.systemDefault()).toInstant());
-            String weekDay = getWeekDay(i.getDayOfWeek().getValue());
-            line.add(Arrays.asList(year, DateUtil.weekOfYear(DateUtil.offsetDay(from, 1)) + "", weekDay, dayOfYear + ""));
-        });
-        return line;
-    }
-
-    public List<List<Object>> dataRequiredForProcessingIntoExcelMonth(List<PerformanceShiftMapDto> list, List<SysDictData> enums) {
-        List<List<Object>> data = new ArrayList<>();
-        for (int i = 0; i < list.size(); i++) {
-            List<Object> excelRowList = new ArrayList<>();
-            excelRowList.add(i + 1);
-            excelRowList.add(list.get(i).getUserName());
-            excelRowList.add(list.get(i).getDepartment());
-            excelRowList.add(list.get(i).getMonthlyAttendance().get("totalAttendance"));
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(3).getDictLabel())); // 浼�
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(4).getDictLabel())); // 鍋�
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(0).getDictLabel())); // 鏃�
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(1).getDictLabel())); // 涓�
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(2).getDictLabel())); // 澶�
-            excelRowList.add(list.get(i).getMonthlyAttendance().get(enums.get(6).getDictLabel())); // 宸�
-
-            data.add(excelRowList);
-        }
-        return data;
     }
 }

--
Gitblit v1.9.3