Browse Source

阶段提交:iotm ,iots

yf_zn 1 year atrás
parent
commit
d8dbb2d03e

+ 63 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/pest/mapper/IotAidispestMapper.java

@@ -0,0 +1,63 @@
+package com.yunfeiyun.agmp.iotm.device.pest.mapper;
+
+import com.yunfeiyun.agmp.iot.common.domain.IotAidispest;
+
+import java.util.List;
+
+
+/**
+ * 病虫害信息Mapper接口
+ *
+ * @author 杨晓辉
+ * @date 2024-02-28
+ */
+public interface IotAidispestMapper
+{
+    /**
+     * 查询病虫害信息
+     *
+     * @param id 病虫害信息主键
+     * @return 病虫害信息
+     */
+    public IotAidispest selectIotAidispestById(Long id);
+
+    /**
+     * 查询病虫害信息列表
+     *
+     * @param iotAidispest 病虫害信息
+     * @return 病虫害信息集合
+     */
+    public List<IotAidispest> selectIotAidispestList(IotAidispest iotAidispest);
+
+    /**
+     * 新增病虫害信息
+     *
+     * @param iotAidispest 病虫害信息
+     * @return 结果
+     */
+    public int insertIotAidispest(IotAidispest iotAidispest);
+
+    /**
+     * 修改病虫害信息
+     *
+     * @param iotAidispest 病虫害信息
+     * @return 结果
+     */
+    public int updateIotAidispest(IotAidispest iotAidispest);
+
+    /**
+     * 删除病虫害信息
+     *
+     * @param id 病虫害信息主键
+     * @return 结果
+     */
+    public int deleteIotAidispestById(Long id);
+
+    /**
+     * 批量删除病虫害信息
+     *
+     * @param ids 需要删除的数据主键集合
+     * @return 结果
+     */
+    public int deleteIotAidispestByIds(Long[] ids);
+}

+ 134 - 0
src/main/java/com/yunfeiyun/agmp/iotm/device/pest/service/impl/IotAidispestServiceImpl.java

@@ -0,0 +1,134 @@
+package com.yunfeiyun.agmp.iotm.device.pest.service.impl;
+
+import com.alibaba.fastjson2.JSONArray;
+import com.alibaba.fastjson2.JSONObject;
+import com.yunfeiyun.agmp.iot.common.domain.IotAidispest;
+import com.yunfeiyun.agmp.iot.common.service.AiBchService;
+import com.yunfeiyun.agmp.iotm.device.pest.mapper.IotAidispestMapper;
+import com.yunfeiyun.agmp.iotm.device.pest.service.IIotAidispestService;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+
+/**
+ * 病虫害信息Service业务层处理
+ *
+ * @author 杨晓辉
+ * @date 2024-02-28
+ */
+@Service
+public class IotAidispestServiceImpl implements IIotAidispestService
+{
+    @Autowired
+    private IotAidispestMapper iotAidispestMapper;
+    @Autowired
+    private AiBchService aiBchService;
+
+    /**
+     * 查询病虫害信息
+     *
+     * @param id 病虫害信息主键
+     * @return 病虫害信息
+     */
+    @Override
+    public IotAidispest selectIotAidispestById(Long id)
+    {
+        return iotAidispestMapper.selectIotAidispestById(id);
+    }
+
+    /**
+     * 查询病虫害信息列表
+     *
+     * @param iotAidispest 病虫害信息
+     * @return 病虫害信息
+     */
+    @Override
+    public List<IotAidispest> selectIotAidispestList(IotAidispest iotAidispest)
+    {
+        return iotAidispestMapper.selectIotAidispestList(iotAidispest);
+    }
+
+    /**
+     * 新增病虫害信息
+     *
+     * @param iotAidispest 病虫害信息
+     * @return 结果
+     */
+    @Override
+    public int insertIotAidispest(IotAidispest iotAidispest)
+    {
+        return iotAidispestMapper.insertIotAidispest(iotAidispest);
+    }
+
+    /**
+     * 修改病虫害信息
+     *
+     * @param iotAidispest 病虫害信息
+     * @return 结果
+     */
+    @Override
+    public int updateIotAidispest(IotAidispest iotAidispest)
+    {
+        return iotAidispestMapper.updateIotAidispest(iotAidispest);
+    }
+
+    /**
+     * 批量删除病虫害信息
+     *
+     * @param ids 需要删除的病虫害信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteIotAidispestByIds(Long[] ids)
+    {
+        return iotAidispestMapper.deleteIotAidispestByIds(ids);
+    }
+
+    /**
+     * 删除病虫害信息信息
+     *
+     * @param id 病虫害信息主键
+     * @return 结果
+     */
+    @Override
+    public int deleteIotAidispestById(Long id)
+    {
+        return iotAidispestMapper.deleteIotAidispestById(id);
+    }
+
+    /**
+     * 获得防治措施(先查库,未查到再查第三方)
+     *
+     * @param name
+     * @return
+     * @throws Exception
+     */
+    public JSONArray getPreventiveMeasuresInfo(String name) throws Exception {
+        IotAidispest iotAidispest = new IotAidispest();
+        iotAidispest.setAidispestName(name);
+        List<IotAidispest> iotAidispests = iotAidispestMapper.selectIotAidispestList(iotAidispest);
+        if (iotAidispests.size() > 0) {
+            JSONArray msg = new JSONArray();
+            msg.add(JSONObject.parseObject(iotAidispests.get(0).getAidispestData()));
+            return msg;
+        }
+
+        String data = aiBchService.getPreventiveMeasures(name);
+        if (!data.contains("未收录病虫害")) {
+            JSONObject result = JSONObject.parseObject(data);
+            JSONArray msg = result.getJSONArray("msg");
+            for (Object o : msg) {
+                JSONObject obj = JSONObject.from(o);
+                iotAidispest.setAidispestBid(iotAidispest.getUUId());
+                iotAidispest.setAidispestData(JSONObject.toJSONString(o));
+                iotAidispestMapper.insertIotAidispest(iotAidispest);
+            }
+
+            return msg;
+        } else {
+            return new JSONArray();
+        }
+    }
+}

+ 71 - 0
src/main/resources/mapper/IotAidispestMapper.xml

@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper
+PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
+"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.yunfeiyun.agmp.iotm.device.pest.mapper.IotAidispestMapper">
+
+    <resultMap type="IotAidispest" id="IotAidispestResult">
+        <result property="id"    column="id"    />
+        <result property="aidispestBid"    column="aidispestBid"    />
+        <result property="tid"    column="tid"    />
+        <result property="aidispestName"    column="aidispestName"    />
+        <result property="aidispestData"    column="aidispestData"    />
+    </resultMap>
+
+    <sql id="selectIotAidispestVo">
+        select id, aidispestBid, tid, aidispestName, aidispestData from IotAidispest
+    </sql>
+
+    <select id="selectIotAidispestList" parameterType="IotAidispest" resultMap="IotAidispestResult">
+        <include refid="selectIotAidispestVo"/>
+        <where>
+            <if test="aidispestBid != null  and aidispestBid != ''"> and aidispestBid = #{aidispestBid}</if>
+            <if test="tid != null  and tid != ''"> and tid = #{tid}</if>
+            <if test="aidispestName != null  and aidispestName != ''"> and aidispestName like concat('%', #{aidispestName}, '%')</if>
+            <if test="aidispestData != null  and aidispestData != ''"> and aidispestData = #{aidispestData}</if>
+        </where>
+    </select>
+
+    <select id="selectIotAidispestById" parameterType="Long" resultMap="IotAidispestResult">
+        <include refid="selectIotAidispestVo"/>
+        where id = #{id}
+    </select>
+
+    <insert id="insertIotAidispest" parameterType="IotAidispest" useGeneratedKeys="true" keyProperty="id">
+        insert into IotAidispest
+        <trim prefix="(" suffix=")" suffixOverrides=",">
+            <if test="aidispestBid != null and aidispestBid != ''">aidispestBid,</if>
+            <if test="tid != null">tid,</if>
+            <if test="aidispestName != null">aidispestName,</if>
+            <if test="aidispestData != null">aidispestData,</if>
+         </trim>
+        <trim prefix="values (" suffix=")" suffixOverrides=",">
+            <if test="aidispestBid != null and aidispestBid != ''">#{aidispestBid},</if>
+            <if test="tid != null">#{tid},</if>
+            <if test="aidispestName != null">#{aidispestName},</if>
+            <if test="aidispestData != null">#{aidispestData},</if>
+         </trim>
+    </insert>
+
+    <update id="updateIotAidispest" parameterType="IotAidispest">
+        update IotAidispest
+        <trim prefix="SET" suffixOverrides=",">
+            <if test="aidispestBid != null and aidispestBid != ''">aidispestBid = #{aidispestBid},</if>
+            <if test="tid != null">tid = #{tid},</if>
+            <if test="aidispestName != null">aidispestName = #{aidispestName},</if>
+            <if test="aidispestData != null">aidispestData = #{aidispestData},</if>
+        </trim>
+        where id = #{id}
+    </update>
+
+    <delete id="deleteIotAidispestById" parameterType="Long">
+        delete from IotAidispest where id = #{id}
+    </delete>
+
+    <delete id="deleteIotAidispestByIds" parameterType="String">
+        delete from IotAidispest where id in
+        <foreach item="id" collection="array" open="(" separator="," close=")">
+            #{id}
+        </foreach>
+    </delete>
+</mapper>