提交 7099ec04 作者: think

1.SampleApplicationProcessMingXi

增加字段ShiFouLC2.SampleApplicationProcessMingXi一次性任务
上级 cc2dc68e
......@@ -628,7 +628,7 @@ public interface GPMapper {
@CacheEvict(key = "'selectSampleApplicationProcessMingXi'+':'+#p0.id")
public void deleteSampleApplicationProcessMingXi(SampleApplicationProcessMingXi item);
public List<SampleApplicationProcessMingXi> selectSampleApplicationProcessMingXiCheck(SampleApplicationProcessMingXi build);
public Long selectSampleApplicationProcessMingXiMaxRowNum();
@Cacheable(key = "#root.method.name+':'+#p0.id", unless="#result == null")
......
......@@ -32,6 +32,7 @@ import com.huazheng.project.hana.model.Vbak;
import com.huazheng.project.hana.model.Vbap;
import com.huazheng.project.mssql.mapper.CrmMapper;
import com.huazheng.project.mssql.model.SampleApplicationProcess;
import com.huazheng.project.mssql.model.SampleApplicationProcessMingXi;
import com.huazheng.project.mssql2.mapper.HzcrmMapper;
import com.huazheng.project.mssql2.model.TKeHu;
import com.huazheng.project.mssql2.model.TKeHuXiaoShouZZ;
......@@ -1276,4 +1277,60 @@ public class DeleteUpdateJobServiceImpl {
}
}
public void selectSampleApplicationProcessMingXiCheck() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:check:SampleApplicationProcessMingXi:rowNum", "0");
String rowNum = opsForValue.get("huazheng:check:SampleApplicationProcessMingXi:rowNum");
// 一次性任务的终止位
if (redis1Template.hasKey("huazheng:check:SampleApplicationProcessMingXi:stopNum") == false) {
// 查询最大计数器
String maxRowNum = gpMapper.selectSampleApplicationProcessMingXiMaxRowNum().toString();
opsForValue.setIfAbsent("huazheng:check:SampleApplicationProcessMingXi:stopNum", maxRowNum);
}
Long stopNum = Long.parseLong(opsForValue.get("huazheng:check:SampleApplicationProcessMingXi:stopNum"));
if (stopNum < Long.parseLong(rowNum)) {
JobKey jobKey = JobKey.jobKey("selectSampleApplicationProcessMingXiCheck_once", "DEFAULT"); // 删除任务
quartzScheduler.deleteJob(jobKey);
return;
}
SampleApplicationProcessMingXi build = SampleApplicationProcessMingXi.builder().rowNum(rowNum).build();
List<SampleApplicationProcessMingXi> list = gpMapper.selectSampleApplicationProcessMingXiCheck(build); // 从数仓中查询一组数据
if (list.size() == 0) {
JobKey jobKey = JobKey.jobKey("selectSampleApplicationProcessMingXiCheck_once", "DEFAULT"); // 删除任务
quartzScheduler.deleteJob(jobKey);
return;
}
list.forEach(target -> { // 遍历要检查的数据
SampleApplicationProcessMingXi source = crmMapper.selectSampleApplicationProcessMingXiById(target); // 根据主键查询源库中的数据
String operator = "none";
if (source == null) { // 如果源库中没有数据
gpMapper.deleteSampleApplicationProcessMingXi(target); // 删除数仓中的数据
operator = "delete";
} else { // 源库中有数据
String shash = SecureUtil.md5(JSONUtil.toJsonStr(source)); // 源库中数据的hash结果
String thash = target.getHashResult(); // 数仓中数据的hash结果
if (!shash.equals(thash)) { // 如果hash结果不一致
source.setHashResult(shash);
while (true) {
try {
gpMapper.updateSampleApplicationProcessMingXi(source); // 更新数据到数仓中
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
ThreadUtil.safeSleep(500);
}
}
redis1Template.opsForValue().set("huazheng:check:SampleApplicationProcessMingXi:rowNum", target.getRowNum());
if (!operator.equals("none")) {
log.info(String.format("selectSampleApplicationProcessMingXiCheck --> rowNum:%s, operator:%s", target.getRowNum(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkError:SampleApplicationProcessMingXi:rowNum", getErrorInfoFromException(e));
}
}
}
......@@ -30,6 +30,8 @@ public class SampleApplicationProcessMingXi implements Serializable {
private String hangxiangmh1; // 行项目号
private String ShiFouLC; //
private boolean exist; // 用于标记,不是字段
private String hashResult; // 数据hash标记
private String rowNum; // 用于标记,不是字段
......
......@@ -13,3 +13,4 @@ Distributed by (id);
alter table SampleApplicationProcessMingXi add column hangXiangMH text;
alter table SampleApplicationProcessMingXi add column hangxiangmh1 integer;
alter table SampleApplicationProcessMingXi add column ShiFouLC text;
......@@ -321,8 +321,8 @@
select * from SampleApplicationProcessMingXi where id = #{id}
</select>
<insert id="insertSampleApplicationProcessMingXi" parameterType="com.huazheng.project.mssql.model.SampleApplicationProcessMingXi">
insert into SampleApplicationProcessMingXi (id,sYS_INCIDENT,uLPH,wuLiaoMS,shuLiang,hangXiangMH,hangxiangmh1,hashResult)
values(#{id},#{sYS_INCIDENT},#{uLPH},#{wuLiaoMS},#{shuLiang},#{hangXiangMH},#{hangxiangmh1},#{hashResult})
insert into SampleApplicationProcessMingXi (id,sYS_INCIDENT,uLPH,wuLiaoMS,shuLiang,hangXiangMH,hangxiangmh1,ShiFouLC,hashResult)
values(#{id},#{sYS_INCIDENT},#{uLPH},#{wuLiaoMS},#{shuLiang},#{hangXiangMH},#{hangxiangmh1},#{ShiFouLC},#{hashResult})
</insert>
<delete id="deleteSampleApplicationProcessMingXi" parameterType="com.huazheng.project.mssql.model.SampleApplicationProcessMingXi">
delete from SampleApplicationProcessMingXi where id = #{id}
......@@ -330,12 +330,16 @@
<update id="updateSampleApplicationProcessMingXi" parameterType="com.huazheng.project.mssql.model.SampleApplicationProcessMingXi">
update SampleApplicationProcessMingXi set
sYS_INCIDENT=#{sYS_INCIDENT},uLPH=#{uLPH},wuLiaoMS=#{wuLiaoMS},shuLiang=#{shuLiang},hangXiangMH=#{hangXiangMH},
hangxiangmh1=#{hangxiangmh1},hashResult=#{hashResult}
hangxiangmh1=#{hangxiangmh1},ShiFouLC=#{ShiFouLC},hashResult=#{hashResult}
where id = #{id}
</update>
<select id="selectSampleApplicationProcessMingXiCheck" parameterType="com.huazheng.project.mssql.model.SampleApplicationProcessMingXi" resultType="com.huazheng.project.mssql.model.SampleApplicationProcessMingXi">
select * from SampleApplicationProcessMingXi where rownum &gt; #{rowNum} order by rownum limit 20
</select>
<select id="selectSampleApplicationProcessMingXiMaxRowNum" resultType="long">
select max(rowNum) from SampleApplicationProcessMingXi
</select>
......
......@@ -41,7 +41,7 @@
<!-- 新增流程中关联的两个表 -->
<select id="selectSampleApplicationProcessMingXiNew" parameterType="SampleApplicationProcessMingXi" resultType="SampleApplicationProcessMingXi">
select top 20
id,sYS_INCIDENT,uLPH,wuLiaoMS,shuLiang,hangXiangMH, hangXiangMH as hangxiangmh1
id,sYS_INCIDENT,uLPH,wuLiaoMS,shuLiang,hangXiangMH, hangXiangMH as hangxiangmh1,ShiFouLC
from "Biz_样品申请流程_MingXi"
where id &gt; #{id}
</select>
......@@ -121,7 +121,7 @@
</select>
<select id="cascadeSampleApplicationProcessMingXiBySampleApplicationProcess" parameterType="SampleApplicationProcess" resultType="SampleApplicationProcessMingXi">
select top 20
id,sYS_INCIDENT,uLPH,wuLiaoMS,shuLiang,hangXiangMH, hangXiangMH as hangxiangmh1
id,sYS_INCIDENT,uLPH,wuLiaoMS,shuLiang,hangXiangMH, hangXiangMH as hangxiangmh1,ShiFouLC
from "Biz_样品申请流程_MingXi"
where SYS_INCIDENT = #{sYS_INCIDENT}
</select>
......@@ -165,7 +165,7 @@
</select>
<select id="selectSampleApplicationProcessMingXiById" parameterType="SampleApplicationProcessMingXi" resultType="SampleApplicationProcessMingXi">
select id,sYS_INCIDENT,uLPH,wuLiaoMS,shuLiang,hangXiangMH, hangXiangMH as hangxiangmh1
select id,sYS_INCIDENT,uLPH,wuLiaoMS,shuLiang,hangXiangMH, hangXiangMH as hangxiangmh1,ShiFouLC
from "Biz_样品申请流程_MingXi"
where id = #{id}
</select>
......
......@@ -1291,6 +1291,16 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
<property name="name" value="selectSampleApplicationProcessMingXiCheck_once"/>
<property name="targetObject" ref="deleteUpdateJobServiceImpl" />
<property name="targetMethod" value="selectSampleApplicationProcessMingXiCheck" />
</bean>
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean>
</list>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论