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

---
 laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml                            |    1 
 laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml                                   |   50 +++++++++++-
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java          |    5 +
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java    |   18 ++--
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java                       |   20 +++++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java             |   50 ++++++++++++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java |   34 ++++++--
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java            |   16 ++++
 laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java       |    8 -
 9 files changed, 175 insertions(+), 27 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 5b4699b..b877166 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
@@ -6,6 +6,7 @@
 import com.yuanchu.limslaboratory.pojo.Instrument;
 import com.yuanchu.limslaboratory.pojo.MeteringPlan;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
 import com.yuanchu.limslaboratory.service.MeteringPlanService;
 import com.yuanchu.limslaboratory.utils.JackSonUtil;
 import com.yuanchu.limslaboratory.utils.RedisUtil;
@@ -47,15 +48,9 @@
     }
 
     @ApiOperation("璁¢噺璁″垝鍒嗛〉鏌ヨ")
-    @ApiImplicitParams(value = {
-            @ApiImplicitParam(name = "pageNo", value = "璧峰椤�", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "pageSize", value = "姣忎竴椤垫暟閲�", dataTypeClass = Integer.class, required = true),
-            @ApiImplicitParam(name = "measureCodeOrNameOrUnit", value = "娴嬮噺缂栫爜/鍚嶇О/鍗曚綅", dataTypeClass = Integer.class, required = true)
-    })
     @GetMapping("/plan_page_list")
-    public Result<?> pagingQueryOfMeteringPlan(Integer pageNo, Integer pageSize, String measureCodeOrNameOrUnit) {
-        IPage<Map<String, Object>> page = meteringPlanService.pagingQueryOfMeteringPlan(measureCodeOrNameOrUnit, new Page<Objects>(pageNo, pageSize));
-        return Result.success(page);
+    public Result<?> pagingQueryOfMeteringPlan(SelectMeteringPlanDto dto) {
+        return Result.success(meteringPlanService.pagingQueryOfMeteringPlan(dto));
     }
 
     @ApiOperation("璁¢噺鍙拌处鍒嗛〉鏌ヨ")
@@ -64,4 +59,11 @@
         IPage<Map<String, Object>> page = meteringPlanService.pagingQueryOfMeasurementLedger(selectMeasurementLedgerDto);
         return Result.success(page);
     }
+
+    @ApiOperation("鏌ヨ璁¢噺淇℃伅")
+    public Result<?> getPlanMeasureInstrument(Integer id){
+        return Result.success(meteringPlanService.getPlanMeasureInstrument(id));
+    }
+
+
 }
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 e4fe070..5abe58b 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,11 +2,15 @@
 
 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.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.yuanchu.limslaboratory.pojo.MeteringPlanAndInfo;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
 import java.util.Map;
 import java.util.Objects;
 
@@ -21,4 +25,16 @@
 public interface MeteringPlanMapper extends BaseMapper<MeteringPlan> {
 
     IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page,@Param("dto") SelectMeasurementLedgerDto dto);
+
+    /**
+     * 鍒嗛〉鏌ヨ璁″垝
+     * @param dto
+     * @param limitPage
+     * @return
+     */
+    List<MeteringPlanAndInfo>limitConditionMeteringPlan(@Param("dto")SelectMeteringPlanDto dto, @Param("limitPage") LimitPage limitPage);
+
+
+    Map<String, Object>getTotal(@Param("dto")SelectMeteringPlanDto dto);
+
 }
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java
new file mode 100644
index 0000000..cd97be2
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java
@@ -0,0 +1,20 @@
+package com.yuanchu.limslaboratory.pojo;
+
+import lombok.Data;
+
+import java.io.Serializable;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/17
+ */
+@Data
+public class LimitPage implements Serializable {
+
+    private Long start, end;
+
+    public LimitPage(Long start, Long end) {
+        this.start = start;
+        this.end = end;
+    }
+}
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
new file mode 100644
index 0000000..5dde538
--- /dev/null
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java
@@ -0,0 +1,50 @@
+package com.yuanchu.limslaboratory.pojo;
+
+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;
+import java.util.List;
+
+/**
+ * @Author 寮犲
+ * @Date 2023/8/17
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+@ApiModel(value="MeteringPlanAndInfo", description="")
+public class MeteringPlanAndInfo implements Serializable {
+
+    private Long id;
+
+    private String createPerson;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+    @ApiModelProperty(value = "寮�濮嬫棩鏈�", example = "2023-07-06", required = true, dataType = "date")
+    private Date beginTime;
+
+    private String plannedOrderNumber;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+    @ApiModelProperty(value = "缁撴潫鏃ユ湡", example = "2023-07-06", required = true, dataType = "date")
+    private Date endTime;
+
+    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
+    @DateTimeFormat(pattern = "yyyy-MM-dd", iso = DateTimeFormat.ISO.DATE_TIME)
+    private Date createTime;
+
+    private String measurePerson;
+
+    private Integer status;
+
+    private List<MetricalInformation>resultList;
+
+
+}
diff --git a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java
index 7b5b716..b66eb6c 100644
--- a/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java
+++ b/laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java
@@ -20,10 +20,6 @@
     private Long currentPage;
     @ApiModelProperty(value = "姣忛〉澶氬皯鏉�", example = "10", required = true)
     private Long pageSize;
-    @ApiModelProperty(value = "浠櫒缂栫爜",  required = false)
-    private String code;
-    @ApiModelProperty(value = "浠櫒鍚嶇О",  required = false)
-    private String name;
-    @ApiModelProperty(value = "璁¢噺鍗曚綅",  required = false)
-    private String unit;
+    @ApiModelProperty(value = "璁″垝鍗曞彿",  required = false)
+    private String plannedOrderNumber;
 }
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 727e8ee..21bb7b6 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
@@ -5,6 +5,7 @@
 import com.yuanchu.limslaboratory.pojo.MeteringPlan;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
 
 import java.util.Map;
 import java.util.Objects;
@@ -21,7 +22,9 @@
 
     Integer addMeteringPlanInformation(MeteringPlan meteringPlan);
 
-    IPage<Map<String, Object>> pagingQueryOfMeteringPlan(String measureCodeOrNameOrUnit, Page<Objects> page);
+    Map<String, Object> pagingQueryOfMeteringPlan(SelectMeteringPlanDto dto);
 
     IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(SelectMeasurementLedgerDto selectMeasurementLedgerDto);
+
+    Map<String, Object> getPlanMeasureInstrument(Integer id);
 }
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 741d4a9..cd2cf23 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
@@ -4,9 +4,12 @@
 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.mapper.MeteringPlanMapper;
+import com.yuanchu.limslaboratory.pojo.MeteringPlanAndInfo;
 import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
+import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
 import com.yuanchu.limslaboratory.service.MeteringPlanService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.yuanchu.limslaboratory.utils.MyUtil;
@@ -15,9 +18,7 @@
 
 import javax.annotation.Resource;
 import java.text.SimpleDateFormat;
-import java.util.Date;
-import java.util.Map;
-import java.util.Objects;
+import java.util.*;
 
 /**
  * <p>
@@ -41,15 +42,32 @@
     }
 
     @Override
-    public IPage<Map<String, Object>> pagingQueryOfMeteringPlan(String measureCodeOrNameOrUnit, Page<Objects> page) {
-
-
-
-        return null;
+    public Map<String, Object> pagingQueryOfMeteringPlan(SelectMeteringPlanDto dto) {
+        List<MeteringPlanAndInfo> page= meteringPlanMapper
+                .limitConditionMeteringPlan(dto,new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize(), dto.getPageSize()));
+        page.forEach(l->{
+            l.getResultList().forEach(r->{
+                if (r.getResult() < 1) {
+                    l.setStatus(0);
+                }else {
+                    l.setStatus(1);
+                }
+            });
+            l.setResultList(null);
+        });
+        Map<String, Object>all=new HashMap<>(2);
+        all.put("total",meteringPlanMapper.getTotal(dto).get("num"));
+        all.put("list",page);
+        return all;
     }
 
     @Override
     public IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(SelectMeasurementLedgerDto dto) {
         return meteringPlanMapper.pagingQueryOfMeasurementLedger(new Page<>(dto.getCurrentPage(),dto.getPageSize(),true),dto);
     }
+
+    @Override
+    public Map<String, Object> getPlanMeasureInstrument(Integer id) {
+        return null;
+    }
 }
diff --git a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
index efa48a6..762ec4c 100644
--- a/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml
@@ -19,15 +19,57 @@
         LEFT JOIN `user` u ON u.id = m.user_id
         LEFT JOIN instrument i ON i.`id` = m.`instrument_id`
         WHERE 1=1
-        and (m.state=1 and i.state=1)
+        and (m.state=1 and i.state=1 and m.result is not null)
         <if test="dto.code!=null and dto.code!=''">
-         and    i.`equipment_code` like concat('%',#{dto.code},'%')
+            and i.`equipment_code` like concat('%',#{dto.code},'%')
         </if>
         <if test="dto.name!=null and dto.name!=''">
-          and   i.`equipment_name` like concat('%',#{dto.name},'%')
+            and i.`equipment_name` like concat('%',#{dto.name},'%')
         </if>
         <if test="dto.name!=null and dto.name!=''">
-          and   i.measurement_unit like concat('%',#{dto.unit},'%')
+            and i.measurement_unit like concat('%',#{dto.unit},'%')
         </if>
     </select>
+
+    <select id="limitConditionMeteringPlan" resultMap="MeteringPlanAndInfoMap">
+        SELECT p.id id,
+        u.`name` createName,
+        p.planned_order_number plannedOrderNumber,
+        p.begin_time beginTime,
+        p.end_time endTime,
+        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.create_time createTime
+        FROM (SELECT id, 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!=''">
+            and planned_order_number=#{plannedOrderNumber}
+        </if>
+        LIMIT #{limitPage.start},#{limitPage.end}) p
+        LEFT JOIN metrical_information i ON p.id = i.plan
+        LEFT JOIN `user` u ON p.create_Person = u.id
+        where 1 = 1
+    </select>
+    <select id="getTotal" resultType="java.util.Map">
+        select count(id) num from metering_plan where 1=1
+        <if test="dto.plannedOrderNumber!=null and dto.plannedOrderNumber!=''">
+            and planned_order_number=#{plannedOrderNumber}
+        </if>
+    </select>
+
+    <resultMap id="MeteringPlanAndInfoMap" type="meteringPlanAndInfo">
+        <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"/>
+        <collection property="resultList" ofType="MetricalInformation">
+            <result property="code" column="iCode"/>
+            <result property="result" column="status"/>
+        </collection>
+    </resultMap>
 </mapper>
diff --git a/laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml b/laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml
index 21de131..858dbf3 100644
--- a/laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml
+++ b/laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml
@@ -8,6 +8,7 @@
         FROM metrical_information m, `user` u
         WHERE m.`user_id` = u.`id`
         AND m.`state` = 1
+          and result is not Null
         AND m.`instrument_id` = #{InstrumentId}
     </select>
 </mapper>

--
Gitblit v1.9.3