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