From c5138faa1c4771bfbc19de5b257e7c129c081cb8 Mon Sep 17 00:00:00 2001 From: Fixiaobai <fixiaobai@163.com> Date: 星期一, 28 八月 2023 13:30:17 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- laboratory-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MeteringPlanServiceImpl.java | 127 ++++++++++++++++++++++++++++++++++++++---- 1 files changed, 114 insertions(+), 13 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 1a5f4a8..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,22 +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.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.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.Date; -import java.util.Map; -import java.util.Objects; +import java.util.*; +import java.util.concurrent.atomic.AtomicBoolean; /** * <p> @@ -32,20 +37,116 @@ @Resource private MeteringPlanMapper meteringPlanMapper; + @Resource + private InstrumentMapper instrumentMapper; + + @Resource + private MetricalInformationMapper metricalInformationMapper; + @Override public Integer addMeteringPlanInformation(MeteringPlan meteringPlan) { - String timeSixNumber = MyUtil.getTimeSixNumberCode("P"); + String timeSixNumber = MyUtil.getTimeSixNumberCode("P","P"); meteringPlan.setPlannedOrderNumber(timeSixNumber); return meteringPlanMapper.insert(meteringPlan); } @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->{ + AtomicBoolean haveZero= new AtomicBoolean(false); + l.getResultList().forEach(r->{ + 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); + all.put("total",meteringPlanMapper.getTotal(dto).get("num")); + all.put("list",page); + return all; } @Override - public IPage<Map<String, Object>> pagingQueryOfMeasurementLedger(Page<Objects> page) { - return meteringPlanMapper.pagingQueryOfMeasurementLedger(page); + 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(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