package com.zy.ints.task;
|
|
import com.baomidou.mybatisplus.mapper.EntityWrapper;
|
import com.baomidou.mybatisplus.mapper.Wrapper;
|
import com.core.common.Cools;
|
import com.zy.ints.entity.IoComplete;
|
import com.zy.ints.entity.StockSync;
|
import com.zy.ints.service.IoCompleteService;
|
import com.zy.ints.service.StockSyncService;
|
import lombok.extern.slf4j.Slf4j;
|
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Value;
|
import org.springframework.jdbc.core.JdbcTemplate;
|
import org.springframework.scheduling.annotation.Scheduled;
|
import org.springframework.stereotype.Component;
|
|
import java.util.Date;
|
import java.util.List;
|
import java.util.Map;
|
|
/**
|
* erp任务控制器
|
* Created by vincent on 2020/11/27
|
*/
|
@Slf4j
|
@Component
|
public class ERPApiScheduler {
|
@Autowired
|
private IoCompleteService ioCompleteService;
|
@Autowired
|
private StockSyncService stockSyncService;
|
|
/**
|
* ERP接口是否启用
|
*/
|
@Value("${erp.enabled}")
|
private Boolean erpEnabled;
|
@Autowired
|
private JdbcTemplate jdbcTemplate;
|
|
/**
|
* 提取回报档资料,上报ERP处理
|
*/
|
@Scheduled(cron = "0/3 * * * * ? ")
|
public void ioCompleteExecute(){
|
if(!erpEnabled) return;
|
Date now = new Date();
|
boolean res = false;
|
String errMsg = "";//上报返回异常信息
|
Wrapper<IoComplete> wrapper = new EntityWrapper<IoComplete>().ne("upd_status",1).last("order by upd_status,modi_time asc");
|
List<IoComplete> ioCompletes = ioCompleteService.selectList(wrapper);
|
// IoComplete ioComplete = ioCompleteService.selectOne(wrapper);
|
if(null != ioCompletes && ioCompletes.size() > 0){
|
IoComplete ioComplete = ioCompletes.get(0);
|
////////////上报ERP接口
|
///////////调ERP接口后,需要插入接口日志表ints_erpreq_log
|
|
if(res){
|
ioComplete.setUpdStatus(1);
|
ioComplete.setModiTime(now);
|
ioCompleteService.updateById(ioComplete);
|
} else {
|
ioComplete.setUpdStatus(2);
|
ioComplete.setErrorMemo(errMsg);
|
ioComplete.setModiTime(now);
|
ioCompleteService.updateById(ioComplete);
|
}
|
}
|
|
}
|
|
/**
|
* 提取库存同步表资料,上报ERP库存同步
|
*/
|
@Scheduled(cron = "0/3 * * * * ? ")
|
public void stockSyncExecute() {
|
if (!erpEnabled) return;
|
Date now = new Date();
|
boolean res = false;
|
String errMsg = "";//上报返回异常信息
|
|
String sql = "select top 10 mat_no as matNo,mat_name as matName,qty from ints_stock_sync where upd_status<>1 order by upd_status,modi_time asc";
|
List<Map<String, Object>> maps = jdbcTemplate.queryForList(sql);
|
if(null != maps){
|
for (Map map: maps) {
|
StockSync stockSync = Cools.conver(map, StockSync.class);
|
////////////上报ERP接口
|
///////////调ERP接口后,需要插入接口日志表ints_erpreq_log
|
|
if (res) {
|
stockSync.setUpdStatus(1);
|
stockSync.setModiTime(now);
|
stockSyncService.update(stockSync,new EntityWrapper<StockSync>().eq("mat_no",stockSync.getMatNo()));
|
} else {
|
stockSync.setUpdStatus(2);
|
stockSync.setErrorMemo(errMsg);
|
stockSync.setModiTime(now);
|
stockSyncService.update(stockSync,new EntityWrapper<StockSync>().eq("mat_no",stockSync.getMatNo()));
|
}
|
}
|
}
|
|
}
|
}
|