smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/controller/WorkstationController.java
@@ -1,14 +1,21 @@ package com.qianwen.smartman.modules.smis.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; import java.util.List; import javax.servlet.http.HttpServletResponse; import javax.validation.Valid; import com.qianwen.smartman.common.cache.RegionCache; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import com.baomidou.mybatisplus.core.metadata.IPage; import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport; import com.qianwen.core.boot.ctrl.BladeController; import com.qianwen.core.excel.util.ExcelUtil; import com.qianwen.core.mp.support.Condition; @@ -22,34 +29,25 @@ import com.qianwen.core.secure.annotation.PreAuth; import com.qianwen.core.tenant.annotation.NonDS; import com.qianwen.core.tool.api.R; import com.qianwen.smartman.common.cache.RegionCache; import com.qianwen.smartman.modules.resource.enums.TemplateEnum; import com.qianwen.smartman.modules.resource.service.ISystemResourceService; import com.qianwen.smartman.modules.smis.dto.WorkstationRealTimeStatusDTO; import com.qianwen.smartman.modules.smis.entity.WorkstationDatapoints; import com.qianwen.smartman.modules.smis.excel.WorkstationImport; import com.qianwen.smartman.modules.smis.service.IDmpVariablesService; import com.qianwen.smartman.modules.smis.service.IWorkstationService; import com.qianwen.smartman.modules.smis.service.WorkstationDatapointsService; import com.qianwen.smartman.modules.smis.vo.DmpVariablesVO; import com.qianwen.smartman.modules.smis.vo.FmsWorkstationGroupVO; import com.qianwen.smartman.modules.smis.vo.FmsWorkstationQueryVO; import com.qianwen.smartman.modules.smis.vo.MachineDmpVariablesVO; import com.qianwen.smartman.modules.smis.vo.WorkMachineEasyVO; import com.qianwen.smartman.modules.smis.vo.WorkstationChangeCalendarVO; import com.qianwen.smartman.modules.smis.vo.WorkstationDatapointsVO; import com.qianwen.smartman.modules.smis.vo.WorkstationPageQueryVO; import com.qianwen.smartman.modules.smis.vo.WorkstationRealTimeStatusVO; import com.qianwen.smartman.modules.smis.vo.WorkstationSubmitVO; import com.qianwen.smartman.modules.smis.vo.WorkstationVO; import com.qianwen.smartman.modules.resource.enums.TemplateEnum; import com.qianwen.smartman.modules.resource.service.ISystemResourceService; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.RequestBody; import org.springframework.web.bind.annotation.RequestParam; import org.springframework.web.bind.annotation.RestController; import org.springframework.web.multipart.MultipartFile; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import io.swagger.annotations.ApiParam; @Api(value = "工位管理", tags = {"工位管理"}) @RestController @@ -59,8 +57,8 @@ public class WorkstationController extends BladeController { @Autowired private IWorkstationService workstationService; @Autowired private IDmpVariablesService dmpVariablesService; //@Autowired //private IDmpVariablesService dmpVariablesService; @Autowired private ISystemResourceService systemResourceService; @@ -71,7 +69,7 @@ public R<WorkstationVO> submit(@Valid @RequestBody WorkstationSubmitVO workstationSubmitVO) { return R.data(this.workstationService.submit(workstationSubmitVO)); } /* @GetResource({"/listDmpVariablesByMachineId"}) @ApiOperation("根据机器id获取采集项") public R<List<DmpVariablesVO>> listDmpVariablesByMachineId(@RequestParam Long machineId) { @@ -84,7 +82,7 @@ public R<MachineDmpVariablesVO> listDmpVariablesByWorkstationId(@RequestParam Long workstationId) { return R.data(this.dmpVariablesService.listByWorkstationId(workstationId)); } */ @GetMapping({"/get"}) @@ -169,14 +167,15 @@ public R<IPage<WorkstationRealTimeStatusVO>> getRealTimeStatus(@RequestBody WorkstationRealTimeStatusDTO dto, Query query) { return R.data(this.workstationService.getRealTimeStatus(dto, query)); } /* @PreAuth @GetResource({"/get-dmp-variables"}) @ApiOperation(value = "获得采集项", notes = "获得采集项") public R<List<DmpVariablesVO>> getDmpVariables(@RequestParam("workstationId") @ApiParam(value = "工位ID", required = true) String workstationId, @RequestParam("machineId") @ApiParam(value = "机器Id", required = false) String machineId) { return R.data(this.workstationService.getDmpVariables(workstationId, machineId)); } */ @PostResource({"/get-workstation-by-groupIds"}) @ApiOperation("多个工位组查询工位") public R<List<WorkstationVO>> getWorkstationByGroupIds(@RequestBody List<String> groupIds) { smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/IWorkstationService.java
@@ -77,13 +77,13 @@ */ IPage<WorkstationRealTimeStatusVO> getRealTimeStatus(WorkstationRealTimeStatusDTO dto, Query query); List<RealTimeStatusVO> getRealTimeProperties(Long workstationId, Long machineId); //List<RealTimeStatusVO> getRealTimeProperties(Long workstationId, Long machineId); IPage<Workstation> listWorkStationOnShiftIndex(List<String> ids, LocalDate localDate, Query query, Integer shift, Integer type); List<Workstation> listWorkStationOnShift(List<Long> ids, LocalDate localDate, List<Integer> shifts, Integer type); List<DmpVariablesVO> getDmpVariables(String workstationId, String machineId); //List<DmpVariablesVO> getDmpVariables(String workstationId, String machineId); Integer countWorkStationOnShiftIndex(List<String> ids, LocalDate localDate, Integer shift, Integer type); smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/IWorkstationWcsService.java
@@ -1,14 +1,18 @@ package com.qianwen.smartman.modules.smis.service; import java.util.List; import com.qianwen.core.mp.base.BaseService; import com.qianwen.smartman.modules.smis.entity.WorkstationWcs; import com.qianwen.smartman.modules.smis.vo.WorkstationWcsSaveNewVO; import com.qianwen.smartman.modules.smis.vo.WorkstationWcsSaveVO; import com.qianwen.smartman.modules.smis.vo.WorkstationWcsVO; /** * TODO:这个类可能都没有用了,关注 */ public interface IWorkstationWcsService extends BaseService<WorkstationWcs> { List<WorkstationWcsVO> insert(List<WorkstationWcsSaveVO> workstationWcsSaveVOList); //List<WorkstationWcsVO> insert(List<WorkstationWcsSaveVO> workstationWcsSaveVOList); Boolean deleteByWorkstationIdList(List<Long> ids); smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/impl/CommonGroupServiceImpl.java
@@ -520,6 +520,17 @@ }).distinct(); }).collect(Collectors.toList())); */ list.addAll( workstations.stream().flatMap(o1 -> { Long id = o1.getId(); return itemList.stream().filter(o22 -> { Integer distinguish = commonGroupTypeVO.getDistinguish(); boolean result = id.equals(o22.getItemId()); return result; }).map(o23 -> { return WorkstationInGroupVO.builder().id(id).parentId(o23.getGroupId()).title(o1.getName()).code(o1.getCode()).isWorkstation(Boolean.TRUE).isGroup(Boolean.FALSE).avatar(o1.getAvatar()).ftpCatalogue(o1.getFtpCatalogue()).build(); }).distinct(); }).collect(Collectors.toList())); return list; } smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/impl/WorkstationServiceImpl.java
@@ -87,7 +87,6 @@ import com.qianwen.smartman.modules.smis.service.ICalendarService; import com.qianwen.smartman.modules.smis.service.ICommonGroupOfItemService; import com.qianwen.smartman.modules.smis.service.ICommonGroupService; import com.qianwen.smartman.modules.smis.service.IDmpVariablesService; import com.qianwen.smartman.modules.smis.service.IMachineService; import com.qianwen.smartman.modules.smis.service.IWorkstationOfMachineService; import com.qianwen.smartman.modules.smis.service.IWorkstationService; @@ -135,8 +134,7 @@ private WorkstationMapper workstationMapper; @Autowired private OssBuilder ossBuilder; @Autowired private IDmpVariablesService dmpVariablesService; @Autowired private IWorkstationWorkbenchService workbenchService; @@ -589,65 +587,11 @@ return manualBuildIPage(query, buildProperties(result, dto.getDeviceStatus())); } @Override public List<RealTimeStatusVO> getRealTimeProperties(Long workstationId, Long machineId) { List<RealTimeStatusVO> properties = new ArrayList<>(); Map<String, Object> map = WorkstationCache.getWorkstationRealTime(String.valueOf(workstationId)); List<DmpVariablesVO> list = this.dmpVariablesService.getDmpVariablesByWorkstationId(workstationId); if (CollectionUtil.isNotEmpty(list)) { list.forEach(dmpVariablesVO -> { RealTimeStatusVO vo = new RealTimeStatusVO(); vo.setKey(dmpVariablesVO.getName()); vo.setName(dmpVariablesVO.getDescription()); vo.setUnit(dmpVariablesVO.getDmpType()); vo.setSort(dmpVariablesVO.getIdx()); vo.setWcsDataType(dmpVariablesVO.getWcsDataType()); vo.setBigScreen(dmpVariablesVO.getBigScreen()); vo.setRealTimeData(dmpVariablesVO.getRealTimeData()); if (map.containsKey(dmpVariablesVO.getName())) { TelemetryDataResponseDTO t = (TelemetryDataResponseDTO) MapUtils.getObject(map, dmpVariablesVO.getName()); vo.setValue(t.getV()); } properties.add(vo); }); } return properties; } public Map<Long, List<RealTimeStatusVO>> getRealTimeProperties(List<Long> workstationIdList) { Map<Long, List<RealTimeStatusVO>> properties = new HashMap<>(); //在这里!!!! //顶顶顶顶 //List<DmpVariablesVO> list = this.dmpVariablesService.getDmpVariablesByWorkstationIds(workstationIdList); //this.wsDpService.getDatapointsByWorkstationIds(); //if (Func.isNotEmpty(list)) { /* Map<Long, List<DmpVariablesVO>> dmpVariablesMap =list.stream().collect(Collectors.groupingBy((v0) -> { return v0.getWorkstationId(); })); dmpVariablesMap.forEach((workstationId, dmpVariablesVOList) -> { ArrayList<RealTimeStatusVO> arrayList = new ArrayList<>(); Map<String, Object> map = WorkstationCache.getWorkstationRealTime(String.valueOf(workstationId));//应该有数据,因为缓存没有,直接查的queryLastParameter dmpVariablesVOList.forEach(dmpVariablesVO -> { RealTimeStatusVO vo = new RealTimeStatusVO(); vo.setKey(dmpVariablesVO.getName()); vo.setName(dmpVariablesVO.getDescription()); vo.setUnit(dmpVariablesVO.getDmpType()); vo.setSort(dmpVariablesVO.getIdx()); vo.setWcsDataType(dmpVariablesVO.getWcsDataType()); vo.setBigScreen(dmpVariablesVO.getBigScreen()); vo.setRealTimeData(dmpVariablesVO.getRealTimeData()); if (map.containsKey(dmpVariablesVO.getName())) { TelemetryDataResponseDTO t = (TelemetryDataResponseDTO) MapUtils.getObject(map, dmpVariablesVO.getName()); vo.setValue(t.getV()); } arrayList.add(vo); }); properties.put(workstationId, arrayList); }); */ //} //yangys修改,改为数据点位的方式 for(Long workstationId: workstationIdList) { @@ -667,7 +611,7 @@ RealTimeStatusVO vo = new RealTimeStatusVO(); prop = cfgRow.getString("dpName"); vo.setKey(prop); /* label = prop; if(StringUtils.equals("DeviceStatus", prop)) { label = "状态"; @@ -675,11 +619,9 @@ label = "产量"; }else if(StringUtils.equals("AlarmNo", prop)) { label = "告警号"; } vo.setName(label); //vo.setUnit(headRow.getString("dpUnit")); }*/ vo.setName(cfgRow.getString("dpLabel")); vo.setSort(i); //vo.setWcsDataType(dmpVariablesVO.getWcsDataType()); vo.setBigScreen(false); vo.setRealTimeData(true); @@ -1041,7 +983,7 @@ } return null; } /* @Override public List<DmpVariablesVO> getDmpVariables(String workstationId, String machineId) { if (Func.isBlank(machineId)) { @@ -1052,6 +994,7 @@ return v0.getRealTimeData(); }).collect(Collectors.toList()); } */ private void checkWorkstation(WorkstationSubmitVO workstationSubmitVO) { if (Func.isNotEmpty(workstationSubmitVO.getCode()) && workstationSubmitVO.getCode().length() > 24) { smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/impl/WorkstationWcsServiceImpl.java
@@ -30,7 +30,6 @@ import com.qianwen.smartman.modules.smis.entity.WorkstationWcs; import com.qianwen.smartman.modules.smis.entity.WorkstationWcsUsage; import com.qianwen.smartman.modules.smis.mapper.WorkstationWcsMapper; import com.qianwen.smartman.modules.smis.service.IDmpVariablesService; import com.qianwen.smartman.modules.smis.service.IWorkstationOfMachineService; import com.qianwen.smartman.modules.smis.service.IWorkstationService; import com.qianwen.smartman.modules.smis.service.IWorkstationWcsService; @@ -52,16 +51,16 @@ @Autowired @Lazy private IWorkstationService workstationService; @Autowired @Lazy private IDmpVariablesService dmpVariablesService; //@Autowired //@Lazy //private IDmpVariablesService dmpVariablesService; @Autowired private IWorkstationDynamicCollectService dynamicCollectService; @Autowired @Lazy private IWorkstationWcsUsageService workstationWcsUsageService; private static final String SUFFIX = "_____0"; /* @Transactional(rollbackFor = {Exception.class}) public List<WorkstationWcsVO> updateBatch(List<WorkstationWcsSaveVO> workstationWcsSaveVOList) { List<WorkstationWcs> workstationWcsList = WorkstationWcsConvert.INSTANCE.convertVOToEntity(workstationWcsSaveVOList); @@ -74,18 +73,7 @@ .eq(WorkstationWcs::getDataType, workstationWcs.getDataType()) .eq(WorkstationWcs::getDataItem, workstationWcs.getDataItem())) .stream().map(WorkstationWcs::getId).collect(Collectors.toList()); /* List<Long> ids = (List) list((Wrapper) ((LambdaQueryWrapper) ((LambdaQueryWrapper) Wrappers.lambdaQuery().eq(Func.isNotEmpty(workstationWcs.getWorkstationId()), (v0) -> { return v0.getWorkstationId(); }, workstationWcs.getWorkstationId()).eq((v0) -> { return v0.getCollectSettingItem(); }, workstationWcs.getCollectSettingItem())).eq((v0) -> { return v0.getDataType(); }, workstationWcs.getDataType())).eq((v0) -> { return v0.getDataItem(); }, workstationWcs.getDataItem())).stream().map((v0) -> { return v0.getId(); }).collect(Collectors.toList());*/ if (Func.isNotEmpty(ids)) { workstationWcsIdList.addAll(ids); } else { @@ -122,7 +110,9 @@ wrapperVO(convert); return convert; } */ /* @Override @Transactional(rollbackFor = {Exception.class}) public List<WorkstationWcsVO> insert(List<WorkstationWcsSaveVO> workstationWcsSaveVOList) { @@ -177,6 +167,7 @@ //返回所有数据的VO列表 return WorkstationWcsConvert.INSTANCE.convert(saveWorkstationWcsList); } */ private void validWorkstationExistsWcs(final List<WorkstationWcsSaveVO> workstationWcsSaveVOList) { boolean exist = (workstationWcsSaveVOList.stream().filter(it -> { @@ -190,7 +181,7 @@ }); Assert.isTrue(!exist, MessageUtils.message("workstation.wcs.usage.id.already.exists", new Object[0]), new Object[0]); } /* private List<DmpVariables> validDmpName(Long workstationId, List<WorkstationWcsSaveVO> workstationWcsSaveVOList) { WorkstationOfMachine one = this.workstationOfMachineService.getWorkstationOfMachineByWorkstationId(workstationId); @@ -207,7 +198,7 @@ List<String> collectItemDistinctList = collectItemList.stream().distinct().collect(Collectors.toList()); Assert.isTrue(collectItemList.size() == collectItemDistinctList.size(), MessageUtils.message("workstationWcs.collectItem.already.exists", new Object[0]), new Object[0]); return dmpVariablesList; } }*/ public void setCrc(WorkstationWcs workstationWcs) { byte[] bytes = workstationWcs.getDataItem().concat(SUFFIX).getBytes(); smart-man-boot/src/main/java/com/qianwen/smartman/modules/visual/controller/VisualStatusController.java
@@ -67,28 +67,29 @@ public R<ChartNameValueDataVO> getOeeAnalysis(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getOeeAnalysis(vo)); } /* @ApiOperationSupport(order = 6) @PostResource({"/workstation-status"}) @ApiOperation(value = "工位实时数据(工位id)", notes = "传入visualBaseVO") public R<ChartDataTableVO> workstationRealTimeStatus(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getWorkstationRealStatus(vo)); } */ @ApiOperationSupport(order = 6) @PostResource({"/workstation-status-chart"}) @ApiOperation(value = "工位状态统计", notes = "工位列表") public R<ChartNameValueDataVO> workstationStatusChart(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getWorkstationRealStatusChart(vo)); } /* @ApiOperationSupport(order = 7) @PostResource({"/workstation-alarm"}) @ApiOperation(value = "工位实时报警数据", notes = "传入visualBaseVO") public R<ChartDataTableVO> workstationAlarmData(@Validated @RequestBody VisualBaseVO vo) { return R.data(this.visualStatusService.getWorkstationAlarm(vo)); } */ @ApiOperationSupport(order = 8) @PostResource({"/oee-top"}) @ApiOperation(value = "设备近N时稼动率TOP", notes = "传入visualBaseVO") smart-man-boot/src/main/java/com/qianwen/smartman/modules/visual/service/IVisualStatusService.java
@@ -21,11 +21,11 @@ ChartNameValueDataVO getOeeAnalysis(VisualBaseVO vo); ChartDataTableVO getWorkstationRealStatus(VisualBaseVO vo); //ChartDataTableVO getWorkstationRealStatus(VisualBaseVO vo); DefaultWcsEnum getWorkstationDefaultWcsEnum(List<RealTimeStatusVO> realTimeProperties); ChartDataTableVO getWorkstationAlarm(VisualBaseVO vo); //ChartDataTableVO getWorkstationAlarm(VisualBaseVO vo); ChartSeriesDataVO getEfficiencyAnalysisTop(TimeStatusVO timeStatusVO, ProductivityTypeEnum oee); smart-man-boot/src/main/java/com/qianwen/smartman/modules/visual/service/impl/VisualStatusServiceImpl.java
@@ -130,7 +130,7 @@ return this.wrapper.entityToOee(data); } /* public ChartDataTableVO getWorkstationRealStatus(VisualBaseVO visualBaseVO) { List<Long> workStationList = visualBaseVO.getWorkStationIdList(); Map<String, Object> header = new LinkedHashMap<>(); @@ -164,7 +164,7 @@ }).collect(Collectors.toList()); ChartDataTableVO chartDataTableVO = new ChartDataTableVO().setData(list).setHeader(header); return chartDataTableVO; } }*/ public DefaultWcsEnum getWorkstationDefaultWcsEnum(final List<RealTimeStatusVO> realTimeProperties) { @@ -181,7 +181,7 @@ }).orElse(null); } /* public ChartDataTableVO getWorkstationAlarm(final VisualBaseVO vo) { List<Long> workStationList = vo.getWorkStationIdList(); List<ICard> voList = new ArrayList<>(); @@ -211,7 +211,7 @@ ChartDataTableVO chartDataTableVO = new ChartDataTableVO().setData(voList).addHeader("code", "报警编码").addHeader(CommonConstant.ALARM_MSG, "报警信息"); return chartDataTableVO; } */ public ChartNameValueDataVO getAverageEfficiencyAnalysis(VisualBaseVO vo, ProductivityTypeEnum productivityTypeEnum) { List<Long> workStationIdList = vo.getWorkStationIdList();