| | |
| | | |
| | | @Autowired |
| | | TaskingMapper taskingMapper; |
| | | @Autowired |
| | | TaskingLogService taskingLogService; |
| | | |
| | | @Scheduled(fixedDelay = 86400000) |
| | | public void deleteTasking() { |
| | | //创建Calendar实例 |
| | | Calendar cal = Calendar.getInstance(); |
| | | //设置当前时间 |
| | | cal.setTime(new Date()); |
| | | cal.add(Calendar.DATE, -5); |
| | | int deleteCount=taskingMapper.deleteJoin(new MPJLambdaWrapper<Tasking>() |
| | | .selectAll(Tasking.class) |
| | | .le(Tasking::getOperationRecordTime,cal.getTime())); |
| | | log.info("定时清除多余数据:{}",deleteCount); |
| | | try { |
| | | //创建Calendar实例 |
| | | Calendar cal = Calendar.getInstance(); |
| | | //设置当前时间 |
| | | cal.setTime(new Date()); |
| | | cal.add(Calendar.DATE, -5); |
| | | int deleteCount=taskingMapper.deleteJoin(new MPJLambdaWrapper<Tasking>() |
| | | .selectAll(Tasking.class) |
| | | .le(Tasking::getOperationRecordTime,cal.getTime())); |
| | | log.info("定时清除多余数据{}",deleteCount); |
| | | |
| | | }catch (Exception e){ |
| | | log.info("定时清除多余数据失败"); |
| | | } |
| | | } |
| | | @Scheduled(fixedDelay = 100000) |
| | | public void reportForWork() { |
| | | try { |
| | | taskingLogService.reportTaskingLog(); |
| | | }catch (Exception e){ |
| | | log.info("定时汇报任务失败!"); |
| | | } |
| | | } |
| | | //@Scheduled(fixedDelay = 1000) |
| | | public void notReceive() { |
| | |
| | | package com.mes.md.controller; |
| | | |
| | | |
| | | import com.mes.md.entity.KBBTJPDrawingBP; |
| | | import com.mes.md.entity.Machine; |
| | | import com.mes.md.entity.PrimitiveTask; |
| | | import com.mes.md.entity.Tasking; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.mes.md.entity.*; |
| | | import com.mes.md.mapper.KBBTJPDrawingBPMapper; |
| | | import com.mes.md.service.KBBTJPDrawingBPService; |
| | | import com.mes.md.service.PrimitiveTaskService; |
| | | import com.mes.md.service.TaskingLogService; |
| | | import com.mes.md.service.TaskingService; |
| | | import com.mes.utils.Result; |
| | | import io.swagger.annotations.ApiOperation; |
| | | import lombok.extern.slf4j.Slf4j; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.*; |
| | | |
| | | import java.util.List; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | * @author wu |
| | | * @since 2024-08-28 |
| | | */ |
| | | @Slf4j |
| | | @RestController |
| | | @RequestMapping("/primitiveTask") |
| | | public class PrimitiveTaskController { |
| | |
| | | private PrimitiveTaskService primitiveTaskService; |
| | | @Autowired |
| | | private KBBTJPDrawingBPService kBBTJPDrawingBPService; |
| | | @Autowired |
| | | KBBTJPDrawingBPMapper kBBTJPDrawingBPMapper; |
| | | @Autowired |
| | | TaskingLogService taskingLogService; |
| | | |
| | | @ApiOperation("查询当前设备,未完工状态的线上任务") |
| | | @PostMapping("/selectPrimitiveTask") |
| | |
| | | boolean list =primitiveTaskService.updatePrimitiveTask(primitiveTask); |
| | | return Result.build(200,"成功",list); |
| | | } |
| | | |
| | | @ApiOperation("查询 日产量未完成(客户表)") |
| | | @PostMapping("/findDayNotCompleteOutput") |
| | | @ResponseBody |
| | | public Result findDayNotCompleteOutput(@RequestBody Map<String, String> map) { |
| | | int dayCount=0-Integer.valueOf(map.get("dayCount").toString()); |
| | | 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, dayCount); |
| | | QueryWrapper<KBBTJPDrawingBP> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("scan_id,(task_quantity-isNull(report_count,0)) as notComplete,isNull((length*width*(task_quantity-isNull(report_count,0)))/1000000,0) as area_sum"). |
| | | gt("CreateDate",cal.getTime()).apply("task_quantity>isNull(report_count,0)"); |
| | | List<Map> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper); |
| | | return Result.build(200,"成功",list); |
| | | } |
| | | |
| | | @ApiOperation("查询 日产量(客户表)") |
| | | @PostMapping("/findDailyOutput") |
| | | @ResponseBody |
| | | public Result findDailyOutput(@RequestBody Map<String, String> map) { |
| | | |
| | | int dayCount=Integer.valueOf(map.get("dayCount").toString()); |
| | | List<Map> result=taskingLogService.selectTaskingLog(dayCount); |
| | | return Result.build(200,"成功",result); |
| | | } |
| | | |
| | | @ApiOperation("查询 计划量 m² 片数(客户表)") |
| | | @PostMapping("/findPlannedQuantity") |
| | | @ResponseBody |
| | | public Result findPlannedQuantity(@RequestBody Map<String, String> map) { |
| | | int dayCount=Integer.valueOf(map.get("dayCount").toString()); |
| | | 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<KBBTJPDrawingBP> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("CAST(CreateDate AS DATE) AS CreateDate,isNull(sum(task_quantity),0) as task_quantity_sum,isNull(sum(length*width*task_quantity)/1000000,0) as area_sum") |
| | | .gt("CreateDate",startDate).groupBy("CAST(CreateDate AS DATE)") |
| | | .orderByAsc("CAST(CreateDate AS DATE)");; |
| | | List<Map> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper); |
| | | List<Map> resultDate=new ArrayList<>(); |
| | | for (int i=0;i<dayCount;i++){ |
| | | Date thisdate=cal.getTime(); |
| | | cal.add(Calendar.DATE, 1); |
| | | Map thisMap=new HashMap<>(); |
| | | |
| | | SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd"); |
| | | String dateString = sdf.format(thisdate); |
| | | thisMap.put("CreateDate",dateString); |
| | | // 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("task_quantity_sum",list.get(0).get("task_quantity_sum")); |
| | | thisMap.put("area_sum",list.get(0).get("area_sum")); |
| | | list.remove(0); |
| | | }else{ |
| | | thisMap.put("task_quantity_sum",0); |
| | | thisMap.put("area_sum",0); |
| | | } |
| | | resultDate.add(thisMap); |
| | | } |
| | | return Result.build(200,"成功",resultDate); |
| | | } |
| | | } |
| | | |
| | |
| | | */ |
| | | @TableField(value = "CreateDate") |
| | | private Date createDate; |
| | | // |
| | | // @TableField(value = "report_line") |
| | | // private int reportLine; |
| | | |
| | | |
| | | } |
| | |
| | | import com.mes.md.entity.TaskLog; |
| | | import com.mes.md.entity.TaskingLog; |
| | | |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | | /** |
| | | * <p> |
| | | * 服务类 |
| | |
| | | public interface TaskingLogService extends MPJBaseService<TaskingLog> { |
| | | |
| | | /** |
| | | * 查询完工数量-分线路 |
| | | */ |
| | | List<Map> selectTaskingLog(int dayCount); |
| | | /** |
| | | * 回传报工数据+ 设备玻璃过片记录给 九牧 |
| | | */ |
| | | Integer reportTaskingLog(); |
| | |
| | | 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 org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.stereotype.Service; |
| | | |
| | | import java.util.ArrayList; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | | /** |
| | |
| | | |
| | | @Autowired |
| | | KBBTProgramsOperationLogBPMapper kBBTProgramsOperationLogBPMapper; |
| | | @Autowired |
| | | KBBTJPDrawingBPMapper kBBTJPDrawingBPMapper; |
| | | |
| | | public List<TaskingLog> findTaskingLog(){ |
| | | return new ArrayList<TaskingLog>(); |
| | | } |
| | | |
| | | /** |
| | | * 查询 dayCount 天 完工数量-分线路 |
| | | */ |
| | | @Override |
| | | public List<Map> 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<KBBTJPDrawingBP> 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<Map> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper); |
| | | |
| | | List<Map<String, Object>> listTasking1 = baseMapper.selectMaps(new QueryWrapper<TaskingLog>() |
| | | .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<Map<String, Object>> listTasking2 = baseMapper.selectMaps(new QueryWrapper<TaskingLog>() |
| | | .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<Map> Result=new ArrayList<>(); |
| | | for (int i=0;i<dayCount;i++){ |
| | | Date thisdate=cal.getTime(); |
| | | cal.add(Calendar.DATE, 1); |
| | | Map thisMap=new HashMap<>(); |
| | | |
| | | 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 |
| | |
| | | server: |
| | | port: 8081 |
| | | |
| | | tomcat: |
| | | uri-encoding: UTF-8 |
| | | max-threads: 800 #最大工作线程数量 |
| | | min-spare-threads: 20 #最小工作线程数量 |
| | | #max-connections: 10000 #一瞬间最大支持的并发的连接数 |
| | | accept-count: 200 #等待队列长度 |
| | | spring: |
| | | profiles: |
| | | active: prod |
| | |
| | | |
| | | import cn.hutool.core.bean.BeanUtil; |
| | | import cn.smallbun.screw.core.util.CollectionUtils; |
| | | import com.baomidou.mybatisplus.core.conditions.Wrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; |
| | | import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; |
| | | import com.github.yulichang.wrapper.MPJLambdaWrapper; |
| | |
| | | import java.io.OutputStream; |
| | | import java.net.Socket; |
| | | import java.nio.charset.StandardCharsets; |
| | | import java.text.DateFormat; |
| | | import java.text.SimpleDateFormat; |
| | | import java.time.LocalDate; |
| | | import java.util.*; |
| | | import java.util.stream.Collectors; |
| | | |
| | |
| | | |
| | | // log.info("内容{}",KBBTJPDrawingBP); |
| | | } |
| | | //周产量测试 |
| | | @Test |
| | | public void testDailyOutput() { |
| | | Map map=new HashMap(); |
| | | map.put("dayCount",1); |
| | | int dayCount=0-Integer.valueOf(map.get("dayCount").toString()); |
| | | Calendar cal = Calendar.getInstance(); |
| | | //设置当前时间 |
| | | cal.setTime(new Date()); |
| | | cal.add(Calendar.DATE, dayCount); |
| | | |
| | | QueryWrapper<KBBTProgramsOperationLogBP> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("CreateDate,isNull(sum(task_quantity),0) as task_quantity_sum,isNull(sum(report_count),0) as report_count_sum") |
| | | .gt("CreateDate",cal.getTime()).groupBy("CreateDate"); |
| | | List<KBBTProgramsOperationLogBP> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper); |
| | | log.info("内容{}{}",list,cal.getTime()); |
| | | } |
| | | |
| | | //日产量测试 |
| | | @Test |
| | | public void testWeekOutput() { |
| | | Map map=new HashMap(); |
| | | map.put("dayCount",1); |
| | | int dayCount=0-Integer.valueOf(map.get("dayCount").toString()); |
| | | Calendar cal = Calendar.getInstance(); |
| | | //设置当前时间 |
| | | cal.setTime(new Date()); |
| | | cal.add(Calendar.DATE, dayCount); |
| | | QueryWrapper<KBBTProgramsOperationLogBP> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("CAST(CreateDate AS DATE) AS CreateDate,isNull(sum(task_quantity),0) as task_quantity_sum,isNull(sum(length*width*task_quantity)/1000000,0) as area_sum") |
| | | .gt("CreateDate",cal.getTime()).groupBy("CAST(CreateDate AS DATE)"); |
| | | List<KBBTProgramsOperationLogBP> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper); |
| | | log.info("内容{}{}",list,cal.getTime()); |
| | | log.info("内容{}",list); |
| | | } |
| | | |
| | | //日产量未完成 |
| | | @Test |
| | | public void testDayNotFinshOutput() { |
| | | Map map=new HashMap(); |
| | | map.put("dayCount",1); |
| | | int dayCount=0-Integer.valueOf(map.get("dayCount").toString()); |
| | | 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, dayCount); |
| | | QueryWrapper<KBBTJPDrawingBP> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("scan_id,(task_quantity-isNull(report_count,0)) as notComplete,isNull((length*width*(task_quantity-isNull(report_count,0)))/1000000,0) as area_sum"). |
| | | gt("CreateDate",cal.getTime()).apply("task_quantity>isNull(report_count,0)"); |
| | | List<Map> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper); |
| | | log.info("内容{}",list); |
| | | } |
| | | //日产量 分线 已完成 |
| | | @Test |
| | | public void testDayss() { |
| | | List<Map> map=taskingLogService.selectTaskingLog(20); |
| | | log.info("内容{}",map); |
| | | } |
| | | //日产量 分线 已完成 |
| | | @Test |
| | | public void testDays() { |
| | | Map map=new HashMap(); |
| | | map.put("dayCount",5); |
| | | int dayCount=Integer.valueOf(map.get("dayCount").toString()); |
| | | 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); |
| | | //近dayCount天的计划数量 |
| | | QueryWrapper<KBBTJPDrawingBP> queryWrapper = new QueryWrapper<>(); |
| | | queryWrapper.select("CAST(CreateDate AS DATE) AS CreateDate,isNull(sum(task_quantity),0) as task_quantity_sum") |
| | | .gt("CreateDate",cal.getTime()).groupBy("CAST(CreateDate AS DATE)").orderByAsc("CAST(CreateDate AS DATE)"); |
| | | List<Map> list=kBBTJPDrawingBPMapper.selectMaps((QueryWrapper)queryWrapper); |
| | | //近dayCount天的计划数量 |
| | | |
| | | List<String> dateList=new ArrayList<>(); |
| | | Map<String,Object> mapList=new HashMap<>(); |
| | | for (int i=0;i<dayCount;i++){ |
| | | cal.add(Calendar.DATE, 1); |
| | | log.info("内容{}",cal.getTime().toString()); |
| | | dateList.add(cal.getTime().toString());//日期顺序 |
| | | Map<String,Object> item=new HashMap<>(); |
| | | item.put("report_count_sum",0); |
| | | item.put("task_quantity_sum",0); |
| | | try { |
| | | DateFormat df = new SimpleDateFormat("yyyy-MM-dd"); |
| | | Date d=df.parse(cal.getTime().toString()); |
| | | item.put("CreateDate",d.toString()); |
| | | }catch (Exception e){ |
| | | log.info("异常"); |
| | | } |
| | | |
| | | mapList.put(cal.getTime().toString(), item);//每个日期的数据 -匹配用 |
| | | } |
| | | //遍历匹配 |
| | | for (int i=0;i<list.size();i++){ |
| | | cal.setTime((Date)list.get(i).get("CreateDate")); |
| | | cal.set(Calendar.HOUR_OF_DAY, 0); |
| | | cal.set(Calendar.MINUTE, 0); |
| | | cal.set(Calendar.SECOND, 0); |
| | | cal.set(Calendar.MILLISECOND, 0); |
| | | mapList.put(cal.getTime().toString(), list.get(i)); |
| | | } |
| | | //遍历顺序 |
| | | List result=new ArrayList(); |
| | | for (int i=0;i<dateList.size();i++){ |
| | | |
| | | result.add(mapList.get(dateList.get(i))); |
| | | //log.info("结果{}",mapList.get(dateList.get(i))); |
| | | } |
| | | log.info("返回内容{}",result); |
| | | |
| | | |
| | | } |
| | | |
| | | |
| | | |
| | |
| | | server: |
| | | port: 8081 |
| | | |
| | | tomcat: |
| | | uri-encoding: UTF-8 |
| | | max-threads: 800 #最大工作线程数量 |
| | | min-spare-threads: 20 #最小工作线程数量 |
| | | #max-connections: 10000 #一瞬间最大支持的并发的连接数 |
| | | accept-count: 200 #等待队列长度 |
| | | spring: |
| | | profiles: |
| | | active: prod |
| | |
| | | com\mes\energy\entity\EnergyConsumption.class |
| | | com\mes\md\mapper\TaskingMapper.class |
| | | com\mes\md\entity\Machine.class |
| | | com\mes\md\mapper\RoleMapper.class |
| | |
| | | com\mes\md\entity\TaskingLog.class |
| | | com\mes\md\service\impl\WorkTaskDetailServiceImpl.class |
| | | com\mes\md\service\impl\TaskLogServiceImpl.class |
| | | com\mes\energy\mapper\EnergyConsumptionMapper.class |
| | | com\mes\md\mapper\TaskingLogMapper.class |
| | | com\mes\md\controller\EdgeGrindingLogController.class |
| | | com\mes\md\service\LineConfigurationService.class |
| | |
| | | com\mes\md\entity\KBBTLensSorting.class |
| | | com\mes\md\service\impl\KBBTJPDrawingBPServiceImpl.class |
| | | com\mes\md\mapper\ProjectMapper.class |
| | | com\mes\energy\service\EnergyConsumptionService.class |
| | | com\mes\md\controller\EquipmentLogController.class |
| | | com\mes\md\controller\TaskingLogController.class |
| | | com\mes\common\SmbTool.class |
| | |
| | | com\mes\common\S7objectMarking.class |
| | | com\mes\md\entity\KBBTProgramsDeviceOlnlineLogBP.class |
| | | com\mes\md\entity\PrimitiveTask.class |
| | | com\mes\energy\controller\EnergyConsumptionController.class |
| | | com\mes\plcTaskThread\MachineLamination.class |
| | | com\mes\job\MachineTask.class |
| | | com\mes\md\entity\Menu.class |
| | |
| | | com\mes\edgstoragecage\service\impl\EdgStorageCageServiceImpl.class |
| | | com\mes\common\S7objectFlipSlice.class |
| | | com\mes\edgstoragecage\mapper\EdgStorageCageMapper.class |
| | | com\mes\energy\service\impl\EnergyConsumptionServiceImpl.class |
| | | com\mes\md\service\impl\ProjectLogServiceImpl.class |
| | | com\mes\md\service\impl\RoleMenuServiceImpl.class |
| | | com\mes\md\service\TaskingService.class |
| | |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\mapper\AccountMapper.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\mapper\ProjectMapper.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\service\TaskingService.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\energy\service\EnergyConsumptionService.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\mapper\GlassInfoMapper.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\mapper\WorkTaskDetailMapper.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\controller\TaskingLogController.java |
| | |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\service\KBBTJPDrawingBPService.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\common\SmbTool.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\entity\KBBTProgramsDeviceOlnlineLogBP.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\energy\entity\EnergyConsumption.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\entity\Page.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\common\S7objectFlipSlice.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\plcTaskThread\MachineLoad.java |
| | |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\controller\ProjectLogController.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\common\S7objectMarking.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\entity\WorkTaskDetail.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\energy\service\impl\EnergyConsumptionServiceImpl.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\mapper\KBBTProgramsDeviceOlnlineLogBPMapper.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\controller\TaskLogController.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\service\TaskLogService.java |
| | |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\common\tcpIp.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\service\WorkTaskDetailService.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\service\RoleService.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\energy\controller\EnergyConsumptionController.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\service\impl\MachineServiceImpl.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\edgstoragecage\entity\EdgStorageCage.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\mapper\PrimitiveTaskMapper.java |
| | |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\service\EquipmentLogService.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\controller\RoleMenuController.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\common\S7objectMachine.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\energy\mapper\EnergyConsumptionMapper.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\entity\Machine.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\controller\GlassInfoController.java |
| | | D:\workfile\JiuMuMES\JiuMuMesParent\moduleService\DeviceInteractionModule\src\main\java\com\mes\md\service\impl\OrderOriginalPieceServiceImpl.java |
| | |
| | | operationRecordTime:"最新时间", |
| | | sendTime: '发送时间', |
| | | sendContent: '发送内容', |
| | | warehouse:'仓库' |
| | | warehouse:'仓库', |
| | | notCompleteCount:'未完成量', |
| | | notCompleteArea:'未完成面积' |
| | | }, |
| | | machine: { |
| | | mechanicalArm:'自动上片机', |
| | |
| | | ] |
| | | }, |
| | | { |
| | | /*----------- 能耗管理 ----------------*/ |
| | | path: 'Energy', |
| | | name: 'energyConsumption', |
| | | component: () => import('../views/Energy/energyConsumption.vue'), |
| | | children: [ |
| | | { |
| | | path: '/Energy/energyConsumption', |
| | | name: 'energyConsumption', |
| | | component: () => import('../views/Energy/energyConsumption.vue'), |
| | | } |
| | | ] |
| | | }, |
| | | { |
| | | /*----------- 报工管理 ----------------*/ |
| | | path: 'ManualReporting', |
| | | name: 'manualReporting', |
| | |
| | | <!-- 空白页 --> |
| | | |
| | | |
| | | |
| | | |
| | | <script setup> |
| | | import { ref, onMounted } from 'vue' |
| | | import * as echarts from 'echarts' |
| | | import request from '@/utils/request' |
| | | |
| | | const energyData = ref([]) |
| | | const notCompleteData = ref([]) |
| | | |
| | | // 获取能耗数据 |
| | | const loadEnergyData = async () => { |
| | |
| | | } |
| | | } |
| | | |
| | | // 获取未完成数据 |
| | | const loadNotCompleteData = async () => { |
| | | |
| | | request.post('/deviceInteraction/primitiveTask/findDayNotCompleteOutput', |
| | | { |
| | | "dayCount": 2 |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | notCompleteData.value = res.data; |
| | | |
| | | console.log("未完成"+res.data+"1"); |
| | | } else { |
| | | console.error('请求当日产量数据失败:', error); |
| | | } |
| | | }); |
| | | } |
| | | |
| | | const draw = (name, Option) => { |
| | | var myChart = echarts.init(document.getElementById(name)); |
| | | myChart.setOption(Option); |
| | | } |
| | | |
| | | const drawDay = (name, Option) => { |
| | | Option.title.text = "能耗管理"; |
| | | Option.title.text = "能耗管理"; |
| | | draw(name, Option); |
| | | } |
| | | |
| | | // 更新能耗图表 |
| | | const updateEnergyChart = () => { |
| | | // 按日期排序并格式化日期 |
| | | const sortedData = [...energyData.value].sort((a, b) => |
| | | const sortedData = [...energyData.value].sort((a, b) => |
| | | new Date(a.recordDate) - new Date(b.recordDate) |
| | | ).map(item => { |
| | | const date = new Date(item.recordDate); |
| | |
| | | axisPointer: { |
| | | type: 'cross', |
| | | label: { |
| | | backgroundColor: '#6a7985' |
| | | backgroundColor: '#6a7985' |
| | | } |
| | | } |
| | | }, |
| | |
| | | } |
| | | ] |
| | | } |
| | | |
| | | |
| | | drawDay('drawLineChart_day71', energyoption); |
| | | } |
| | | |
| | | onMounted(() => { |
| | | loadEnergyData() |
| | | loadEnergyData(); |
| | | loadNotCompleteData(); |
| | | }) |
| | | </script> |
| | | <script> |
| | | export default { |
| | | mounted() { |
| | | const OptionDay={ // 绘制图表 |
| | | title: { |
| | | text: '产量看板示例' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'cross', |
| | | label: { |
| | | backgroundColor: '#6a7985' |
| | | } |
| | | } |
| | | }, |
| | | legend: { |
| | | data: ['计划产量', '实际产量'] |
| | | }, |
| | | toolbox: { |
| | | feature: { |
| | | saveAsImage: {} |
| | | } |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | containLabel: true |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: ['1-01', '1-02', '1-03', '1-04', '1-05', |
| | | '1-06', '1-07', '1-08', '1-09', '1-10', |
| | | '1-11', '1-12', '1-13', '1-14', '1-15', |
| | | '1-16', '1-17', '1-18', '1-19', '1-20', |
| | | '1-21', '1-22', '1-23', '1-24', '1-25', |
| | | '1-26', '1-27', '1-28', '1-29', '1-30', '1-31'] |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value' |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '计划产量', |
| | | type: 'line', |
| | | areaStyle: {}, |
| | | label: { |
| | | show: true, |
| | | position: 'top' |
| | | }, |
| | | data: [120, 132, 101, 134, 90, 230, 210, |
| | | 120, 132, 101, 134, 90, 230, 210, |
| | | 120, 132, 101, 134, 90, 230, 210, |
| | | 120, 132, 101, 134, 90, 230, 210, |
| | | 120, 132, 101] |
| | | const OptionDayMode = { |
| | | title: { |
| | | text: '计划量看板' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'axis' |
| | | }, |
| | | legend: {}, |
| | | toolbox: { |
| | | show: true, |
| | | feature: { |
| | | dataZoom: { |
| | | yAxisIndex: 'none' |
| | | }, |
| | | { |
| | | name: '实际产量', |
| | | type: 'line', |
| | | areaStyle: {}, |
| | | emphasis: { |
| | | focus: 'series' |
| | | }, |
| | | data: [100, 122, 101, 124, 90, 200, 180, |
| | | 100, 122, 101, 124, 90, 200, 180, |
| | | 100, 122, 101, 124, 90, 200, 180, |
| | | 100, 122, 101, 124, 90, 200, 180, |
| | | 100, 122, 101] |
| | | dataView: { readOnly: false }, |
| | | magicType: { type: ['line', 'bar'] }, |
| | | restore: {}, |
| | | saveAsImage: {} |
| | | } |
| | | }, |
| | | xAxis: { |
| | | type: 'category', |
| | | boundaryGap: false, |
| | | data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] |
| | | }, |
| | | yAxis: { |
| | | type: 'value', |
| | | axisLabel: { |
| | | formatter: '{value} ' |
| | | } |
| | | }, |
| | | series: [ |
| | | { |
| | | name: '平方', |
| | | type: 'line', |
| | | data: [10.3, 11.9, 13.9, 19, 12.8, 12, 9], |
| | | markPoint: { |
| | | data: [ |
| | | { type: 'max', name: 'Max' }, |
| | | { type: 'min', name: 'Min' } |
| | | ] |
| | | }, |
| | | markLine: { |
| | | data: [{ type: 'average', name: 'Avg' }] |
| | | } |
| | | ] |
| | | |
| | | } |
| | | this.drawDay('drawLineChart_day11',OptionDay, 1); |
| | | // this.drawLineChart('drawLineChart_day11', 1); |
| | | // this.drawLineChart('drawLineChart_day21', 1); |
| | | // this.drawLineChart('drawLineChart_day31', 1); |
| | | // this.drawLineChart('drawLineChart_day41', 1); |
| | | // this.drawLineChart('drawLineChart_day51', 1); |
| | | //this.drawLineChart('drawLineChart_week', 1); |
| | | //this.drawBarchart('drawBarchart', 1); |
| | | }, |
| | | { |
| | | name: '片数', |
| | | type: 'line', |
| | | data: [1, -2, 2, 5, 3, 2, 0], |
| | | markPoint: { |
| | | data: [{ name: '周最低', value: -2, xAxis: 1, yAxis: -1.5 }] |
| | | }, |
| | | markLine: { |
| | | data: [ |
| | | { type: 'average', name: 'Avg' }, |
| | | [ |
| | | { |
| | | symbol: 'none', |
| | | x: '90%', |
| | | yAxis: 'max' |
| | | }, |
| | | { |
| | | symbol: 'circle', |
| | | label: { |
| | | position: 'start', |
| | | formatter: 'Max' |
| | | }, |
| | | type: 'max', |
| | | name: '最高点' |
| | | } |
| | | ] |
| | | ] |
| | | } |
| | | } |
| | | ] |
| | | }; |
| | | const OptionYear = { |
| | | tooltip: { |
| | | trigger: 'axis', |
| | | axisPointer: { |
| | | type: 'shadow' |
| | | } |
| | | }, |
| | | legend: {}, |
| | | toolbox: { |
| | | show: true, |
| | | feature: { |
| | | dataZoom: { |
| | | yAxisIndex: 'none' |
| | | }, |
| | | dataView: { readOnly: false }, |
| | | magicType: { type: ['line', 'bar'] }, |
| | | restore: {}, |
| | | saveAsImage: {} |
| | | } |
| | | }, |
| | | grid: { |
| | | left: '3%', |
| | | right: '4%', |
| | | bottom: '3%', |
| | | containLabel: true |
| | | }, |
| | | xAxis: [ |
| | | { |
| | | type: 'category', |
| | | data: ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'] |
| | | } |
| | | ], |
| | | yAxis: [ |
| | | { |
| | | type: 'value' |
| | | } |
| | | ], |
| | | series: [ |
| | | { |
| | | name: '计划量', |
| | | type: 'bar', |
| | | emphasis: { |
| | | focus: 'series' |
| | | }, |
| | | label: { |
| | | show: true, |
| | | formatter: (params) => params.value + '片' |
| | | }, |
| | | data: [1000, 1000, 1000, 1000, 1000, 1000, 1000] |
| | | }, |
| | | { |
| | | name: '一线', |
| | | type: 'bar', |
| | | stack: 'Search Engine', |
| | | emphasis: { |
| | | focus: 'series' |
| | | }, |
| | | label: { |
| | | show: true, |
| | | formatter: (params) => params.value + '片' |
| | | }, |
| | | data: [400, 450, 500, 490, 460, 380, 210] |
| | | }, |
| | | { |
| | | name: '二线', |
| | | type: 'bar', |
| | | stack: 'Search Engine', |
| | | label: { |
| | | show: true, |
| | | formatter: (params) => params.value + '片' |
| | | }, |
| | | emphasis: { |
| | | focus: 'series' |
| | | }, |
| | | data: [500, 400, 300, 400, 400, 290, 700] |
| | | } |
| | | ] |
| | | }; |
| | | //请求当日产量 |
| | | request.post('/deviceInteraction/primitiveTask/findDailyOutput', |
| | | { |
| | | "dayCount": 1 |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | const modeOptions = res.data; |
| | | this.drawDay('drawLineChart_day11', OptionYear, modeOptions); |
| | | // this.drawDay('drawLineChart_day31', OptionYear, modeOptions); |
| | | // this.drawYear('drawLineChart_day51', OptionDayMode, modeOptions); |
| | | } else { |
| | | console.error('请求当日产量数据失败:', error); |
| | | } |
| | | }); |
| | | |
| | | //请求日产量-月 |
| | | request.post('/deviceInteraction/primitiveTask/findDailyOutput', |
| | | { |
| | | "dayCount": 30 |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | const modeOptions = res.data; |
| | | //this.drawDay('drawLineChart_day11', OptionYear, modeOptions); |
| | | this.drawDay('drawLineChart_day31', OptionYear, modeOptions); |
| | | // this.drawYear('drawLineChart_day51', OptionDayMode, modeOptions); |
| | | } else { |
| | | console.error('请求日产量-月数据失败:', error); |
| | | } |
| | | }); |
| | | //请求计划量 |
| | | request.post('/deviceInteraction/primitiveTask/findPlannedQuantity', |
| | | { |
| | | "dayCount": 30 |
| | | }).then((res) => { |
| | | if (res.code == 200) { |
| | | const modeOptions = res.data; |
| | | this.drawYear('drawLineChart_day51', OptionDayMode, modeOptions); |
| | | let textDay=document.getElementById('textDay'); |
| | | let textprice=document.getElementById('textprice'); |
| | | let textarea=document.getElementById('textarea'); |
| | | |
| | | let y_pingfang = res.data.map(v => { return v.area_sum }); |
| | | let y_pianshu = res.data.map(v => { return v.task_quantity_sum }); |
| | | let y_pingfang_sum = 0; |
| | | let y_pianshu_sum =0; |
| | | for(let i=0;i<y_pingfang.length;i++){ |
| | | y_pingfang_sum+=y_pingfang[i]; |
| | | } |
| | | for(let i=0;i<y_pianshu.length;i++){ |
| | | y_pianshu_sum+=y_pianshu[i]; |
| | | } |
| | | |
| | | textDay.innerHTML="日期:"+res.data[0].CreateDate + "-" +res.data[res.data.length-1].CreateDate; |
| | | textprice.innerHTML="片数:"+y_pianshu_sum; |
| | | textarea.innerHTML="平方数:"+y_pingfang_sum; |
| | | // this.drawYear('drawLineChart_day51', OptionDayMode, modeOptions); |
| | | } else { |
| | | console.error('请求计划量-月数据失败:', error); |
| | | } |
| | | }); |
| | | |
| | | }, |
| | | methods: { |
| | | draw(name, Option, data) { |
| | | draw(name, Option) { |
| | | var myChart = echarts.init(document.getElementById(name)); |
| | | myChart.setOption(Option); |
| | | }, |
| | | drawDay(name, Option, data) { |
| | | Option.title.text="日看板"; |
| | | console.log(Option); |
| | | this.draw(name, Option, data); |
| | | }, |
| | | drawLineChart(name, Option, data) { |
| | | console.log(name); |
| | | console.log(data); |
| | | var myChart = echarts.init(document.getElementById(name)); |
| | | myChart.setOption(Option); |
| | | //Option.title.text="日看板"; |
| | | //日看板- 计划量,一线完成,二线完成(片数) |
| | | let x_data = data.map(v => { return v.date }); |
| | | let y_jihua = data.map(v => { return v.plan }); |
| | | let y_one = data.map(v => { return v.line1 }); |
| | | let y_two = data.map(v => { return v.line2 }); |
| | | Option.xAxis[0].data = x_data; |
| | | Option.series[0].data = y_jihua; |
| | | Option.series[1].data = y_one; |
| | | Option.series[2].data = y_two; |
| | | this.draw(name, Option); |
| | | }, |
| | | drawBarchart(name, data) { |
| | | var myChart = echarts.init(document.getElementById(name)); |
| | | myChart.setOption({ // 绘制图表 |
| | | title: { |
| | | text: '总产量看板示例' |
| | | }, |
| | | tooltip: { |
| | | trigger: 'item' |
| | | }, |
| | | legend: { |
| | | top: '5%', |
| | | left: 'center' |
| | | }, |
| | | series: [ |
| | | { |
| | | name: 'Access From', |
| | | type: 'pie', |
| | | radius: ['40%', '70%'], |
| | | avoidLabelOverlap: false, |
| | | label: { |
| | | show: false, |
| | | position: 'center' |
| | | }, |
| | | emphasis: { |
| | | label: { |
| | | show: true, |
| | | fontSize: 40, |
| | | fontWeight: 'bold' |
| | | } |
| | | }, |
| | | labelLine: { |
| | | show: false |
| | | }, |
| | | data: [ |
| | | { value: 1000, name: '计划总片数' }, |
| | | { value: 900, name: '实际总片数' }, |
| | | { value: 10, name: '破损片数' } |
| | | ] |
| | | , label: { |
| | | formatter: '{b}:{c}' |
| | | } |
| | | } |
| | | ] |
| | | |
| | | |
| | | }); |
| | | drawYear(name, Option, data) { |
| | | //计划量- 平方,片数 |
| | | let x_data = data.map(v => { return v.CreateDate }); |
| | | let y_pingfang = data.map(v => { return v.area_sum }); |
| | | let y_pianshu = data.map(v => { return v.task_quantity_sum }); |
| | | Option.xAxis.data = x_data; |
| | | Option.series[0].data = y_pingfang; |
| | | Option.series[1].data = y_pianshu; |
| | | this.draw(name, Option); |
| | | }, |
| | | requsstData() { |
| | | |
| | | } |
| | | } |
| | | } |
| | | </script> |
| | | |
| | | |
| | | <template> |
| | | <div> |
| | | <div style="font-size: 30px;height: 70px;line-height: 70px;border: 1px solid #ccc;text-align: center;"> |
| | | <div style="font-weight: 800;font-size: 30px;height: 70px;line-height: 70px;border: 1px solid #ccc;text-align: center;"> |
| | | JOOMO镜片制造中心驾驶舱 |
| | | </div> |
| | | <div style="margin-left: 20px;"> |
| | | <el-button type="primary" @click="drawPieChart">标准品</el-button> |
| | | <el-button type="primary" @click="drawPieChart">定制品</el-button> |
| | | </div> |
| | | |
| | | <div style="width:100% ;height: 880px;"> |
| | | <div style="width:33.3% ;height: 100%;border: 1px solid #ccc;float: left;"> |
| | | <div id="drawLineChart_day11" style="height: 50%;width: 100%;border: 1px solid #ccc;">日单达成率-片数</div> |
| | | <div id="drawLineChart_day21" style="height: 50%;width: 100%;border: 1px solid #ccc;">月单达成率-片数</div> |
| | | <div style="width:100% ;height: 33.3%;border: 1px solid #ccc;"> |
| | | <div id="drawLineChart_day11" style="height: 100%;width: 20%;border: 1px solid #ccc;float: left;">日单达成率-片数</div> |
| | | <div id="drawLineChart_day12" style="height: 100%;width: 30%;max-height: 260px;border: 1px solid #ccc;float: left;"> |
| | | <!-- 表格内容详情 --> |
| | | <div style="font-weight: 700;font-size: 20px;height: 30px;line-height: 30px;border: 1px solid #ccc;text-align: center;">当日未完成量</div> |
| | | <el-table :data="notCompleteData" stripe |
| | | height="260px" |
| | | :header-cell-style="{ background: '#F2F3F5 ', color: '#1D2129', textAlign: 'center' }" |
| | | :cell-style="{ textAlign: 'center' }"> |
| | | <!-- <el-table-column type="selection" min-width="30" /> --> |
| | | <el-table-column prop="scanId" :label="$t('glassInfo.scanId')" /> |
| | | <el-table-column prop="notComplete" :label="$t('glassInfo.notCompleteCount')" /> |
| | | <el-table-column prop="area_sum" :label="$t('glassInfo.notCompleteArea')" /> |
| | | </el-table> |
| | | </div> |
| | | <div id="drawLineChart_day71" style="height: 100%;width: 50%;border: 1px solid #ccc;float: left;">能耗管理-按天显示(手输) |
| | | </div> |
| | | </div> |
| | | <div style="width:33.3% ;height: 100%;border: 1px solid #ccc;float: left;"> |
| | | <div id="drawLineChart_day31" style="height: 50%;width: 100%;border: 1px solid #ccc;">日单达成率-平方</div> |
| | | <div id="drawLineChart_day41" style="height: 50%;width: 100%;border: 1px solid #ccc;">月单达成率-平方</div> |
| | | <div style="width:100% ;height: 33.3%;border: 1px solid #ccc;"> |
| | | <div id="drawLineChart_day31" style="height: 100%;width: 100%;border: 1px solid #ccc;">两线生产对比-片数</div> |
| | | </div> |
| | | <div style="width:33.3% ;height: 100%;border: 1px solid #ccc;float: left;"> |
| | | <div id="drawLineChart_day51" style="height: 33.3%;width: 100%;border: 1px solid #ccc;">合格率-显示当天</div> |
| | | <div id="drawLineChart_day61" style="height: 33.3%;width: 100%;border: 1px solid #ccc;">设备稼动率</div> |
| | | <div id="drawLineChart_day71" style="height: 33.3%;width: 100%;border: 1px solid #ccc;">能耗管理-按天显示(手输)</div> |
| | | <div style="width:100% ;height: 33.3%;border: 1px solid #ccc;"> |
| | | <div id="drawLineChart_day51" style="height: 100%;width: 80%;border: 1px solid #ccc;float: left;">计划量-片数、平方</div> |
| | | <div id="drawLineChart_day91" style="height: 100%;width: 20%;float: left;"> |
| | | <div style="font-weight: 700;font-size: 20px;height: 30px;line-height: 30px;text-align: center;border: 1px solid #ccc;">总计划量-片数、平方</div> |
| | | <div id="textDay" style="font-size: 20px;height: 30px;margin-left: 20px;margin-top: 20px;">日期:2023-03-01 - 2023-03-01</div> |
| | | <div id="textprice" style="font-size: 20px;height: 30px;margin-left: 20px;margin-top: 20px;">片数:25</div> |
| | | <div id="textarea" style="font-size: 20px;height: 30px;margin-left: 20px;margin-top: 20px;">平方数:2999</div> |
| | | </div> |
| | | </div> |
| | | </div> |
| | | |
| | | |
| | | <!-- <div style="width:33% ;height: 880px;border: 1px solid #ccc;"> |
| | | <div id="drawLineChart_day1" style="height: 300px;width: 25%;border: 1px solid #ccc;float: left;"></div> |
| | | <div id="drawLineChart_day2" style="height: 300px;width: 25%;border: 1px solid #ccc;float: left;"></div> |
| | |
| | | </div> |
| | | </template> |
| | | <style scoped> |
| | | .float{ |
| | | .float { |
| | | float: left; |
| | | } |
| | | .style{ |
| | | width: 600px; |
| | | |
| | | .style { |
| | | width: 600px; |
| | | height: 400px; |
| | | border: 1px solid #ccc; |
| | | } |
| | | |
| | | .chart { |
| | | height: 400px; |
| | | } |