从业人员,接警信息的调整

develop
hanrenchun 1 year ago
parent 1f32b259bc
commit d7260291fb

@ -4,9 +4,13 @@ sydzSwitch=false
oncesCounts=10000 oncesCounts=10000
syfwSwitch=false syfwSwitch=false
syrkSwitch=true syrkSwitch=false
jksbSwitch=false jksbSwitch=false
cjxxSwitch=false
cjxxSwitch=true
zdrySwitch=false
cyrySwitch=false

@ -85,8 +85,8 @@ public class JcjCjxxViewOracle implements Serializable {
private String ZBLDDW; private String ZBLDDW;
private String ZBLDDWMC; private String ZBLDDWMC;
private String SPXGSJ; private String SPXGSJ;
private String YZB; private byte[] YZB;
private String XZB; private byte[] XZB;
private String BZSJ; private String BZSJ;
private String BZDW; private String BZDW;
private String BZR; private String BZR;

@ -0,0 +1,30 @@
package com.ssf.mysqloracletest.domain;
import lombok.Data;
import java.io.Serializable;
/**
* @TableName v_sy_sydw_cyry
*/
@Data
public class VSySydwCyryMysql implements Serializable {
/**
*
*/
private String ID;
private String DWID;
private String GJ;
private String ZJLX;
private String ZJHM;
private String XM;
private String XB;
private String MZ;
private String LXDH;
private String ZT;
private String RYFL;
private String YSBZK_RKSJ;
private String YSBZK_GXSJ;
private String DWMC;
}

@ -0,0 +1,32 @@
package com.ssf.mysqloracletest.domain;
import lombok.Data;
import java.io.Serializable;
/**
*
* @TableName v_sy_sydw_cyry
*/
@Data
public class VSySydwCyryOracle implements Serializable {
/**
*
*/
private String ID;
private String DWID;
private String GJ;
private String ZJLX;
private String ZJHM;
private String XM;
private String XB;
private String MZ;
private String LXDH;
private String ZT;
private String RYFL;
private String YSBZK_RKSJ;
private String YSBZK_GXSJ;
private String DWMC;
}

@ -0,0 +1,25 @@
package com.ssf.mysqloracletest.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ssf.mysqloracletest.domain.VSySydwCyryMysql;
import org.apache.ibatis.annotations.Mapper;
/**
* @author 28758
* @description v_sy_sydw_cyryMapper
* @createDate 2023-11-29 20:30:59
* @Entity com.ssf.mysqloracletest.domain.VSySydwCyry
*/
@Mapper
public interface VSySydwCyryMysqlMapper extends BaseMapper<VSySydwCyryMysql> {
public VSySydwCyryMysql selectVSyCyryById(String id);
public int insertVSySyrk(VSySydwCyryMysql bean);
public int updateVSyCyryById(VSySydwCyryMysql bean);
}

@ -0,0 +1,27 @@
package com.ssf.mysqloracletest.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ssf.mysqloracletest.domain.VSySydwCyryMysql;
import com.ssf.mysqloracletest.domain.VSySydwCyryOracle;
import com.ssf.mysqloracletest.domain.ZhxfZdrygkRyjbxxViewOracle;
import org.apache.ibatis.annotations.Mapper;
import java.util.List;
import java.util.Map;
/**
* @author 28758
* @description v_sy_sydw_cyryMapper
* @createDate 2023-11-29 20:30:59
* @Entity com.ssf.mysqloracletest.domain.VSySydwCyry
*/
@Mapper
public interface VSySydwCyryOracleMapper extends BaseMapper<VSySydwCyryOracle> {
public int countCyry();
public List<VSySydwCyryOracle> getCyryList(Map map);
}

@ -0,0 +1,18 @@
package com.ssf.mysqloracletest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ssf.mysqloracletest.domain.VSySydwCyryMysql;
import com.ssf.mysqloracletest.domain.ZhxfZdrygkRyjbxxViewMysql;
/**
* @author 28758
* @description v_sy_sydw_cyryService
* @createDate 2023-11-29 20:30:59
*/
public interface VSySydwCyryMysqlService extends IService<VSySydwCyryMysql> {
public VSySydwCyryMysql selectCyryById(String id);
public int insertCyry(VSySydwCyryMysql syrk);
public int updateCyryById(VSySydwCyryMysql syrk);
}

@ -0,0 +1,19 @@
package com.ssf.mysqloracletest.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ssf.mysqloracletest.domain.VSySydwCyryMysql;
import com.ssf.mysqloracletest.domain.VSySydwCyryOracle;
import java.util.List;
import java.util.Map;
/**
* @author 28758
* @description v_sy_sydw_cyryService
* @createDate 2023-11-29 20:30:59
*/
public interface VSySydwCyryOracleService extends IService<VSySydwCyryOracle> {
public int countCyry();
public List<VSySydwCyryOracle> getCyryList(Map map);
}

@ -0,0 +1,41 @@
package com.ssf.mysqloracletest.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ssf.mysqloracletest.domain.VSySydwCyryMysql;
import com.ssf.mysqloracletest.domain.VSySydwCyryMysql;
import com.ssf.mysqloracletest.mapper.VSySydwCyryMysqlMapper;
import com.ssf.mysqloracletest.mapper.VSySydwCyryMysqlMapper;
import com.ssf.mysqloracletest.service.VSySydwCyryMysqlService;
import lombok.RequiredArgsConstructor;
import org.springframework.stereotype.Service;
/**
* @author 28758
* @description v_sy_sydw_cyryService
* @createDate 2023-11-29 20:30:59
*/
@Service
@DS("mysql")
@RequiredArgsConstructor
public class VSySydwCyryMysqlServiceImpl extends ServiceImpl<VSySydwCyryMysqlMapper, VSySydwCyryMysql>
implements VSySydwCyryMysqlService {
private final VSySydwCyryMysqlMapper vSySydwCyryMysqlMapper;
public VSySydwCyryMysql selectCyryById(String id) {
return vSySydwCyryMysqlMapper.selectVSyCyryById(id);
}
public int insertCyry(VSySydwCyryMysql syrk) {
return vSySydwCyryMysqlMapper.insertVSySyrk(syrk);
}
public int updateCyryById(VSySydwCyryMysql syrk) {
return vSySydwCyryMysqlMapper.updateVSyCyryById(syrk);
}
}

@ -0,0 +1,43 @@
package com.ssf.mysqloracletest.service.impl;
import com.baomidou.dynamic.datasource.annotation.DS;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ssf.mysqloracletest.domain.VSySydwCyryMysql;
import com.ssf.mysqloracletest.domain.VSySydwCyryOracle;
import com.ssf.mysqloracletest.mapper.VSySydwCyryMysqlMapper;
import com.ssf.mysqloracletest.mapper.VSySydwCyryOracleMapper;
import com.ssf.mysqloracletest.service.VSySydwCyryMysqlService;
import com.ssf.mysqloracletest.service.VSySydwCyryOracleService;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
/**
* @author 28758
* @description v_sy_sydw_cyryService
* @createDate 2023-11-29 20:30:59
*/
@Service
@DS("oracleSydz")
public class VSySydwCyryOracleServiceImpl extends ServiceImpl<VSySydwCyryOracleMapper, VSySydwCyryOracle>
implements VSySydwCyryOracleService {
@Resource
private VSySydwCyryOracleMapper oracleMapper;
@Override
public int countCyry() {
return oracleMapper.countCyry();
}
@Override
public List<VSySydwCyryOracle> getCyryList(Map map) {
return oracleMapper.getCyryList(map);
}
}

@ -0,0 +1,114 @@
package com.ssf.mysqloracletest.task;
import com.ssf.mysqloracletest.domain.VSySydwCyryMysql;
import com.ssf.mysqloracletest.domain.VSySydwCyryOracle;
import com.ssf.mysqloracletest.service.VSySydwCyryMysqlService;
import com.ssf.mysqloracletest.service.VSySydwCyryOracleService;
import com.ssf.mysqloracletest.utils.ConfigParam;
import com.ssf.mysqloracletest.utils.NumKit;
import com.ssf.mysqloracletest.utils.StringKit;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.BeanUtils;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
/**
*
*/
@Component
public class CyryTask {
private static final Logger logger = LoggerFactory.getLogger(CyryTask.class);
@Resource
private VSySydwCyryMysqlService vSySydwCyryMysqlService;
@Resource
private VSySydwCyryOracleService vSySydwCyryOracleService;
final int oncesCounts = NumKit.checkInt(ConfigParam.oncesCounts) == 0 ? 1000 : NumKit.checkInt(ConfigParam.oncesCounts);
private boolean cyryTag = false;
/**
*
* //
*/
@Scheduled(initialDelay = 100, fixedDelay = 3000)
public void transcyry() {
if (cyryTag) {
return;
}
if (!"true".equals(ConfigParam.cyrySwitch)) {
return;
}
try {
int countcyry = vSySydwCyryOracleService.countCyry();
logger.info("countcyry:" + countcyry);
if (countcyry > 0) {
cyryTag = true;
int count = countcyry / oncesCounts;
CountDownLatch latch = new CountDownLatch(count);
ExecutorService cyryPool = Executors.newFixedThreadPool(50);
for (int i = 0; i <= count; i++) {
Map cyryMap = new HashMap();
cyryMap.put("rowStart", i * oncesCounts);
cyryMap.put("rowEnd", (i + 1) * oncesCounts);
cyryPool.submit(() -> {
try {
List<VSySydwCyryOracle> cyrys = vSySydwCyryOracleService.getCyryList(cyryMap);
for (VSySydwCyryOracle cyry : cyrys) {
VSySydwCyryMysql sBean = new VSySydwCyryMysql();
BeanUtils.copyProperties(cyry, sBean);
//确定一个数据是否唯一
VSySydwCyryMysql checkcyry = vSySydwCyryMysqlService.selectCyryById(cyry.getID());
if (checkcyry == null) {
vSySydwCyryMysqlService.insertCyry(sBean);
logger.info("cyry-" + cyry.getID() + ":插入成功");
} else {
vSySydwCyryMysqlService.updateCyryById(sBean);
logger.info("cyry-" + cyry.getID() + ":更新成功");
}
}
} catch (Exception e) {
logger.info("cyrys:" + e.getMessage());
}
latch.countDown();
});
logger.info("cyryMap数据总量:" + countcyry + "," + "当前处理下标:" + cyryMap.get("rowStart") + "/" + cyryMap.get("rowEnd"));
}
try {
// Wait for all threads to complete
latch.await();
} catch (InterruptedException e) {
e.printStackTrace();
}
// 关闭线程池
cyryPool.shutdown();
}
} catch (Exception e) {
logger.info(StringKit.getTrace(e));
}
}
}

@ -1,5 +1,6 @@
package com.ssf.mysqloracletest.task; package com.ssf.mysqloracletest.task;
import cn.hutool.core.io.FileUtil;
import com.ssf.mysqloracletest.domain.JcjCjxxViewMysql; import com.ssf.mysqloracletest.domain.JcjCjxxViewMysql;
import com.ssf.mysqloracletest.domain.JcjCjxxViewOracle; import com.ssf.mysqloracletest.domain.JcjCjxxViewOracle;
import com.ssf.mysqloracletest.service.JcjCjxxViewMysqlService; import com.ssf.mysqloracletest.service.JcjCjxxViewMysqlService;
@ -14,9 +15,9 @@ import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component; import org.springframework.stereotype.Component;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.util.HashMap; import java.io.File;
import java.util.List; import java.text.SimpleDateFormat;
import java.util.Map; import java.util.*;
import java.util.concurrent.CountDownLatch; import java.util.concurrent.CountDownLatch;
import java.util.concurrent.ExecutorService; import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors; import java.util.concurrent.Executors;
@ -77,8 +78,25 @@ public class JcjCjxxTask {
for (JcjCjxxViewOracle cjxx : cjxxs) { for (JcjCjxxViewOracle cjxx : cjxxs) {
JcjCjxxViewMysql sBean = new JcjCjxxViewMysql(); JcjCjxxViewMysql sBean = new JcjCjxxViewMysql();
BeanUtils.copyProperties(cjxx, sBean); BeanUtils.copyProperties(cjxx, sBean);
byte[] qrCode1 = cjxx.getXZB();
byte[] qrCode2 = cjxx.getYZB();
try {
String filePath = getFolderPath(ConfigParam.GyzhafPhotoPicPath) + cjxx.getCJBH() +"XZB"+ StringKit.toString(UUID.randomUUID()).replaceAll("-", "") + ".jpg";
File file = FileUtil.writeBytes(qrCode1, filePath);
logger.info(file.getPath() + ",生成成功");
String filePath1 = getFolderPath(ConfigParam.GyzhafPhotoPicPath) + cjxx.getCJBH() +"YZB"+ StringKit.toString(UUID.randomUUID()).replaceAll("-", "") + ".jpg";
File file1 = FileUtil.writeBytes(qrCode2, filePath1);
logger.info(file1.getPath() + ",生成成功");
sBean.setXZB(filePath);
sBean.setYZB(filePath1);
} catch (Exception e) {
logger.info(cjxx.getCJBH()+ ",文件生成失败");
}
//确定一个数据是否唯一 //确定一个数据是否唯一
JcjCjxxViewMysql checkcjxx = cjxxMysqlService.selectCjxxById(cjxx.getCJBH()); JcjCjxxViewMysql checkcjxx = cjxxMysqlService.selectCjxxById(cjxx.getCJBH());
if (checkcjxx == null) { if (checkcjxx == null) {
cjxxMysqlService.insertCjxx(sBean); cjxxMysqlService.insertCjxx(sBean);
logger.info("cjxx-" + cjxx.getCJBH() + ":插入成功"); logger.info("cjxx-" + cjxx.getCJBH() + ":插入成功");
@ -108,6 +126,21 @@ public class JcjCjxxTask {
} catch (Exception e) { } catch (Exception e) {
logger.info(StringKit.getTrace(e)); logger.info(StringKit.getTrace(e));
} }
}
private static String getFolderPath(String picpath) {
String floderPath;
Date date = new Date();
SimpleDateFormat simpleDate = new SimpleDateFormat("yyyyMMdd");
String day = simpleDate.format(date);
floderPath = picpath + ConfigParam.seq + "cjxx" + ConfigParam.seq + day + ConfigParam.seq;
File fileFloderPath = new File(floderPath);
//创建文件夹
if (!fileFloderPath.exists()) {
fileFloderPath.mkdirs();
}
return floderPath;
} }

@ -20,4 +20,6 @@ public class ConfigParam {
public static String zdrySwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("zdrySwitch")); public static String zdrySwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("zdrySwitch"));
public static String JjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("JjxxSwitch")); public static String JjxxSwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("JjxxSwitch"));
public static String cyrySwitch = StringKit.toString(PropertiesUtil.queryPropertiesByKey("cyrySwitch"));
public static String GyzhafPhotoPicPath = StringKit.toString(PropertiesUtil.queryPropertiesByKey("GyzhafPhotoPicPath"));
} }

@ -0,0 +1,93 @@
<?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.ssf.mysqloracletest.mapper.VSySydwCyryMysqlMapper">
<resultMap id="BaseResultMap" type="com.ssf.mysqloracletest.domain.VSySydwCyryMysql">
<result property="ID" column="ID" jdbcType="VARCHAR"/>
<result property="DWID" column="DWID" jdbcType="VARCHAR"/>
<result property="GJ" column="GJ" jdbcType="VARCHAR"/>
<result property="ZJLX" column="ZJLX" jdbcType="VARCHAR"/>
<result property="ZJHM" column="ZJHM" jdbcType="VARCHAR"/>
<result property="XM" column="XM" jdbcType="VARCHAR"/>
<result property="XB" column="XB" jdbcType="VARCHAR"/>
<result property="MZ" column="MZ" jdbcType="VARCHAR"/>
<result property="LXDH" column="LXDH" jdbcType="VARCHAR"/>
<result property="ZT" column="ZT" jdbcType="VARCHAR"/>
<result property="RYFL" column="RYFL" jdbcType="VARCHAR"/>
<result property="YSBZK_RKSJ" column="YSBZK_RKSJ" jdbcType="VARCHAR"/>
<result property="YSBZK_GXSJ" column="YSBZK_GXSJ" jdbcType="VARCHAR"/>
<result property="DWMC" column="DWMC" jdbcType="VARCHAR"/>
</resultMap>
<select id="selectVSyCyryById" parameterType="java.lang.String" resultMap="BaseResultMap">
select *
from v_sy_sydw_cyry
where ID = #{ID}
limit 1
</select>
<insert id="insertVSySyrk" parameterType="com.ssf.mysqloracletest.domain.VSySydwCyryMysql" useGeneratedKeys="true"
keyProperty="id">
insert into v_sy_sydw_cyry
<trim prefix="(" suffix=")" suffixOverrides=",">
<if test="ID != null and ID != '' ">ID ,</if>
<if test="DWID != null and DWID != '' ">DWID ,</if>
<if test="GJ != null and GJ != '' ">GJ ,</if>
<if test="ZJLX != null and ZJLX != '' ">ZJLX ,</if>
<if test="ZJHM != null and ZJHM != '' ">ZJHM ,</if>
<if test="XM != null and XM != '' ">XM ,</if>
<if test="XB != null and XB != '' ">XB ,</if>
<if test="MZ != null and MZ != '' ">MZ ,</if>
<if test="LXDH != null and LXDH != '' ">LXDH ,</if>
<if test="ZT != null and ZT != '' ">ZT ,</if>
<if test="RYFL != null and RYFL != '' ">RYFL ,</if>
<if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">YSBZK_RKSJ,</if>
<if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">YSBZK_GXSJ,</if>
<if test="DWMC != null and DWMC != '' ">DWMC ,</if>
</trim>
<trim prefix="values (" suffix=")" suffixOverrides=",">
<if test="ID != null and ID != '' ">#{ID },</if>
<if test="DWID != null and DWID != '' ">#{DWID },</if>
<if test="GJ != null and GJ != '' ">#{GJ },</if>
<if test="ZJLX != null and ZJLX != '' ">#{ZJLX },</if>
<if test="ZJHM != null and ZJHM != '' ">#{ZJHM },</if>
<if test="XM != null and XM != '' ">#{XM },</if>
<if test="XB != null and XB != '' ">#{XB },</if>
<if test="MZ != null and MZ != '' ">#{MZ },</if>
<if test="LXDH != null and LXDH != '' ">#{LXDH },</if>
<if test="ZT != null and ZT != '' ">#{ZT },</if>
<if test="RYFL != null and RYFL != '' ">#{RYFL },</if>
<if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">#{YSBZK_RKSJ},</if>
<if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">#{YSBZK_GXSJ},</if>
<if test="DWMC != null and DWMC != '' ">#{DWMC },</if>
</trim>
</insert>
<update id="updateVSyCyryById" parameterType="com.ssf.mysqloracletest.domain.VSySydwCyryMysql">
update v_sy_sydw_cyry
<trim prefix="SET" suffixOverrides=",">
<if test="ID != null and ID != '' ">ID =#{ID },</if>
<if test="DWID != null and DWID != '' ">DWID =#{DWID },</if>
<if test="GJ != null and GJ != '' ">GJ =#{GJ },</if>
<if test="ZJLX != null and ZJLX != '' ">ZJLX =#{ZJLX },</if>
<if test="ZJHM != null and ZJHM != '' ">ZJHM =#{ZJHM },</if>
<if test="XM != null and XM != '' ">XM =#{XM },</if>
<if test="XB != null and XB != '' ">XB =#{XB },</if>
<if test="MZ != null and MZ != '' ">MZ =#{MZ },</if>
<if test="LXDH != null and LXDH != '' ">LXDH =#{LXDH },</if>
<if test="ZT != null and ZT != '' ">ZT =#{ZT },</if>
<if test="RYFL != null and RYFL != '' ">RYFL =#{RYFL },</if>
<if test="YSBZK_RKSJ != null and YSBZK_RKSJ != '' ">YSBZK_RKSJ=#{YSBZK_RKSJ},</if>
<if test="YSBZK_GXSJ != null and YSBZK_GXSJ != '' ">YSBZK_GXSJ=#{YSBZK_GXSJ},</if>
<if test="DWMC != null and DWMC != '' ">DWMC =#{DWMC },</if>
</trim>
where ID = #{ID}
</update>
</mapper>

@ -0,0 +1,36 @@
<?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.ssf.mysqloracletest.mapper.VSySydwCyryOracleMapper">
<select id="countCyry" resultType="int">
select count(*)
from SYX_JWYSJ.V_SY_SYDW_CYRY
</select>
<resultMap id="BaseResultMap" type="com.ssf.mysqloracletest.domain.VSySydwCyryOracle">
<result property="ID" column="ID" jdbcType="VARCHAR"/>
<result property="DWID" column="DWID" jdbcType="VARCHAR"/>
<result property="GJ" column="GJ" jdbcType="VARCHAR"/>
<result property="ZJLX" column="ZJLX" jdbcType="VARCHAR"/>
<result property="ZJHM" column="ZJHM" jdbcType="VARCHAR"/>
<result property="XM" column="XM" jdbcType="VARCHAR"/>
<result property="XB" column="XB" jdbcType="VARCHAR"/>
<result property="MZ" column="MZ" jdbcType="VARCHAR"/>
<result property="LXDH" column="LXDH" jdbcType="VARCHAR"/>
<result property="ZT" column="ZT" jdbcType="VARCHAR"/>
<result property="RYFL" column="RYFL" jdbcType="VARCHAR"/>
<result property="YSBZK_RKSJ" column="YSBZK_RKSJ" jdbcType="VARCHAR"/>
<result property="YSBZK_GXSJ" column="YSBZK_GXSJ" jdbcType="VARCHAR"/>
<result property="DWMC" column="DWMC" jdbcType="VARCHAR"/>
</resultMap>
<select id="getCyryList" parameterType="java.util.Map" resultMap="BaseResultMap">
SELECT t2.*
FROM (SELECT ROWNUM rn, t1.* FROM (SELECT * FROM SYX_JWYSJ.V_SY_SYDW_CYRY) t1 WHERE ROWNUM<![CDATA[ <= ]]> ${rowEnd}) t2
WHERE t2.rn <![CDATA[ >= ]]> ${rowStart}
</select>
</mapper>
Loading…
Cancel
Save