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