Fixiaobai
2023-08-18 b71fbb924499a4f19988f0f34bec7e01078a1d64
计量管理-》计划计量
已修改7个文件
已添加2个文件
202 ■■■■ 文件已修改
laboratory-server/src/main/java/com/yuanchu/limslaboratory/controller/MeteringPlanController.java 18 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/mapper/MeteringPlanMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/LimitPage.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/MeteringPlanAndInfo.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/pojo/dto/SelectMeteringPlanDto.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/MeteringPlanService.java 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java 34 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/MeteringPlanMapper.xml 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
laboratory-server/src/main/resources/mapper/MetricalInformationMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
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));
    }
}
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);
}
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;
    }
}
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;
}
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;
}
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);
}
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;
    }
}
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>
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>