提交 673c3993 作者: think

表tshjuhzddmx加DingDanSL、WuLiaoBM、WuLiaoMS字段

上级 935cc2e5
......@@ -707,6 +707,7 @@ public interface GPMapper {
@CacheEvict(key = "'selectTShuJuHzddmx'+':'+#p0.id")
public void deleteTShuJuHzddmx(TShuJuHzddmx item);
public List<TShuJuHzddmx> selectTShuJuHzddmxCheck(TShuJuHzddmx build);
public Long selectTShuJuHzddmxMaxRowNum();
......
......@@ -45,6 +45,7 @@ import com.huazheng.project.mssql2.model.SysSAPreturnNo;
import com.huazheng.project.mssql2.model.TKeHu;
import com.huazheng.project.mssql2.model.TKeHuXiaoShouZZ;
import com.huazheng.project.mssql2.model.TKeHuXiaoShouZZYeWuY;
import com.huazheng.project.mssql2.model.TShuJuHzddmx;
import com.huazheng.project.mssql2.model.TWuLiaoDB;
import com.huazheng.project.mssql3.mapper.Cinderellaw2Mapper;
import com.huazheng.project.mssql3.model.PersonComp;
......@@ -1792,4 +1793,61 @@ public class DeleteUpdateJobServiceImpl {
}
}
public void selectTShuJuHzddmxCheck() {
try {
ValueOperations<String, String> opsForValue = redis1Template.opsForValue();
opsForValue.setIfAbsent("huazheng:check:TShuJuHzddmx:rowNum", "0");
String rowNum = opsForValue.get("huazheng:check:TShuJuHzddmx:rowNum");
// 一次性任务的终止位
if (redis1Template.hasKey("huazheng:check:TShuJuHzddmx:stopNum") == false) {
// 查询最大计数器
String maxRowNum = gpMapper.selectTShuJuHzddmxMaxRowNum().toString();
opsForValue.setIfAbsent("huazheng:check:TShuJuHzddmx:stopNum", maxRowNum);
}
Long stopNum = Long.parseLong(opsForValue.get("huazheng:check:TShuJuHzddmx:stopNum"));
if (stopNum < Long.parseLong(rowNum)) {
JobKey jobKey = JobKey.jobKey("selectTShuJuHzddmxCheck_once", "DEFAULT"); // 删除任务
quartzScheduler.deleteJob(jobKey);
return;
}
TShuJuHzddmx build = TShuJuHzddmx.builder().rowNum(rowNum).build();
List<TShuJuHzddmx> list = gpMapper.selectTShuJuHzddmxCheck(build); // 从数仓中查询一组数据
if (list.size() == 0) {
JobKey jobKey = JobKey.jobKey("selectTShuJuHzddmxCheck_once", "DEFAULT"); // 删除任务
quartzScheduler.deleteJob(jobKey);
return;
}
list.forEach(target -> { // 遍历要检查的数据
TShuJuHzddmx source = hzcrmMapper.selectTShuJuHzddmxById(target); // 根据主键查询源库中的数据
String operator = "none";
if (source == null) { // 如果源库中没有数据
gpMapper.deleteTShuJuHzddmx(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.updateTShuJuHzddmx(source); // 更新数据到数仓中
break;
} catch (RuntimeException e) {
log.error(e.getMessage());ThreadUtil.safeSleep(500);
}
}
ThreadUtil.safeSleep(500);
}
}
redis1Template.opsForValue().set("huazheng:check:TShuJuHzddmx:rowNum", target.getRowNum());
if (!operator.equals("none")) {
log.info(String.format("selectTShuJuHzddmxCheck --> rowNum:%s, operator:%s", target.getRowNum(), operator));
}
});
} catch (Exception e) {
redis1Template.opsForValue().set("huazheng:checkError:TShuJuHzddmx:rowNum", getErrorInfoFromException(e));
}
}
}
......@@ -41,6 +41,10 @@ public class TShuJuHzddmx implements Serializable {
@JSONField(format="yyyy-MM-dd HH:mm:ss") // 数据库导出页面时json格式化
private String ShanChuSJ; // 删除时间
private String DingDanSL; //订单数量
private String WuLiaoBM; //物料编码
private String WuLiaoMS; //物料描述
private Long rowids; // sap那边的rowid
private boolean exist; // 用于标记,不是字段
......
......@@ -13,3 +13,7 @@ Distributed by (id);
alter table TShuJuHZDDMX add column hashResult text;
alter table TShuJuHZDDMX add column rowNum serial;
alter table TShuJuHZDDMX add column DingDanSL text;
alter table TShuJuHZDDMX add column WuLiaoBM text;
alter table TShuJuHZDDMX add column WuLiaoMS text;
......@@ -422,8 +422,8 @@
select * from TShuJuHzddmx where id = #{id}
</select>
<insert id="insertTShuJuHzddmx" parameterType="com.huazheng.project.mssql2.model.TShuJuHzddmx">
insert into TShuJuHzddmx (id,DingDan,HangXiangM,DanJia,ChuangJianSJ,GengXinSJ,ShanChuSJ,hashResult)
values(#{id},#{DingDan},#{HangXiangM},#{DanJia},#{ChuangJianSJ},#{GengXinSJ},#{ShanChuSJ},#{hashResult})
insert into TShuJuHzddmx (id,DingDan,HangXiangM,DanJia,ChuangJianSJ,GengXinSJ,ShanChuSJ,DingDanSL,WuLiaoBM,WuLiaoMS,hashResult)
values(#{id},#{DingDan},#{HangXiangM},#{DanJia},#{ChuangJianSJ},#{GengXinSJ},#{ShanChuSJ},#{DingDanSL},#{WuLiaoBM},#{WuLiaoMS},#{hashResult})
</insert>
<delete id="deleteTShuJuHzddmx" parameterType="com.huazheng.project.mssql2.model.TShuJuHzddmx">
delete from TShuJuHzddmx where id = #{id}
......@@ -431,12 +431,16 @@
<update id="updateTShuJuHzddmx" parameterType="com.huazheng.project.mssql2.model.TShuJuHzddmx">
update TShuJuHzddmx set
DingDan=#{DingDan},HangXiangM=#{HangXiangM},DanJia=#{DanJia},
ChuangJianSJ=#{ChuangJianSJ},GengXinSJ=#{GengXinSJ},ShanChuSJ=#{ShanChuSJ},hashResult=#{hashResult}
ChuangJianSJ=#{ChuangJianSJ},GengXinSJ=#{GengXinSJ},ShanChuSJ=#{ShanChuSJ},DingDanSL=#{DingDanSL},WuLiaoBM=#{WuLiaoBM},WuLiaoMS=#{WuLiaoMS},hashResult=#{hashResult}
where id = #{id}
</update>
<select id="selectTShuJuHzddmxCheck" parameterType="com.huazheng.project.mssql2.model.TShuJuHzddmx" resultType="com.huazheng.project.mssql2.model.TShuJuHzddmx">
select * from TShuJuHzddmx where rownum &gt; #{rowNum} order by rownum limit 20
</select>
<select id="selectTShuJuHzddmxMaxRowNum" resultType="long">
select max(rowNum) from TShuJuHzddmx
</select>
......
......@@ -27,19 +27,19 @@
<select id="selectTShuJuHzddmxNew" parameterType="TShuJuHzddmx" resultType="TShuJuHzddmx">
select top 20 a.* from (
select id as rowids,
id,DingDan,HangXiangM,DanJia,ChuangJianSJ,GengXinSJ,ShanChuSJ
id,DingDan,HangXiangM,DanJia,ChuangJianSJ,GengXinSJ,ShanChuSJ,DingDanSL,WuLiaoBM,WuLiaoMS
from T_ShuJuHZDDMX
) a where a.rowids &gt; #{rowids}
</select>
<select id="selectTShuJuHzddmxCheckByUpdate" parameterType="TShuJuHzddmx" resultType="TShuJuHzddmx">
select top 20
id,DingDan,HangXiangM,DanJia,ChuangJianSJ,GengXinSJ,ShanChuSJ
id,DingDan,HangXiangM,DanJia,ChuangJianSJ,GengXinSJ,ShanChuSJ,DingDanSL,WuLiaoBM,WuLiaoMS
from T_ShuJuHZDDMX
where id &gt; #{id}
and GengXinSJ is not null and CONVERT(varchar(10),GengXinSJ,120) = CONVERT(varchar(10),GETDATE(),120)
</select>
<select id="selectTShuJuHzddmxById" parameterType="TShuJuHzddmx" resultType="TShuJuHzddmx">
select id,DingDan,HangXiangM,DanJia,ChuangJianSJ,GengXinSJ,ShanChuSJ from T_ShuJuHZDDMX
select id,DingDan,HangXiangM,DanJia,ChuangJianSJ,GengXinSJ,ShanChuSJ,DingDanSL,WuLiaoBM,WuLiaoMS from T_ShuJuHZDDMX
</select>
......
......@@ -1655,6 +1655,16 @@
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean>
<bean class="org.springframework.scheduling.quartz.CronTriggerFactoryBean">
<property name="jobDetail">
<bean parent="methodJobDetail">
<property name="name" value="selectTShuJuHzddmxCheck_once"/>
<property name="targetObject" ref="deleteUpdateJobServiceImpl" />
<property name="targetMethod" value="selectTShuJuHzddmxCheck" />
</bean>
</property>
<property name="cronExpression" value="* * * * * ?" />
</bean>
</list>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论