package com.mes.md.service.impl; import cn.smallbun.screw.core.util.CollectionUtils; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.github.yulichang.base.MPJBaseServiceImpl; import com.mes.md.entity.KBBTJPDrawingBP; import com.mes.md.entity.KBBTProgramsOperationLogBP; import com.mes.md.entity.TaskingLog; import com.mes.md.mapper.KBBTJPDrawingBPMapper; import com.mes.md.mapper.KBBTProgramsOperationLogBPMapper; import com.mes.md.mapper.TaskingLogMapper; import com.mes.md.service.TaskingLogService; import lombok.extern.slf4j.Slf4j; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import java.text.SimpleDateFormat; import java.util.*; import java.util.stream.Collectors; /** *

* 服务实现类 *

* * @author wu * @since 2024-08-28 */ @Slf4j @Service public class TaskingLogServiceImpl extends MPJBaseServiceImpl implements TaskingLogService { @Autowired KBBTProgramsOperationLogBPMapper kBBTProgramsOperationLogBPMapper; @Autowired KBBTJPDrawingBPMapper kBBTJPDrawingBPMapper; public List findTaskingLog(){ return new ArrayList(); } /** * 查询 dayCount 天 完工数量-分线路 */ @Override public List selectTaskingLog(int dayCount) { Calendar cal = Calendar.getInstance(); //设置当前时间 cal.setTime(new Date()); cal.set(Calendar.HOUR_OF_DAY, 0); cal.set(Calendar.MINUTE, 0); cal.set(Calendar.SECOND, 0); cal.set(Calendar.MILLISECOND, 0); cal.add(Calendar.DATE, 0-dayCount); Date startDate = cal.getTime(); QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.select("CAST(CreateDate AS DATE) AS CreateDate,isNull(sum(task_quantity),0) as task_quantity_sum") .gt("CreateDate",startDate).groupBy("CAST(CreateDate AS DATE)") .orderByAsc("CAST(CreateDate AS DATE)"); List list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper); List> listTasking1 = baseMapper.selectMaps(new QueryWrapper() .select("operation_record,operation_mode,DATE_FORMAT(operation_record_time, '%Y-%m-%d') as operation_record_time,count(1) as count") .eq("operation_record", "旋转1") .eq("operation_mode", "结束") .gt("operation_record_time", startDate) .groupBy("operation_record", "operation_mode", "DATE_FORMAT(operation_record_time, '%Y-%m-%d')") .orderByAsc("DATE_FORMAT(operation_record_time, '%Y-%m-%d')")); List> listTasking2 = baseMapper.selectMaps(new QueryWrapper() .select("operation_record,operation_mode,DATE_FORMAT(operation_record_time, '%Y-%m-%d') as operation_record_time,count(1) as count") .eq("operation_record", "旋转2") .eq("operation_mode", "结束") .gt("operation_record_time", startDate) .groupBy("operation_record", "operation_mode", "DATE_FORMAT(operation_record_time, '%Y-%m-%d')") .orderByAsc("DATE_FORMAT(operation_record_time, '%Y-%m-%d')")); //log.info("客户表计划量:{},{},{}",list,listTasking1,listTasking2); List Result=new ArrayList<>(); for (int i=0;i(); SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); String dateString = sdf.format(thisdate); thisMap.put("date",dateString); if (listTasking1.size()>0&&listTasking1.get(0).get("operation_record_time").toString().equals(dateString)){ thisMap.put("line1",listTasking1.get(0).get("count")); listTasking1.remove(0); }else{ thisMap.put("line1",0); } if (listTasking2.size()>0&&listTasking2.get(0).get("operation_record_time").toString().equals(dateString)){ thisMap.put("line2",listTasking2.get(0).get("count")); listTasking2.remove(0); }else{ thisMap.put("line2",0); } // if(list.size()>0){ // log.info("对比:{},{},{}", // list.get(0).get("CreateDate"), // dateString, // list.get(0).get("CreateDate").toString().equals(dateString)); // } if (list.size()>0&&list.get(0).get("CreateDate").toString().equals(dateString)){ thisMap.put("plan",list.get(0).get("task_quantity_sum")); list.remove(0); }else{ thisMap.put("plan",0); } Result.add(thisMap); } return Result; } /** * 回传报工数据+ 设备玻璃过片记录给 九牧 */ @Override public Integer reportTaskingLog() { TaskingLog updateTaskingLog = new TaskingLog(); updateTaskingLog.setIsSend(1); baseMapper.update(updateTaskingLog, new QueryWrapper().lambda(). eq(TaskingLog::getIsSend, 0)); List listTasking = baseMapper.selectList(new QueryWrapper().lambda() .eq(TaskingLog::getIsSend, 1)); // 判端是否为空 if (CollectionUtils.isNotEmpty(listTasking)) { // 进行拆解封装 List report = listTasking.stream().map(item -> { KBBTProgramsOperationLogBP newData = new KBBTProgramsOperationLogBP(); newData.setGlassId(item.getGlassId()); newData.setState(item.getState()); newData.setWorkState(item.getWorkState()); newData.setGlassState(item.getGlassState()); newData.setState(item.getState()); newData.setScanId(item.getScanId()); newData.setProgramId(item.getProgramId()); newData.setBatchNumber(item.getBatchNumber() == null ? "" : item.getBatchNumber()); newData.setLineConfigurationId(item.getLineConfigurationId()); newData.setTaskType(item.getTaskType()); newData.setLength(item.getLength()); newData.setWidth(item.getWidth()); newData.setThickness(item.getThickness()); newData.setDrawingMarking(item.getDrawingMarking()); newData.setIsSilkScreen(item.getIsSilkScreen()); newData.setIsWorking(1); newData.setSilkScreenX(item.getSilkScreenX()); newData.setSilkScreenY(item.getSilkScreenY()); newData.setR_1_1(item.getR_1_1()); newData.setR_1_2(item.getR_1_2()); newData.setR_2_1(item.getR_2_1()); newData.setR_2_2(item.getR_2_2()); newData.setR_3_1(item.getR_3_1()); newData.setR_3_2(item.getR_3_2()); newData.setR_4_1(item.getR_4_1()); newData.setR_4_2(item.getR_4_2()); newData.setSilkScreenY(item.getSilkScreenY()); newData.setOperationRecord(item.getOperationRecord()); newData.setOperationMode(item.getOperationMode()); newData.setOperationRecordTime(item.getOperationRecordTime()); newData.setCreateDate(new Date()); kBBTProgramsOperationLogBPMapper.insert(newData); return newData; }).collect(Collectors.toList()); updateTaskingLog.setIsSend(2); int successfulCount = baseMapper.update(updateTaskingLog, new QueryWrapper().lambda(). eq(TaskingLog::getIsSend, 1)); log.info("未提交的数量:{} 提交数量: {} 成功数量:{}", listTasking.size(), report.size(), successfulCount); return successfulCount; } return 0; } }