From 35bf80accf4117e3de030fdd7e3962f16a5fcfd9 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期三, 23 八月 2023 09:05:41 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java | 9 + inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java | 2 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java | 8 + inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java | 10 inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java | 4 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java | 153 +++++++++++++++++++-- inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java | 35 +++++ inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/IprInfo.java | 19 ++ inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml | 151 +++++++++++++++++++++ inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectProjectByCodeAndNameDto.java | 25 +++ 10 files changed, 390 insertions(+), 26 deletions(-) diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java index 4f3c981..53e8c38 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/QualificationRateStatisticsController.java @@ -32,19 +32,27 @@ @ApiOperation("鏌ヨ妫�楠屾牱鍝佸悎鏍肩巼缁熻") @GetMapping("/getTestSampleStatistics") public Result<?> getTestSampleStatistics(SelectQualificationRateDto dto){ + System.out.println("getTestSampleStatistics______________>"+dto); return Result.success(service.getTestSampleStatistics(dto)); } @ApiOperation("鏌ヨ渚涘簲鍟嗕笉鍚堟牸缁熻娆℃暟") @GetMapping("/getSupplierNoPassStatistics") public Result<?> getSupplierNoPassStatistics(SelectQualificationRateDto dto){ + System.out.println("getSupplierNoPassStatistics++++++++++++++++>"+dto); return Result.success(service.getSupplierNoPassStatistics(dto)); } @ApiOperation("鏌ヨ涓嶅悎鏍奸」鐩粺璁�") @GetMapping("/getNoPassProjectStatistics") public Result<?> getNoPassProjectStatistics(SelectQualificationRateDto dto){ + System.out.println("getNoPassProjectStatistics===============>"+dto); return Result.success(service.getNoPassProjectStatistics(dto)); } + @ApiOperation("鑾峰彇鏍峰搧鍚嶇О") + @GetMapping("/getSampleOptions") + public Result<?> getSampleOptions(){ + return Result.success(service.getSampleOptions()); + } } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java index 590dc28..8e2eecb 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/mapper/QualificationRateStatisticsMapper.java @@ -1,6 +1,8 @@ package com.yuanchu.limslaboratory.mapper; +import com.yuanchu.limslaboratory.pojo.Dto.SelectProjectByCodeAndNameDto; import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto; +import com.yuanchu.limslaboratory.pojo.ImInfo; import org.apache.ibatis.annotations.MapKey; import org.apache.ibatis.annotations.Param; import org.springframework.stereotype.Repository; @@ -18,5 +20,12 @@ @MapKey("id") List<Map<String, Object>>selectSupplierByCondition(@Param("dto") SelectQualificationRateDto dto); + List<ImInfo>selectProjectionsByCondition(@Param("dto")SelectQualificationRateDto dto); + List<ImInfo>selectProjection(@Param("list") List<SelectProjectByCodeAndNameDto> list,@Param("dto")SelectQualificationRateDto dto); + + @MapKey("id") + List<Map<String, Object>> selectTestSamp(@Param("dto") SelectQualificationRateDto dto); + + List<Map<String, Object> >getSampleOptions(); } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectProjectByCodeAndNameDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectProjectByCodeAndNameDto.java new file mode 100644 index 0000000..94e1cb4 --- /dev/null +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectProjectByCodeAndNameDto.java @@ -0,0 +1,25 @@ +package com.yuanchu.limslaboratory.pojo.Dto; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author 寮犲 + * @Date 2023/8/22 + */ +@Data +public class SelectProjectByCodeAndNameDto implements Serializable { + + private String code; + + private String name; + + public SelectProjectByCodeAndNameDto() { + } + + public SelectProjectByCodeAndNameDto(String code, String name) { + this.code = code; + this.name = name; + } +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java index 29d0c71..5281dbe 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SelectQualificationRateDto.java @@ -48,5 +48,9 @@ @ApiModelProperty(value = "渚涘簲鍟�") private String supplier; + @ApiModelProperty(value = "鏍峰搧") + private String sample; + @ApiModelProperty(value = "缂栫爜") + private String code; } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java index 1474065..ef76384 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/Dto/SeriesDto.java @@ -13,20 +13,20 @@ public class SeriesDto implements Serializable { private String name; - private List<Long> data; + private List<Double> data; private String type; - private String stack; + //private String stack; - public SeriesDto(String name, List<Long> data) { + public SeriesDto(String name, List<Double> data) { this.name = name; this.data = data; this.type = "bar"; - this.stack = "x"; + //this.stack = "x"; } public SeriesDto(String name) { this.name = name; this.type = "bar"; - this.stack = "x"; + //this.stack = "x"; } } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java new file mode 100644 index 0000000..18819a8 --- /dev/null +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/ImInfo.java @@ -0,0 +1,35 @@ +package com.yuanchu.limslaboratory.pojo; + +import com.fasterxml.jackson.annotation.JsonFormat; +import lombok.Data; +import org.springframework.format.annotation.DateTimeFormat; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + * @Author 寮犲 + * @Date 2023/8/22 + */ +@Data +public class ImInfo implements Serializable { + + private Long imId; + + private String imName; + + private String iCode; + + private Integer inspectionStatus; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date startTime; + + @DateTimeFormat(pattern = "yyyy-MM-dd") + @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + private Date endTime; + + private List<IprInfo>iprInfos; +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/IprInfo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/IprInfo.java new file mode 100644 index 0000000..d4d0a13 --- /dev/null +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/IprInfo.java @@ -0,0 +1,19 @@ +package com.yuanchu.limslaboratory.pojo; + +import lombok.Data; + +import java.io.Serializable; + +/** + * @Author 寮犲 + * @Date 2023/8/22 + */ +@Data +public class IprInfo implements Serializable { + + private int iprId; + + private String iprName; + + private Integer testState; +} diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java index 35640c3..9ef152c 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/QualificationRateStatisticsService.java @@ -22,4 +22,6 @@ Map<String, Object> getSupplierNoPassStatistics(SelectQualificationRateDto dto); Map<String, Object> getNoPassProjectStatistics(SelectQualificationRateDto dto); + + List<Map<String, Object>> getSampleOptions(); } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java index dea8314..4daef1c 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/QualificationRateStatisticsServiceImpl.java @@ -5,8 +5,10 @@ import com.yuanchu.limslaboratory.mapper.InspectionMaterialMapper; import com.yuanchu.limslaboratory.mapper.QualificationRateStatisticsMapper; import com.yuanchu.limslaboratory.pojo.Dto.MapHandlerDto; +import com.yuanchu.limslaboratory.pojo.Dto.SelectProjectByCodeAndNameDto; import com.yuanchu.limslaboratory.pojo.Dto.SelectQualificationRateDto; import com.yuanchu.limslaboratory.pojo.Dto.SeriesDto; +import com.yuanchu.limslaboratory.pojo.ImInfo; import com.yuanchu.limslaboratory.pojo.InspectionMaterial; import com.yuanchu.limslaboratory.service.QualificationRateStatisticsService; import com.yuanchu.limslaboratory.utils.ArrayListUtil; @@ -15,6 +17,7 @@ import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.text.NumberFormat; import java.util.*; import java.util.concurrent.atomic.AtomicInteger; import java.util.concurrent.atomic.AtomicLong; @@ -30,6 +33,8 @@ @Resource private InspectionMaterialMapper inspectionMaterialMapper; + private static final List<String> TYPE_LIST =Arrays.asList("鍘熸潗鏂�","鎴愬搧","濮旀墭鍝�"); + private static final List<Integer> TYPE_INT_LIST =Arrays.asList(0,1,2); @Resource private QualificationRateStatisticsMapper qualificationRateStatisticsMapper; @@ -43,16 +48,60 @@ @Override public Map<String, Object> getTestSampleStatistics(SelectQualificationRateDto dto) { - System.out.println(dto); - return null; + Map<String, Object> mapResult = new HashMap<>(16); + List<Map<String, Object>> mapList = qualificationRateStatisticsMapper.selectTestSamp(dto); + if(mapList.size()<=0){ + mapResult.put("noData",false); + return mapResult; + } + mapResult.put("xAxis",TYPE_LIST); + List<Map<String, Object>>list=new ArrayList<>(); + Map<String, Object>mapPass=new HashMap<>(3); + mapPass.put("name","鍚堟牸"); + mapPass.put("type","bar"); + Map<String, Object>mapNoPass=new HashMap<>(3); + mapNoPass.put("name","涓嶅悎鏍�"); + mapNoPass.put("type","bar"); + List<Integer>passInteger=new ArrayList<>(); + List<Integer>noPasInteger=new ArrayList<>(); + AtomicInteger integerPass = new AtomicInteger(0); + AtomicInteger integerNoPass = new AtomicInteger(0); + for (int i = 0; i < TYPE_INT_LIST.size(); i++) { + int finalI = i; + mapList.stream().filter(m->Objects.equals(String.valueOf(m.get("type")),String.valueOf(TYPE_INT_LIST.get(finalI)))) + .forEach(m->{ + System.out.println(m.get("type")); + if(Objects.equals(m.get("inspectionStatus"),0)){ + integerNoPass.incrementAndGet(); + } + if(Objects.equals(m.get("inspectionStatus"),1)){ + integerPass.incrementAndGet(); + } + }); + passInteger.add(integerPass.get()); + noPasInteger.add(integerNoPass.get()); + integerPass.set(0); + integerNoPass.set(0); + } + mapPass.put("data",passInteger); + mapNoPass.put("data",noPasInteger); + list.add(mapPass); + list.add(mapNoPass); + mapResult.put("series",list); + mapResult.put("noData",true); + System.out.println("鎵ц缁撴潫getTestSampleStatistics________________>"+mapResult); + //System.out.println(mapResult); + return mapResult; } @Override public Map<String, Object> getSupplierNoPassStatistics(SelectQualificationRateDto dto) { Map<String, Object> allMap = new HashMap<>(16); List<Map<String, Object>> mapList = qualificationRateStatisticsMapper.selectSupplierByCondition(dto); - mapList.forEach(System.out::println); - System.out.println("================================="); + if(mapList.size()<=0){ + allMap.put("noData",false); + return allMap; + } //鍘婚噸鍙栧嚭渚涘簲鍟� List<Map<String, Object>> supplierDistinct = ArrayListUtil.oneObjectsDistinctByProperty(MapHandlerDto::comparingBySupplier, mapList); List<String> supplierList = new ArrayList<String>(); @@ -60,21 +109,21 @@ supplierList.add(String.valueOf(l.get("supplier"))); }); allMap.put("xAxis", supplierList); - List<SeriesDto>seriesDtoList=new ArrayList<SeriesDto>(2); - SeriesDto seriesDto2=new SeriesDto("涓嶅悎鏍兼暟閲�"); - SeriesDto seriesDto=new SeriesDto("鍚堟牸鏁伴噺"); + List<SeriesDto> seriesDtoList = new ArrayList<SeriesDto>(2); + SeriesDto seriesDto = new SeriesDto("鍚堟牸鏁伴噺"); + SeriesDto seriesDto2 = new SeriesDto("涓嶅悎鏍兼暟閲�"); // 鍙栧嚭瀵瑰簲鍚堟牸鏁伴噺涓嶅悎鏍兼暟閲� - List<Long>pass=new ArrayList<>(); - List<Long>noPass=new ArrayList<>(); - AtomicLong integerPass=new AtomicLong(0L); - AtomicLong integerNoPass=new AtomicLong(0L); + List<Long> pass = new ArrayList<>(); + List<Long> noPass = new ArrayList<>(); + AtomicLong integerPass = new AtomicLong(0L); + AtomicLong integerNoPass = new AtomicLong(0L); supplierList.forEach(s -> { mapList.stream() .filter(l -> Objects.equals(l.get("supplier"), s)) .forEach(l -> { - if(Objects.equals(l.get("inspectionStatus"),1)){ + if (Objects.equals(l.get("inspectionStatus"), 1)) { integerPass.incrementAndGet(); - }else { + } else { integerNoPass.incrementAndGet(); } }); @@ -83,19 +132,83 @@ integerNoPass.set(0L); integerPass.set(0L); }); - seriesDto.setData(pass); - seriesDto2.setData(noPass); + List<Double> percentPass = new ArrayList<>(); + List<Double> percentNoPass = new ArrayList<>(); + for (int i = 0; i < pass.size(); i++) { + long total = (pass.get(i) + noPass.get(i)); + double passNO = 0.00; + if (pass.get(i) != 0L) { + passNO = Double.parseDouble(getPercent(pass.get(i), total).replace("%", "")); + } + double noPassNO = 0.00; + if (noPass.get(i) != 0L) { + noPassNO = Double.parseDouble(getPercent(noPass.get(i), total).replace("%", "")); + } + percentPass.add(passNO); + percentNoPass.add(noPassNO); + } + seriesDto.setData(percentPass); + seriesDto2.setData(percentNoPass); seriesDtoList.add(seriesDto); seriesDtoList.add(seriesDto2); - System.out.println("鏁伴噺=======>"); - System.out.println(seriesDtoList); - return null; + allMap.put("series", seriesDtoList); + allMap.put("noData",true); + System.out.println("getSupplierNoPassStatistics缁撴灉++++++++++++++++>"+allMap); + return allMap; } @Override public Map<String, Object> getNoPassProjectStatistics(SelectQualificationRateDto dto) { - return null; + Map<String, Object> allMap = new HashMap<>(16); + List<ImInfo> imInfos = qualificationRateStatisticsMapper.selectProjectionsByCondition(dto); + List<String>NameList = new ArrayList<>(); + List<SelectProjectByCodeAndNameDto>projectByCodeAndNameDtos=new ArrayList<>(); + if(imInfos.size()<=0){ + allMap.put("noData",false); + return allMap; + } + imInfos.forEach(l->{ + NameList.add(l.getICode()+"-"+l.getImName()); + projectByCodeAndNameDtos.add(new SelectProjectByCodeAndNameDto(l.getICode(),l.getImName())); + }); + List<ImInfo> imInfosAll = qualificationRateStatisticsMapper.selectProjection(projectByCodeAndNameDtos,dto); + int total = imInfosAll.size(); + List<Integer>noPas=new ArrayList<>(); + AtomicInteger i=new AtomicInteger(0); + NameList.forEach(n->{ + imInfos.stream() + .filter(im-> Objects.equals(n,im.getICode()+"-"+im.getImName())) + .forEach(im->{ + i.set(im.getIprInfos().size()); + }); + noPas.add(i.get()); + i.set(0); + }); + List<Map<String, Object>>doubleList=new ArrayList<>(); + for (int j = 0; j < noPas.size(); j++) { + Map<String, Object>map=new HashMap<>(); + map.put("name",NameList.get(j)); + map.put("value",Double.parseDouble(getPercent(noPas.get(j),total).replace("%",""))); + doubleList.add(map); + } + allMap.put("legend",NameList); + allMap.put("series",doubleList); + allMap.put("noData",true); + System.out.println("getNoPassProjectStatistics缁撴灉==========================>"+allMap); + return allMap; } + @Override + public List<Map<String, Object>> getSampleOptions() { + return qualificationRateStatisticsMapper.getSampleOptions(); + } -} + public static String getPercent(long x, long y) { + double d1 = x * 1.0; + double d2 = y * 1.0; + NumberFormat percentInstance = NumberFormat.getPercentInstance(); + // 璁剧疆淇濈暀鍑犱綅灏忔暟锛岃繖閲岃缃殑鏄繚鐣欎袱浣嶅皬鏁� + percentInstance.setMinimumFractionDigits(2); + return percentInstance.format(d1 / d2); + } +} \ No newline at end of file diff --git a/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml b/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml index 754f647..bb63097 100644 --- a/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml +++ b/inspection-server/src/main/resources/mapper/QualificationRateStatisticsMapper.xml @@ -11,7 +11,7 @@ i.end_time endTime FROM inspection i INNER JOIN inspection_material im ON i.id = im.inspection_id - where (i.state = 1 AND TRUE = IFNULL(i.inspection_status, FALSE)) + where (i.state = 1 AND i.inspection_status is NOT NULL and im.state=1) <if test="dto.beginDate!=null and dto.endDate!=null"> DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate} AND #{dto.endDate} @@ -23,5 +23,154 @@ <if test="dto.supplier!=null and dto.supplier!=''"> and im.supplier=#{dto.supplier} </if> + <if test="dto.sample!=null and dto.sample!=''"> + and im.name=#{dto.sample} + </if> + <if test="dto.code!=null and dto.code!=''"> + and i.code=#{dto.code} + </if> </select> + <select id="selectProjectionsByCondition" resultMap="ImInfoMap"> + SELECT + im.id imId, + im.`name` imName, + i.inspection_status inspectionStatus, + i.start_time startTime, + i.end_time endTime, + ipr.id iprId, + ipr.`name` iprName, + ipr.test_state testState, + i.code iCode, + i.type type + FROM + inspection i, + inspection_material im, + inspection_product ipr + WHERE + i.id = im.inspection_id + AND im.id = ipr.inspection_material_id + AND i.state = 1 + AND im.state = 1 + AND ipr.state = 1 + AND i.inspection_status is NOT NULL + AND ipr.test_state is not null + AND ipr.test_state = 0 + <if test="dto.beginDate!=null and dto.endDate!=null"> + DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate} + AND #{dto.endDate} + AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate} + </if> + <if test="dto.type!=null"> + and i.type=#{dto.type} + </if> + <if test="dto.supplier!=null and dto.supplier!=''"> + and im.supplier=#{dto.supplier} + </if> + <if test="dto.sample!=null and dto.sample!=''"> + and im.name=#{dto.sample} + </if> + <if test="dto.code!=null and dto.code!=''"> + and i.code=#{dto.code} + </if> + </select> + <select id="selectProjection" resultMap="ImInfoMap"> + SELECT + im.id imId + FROM + inspection i, + inspection_material im, + inspection_product ipr + WHERE + i.id = im.inspection_id + AND im.id = ipr.inspection_material_id + AND i.state = 1 + AND im.state = 1 + AND ipr.state = 1 + AND i.inspection_status is NOT NULL + AND ipr.test_state is not null + <if test="dto.beginDate!=null and dto.endDate!=null"> + DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate} + AND #{dto.endDate} + AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate} + </if> + <if test="dto.type!=null"> + and i.type=#{dto.type} + </if> + <if test="dto.supplier!=null and dto.supplier!=''"> + and im.supplier=#{dto.supplier} + </if> + <if test="dto.sample!=null and dto.sample!=''"> + and im.name=#{dto.sample} + </if> + <if test="dto.code!=null and dto.code!=''"> + and i.code=#{dto.code} + </if> + and i.code in + <foreach collection="list" item="l" open="(" close=")" separator="," > + #{l.code} + </foreach> + and im.name in + <foreach collection="list" item="l" open="(" close=")" separator=","> + #{l.name} + </foreach> + </select> + <select id="selectTestSamp" resultType="java.util.Map"> + SELECT i.id, + i.type, + im.`name`, + im.supplier, + i.inspection_status inspectionStatus, + i.start_time startTime, + i.end_time endTime + FROM inspection i + INNER JOIN inspection_material im ON i.id = im.inspection_id + where (i.state = 1 AND i.inspection_status is NOT NULL and im.state=1) + <if test="dto.beginDate!=null and dto.endDate!=null"> + DATE_FORMAT( i.end_time, '%Y-%m-%d' ) BETWEEN #{dto.beginDate} + AND #{dto.endDate} + AND DATE_FORMAT( i.start_time, '%Y-%m-%d' )>= #{dto.beginDate} + </if> + <if test="dto.type!=null"> + and i.type=#{dto.type} + </if> + <if test="dto.supplier!=null and dto.supplier!=''"> + and im.supplier=#{dto.supplier} + </if> + <if test="dto.sample!=null and dto.sample!=''"> + and im.name=#{dto.sample} + </if> + <if test="dto.code!=null and dto.code!=''"> + and i.code=#{dto.code} + </if> + </select> + <select id="getSampleOptions" resultType="java.util.Map"> + SELECT + i.id, + i.type, + im.`name` name, + im.supplier, + i.inspection_status inspectionStatus, + i.start_time startTime, + i.end_time endTime, + i.`code` + FROM + inspection i + INNER JOIN inspection_material im ON i.id = im.inspection_id + WHERE + ( i.state = 1 AND i.inspection_status IS NOT NULL AND im.state = 1 ) + </select> + + <resultMap id="ImInfoMap" type="com.yuanchu.limslaboratory.pojo.ImInfo"> + <result property="imId" column="imId"/> + <result property="iCode" column="iCode"/> + <result property="imName" column="imName"/> + <result property="startTime" column="startTime"/> + <result property="endTime" column="endTime"/> + <result property="inspectionStatus" column="inspectionStatus"/> + <collection property="iprInfos" ofType="iprInfo"> + <result property="iprId" column="iprId"/> + <result property="iprName" column="iprName"/> + <result property="testState" column="testState"/> + </collection> + </resultMap> </mapper> \ No newline at end of file -- Gitblit v1.9.3