cnas-device/src/main/java/com/ruoyi/device/controller/DeviceMaintenanceController.java
@@ -1,27 +1,16 @@ package com.ruoyi.device.controller; import com.alibaba.excel.EasyExcel; import com.alibaba.excel.write.metadata.style.WriteCellStyle; import com.alibaba.excel.write.style.HorizontalCellStyleStrategy; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; import com.ruoyi.common.numgen.NumberGenerator; import com.ruoyi.device.excel.DeviceMaintenanceExport; import com.ruoyi.common.core.domain.entity.User; import com.ruoyi.device.dto.DeviceMaintenanceDto; import com.ruoyi.device.pojo.DeviceMaintenance; import com.ruoyi.device.service.DeviceMaintenanceService; import com.ruoyi.system.mapper.UserMapper; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import org.apache.poi.ss.usermodel.HorizontalAlignment; import org.apache.poi.ss.usermodel.VerticalAlignment; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.text.SimpleDateFormat; import java.util.Date; import java.util.List; import java.util.Locale; /** * todo: åæ²³æ»¨ @@ -35,51 +24,48 @@ private DeviceMaintenanceService deviceMaintenanceService; @Autowired private NumberGenerator<DeviceMaintenance> numberGenerator; private UserMapper userMapper; /** * æ°å¢è®¾å¤ç»´æ¤ä¿å » * 设å¤ç»´æ¤å页æ¥è¯¢ * @param deviceMaintenance * @return */ @ApiOperation(value = "æ°å¢è®¾å¤ç»´æ¤ä¿å »") @PostMapping("/addDeviceMaintenance") public Result addDeviceMaintenance(@RequestBody DeviceMaintenance deviceMaintenance){ String year = new SimpleDateFormat("yy", Locale.CHINESE).format(new Date()); String month = new SimpleDateFormat("MM", Locale.CHINESE).format(new Date()); String processNumber = numberGenerator.generateNumberWithPrefix(3, "DG-TC-23FM " + month + "-" + year + month, DeviceMaintenance::getDeviceNumber); deviceMaintenance.setDeviceNumber(processNumber); return Result.success(deviceMaintenanceService.save(deviceMaintenance)); @ApiOperation(value = "设å¤ç»´æ¤å页æ¥è¯¢") @GetMapping("/selectDeviceMaintenancePage") public Result selectDeviceMaintenancePage(Page page, DeviceMaintenanceDto deviceMaintenance){ return Result.success(deviceMaintenanceService.selectDeviceMaintenancePage(page, deviceMaintenance)); } /** * éè¿è®¾å¤idæ¥è¯¢è®¾å¤ç»´æ¤ä¿å »ä¿¡æ¯ * @param deviceId * @param page * @param deviceNumber * æ°å¢ä¿®æ¹è®¾å¤ç»´æ¤ä¿å » * @param deviceMaintenance * @return */ @ApiOperation(value = "éè¿è®¾å¤idæ¥è¯¢è®¾å¤ç»´æ¤ä¿å »ä¿¡æ¯") @GetMapping("/getDeviceMaintenancePage") public Result getDeviceMaintenancePage(@RequestParam("deviceId") Integer deviceId, Page page, String deviceNumber){ return Result.success(deviceMaintenanceService.getDeviceMaintenancePage(page, deviceId, deviceNumber)); @ApiOperation(value = "æ°å¢ä¿®æ¹è®¾å¤ç»´æ¤ä¿å »") @PostMapping("/addDeviceMaintenance") public Result addDeviceMaintenance(@RequestBody DeviceMaintenance deviceMaintenance){ if (deviceMaintenance.getDeviceId() == null) { throw new RuntimeException("缺å°è®¾å¤id"); } User user = userMapper.selectById(deviceMaintenance.getMaintenanceUserId()); deviceMaintenance.setMaintenanceUserName(user.getName()); return Result.success(deviceMaintenanceService.saveOrUpdate(deviceMaintenance)); } /** * å é¤è®¾å¤ç»´æ¤ä¿å » * å é¤ä¿®æ¹è®¾å¤ç»´æ¤ä¿å » * @param id * @return */ @ApiOperation(value = "æ°å¢è®¾å¤ç»´æ¤ä¿å »") @ApiOperation(value = "å é¤ä¿®æ¹è®¾å¤ç»´æ¤ä¿å »") @DeleteMapping("/deleteDeviceMaintenance") public void deleteDeviceMaintenance( Integer id) { deviceMaintenanceService.removeById(id); public Result deleteDeviceMaintenance(Integer id){ return Result.success(deviceMaintenanceService.removeById(id)); } @ApiOperation(value = "设å¤ç»´æ¤è®°å½å¯¼åº") @GetMapping("/exportMaintenanceRecord") public void exportMaintenanceRecord(@RequestParam("deviceId") Integer deviceId, HttpServletResponse response) throws Exception { deviceMaintenanceService.exportMaintenanceRecord(deviceId, response); } } cnas-device/src/main/java/com/ruoyi/device/dto/DeviceMaintenanceDto.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,20 @@ package com.ruoyi.device.dto; import com.ruoyi.device.pojo.DeviceMaintenance; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * @Author zhuo * @Date 2025/4/17 */ @Data public class DeviceMaintenanceDto extends DeviceMaintenance { @ApiModelProperty("设å¤åç§°") private String deviceName; @ApiModelProperty("设å¤ç¼å·") private String managementNumber; } cnas-device/src/main/java/com/ruoyi/device/mapper/DeviceMaintenanceMapper.java
@@ -1,12 +1,14 @@ package com.ruoyi.device.mapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ruoyi.device.excel.DeviceMaintenanceExport; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.device.dto.DeviceMaintenanceDto; import com.ruoyi.device.pojo.DeviceMaintenance; import org.apache.ibatis.annotations.Mapper; import java.util.List; import org.apache.ibatis.annotations.Param; /** * 设å¤ç»´æ¤ä¿å » @@ -14,4 +16,11 @@ @Mapper public interface DeviceMaintenanceMapper extends BaseMapper<DeviceMaintenance> { /** * 设å¤ç»´æ¤å页æ¥è¯¢ * @param page * @return */ IPage<DeviceMaintenanceDto> selectDeviceMaintenancePage(@Param("page") Page page, @Param("ew") QueryWrapper<DeviceMaintenanceDto> ew); } cnas-device/src/main/java/com/ruoyi/device/pojo/DeviceMaintenance.java
@@ -1,44 +1,59 @@ package com.ruoyi.device.pojo; import com.baomidou.mybatisplus.annotation.*; import lombok.Data; import lombok.EqualsAndHashCode; import org.springframework.format.annotation.DateTimeFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.Date; import com.baomidou.mybatisplus.annotation.*; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** * 设å¤ç»´æ¤ä¿å » * 设å¤ç»´æ¤æ·»å ç»´æ¤è®°å½è¡¨ * * @author makejava * @since 2025-04-17 11:28:56 */ @Data @EqualsAndHashCode(callSuper = false) @TableName("device_maintenance") public class DeviceMaintenance { //设å¤id @TableId(type = IdType.AUTO) private Integer id; @ApiModelProperty("设å¤id") private Integer deviceId; private String deviceName; //ç¼å· private String deviceNumber; //ç»ä¸ç¼å· private String managementNumber; //ç»´æ¤å 容 private String content; //ç»´æ¤æ¥æ @ApiModelProperty("ç»´æ¤æ¥æ") private LocalDate maintenanceDate; @ApiModelProperty("ç»´æ¤å 容") private String maintenanceContent; @ApiModelProperty("ç»´æ¤äººid") private Integer maintenanceUserId; @ApiModelProperty("ç»´æ¤äºº") private String maintenanceUserName; @ApiModelProperty("夿³¨") private String remark; @ApiModelProperty("åå»ºæ¥æ") @TableField(fill = FieldFill.INSERT) @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate date; //䏿¬¡ç»´æ¤æ¥æ @DateTimeFormat(pattern = "yyyy-MM-dd") private LocalDate nextDate; //ç»´æ¤ç±»å private Integer maintenanceType; //ç»´æ¤äººå private String name; //夿³¨ private String comments; private LocalDateTime createTime; @ApiModelProperty("å建人id") @TableField(fill = FieldFill.INSERT) private Integer createUser; @ApiModelProperty("æ´æ°æ¶é´") @TableField(fill = FieldFill.INSERT_UPDATE) private LocalDateTime updateTime; @ApiModelProperty("æ´æ°äººid") @TableField(fill = FieldFill.INSERT_UPDATE) private Integer updateUser; } cnas-device/src/main/java/com/ruoyi/device/service/DeviceMaintenanceService.java
@@ -3,21 +3,17 @@ 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.device.excel.DeviceMaintenanceExport; import com.ruoyi.device.dto.DeviceMaintenanceDto; import com.ruoyi.device.pojo.DeviceMaintenance; import javax.servlet.http.HttpServletResponse; import java.util.List; /** * 设å¤ç»´æ¤ä¿å » */ public interface DeviceMaintenanceService extends IService<DeviceMaintenance> { IPage<DeviceMaintenance> getDeviceMaintenancePage(Page page, Integer deviceId, String deviceNumber); /** * 导åºWord设å¤ç»´æ¤è®°å½ * * @param deviceId * @param response * 设å¤ç»´æ¤å页æ¥è¯¢ * @return */ void exportMaintenanceRecord(Integer deviceId, HttpServletResponse response); IPage<DeviceMaintenanceDto> selectDeviceMaintenancePage(Page page, DeviceMaintenanceDto deviceMaintenance); } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceMaintenanceImpl.java
@@ -1,86 +1,31 @@ package com.ruoyi.device.service.impl; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.deepoove.poi.XWPFTemplate; import com.deepoove.poi.config.Configure; import com.ruoyi.device.excel.DeviceMaintenanceExport; import com.ruoyi.common.utils.QueryWrappers; import com.ruoyi.device.dto.DeviceMaintenanceDto; import com.ruoyi.device.mapper.DeviceMaintenanceMapper; import com.ruoyi.device.mapper.DeviceMapper; import com.ruoyi.device.pojo.DeviceMaintenance; import com.ruoyi.device.service.DeviceMaintenanceService; import com.ruoyi.inspect.util.HackLoopTableRenderPolicy; import org.apache.commons.lang3.ObjectUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.io.OutputStream; import java.net.URLEncoder; import java.util.HashMap; import java.util.List; /** * 设å¤ç»´æ¤ä¿å » */ @Service public class DeviceMaintenanceImpl extends ServiceImpl<DeviceMaintenanceMapper, DeviceMaintenance> implements DeviceMaintenanceService { /** * 设å¤ç»´æ¤å页æ¥è¯¢ * @return */ @Override public IPage<DeviceMaintenance> getDeviceMaintenancePage(Page page, Integer deviceId, String deviceNumber) { if (ObjectUtils.isEmpty(deviceNumber)){ return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery() .eq(DeviceMaintenance::getDeviceId, deviceId)); public IPage<DeviceMaintenanceDto> selectDeviceMaintenancePage(Page page, DeviceMaintenanceDto deviceMaintenance) { if (deviceMaintenance.getDeviceId() == null) { return new Page(); } else return baseMapper.selectPage(page, Wrappers.<DeviceMaintenance>lambdaQuery() .eq(DeviceMaintenance::getDeviceId, deviceId) .like(DeviceMaintenance::getDeviceNumber, deviceNumber)); return baseMapper.selectDeviceMaintenancePage(page, QueryWrappers.queryWrappers(deviceMaintenance)); } @Override public void exportMaintenanceRecord(Integer deviceId, HttpServletResponse response) { // æ¥è¯¢cnas设å¤ç»´ä¿®è®°å½ List<DeviceMaintenance> deviceMaintenanceList = baseMapper.selectList(Wrappers.<DeviceMaintenance>lambdaQuery() .eq(DeviceMaintenance::getDeviceId, deviceId) .select(DeviceMaintenance::getDate, DeviceMaintenance::getDeviceNumber, DeviceMaintenance::getDeviceName, DeviceMaintenance::getManagementNumber, DeviceMaintenance::getContent, DeviceMaintenance::getName, DeviceMaintenance::getComments)); // è·åè·¯å¾ InputStream inputStream = this.getClass().getResourceAsStream("/static/word/maintenance-records.docx"); Configure configure = Configure.builder() .bind("deviceMaintenanceList", new HackLoopTableRenderPolicy()) .build(); // è·åè®¾å¤ åç§° å ç¼å· DeviceMaintenance deviceMaintenance = deviceMaintenanceList.get(0); String deviceName = deviceMaintenance.getDeviceName(); String managementNumber = deviceMaintenance.getManagementNumber(); XWPFTemplate template = XWPFTemplate.compile(inputStream, configure).render( new HashMap<String, Object>() {{ put("deviceMaintenanceList", deviceMaintenanceList); put("deviceName", deviceName); put("managementNumber", managementNumber); }}); try { response.setContentType("application/msword"); String fileName = URLEncoder.encode( "设å¤ç»´æ¤ä¿å »è®°å½", "UTF-8"); response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".docx"); OutputStream os = response.getOutputStream(); template.write(os); os.flush(); os.close(); } catch (Exception e) { e.printStackTrace(); throw new RuntimeException("导åºå¤±è´¥"); } } } cnas-device/src/main/java/com/ruoyi/device/service/impl/DeviceServiceImpl.java
@@ -44,6 +44,7 @@ import java.io.OutputStream; import java.net.URLEncoder; import java.text.SimpleDateFormat; import java.time.LocalDate; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; import java.util.*; @@ -396,11 +397,11 @@ DeviceMaintenance deviceMaintenance = deviceMaintenanceList.get(i); DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyy-MM-dd"); // ç»´ä¿®æ¥æ deviceMetricRecordAndMaintenanceDto.setMaintenanceDateString(deviceMaintenance.getDate().format(dateTimeFormatter)); deviceMetricRecordAndMaintenanceDto.setMaintenanceDateString(deviceMaintenance.getMaintenanceDate().format(dateTimeFormatter)); // å¤çæ¹æ³ deviceMetricRecordAndMaintenanceDto.setHandlingMethod(deviceMaintenance.getContent()); deviceMetricRecordAndMaintenanceDto.setHandlingMethod(deviceMaintenance.getMaintenanceContent()); // 夿³¨ deviceMetricRecordAndMaintenanceDto.setComments(deviceMaintenance.getComments()); deviceMetricRecordAndMaintenanceDto.setComments(deviceMaintenance.getRemark()); } deviceMetricRecordAndMaintenanceDtoList.add(deviceMetricRecordAndMaintenanceDto); cnas-device/src/main/resources/mapper/DeviceBorrowMapper.xml
@@ -6,7 +6,7 @@ select * from ( select db.*,device_name from device_borrow db left join `center-lims`.device on db.device_id=device.id left join device on db.device_id=device.id )a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} @@ -15,7 +15,7 @@ <select id="getDeviceBorrowBydeviceId" resultType="com.ruoyi.device.pojo.DeviceBorrow"> select db.*,device_name from device_borrow db left join `center-lims`.device on db.device_id=device.id left join device on db.device_id=device.id where device_id=#{deviceId} </select> </mapper> cnas-device/src/main/resources/mapper/DeviceMaintenanceMapper.xml
@@ -3,4 +3,18 @@ "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> <mapper namespace="com.ruoyi.device.mapper.DeviceMaintenanceMapper"> <!-- 设å¤ç»´æ¤å页æ¥è¯¢ --> <select id="selectDeviceMaintenancePage" resultType="com.ruoyi.device.dto.DeviceMaintenanceDto"> select * from ( select db.*, d.device_name, d.management_number from device_maintenance db left join device d on db.device_id = d.id)a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> order by maintenance_date desc </select> </mapper> ruoyi-framework/src/main/java/com/ruoyi/framework/config/SecurityConfig.java
@@ -48,7 +48,7 @@ */ @Autowired @Qualifier("UserDetailsByOpenIdServiceImpl") private UserDetailsService userDetailsServiceByOpenId; private UserDetailsService userDetailsServiceBySSO; /** * 认è¯å¤±è´¥å¤çç±» @@ -91,11 +91,11 @@ daoAuthenticationProvider.setPasswordEncoder(bCryptPasswordEncoder()); // ssoç»éé´æ Provider SsoCodeAuthenticationProvider wxCodeAuthenticationProvider = new SsoCodeAuthenticationProvider(); wxCodeAuthenticationProvider.setUserDetailsService(userDetailsServiceByOpenId); SsoCodeAuthenticationProvider ssoCodeAuthenticationProvider = new SsoCodeAuthenticationProvider(); ssoCodeAuthenticationProvider.setUserDetailsService(userDetailsServiceBySSO); List<AuthenticationProvider> providers = new ArrayList<>(); providers.add(wxCodeAuthenticationProvider); providers.add(ssoCodeAuthenticationProvider); providers.add(daoAuthenticationProvider); return new ProviderManager(providers);