白坯产量定时任务修正

master
zhaoxiaolin 9 months ago
parent e548b0e3ce
commit 739e8edee1

@ -101,7 +101,7 @@ public interface MesMapper {
List<MesStationArrive> getUnChangeList(MesStationArrive dto); List<MesStationArrive> getUnChangeList(MesStationArrive dto);
List<MesShift> getChangeInfos(BaseEquipmentDto dto); MesShift getChangeInfos(BaseEquipmentDto dto);
ProOrderWorkorderDTO getActOrderWork(MesStationArrive qo); ProOrderWorkorderDTO getActOrderWork(MesStationArrive qo);

@ -646,7 +646,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
DynamicDataSourceContextHolder.push("ds_999");// 这是数据源的key DynamicDataSourceContextHolder.push("ds_999");// 这是数据源的key
BaseEquipmentDto edto = new BaseEquipmentDto(); BaseEquipmentDto edto = new BaseEquipmentDto();
edto.setEquipmentTypeCode("equTypeCxj"); edto.setEquipmentTypeCode("equ_type_cxj");
List<BaseEquipmentDto> cxjList = mesMapper.getAllEquipments(edto); List<BaseEquipmentDto> cxjList = mesMapper.getAllEquipments(edto);
ExecutorService executorService = new ThreadPoolExecutor( ExecutorService executorService = new ThreadPoolExecutor(
cxjList.size(), cxjList.size(),
@ -655,7 +655,7 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
new LinkedBlockingQueue<Runnable>()); new LinkedBlockingQueue<Runnable>());
try { try {
cxjList.forEach(cxj -> { cxjList.forEach(cxj -> {
if(cxj.getEquipmentCode().equals("C4")){ if(cxj.getEquipmentCode().equals("C5")){
Runnable run = () -> changeTransferResultFunc(cxj); Runnable run = () -> changeTransferResultFunc(cxj);
executorService.execute(run); executorService.execute(run);
} }
@ -675,18 +675,43 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
*/ */
private R changeTransferResultFunc(BaseEquipmentDto cxj){ private R changeTransferResultFunc(BaseEquipmentDto cxj){
logger.info("++++++++++++" + cxj.getEquipmentCode() + "++++班次交接最后一车数据修正++++++++++"); logger.info("++++++++++++" + cxj.getEquipmentCode() + "++++班次交接最后一车数据修正++++++++++");
DynamicDataSourceContextHolder.push("ds_999");// 这是数据源的key
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 定义日期格式 DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // 定义日期格式
LocalDate today = LocalDate.now(); LocalDate today = LocalDate.now();
String ymdT0 = today.format(formatter); // 格式化今天的日期 LocalDate qianDay = today.minusDays(2);
String qianDayStr = qianDay.format(formatter); // 格式化前天的日期
LocalDate yesterday = today.minusDays(1); LocalDate yesterday = today.minusDays(1);
String ymd = yesterday.format(formatter); // 格式化昨天的日期 String yesterdayStr = yesterday.format(formatter); // 格式化昨天的日期
cxj.setYmd("'"+ymdT0+"','"+ymd+"'");
List<MesShift> changeInfos = mesMapper.getChangeInfos(cxj); List<MesShift> changeInfos = new ArrayList<>();
//昨天的白班开始
cxj.setYmd(qianDayStr);
cxj.setShiftId("2");
MesShift changeInfo0 = mesMapper.getChangeInfos(cxj);
changeInfo0.setShiftId(5);//昨天的白班
changeInfos.add(changeInfo0);
//昨天的白班结束 昨天的夜班开始
cxj.setYmd(yesterdayStr);
cxj.setShiftId("5");
MesShift changeInfo1 = mesMapper.getChangeInfos(cxj);
changeInfo1.setShiftId(2);//昨天的夜班
changeInfos.add(changeInfo1);
//昨天的白班结束 昨天的夜班开始
cxj.setYmd(yesterdayStr);
cxj.setShiftId("2");
MesShift changeInfo2 = mesMapper.getChangeInfos(cxj);
changeInfos.add(changeInfo2);
if(CollectionUtils.isEmpty(changeInfos)){ if(CollectionUtils.isEmpty(changeInfos)){
logger.info("++++++++++++班次交接最后一车数据修正:无数据++++++++++"+JSONObject.toJSONString(cxj)); logger.info("++++++++++++班次交接最后一车数据修正:无数据++++++++++"+JSONObject.toJSONString(cxj));
return R.fail("班次交接最后一车数据修正:无数据"); return R.fail("班次交接最后一车数据修正:无数据");
} }
List<MesStationArrive> todoList = new ArrayList<>();
if(changeInfos.size()<3){
logger.info("++++++++++++班次交接最后一车数据修正:修正点缺失(必须三个点)++++++++++");
return R.fail("班次交接最后一车数据修正:无数据");
}
for(int m=0;m<changeInfos.size()-1;m++){ for(int m=0;m<changeInfos.size()-1;m++){
Date startTime = changeInfos.get(m).getStartTime(); Date startTime = changeInfos.get(m).getStartTime();
Date endTime = changeInfos.get(m+1).getStartTime(); Date endTime = changeInfos.get(m+1).getStartTime();
@ -698,17 +723,12 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
qo.setStationNo(cxj.getEquipmentCode());//成型机编码 qo.setStationNo(cxj.getEquipmentCode());//成型机编码
logger.info("++++++++++++班次交接最后一车数据修正:开始修正++++++++++"+JSONObject.toJSONString(qo)); logger.info("++++++++++++班次交接最后一车数据修正:开始修正++++++++++"+JSONObject.toJSONString(qo));
List<MesStationArrive> todos1 = mesMapper.getUnChangeList(qo);//需要调整的数据 List<MesStationArrive> todos1 = mesMapper.getUnChangeList(qo);//需要调整的数据
todoList.addAll(todos1);
if(!CollectionUtils.isEmpty(todoList)){
continue;
}
qo.setReqCode(ymd);//工单日期 qo.setReqCode(yesterdayStr);//工单日期
ProOrderWorkorderDTO actOrderWork = mesMapper.getActOrderWork(qo); ProOrderWorkorderDTO actOrderWork = mesMapper.getActOrderWork(qo);
if(actOrderWork != null){//给需要调整的数据重新赋值新的班次工单Id if(actOrderWork != null){//给需要调整的数据重新赋值新的班次工单Id
Date nowDate = DateUtils.getNowDate(); Date nowDate = DateUtils.getNowDate();
for(MesStationArrive newtodo:todoList){ for(MesStationArrive newtodo:todos1){
newtodo.setChangeOrderWorkId(actOrderWork.getWorkorderId()); newtodo.setChangeOrderWorkId(actOrderWork.getWorkorderId());
newtodo.setShiftId(Integer.parseInt(actOrderWork.getShiftId())); newtodo.setShiftId(Integer.parseInt(actOrderWork.getShiftId()));
newtodo.setChangeWorkDate(actOrderWork.getProductDate()); newtodo.setChangeWorkDate(actOrderWork.getProductDate());
@ -716,10 +736,10 @@ public class IWCInterfaceServiceImpl implements IWCSInterfaceService {
} }
} }
/**mes_material_transfer_result**/ /**mes_material_transfer_result**/
int n = mesMapper.updateTransferResult(todoList); int n = mesMapper.updateTransferResult(todos1);
logger.info("++++++++++++班次交接最后一车数据修正:修正成功"+n+"++++++++++"+JSONObject.toJSONString(todoList)); logger.info("++++++++++++班次交接最后一车数据修正:班次"+changeInfos.get(m).getShiftId()+"修正成功"
+n+"++++++++++"+JSONObject.toJSONString(todos1));
} }
logger.info("++++++++++++班次交接最后一车数据修正:数据条数++++++++++"+todoList.size());
return R.fail("班次交接最后一车数据修正:完成"); return R.fail("班次交接最后一车数据修正:完成");
} }

@ -430,14 +430,12 @@
and shift_id != #{shiftId} and shift_id != #{shiftId}
</select> </select>
<select id="getChangeInfos" resultType="com.op.mes.domain.MesShift"> <select id="getChangeInfos" resultType="com.op.mes.domain.MesShift">
select * from( select top 1 shift_code shiftId,
select shift_code shiftId,min(change_time) startTime,work_date,device_code deviceCode change_time startTime,
from mes_changeshift_info work_date,
where device_code = #{equipmentCode} device_code deviceCode
<!--and CONVERT(varchar(10),change_time, 120) in (${ymd})--> from mes_changeshift_info
and work_date in (${ymd}) where work_date =#{ymd} and shift_code = #{shiftId} and device_code = #{equipmentCode} order by change_time desc
group by shift_code,work_date,device_code
) t order by t.startTime
</select> </select>
<select id="getActOrderWork" resultType="com.op.system.api.domain.mes.ProOrderWorkorderDTO"> <select id="getActOrderWork" resultType="com.op.system.api.domain.mes.ProOrderWorkorderDTO">
select top 1 workorder_id workorderId, select top 1 workorder_id workorderId,

Loading…
Cancel
Save