lxzn-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java
@@ -95,12 +95,13 @@ filterChainDefinitionMap.put("/generic/**", "anon");//pdfé¢è§éè¦æä»¶ filterChainDefinitionMap.put("/sys/user/updatePassword", "anon");//é¦é¡µç¨æ·ä¿®æ¹å¯ç filterChainDefinitionMap.put("/sys/getLoginQrcode/**", "anon"); //ç»å½äºç»´ç filterChainDefinitionMap.put("/sys/getLoginQrcode/**", "anon"); //ç»å½äºç»´ç Q filterChainDefinitionMap.put("/sys/getQrcodeToken/**", "anon"); //ç嬿«ç filterChainDefinitionMap.put("/sys/checkAuth", "anon"); //æææ¥å£æé¤ filterChainDefinitionMap.put("/sys/api/appAuth", "anon"); //ç½é¸è®¤è¯æ¥å£æé¤ filterChainDefinitionMap.put("/sys/api/fileUpload", "anon"); //ç½é¸ä¸ä¼ æä»¶æ¥å£æé¤ filterChainDefinitionMap.put("/services/**", "anon"); //webserviceæ¥å£æé¤ filterChainDefinitionMap.put("/mdc/largeScreen/**", "anon"); //çæ¿æ¥å£æé¤ filterChainDefinitionMap.put("/", "anon"); lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/entity/ControlSystem.java
ÎļþÒÑɾ³ý lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceStatusJob.java
@@ -68,12 +68,10 @@ try { List<WsEquipmentStatus> equipmentStatusList = equipmentService.selectEquipmentStatus(); if (equipmentStatusList != null && !equipmentStatusList.isEmpty()) { for (WsEquipmentStatus wsEquipmentStatus : equipmentStatusList) { String s = JSONObject.toJSONString(wsEquipmentStatus); log.info("䏿¥ç¶ææ°æ® ===== " + s); String result = CxfClientUtil.invokeService(url, s, namespace, method); log.info("䏿¥ç¶æç»æ ===== " + result); } String s = JSONObject.toJSONString(equipmentStatusList); log.info("䏿¥ç¶ææ°æ® ===== " + s); String result = CxfClientUtil.invokeService(url, s, namespace, method); log.info("䏿¥ç¶æç»æ ===== " + result); } quartzLog.setIsSuccess(0); } catch (Exception e) { lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/job/WebServiceUtilizationRateJob.java
@@ -67,12 +67,10 @@ try { List<WsEquipmentUtilizationRate> equipmentRateList = equipmentService.selectEquipmentRate(); if (equipmentRateList != null && !equipmentRateList.isEmpty()) { for (WsEquipmentUtilizationRate wsEquipmentUtilizationRate : equipmentRateList) { String s = JSONObject.toJSONString(wsEquipmentUtilizationRate); log.info("䏿¥å©ç¨çæ°æ® ===== {}", s); String result = CxfClientUtil.invokeService(url, s, namespace, method); log.info("䏿¥å©ç¨çç»æ ===== {}", result); } String s = JSONObject.toJSONString(equipmentRateList); log.info("䏿¥å©ç¨çæ°æ® ===== {}", s); String result = CxfClientUtil.invokeService(url, s, namespace, method); log.info("䏿¥å©ç¨çç»æ ===== {}", result); } quartzLog.setIsSuccess(0); } catch (Exception e) { lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/ControlSystemMapper.java
ÎļþÒÑɾ³ý lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/mapper/xml/MdcWorkshopInfoMapper.xml
@@ -4,37 +4,34 @@ <select id="getBigScreenInfo" resultType="org.jeecg.modules.mdc.dto.MdcBigScreenEquipmentDto"> WITH LatestEquipmentLog AS ( SELECT EquipmentID, MAX(CollectTime) AS maxgdtime FROM EquipmentLog GROUP BY EquipmentID ) SELECT mew.id AS id, a.EquipmentID AS equipmentId, me.equipment_name AS equipmentName, me.equipment_type AS equipmentType, met.equipment_type_pictures AS equipmentImage, a.Oporation AS oporation, me.equipment_status AS equipmentStatus, mew.coordinate_left AS coordinateLeft, mew.coordinate_top AS coordinateTop, mew.vw AS vw, mew.vh AS vh, me.id AS equId t3.id AS id, t2.EquipmentID AS equipmentId, t1.equipment_name AS equipmentName, t1.equipment_type AS equipmentType, t5.equipment_type_pictures AS equipmentImage, t2.oporation AS oporation, t1.equipment_status AS equipmentStatus, t3.coordinate_left AS coordinateLeft, t3.coordinate_top AS coordinateTop, t3.vw AS vw, t3.vh AS vh, t1.id AS equId FROM EquipmentLog a INNER JOIN LatestEquipmentLog b ON a.EquipmentID = b.EquipmentID AND a.CollectTime = b.maxgdtime INNER JOIN mdc_workshop_equipment mew ON mew.equipment_id = a.EquipmentID INNER JOIN mdc_equipment me ON me.equipment_id = a.EquipmentID INNER JOIN mdc_equipment_type met ON me.equipment_type = met.equipment_type_name INNER JOIN mdc_workshop_info mwi ON mew.workshop_id = mwi.id mdc_equipment t1 LEFT JOIN equipment t2 ON t1.equipment_id = t2.EquipmentID LEFT JOIN mdc_workshop_equipment t3 ON t1.equipment_id = t3.equipment_id LEFT JOIN mdc_equipment_type t5 ON t1.equipment_type = t5.equipment_type_name WHERE mwi.production_id = #{productionId} EXISTS ( SELECT 1 FROM mdc_workshop_info t4 WHERE t3.workshop_id = t4.id AND t4.production_id = #{ productionId } ); </select> <select id="listByUser" resultType="org.jeecg.modules.mdc.entity.MdcWorkshopInfo"> lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/IControlSystemService.java
ÎļþÒÑɾ³ý lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/ControlSystemServiceImpl.java
ÎļþÒÑɾ³ý lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/LogTableServiceImpl.java
@@ -2,26 +2,23 @@ import cn.hutool.core.io.FileUtil; import cn.hutool.core.io.file.FileReader; import cn.hutool.core.io.file.FileWriter; import cn.hutool.core.net.NetUtil; import cn.hutool.crypto.SmUtil; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import me.zhyd.oauth.log.Log; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang.StringUtils; import org.jeecg.common.exception.JeecgBootException; import org.jeecg.modules.mdc.util.SqlExecutor; import org.jeecg.modules.system.vo.SysLogTypeObjectDto; import org.jeecg.modules.mdc.entity.LogTable; import org.jeecg.modules.system.entity.MdcPassLog; import org.jeecg.modules.mdc.mapper.LogTableMapper; import org.jeecg.modules.mdc.service.ILogTableService; import org.jeecg.modules.system.service.IMdcPassLogService; import org.jeecg.modules.mdc.util.DateUtils; import org.jeecg.modules.mdc.util.FileClient; import org.jeecg.modules.system.util.FileUtils; import org.jeecg.modules.mdc.util.SqlExecutor; import org.jeecg.modules.mdc.util.SyslogClient; import org.springframework.beans.factory.annotation.Autowired; import org.jeecg.modules.system.entity.MdcPassLog; import org.jeecg.modules.system.service.IMdcPassLogService; import org.jeecg.modules.system.util.FileUtils; import org.jeecg.modules.system.vo.SysLogTypeObjectDto; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -29,20 +26,16 @@ import javax.annotation.Resource; import java.io.File; import java.net.InetAddress; import java.nio.charset.StandardCharsets; import java.nio.file.Files; import java.nio.file.Paths; import java.sql.Connection; import java.sql.SQLException; import java.util.ArrayList; import java.util.List; import java.util.stream.Collectors; import java.util.stream.Stream; /** * @author Lius * @date 2024/12/18 14:29 */ @Service @Slf4j public class LogTableServiceImpl extends ServiceImpl<LogTableMapper, LogTable> implements ILogTableService { @Value("${fileService.localFilePath}") @@ -77,6 +70,9 @@ @Value("${fileService.newFilePath}") private String newFilePath; @Value("${fileService.failedLocFilePath}") private String failedLocFilePath; @Resource private IMdcPassLogService mdcPassLogService; @@ -218,16 +214,30 @@ @Transactional(rollbackFor = Exception.class) public void importXmlToData() { File[] files = FileUtil.ls(localFilePath); List<String> failedSqlList = new ArrayList<>(); // ç¨äºå卿§è¡å¤±è´¥ç SQL for (File file : files) { if (file.isFile()) { String loFilePath = localFilePath + file.getName(); FileReader fileReader = new FileReader(loFilePath); String sqlList = fileReader.readString(); try { sqlExecutor.execute(sqlList); } catch (Exception e) { throw new JeecgBootException("æ§è¡sql失败ï¼"); List<String> sqlList = fileReader.readLines(); log.info("æå读åå°{}æ¡sql,æ§è¡æä½", sqlList.size()); for (String sql : sqlList) { try { sqlExecutor.execute(sql); } catch (Exception e) { failedSqlList.add(sql); // throw new JeecgBootException("æ§è¡sql失败ï¼"); } } if (!failedSqlList.isEmpty()) { try { FileUtil.appendLines(failedSqlList, failedLocFilePath, "UTF-8"); } catch (Exception e) { throw new JeecgBootException("æ°æ®åå ¥æä»¶å¤±è´¥ï¼"); } } // String sqlList = fileReader.readString(); if (Integer.parseInt(file.getName().substring(file.getName().length() - 10, file.getName().length() - 4)) == 1) { // å é¤å岿件 FileUtil.clean(newFilePath); lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/service/impl/MdcEquipmentStatisticalShiftInfoServiceImpl.java
@@ -93,7 +93,7 @@ } } @Transactional(readOnly = true) // @Transactional(readOnly = true) List<MdcEquipmentStatisticalShiftInfo> equipmentShiftStatisticalProcess(Equipment equipment, String dateTime) { Date initDate = null; //åæåçç»è®¡æ°æ® lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentStatus.java
@@ -1,6 +1,8 @@ package org.jeecg.modules.mdc.vo; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; import java.util.Date; /** @@ -16,6 +18,7 @@ private String equipmentStatus; @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date creationDate; private String finr; lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/vo/WsEquipmentUtilizationRate.java
@@ -1,5 +1,6 @@ package org.jeecg.modules.mdc.vo; import com.alibaba.fastjson.annotation.JSONField; import lombok.Data; import java.util.Date; @@ -46,5 +47,6 @@ /** * ç»è®¡æ¥æ */ @JSONField(format = "yyyy-MM-dd HH:mm:ss") private Date statisDate; } lxzn-module-mdc/src/main/java/org/jeecg/modules/mdc/webservice/impl/EquipmentWebServiceImpl.java
@@ -15,6 +15,8 @@ import javax.annotation.Resource; import javax.jws.WebService; import java.util.ArrayList; import java.util.List; /** @@ -38,10 +40,18 @@ @Override public String equipmentDaySchedule(String msg) { log.info("MES䏿¥æ¥è®¡ååå§æ°æ® === {}", msg); EquipmentDaySchedule equipmentDaySchedule = JSONObject.parseObject(msg, EquipmentDaySchedule.class); MdcEquipmentDaySchedule mdcEquipmentDaySchedule = new MdcEquipmentDaySchedule(); BeanUtils.copyProperties(equipmentDaySchedule, mdcEquipmentDaySchedule); mdcEquipmentDayScheduleService.save(mdcEquipmentDaySchedule); List<EquipmentDaySchedule> equipmentDayScheduleList = JSONObject.parseArray(msg, EquipmentDaySchedule.class); if (equipmentDayScheduleList == null || equipmentDayScheduleList.isEmpty()) { WsResult wsResult = new WsResult("0", "jsonè§£æå¤±è´¥"); return JSONObject.toJSONString(wsResult); } List<MdcEquipmentDaySchedule> mdcEquipmentDayScheduleList = new ArrayList<>(); for (EquipmentDaySchedule equipmentDaySchedule : equipmentDayScheduleList) { MdcEquipmentDaySchedule mdcEquipmentDaySchedule = new MdcEquipmentDaySchedule(); BeanUtils.copyProperties(equipmentDaySchedule, mdcEquipmentDaySchedule); mdcEquipmentDayScheduleList.add(mdcEquipmentDaySchedule); } mdcEquipmentDayScheduleService.saveBatch(mdcEquipmentDayScheduleList); log.info("MES䏿¥æ¥è®¡åæ°æ®æåï¼"); WsResult wsResult = new WsResult("1", "æå"); @@ -51,11 +61,18 @@ @Override public String equipmentDaySummary(String msg) { log.info("MES䏿¥æ¥æ±æ»åå§æ°æ® === {}", msg); EquipmentDaySummary equipmentDaySummary = JSONObject.parseObject(msg, EquipmentDaySummary.class); MdcEquipmentDaySummary mdcEquipmentDaySummary = new MdcEquipmentDaySummary(); BeanUtils.copyProperties(equipmentDaySummary, mdcEquipmentDaySummary); mdcEquipmentDaySummaryService.save(mdcEquipmentDaySummary); List<EquipmentDaySummary> equipmentDaySummaryList = JSONObject.parseArray(msg, EquipmentDaySummary.class); if (equipmentDaySummaryList == null || equipmentDaySummaryList.isEmpty()) { WsResult wsResult = new WsResult("0", "jsonè§£æå¤±è´¥"); return JSONObject.toJSONString(wsResult); } List<MdcEquipmentDaySummary> mdcEquipmentDaySummaryList = new ArrayList<>(); for (EquipmentDaySummary equipmentDaySummary : equipmentDaySummaryList) { MdcEquipmentDaySummary mdcEquipmentDaySummary = new MdcEquipmentDaySummary(); BeanUtils.copyProperties(equipmentDaySummary, mdcEquipmentDaySummary); mdcEquipmentDaySummaryList.add(mdcEquipmentDaySummary); } mdcEquipmentDaySummaryService.saveBatch(mdcEquipmentDaySummaryList); log.info("MES䏿¥æ¥æ±æ»æ°æ®æåï¼"); WsResult wsResult = new WsResult("1", "æå"); return JSONObject.toJSONString(wsResult); lxzn-module-mdc/src/main/java/org/jeecg/modules/screen/service/impl/MdcLargeScreenServiceImpl.java
@@ -65,7 +65,7 @@ equipmentStatusOverview.setWaitCount(equipmentStatusOverview.getWaitCount() + 1); break; case 3: equipmentStatusOverview.setRunCount(equipmentStatusOverview.getRunCount()); equipmentStatusOverview.setRunCount(equipmentStatusOverview.getRunCount() + 1); break; case 22: equipmentStatusOverview.setErrorCount(equipmentStatusOverview.getErrorCount() + 1); @@ -141,9 +141,7 @@ Map<String, Object> result = new HashMap<>(); // è·ååç产å表 List<MdcProduction> mdcProductionList = mdcProductionService.list( new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, productionId) ); List<MdcProduction> mdcProductionList = mdcProductionService.list(new LambdaQueryWrapper<MdcProduction>().eq(MdcProduction::getParentId, productionId)); if (mdcProductionList == null || mdcProductionList.isEmpty()) { return result; @@ -152,8 +150,7 @@ List<String> dateList = DateUtils.getNearWeek(); result.put("dateList", dateList); // è®¡ç®æ¯ä¸ªå·¥æ®µçå©ç¨ç List<UtilizationRateDto> utilizationMonthDtoList = new ArrayList<>(); for (MdcProduction mdcProduction : mdcProductionList) { List<UtilizationRateDto> utilizationMonthDtoList = mdcProductionList.stream().map(mdcProduction -> { UtilizationRateDto utilizationRateDto = new UtilizationRateDto(); utilizationRateDto.setProductionId(mdcProduction.getId()); utilizationRateDto.setProductionName(mdcProduction.getProductionName()); @@ -161,14 +158,13 @@ .map(date -> { UtilizationRate utilizationMonth = new UtilizationRate(); utilizationMonth.setDate(date); BigDecimal utilizationRate = mdcEquipmentStatisticalInfoService.computeUtilizationWeek(productionId, date.replaceAll("-", "")); BigDecimal utilizationRate = mdcEquipmentStatisticalInfoService.computeUtilizationWeek(mdcProduction.getId(), date.replaceAll("-", "")); utilizationMonth.setUtilizationRate(utilizationRate); return utilizationMonth; }) .collect(Collectors.toList()); }).collect(Collectors.toList()); utilizationRateDto.setUtilizationRateList(utilizationRates); utilizationMonthDtoList.add(utilizationRateDto); } return utilizationRateDto; }).collect(Collectors.toList()); //è®¡ç®æ»åçå©ç¨ç UtilizationRateDto utilizationRateDto = new UtilizationRateDto(); utilizationRateDto.setProductionName("æ»å"); @@ -208,14 +204,13 @@ result.put("productionList", productionList); String date = LocalDate.now().minusDays(1).toString().replaceAll("-", ""); List<UtilizationDayDto> utilizationDayDtos = new ArrayList<>(); for (MdcProduction mdcProduction : mdcProductionList) { List<UtilizationDayDto> utilizationDayDtos = mdcProductionList.stream().map(mdcProduction -> { UtilizationDayDto utilizationDayDto = new UtilizationDayDto(); utilizationDayDto.setProductionName(mdcProduction.getProductionName()); BigDecimal utilizationRate = mdcEquipmentStatisticalInfoService.computeUtilizationWeekTotal(mdcProduction.getId(), date); BigDecimal utilizationRate = mdcEquipmentStatisticalInfoService.computeUtilizationWeek(mdcProduction.getId(), date); utilizationDayDto.setUtilizationRate(utilizationRate); utilizationDayDtos.add(utilizationDayDto); } return utilizationDayDto; }).collect(Collectors.toList()); result.put("dataList", utilizationDayDtos); return result; } lxzn-module-system/lxzn-system-start/src/main/resources/application-dev.yml
@@ -83,7 +83,7 @@ type: com.alibaba.druid.pool.DruidDataSource druid: driverClassName: dm.jdbc.driver.DmDriver url: jdbc:dm://LOCALHOST:5236/?LXZN_MDC_420&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8 url: jdbc:dm://192.168.1.118:5236/?LXZN_MDC_420&zeroDateTimeBehavior=convertToNull&useUnicode=true&characterEncoding=utf-8 username: LXZN_MDC_420 password: 123 #redis é ç½® @@ -226,8 +226,14 @@ pwd: 123 addressToken: /outer/appAuth addressUploadFile: /outer/fileUpload localFilePath: D:/data/sql servicePath: D:/data/sql localFilePath: D:/data/sql #æ¬å°æä»¶è·¯å¾ servicePath: D:/data/sql #ç®æ æä»¶è·¯å¾ logIp: 127.0.0.1 logPort: 8888 newFilePath: D:/data/bak_sql/ #å¤ä»½å°å failedLocFilePath: #失败sqlå°å webservice: url: http://localhost:8081/services/EquipmentWebService?wsdl namespace: http://service.server.webservice.example.com statusMethod: equipmentStatus rateMethod: equipmentRate lxzn-module-system/lxzn-system-start/src/main/resources/application-prod.yml
@@ -254,4 +254,9 @@ servicePath: D:/data/sql logIp: 127.0.0.1 logPort: 8888 newFilePath: D:/data/bak_sql/ #å¤ä»½å°å newFilePath: D:/data/bak_sql/ #å¤ä»½å°å webservice: url: http://20.10.17.19:6099/services/EquipmentWebService?wsdl namespace: http://service.server.webservice.example.com statusMethod: equipmentStatus rateMethod: equipmentRate