From 537d302507bf5bdc6f6b81ece701abb6e8b6a1e1 Mon Sep 17 00:00:00 2001
From: yangys <y_ys79@sina.com>
Date: 星期四, 20 十一月 2025 17:26:39 +0800
Subject: [PATCH] 工位改为默认查询所有状态

---
 smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/impl/WorkstationServiceImpl.java |   66 ++++++++++++++++++++++++--------
 1 files changed, 49 insertions(+), 17 deletions(-)

diff --git a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/impl/WorkstationServiceImpl.java b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/impl/WorkstationServiceImpl.java
index 243498e..982bd70 100644
--- a/smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/impl/WorkstationServiceImpl.java
+++ b/smart-man-boot/src/main/java/com/qianwen/smartman/modules/smis/service/impl/WorkstationServiceImpl.java
@@ -29,6 +29,7 @@
 import com.alibaba.excel.write.merge.AbstractMergeStrategy;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -42,10 +43,11 @@
 import com.qianwen.core.mp.support.Query;
 import com.qianwen.core.oss.model.BladeFile;
 import com.qianwen.core.secure.utils.AuthUtil;
-import com.qianwen.core.tool.utils.CollectionUtil;
 import com.qianwen.core.tool.utils.DateUtil;
 import com.qianwen.core.tool.utils.Func;
 import com.qianwen.core.tool.utils.StringUtil;
+import com.qianwen.license.common.LicenseExtraModel;
+import com.qianwen.license.common.LicenseVerify;
 import com.qianwen.smartman.common.cache.DictCache;
 import com.qianwen.smartman.common.cache.cps.WorkstationCache;
 import com.qianwen.smartman.common.constant.CalendarConstant;
@@ -59,6 +61,7 @@
 import com.qianwen.smartman.common.enums.DictEnum;
 import com.qianwen.smartman.common.enums.StatusType;
 import com.qianwen.smartman.common.enums.WcsDataTypeEnums;
+import com.qianwen.smartman.common.license.LicenseWrapper;
 import com.qianwen.smartman.common.mqtt.MqttMessageSender;
 import com.qianwen.smartman.common.utils.Lambda;
 import com.qianwen.smartman.common.utils.MessageUtils;
@@ -147,6 +150,10 @@
     private MqttMessageSender mqttMsgSender;
     @Autowired
     private WorkstationDatapointsService wsDpService;
+    @Autowired
+    private LicenseWrapper licenseWrapper;
+    @Autowired
+    private WorkstationDatapointsService dataPointService;
     
     private final String NAME = "榛樿宸ヤ綔鍙�";
     private final Integer SORT = 1;
@@ -186,6 +193,9 @@
     @Override 
     @Transactional(rollbackFor = {Exception.class})
     public WorkstationVO submit(WorkstationSubmitVO workstationSubmitVO) {
+    	
+    	checkLicenseCount();
+    	
         checkWorkstation(workstationSubmitVO);
         if (Func.isEmpty(workstationSubmitVO.getId())) {
             checkUnableWorkstation(workstationSubmitVO);
@@ -213,7 +223,7 @@
         submitWorkstationWorkbench(workstationSubmitVO, workstation);
         WorkstationCache.clearWorkstationCache();
         WorkstationCache.clearWorkstationRealTime(workstation.getId());
-        CacheUtil.clear(ExtCacheConstant.POSTING_WORKSTATION, Boolean.FALSE);
+        CacheUtil.clear(ExtCacheConstant.COLLECT_WORKSTATION, Boolean.FALSE);
         CacheUtil.clear(ExtCacheConstant.POSTING_MACHINE, Boolean.FALSE);
         CacheUtil.clear(ExtCacheConstant.WORKSTATION_MACHINE, Boolean.FALSE);
         String redisKey = ExtCacheConstant.CPS_CACHE.concat(":").concat(":").concat(WorkstationCache.CRC);
@@ -228,6 +238,21 @@
         	
         }
         return workstationVO;
+    }
+    
+    /**
+     * 楠岃瘉璁稿彲涓厤缃殑璁惧鏁伴噺
+     */
+    void checkLicenseCount() {
+    	
+    	Wrapper<Workstation> wrapper = Wrappers.lambdaQuery(Workstation.class).eq(Workstation::getIsDeleted, 0);
+    	Long count = workstationMapper.selectCount(wrapper);
+    	
+
+    	Long machineAmount = licenseWrapper.getWorkstationAmount();
+    	if(count >= machineAmount) {
+    		throw new ServiceException("宸ヤ綅鏁拌秴杩囪鍙笂闄愭暟:"+ machineAmount);
+    	}
     }
     /*
     private void submitWorkstationFtpDirectory(WorkstationSubmitVO workstationSubmitVO, Workstation workstation) {
@@ -356,6 +381,9 @@
             this.workstationWcsService.deleteByWorkstationIdList(workstationIds);
             this.workstationOfMachineService.remove(Wrappers.<WorkstationOfMachine>lambdaQuery().in(WorkstationOfMachine::getWorkstationId, workstationIds));
             this.commonGroupOfItemService.remove(Wrappers.<CommonGroupOfItem>lambdaQuery().in(CommonGroupOfItem::getItemId, workstationIds));
+            
+            //20250324鏂板锛屽垹闄ゅ伐浣嶅搴旂殑鏁版嵁鐐逛綅閰嶇疆銆�
+            dataPointService.removeByWorkstation(workstationIds);
             /*
             this.workstationOfMachineService.remove((Wrapper) Wrappers.lambdaQuery().in((v0) -> {
                 return v0.getWorkstationId();
@@ -364,14 +392,14 @@
                 return v0.getItemId();
             }, workstationIds));*/
             WorkstationCache.clearWorkstationCache();
-            CacheUtil.clear(ExtCacheConstant.POSTING_WORKSTATION, Boolean.FALSE);
+            CacheUtil.clear(ExtCacheConstant.COLLECT_WORKSTATION, Boolean.FALSE);
             CacheUtil.clear(ExtCacheConstant.POSTING_MACHINE, Boolean.FALSE);
             CacheUtil.clear(ExtCacheConstant.WORKSTATION_MACHINE, Boolean.FALSE);
             CacheUtil.clear(redisKey, Boolean.FALSE);
         }
         changeStatus(workstationIds, CommonConstant.DEACTIVATE);
         WorkstationCache.clearWorkstationCache();
-        CacheUtil.clear(ExtCacheConstant.POSTING_WORKSTATION, Boolean.FALSE);
+        CacheUtil.clear(ExtCacheConstant.COLLECT_WORKSTATION, Boolean.FALSE);
         CacheUtil.clear(ExtCacheConstant.POSTING_MACHINE, Boolean.FALSE);
         CacheUtil.clear(ExtCacheConstant.WORKSTATION_MACHINE, Boolean.FALSE);
         CacheUtil.clear(redisKey, Boolean.FALSE);
@@ -387,7 +415,7 @@
                 return String.valueOf(item.getId());
             }).collect(Collectors.toList()));
         }
-        List<WorkstationVO> workstationVOS = this.workstationMapper.listPage(workStationGroupIdList, workstationVOIPage, keyWord, groupId, CommonGroupConstant.ALL_WORKSTATION_ID, status == null ? CommonConstant.ENABLE : status, type, Integer.valueOf(LocalDate.now().getYear()));
+        List<WorkstationVO> workstationVOS = this.workstationMapper.listPage(workStationGroupIdList, workstationVOIPage, keyWord, groupId, CommonGroupConstant.ALL_WORKSTATION_ID, status, type, LocalDate.now().getYear());
         workstationVOS.forEach(workstationVO -> {
             String calendarName = workstationVO.getCalendarName();
             if (Func.isBlank(calendarName)) {
@@ -577,7 +605,7 @@
     @Override 
     public IPage<WorkstationRealTimeStatusVO> getRealTimeStatus(WorkstationRealTimeStatusDTO dto, Query query) {
         List<String> workStationGroupIdList = dto.getWorkStationGroupIdList();
-        if (workStationGroupIdList.size() == 1) {
+        if (workStationGroupIdList !=null && workStationGroupIdList.size() == 1) {
             List<String> workStationGroupIdByParentList = getCommonGroupIds(workStationGroupIdList, new ArrayList<>()).stream().map(item -> {
                 return String.valueOf(item.getId());
             }).collect(Collectors.toList());
@@ -589,6 +617,11 @@
 
    
 
+    /**
+     * 鑾峰彇瀹炴椂鏁版嵁灞曠ず鐨勬暟鎹偣鍒楄〃
+     * @param workstationIdList 宸ヤ綅id闆嗗悎
+     * @return map(宸ヤ綅id -> 鏁版嵁鐐归泦鍚�)
+     */
     public Map<Long, List<RealTimeStatusVO>> getRealTimeProperties(List<Long> workstationIdList) {
         Map<Long, List<RealTimeStatusVO>> properties = new HashMap<>();
         
@@ -603,7 +636,7 @@
     		WorkstationDatapointsVO  dpVO = wsDpService.getDatapoints(workstationId);
     		if(dpVO!=null && ObjectUtil.isNotEmpty(dpVO.getDpHead())) {
     			
-    			String prop,label;
+    			String prop;
     			JSONArray dpCfgJson = JSONArray.parseArray(dpVO.getDpConfig());
 	    		for(int i=0;i<dpCfgJson.size();i++) {
 	    			cfgRow = dpCfgJson.getJSONObject(i);
@@ -640,7 +673,7 @@
 
     @Override 
     public IPage<Workstation> listWorkStationOnShiftIndex(List<String> ids, LocalDate localDate, Query query, Integer shift, Integer type) {
-        return ((WorkstationMapper) this.baseMapper).listWorkStationOnShiftIndex(Condition.getPage(query), Integer.valueOf(localDate.getYear()), DateUtil.formatDate(localDate), shift, type, ids);
+        return this.baseMapper.listWorkStationOnShiftIndex(Condition.getPage(query), localDate.getYear(), DateUtil.formatDate(localDate), shift, type, ids);
     }
 
     @Override 
@@ -1141,16 +1174,16 @@
     }
 
     private IPage<WorkstationRealTimeStatusVO> manualBuildIPage(Query query, List<WorkstationRealTimeStatusVO> result) {
-        Page<WorkstationRealTimeStatusVO> page = new Page<>(query.getCurrent().intValue(), query.getSize().intValue(), result.size());
+        Page<WorkstationRealTimeStatusVO> page = new Page<>(query.getCurrent(), query.getSize(), result.size());
         if (result.size() == 0) {
             return page;
         }
-        if (query.getSize().intValue() == -1) {
+        if (query.getSize() == -1) {
             page.setRecords(result);
-        } else if (result.size() < ((query.getCurrent().intValue() - 1) * query.getSize().intValue()) + query.getSize().intValue()) {
-            page.setRecords(result.subList((query.getCurrent().intValue() - 1) * query.getSize().intValue(), result.size()));
+        } else if (result.size() < ((query.getCurrent() - 1) * query.getSize()) + query.getSize()) {
+            page.setRecords(result.subList((query.getCurrent() - 1) * query.getSize(), result.size()));
         } else {
-            page.setRecords(result.subList((query.getCurrent().intValue() - 1) * query.getSize().intValue(), ((query.getCurrent().intValue() - 1) * query.getSize().intValue()) + query.getSize().intValue()));
+            page.setRecords(result.subList((query.getCurrent() - 1) * query.getSize(), ((query.getCurrent() - 1) * query.getSize()) + query.getSize()));
         }
         return page;
     }
@@ -1161,12 +1194,11 @@
             return dataList;
         }
         //TODO锛屾牸寮忓お宸�
-        Map<Long, List<RealTimeStatusVO>> realTimePropertiesMap = getRealTimeProperties( list.stream().map((v0) -> {
-            return v0.getId();
-        }).collect(Collectors.toList()));
+        Map<Long, List<RealTimeStatusVO>> realTimePropertiesMap = getRealTimeProperties( list.stream().map(WorkstationRealTimeStatusVO::getId).collect(Collectors.toList()));
         
         return list.stream().filter(i -> {
-            boolean filter = Boolean.TRUE.booleanValue();
+            boolean filter = true;
+
             if (Func.isEmpty(i.getMachineId())) {
                 filter = false;
             }

--
Gitblit v1.9.3