Pārlūkot izejas kodu

修改水量计算

zhuoning 2 gadi atpakaļ
vecāks
revīzija
da90efe648

+ 2 - 1
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/entity/EnvWaterMeter.java

@@ -26,7 +26,8 @@ public class EnvWaterMeter implements Serializable {
     private static final long serialVersionUID = 1L;
 
     @Id
-    @GeneratedValue(strategy = GenerationType.AUTO)
+//    @GeneratedValue(strategy = GenerationType.AUTO)
+    @GeneratedValue(strategy = GenerationType.IDENTITY)
     @Column(name = "id", nullable = false)
     private Integer id;
 

+ 5 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/dao/repo/EnvWaterMeterRepo.java

@@ -6,9 +6,14 @@ import org.springframework.data.jpa.repository.JpaRepository;
 import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
 import org.springframework.data.jpa.repository.Query;
 
+import java.sql.Date;
+import java.util.List;
+
 public interface EnvWaterMeterRepo extends JpaRepository<EnvWaterMeter, Integer>, JpaSpecificationExecutor<EnvWaterMeter> {
 
     @Query(nativeQuery = true,value = "SELECT *  FROM env_water_meter WHERE device_code=?1  ORDER BY id DESC LIMIT 1")
     EnvWaterMeter getOneByMaxId(String deviceCode);
 
+    @Query(nativeQuery = true,value = "SELECT SUM(water_meter) total FROM `env_water_meter` WHERE farm_code=?1 AND device_code=?2 AND add_date=?3 ORDER BY add_time DESC")
+    List<Object[]> getSumWaterMeter(String farmCode, String deviceCode, Date todayDate);
 }

+ 10 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/mapper/EnvWaterDayMapper.java

@@ -1,7 +1,14 @@
 package com.huimv.env.common.mapper;
 
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.toolkit.Constants;
 import com.huimv.env.common.entity.EnvWaterDay;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.huimv.env.common.entity.EnvWaterMonth;
+import org.apache.ibatis.annotations.Param;
+
+import java.sql.Date;
+import java.util.Map;
 
 /**
  * <p>
@@ -13,4 +20,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface EnvWaterDayMapper extends BaseMapper<EnvWaterDay> {
 
+    Map<String, String> getSumDayWaterMeter(@Param(Constants.WRAPPER) QueryWrapper<EnvWaterMonth> queryWrapper);
+
+    Map<String, String> sumDayWaterMeter(@Param("farmCode") String farmCode, @Param("deviceCode") String deviceCode,@Param("startDate") Date startDate,@Param("endDate") Date endDate);
 }

+ 6 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/mapper/xml/EnvWaterDayMapper.xml

@@ -24,4 +24,10 @@
         id, device_code, sensor_sn, day_water, add_date, pigpen_id, unit_id, farm_code, data_unit, start_warter, end_warter, start_time, end_time
     </sql>
 
+    <select id="getSumDayWaterMeter" resultType="java.util.Map">
+	    SELECT SUM(day_water) AS total FROM `env_water_day` ${ew.customSqlSegment}
+    </select>
+    <select id="sumDayWaterMeter" resultType="java.util.Map">
+        SELECT SUM(day_water) AS total FROM `env_water_day` WHERE farm_code=${farmCode} AND device_code=${deviceCode} AND add_date BETWEEN ${startDate} AND ${endDate}
+    </select>
 </mapper>

+ 4 - 3
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/EnvWaterDayService.java

@@ -3,12 +3,12 @@ package com.huimv.env.common.service;
 import com.alibaba.fastjson.JSONObject;
 import com.huimv.common.utils.Result;
 import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
-import com.huimv.env.common.entity.EnvElectricityDay;
 import com.huimv.env.common.entity.EnvWaterDay;
 import com.baomidou.mybatisplus.extension.service.IService;
 import java.sql.Date;
 import java.sql.Timestamp;
 import java.text.ParseException;
+import java.util.List;
 import java.util.Map;
 
 /**
@@ -20,12 +20,11 @@ import java.util.Map;
  * @since 2022-10-20
  */
 public interface EnvWaterDayService extends IService<EnvWaterDay> {
-
 //    EnvWaterDay getDayElectricityConsumption(String farmCode, String deviceCode, String sensorSn, Date todayDate);
 
     void saveDayWater(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
 
-    void updateDayWater(EnvWaterDay envWaterDay, JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
+    void updateDayWater(float sumWaterMeter, EnvWaterDay envWaterDay, JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
 
     EnvWaterDay getDayWaterConsumption(String farmCode, String deviceCode, String sensorSn, Date todayDate);
 
@@ -33,6 +32,8 @@ public interface EnvWaterDayService extends IService<EnvWaterDay> {
 
     Result getWaterCount(Map<String, String> paramsMap) throws ParseException;
 
+    float getSumWaterMeter(String farmCode, String deviceCode, Date date, Date date1);
+
 //    void saveDayElectricity(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
 
 //    void updateDayElectricity(EnvElectricityDay envElectricityDay, JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);

+ 21 - 4
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/service/impl/EnvWaterDayServiceImpl.java

@@ -20,8 +20,6 @@ import java.math.BigDecimal;
 import java.sql.Date;
 import java.sql.Timestamp;
 import java.text.ParseException;
-import java.util.ArrayList;
-import java.util.List;
 import java.util.Map;
 
 /**
@@ -93,6 +91,22 @@ public class EnvWaterDayServiceImpl extends ServiceImpl<EnvWaterDayMapper, EnvWa
         return new Result(ResultCode.SUCCESS,resultJo);
     }
 
+    @Override
+    public float getSumWaterMeter(String farmCode, String deviceCode, Date startDate, Date endDate) {
+        DateUtil dateUtil = new DateUtil();
+        QueryWrapper<EnvWaterMonth> queryWrapper = new QueryWrapper();
+        queryWrapper.eq("farm_code", farmCode);
+        queryWrapper.eq("device_code",deviceCode);
+        queryWrapper.between("add_date",startDate,endDate);
+//        queryWrapper.orderByDesc("year").orderByDesc("month");
+//        queryWrapper.last("LIMIT 1");
+//        Map<String,String> sumMap = envWaterDayMapper.getSumDayWaterMeter(queryWrapper);
+//        Map<String,String> sumMap = envWaterDayMapper.sumDayWaterMeter(farmCode,deviceCode,startDate,endDate);
+//        System.out.println("sumMap 累加计算本月用水量 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>"+sumMap.toString());
+
+        return 0;
+    }
+
     //获取本月用水统计
     private EnvWaterMonth _getMonthWaterCount(Map<String, String> paramsMap) {
         String farmCode = paramsMap.get("farmCode");
@@ -145,11 +159,14 @@ public class EnvWaterDayServiceImpl extends ServiceImpl<EnvWaterDayMapper, EnvWa
     }
 
     @Override
-    public void updateDayWater(EnvWaterDay envWaterDay, JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+    public void updateDayWater(float sumWaterMeter, EnvWaterDay envWaterDay, JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
         BigDecimal endWaterBd = new BigDecimal(dataJo.getString("value"));
-        BigDecimal newDayWaterBd = (endWaterBd.subtract(envWaterDay.getStartWater())).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
+//        BigDecimal newDayWaterBd = (endWaterBd.subtract(envWaterDay.getStartWater())).divide(new BigDecimal("100"), 2, BigDecimal.ROUND_HALF_UP);
         String deviceCode = dataJo.getString("deviceCode");
         String sensorSn = dataJo.getString("sensorSn");
+        //计算累加结果
+        BigDecimal newDayWaterBd = new BigDecimal(sumWaterMeter);
+        System.out.println("newDayWaterBd 2 >>>>>>>>> "+newDayWaterBd.toString());
         //获取环比
         BigDecimal linkRelativeRatioBd = _getLinkRelativeRatio(newDayWaterBd, deviceCode,  sensorSn,  todayDate,  farmCode);
         envWaterDay.setEndTime(nowTimestamp);

+ 21 - 0
huimv-env-platform/huimv-env-common/src/main/java/com/huimv/env/common/utils/DateUtil.java

@@ -401,4 +401,25 @@ public class DateUtil {
         String newDatetimeText = format.format(datetime);
         return newDatetimeText;
     }
+
+    public Date getFirstDayInThisMonth() {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        //获取当前月第一天:
+        Calendar c = Calendar.getInstance();
+        c.add(Calendar.MONTH, 0);
+        c.set(Calendar.DAY_OF_MONTH,1);//设置为1号,当前日期既为本月第一天
+        String first = format.format(c.getTime());
+        System.out.println("===============first:"+first);
+        return c.getTime();
+    }
+
+    public Date getEndDayInThisMonth() {
+        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
+        //获取当前月最后一天
+        Calendar ca = Calendar.getInstance();
+        ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH));
+        String last = format.format(ca.getTime());
+        System.out.println("===============last:"+last);
+        return ca.getTime();
+    }
 }

+ 20 - 9
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/listener/DeviceListener.java

@@ -102,8 +102,8 @@ public class DeviceListener {
 
     @RabbitListener(queues = Const.QUEUE_WATER_METER)
     @RabbitHandler
-    public void processWaterMeterGege(Map RawMap)   {
-        System.out.println(">>>>>>>>>>>>>>接收水表数据 RawMap>>" + RawMap.toString());
+    public void processWaterMeterGege(Map RawMap) throws ParseException {
+        System.out.println("111111111111111111111111111111111111111111111111 接收水表数据 RawMap>>" + RawMap.toString());
         String askText = RawMap.get("askText").toString();
         JSONObject dataJo = deviceService.handleAskText(askText);
         dataJo.put("dataUnit", "");
@@ -117,21 +117,32 @@ public class DeviceListener {
             log.error("该设备[" + dataJo.getString("deviceCode") + "]未注册.");
             return;
         }
+        DateUtil dateUtil = new DateUtil();
+        int waterValue = dataJo.getInteger("value");
+        System.out.println(dateUtil.getTodayMissionText()+" 当前用水量数据 waterValue = "+waterValue);
+//        if(dataJo.getInteger("value") ==0 ){
+//            System.out.println(dateUtil.getTodayMissionText()+" return;");
+//            return;
+//        }
         String farmCode = envDeviceRegisterEntity.getFarmCode();
         String waterMeter =  new BigDecimal(mathUtil.countMeter(dataJo.getIntValue("value"))).setScale(1, RoundingMode.UP)+dataJo.getString("dataUnit");;
         int sensorSort = 1;
-        //更新传感器数据
-//        deviceService.updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, temp, farmCode,sensorSort);
-        deviceService.sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, waterMeter, farmCode,sensorSort);
-
+         //
+        System.out.println(dateUtil.getTodayMissionText()+" 开始保存水量流水数据 dataJo>> "+dataJo);
         //保存水表流水数据
         deviceService.saveWaterMeter(dataJo, envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
-
+        System.out.println(dateUtil.getTodayMissionText()+" 开始保存每天用水量");
         //保存每天用水量数据
         deviceService.saveDayWaterConsumption(dataJo,envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
-
         //保存每月用水量数据
-        deviceService.saveMonthWaterConsumption(dataJo,envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
+//        deviceService.saveMonthWaterConsumption(dataJo,envDeviceRegisterEntity, nowTimestamp, todayDate, farmCode);
+
+        //更新传感器数据
+////        deviceService.updateSensorRegister(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, temp, farmCode,sensorSort);
+//        System.out.println("开始发送消息给传感器队列");
+//        deviceService.sendSensorToMQ(deviceCode, dataJo.getInteger("sensorSn"), nowTimestamp, todayDate, waterMeter, farmCode,sensorSort);
+//        System.out.println("结束发送消息给传感器队列");
+
     }
     
     @RabbitListener(queues = Const.QUEUE_PH)

+ 2 - 1
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/IDeviceService.java

@@ -5,6 +5,7 @@ import com.huimv.env.common.dao.entity.EnvDeviceRegisterEntity;
 
 import java.sql.Date;
 import java.sql.Timestamp;
+import java.text.ParseException;
 
 public interface IDeviceService {
     void sendSensorToMQ(String deviceCode, Integer sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort);
@@ -39,7 +40,7 @@ public interface IDeviceService {
 //
     void saveMonthElectricityConsumption(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
 
-    void saveDayWaterConsumption(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
+    void saveDayWaterConsumption(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) throws ParseException;
 
     void saveMonthWaterConsumption(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode);
 }

+ 42 - 19
huimv-env-platform/huimv-env-device/src/main/java/com/huimv/env/device/service/impl/DeviceServiceImpl.java

@@ -23,6 +23,8 @@ import javax.annotation.Resource;
 import java.math.BigDecimal;
 import java.sql.Date;
 import java.sql.Timestamp;
+import java.text.ParseException;
+import java.util.List;
 
 /**
  * @Project : huimv.shiwan
@@ -53,16 +55,12 @@ public class DeviceServiceImpl implements IDeviceService {
     private ConfigBean configBean;
     @Autowired
     private IPigpenService pigpenService;
-
     @Autowired
     private EnvWaterGegeEntityRepo envWaterGegeEntityRepo;
-
     @Autowired
     private EnvPhEntityRepo envPhEntityRepo;
-
     @Autowired
     private EnvWaterMeterRepo envWaterMeterRepo;
-
     @Autowired
     private EnvElectricityMeterRepo envElectricityMeterRepo;
     @Resource
@@ -76,8 +74,9 @@ public class DeviceServiceImpl implements IDeviceService {
 
     //保存每天的用水量
     @Override
-    public void saveDayWaterConsumption(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
+    public void saveDayWaterConsumption(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) throws ParseException {
         System.out.println("保存每天用电数据 dataJo>>>>>>>>>>>>>>>>>>"+dataJo);
+        DateUtil dateUtil = new DateUtil();
         String deviceCode = dataJo.getString("deviceCode");
         String sensorSn = dataJo.getString("sensorSn");
         //查询每天的用水量数据
@@ -85,10 +84,27 @@ public class DeviceServiceImpl implements IDeviceService {
         if(envWaterDay == null){
             envWaterDayService.saveDayWater(dataJo,envDeviceRegisterEntity,nowTimestamp,todayDate,farmCode);
         }else{
-            envWaterDayService.updateDayWater(envWaterDay,dataJo,envDeviceRegisterEntity,nowTimestamp,todayDate,farmCode);
+            System.out.println(dateUtil.getTodayMissionText()+"+ 计算当天的总用水量 farmCode >>"+farmCode);
+            System.out.println(dateUtil.getTodayMissionText()+"+ 计算当天的总用水量 deviceCode >>"+deviceCode);
+            System.out.println(dateUtil.getTodayMissionText()+"+ 计算当天的总用水量 todayDate >>"+todayDate);
+            //读取当天的累加次数
+            float sumWaterMeter = getSumTodayWaterMeter(farmCode,deviceCode,todayDate);
+            System.out.println(dateUtil.getTodayMissionText()+" sumWaterMeter 每天的用水量累加 >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> "+sumWaterMeter);
+            if(sumWaterMeter != 0.0){
+                envWaterDayService.updateDayWater(sumWaterMeter,envWaterDay,dataJo,envDeviceRegisterEntity,nowTimestamp,todayDate,farmCode);
+            }else{
+                System.out.println("sumWaterMeter==0,不用更新");
+            }
         }
     }
 
+    //获取累加结果
+    private float getSumTodayWaterMeter(String farmCode,String deviceCode, Date todayDate) {
+        List<Object[]> sumList =  envWaterMeterRepo.getSumWaterMeter(farmCode,deviceCode,todayDate);
+        Object[] sumObj = (Object[]) sumList.get(0);
+        return Float.parseFloat(sumObj[0].toString());
+    }
+
     //保存每月的用水量
     @Override
     public void saveMonthWaterConsumption(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
@@ -103,10 +119,20 @@ public class DeviceServiceImpl implements IDeviceService {
         if(envWaterMonth == null){
             envWaterMonthService.saveMonthWater(dataJo,envDeviceRegisterEntity,nowTimestamp,year,month,farmCode);
         }else{
+            //计算本月的每天用水量累加
+            float sumWaterMeter = sumDayWaterMeterForMonth(farmCode,deviceCode,todayDate);
             envWaterMonthService.updateMonthWater(envWaterMonth,dataJo,nowTimestamp,year,month,farmCode);
         }
     }
 
+    //累加计算本月水量
+    private float sumDayWaterMeterForMonth(String farmCode,String deviceCode, Date todayDate) {
+        DateUtil dateUtil = new DateUtil();
+        java.util.Date startDate = dateUtil.getFirstDayInThisMonth();
+        java.util.Date endDate = dateUtil.getEndDayInThisMonth();
+        return envWaterDayService.getSumWaterMeter(farmCode,deviceCode,new java.sql.Date(startDate.getTime()),new java.sql.Date(endDate.getTime()));
+    }
+
     //保存每天的用电量
     @Override
     public void saveDayElectricityConsumption(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
@@ -152,7 +178,6 @@ public class DeviceServiceImpl implements IDeviceService {
         producer.sendSensorAskToMQ(sensorJo);
     }
 
-
     //更新传感器数据
     private void updateSensorRegister(String deviceCode, int sensorSn, Timestamp nowTimestamp, Date todayDate, String value, String farmCode, int sensorSort) {
         if (sensorRegisterService.isExistSensorRegister(deviceCode, sensorSn, farmCode, sensorSort)) {
@@ -251,30 +276,26 @@ public class DeviceServiceImpl implements IDeviceService {
     //保存水表
     @Override
     public void saveWaterMeter(JSONObject dataJo, EnvDeviceRegisterEntity envDeviceRegisterEntity, Timestamp nowTimestamp, Date todayDate, String farmCode) {
-        int valueData = dataJo.getIntValue("value");
+        int newValueData = dataJo.getIntValue("value");
         String deviceCode = dataJo.getString("deviceCode");
         EnvWaterMeter envWaterMeterData = envWaterMeterRepo.getOneByMaxId(deviceCode);
-        Integer waterMeterData ;
+        Integer lastWaterMeterData ;
         Integer value = 0;
-
         if (envWaterMeterData ==null || envWaterMeterData.getWaterMeterData() ==null){
-            waterMeterData = 0;
+            lastWaterMeterData = 0;
         }else {
-            waterMeterData =envWaterMeterData.getWaterMeterData();
+            lastWaterMeterData = envWaterMeterData.getWaterMeterData();
         }
-
-        if (valueData >= waterMeterData){
-            value = valueData-waterMeterData;
+        if (newValueData >= lastWaterMeterData){
+            value = newValueData - lastWaterMeterData;
         }else {
-            value = valueData;
+            value = newValueData;
         }
-
-
         EnvWaterMeter envWaterMeter = new EnvWaterMeter();
         envWaterMeter.setDeviceCode(deviceCode);
         envWaterMeter.setSensorSn(dataJo.getInteger("sensorSn"));
         envWaterMeter.setWaterMeter(new BigDecimal(mathUtil.countMeter(value)));
-        envWaterMeter.setWaterMeterData(valueData);
+        envWaterMeter.setWaterMeterData(newValueData);
         envWaterMeter.setAskTime(dateUtil.handleAskTime(dataJo.getString("askTime")));
         envWaterMeter.setAddTime(nowTimestamp);
         envWaterMeter.setAddDate(todayDate);
@@ -282,6 +303,8 @@ public class DeviceServiceImpl implements IDeviceService {
         envWaterMeter.setPigpenId(envDeviceRegisterEntity.getPigpenId());
         envWaterMeter.setUnitId(envDeviceRegisterEntity.getUnitId());
         envWaterMeter.setDataUnit(dataJo.getString("dataUnit"));
+        System.out.println("已经保存水量流水数据 >>");
+        System.out.println("envWaterMeter >> "+envWaterMeter.toString());
         envWaterMeterRepo.saveAndFlush(envWaterMeter);
     }
 

+ 0 - 1
huimv-env-platform/huimv-env-input/src/main/java/com/huimv/env/input/server/EnvInputServerHandler.java

@@ -203,7 +203,6 @@ public class EnvInputServerHandler extends ChannelInboundHandlerAdapter {
                 //上报设备状态
                 getSparyStatus(askText, idCode, ctx);
                 break;
-
             case "14":
                 //获取报警使能
                 getAlarmConfig(askText, idCode, ctx);

+ 1 - 1
huimv-env-platform/huimv-env-produce/src/main/resources/application-qingshan_1.yml

@@ -5,7 +5,7 @@ spring:
     name: huimv-env-produce
 
   datasource:
-    url: jdbc:mysql://192.168.1.112:3306/huimv-produce-platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
+    url: jdbc:mysql://localhost:3306/huimv-produce-platform?useUnicode=true&characterEncoding=UTF-8&useSSL=false&autoReconnect=true&serverTimezone=Asia/Shanghai
     username: qingshan
     password: qingshan@2022
     driver-class-name: com.mysql.cj.jdbc.Driver