cnas-require/src/main/java/com/ruoyi/require/mapper/CollectLaboratoryMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.ruoyi.require.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.require.pojo.CollectLaboratory; /** * 温湿度ééå®éªå®¤ç»å® * * @author zhuo * @since 2024-12-18 */ public interface CollectLaboratoryMapper extends BaseMapper<CollectLaboratory> { } cnas-require/src/main/java/com/ruoyi/require/mapper/CollectTemperatureHumidityMapper.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,15 @@ package com.ruoyi.require.mapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.require.pojo.CollectTemperatureHumidity; /** * 温湿度ééä¿¡æ¯ * * @author zhuo * @since 2024-12-18 */ public interface CollectTemperatureHumidityMapper extends BaseMapper<CollectTemperatureHumidity> { } cnas-require/src/main/java/com/ruoyi/require/pojo/CollectLaboratory.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,41 @@ package com.ruoyi.require.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 温湿度ééå®éªå®¤ç»å® * * @author zhuo * @since 2024-12-18 */ @Data @TableName("collect_laboratory") public class CollectLaboratory { @TableId(value = "id", type = IdType.AUTO) private Integer id; @ApiModelProperty("å®éªå®¤") private String laboratory; @ApiModelProperty("温湿度设å¤ç¼å·") private String deviceCode; @ApiModelProperty("æé«æ¸©åº¦") private Double temperatureHighest; @ApiModelProperty("æä½æ¸©åº¦") private Double temperatureLowest; @ApiModelProperty("æé«æ¹¿åº¦") private Double humidityHighest; @ApiModelProperty("æä½æ¹¿åº¦") private Double humidityLowest; } cnas-require/src/main/java/com/ruoyi/require/pojo/CollectTemperatureHumidity.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,66 @@ package com.ruoyi.require.pojo; import com.baomidou.mybatisplus.annotation.IdType; import com.baomidou.mybatisplus.annotation.TableId; import com.baomidou.mybatisplus.annotation.TableName; import lombok.Data; import java.util.Date; /** * 温湿度ééä¿¡æ¯ * * @author zhuo * @since 2024-12-18 */ @Data @TableName("collect_temperature_humidity") public class CollectTemperatureHumidity { @TableId(type = IdType.AUTO) private Integer superviseId; //7801温度 private Double code7801Temperature; //7801湿度 private Double code7801Humidity; //7802温度 private Double code7802Temperature; //7802湿度 private Double code7802Humidity; //7803温度 private Double code7803Temperature; //7803湿度 private Double code7803Humidity; //7804温度 private Double code7804Temperature; //7804湿度 private Double code7804Humidity; //7805温度 private Double code7805Temperature; //7805湿度 private Double code7805Humidity; //7806温度 private Double code7806Temperature; //7806湿度 private Double code7806Humidity; //7807温度 private Double code7807Temperature; //7807湿度 private Double code7807Humidity; //7808温度 private Double code7808Temperature; //7808湿度 private Double code7808Humidity; //7809温度 private Double code7809Temperature; //7809湿度 private Double code7809Humidity; //7810温度 private Double code7810Temperature; //7810湿度 private Double code7810Humidity; //ééæ¶é´ private Date collectTime; } cnas-require/src/main/java/com/ruoyi/require/task/FeTempHumDateSchedule.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,219 @@ package com.ruoyi.require.task; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.ruoyi.require.mapper.CollectLaboratoryMapper; import com.ruoyi.require.mapper.CollectTemperatureHumidityMapper; import com.ruoyi.require.mapper.FeTempHumDateMapper; import com.ruoyi.require.mapper.FeTempHumRecordMapper; import com.ruoyi.require.pojo.CollectLaboratory; import com.ruoyi.require.pojo.CollectTemperatureHumidity; import com.ruoyi.require.pojo.FeTempHumDate; import com.ruoyi.require.pojo.FeTempHumRecord; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.stereotype.Component; import java.lang.reflect.Field; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalTime; import java.time.format.DateTimeFormatter; import java.util.Calendar; import java.util.List; /** * Author: yuan * Date: 2024-12-19 ææå 8:33:56 * Description: */ @Component public class FeTempHumDateSchedule { @Autowired private CollectLaboratoryMapper collectLaboratoryMapper; @Autowired private FeTempHumDateMapper feTempHumDateMapper; @Autowired private CollectTemperatureHumidityMapper collectTemperatureHumidityMapper; @Autowired private FeTempHumRecordMapper feTempHumRecordMapper; // è·åå½å年份åæä»½ å¦ï¼2024-11 private final SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM"); private String formattedDate = sdf.format(Calendar.getInstance().getTime()); /** * æ£æ¥å®éªå®¤æ¯å¦æä»»å¡ */ public synchronized void checkLaboratoriesSchedule() { // è·åå½å年份åæä»½ å¦ï¼2024-11 formattedDate = sdf.format(Calendar.getInstance().getTime()); // æ¥è¯¢ææçå®éªå®¤ List<CollectLaboratory> collectLaboratories = collectLaboratoryMapper.selectList(null); // éåå®éªå®¤ï¼å¤æä»»å¡åè¡¨ä¸æ¯å¦å该å®éªå®¤çä»»å¡ for (CollectLaboratory collectLaboratory : collectLaboratories) { // æ¥è¯¢æ°æ®åºä¸æ¯å¦åå¨è¯¥å®éªå®¤çä»»å¡ int count = feTempHumDateMapper.selectFeTempHumDateIncludeFormattedDate(collectLaboratory.getLaboratory(), formattedDate); // æ¥è¯¢ç»æä¸º0ï¼è¯´ææ°æ®åºä¸ä¸åå¨è¯¥å®éªå®¤çä»»å¡ï¼éè¦æ°å¢ if (count == 0) { FeTempHumDate feTempHumDate = new FeTempHumDate(); feTempHumDate.setMonthDate(formattedDate); feTempHumDate.setTestAreaName(collectLaboratory.getLaboratory()); feTempHumDateMapper.insert(feTempHumDate); } } } /** * æ¯å¤©9ç¹æ§è¡ä¸æ¬¡ é¤äºææå¤© * è·å温度湿度 */ // @Scheduled(cron = "0/5 * * * * *") @Scheduled(cron = "0 0 9 * * 1-6") // æ¯å¤©9ç¹æ§è¡ä¸æ¬¡ é¤äºææå¤© public void task1() { checkLaboratoriesSchedule(); // æ ¹æ®æ¶é´éåºï¼è·åå°ææ°ç䏿¡æ°æ® CollectTemperatureHumidity collectTemperatureHumidity = collectTemperatureHumidityMapper.selectOne(Wrappers.<CollectTemperatureHumidity>lambdaQuery() .orderByDesc(CollectTemperatureHumidity::getCollectTime) .last("limit 1")); // è·åææçå®éªå®¤ List<CollectLaboratory> collectLaboratories = collectLaboratoryMapper.selectList(null); // éåè·åå®éªå®¤ç¼å· è·å温湿度 ä¿åå¨å¯¹åºç for (CollectLaboratory collectLaboratory : collectLaboratories) { // å®éªå®¤ç¼å· int labNumber = Integer.parseInt(collectLaboratory.getDeviceCode()); // æ ¹æ®å®éªå®¤ç¼å·æ¼æ¥å¯¹åºçæ¹¿åº¦åæ¸©åº¦å段 String temperatureField = "code" + labNumber + "Temperature"; String humidityField = "code" + labNumber + "Humidity"; // è·å温度 Double temperature = getFieldValue(collectTemperatureHumidity, temperatureField) != null ? (Double) getFieldValue(collectTemperatureHumidity, temperatureField) : Double.valueOf(00.0); // è·å湿度 Double humidity = getFieldValue(collectTemperatureHumidity, humidityField) != null ? (Double) getFieldValue(collectTemperatureHumidity, humidityField) : Double.valueOf(00.0); // æ¥è¯¢è¯éªåºå FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery() .eq(FeTempHumDate::getMonthDate, formattedDate) .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory())); Integer dateId = feTempHumDate.getDateId(); // 夿ä»å¤©æ¯å¦ææ¸©æ¹¿åº¦è®°å½ FeTempHumRecord feTempHumRecord = record(dateId); // æ¥è¯¢åºæ¥å°±ä»£è¡¨ä»å¤©è®°å½è¿äºå°±ä¸è®°å½ if (feTempHumRecord != null) { // ææ¸©åº¦æ¹¿åº¦è®°å½å°±ä¸è®°å½ continue; } // å建ä»å¤©æ¸©æ¹¿åº¦è®°å½å¯¹è±¡ è®°å½ä¸å温度湿度 FeTempHumRecord newFeTempHumRecord = new FeTempHumRecord(); newFeTempHumRecord.setRecordDate(LocalDate.now()); newFeTempHumRecord.setMorningTestTime(LocalTime.now()); newFeTempHumRecord.setMorningTemp(temperature.toString()); newFeTempHumRecord.setMorningHum(humidity.toString()); newFeTempHumRecord.setDateId(dateId); feTempHumRecordMapper.insert(newFeTempHumRecord); } } /** * 夿ä»å¤©æ¯å¦ææ¸©æ¹¿åº¦è®°å½ */ private FeTempHumRecord record(Integer dateId) { // è·åä»å¤©çæ¥æ LocalDate today = LocalDate.now(); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("HH:mm:ss"); // è·åä»å¤©ç 00:00:00 å 23:59:59 String start = today.atStartOfDay().format(dateTimeFormatter); // 00:00:00 String end = today.atTime(LocalTime.MAX).format(dateTimeFormatter); // 23:59:59 // æ¥è¯¢ä»å¤©æ¯å¦ææ¸©æ¹¿åº¦è®°å½ return feTempHumRecordMapper.selectOne(Wrappers.<FeTempHumRecord>lambdaQuery() // åªä¸ªå®éªå®¤ .eq(FeTempHumRecord::getDateId, dateId) // è®°å½æ¶é´å¨ä»å¤©ä¹å .eq(FeTempHumRecord::getRecordDate, today) .between(FeTempHumRecord::getMorningTestTime, start, end)); } /** * æ¯å¤©14ç¹æ§è¡ä¸æ¬¡ é¤äºææå 忿天 * è·å温度湿度 */ // @Scheduled(cron = "0/5 * * * * *") @Scheduled(cron = "0 0 14 * * 1-5") // æ¯å¤©14ç¹æ§è¡ä¸æ¬¡ é¤äºææå 忿天 public void task2() { // æ£æ¥å®éªå®¤æ¯å¦æä»»å¡ å¦ææ²¡ææ°å¢ä»»å¡ checkLaboratoriesSchedule(); // æ ¹æ®æ¶é´éåºï¼è·åå°ææ°ç䏿¡æ°æ® CollectTemperatureHumidity collectTemperatureHumidity = collectTemperatureHumidityMapper.selectOne(Wrappers.<CollectTemperatureHumidity>lambdaQuery() .orderByDesc(CollectTemperatureHumidity::getCollectTime) .last("limit 1")); // è·åææçå®éªå®¤ List<CollectLaboratory> collectLaboratories = collectLaboratoryMapper.selectList(null); // éåè·åå®éªå®¤ç¼å· è·å温湿度 ä¿åå¨å¯¹åºç for (CollectLaboratory collectLaboratory : collectLaboratories) { // å®éªå®¤ç¼å· int labNumber = Integer.parseInt(collectLaboratory.getDeviceCode()); // æ ¹æ®å®éªå®¤ç¼å·æ¼æ¥å¯¹åºçæ¹¿åº¦åæ¸©åº¦å段 String temperatureField = "code" + labNumber + "Temperature"; String humidityField = "code" + labNumber + "Humidity"; // è·å温度 Double temperature = getFieldValue(collectTemperatureHumidity, temperatureField) != null ? (Double) getFieldValue(collectTemperatureHumidity, temperatureField) : Double.valueOf(00.0); // è·å湿度 Double humidity = getFieldValue(collectTemperatureHumidity, humidityField) != null ? (Double) getFieldValue(collectTemperatureHumidity, humidityField) : Double.valueOf(00.0); // æ¥è¯¢è¯éªåºå FeTempHumDate feTempHumDate = feTempHumDateMapper.selectOne(Wrappers.<FeTempHumDate>lambdaQuery() .eq(FeTempHumDate::getMonthDate, formattedDate) .eq(FeTempHumDate::getTestAreaName, collectLaboratory.getLaboratory())); Integer dateId = feTempHumDate.getDateId(); // æ¥è¯¢ä»å¤©æ¯å¦ææ¸©æ¹¿åº¦è®°å½ FeTempHumRecord feTempHumRecord = record(dateId); // å¦ææ²¡ææ¥è¯¢ç»æå°±è¯´æä¸å没æè®°å½ if (feTempHumRecord == null) { // å建ä»å¤©æ¸©æ¹¿åº¦è®°å½å¯¹è±¡ è®°å½ä¸å温度湿度 FeTempHumRecord newFeTempHumRecord = new FeTempHumRecord(); newFeTempHumRecord.setAfternoonTime(LocalTime.now()); newFeTempHumRecord.setAfternoonTemp(temperature.toString()); newFeTempHumRecord.setAfternoonHum(humidity.toString()); newFeTempHumRecord.setDateId(dateId); feTempHumRecordMapper.insert(newFeTempHumRecord); continue; } // æ¥è¯¢åºæ¥å°±ä»£è¡¨ä»å¤©è®°å½è¿ å夿ä¸åæè®°å½è¿æ²¡æ // 温度æ¯å¦è®°å½è¿ if (feTempHumRecord.getAfternoonTemp() == null) { // 没æå°±èªå¨è®°å½ feTempHumRecord.setAfternoonTemp(temperature.toString()); // ä¿®æ¹è®°å½æ¶é´ feTempHumRecord.setAfternoonTime(LocalTime.now()); } // 湿度æ¯å¦è®°å½è¿ if (feTempHumRecord.getAfternoonHum() == null) { // 没æå°±èªå¨è®°å½ feTempHumRecord.setAfternoonHum(humidity.toString()); // ä¿®æ¹è®°å½æ¶é´ feTempHumRecord.setAfternoonTime(LocalTime.now()); } feTempHumRecordMapper.updateById(feTempHumRecord); } } /** * æ ¹æ®å®éªå®¤ç¼å·è·å温度湿度 * * @param collectTemperatureHumidity æ¸©åº¦æ¹¿åº¦æ°æ® * @param fieldName åæ®µå * @return åæ®µå¼ */ public static Object getFieldValue(CollectTemperatureHumidity collectTemperatureHumidity, String fieldName) { try { Field field = collectTemperatureHumidity.getClass().getDeclaredField(fieldName); field.setAccessible(true); // 设置å¯ä»¥è®¿é®ç§æå段 return field.get(collectTemperatureHumidity); // è·ååæ®µçå¼ } catch (NoSuchFieldException | IllegalAccessException e) { e.printStackTrace(); return null; } } } inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -27,6 +27,7 @@ import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.scheduling.annotation.Scheduled; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import javax.servlet.ServletException; @@ -76,6 +77,7 @@ } @ApiOperation(value = "æ·»å æ£éªä¸åæ°æ®") @PreAuthorize("@ss.hasPermi('add:insOrder')") @PostMapping("/addInsOrder") public Result<?> addInsOrder(@RequestBody InsPlaceOrderDto insPlaceOrderDto) { return Result.success(insOrderService.addInsOrder(insPlaceOrderDto.getSampleList(), insPlaceOrderDto.getInsOrder())); @@ -216,7 +218,7 @@ public Result<?> delInsOrder(Integer insOrderId) { // æ¥è¯¢è®¢å InsOrder order = insOrderService.getById(insOrderId); if (!order.getState().equals(2)) { if (!(order.getState().equals(2) || order.getState().equals(3))) { throw new ErrorException("åªæéå订åæè½å é¤"); } inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderPlanController.java
@@ -1,6 +1,7 @@ package com.ruoyi.inspect.controller; import com.alibaba.fastjson.JSON; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; @@ -14,10 +15,14 @@ import com.ruoyi.inspect.pojo.InsProduct; import com.ruoyi.inspect.service.InsOrderFileService; import com.ruoyi.inspect.service.InsOrderPlanService; import com.ruoyi.inspect.service.InsOrderRatesService; import com.ruoyi.inspect.service.InsProductService; import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary; import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; @@ -35,10 +40,9 @@ public class InsOrderPlanController { private InsOrderPlanService insOrderPlanService; private InsOrderFileService insOrderFileService; private InsProductService insProductService; private AuxiliaryOutputWorkingHoursTemporaryService auxiliaryOutputWorkingHoursTemporaryService; @ApiOperation(value = "è·åæ£éªä»»å¡å表") @@ -122,6 +126,7 @@ @ApiOperation(value = "ä¸ä¼ éä»¶") @PreAuthorize("@ss.hasPermi('upload:order:file')") @PostMapping("/uploadFile") public Result<?> taskUploadFile(Integer orderId, MultipartFile file) { return Result.success(insOrderPlanService.uploadFile(orderId, file)); @@ -129,6 +134,7 @@ @ApiOperation(value = "å é¤éä»¶") @PreAuthorize("@ss.hasPermi('del:order:file')") @DeleteMapping("/delfile") public Result<?> delfile(Integer id) { return Result.success(insOrderFileService.removeById(id)); @@ -223,6 +229,7 @@ @ApiOperation(value = "ä¿®æ¹æ£éªé¡¹å 容") @PreAuthorize("@ss.hasPermi('update:product:onPlan')") @PostMapping("/updateProductOnPlan") public Result<?> updateProductOnPlan(@RequestBody InsProduct insProduct) { insProductService.updateById(insProduct); @@ -259,4 +266,26 @@ public Result<?> delProductTreeByProductId(Integer productId) { return Result.success(insProductService.removeBindingProductTree(productId)); } /** * æ ¹æ®è®¢åæ¥è¯¢å·¥æ¶è¯¦æ * @return */ @ApiOperation(value = "æ ¹æ®è®¢åæ¥è¯¢å·¥æ¶è¯¦æ ") @PreAuthorize("@ss.hasPermi('get:working:hours:byOrder')") @GetMapping("/getWorkingHoursByOrderId") public Result<IPage<AuxiliaryOutputWorkingHoursTemporary>> getWorkingHoursByOrderId(Page page, AuxiliaryOutputWorkingHoursTemporary workingHoursTemporary) { return Result.success(auxiliaryOutputWorkingHoursTemporaryService.getWorkingHoursByOrderId(page, workingHoursTemporary)); } /** * ä¿®æ¹å·¥æ¶è¯¦æ * @return */ @ApiOperation(value = "ä¿®æ¹å·¥æ¶è¯¦æ ") @PreAuthorize("@ss.hasPermi('update:order:workingHours')") @PostMapping("/updateWorkingHours") public Result updateWorkingHours(@RequestBody AuxiliaryOutputWorkingHoursTemporary workingHoursTemporary) { return Result.success(auxiliaryOutputWorkingHoursTemporaryService.updateById(workingHoursTemporary)); } } inspect-server/src/main/java/com/ruoyi/inspect/controller/RawMaterialOrderController.java
@@ -214,6 +214,7 @@ @ApiOperation(value = "åæææ¥æ£æ¥è¯¢å ¨é¨") @PreAuthorize("@ss.hasPermi('get:Ifs:ByAll')") @GetMapping("/getIfsByAll") public Result getIfsByAll(Page page, IfsInventoryQuantitySupplierDto ifsInventoryQuantityDto){ return Result.success(rawMaterialOrderService.getIfsByOver(page, ifsInventoryQuantityDto)); inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsOrderRatesMapper.java
@@ -1,7 +1,12 @@ package com.ruoyi.inspect.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.inspect.dto.SampleOrderDto; import com.ruoyi.inspect.pojo.InsOrderRates; import org.apache.ibatis.annotations.Param; /** * 订åè´¹ç¨è¡¨ @@ -11,5 +16,10 @@ */ public interface InsOrderRatesMapper extends BaseMapper<InsOrderRates> { /** * æ¥è¯¢è®¢åè´¹ç¨å表 * @return */ IPage<SampleOrderDto> selectInsOrderRates(Page page, @Param("ew") QueryWrapper<SampleOrderDto> ew); } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderRatesServiceImpl.java
@@ -3,6 +3,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.inspect.dto.SampleOrderDto; import com.ruoyi.inspect.mapper.InsOrderRatesMapper; import com.ruoyi.inspect.pojo.InsOrderRates; @@ -26,7 +27,7 @@ */ @Override public IPage<SampleOrderDto> selectInsOrderRates(Page page, SampleOrderDto sampleOrderDto) { return null; return baseMapper.selectInsOrderRates(page, QueryWrappers.queryWrappers(sampleOrderDto)); } } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -442,6 +442,9 @@ if (StringUtils.isBlank(product.getAsk()) || StringUtils.isBlank(product.getTell())) { throw new ErrorException("ææ£éªé¡¹çè¦æ±å¼æè¦æ±æè¿°ä¸ºç©º, 请å 廿 ååºé ç½®è¦æ±å¼æè¦æ±æè¿°"); } if (StringUtils.isBlank(product.getSonLaboratory())) { throw new ErrorException("ææ£éªé¡¹ççåå®éªå®¤ä¸ºç»å®, 请å ç»å®åå®éªå®¤"); } insProductMapper.insert(product); } } inspect-server/src/main/resources/mapper/InsOrderRatesMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.ruoyi.inspect.mapper.InsOrderRatesMapper"> <!-- æ¥è¯¢è´¹ç¨å表 --> <select id="selectInsOrderRates" resultType="com.ruoyi.inspect.dto.SampleOrderDto"> select * from (select io.*, case when io.type_source = 0 then io.sample_view else io.sample end sample, GROUP_CONCAT(DISTINCT isa.model SEPARATOR ' ') AS sample_model from ins_order io LEFT JOIN ins_sample isa ON isa.ins_order_id = io.id group by io.id) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> </select> </mapper> performance-server/src/main/java/com/ruoyi/performance/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.java
@@ -1,7 +1,11 @@ package com.ruoyi.performance.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary; import org.apache.ibatis.annotations.Param; /** * å·¥æ¶æå表 @@ -11,5 +15,11 @@ */ public interface AuxiliaryOutputWorkingHoursTemporaryMapper extends BaseMapper<AuxiliaryOutputWorkingHoursTemporary> { /** * æ ¹æ®è®¢åæ¥è¯¢å·¥æ¶è¯¦æ * @param page * @return */ IPage<AuxiliaryOutputWorkingHoursTemporary> getWorkingHoursByOrderId(Page page, @Param("ew") QueryWrapper<AuxiliaryOutputWorkingHoursTemporary> ew); } performance-server/src/main/java/com/ruoyi/performance/service/AuxiliaryOutputWorkingHoursTemporaryService.java
@@ -1,5 +1,7 @@ package com.ruoyi.performance.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary; @@ -11,5 +13,12 @@ */ public interface AuxiliaryOutputWorkingHoursTemporaryService extends IService<AuxiliaryOutputWorkingHoursTemporary> { /** * æ ¹æ®è®¢åæ¥è¯¢å·¥æ¶è¯¦æ * @param page * @param workingHoursTemporary * @return */ IPage<AuxiliaryOutputWorkingHoursTemporary> getWorkingHoursByOrderId(Page page, AuxiliaryOutputWorkingHoursTemporary workingHoursTemporary); } performance-server/src/main/java/com/ruoyi/performance/service/impl/AuxiliaryOutputWorkingHoursTemporaryServiceImpl.java
@@ -1,6 +1,9 @@ package com.ruoyi.performance.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursTemporaryMapper; import com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary; import com.ruoyi.performance.service.AuxiliaryOutputWorkingHoursTemporaryService; @@ -15,5 +18,15 @@ @Service public class AuxiliaryOutputWorkingHoursTemporaryServiceImpl extends ServiceImpl<AuxiliaryOutputWorkingHoursTemporaryMapper, AuxiliaryOutputWorkingHoursTemporary> implements AuxiliaryOutputWorkingHoursTemporaryService { /** * æ ¹æ®è®¢åæ¥è¯¢å·¥æ¶è¯¦æ * @param page * @param workingHoursTemporary * @return */ @Override public IPage<AuxiliaryOutputWorkingHoursTemporary> getWorkingHoursByOrderId(Page page, AuxiliaryOutputWorkingHoursTemporary workingHoursTemporary) { return baseMapper.getWorkingHoursByOrderId(page, QueryWrappers.queryWrappers(workingHoursTemporary)); } } performance-server/src/main/resources/mapper/AuxiliaryOutputWorkingHoursTemporaryMapper.xml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,14 @@ <?xml version="1.0" encoding="UTF-8" ?> <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd" > <mapper namespace="com.ruoyi.performance.mapper.AuxiliaryOutputWorkingHoursTemporaryMapper"> <!-- æ ¹æ®è®¢åæ¥è¯¢å·¥æ¶è¯¦æ --> <select id="getWorkingHoursByOrderId" resultType="com.ruoyi.performance.pojo.AuxiliaryOutputWorkingHoursTemporary"> select * from auxiliary_output_working_hours_temporary <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> </select> </mapper> pom.xml
@@ -201,13 +201,6 @@ <version>${kaptcha.version}</version> </dependency> <!-- 宿¶ä»»å¡--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-quartz</artifactId> <version>${ruoyi.version}</version> </dependency> <!-- éç¨å·¥å ·--> <dependency> <groupId>com.ruoyi</groupId> @@ -390,7 +383,6 @@ <module>ruoyi-admin</module> <module>ruoyi-framework</module> <module>ruoyi-system</module> <module>ruoyi-quartz</module> <module>ruoyi-common</module> <module>basic-server</module> <module>inspect-server</module> ruoyi-admin/pom.xml
@@ -55,12 +55,6 @@ <artifactId>ruoyi-framework</artifactId> </dependency> <!-- 宿¶ä»»å¡--> <dependency> <groupId>com.ruoyi</groupId> <artifactId>ruoyi-quartz</artifactId> </dependency> <!--åºç¡æ¨¡å--> <dependency> <groupId>com.ruoyi</groupId> ruoyi-admin/src/main/resources/application-druid.yml
@@ -1,3 +1,5 @@ # æ¬å° # æ°æ®æºé ç½® spring: datasource: @@ -60,6 +62,46 @@ config: multi-statement-allow: true # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼ database: 0 # # å¯ç # password: root2022! # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # mybatis-plusé ç½® mybatis-plus: mapper-locations: classpath*:mapper/**/*Mapper.xml type-aliases-package: com.ruoyi.**.domain global-config: banner: off db-config: id-type: auto configuration: map-underscore-to-camel-case: true cache-enabled: false log-impl: org.apache.ibatis.logging.stdout.StdOutImpl # Swaggeré ç½® swagger: # æ¯å¦å¼å¯swagger enabled: true minio: endpoint: http://114.132.189.42/ ruoyi-admin/src/main/resources/application-prod.yml
@@ -1,3 +1,5 @@ # å ¬å¸æµè¯åº # æ°æ®æºé ç½® spring: datasource: @@ -60,6 +62,46 @@ config: multi-statement-allow: true # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼ database: 1 # å¯ç password: root2022! # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # mybatis-plusé ç½® mybatis-plus: mapper-locations: classpath*:mapper/**/*Mapper.xml type-aliases-package: com.ruoyi.**.domain global-config: banner: off db-config: id-type: auto configuration: map-underscore-to-camel-case: true cache-enabled: false log-impl: # org.apache.ibatis.logging.stdout.StdOutImpl # Swaggeré ç½® swagger: # æ¯å¦å¼å¯swagger enabled: true minio: endpoint: http://114.132.189.42/ ruoyi-admin/src/main/resources/application-test.yml
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,153 @@ # è£ å¤æµè¯åºé ç½® # æ°æ®æºé ç½® spring: datasource: type: com.alibaba.druid.pool.DruidDataSource driverClassName: com.mysql.cj.jdbc.Driver druid: # ä¸»åºæ°æ®æº master: url: jdbc:mysql://localhost:3306/center-lims-dz?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root password: zttZTT123! # ä»åºæ°æ®æº slave: # 仿°æ®æºå¼å ³/é»è®¤å ³é enabled: false url: username: password: # åå§è¿æ¥æ° initialSize: 5 # æå°è¿æ¥æ± æ°é minIdle: 10 # æå¤§è¿æ¥æ± æ°é maxActive: 20 # é ç½®è·åè¿æ¥çå¾ è¶ æ¶çæ¶é´ maxWait: 60000 # é ç½®è¿æ¥è¶ æ¶æ¶é´ connectTimeout: 30000 # é ç½®ç½ç»è¶ æ¶æ¶é´ socketTimeout: 60000 # é ç½®é´éå¤ä¹ æè¿è¡ä¸æ¬¡æ£æµï¼æ£æµéè¦å ³éç空é²è¿æ¥ï¼å使¯æ¯«ç§ timeBetweenEvictionRunsMillis: 60000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿å°çåçæ¶é´ï¼å使¯æ¯«ç§ minEvictableIdleTimeMillis: 300000 # é ç½®ä¸ä¸ªè¿æ¥å¨æ± 䏿大çåçæ¶é´ï¼å使¯æ¯«ç§ maxEvictableIdleTimeMillis: 900000 # é ç½®æ£æµè¿æ¥æ¯å¦ææ validationQuery: SELECT 1 FROM DUAL testWhileIdle: true testOnBorrow: false testOnReturn: false webStatFilter: enabled: true statViewServlet: enabled: true # 设置ç½ååï¼ä¸å¡«åå 许ææè®¿é® allow: url-pattern: /druid/* # æ§å¶å°ç®¡çç¨æ·ååå¯ç login-username: ruoyi login-password: 123456 filter: stat: enabled: true # æ ¢SQLè®°å½ log-slow-sql: true slow-sql-millis: 1000 merge-sql: true wall: config: multi-statement-allow: true # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼ database: 0 # # å¯ç password: zttZTT123! # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # mybatis-plusé ç½® mybatis-plus: mapper-locations: classpath*:mapper/**/*Mapper.xml type-aliases-package: com.ruoyi.**.domain global-config: banner: off db-config: id-type: auto configuration: map-underscore-to-camel-case: true cache-enabled: false log-impl: # org.apache.ibatis.logging.stdout.StdOutImpl # Swaggeré ç½® swagger: # æ¯å¦å¼å¯swagger enabled: true minio: endpoint: http://114.132.189.42/ port: 7019 secure: false accessKey: admin secretKey: 12345678 preview-expiry: 24 # é¢è§å°åé»è®¤24å°æ¶ # ç §çåå¨è·¯å¾+++++++++++++++++++++++++++è¿ç»´éè¦é ç½®+++++++++++++++++++++++++++ file: path: /center-lims/Work/img # ä¸ä¼ æä»¶å è®¸çæ©å±å allowed: png,jpg,jpeg,gif wordUrl: /center-lims/Work/word twoCode: /center-lims/Work/two_code #oa: # oaHost: http://192.168.0.49:8000/oa_workflowrequest.asmx?wsdl # prodIp: http://192.168.21.53:8081 # unqualifiedProcessId: 41974 wechat: # è´¨éæ¥æ£éç¥ examiningUrl: https://qyapi.weixin.qq.com/cgi-bin/webhook/send?key=21993616-9966-4fe4-81b0-68e99a40c964 ifs: contract: ZTZB contract-key-get: 4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo= contract-key-post: 4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo= custorder: http://192.168.20.47/PurchService.ashx? custorder-port: http://192.168.20.47:8008/PurchService.ashx? erp-services: http://192.168.20.47:8081 # 夿³¨ 18083å¯ç ï¼zttZTT123!@ mqtt: url: tcp://mqtt-ztt.zttiot.com:1883 # æå¡å¨ip username: forwarder # MQTT-æå¡ç«¯-ç¨æ·å,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å password: ZTlink12345 # MQTT-æå¡ç«¯-å¯ç ï¼,åæä¼ä¿®æ¹ä¸ºç¨æ·ç»å½å¯ç timeout: 100 # è¶ æ¶æ¶é´ ï¼åä½ï¼ç§ï¼ keepalive: 60 # å¿è·³ ï¼åä½ï¼ç§ï¼ qos: 1 # å¿è·³å çº§å« completion-timeout: 3000 # è¿æ¥è¶ æ¶æ¶é´ï¼åä½ï¼ç§ï¼ clientId: javaPublish # clientId subscribe: /ztt/v3/2443521/publish # 订é ä¸»é¢ client: false # 妿å¼åéè¦å¯å¨æµè¯ï¼éè¦æ¹ä¸ºfalseä¸ç¶ä¼ä¸ç´æ¥é ruoyi-admin/src/main/resources/application.yml
@@ -15,8 +15,8 @@ # å¼åç¯å¢é ç½® server: # æå¡å¨çHTTP端å£ï¼é»è®¤ä¸º8080 port: 8002 # æå¡å¨çHTTPç«¯å£ port: 8001 servlet: # åºç¨ç访é®è·¯å¾ context-path: / @@ -70,28 +70,6 @@ # restart: # # çé¨ç½²å¼å ³ # enabled: false # redis é ç½® redis: # å°å host: localhost # 端å£ï¼é»è®¤ä¸º6379 port: 6379 # æ°æ®åºç´¢å¼ database: 0 # # å¯ç # password: root2022! # è¿æ¥è¶ æ¶æ¶é´ timeout: 10s lettuce: pool: # è¿æ¥æ± ä¸çæå°ç©ºé²è¿æ¥ min-idle: 0 # è¿æ¥æ± ä¸çæå¤§ç©ºé²è¿æ¥ max-idle: 8 # è¿æ¥æ± çæå¤§æ°æ®åºè¿æ¥æ° max-active: 8 # #è¿æ¥æ± æå¤§é»å¡çå¾ æ¶é´ï¼ä½¿ç¨è´å¼è¡¨ç¤ºæ²¡æéå¶ï¼ max-wait: -1ms # tokené ç½® token: @@ -108,11 +86,6 @@ supportMethodsArguments: true params: count=countSql # Swaggeré ç½® swagger: # æ¯å¦å¼å¯swagger enabled: true # 鲿¢XSSæ»å» xss: # è¿æ»¤å¼å ³ @@ -122,16 +95,4 @@ # å¹é 龿¥ urlPatterns: /system/*,/monitor/*,/tool/* # mybatis-plusé ç½® mybatis-plus: mapper-locations: classpath*:mapper/**/*Mapper.xml type-aliases-package: com.ruoyi.**.domain global-config: banner: off db-config: id-type: auto configuration: map-underscore-to-camel-case: true cache-enabled: false log-impl: # org.apache.ibatis.logging.stdout.StdOutImpl ruoyi-common/src/main/java/com/ruoyi/common/utils/GZipUtil.java
@@ -28,8 +28,7 @@ return new String(out.toByteArray(), "iso-8859-1"); } catch (Exception e) { e.printStackTrace(); return str; throw new RuntimeException("æ°æ®å缩失败"); } } @@ -55,8 +54,7 @@ return new String(out.toByteArray(), "utf-8"); } catch (Exception e) { e.printStackTrace(); return str; throw new RuntimeException("æ°æ®è§£å失败"); } } ruoyi-quartz/pom.xml
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/config/ScheduleConfig.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobController.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/controller/SysJobLogController.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJob.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/domain/SysJobLog.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobLogMapper.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/mapper/SysJobMapper.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobLogService.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/ISysJobService.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobLogServiceImpl.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/service/impl/SysJobServiceImpl.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/task/RyTask.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/AbstractQuartzJob.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/CronUtils.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/JobInvokeUtil.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzDisallowConcurrentExecution.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/QuartzJobExecution.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/java/com/ruoyi/quartz/util/ScheduleUtils.java
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/resources/mapper/quartz/SysJobLogMapper.xml
ÎļþÒÑɾ³ý ruoyi-quartz/src/main/resources/mapper/quartz/SysJobMapper.xml
ÎļþÒÑɾ³ý