From f6fcea400ef3e1ae23607c1cb4da776a70fc4240 Mon Sep 17 00:00:00 2001
From: Fixiaobai <fixiaobai@163.com>
Date: 星期三, 30 八月 2023 15:11:51 +0800
Subject: [PATCH] 合格率统计修改
---
laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java | 101 +++++++++++++++++++++++++++++++++++++++++++++-----
1 files changed, 90 insertions(+), 11 deletions(-)
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 cd2cf23..f2a7ef3 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
@@ -1,24 +1,27 @@
package com.yuanchu.limslaboratory.service.impl;
-import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import cn.hutool.core.date.DateUtil;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
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.InstrumentMapper;
+import com.yuanchu.limslaboratory.mapper.MetricalInformationMapper;
+import com.yuanchu.limslaboratory.pojo.*;
import com.yuanchu.limslaboratory.mapper.MeteringPlanMapper;
-import com.yuanchu.limslaboratory.pojo.MeteringPlanAndInfo;
+import com.yuanchu.limslaboratory.pojo.dto.AddPlanDto;
+import com.yuanchu.limslaboratory.pojo.dto.GetPlanMeasureInstrumentDto;
import com.yuanchu.limslaboratory.pojo.dto.SelectMeasurementLedgerDto;
import com.yuanchu.limslaboratory.pojo.dto.SelectMeteringPlanDto;
+import com.yuanchu.limslaboratory.pojo.vo.UserAndInsVo;
import com.yuanchu.limslaboratory.service.MeteringPlanService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yuanchu.limslaboratory.utils.MyUtil;
-import com.yuanchu.limslaboratory.utils.RedisUtil;
import org.springframework.stereotype.Service;
+import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
-import java.text.SimpleDateFormat;
import java.util.*;
+import java.util.concurrent.atomic.AtomicBoolean;
/**
* <p>
@@ -34,6 +37,12 @@
@Resource
private MeteringPlanMapper meteringPlanMapper;
+ @Resource
+ private InstrumentMapper instrumentMapper;
+
+ @Resource
+ private MetricalInformationMapper metricalInformationMapper;
+
@Override
public Integer addMeteringPlanInformation(MeteringPlan meteringPlan) {
String timeSixNumber = MyUtil.getTimeSixNumberCode("P","P");
@@ -46,13 +55,17 @@
List<MeteringPlanAndInfo> page= meteringPlanMapper
.limitConditionMeteringPlan(dto,new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize(), dto.getPageSize()));
page.forEach(l->{
+ AtomicBoolean haveZero= new AtomicBoolean(false);
l.getResultList().forEach(r->{
- if (r.getResult() < 1) {
- l.setStatus(0);
+ if (r.getResult()<1) {
+ haveZero.set(true);
}else {
l.setStatus(1);
}
});
+ if(haveZero.get()){
+ l.setStatus(0);
+ }
l.setResultList(null);
});
Map<String, Object>all=new HashMap<>(2);
@@ -67,7 +80,73 @@
}
@Override
- public Map<String, Object> getPlanMeasureInstrument(Integer id) {
- return null;
+ public Map<String, Object> getPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto) {
+ MeteringPlanAndInfoAndIns planMeasureInstrument =
+ meteringPlanMapper.getPlanMeasureInstrument
+ (new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize(),
+ dto.getPageSize()), dto.getId());
+ Map<String, Object> map = meteringPlanMapper.countPlanMeasurIns(dto.getId());
+ map.put("list",planMeasureInstrument);
+ return map;
}
+
+ @Override
+ public Map<String, Object> limitGetPlanMeasureInstrument(GetPlanMeasureInstrumentDto dto) {
+ Map<String, Object> map = meteringPlanMapper.countPlanMeasurIns(dto.getId());
+ map.put("list",meteringPlanMapper
+ .limitGetPlanMeasureInstrument(new LimitPage((dto.getCurrentPage()-1)*dto.getPageSize()
+ ,dto.getPageSize()),dto.getId()));
+ return map;
+ }
+
+ @Override
+ public UserAndInsVo getListUserAndListIns(List<Map<String, Object>> userNameAndId) {
+ QueryWrapper<Instrument>queryWrapper=new QueryWrapper<Instrument>();
+ queryWrapper.lambda()
+ .select(Instrument::getEquipmentName,Instrument::getId,Instrument::getMeasuringRange,Instrument::getTermValidity)
+ .eq(Instrument::getState,true);
+ List<Instrument> instruments = instrumentMapper.selectList(queryWrapper);
+ return new UserAndInsVo(userNameAndId,instruments);
+ }
+
+ @Override
+ @Transactional(rollbackFor = Exception.class)
+ public boolean addPlanAndMeasure(Map<String, Object> userInfo, AddPlanDto addPlanDto) {
+ //璁″垝娣诲姞
+ MeteringPlan meteringPlan=new MeteringPlan();
+ String timeSixNumber = MyUtil.getTimeSixNumberCode("P","P");
+ meteringPlan.setPlannedOrderNumber(timeSixNumber);
+ meteringPlan.setCreatePerson(Integer.parseInt(String.valueOf(userInfo.get("id"))));
+ meteringPlan.setUnit(String.valueOf(addPlanDto.getPlan().get("unit")));
+ meteringPlan
+ .setBeginTime(DateUtil.
+ parseDate(String.valueOf(addPlanDto.getPlan().get("startTime"))));
+ meteringPlan.setEndTime(DateUtil.
+ parseDate(String.valueOf(addPlanDto.getPlan().get("endTime"))));
+ meteringPlan.setCreateTime(DateUtil.date());
+ meteringPlan.setMeasurePerson(Integer.parseInt(String.valueOf(addPlanDto.getPlan().get("measurePerson"))));
+ meteringPlan.setUpdateTime(DateUtil.date());
+ meteringPlan.setPlanningStatus(3);
+ boolean addPlan = meteringPlanMapper.insert(meteringPlan) > 0;
+ //鏂板璁¢噺
+ List<MetricalInformation>informationList=new ArrayList<>();
+ addPlanDto.getMeasureList().forEach(l->{
+ MetricalInformation info=new MetricalInformation();
+ info.setInstrumentId(Integer.parseInt(String.valueOf(l.get("equipmentPointName"))));
+ info.setUserId(Integer.parseInt(String.valueOf(userInfo.get("id"))));
+ info.setCreateTime(DateUtil.date());
+ Date endDate=Objects.nonNull(l.get("endDate"))?DateUtil.parseDate(String.valueOf(l.get("endDate"))):null;
+ info.setEndDate(endDate);
+ Integer result=Objects.nonNull(l.get("result"))?Integer.parseInt(String.valueOf(l.get("result"))):null;
+ info.setResult(result);
+ info.setMeasurementUnit(meteringPlan.getUnit());
+ info.setCode(MyUtil.getTimeSixNumberCode("METRICALCODE","METRICALCODE"));
+ info.setUpdateTime(DateUtil.date());
+ info.setPlan(meteringPlan.getId());
+ informationList.add(info);
+ });
+ return addPlan&&metricalInformationMapper.insertBatchInformation(informationList)>0;
+ }
+
+
}
--
Gitblit v1.9.3