CZT
2023-08-14 e7db6d5fe551a275ad5457cf9da8e52ee385296f
优化4.0版本-监控点位同步更新
已添加5个文件
已修改2个文件
377 ■■■■■ 文件已修改
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService11.java 55 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/entity/Fz40SecCamera.java 113 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1111.java 114 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1111Rep.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/resources/application.yml 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService11.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,55 @@
package com.fzzy.async.fzzy40;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.SyncProtocol;
import com.fzzy.api.service.SyncService11;
import com.fzzy.async.fzzy40.impl.Fzzy40Sync1111;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
/**
 * @Desc: åŸºç¡€ä¿¡æ¯åŒæ­¥
 *
 * @author: czt
 * @update-time: 2023/08/14
 *
 */
@Slf4j
@Component
public class Fzzy40SyncService11 implements SyncService11 {
    @Autowired
    private Fzzy40Sync1111 fzzy40Sync1111;
    @Override
    public String getProtocol() {
        return SyncProtocol.FZZY_V35_GB.getCode();
    }
    @Override
    public void syncData(ApiParam param) {
        log.info("--------------基础数据手动配置推送--------");
        String kqdm = param.getKqdm();
        String deptId = param.getDeptId();
        Date start = param.getStart();
        Date end = param.getEnd();
        //文件信息同步,转移到12大类中,主要是出入库追溯照片
        //监控点位信息同步
        fzzy40Sync1111.syncData(kqdm, deptId, start, end);
        //药剂信息同步  TODO
        //设备信息同步  TODO
        //人员信息同步  TODO
        //企业信用信息同步--暂不执行
    }
}
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService12.java
@@ -43,15 +43,38 @@
        //客户同步
        fzzySync1212.syncData(kqdm, deptId, start, end);
        //合同同步
        fzzySync1201.syncData(kqdm, deptId, start, end);
        //粮食入库同步
        fzzySync1202.syncData(kqdm, deptId, start, end);
        //粮食入库质检  TODO
        //粮食入库结算  TODO
        //粮食出库同步
        fzzySync1205.syncData(kqdm, deptId, start, end);
        //粮食出库结算   TODO
        //粮食损益  TODO
        //倒仓信息同步  TODO
        //出入库文件信息同步  TODO
        //粮食库存同步  TODO
        //粮食性质转变信息同步  TODO
        //账面库存信息同步  TODO
    }
}
src/main/java/com/fzzy/async/fzzy40/Fzzy40SyncService13.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
package com.fzzy.async.fzzy40;
import com.fzzy.api.data.ApiParam;
import com.fzzy.api.data.SyncProtocol;
import com.fzzy.api.service.SyncService13;
import org.springframework.stereotype.Component;
/**
 * @Desc: ç²®é£Ÿç®¡ç†ä¿¡æ¯åŒæ­¥
 *
 * @author: czt
 * @update-time: 2023/08/14
 *
 */
@Component
public class Fzzy40SyncService13 implements SyncService13 {
    @Override
    public String getProtocol() {
        return SyncProtocol.FZZY_V35_GB.getCode();
    }
    @Override
    public void syncData(ApiParam param) {
        //温湿度检测数据同步 TODO
        //虫害检测同步  TODO
        //气体检测同步  TODO
        //质检同步  TODO
        //通风作业信息同步  TODO
        //熏蒸作业信息同步  TODO
        //熏蒸备案数据同步   TODO--待定
    }
}
src/main/java/com/fzzy/async/fzzy40/entity/Fz40SecCamera.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,113 @@
package com.fzzy.async.fzzy40.entity;
import com.bstek.dorado.annotation.PropertyDef;
import lombok.Data;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.Id;
import javax.persistence.Table;
import java.io.Serializable;
import java.util.Date;
/**
 * å®‰é˜²è§†é¢‘监控设备
 *
 * @author: czt
 * @data: 2023å¹´8月14日
 */
@Data
@Entity
@Table(name = "D_SEC_CAMERA")
public class Fz40SecCamera implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Column(name = "ID_", length = 40)
    @PropertyDef(label = "ID")
    private String id;
    @Column(name = "SN_", length = 50)
    @PropertyDef(label = "设备序列号")
    private String sn;
    @Column(name = "COMPANY_ID_", length = 10)
    @PropertyDef(label = "组织编码")
    private String companyId;
    @Column(name = "DEPT_ID_", length = 40)
    @PropertyDef(label = "所属分库")
    private String deptId;
    @Column(name = "TYPE_", length = 10)
    @PropertyDef(label = "设备类型")
    private String type;
    @Column(name = "PLAY_TYPE_", length = 40)
    @PropertyDef(label = "播放方式")
    private String playType;
    @Column(name = "SNAP_TYPE_", length = 25)
    @PropertyDef(label = "抓拍方式")
    private String snapType;
    @Column(name = "NAME_", length = 50)
    @PropertyDef(label = "名称")
    private String name;
    @Column(name = "LOGIN_ID_", length = 20)
    @PropertyDef(label = "帐号")
    private String loginId;
    @Column(name = "PWD_", length = 20)
    @PropertyDef(label = "密码")
    private String pwd;
    @Column(name = "IP_IN_", length = 20)
    @PropertyDef(label = "内网IP")
    private String ipIn;
    @Column(name = "PORT_IN_C_")
    @PropertyDef(label = "内网控制端口")
    private Integer portInC;
    @Column(name = "PORT_IN_V_")
    @PropertyDef(label = "内网WEB端口")
    private Integer portInV;
    @Column(name = "CHAN_NUM_")
    @PropertyDef(label = "通道号")
    private int chanNum = 0;
    @Column(name = "BRAND_", length = 50)
    @PropertyDef(label = "设备品牌")
    private String brand;
    @Column(name = "MEDIA_ADDR_", length = 100)
    @PropertyDef(label = "流媒体地址")
    private String mediaAddr;
    @Column(name = "REMARK_", length = 300)
    @PropertyDef(label = "备注")
    private String remark;
    @PropertyDef(label = "页面中的坐标")
    @Column(name = "POS_X_",updatable = false)
    private double posX;
    @PropertyDef(label = "页面中的坐标")
    @Column(name = "POS_Y_",updatable = false)
    private double posY;
    @Column(name = "SCREEN_SHOW_", length = 1)
    @PropertyDef(label = "大屏显示标记")
    private String screenShow;
    @Column(name = "SNAP_TAG_", length = 1)
    @PropertyDef(label = "监管自动抓拍")
    private String snapTag;
    @Column(name = "UPDATE_TIME_")
    @PropertyDef(label = "更新时间")
    private Date updateTime;
}
src/main/java/com/fzzy/async/fzzy40/impl/Fzzy40Sync1111.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,114 @@
package com.fzzy.async.fzzy40.impl;
import com.fzzy.api.Constant;
import com.fzzy.api.entity.Api1101;
import com.fzzy.api.entity.Api1102;
import com.fzzy.api.entity.Api1111;
import com.fzzy.api.entity.ApiLog;
import com.fzzy.api.utils.ContextUtil;
import com.fzzy.api.view.repository.Api1101Rep;
import com.fzzy.api.view.repository.Api1102Rep;
import com.fzzy.api.view.repository.Api1111Rep;
import com.fzzy.api.view.repository.ApiLogRep;
import com.fzzy.async.fzzy40.entity.Fz40SecCamera;
import com.fzzy.async.fzzy40.repository.Fzzy40Sync1111Rep;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Component;
import java.util.Date;
import java.util.List;
/**
 * åº“区图视频监控设备点位标注
 */
@Slf4j
@Component
public class Fzzy40Sync1111 {
    @Autowired
    private Fzzy40Sync1111Rep fzzy40Sync1111Rep;
    @Autowired
    private Api1101Rep api1101Rep;
    @Autowired
    private Api1102Rep api1102Rep;
    @Autowired
    private Api1111Rep api1111Rep;
    @Autowired
    private ApiLogRep apiLogRep;
    /**
     * åŒæ­¥ç›‘控接口
     *
     * @param deptId
     * @param start
     * @param end
     */
    public void syncData(String kqdm, String deptId, Date start, Date end) {
        log.info("-------------1111接口监控点位数据开始同步------------------");
        //同步数据,只记录失败的信息
        ApiLog apiLog = new ApiLog();
        apiLog.setType(ApiLog.TYPE_SYNC);
        apiLog.setKqdm(deptId);
        apiLog.setUploadTime(new Date());
        apiLog.setInteId(Constant.API_CODE_1111);
        apiLog.setStatus(99);
        apiLog.setId(ContextUtil.getUUID());
        try {
            List<Fz40SecCamera> list = fzzy40Sync1111Rep.listCamera(deptId);
            if (null == list || list.isEmpty()) {
                log.info("-------------没有获取到监控信息------------------");
                return;
            }
            //根据库区代码获取单位代码
            Api1102 api1102 = api1102Rep.findById(kqdm).get();
            Api1101 api1101 = api1101Rep.findById(api1102.getDwdm()).get();
            Api1111 apiData;
            List<Api1111> listApi1111;
            Integer num = 1000001;
            String spjksbwzys = "left: {X}px ; top : {Y}px ; width : 10px ; height: 10px";
            for (Fz40SecCamera sysData : list) {
                apiData = new Api1111();
                apiData.setDwmc(api1101.getDwmc());
                apiData.setDwdm(api1101.getDwdm());
                apiData.setKqdm(api1102.getKqdm());
                apiData.setKqmc(api1102.getKqmc());
                apiData.setSpjksbmc(api1102.getKqmc() + "-" + sysData.getName());
                apiData.setSpjksbid(api1102.getKqdm().substring(2,8) + "00401327" + String.valueOf(num).substring(1));
                apiData.setSpjksbxdwz("(" + Math.round(sysData.getPosX()*100) + "," + Math.round(sysData.getPosY()*100) + ")");
                apiData.setSpjksbwzys(spjksbwzys.replace("{X}",Math.round(sysData.getPosX()*100) + "").replace("{Y}",Math.round(sysData.getPosY()*100) + ""));
                apiData.setBz(sysData.getRemark());
                //操作标志及最后更新时间
                apiData.setZhgxsj(new Date());
                //业务id、库区编码、同步时间
                apiData.setSyncTime(new Date());
                apiData.setCzbz(Constant.CZBZ_I);
                apiData.setSpjklx("1");
                listApi1111 = api1111Rep.getApi1111ById(apiData.getSpjksbid());
                if(null != listApi1111 && listApi1111.size() > 0){
                    apiData.setCzbz(listApi1111.get(0).getCzbz());
                    if(StringUtils.isNotEmpty(listApi1111.get(0).getSpjklx())){
                        apiData.setSpjklx(listApi1111.get(0).getSpjklx());
                    }
                }
                apiData.setBizId(sysData.getId());
                //保存数据
                api1111Rep.save(apiData);
                num ++;
                log.info("1111---同步数据:{}", apiData.toString());
            }
        } catch (Exception e) {
            log.error("---监控点位同步执行失败----{}", e.toString());
            apiLog.setResult("监控点位同步执行失败:" + e.getMessage());
            apiLogRep.save(apiLog);
        }
    }
}
src/main/java/com/fzzy/async/fzzy40/repository/Fzzy40Sync1111Rep.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.fzzy.async.fzzy40.repository;
import com.fzzy.async.fzzy40.entity.Fz40SecCamera;
import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.data.jpa.repository.Query;
import org.springframework.data.repository.query.Param;
import java.util.List;
/**
 * ç›‘控信息
 */
public interface Fzzy40Sync1111Rep extends JpaRepository<Fz40SecCamera, String> {
    /**
     * èŽ·å–æ‘„åƒå¤´ä¿¡æ¯
     *
     * @return
     */
//    @Query("from Fz40SecCamera where deptId=:deptId and updateTime >=:start and updateTime <:end order by updateTime ")
//    List<Fz40SecCamera> listCamera(@Param("deptId") String deptId, @Param("start") Date start, @Param("end") Date end);
    @Query("from Fz40SecCamera where deptId=:deptId order by ipIn")
    List<Fz40SecCamera> listCamera(@Param("deptId") String deptId);
}
src/main/resources/application.yml
@@ -1,7 +1,7 @@
##########################  Server   ##########################
spring:
  profiles:
    active: pro
    active: dev
  application:
    name: igds-api
  main: