From aa423b168ac997db1b52cb4636498245f93a26a2 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期五, 18 八月 2023 18:08:19 +0800
Subject: [PATCH] 计量管理-》新增计划计量

---
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java              |   48 +++++++++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetPlanMeasureInstrumentDto.java |   25 +++++
 laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml                                   |  113 ++++++++++++++++++++++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfoAndIns.java       |   22 ++++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java          |    8 +
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java    |   14 ++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java             |    2 
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java |   25 +++-
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java            |   10 +
 9 files changed, 252 insertions(+), 15 deletions(-)

diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java
index b877166..44b2456 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java
@@ -5,6 +5,7 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.pojo.Instrument;
 import com.yuanchu.limslaboratory.pojo.MeteringPlan;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
 import com.yuanchu.limslaboratory.service.MeteringPlanService;
@@ -60,10 +61,15 @@
         return Result.success(page);
     }
 
-    @ApiOperation("鏌ヨ璁¢噺淇℃伅")
-    public Result<?> getPlanMeasureInstrument(Integer id){
-        return Result.success(meteringPlanService.getPlanMeasureInstrument(id));
+    @ApiOperation("鍗曡璁″垝淇℃伅")
+    @GetMapping("/getPlanMeasureInstrument")
+    public Result<?> getPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto){
+        return Result.success(meteringPlanService.getPlanMeasureInstrument(dto));
     }
 
-
+    @ApiOperation("璁″垝淇℃伅涔嬩笅鍒嗛〉")
+    @GetMapping("/limitGetPlanMeasureInstrument")
+    public Result<?> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto){
+        return Result.success(meteringPlanService.limitGetPlanMeasureInstrument(dto));
+    }
 }
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java
index 5abe58b..edce831 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java
@@ -2,10 +2,9 @@
 
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.limslaboratory.pojo.LimitPage;
-import com.yuanchu.limslaboratory.pojo.MeteringPlan;
+import com.yuanchu.limslaboratory.pojo.*;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
-import com.yuanchu.limslaboratory.pojo.MeteringPlanAndInfo;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
 import org.apache.ibatis.annotations.Param;
@@ -37,4 +36,9 @@
 
     Map<String, Object>getTotal(@Param("dto")SelectMeteringPlanDto dto);
 
+    MeteringPlanAndInfoAndIns getPlanMeasureInstrument(@Param("limitPage") LimitPage limitPage,Long id);
+
+    List<MetricalInfoAndIns> limitGetPlanMeasureInstrument(@Param("limitPage")LimitPage limitPage, Long id);
+
+    Map<String, Object> countPlanMeasurIns(Long id);
 }
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java
index 5dde538..efc5615 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java
@@ -36,6 +36,8 @@
     @ApiModelProperty(value = "缁撴潫鏃ユ湡", example = "2023-07-06", required = true, dataType = "date")
     private Date endTime;
 
+    private String unit;
+
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
     private Date createTime;
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfoAndIns.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfoAndIns.java
new file mode 100644
index 0000000..bbea7b5
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfoAndIns.java
@@ -0,0 +1,22 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import io.swagger.annotations.ApiModel;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="MeteringPlanAndInfoAndIns瀵硅薄", description="")
+public class MeteringPlanAndInfoAndIns extends MeteringPlanAndInfo implements Serializable {
+
+    List<MetricalInfoAndIns>metricalInfoAndInsList;
+
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
new file mode 100644
index 0000000..2e08a84
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MetricalInfoAndIns.java
@@ -0,0 +1,48 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.fasterxml.jackson.annotation.JsonFormat;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springframework.format.annotation.DateTimeFormat;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="MeteringPlanAndInfoAndIns瀵硅薄", description="")
+public class MetricalInfoAndIns extends Instrument implements Serializable {
+
+    @ApiModelProperty(value = "璁¢噺缂栧彿", example = "1", required = true)
+    private String code;
+
+    @ApiModelProperty(value = "璁¢噺鍗曚綅", example = "GB", required = true)
+    private String measurementUnit;
+
+    @ApiModelProperty(value = "缁撴潫鏃ユ湡", example = "2026-07-06", required = true, dataType = "date")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+    private Date endDate;
+
+    @ApiModelProperty(value = "缁撴灉: 1锛氬悎鏍硷紱2锛氱煫姝e悗鍙敤锛�3锛氫笉鍚堟牸", example = "1", required = true)
+    private Integer result;
+
+
+    @ApiModelProperty(value = "鍒涘缓鏃堕棿")
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+    private Date imCreateTime;
+
+    private String measurementName;
+
+    private String imCreateName;
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetPlanMeasureInstrumentDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetPlanMeasureInstrumentDto.java
new file mode 100644
index 0000000..8be35d1
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/GetPlanMeasureInstrumentDto.java
@@ -0,0 +1,25 @@
+package com.yuanchu.limslaboratory.pojo.dto;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+import java.io.Serializable;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/18
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value = "GetPlanMeasureInstrumentDto瀵硅薄", description = "")
+public class GetPlanMeasureInstrumentDto implements Serializable {
+
+    @ApiModelProperty(value = "褰撳墠椤�", example = "1", required = true)
+    private Long currentPage;
+    @ApiModelProperty(value = "姣忛〉澶氬皯鏉�", example = "10", required = true)
+    private Long pageSize;
+    @ApiModelProperty(value = "璁″垝id", example = "10", required = true)
+    private Long id;
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java
index 21bb7b6..b69a3d3 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java
@@ -4,9 +4,13 @@
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.yuanchu.limslaboratory.pojo.MeteringPlan;
 import com.baomidou.mybatisplus.extension.service.IService;
+import com.yuanchu.limslaboratory.pojo.MeteringPlanAndInfoAndIns;
+import com.yuanchu.limslaboratory.pojo.MetricalInfoAndIns;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -26,5 +30,7 @@
 
     IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(SelectMeasurementLedgerDto selectMeasurementLedgerDto);
 
-    Map<String, Object> getPlanMeasureInstrument(Integer id);
+    Map<String, Object> getPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto);
+
+    Map<String, Object> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto);
 }
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java
index cd2cf23..eb42a3b 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java
@@ -3,11 +3,9 @@
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
-import com.yuanchu.limslaboratory.pojo.Instrument;
-import com.yuanchu.limslaboratory.pojo.LimitPage;
-import com.yuanchu.limslaboratory.pojo.MeteringPlan;
+import com.yuanchu.limslaboratory.pojo.*;
 import com.yuanchu.limslaboratory.mapper.MeteringPlanMapper;
-import com.yuanchu.limslaboratory.pojo.MeteringPlanAndInfo;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
 import com.yuanchu.limslaboratory.service.MeteringPlanService;
@@ -67,7 +65,22 @@
     }
 
     @Override
-    public Map<String, Object> getPlanMeasureInstrument(Integer id) {
-        return null;
+    public Map<String, Object> getPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto) {
+        MeteringPlanAndInfoAndIns planMeasureInstrument =
+                meteringPlanMapper.getPlanMeasureInstrument
+                        (new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize(),
+                                dto.getPageSize()), dto.getId());
+        Map<String, Object> map = meteringPlanMapper.countPlanMeasurIns(dto.getId());
+        map.put("list",planMeasureInstrument);
+        return map;
+    }
+
+    @Override
+    public Map<String, Object> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto) {
+        Map<String, Object> map = meteringPlanMapper.countPlanMeasurIns(dto.getId());
+        map.put("list",meteringPlanMapper
+                .limitGetPlanMeasureInstrument(new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize()
+                        ,dto.getPageSize()),dto.getId()));
+        return map;
     }
 }
diff --git a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
index 762ec4c..f1af9c6 100644
--- a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
@@ -40,8 +40,9 @@
         IF(IFNULL(i.result, 0) > 0, 1, 0) status,
         (SELECT name FROM `user` u WHERE p.measure_person = u.id) measureName,
         i.`code` iCode,
+        p.unit unit,
         p.create_time createTime
-        FROM (SELECT id, measure_person, create_Person, begin_Time, end_Time, planned_order_number, create_time
+        FROM (SELECT id, unit ,measure_person, create_Person, begin_Time, end_Time, planned_order_number, create_time
         from metering_plan
         where 1=1
         <if test="dto.plannedOrderNumber!=null and dto.plannedOrderNumber!=''">
@@ -58,6 +59,115 @@
             and planned_order_number=#{plannedOrderNumber}
         </if>
     </select>
+    <select id="getPlanMeasureInstrument"
+            resultMap="measureInsAndPlanMap">
+        SELECT m.planned_order_number                              plannedOrderNumber,
+               (SELECT NAME FROM USER WHERE id = m.measure_person) measureName,
+               m.begin_time                                        beginTime,
+               m.end_time                                          endTime,
+               m.unit                                              unit,
+               u.`name`                                            createName,
+               m.create_time                                       createTime,
+               im.equipment_code                                   equipmentCode,
+               im.equipment_name                                   equipmentName,
+               im.measuring_range                                  measuringRange,
+               im.term_validity                                    termValidity,
+               im.result                                           result,
+               im.end_date                                         endDate,
+               im.imName                                           imName,
+               im.create_time                                      imCreateTime,
+               im.measurement_unit                                 imUnit,
+               im.`code`                                           imCode
+        FROM metering_plan m
+                 LEFT JOIN `user` u ON m.create_Person = u.id
+                 LEFT JOIN (
+            SELECT i.equipment_code,
+                   i.equipment_name,
+                   i.measuring_range,
+                   i.term_validity,
+                   im.result,
+                   im.end_date,
+                   (SELECT NAME FROM USER WHERE id = im.user_id) imName,
+                   im.create_time,
+                   im.measurement_unit,
+                   im.`code`,
+                   im.plan
+            FROM metrical_information im,
+                 metering_plan m,
+                 instrument i
+            WHERE im.instrument_id = i.id
+              and m.id = im.plan
+              and im.plan = #{id}
+              LIMIT #{limitPage.start}
+                , #{limitPage.end}
+        ) im ON m.id = im.plan
+        WHERE 1 = 1
+          AND m.id = #{id}
+    </select>
+    <select id="limitGetPlanMeasureInstrument" resultMap="MetricalInfoAndInsMap">
+        SELECT i.equipment_code                              equipmentCode,
+               i.equipment_name                              equipmentName,
+               i.measuring_range                             measuringRange,
+               i.term_validity                               termValidity,
+               im.result                                     result,
+               im.end_date                                   endDate,
+               (SELECT NAME FROM USER WHERE id = im.user_id) imName,
+               im.create_time                                imCreateTime,
+               im.measurement_unit                           imUnit,
+               im.`code`                                     imCode
+        FROM metrical_information im,
+             metering_plan m,
+             instrument i
+        WHERE im.instrument_id = i.id
+          and m.id = im.plan
+          and im.plan = #{id} LIMIT #{limitPage.start}
+            , #{limitPage.end}
+    </select>
+    <select id="countPlanMeasurIns" resultType="java.util.Map">
+        SELECT count(im.id) total
+        FROM metrical_information im,
+             metering_plan m,
+             instrument i
+        WHERE im.instrument_id = i.id
+          and m.id = im.plan
+          and im.plan = #{id}
+    </select>
+
+    <resultMap id="MetricalInfoAndInsMap" type="MetricalInfoAndIns">
+        <result property="code" column="imCode"/>
+        <result property="measurementUnit" column="imUnit"/>
+        <result property="imCreateTime" column="imCreateTime"/>
+        <result property="measurementName" column="imName"/>
+        <result property="endDate" column="endDate"/>
+        <result property="result" column="result"/>
+        <result property="termValidity" column="termValidity"/>
+        <result property="measuringRange" column="measuringRange"/>
+        <result property="equipmentName" column="equipmentName"/>
+        <result property="equipmentCode" column="equipmentCode"/>
+    </resultMap>
+
+    <resultMap id="measureInsAndPlanMap" type="meteringPlanAndInfoAndIns">
+        <result property="id" column="id"/>
+        <result property="createPerson" column="createName"/>
+        <result property="beginTime" column="beginTime"/>
+        <result property="endTime" column="endTime"/>
+        <result property="plannedOrderNumber" column="plannedOrderNumber"/>
+        <result property="measurePerson" column="measureName"/>
+        <result property="createTime" column="createTime"/>
+        <result property="unit" column="unit"/>
+        <collection property="metricalInfoAndInsList" ofType="metricalInfoAndIns">
+            <result property="code" column="imCode"/>
+            <result property="measurementUnit" column="imUnit"/>
+            <result property="imCreateTime" column="imCreateTime"/>
+            <result property="measurementName" column="imName"/>
+            <result property="endDate" column="endDate"/>
+            <result property="result" column="result"/>
+            <result property="termValidity" column="termValidity"/>
+            <result property="measuringRange" column="measuringRange"/>
+            <result property="equipmentName" column="equipmentName"/>
+            <result property="equipmentCode" column="equipmentCode"/>
+        </collection>
+    </resultMap>
 
     <resultMap id="MeteringPlanAndInfoMap" type="meteringPlanAndInfo">
         <result property="id" column="id"/>
@@ -67,6 +177,7 @@
         <result property="plannedOrderNumber" column="plannedOrderNumber"/>
         <result property="measurePerson" column="measureName"/>
         <result property="createTime" column="createTime"/>
+        <result property="unit" column="unit"/>
         <collection property="resultList" ofType="MetricalInformation">
             <result property="code" column="iCode"/>
             <result property="result" column="status"/>

--
Gitblit v1.9.3