123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225 |
- package com.xlht.xlhtproject.service.impl;
- import com.xlht.xlhtproject.domain.SmartAdd;
- import com.xlht.xlhtproject.domain.TTbDu;
- import com.xlht.xlhtproject.domain.TXlhtMedicineParam;
- import com.xlht.xlhtproject.mapper.TShuju1Mapper;
- import com.xlht.xlhtproject.mapper.TTbDuMapper;
- import com.xlht.xlhtproject.mapper.TXlhtMedicineParamMapper;
- import com.xlht.xlhtproject.service.ITXlhtMedicineParamService;
- import com.xlht.xlhtproject.utils.CalculateUtils;
- import com.xlht.xlhtproject.utils.DateUtils;
- import lombok.extern.slf4j.Slf4j;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.stereotype.Service;
- import java.math.BigDecimal;
- import java.util.List;
- import java.util.Objects;
- import static com.xlht.xlhtproject.enums.MyConstants.LONG_1;
- /**
- * 智能投药参数设置Service业务层处理
- *
- * @author slibra
- * @date 2024-09-09
- */
- @Slf4j
- @Service
- public class TXlhtMedicineParamServiceImpl implements ITXlhtMedicineParamService
- {
- @Autowired
- private TXlhtMedicineParamMapper tXlhtMedicineParamMapper;
- @Autowired
- private TShuju1Mapper shuju1Mapper;
- @Autowired
- private CalculateUtils calculateUtils;
- @Autowired
- private TTbDuMapper tTbDuMapper;
- /**
- * 查询智能投药参数设置
- *
- * @param id 智能投药参数设置主键
- * @return 智能投药参数设置
- */
- @Override
- public TXlhtMedicineParam selectTXlhtMedicineParamById(Long id)
- {
- return tXlhtMedicineParamMapper.selectTXlhtMedicineParamById(id);
- }
- /**
- * 查询智能投药参数设置列表
- *
- * @param tXlhtMedicineParam 智能投药参数设置
- * @return 智能投药参数设置
- */
- @Override
- public List<TXlhtMedicineParam> selectTXlhtMedicineParamList(TXlhtMedicineParam tXlhtMedicineParam)
- {
- return tXlhtMedicineParamMapper.selectTXlhtMedicineParamList(tXlhtMedicineParam);
- }
- /**
- * 新增智能投药参数设置
- *
- * @param tXlhtMedicineParam 智能投药参数设置
- * @return 结果
- */
- @Override
- public int insertTXlhtMedicineParam(TXlhtMedicineParam tXlhtMedicineParam)
- {
- tXlhtMedicineParam.setCreateTime(DateUtils.getNowDate());
- return tXlhtMedicineParamMapper.insertTXlhtMedicineParam(tXlhtMedicineParam);
- }
- /**
- * 修改智能投药参数设置
- *
- * @param tXlhtMedicineParam 智能投药参数设置
- * @return 结果
- */
- @Override
- public int updateTXlhtMedicineParam(TXlhtMedicineParam tXlhtMedicineParam)
- {
- tXlhtMedicineParam.setUpdateTime(DateUtils.getNowDate());
- return tXlhtMedicineParamMapper.updateTXlhtMedicineParam(tXlhtMedicineParam);
- }
- /**
- * 批量删除智能投药参数设置
- *
- * @param ids 需要删除的智能投药参数设置主键
- * @return 结果
- */
- @Override
- public int deleteTXlhtMedicineParamByIds(Long[] ids)
- {
- return tXlhtMedicineParamMapper.deleteTXlhtMedicineParamByIds(ids);
- }
- /**
- * 删除智能投药参数设置信息
- *
- * @param id 智能投药参数设置主键
- * @return 结果
- */
- @Override
- public int deleteTXlhtMedicineParamById(Long id)
- {
- return tXlhtMedicineParamMapper.deleteTXlhtMedicineParamById(id);
- }
- @Override
- public TXlhtMedicineParam getLatestRecord() {
- TXlhtMedicineParam latestRecord = this.tXlhtMedicineParamMapper.getLatestRecord();
- if(!Objects.isNull(latestRecord)){
- this.addExtra(latestRecord);
- }
- return latestRecord;
- }
- private void addExtra(TXlhtMedicineParam latestRecord) {
- //2024年09月20日13:42:18 有可能用户选择的是仪表或者化验,需要获取实时数据
- //获取最新的实时数据
- SmartAdd smartAdd = this.shuju1Mapper.getNewestData();
- if(!Objects.isNull(smartAdd)){
- //获取对应的类型
- //一池的实时数据处理
- Integer hycXsyTypeOne = latestRecord.getHycXsyTypeOne();
- Integer qycAdTypeOne = latestRecord.getQycAdTypeOne();
- Integer qycYxyTypeOne = latestRecord.getQycYxyTypeOne();
- Integer jsCodTypeOne = latestRecord.getJsCodTypeOne();
- Integer jsLlTypeOne = latestRecord.getJsLlTypeOne();
- Integer jsTnTypeOne = latestRecord.getJsTnTypeOne();
- if(!Objects.isNull(hycXsyTypeOne)){
- if(1 == hycXsyTypeOne){//化验
- latestRecord.setHycXsyOne(smartAdd.getHyXsyHYOne());
- }else if(2 == hycXsyTypeOne){//预测
- latestRecord.setHycXsyOne(smartAdd.getHyXsyYCOne());
- }
- }
- if(!Objects.isNull(qycAdTypeOne) && 1 == qycAdTypeOne){//化验
- latestRecord.setQycAdOne(smartAdd.getQyAdHYOne());
- }
- if(!Objects.isNull(qycYxyTypeOne) && 1 == qycYxyTypeOne){//化验
- latestRecord.setQycYxyOne(smartAdd.getQyXsyHYOne());
- }
- if(!Objects.isNull(jsCodTypeOne)){
- if(1 == jsCodTypeOne){//仪表
- latestRecord.setJsCodOne(smartAdd.getJsCodYB());
- }else if(2 == jsCodTypeOne){//化验
- latestRecord.setJsCodOne(smartAdd.getJsCodHY());
- }
- }
- if(!Objects.isNull(jsLlTypeOne) && 1 == jsLlTypeOne){//仪表
- latestRecord.setJsLlOne(smartAdd.getJslYB());
- }
- if(!Objects.isNull(jsTnTypeOne) && 1 == jsTnTypeOne){//仪表
- latestRecord.setJsTnOne(smartAdd.getJsTnYB());
- }
- //二池的实时数据处理
- Integer hycXsyTypeTwo = latestRecord.getHycXsyTypeTwo();
- Integer qycAdTypeTwo = latestRecord.getQycAdTypeTwo();
- Integer qycYxyTypeTwo = latestRecord.getQycYxyTypeTwo();
- Integer jsCodTypeTwo = latestRecord.getJsCodTypeTwo();
- Integer jsLlTypeTwo = latestRecord.getJsLlTypeTwo();
- Integer jsTnTypeTwo = latestRecord.getJsTnTypeTwo();
- if(!Objects.isNull(hycXsyTypeTwo)){
- if(1 == hycXsyTypeTwo){//化验
- latestRecord.setHycXsyTwo(smartAdd.getHyXsyHYTwo());
- }else if(2 == hycXsyTypeTwo){//预测
- latestRecord.setHycXsyTwo(smartAdd.getHyXsyYCTwo());
- }
- }
- if(!Objects.isNull(qycAdTypeTwo) && 1 == qycAdTypeTwo){//化验
- latestRecord.setQycAdTwo(smartAdd.getQyAdHYTwo());
- }
- if(!Objects.isNull(qycYxyTypeTwo) && 1 == qycYxyTypeTwo){//化验
- latestRecord.setQycYxyTwo(smartAdd.getQyXsyHYTwo());
- }
- if(!Objects.isNull(jsCodTypeTwo)){
- if(1 == jsCodTypeTwo){//仪表
- latestRecord.setJsCodTwo(smartAdd.getJsCodYB());
- }else if(2 == jsCodTypeTwo){//化验
- latestRecord.setJsCodTwo(smartAdd.getJsCodHY());
- }
- }
- if(!Objects.isNull(jsLlTypeTwo) && 1 == jsLlTypeTwo){//仪表
- latestRecord.setJsLlTwo(smartAdd.getJslYB());
- }
- if(!Objects.isNull(jsTnTypeTwo) && 1 == jsTnTypeTwo){//仪表
- latestRecord.setJsTnTwo(smartAdd.getJsTnYB());
- }
- //计算实时的碳源投加量 (2个池子需要分开存)
- BigDecimal val = this.calculateUtils.calculateMedicineByLastRecord(latestRecord, 1);
- if(!Objects.isNull(val) && val.compareTo(BigDecimal.ZERO) < 0){
- log.info("一池计算得到的碳源投加量是负数,按0处理");
- val = BigDecimal.ZERO;
- }
- latestRecord.setMedicineAmountOne(val);
- BigDecimal val2 = this.calculateUtils.calculateMedicineByLastRecord(latestRecord, 2);
- if(!Objects.isNull(val2) && val2.compareTo(BigDecimal.ZERO) < 0){
- log.info("二池计算得到的碳源投加量是负数,按0处理");
- val2 = BigDecimal.ZERO;
- }
- latestRecord.setMedicineAmountTwo(val2);
- //获取2个池子的瞬时投药流量
- TTbDu tTbDu = tTbDuMapper.selectTTbDuByID(LONG_1);
- if(!Objects.isNull(tTbDu)){
- latestRecord.setTytjTransientLLOne(tTbDu.getC1TjLl());
- latestRecord.setTytjTransientLLTwo(tTbDu.getC2TjLl());
- }
- }
- }
- }
|