yangys
2025-02-17 74355e14088df2c60da6e9a2b026fa0513709de9
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,8 @@
    private MqttMessageSender mqttMsgSender;
    @Autowired
    private WorkstationDatapointsService wsDpService;
    @Autowired
    private LicenseWrapper licenseWrapper;
    
    private final String NAME = "默认工作台";
    private final Integer SORT = 1;
@@ -186,6 +191,9 @@
    @Override 
    @Transactional(rollbackFor = {Exception.class})
    public WorkstationVO submit(WorkstationSubmitVO workstationSubmitVO) {
       checkLicenseCount();
        checkWorkstation(workstationSubmitVO);
        if (Func.isEmpty(workstationSubmitVO.getId())) {
            checkUnableWorkstation(workstationSubmitVO);
@@ -229,6 +237,18 @@
        }
        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) {
        if (Func.isEmpty(workstationSubmitVO.getId()) && Func.isNotEmpty(workstationSubmitVO.getFtpDirectoryType())) {