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