From a3344947e1ff54fcae8f09140ab0d05e2ba26f31 Mon Sep 17 00:00:00 2001
From: baoshiwei <baoshiwei@shlanbao.cn>
Date: 星期五, 25 十月 2024 15:17:36 +0800
Subject: [PATCH] 新增配方记录功能并优化相关实体和VO

---
 jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java |  132 ++++++++++++++++++++++++++++++++++++++++++-
 1 files changed, 128 insertions(+), 4 deletions(-)

diff --git a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
index b261d83..ff98cb4 100644
--- a/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
+++ b/jeecg-module-dry/jeecg-module-dry-biz/src/main/java/org/jeecg/modules/dry/controller/DryRealTimeDataController.java
@@ -4,24 +4,34 @@
 import ai.djl.modality.Classifications;
 import cn.hutool.core.bean.BeanUtil;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
 import org.jeecg.common.api.vo.Result;
 
-import org.jeecg.modules.dry.entity.DryHerbInfo;
+import org.jeecg.common.config.TenantContext;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.common.util.IpUtils;
+import org.jeecg.common.util.SpringContextUtils;
+import org.jeecg.common.util.oConvertUtils;
+import org.jeecg.config.mybatis.MybatisPlusSaasConfig;
+import org.jeecg.modules.dry.entity.*;
 import org.jeecg.modules.dry.service.*;
 
 //import org.jeecg.modules.dry.util.HerbUtil;
-import org.jeecg.modules.dry.vo.CommandMessageVo;
-import org.jeecg.modules.dry.vo.DryHerbInfoVo;
-import org.jeecg.modules.dry.vo.RealTimeDataVo;
+import org.jeecg.modules.dry.vo.*;
 
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 
+import javax.servlet.http.HttpServletRequest;
+import javax.xml.bind.JAXBContext;
+import javax.xml.bind.JAXBException;
+import javax.xml.bind.Marshaller;
 import java.io.InputStream;
+import java.io.StringWriter;
 import java.util.*;
 import java.util.stream.Collectors;
 import java.util.stream.Stream;
@@ -36,11 +46,27 @@
     @Autowired
     private IDryRealTimeDataService dryRealTimeDataService;
 
+    @Autowired
+    private IDryHerbFormulaService dryHerbFormulaService;
+
+    @Autowired
+    private IDryHerbInfoService dryHerbInfoService;
+
+    @Autowired
+    private IDryEqpTypeService dryEqpTypeService;
+
 //    @Autowired
 //    private HerbUtil herbUtil;
 
     @Autowired
     private IDryHerbInfoService herbInfoService;
+
+    @Autowired
+    private IDryHerbFormulaHisService dryHerbFormulaHisService;
+
+    @Autowired
+    private IDryEquipmentService dryEquipmentService;
+
 
 
     @ApiOperation(value="娴嬭瘯", notes="杩斿洖Hello")
@@ -123,5 +149,103 @@
 //            return Result.error("AI璇嗗埆鏈嶅姟寮傚父");
 //        }
 //    }
+    @ApiOperation(value="骞茬嚗閰嶆柟鑾峰彇", notes="骞茬嚗閰嶆柟涓嬪彂")
+    @GetMapping(value = "/queryFormula")
+    public Result<String> queryFormulaByEqpType(Integer tenantId, String eqpCode) throws JAXBException {
+        //鑾峰彇request
+        HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
+        // 鑾峰彇璇锋眰涓绘満鐨処P鍦板潃
+        String ip = IpUtils.getIpAddr(request);
+        DryEquipment dryEquipment = dryEquipmentService.selectByTenantIdEquipmentId(tenantId+ "", eqpCode);
+        if (dryEquipment != null) {
+            if (dryEquipment.getIp().equals(ip)) {
+            } else {
+                return Result.error("璁惧IP鍦板潃鏈厤缃細" + ip);
+            }
+        } else {
+            return Result.error("璁惧涓嶅瓨鍦�");
+        }
+            LambdaQueryWrapper<DryHerbFormula> queryWrapper = new LambdaQueryWrapper<DryHerbFormula>();
+            queryWrapper.eq(DryHerbFormula::getEqpType, dryEquipment.getType())
+                    .eq(DryHerbFormula::getTenantId, tenantId);
+            List<DryHerbFormula> list = dryHerbFormulaService.list(queryWrapper);
+            Formulas formulas = new Formulas();
+            list.forEach(item -> {
+                DryHerbInfo byId = dryHerbInfoService.getById(item.getHerbId());
+                if (byId!=null) {
+                    item.setPinyin(byId.getPinyin());
+                    item.setName(byId.getName());
+                }
+                Formula formula = new Formula();
+                BaseParam baseParam = new BaseParam();
+                WaterParam waterParam = new WaterParam();
+                TypeParam typeParam = new TypeParam();
+                OffsetParam offsetParam = new OffsetParam();
+                baseParam.setCode(item.getCode());
+                baseParam.setIndex(item.getCode());
+                baseParam.setName(item.getName());
+                baseParam.setAb(item.getName());
+                baseParam.setTyp(item.getCategory());
+                waterParam.setDelay(Double.valueOf(item.getDelay()));
+                waterParam.setMoisture3(item.getTarget());
+                waterParam.setWeight1(Double.valueOf(item.getFeed()));
+                waterParam.setTimes(item.getEt());
+                waterParam.setTemp1(item.getWindTemp());
+                waterParam.setTemp2(item.getEnvTemp());
+                waterParam.setTemp3(item.getEnvHum());
+                waterParam.setTurntime(item.getTurn());
+                typeParam.setMtype(Integer.valueOf(item.getCategory()));
+                offsetParam.setMoisoffset(item.getMoisOffset());
+                offsetParam.setColdwind(Double.valueOf(item.getCoolingDuration()));
+
+                formula.setBaseParam(baseParam);
+                formula.setWaterParam(waterParam);
+                formula.setTypeParam(typeParam);
+                formula.setOffsetParam(offsetParam);
+                formulas.getDryFormulaList().add(formula);
+            });
+            // 鎶妚os杞崲鎴恱ml
+        // 鍒涘缓JAXBContext瀹炰緥
+        JAXBContext jaxbContext = JAXBContext.newInstance(Formulas.class);
+
+        // 鍒涘缓Marshaller瀹炰緥
+        Marshaller marshaller = jaxbContext.createMarshaller();
+
+        // 璁剧疆鏄惁鏍煎紡鍖栬緭鍑�
+        marshaller.setProperty(Marshaller.JAXB_FORMATTED_OUTPUT, false);
+
+        // 灏嗗璞″簭鍒楀寲鍒板瓧绗︿覆
+        StringWriter writer = new StringWriter();
+        marshaller.marshal(formulas, writer);
+
+            return Result.OK("璇锋眰鎴愬姛",writer.toString());
+
+
+    }
+
+    @ApiOperation(value="骞茬嚗閰嶆柟涓婃姤", notes="骞茬嚗閰嶆柟璁板綍涓婃姤")
+    @PostMapping(value = "/sendFormulaHistory")
+    public Result<?> sendFormulaHistory(DryHerbFormulaHisVo hisVo) {
+        //鑾峰彇request
+        HttpServletRequest request = SpringContextUtils.getHttpServletRequest();
+        // 鑾峰彇璇锋眰涓绘満鐨処P鍦板潃
+        String ip = IpUtils.getIpAddr(request);
+        DryHerbFormulaHis his = new DryHerbFormulaHis();
+        BeanUtil.copyProperties(hisVo, his);
+        his.setFormulaIndex(hisVo.getIndex());
+        DryEquipment dryEquipment = dryEquipmentService.selectByTenantIdEquipmentId(hisVo.getTenantId() + "", hisVo.getEqp());
+        if (dryEquipment != null) {
+            if (dryEquipment.getIp().equals(ip)) {
+                his.setEqpId(dryEquipment.getId());
+            } else {
+                return Result.error("璁惧IP鍦板潃鏈厤缃細" + ip);
+            }
+
+        } else {
+            return Result.error("璁惧涓嶅瓨鍦�");
+        }
+        dryHerbFormulaHisService.save(his);
+        return Result.OK("淇濆瓨鎴愬姛");
+    }
 
 }

--
Gitblit v1.9.3