zhuo
2025-02-28 217e39bec2ae2a861c4619d277ab0bc823cf85d4
Merge branch 'dev_cr' into dev
已修改25个文件
已添加39个文件
1564 ■■■■■ 文件已修改
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedMapper.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingRecordMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/mapper/PersonBasicInfoMapper.xml 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/resources/mapper/PersonTrainingRecordMapper.xml 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewBackupsMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/ForeignRegisterController.java 15 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/InternalWastesController.java 11 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesContentsController.java 75 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesExpendsController.java 49 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java 10 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesStoreController.java 80 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/SupplierManagementController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/controller/SuppliersDirectoryContentsController.java 77 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/dto/ProcurementSuppliesExpendDto.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/dto/StoreDto.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/excel/StoreExcel.java 37 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesConsumablesMapper.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesExpendsMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesStoreMapper.java 27 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/mapper/SuppliersDirectoryContentsMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/FeLightningProtection.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/ForeignRegister.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesConsumables.java 50 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesExpends.java 53 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesStore.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/pojo/SuppliersDirectoryContents.java 52 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesConsumablesService.java 7 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesExpendsService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesStoreService.java 21 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/SuppliersDirectoryContentsService.java 22 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesConsumablesServiceImpl.java 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesExpendsServiceImpl.java 90 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesStoreServiceImpl.java 125 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/java/com/ruoyi/require/service/impl/SuppliersDirectoryContentsServiceImpl.java 76 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/FeIlluminationMapper.xml 46 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/FeLightningProtectionMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/FePowerStableMapper.xml 63 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml 31 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/FeTempHumRecordMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/ForeignRegisterMapper.xml 39 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/InternalWastesMapper.xml 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/mapper/ProcurementSuppliesStoreMapper.xml 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/static/foreign-register.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/static/illumination.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/static/internal-wastes.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/static/power-stable.docx 补丁 | 查看 | 原始文档 | blame | 历史
cnas-require/src/main/resources/static/temp_hum_date.docx 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/dto/UpdateUserDto.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/annotation/ValueTableShow.java 15 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-framework/src/main/java/com/ruoyi/framework/common/PrintChina.java 60 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java 11 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java 23 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/controller/PersonBasicInfoController.java
@@ -74,7 +74,7 @@
    @ApiOperation(value = "人员明细分页查询")
    @GetMapping("basicInformationOfPersonnelSelectPage")
    public Result<IPage<Map<String, Object>>> basicInformationOfPersonnelSelectPage(Page<List<PersonBasicInfoDetailsDto>> page, String name, Integer departmentId) {
    public Result<IPage<Map<String, Object>>> basicInformationOfPersonnelSelectPage(Page page, String name, Integer departmentId) {
        return Result.success(personBasicInfoService.basicInformationOfPersonnelSelectPage(page, name, departmentId));
    }
@@ -83,7 +83,7 @@
    @PostMapping("/saveCNASFile")
    public Result saveFile(@RequestPart("file") MultipartFile file) {
        String s = FileSaveUtil.uploadWordFile(file);
        return Result.success("上传成功", s);
        return Result.success(s, "上传成功");
    }
    @GetMapping("/getAnnexByUserId")
@@ -176,7 +176,7 @@
     * @return
     */
    @ApiOperation(value = "人员培训基本信息附件删除")
    @GetMapping("/delBasicInfoFileList")
    @DeleteMapping("/delBasicInfoFileList")
    public Result delBasicInfoFileList(Integer basicInfoFileId){
        return Result.success(personBasicInfoFileService.removeById(basicInfoFileId));
    }
@@ -212,7 +212,7 @@
     * @return
     */
    @ApiOperation(value = "人员工作经历删除")
    @GetMapping("/delBasicInfoWorkList")
    @DeleteMapping("/delBasicInfoWorkList")
    public Result delBasicInfoWorkList(Integer basicInfoWorkId){
        return Result.success(personBasicInfoWorkService.removeById(basicInfoWorkId));
    }
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonBasicInfoMapper.java
@@ -6,6 +6,7 @@
import com.ruoyi.common.core.domain.entity.DepartmentDto;
import com.ruoyi.personnel.dto.PersonBasicInfoDto;
import com.ruoyi.personnel.pojo.PersonBasicInfo;
import org.apache.ibatis.annotations.Param;
import java.util.List;
import java.util.Map;
@@ -31,7 +32,7 @@
     * @param departmentId
     * @return
     */
    IPage<Map<String, Object>> selectPersonBasecInfoAndUser(Page page, String name, Integer departmentId);
    IPage<Map<String, Object>> selectPersonBasecInfoAndUser(Page page, @Param("name") String name, @Param("departmentId") Integer departmentId);
    /**
     * å¯¼å‡ºæŸ¥è¯¢äººå‘˜ä¿¡æ¯
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingDetailedMapper.java
@@ -20,11 +20,12 @@
public interface PersonTrainingDetailedMapper extends MyBaseMapper<PersonTrainingDetailed> {
    IPage<PersonTrainingDetailedDto> queryTheAnnualPlanDetailsTable(Page page,
                                                                    String trainingLecturerName,
                                                                    String courseCode, String trainingDate,
                                                                    Integer id,
                                                                    Integer userId,
                                                                    Integer loginUserId);
                                                                    @Param("trainingLecturerName") String trainingLecturerName,
                                                                    @Param("courseCode") String courseCode,
                                                                    @Param("trainingDate") String trainingDate,
                                                                    @Param("id") Integer id,
                                                                    @Param("userId") Integer userId,
                                                                    @Param("loginUserId") Integer loginUserId);
    /**
     * æ ¹æ®ä¸»è¡¨id查询详情
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.personnel.dto.PersonTrainingDto;
import com.ruoyi.personnel.pojo.PersonTraining;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -16,5 +17,5 @@
 */
public interface PersonTrainingMapper extends BaseMapper<PersonTraining> {
    IPage<PersonTrainingDto> personTrainingSelect(Page page, String compilerName, String departLimsId);
    IPage<PersonTrainingDto> personTrainingSelect(Page page, @Param("compilerName") String compilerName,@Param("departLimsId") String departLimsId);
}
cnas-personnel/src/main/java/com/ruoyi/personnel/mapper/PersonTrainingRecordMapper.java
@@ -21,7 +21,7 @@
 */
public interface PersonTrainingRecordMapper extends BaseMapper<PersonTrainingRecord> {
    List<PersonTrainingRecordDto> trainingAndAssessmentRecordsPage(Integer trainingDetailedId, String userName);
    List<PersonTrainingRecordDto> trainingAndAssessmentRecordsPage(@Param("trainingDetailedId") Integer trainingDetailedId,@Param("userName") String userName);
    IPage<PersonTrainingRecordListDto> personnelTrainingPersonnel(Page page, String userName, Integer userId, Integer departLimsId);
cnas-personnel/src/main/java/com/ruoyi/personnel/service/PersonTrainingService.java
@@ -6,6 +6,7 @@
import com.ruoyi.personnel.dto.PersonTrainingDto;
import com.ruoyi.personnel.pojo.PersonTraining;
import com.ruoyi.personnel.pojo.PersonTrainingDetailed;
import org.apache.ibatis.annotations.Param;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
@@ -22,7 +23,7 @@
public interface PersonTrainingService extends IService<PersonTraining> {
    IPage<PersonTrainingDto> personTrainingSelect(Page page,
                                                  String compilerName, String departmentId);
                                                  @Param("compilerName") String compilerName, @Param("departmentId") String departmentId);
    void personTrainingImport(MultipartFile file, PersonTraining training);
cnas-personnel/src/main/resources/mapper/PersonBasicInfoMapper.xml
@@ -35,7 +35,6 @@
            cpbi.professional_title professionalTitle
        from user u
                 left join cnas_person_basic_info cpbi on cpbi.user_id = u.id
                 left join user u1 on u1.id = u.create_user
        <where>
            FIND_IN_SET(#{departmentId},u.depart_lims_id)
            <if test="name != null and name != ''">
cnas-personnel/src/main/resources/mapper/PersonTrainingRecordMapper.xml
@@ -3,10 +3,9 @@
<mapper namespace="com.ruoyi.personnel.mapper.PersonTrainingRecordMapper">
    <select id="trainingAndAssessmentRecordsPage" resultType="com.ruoyi.personnel.dto.PersonTrainingRecordDto">
        select cptr.*, u.account, u.name user_name, u.phone, r.name role_name
        select cptr.*, u.account, u.name user_name, u.phone
        from cnas_person_training_record cptr
                 left join user u on u.id = cptr.user_id
                 left join role r on r.id = u.role_id
        where cptr.course_id = #{trainingDetailedId}
        <if test="userName != null and userName != ''">
            and u.name like concat('%', #{userName}, '%')
cnas-process/src/main/java/com/ruoyi/process/controller/InspectionOrderController.java
@@ -99,10 +99,8 @@
     * @return
     */
    @ApiOperation(value = "委托单查询成品订单")
    @PostMapping("/getInsOrderOnInspection")
    public Result<IPage<InsOrder>> getInsOrderOnInspection(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        InsOrder insOrder = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InsOrder.class);
    @GetMapping("/getInsOrderOnInspection")
    public Result<IPage<InsOrder>> getInsOrderOnInspection(Page page ,InsOrder insOrder) throws Exception {
        return Result.success(inspectionOrderService.getInsOrderOnInspection(page, insOrder));
    }
cnas-process/src/main/java/com/ruoyi/process/controller/ProcessMethodSearchNewController.java
@@ -100,7 +100,7 @@
     */
    @ApiOperation(value = "查询存档")
    @GetMapping("/pageSearchNewArchived")
    public Result<IPage<ProcessMethodSearchNewArchivedDto>> pageSearchNewArchived(ProcessMethodSearchNewArchivedDto archived,Page page) throws Exception {
    public Result pageSearchNewArchived(ProcessMethodSearchNewArchivedDto archived,Page page) throws Exception {
        return Result.success(processMethodSearchNewService.pageSearchNewArchived(page, archived));
    }
cnas-process/src/main/java/com/ruoyi/process/controller/QualityMonitorController.java
@@ -68,7 +68,7 @@
     * @return
     */
    @ApiOperation(value = "监控计划删除")
    @GetMapping("/delQualitySupervise")
    @DeleteMapping("/delQualitySupervise")
    public Result delQualitySupervise(Integer qualityMonitorId) {
        return Result.success(qualityMonitorService.removeById(qualityMonitorId));
    }
cnas-process/src/main/java/com/ruoyi/process/controller/QualitySuperviseController.java
@@ -83,11 +83,12 @@
    /**
     * ç›‘督计划详情列表
     * @param data
     * @param qualitySuperviseDetails
     * @param page
     * @return
     */
    @ApiOperation(value = "监督计划详情列表")
    @PostMapping("/pageQualitySuperviseDetail")
    @GetMapping("/pageQualitySuperviseDetail")
    public Result<IPage<QualitySuperviseDetailsDto>> pageQualitySuperviseDetail(QualitySuperviseDetailsDto qualitySuperviseDetails,Page page) throws Exception {
        return Result.success(qualitySuperviseService.pageQualitySuperviseDetail(page, qualitySuperviseDetails));
    }
@@ -120,7 +121,7 @@
     * @return
     */
    @ApiOperation(value = "删除监督计划详情")
    @GetMapping("/delQualitySuperviseDetail")
    @DeleteMapping("/delQualitySuperviseDetail")
    public Result delQualitySuperviseDetail(Integer superviseDetailsId){
        return Result.success(qualitySuperviseDetailsService.removeById(superviseDetailsId));
    }
cnas-process/src/main/java/com/ruoyi/process/mapper/ProcessMethodSearchNewBackupsMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.process.pojo.ProcessMethodSearchNewBackups;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -22,5 +23,5 @@
     * @param ew
     * @return
     */
    IPage<ProcessMethodSearchNewBackups> pageSearchNewBackups(Page page, QueryWrapper<ProcessMethodSearchNewBackups> ew);
    IPage<ProcessMethodSearchNewBackups> pageSearchNewBackups(Page page, @Param("ew") QueryWrapper<ProcessMethodSearchNewBackups> ew);
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/QualitySuperviseServiceImpl.java
@@ -238,6 +238,7 @@
     */
    @Override
    public List<Map<String, String>> getRecordUser(Integer superviseDetailsId) {
        List<Map<String, String>> recordUser = baseMapper.getRecordUser(superviseDetailsId);
        return baseMapper.getRecordUser(superviseDetailsId);
    }
cnas-require/src/main/java/com/ruoyi/require/controller/ForeignRegisterController.java
@@ -33,14 +33,13 @@
    /**
     * å¤–来人员登记分页查询
     * @param data
     * @param page
     * @param foreignRegister
     * @return
     */
    @ApiOperation(value = "外来人员登记分页查询")
    @PostMapping("/pageForeignRegister")
    public Result<IPage<ForeignRegisterDto>> pageForeignRegister(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        ForeignRegisterDto foreignRegister = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), ForeignRegisterDto.class);
    @GetMapping("/pageForeignRegister")
    public Result<IPage<ForeignRegisterDto>> pageForeignRegister(Page page,ForeignRegisterDto foreignRegister) throws Exception {
        return Result.success(foreignRegisterService.pageForeignRegister(page, foreignRegister));
    }
@@ -69,7 +68,7 @@
     * @return
     */
    @ApiOperation(value = "外来人员登记删除")
    @GetMapping("/delForeignRegister")
    @DeleteMapping("/delForeignRegister")
    public Result delForeignRegister(Integer registerId){
        return Result.success(foreignRegisterService.removeById(registerId));
    }
@@ -89,8 +88,8 @@
     * @return
     */
    @ApiOperation(value = "导出外来人员登记")
    @PostMapping("/exportForeignRegister")
    public void exportForeignRegister(@RequestBody ForeignRegisterDto foreignRegister, HttpServletResponse response){
    @GetMapping("/exportForeignRegister")
    public void exportForeignRegister(ForeignRegisterDto foreignRegister, HttpServletResponse response){
        foreignRegisterService.exportForeignRegister(foreignRegister, response);
    }
cnas-require/src/main/java/com/ruoyi/require/controller/InternalWastesController.java
@@ -33,14 +33,13 @@
    /**
     * å®‰å…¨å†…务三废处理分页查询
     * @param data
     * @param page
     * @param internalWastes
     * @return
     */
    @ApiOperation(value = "安全内务三废处理分页查询")
    @PostMapping("/pageInternalWastes")
    public Result<IPage<InternalWastesDto>> pageInternalWastes(@RequestBody Map<String, Object> data) throws Exception {
        Page page = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("page")), Page.class);
        InternalWastes internalWastes = JackSonUtil.unmarshal(JackSonUtil.marshal(data.get("entity")), InternalWastes.class);
    @GetMapping("/pageInternalWastes")
    public Result<IPage<InternalWastesDto>> pageInternalWastes(Page page,InternalWastes internalWastes) throws Exception {
        return Result.success(internalWastesService.pageInternalWastes(page, internalWastes));
    }
@@ -69,7 +68,7 @@
     * @return
     */
    @ApiOperation(value = "安全内务三废处理删除")
    @GetMapping("/delInternalWastes")
    @DeleteMapping("/delInternalWastes")
    public Result delInternalWastes(Integer wastesId){
        return Result.success(internalWastesService.delInternalWastes(wastesId));
    }
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesContentsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,75 @@
package com.ruoyi.require.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.require.pojo.ProcurementSuppliesContents;
import com.ruoyi.require.service.ProcurementSuppliesContentsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
@Api(tags = "服务和供应品采购公司列表")
@RestController
@RequestMapping("/procurementSuppliesContents")
@AllArgsConstructor
public class ProcurementSuppliesContentsController {
    private ProcurementSuppliesContentsService procurementSuppliesService;
    @ApiOperation(value = "查询目录列表")
    @GetMapping("/directoryListing")
    public Result directoryListing() {
        return Result.success(procurementSuppliesService.directoryListing());
    }
    @ApiOperation(value = "根据id查询")
    @GetMapping("/selectProcurementSuppliesContentById")
    public Result selectProcurementSuppliesContentById(Integer id) {
        return Result.success(procurementSuppliesService.getById(id));
    }
    @ApiOperation(value = "添加子节点")
    @PostMapping("/addProcurementSuppliesContents")
    public Result addProcurementSuppliesContents(@RequestBody ProcurementSuppliesContents procurementSupplies) {
        procurementSupplies.setUpdateTime(LocalDateTime.now());
        procurementSuppliesService.save(procurementSupplies);
        return Result.success(procurementSupplies.getId());
    }
    @ApiOperation(value = "更新子节点")
    @PostMapping("/updateProcurementSuppliesContents")
    public Result updateProcurementSuppliesContents(@RequestBody ProcurementSuppliesContents procurementSupplies) {
        return Result.success(procurementSuppliesService.updateById(procurementSupplies));
    }
    @ApiOperation(value = "删除子节点")
    @DeleteMapping("/deleteProcurementSuppliesContentById")
    public Result deleteProcurementSuppliesContentById(Integer id) {
        List<ProcurementSuppliesContents> list = procurementSuppliesService.list(new LambdaQueryWrapper<ProcurementSuppliesContents>()
                .eq(ProcurementSuppliesContents::getParentId, id));
        if(list.size() > 0) {
            throw new ErrorException("该节点含有子节点,请先删除子节点");
        }
        procurementSuppliesService.removeById(id);
        return Result.success();
    }
    @ApiOperation(value = "查询所有节点")
    @GetMapping("/getNodeNames")
    public Result getNodeNames() {
        return Result.success(procurementSuppliesService.getNodeNames());
    }
    @ApiOperation(value = "获取所有人员")
    @GetMapping("/getUserList")
    public Result getUserList() {
        return Result.success(procurementSuppliesService.getUserList());
    }
}
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesExpendsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,49 @@
package com.ruoyi.require.controller;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.require.dto.ProcurementSuppliesExpendDto;
import com.ruoyi.require.service.ProcurementSuppliesExpendsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
/**
 * <p>
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-11-15 03:47:19
 */
@Api(tags = "服务和供应品采购耗材消耗")
@RestController
@RequestMapping("/procurementSuppliesExpends")
public class ProcurementSuppliesExpendsController {
    @Autowired
    private ProcurementSuppliesExpendsService procurementSuppliesExpendsService;
    @ApiOperation(value = "查询所有记录")
    @GetMapping("/procurementSuppliesExpendlist")
    public Result procurementSuppliesExpendlist(Long procurementSuppliesListId) {
        return Result.success(procurementSuppliesExpendsService.selectAll(procurementSuppliesListId));
    }
    @ApiOperation(value = "新增消耗记录")
    @PostMapping("/addProcurementSuppliesExpends")
    public Result addProcurementSuppliesExpends(@RequestBody ProcurementSuppliesExpendDto dto) throws ServiceException {
        Integer added = procurementSuppliesExpendsService.addExpends(dto);
        if ( added == 0) {
            return Result.fail("当前库存不足");
        }
        return Result.success(added);
    }
    @ApiOperation(value = "删除消耗记录")
    @DeleteMapping("/deleteProcurementSuppliesExpends")
    public Result deleteProcurementSuppliesExpends(Long expendId) throws ServiceException {
        return Result.success(procurementSuppliesExpendsService.deleteExpends(expendId));
    }
}
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesListController.java
@@ -79,14 +79,14 @@
    }
    @ApiOperation(value = "删除耗材")
    @PostMapping("/deleteProcurementSuppliesList")
    public Result deleteProcurementSuppliesList(@RequestBody ProcurementSuppliesListDto dto) {
        return Result.success(listMapper.deleteById(dto.getId()));
    @DeleteMapping("/deleteProcurementSuppliesList")
    public Result deleteProcurementSuppliesList(Long id) {
        return Result.success(listMapper.deleteById(id));
    }
    @ApiOperation(value = "导出耗材列表")
    @PostMapping("/exportProcurementSuppliesList/{parentId}")
    public void exportProcurementSuppliesList( @PathVariable Integer parentId ,HttpServletResponse response) throws Exception {
    @GetMapping("/exportProcurementSuppliesList")
    public void exportProcurementSuppliesList(Integer parentId ,HttpServletResponse response) throws Exception {
        procurementSuppliesListService.exportProcurementSuppliesList(parentId,response);
    }
cnas-require/src/main/java/com/ruoyi/require/controller/ProcurementSuppliesStoreController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,80 @@
package com.ruoyi.require.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.utils.JackSonUtil;
import com.ruoyi.require.dto.StoreDto;
import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
import com.ruoyi.require.pojo.ProcurementSuppliesStore;
import com.ruoyi.require.service.ProcurementSuppliesConsumablesService;
import com.ruoyi.require.service.ProcurementSuppliesStoreService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.AllArgsConstructor;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@Api(tags = "服务和供应品采购耗材入库")
@RestController
@RequestMapping("/procurementSuppliesStore")
@AllArgsConstructor
public class ProcurementSuppliesStoreController {
    private ProcurementSuppliesStoreService storeService;
    private ProcurementSuppliesConsumablesService consumablesService;
    @ApiOperation(value = "耗材入库分页查询")
    @GetMapping("/storeList")
    public Result storeList(Page page,StoreDto storeDto) throws Exception {
        return Result.success(storeService.selectStoreList(page, storeDto));
    }
    @ApiOperation(value = "添加耗材入库列表")
    @PostMapping("/addStore")
    public Result addStore(@RequestBody Map<String,Object> map) {
        storeService.addStore(map);
        return Result.success();
    }
    @ApiOperation(value = "删除耗材入库")
    @DeleteMapping("/deleteStore")
    public Result deleteStore(@RequestParam("id") Integer id,@RequestParam("consumablesId") Integer consumablesId) {
        storeService.deleteStore(id,consumablesId);
        return Result.success();
    }
    @ApiOperation(value = "更新耗材入库")
        @PostMapping("/updateStore")
    public Result updateStore(@RequestBody Map<String,Object> map) {
        storeService.updateStore(map);
        return Result.success();
    }
    @ApiOperation(value = "根据id查询耗材入库")
    @GetMapping("/selectStoreById")
    public Result selectStore(Integer id) {
        HashMap<String, Object> map = new HashMap<>();
        ProcurementSuppliesStore procurementSuppliesStore = storeService.getById(id);
        List<ProcurementSuppliesConsumables> list = consumablesService.list(new LambdaQueryWrapper<ProcurementSuppliesConsumables>()
                .eq(ProcurementSuppliesConsumables::getStoreId, id));
        map.put("store", procurementSuppliesStore);
        map.put("consumables", list);
        return Result.success(map);
    }
    @ApiOperation("导出Excel")
    @GetMapping("/exportExcel")
    public void exportExcel(Integer parentId, HttpServletResponse response) throws IOException {
        storeService.exportExcel(parentId, response);
    }
}
cnas-require/src/main/java/com/ruoyi/require/controller/SupplierManagementController.java
@@ -71,7 +71,7 @@
    }
    @ApiOperation("删除供应商")
    @PostMapping("/delSupplierManagement")
    @DeleteMapping("/delSupplierManagement")
    public Result delSupplierManagement(Integer supplierManagementId) {
        return Result.success(supplierManagementService.removeById(supplierManagementId));
    }
cnas-require/src/main/java/com/ruoyi/require/controller/SuppliersDirectoryContentsController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,77 @@
package com.ruoyi.require.controller;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.require.pojo.SuppliersDirectoryContents;
import com.ruoyi.require.service.SuppliersDirectoryContentsService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½• å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-17 06:14:51
 */
@Api(tags = "供应商管理树")
@RestController
@RequestMapping("/suppliersDirectoryContents")
public class SuppliersDirectoryContentsController {
    @Autowired
    private SuppliersDirectoryContentsService suppliersDirectoryContentsService;
    @ApiOperation(value = "查询目录列表")
    @GetMapping("/suppliersDirectoryContentsListing")
    public Result suppliersDirectoryContentsListing() {
        return Result.success(suppliersDirectoryContentsService.directoryListing());
    }
    @ApiOperation(value = "根据id查询")
    @GetMapping("/selectSuppliersDirectoryContentsById")
    public Result selectSuppliersDirectoryContentsById(Integer id) {
        return Result.success(suppliersDirectoryContentsService.getById(id));
    }
    @ApiOperation(value = "添加子节点")
    @PostMapping("/addSuppliersDirectoryContents")
    public Result addSuppliersDirectoryContents(@RequestBody SuppliersDirectoryContents suppliersDirectoryContents ) {
        suppliersDirectoryContents.setUpdateTime(LocalDateTime.now());
        suppliersDirectoryContentsService.save(suppliersDirectoryContents);
        return Result.success(suppliersDirectoryContents.getId());
    }
    @ApiOperation(value = "更新子节点")
    @PostMapping("/updateSuppliersDirectoryContents")
    public Result updateSuppliersDirectoryContents(@RequestBody SuppliersDirectoryContents suppliersDirectoryContents) {
        return Result.success(suppliersDirectoryContentsService.updateById(suppliersDirectoryContents));
    }
    @ApiOperation(value = "删除子节点")
    @DeleteMapping("/deleteSuppliersDirectoryContentsById")
    public Result deleteSuppliersDirectoryContentsById(Integer id) {
        List<SuppliersDirectoryContents> list = suppliersDirectoryContentsService.list(new LambdaQueryWrapper<SuppliersDirectoryContents>()
                .eq(SuppliersDirectoryContents::getParentId, id));
        if(list.size() > 0) {
            throw new ErrorException("该节点含有子节点,请先删除子节点");
        }
        suppliersDirectoryContentsService.removeById(id);
        return Result.success();
    }
    @ApiOperation(value = "查询所有节点")
    @GetMapping("/getSuppliersDirectoryContentsNodeNames")
    public Result getSuppliersDirectoryContentsNodeNames() {
        return Result.success(suppliersDirectoryContentsService.getSuppliersDirectoryContentsNodeNames());
    }
}
cnas-require/src/main/java/com/ruoyi/require/dto/ProcurementSuppliesExpendDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.ruoyi.require.dto;
import com.ruoyi.require.pojo.ProcurementSuppliesExpends;
import lombok.Data;
@Data
public class ProcurementSuppliesExpendDto extends ProcurementSuppliesExpends {
    private String listName; // é¡¹ç›®è€—材名称
    private String enterUserName; // å½•入人名称
    private String updateUserName; // æ›´æ–°äººåç§°
}
cnas-require/src/main/java/com/ruoyi/require/dto/StoreDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.require.dto;
import com.ruoyi.require.pojo.ProcurementSuppliesStore;
import lombok.Data;
@Data
public class StoreDto extends ProcurementSuppliesStore {
    private String consumablesName;
    private Integer storeNumber;
    private Double totalPrice;
    private String registrantName;
    private String storageUserName;
    private Integer consumablesId;
}
cnas-require/src/main/java/com/ruoyi/require/excel/StoreExcel.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,37 @@
package com.ruoyi.require.excel;
import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;
import java.time.LocalDate;
@Data
public class StoreExcel {
    @ExcelProperty("入库单号")
    private String oddNumbers;
    @ExcelProperty("耗材名称")
    private String consumablesName;
    @ExcelProperty("入库数量")
    private Integer storeNumber;
    @ExcelProperty("入库总价")
    private Double totalPrice;
    @ExcelProperty("入库人")
    private String storageUserName;
    @ExcelProperty("入库日期")
    private LocalDate storageTime;
    @ExcelProperty("说明")
    private String remark;
    @ExcelProperty("登记人")
    private String registrantName;
    @ExcelProperty("登记日期")
    private LocalDate registrantTime;
}
cnas-require/src/main/java/com/ruoyi/require/mapper/FeTempHumRecordMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.ruoyi.require.dto.FeTempHumRecordDto;
import com.ruoyi.require.pojo.FeTempHumRecord;
import org.apache.ibatis.annotations.Param;
/**
 * <p>
@@ -16,5 +17,5 @@
 */
public interface FeTempHumRecordMapper extends BaseMapper<FeTempHumRecord> {
    IPage<FeTempHumRecordDto> getFeTempHumRecordPage(Page page, Integer dateId);
    IPage<FeTempHumRecordDto> getFeTempHumRecordPage(Page page, @Param("dateId") Integer dateId);
}
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesConsumablesMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,9 @@
package com.ruoyi.require.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface ProcurementSuppliesConsumablesMapper extends BaseMapper<ProcurementSuppliesConsumables> {
}
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesExpendsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.ruoyi.require.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.require.pojo.ProcurementSuppliesExpends;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-11-15 03:47:19
 */
public interface ProcurementSuppliesExpendsMapper extends BaseMapper<ProcurementSuppliesExpends> {
}
cnas-require/src/main/java/com/ruoyi/require/mapper/ProcurementSuppliesStoreMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,27 @@
package com.ruoyi.require.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.require.dto.StoreDto;
import com.ruoyi.require.excel.StoreExcel;
import com.ruoyi.require.pojo.ProcurementSuppliesStore;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import java.util.List;
@Mapper
public interface ProcurementSuppliesStoreMapper extends BaseMapper<ProcurementSuppliesStore> {
    IPage<StoreDto> selectStoreList(Page page, @Param("ew") QueryWrapper<StoreDto> ew);
    /**
     *       å’Œæ ‘关联的条件,,,目前没有关联关系    WHERE s.contents_id = #{contentsId}
     * @param contentsId
     * @return
     */
    List<StoreExcel> exportExcel(Integer contentsId);
}
cnas-require/src/main/java/com/ruoyi/require/mapper/SuppliersDirectoryContentsMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,16 @@
package com.ruoyi.require.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.require.pojo.SuppliersDirectoryContents;
/**
 * <p>
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½• Mapper æŽ¥å£
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-17 06:14:51
 */
public interface SuppliersDirectoryContentsMapper extends BaseMapper<SuppliersDirectoryContents> {
}
cnas-require/src/main/java/com/ruoyi/require/pojo/FeLightningProtection.java
@@ -6,6 +6,7 @@
import lombok.Getter;
import lombok.Setter;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.web.multipart.MultipartFile;
import java.io.Serializable;
import java.time.LocalDate;
cnas-require/src/main/java/com/ruoyi/require/pojo/ForeignRegister.java
@@ -4,6 +4,7 @@
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDate;
import java.time.LocalDateTime;
@@ -25,6 +26,7 @@
    private Integer registerId;
    @ApiModelProperty("登记如期")
    @DateTimeFormat(pattern = "yyyy-MM-dd")
    private LocalDate registerDate;
    @ApiModelProperty("进入区域")
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesConsumables.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,50 @@
package com.ruoyi.require.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
@Data
@TableName("procurement_supplies_consumables")
@ApiModel("耗材采购明细表")
@JsonIgnoreProperties(ignoreUnknown = true)
public class ProcurementSuppliesConsumables {
    @TableId(type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("耗材主表id")
    private Integer storeId;
    @ApiModelProperty("耗材名称")
    private String consumablesName;
    @ApiModelProperty("单价")
    private Double unitPrice;
    @ApiModelProperty("入库数量")
    private Integer storeNumber;
    @ApiModelProperty("总价")
    private Double totalPrice;
    @ApiModelProperty("货号")
    private String itemNumber;
    @ApiModelProperty("类别")
    private String type;
    @ApiModelProperty("规格")
    private String specifications;
    @ApiModelProperty("参考供应商")
    private String supplier;
    @ApiModelProperty("计量单位")
    private String unit;
}
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesExpends.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,53 @@
package com.ruoyi.require.pojo;
import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
/**
 * <p>
 *
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-11-15 03:47:19
 */
@Getter
@Setter
@TableName("procurement_supplies_expends")
@ApiModel(value = "ProcurementSuppliesExpends对象", description = "")
public class ProcurementSuppliesExpends implements Serializable {
    @ApiModelProperty("主表Id")
    @TableId(value = "expend_id", type = IdType.AUTO)
    private Long expendId;
    @ApiModelProperty("耗材Id")
    private Long listId;
    @ApiModelProperty("消耗数量")
    private Integer amount;
    @ApiModelProperty("录入人id")
    private Integer enterUserId;
    @ApiModelProperty("更新人id")
    private Integer updateUserId;
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime updateTime;
    @ApiModelProperty("创建时间")
    @TableField(fill = FieldFill.INSERT)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    private LocalDateTime createTime;
}
cnas-require/src/main/java/com/ruoyi/require/pojo/ProcurementSuppliesStore.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.ruoyi.require.pojo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import java.io.Serializable;
import java.time.LocalDate;
@Data
@TableName("procurement_supplies_store")
@ApiModel("耗材入库表")
@JsonIgnoreProperties(ignoreUnknown = true)
public class ProcurementSuppliesStore implements Serializable {
    @TableId(type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("目录id")
    private Integer contentsId;
    @ApiModelProperty("入库单号")
    private String oddNumbers;
    @ApiModelProperty("入库库存")
    private String inventory;
    @ApiModelProperty("入库总金额")
    private Double totalAmount;
    @ApiModelProperty("入库人")
    private Integer storageUser;
    @ApiModelProperty("入库时间")
    @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
    private LocalDate storageTime;
    @ApiModelProperty("入库说明")
    private String remark;
    @ApiModelProperty("登记人")
    private Integer registrant;
    @ApiModelProperty("登记时间")
    private LocalDate registrantTime;
}
cnas-require/src/main/java/com/ruoyi/require/pojo/SuppliersDirectoryContents.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,52 @@
package com.ruoyi.require.pojo;
import com.baomidou.mybatisplus.annotation.*;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Getter;
import lombok.Setter;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.List;
/**
 * <p>
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½•
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-17 06:14:51
 */
@Getter
@Setter
@TableName("suppliers_directory_contents")
@ApiModel(value = "SuppliersDirectoryContents对象", description = "服务和供应品采购目录")
public class SuppliersDirectoryContents implements Serializable {
    private static final long serialVersionUID = 1L;
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @ApiModelProperty("节点名称")
    private String nodeName;
    @ApiModelProperty("代号")
    private String code;
    @ApiModelProperty("更新人")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private Integer updateUser;
    @ApiModelProperty("更新时间")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    private LocalDateTime updateTime;
    @ApiModelProperty("父节点")
    private Integer parentId;
    @TableField(exist = false)
    private List<SuppliersDirectoryContents> children;
}
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesConsumablesService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,7 @@
package com.ruoyi.require.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
public interface ProcurementSuppliesConsumablesService extends IService<ProcurementSuppliesConsumables> {
}
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesExpendsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.require.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.require.dto.ProcurementSuppliesExpendDto;
import com.ruoyi.require.pojo.ProcurementSuppliesExpends;
import java.util.List;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-11-15 03:47:19
 */
public interface ProcurementSuppliesExpendsService extends IService<ProcurementSuppliesExpends> {
    public List<ProcurementSuppliesExpendDto> selectAll(Long procurementSuppliesListId);
    public Integer addExpends(ProcurementSuppliesExpendDto expendDto) throws ServiceException;
    public Integer deleteExpends(Long id);
}
cnas-require/src/main/java/com/ruoyi/require/service/ProcurementSuppliesStoreService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,21 @@
package com.ruoyi.require.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.require.dto.StoreDto;
import com.ruoyi.require.pojo.ProcurementSuppliesStore;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.util.Map;
public interface ProcurementSuppliesStoreService extends IService<ProcurementSuppliesStore> {
    void addStore(Map<String,Object> map);
    void updateStore(Map<String,Object> map);
    void deleteStore(Integer id, Integer consumablesId);
    IPage<StoreDto> selectStoreList(Page page, StoreDto storeDto);
    void exportExcel(Integer contentsId, HttpServletResponse response) throws IOException;
}
cnas-require/src/main/java/com/ruoyi/require/service/SuppliersDirectoryContentsService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,22 @@
package com.ruoyi.require.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.ruoyi.require.pojo.SuppliersDirectoryContents;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * <p>
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½• æœåŠ¡ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-17 06:14:51
 */
public interface SuppliersDirectoryContentsService extends IService<SuppliersDirectoryContents> {
    ArrayList<SuppliersDirectoryContents> directoryListing();
    List<Map<String, Object>> getSuppliersDirectoryContentsNodeNames();
}
cnas-require/src/main/java/com/ruoyi/require/service/impl/InternalWastesServiceImpl.java
@@ -138,8 +138,6 @@
            detail.setIndex(index);
            index++;
        }
        // èŽ·å–è·¯å¾„
        InputStream inputStream = this.getClass().getResourceAsStream("/static/internal-wastes.docx");
        Configure configure = Configure.builder()
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesConsumablesServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
package com.ruoyi.require.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.require.mapper.ProcurementSuppliesConsumablesMapper;
import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
import com.ruoyi.require.service.ProcurementSuppliesConsumablesService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
@Service
@AllArgsConstructor
public class ProcurementSuppliesConsumablesServiceImpl extends ServiceImpl<ProcurementSuppliesConsumablesMapper, ProcurementSuppliesConsumables>
        implements ProcurementSuppliesConsumablesService {
}
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesExpendsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,90 @@
package com.ruoyi.require.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.exception.ServiceException;
import com.ruoyi.common.utils.SecurityUtils;
import com.ruoyi.require.dto.ProcurementSuppliesExpendDto;
import com.ruoyi.require.mapper.ProcurementSuppliesExpendsMapper;
import com.ruoyi.require.mapper.ProcurementSuppliesListMapper;
import com.ruoyi.require.pojo.ProcurementSuppliesExpends;
import com.ruoyi.require.pojo.ProcurementSuppliesList;
import com.ruoyi.require.service.ProcurementSuppliesExpendsService;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-11-15 03:47:19
 */
@Service
public class ProcurementSuppliesExpendsServiceImpl extends ServiceImpl<ProcurementSuppliesExpendsMapper, ProcurementSuppliesExpends> implements ProcurementSuppliesExpendsService {
    @Autowired
    private ProcurementSuppliesExpendsMapper expendsMapper;
    @Autowired
    private UserMapper userMapper;
    @Autowired
    private ProcurementSuppliesListMapper listMapper;
    @Override
    public List<ProcurementSuppliesExpendDto> selectAll(Long procurementSuppliesListId) {
        List<ProcurementSuppliesExpendDto> res = new ArrayList<>();
        List<ProcurementSuppliesExpends> list =  expendsMapper.selectList(new QueryWrapper<ProcurementSuppliesExpends>().lambda().eq(ProcurementSuppliesExpends::getListId, procurementSuppliesListId));
        for (ProcurementSuppliesExpends procurementSuppliesExpend : list) {
            ProcurementSuppliesExpendDto dto = new ProcurementSuppliesExpendDto();
            BeanUtils.copyProperties(procurementSuppliesExpend, dto);
            User enterUser = userMapper.selectById(procurementSuppliesExpend.getEnterUserId());
            User updateUser = userMapper.selectById(procurementSuppliesExpend.getUpdateUserId());
            dto.setEnterUserName(enterUser.getName());
            dto.setUpdateUserName(updateUser.getName());
            res.add(dto);
        }
        return res;
    }
    @Override
    @Transactional
    public Integer addExpends(ProcurementSuppliesExpendDto expendDto) throws ServiceException {
        ProcurementSuppliesList list = listMapper.selectProcurementSuppliesListForUpdate(expendDto.getListId());
        ProcurementSuppliesExpends expends = new ProcurementSuppliesExpends();
        BeanUtils.copyProperties(expendDto, expends);
        expends.setEnterUserId(SecurityUtils.getUserId().intValue());
        expends.setUpdateUserId(SecurityUtils.getUserId().intValue());
        if (list.getCurrentAmount() < expendDto.getAmount()) {
            return 0;
        }
        list.setCurrentAmount(list.getCurrentAmount() - expendDto.getAmount());
        listMapper.updateById(list);
        return expendsMapper.insert(expends);
    }
    @Override
    @Transactional
    public Integer deleteExpends(Long id) {
        ProcurementSuppliesExpends expend = expendsMapper.selectById(id);
        ProcurementSuppliesList list = listMapper.selectProcurementSuppliesListForUpdate(expend.getListId());
        list.setCurrentAmount(list.getCurrentAmount() + expend.getAmount());
        list.setUpdateUser(SecurityUtils.getUserId().intValue());
        listMapper.updateById(list);
        return expendsMapper.deleteById(id);
    }
}
cnas-require/src/main/java/com/ruoyi/require/service/impl/ProcurementSuppliesStoreServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,125 @@
package com.ruoyi.require.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.alibaba.excel.write.style.column.LongestMatchColumnWidthStyleStrategy;
import com.alibaba.fastjson2.JSON;
import com.alibaba.fastjson2.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
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.common.utils.SecurityUtils;
import com.ruoyi.framework.common.PrintChina;
import com.ruoyi.require.dto.StoreDto;
import com.ruoyi.require.excel.StoreExcel;
import com.ruoyi.require.mapper.ProcurementSuppliesConsumablesMapper;
import com.ruoyi.require.mapper.ProcurementSuppliesStoreMapper;
import com.ruoyi.require.pojo.ProcurementSuppliesConsumables;
import com.ruoyi.require.pojo.ProcurementSuppliesStore;
import com.ruoyi.require.service.ProcurementSuppliesStoreService;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.io.UnsupportedEncodingException;
import java.net.URLEncoder;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.Objects;
@Service
@AllArgsConstructor
public class ProcurementSuppliesStoreServiceImpl extends ServiceImpl<ProcurementSuppliesStoreMapper, ProcurementSuppliesStore>
        implements ProcurementSuppliesStoreService {
    private ProcurementSuppliesConsumablesMapper consumablesMapper;
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void addStore(Map<String,Object> map) {
        ProcurementSuppliesStore procurementSuppliesStore = JSONObject.parseObject(JSONObject.toJSONString(map.get("store")), ProcurementSuppliesStore.class);
        procurementSuppliesStore.setRegistrant(SecurityUtils.getUserId().intValue());
        procurementSuppliesStore.setRegistrantTime(LocalDate.now());
        baseMapper.insert(procurementSuppliesStore);
        List<ProcurementSuppliesConsumables> list = JSON.parseArray(JSONObject.toJSONString(map.get("consumables")), ProcurementSuppliesConsumables.class);
        // ç”Ÿæˆè´§å·
        DateTimeFormatter dateTimeFormatter = DateTimeFormatter.ofPattern("yyyyMMdd");
        if(!Objects.isNull(list) && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                list.get(i).setStoreId(procurementSuppliesStore.getId());
                String itemNumber ="HCRK" + LocalDate.now().format(dateTimeFormatter) +  String.format("%03d", i);
                list.get(i).setItemNumber(itemNumber);
                consumablesMapper.insert(list.get(i));
            }
        }
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public void updateStore(Map<String,Object> map) {
        ProcurementSuppliesStore procurementSuppliesStore = JSONObject.parseObject(JSONObject.toJSONString(map.get("store")), ProcurementSuppliesStore.class);
        baseMapper.updateById(procurementSuppliesStore);
        List<ProcurementSuppliesConsumables> list = JSON.parseArray(JSONObject.toJSONString(map.get("consumables")), ProcurementSuppliesConsumables.class);
        consumablesMapper.delete(new LambdaQueryWrapper<ProcurementSuppliesConsumables>()
                .eq(ProcurementSuppliesConsumables::getStoreId, procurementSuppliesStore.getId()));
        if(!Objects.isNull(list) && list.size() > 0) {
            for (int i = 0; i < list.size(); i++) {
                list.get(i).setId(null);
                list.get(i).setStoreId(procurementSuppliesStore.getId());
                consumablesMapper.insert(list.get(i));
            }
        }
    }
    @Override
    public void deleteStore(Integer id, Integer consumablesId) {
        consumablesMapper.deleteById(consumablesId);
        List<ProcurementSuppliesConsumables> consumables = consumablesMapper.selectList(new LambdaQueryWrapper<ProcurementSuppliesConsumables>()
                .eq(ProcurementSuppliesConsumables::getStoreId, id));
        // åˆ¤æ–­æ˜¯å¦è¿˜æœ‰è€—材 æ²¡æœ‰å°±å°†ä¸»è¡¨Store删除
        if(CollectionUtils.isEmpty(consumables)) {
            baseMapper.deleteById(id);
        }
    }
    @Override
    public  IPage<StoreDto> selectStoreList(Page page, StoreDto storeDto) {
        IPage<StoreDto> iPage = baseMapper.selectStoreList(page, QueryWrappers.queryWrappers(storeDto));
        return iPage;
    }
    /**
     * å¯¼å‡ºexcel
     * @param contentsId
     * @param response
     */
    @Override
    public void exportExcel(Integer contentsId, HttpServletResponse response) throws IOException {
        List<StoreExcel> storeExcels = baseMapper.exportExcel(contentsId);
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("UTF-8");
        // è¿™é‡ŒURLEncoder.encode可以防止中文乱码 å½“ç„¶å’Œeasyexcel没有关系
        String fileName = null;
        try {
            fileName = URLEncoder.encode("耗材入库", "UTF-8");
        } catch (UnsupportedEncodingException e) {
            throw new RuntimeException(e);
        }
        response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
        ExcelWriter excelWriter = EasyExcel.write(response.getOutputStream()).registerWriteHandler(new LongestMatchColumnWidthStyleStrategy()).build();
        WriteSheet writeSheet = EasyExcel.writerSheet(0, "耗材入库").head(StoreExcel.class).build();
        excelWriter.write(storeExcels, writeSheet);
        excelWriter.finish();
    }
}
cnas-require/src/main/java/com/ruoyi/require/service/impl/SuppliersDirectoryContentsServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,76 @@
package com.ruoyi.require.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.require.mapper.SuppliersDirectoryContentsMapper;
import com.ruoyi.require.pojo.SuppliersDirectoryContents;
import com.ruoyi.require.service.SuppliersDirectoryContentsService;
import org.springframework.stereotype.Service;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
/**
 * <p>
 * æœåŠ¡å’Œä¾›åº”å“é‡‡è´­ç›®å½• æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author èŠ¯å¯¼è½¯ä»¶ï¼ˆæ±Ÿè‹ï¼‰æœ‰é™å…¬å¸
 * @since 2024-12-17 06:14:51
 */
@Service
public class SuppliersDirectoryContentsServiceImpl extends ServiceImpl<SuppliersDirectoryContentsMapper, SuppliersDirectoryContents> implements SuppliersDirectoryContentsService {
    @Override
    public ArrayList<SuppliersDirectoryContents> directoryListing() {
        ArrayList<SuppliersDirectoryContents> list = new ArrayList<>();
        // æŸ¥å‡ºä¸€çº§ç›®å½•
        List<SuppliersDirectoryContents> firstLevel = baseMapper.selectList(new LambdaQueryWrapper<SuppliersDirectoryContents>()
                .isNull(SuppliersDirectoryContents::getParentId));
        // æŸ¥å‡ºå«æœ‰çˆ¶èŠ‚ç‚¹çš„ å¹¶é€šè¿‡çˆ¶èŠ‚ç‚¹åˆ†ç»„
        List<SuppliersDirectoryContents> seconds = baseMapper.selectList(new LambdaQueryWrapper<SuppliersDirectoryContents>()
                .isNotNull(SuppliersDirectoryContents::getParentId));
        if(firstLevel.size() > 0){
            Map<Integer, List<SuppliersDirectoryContents>> collect = seconds.stream()
                    .collect(Collectors.groupingBy(SuppliersDirectoryContents::getParentId));
            // æ ¹æ®åˆ†ç»„çš„key èµ‹å€¼å¯¹åº”çš„children
            for (int i = 0; i < firstLevel.size(); i++) {
                recursion(firstLevel.get(i),collect);
                list.add(firstLevel.get(i));
            }
        }
        return list;
    }
    @Override
    public List<Map<String, Object>> getSuppliersDirectoryContentsNodeNames() {
        List<SuppliersDirectoryContents> procurementSuppliesContents = baseMapper.selectList(null);
        List<Map<String, Object>> collect = new ArrayList<>();
        if(procurementSuppliesContents.size() > 0) {
            collect = procurementSuppliesContents.stream().map(item -> {
                HashMap<String, Object> map = new HashMap<>();
                map.put("id", item.getId());
                map.put("nodeName", item.getNodeName());
                return map;
            }).collect(Collectors.toList());
        }
        return collect;
    }
    public SuppliersDirectoryContents recursion(SuppliersDirectoryContents firstLevel, Map<Integer, List<SuppliersDirectoryContents>> collect) {
        // å°†çˆ¶èŠ‚ç‚¹çš„children赋值
        if(collect.containsKey(firstLevel.getId())) {
            List<SuppliersDirectoryContents> procurementSupplies = collect.get(firstLevel.getId());
            firstLevel.setChildren(procurementSupplies);
            for (int i = 0; i < procurementSupplies.size(); i++) {
                recursion(procurementSupplies.get(i),collect);
            }
        }
        return firstLevel;
    }
}
cnas-require/src/main/resources/mapper/FeIlluminationMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,46 @@
<?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.require.mapper.FeIlluminationMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.require.pojo.FeIllumination">
        <id column="intensity_illumination_id" property="intensityIlluminationId" />
        <result column="device_id" property="deviceId" />
        <result column="conclusion" property="conclusion" />
        <result column="tester_id" property="testerId" />
        <result column="checker_id" property="checkerId" />
        <result column="test_date" property="testDate" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
    </resultMap>
    <select id="getFeLightningProtection" resultType="com.ruoyi.require.dto.FeIlluminationDto">
        SELECT cdi.*, u1.name checker_user, u2.name tester_user, dv.device_name, dv.management_number
        FROM cnas_fe_illumination cdi
                 left join device dv on dv.id = cdi.device_id
                 left join user u1 on u1.id = cdi.checker_id
                 left join user u2 on u2.id = cdi.tester_id
    </select>
    <!-- æŸ¥è¯¢ç…§æ˜Žè®°å½• -->
    <select id="selectFeIllumination" resultType="com.ruoyi.require.dto.FeIlluminationExportDto">
        SELECT cdi.*,
               dv.device_name,
               dv.management_number,
               DATE_FORMAT(d.calibration_date, '%Y-%m-%d') calibrationDateString,
               DATE_FORMAT(d.next_calibration_date, '%Y-%m-%d') nextCalibrationDateString
        FROM cnas_fe_illumination cdi
                 left join device dv on dv.id = cdi.device_id
                 LEFT JOIN (SELECT d.id,
                                   dmr.calibration_date,
                                   dmr.next_calibration_date
                            FROM device d
                                     LEFT JOIN device_metric_record dmr ON dmr.device_id = d.id
                                AND dmr.type = 'calibrate'
                            GROUP BY d.id
                            HAVING max(dmr.id)) d ON d.id = cdi.device_id
                 left join user u1 on u1.id = cdi.checker_id
                 left join user u2 on u2.id = cdi.tester_id
        where cdi.intensity_illumination_id = #{intensityIlluminationId}
    </select>
</mapper>
cnas-require/src/main/resources/mapper/FeLightningProtectionMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
<?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.require.mapper.FeLightningProtectionMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.require.pojo.FeLightningProtection">
        <id column="lightning_protection_id" property="lightningProtectionId" />
        <result column="file_name" property="fileName" />
        <result column="system_file_name" property="systemFileName" />
        <result column="detection_date" property="detectionDate" />
        <result column="term_validity" property="termValidity" />
        <result column="detection_unit" property="detectionUnit" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
    </resultMap>
    <select id="exportOfLightningProtectionDetection" resultType="com.ruoyi.require.excel.FeLightningProtectionExcel">
        select * from cnas_fe_lightning_protection
    </select>
</mapper>
cnas-require/src/main/resources/mapper/FePowerStableMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,63 @@
<?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.require.mapper.FePowerStableMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.require.pojo.FePowerStable">
        <id column="power_stable_id" property="powerStableId" />
        <result column="test_location" property="testLocation" />
        <result column="test_date" property="testDate" />
        <result column="device_id" property="deviceId" />
        <result column="conclusion" property="conclusion" />
        <result column="tester_id" property="testerId" />
        <result column="checker_id" property="checkerId" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
    </resultMap>
    <select id="getLaboratoryFacilityPowerStablePage" resultType="com.ruoyi.require.dto.FePowerStableDto">
        SELECT cfps.*, u1.name checker_user, u2.name tester_user, dv.device_name, dv.management_number
        FROM cnas_fe_power_stable cfps
                 left join device dv on dv.id = cfps.device_id
                 left join user u1 on u1.id = cfps.checker_id
                 left join user u2 on u2.id = cfps.tester_id
    </select>
    <select id="getCalibrationDate" resultType="java.util.Map">
        SELECT
            d.device_name deviceName,
            d.management_number managementNumber,
            date_format(dmr.calibration_date,'%Y-%m-%d') calibrationDate,
            date_format(dmr.next_calibration_date,'%Y-%m-%d') nextCalibrationDate
        FROM
            device d
                LEFT JOIN device_metric_record dmr ON dmr.device_id = d.id
                AND dmr.type = 'calibrate'
        where d.id = #{deviceId}
        GROUP BY
            d.id
    </select>
    <!-- æŸ¥è¯¢ç”µæºç¨³å®šæ€§ -->
    <select id="selectPowerStable" resultType="com.ruoyi.require.dto.FePowerStableExportDto">
        SELECT cfps.*,
               dv.device_name,
               dv.management_number,
               DATE_FORMAT(cfps.test_date, '%Y-%m-%d') testDateString,
               DATE_FORMAT(d.calibration_date, '%Y-%m-%d') calibrationDateString,
               DATE_FORMAT(d.next_calibration_date, '%Y-%m-%d') nextCalibrationDateString
        FROM cnas_fe_power_stable cfps
                 left join device dv on dv.id = cfps.device_id
                 LEFT JOIN (SELECT d.id,
                                   dmr.calibration_date,
                                   dmr.next_calibration_date
                            FROM device d
                                     LEFT JOIN device_metric_record dmr ON dmr.device_id = d.id
                                AND dmr.type = 'calibrate'
                            GROUP BY d.id
                            HAVING max(dmr.id)) d ON d.id = cfps.device_id
                 left join user u1 on u1.id = cfps.checker_id
                 left join user u2 on u2.id = cfps.tester_id
        where cfps.power_stable_id = #{powerStableId}
    </select>
</mapper>
cnas-require/src/main/resources/mapper/FeTempHumDateMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,31 @@
<?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.require.mapper.FeTempHumDateMapper">
    <!-- é€šç”¨æŸ¥è¯¢æ˜ å°„结果 -->
    <resultMap id="BaseResultMap" type="com.ruoyi.require.pojo.FeTempHumDate">
        <id column="date_id" property="dateId" />
        <result column="month_date" property="monthDate" />
        <result column="test_area_name" property="testAreaName" />
        <result column="create_time" property="createTime" />
        <result column="update_time" property="updateTime" />
        <result column="create_user" property="createUser" />
        <result column="update_user" property="updateUser" />
    </resultMap>
    <select id="getFeTempHumDate" resultType="com.ruoyi.require.dto.FeTempHumDateDto">
        select * from (
        select c.*, u.name create_name
        from cnas_fe_temp_hum_date c
        left join user u on c.create_user = u.id) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="selectFeTempHumDateIncludeFormattedDate" resultType="java.lang.Integer">
        select count(*)
        from cnas_fe_temp_hum_date
        where test_area_name = #{laboratory}
          and month_date = #{formattedDate}
    </select>
</mapper>
cnas-require/src/main/resources/mapper/FeTempHumRecordMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,13 @@
<?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.require.mapper.FeTempHumRecordMapper">
    <select id="getFeTempHumRecordPage" resultType="com.ruoyi.require.dto.FeTempHumRecordDto">
        select c.*, u1.name afternoon_recorder_user, u2.name morning_recorder_user
        from cnas_fe_temp_hum_record c
                 left join user u1 on u1.id = c.afternoon_recorder_id
                 left join user u2 on u2.id = c.morning_recorder_id
        where c.date_id = #{dateId}
        ORDER BY c.temp_hum_id desc
    </select>
</mapper>
cnas-require/src/main/resources/mapper/ForeignRegisterMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,39 @@
<?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.require.mapper.ForeignRegisterMapper">
    <!-- å¤–来人员登记分页查询 -->
    <select id="pageForeignRegister" resultType="com.ruoyi.require.dto.ForeignRegisterDto">
        select *
        from (select *
        from cnas_foreign_register
        <where>
            <if test="beginDate != null and beginDate != '' and endDate != null and endDate != ''">
                register_date between #{beginDate} and #{endDate}
            </if>
        </where>
        order by create_time desc) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="getForeignRegisterList" resultType="com.ruoyi.require.dto.ForeignRegisterDto">
        select *
        from (select cfr.*,
        u1.signature_url accompanyingUrl,
        u2.signature_url approveUrl
        from cnas_foreign_register cfr
        left join user u1 on u1.id = cfr.accompanying_id
        left join user u2 on u2.id = cfr.approve_id
        <where>
            <if test="beginDate != null and beginDate != '' and endDate != null and endDate != ''">
                cfr.register_date between #{beginDate} and #{endDate}
            </if>
        </where>
        order by cfr.create_time desc) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-require/src/main/resources/mapper/InternalWastesMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
<?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.require.mapper.InternalWastesMapper">
    <!-- å®‰å…¨å†…务三废登记列表 -->
    <select id="pageInternalWastes" resultType="com.ruoyi.require.dto.InternalWastesDto">
        select *
        from (select ciw.*,
              u1.name create_user_name,
              u2.name update_user_name
        from cnas_internal_wastes ciw
        left join user u1 on u1.id = ciw.create_user
        left join user u2 on u2.id = ciw.update_user
        order by ciw.create_time desc) a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
</mapper>
cnas-require/src/main/resources/mapper/ProcurementSuppliesStoreMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,84 @@
<?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.require.mapper.ProcurementSuppliesStoreMapper">
    <resultMap id="map" type="com.ruoyi.require.dto.StoreDto">
        <id column="id" property="id"/>
        <result column="consumables_id" property="consumablesId"/>
        <result column="odd_numbers" property="oddNumbers"/>
        <result column="consumables_name" property="consumablesName"/>
        <result column="store_number" property="storeNumber"/>
        <result column="total_price" property="totalPrice"/>
        <result column="storage_user" property="storageUser"/>
        <result column="storage_time" property="storageTime"/>
        <result column="remark" property="remark"/>
        <result column="registrant" property="registrant"/>
        <result column="registrant_time" property="registrantTime"/>
        <result column="storageUserName" property="storageUserName"/>
        <result column="registrantName" property="registrantName"/>
    </resultMap>
    <resultMap id="storeExcelMap" type="com.ruoyi.require.excel.StoreExcel">
        <result column="odd_numbers" property="oddNumbers"/>
        <result column="consumables_name" property="consumablesName"/>
        <result column="store_number" property="storeNumber"/>
        <result column="total_price" property="totalPrice"/>
        <result column="storage_time" property="storageTime"/>
        <result column="remark" property="remark"/>
        <result column="registrant_time" property="registrantTime"/>
        <result column="storageUserName" property="storageUserName"/>
        <result column="registrantName" property="registrantName"/>
    </resultMap>
    <select id="selectStoreList" resultMap="map">
select * from (
        SELECT
        s.id,
        c.id AS consumables_id,
        s.contents_id,
        s.odd_numbers,
        c.consumables_name,
        c.store_number,
        c.total_price,
        s.storage_user,
        s.storage_time,
        s.remark,
        s.registrant,
        s.registrant_time,
        u.name AS storageUserName,
        u1.name AS registrantName
        FROM
        `procurement_supplies_store` s
        LEFT JOIN procurement_supplies_consumables c ON s.id = c.store_id
        LEFT JOIN user u ON u.id = s.storage_user
        LEFT JOIN user u1 ON u1.id = s.registrant
        )a
        <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''">
            ${ew.customSqlSegment}
        </if>
    </select>
    <select id="exportExcel" resultMap="storeExcelMap">
        SELECT * FROM (
                          SELECT
                              s.odd_numbers,
                              c.consumables_name,
                              c.store_number,
                              c.total_price,
                              s.storage_time,
                              s.remark,
                              s.registrant_time,
                              u.name AS storageUserName,
                              u1.name AS registrantName
                          FROM
                              `procurement_supplies_store` s
                                  LEFT JOIN procurement_supplies_consumables c ON s.id = c.store_id
                                  LEFT JOIN user u ON u.id = s.storage_user
                                  LEFT JOIN user u1 ON u1.id = s.registrant
                      ) a
    </select>
</mapper>
cnas-require/src/main/resources/static/foreign-register.docx
Binary files differ
cnas-require/src/main/resources/static/illumination.docx
Binary files differ
cnas-require/src/main/resources/static/internal-wastes.docx
Binary files differ
cnas-require/src/main/resources/static/power-stable.docx
Binary files differ
cnas-require/src/main/resources/static/temp_hum_date.docx
Binary files differ
ruoyi-admin/src/main/java/com/ruoyi/web/controller/dto/UpdateUserDto.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,11 @@
package com.ruoyi.web.controller.dto;
import lombok.Data;
@Data
public class UpdateUserDto {
    private String id;
    private String ids;
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java
@@ -5,6 +5,7 @@
import com.ruoyi.common.core.domain.Result;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.system.service.UserService;
import com.ruoyi.web.controller.dto.UpdateUserDto;
import io.swagger.annotations.ApiOperation;
import org.springframework.web.bind.annotation.*;
@@ -48,5 +49,28 @@
        return Result.success(userService.getUserNow());
    }
    /**
     * èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·éƒ¨é—¨
     * @return
     */
    @GetMapping ("/selectUserDepartmentLimsName")
    @ApiOperation(value = "获取当前登录用户部门")
    public Result<?> selectUserDepartmentLimsName(){
        return Result.success("成功", userService.selectUserDepartmentLimsName());
    }
    @PostMapping("/upUserDepardLimsId")
    @ApiOperation(value = "修改人员明细所在组织架构")
    public Result<?> upUserDepardLimsId(@RequestBody UpdateUserDto dto){
        return Result.success(userService.upUserDepardLimsId(dto.getIds(), dto.getId()));
    }
    @DeleteMapping("/delUserDepardLimsId")
    @ApiOperation(value = "删除人员明细所在组织架构")
    public Result<?> delUserDepardLimsId(Integer id){
        return Result.success(userService.delUserDepardLimsId(id));
    }
}
ruoyi-framework/src/main/java/com/ruoyi/framework/annotation/ValueTableShow.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,15 @@
package com.ruoyi.framework.annotation;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
@Retention(RetentionPolicy.RUNTIME)
public @interface ValueTableShow {
    int value() default 1;
    String name() default "";
    int width() default 0;
}
ruoyi-framework/src/main/java/com/ruoyi/framework/common/PrintChina.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,60 @@
package com.ruoyi.framework.common;
import com.ruoyi.framework.annotation.ValueTableShow;
import io.swagger.annotations.ApiModelProperty;
import java.lang.reflect.Field;
import java.util.*;
/*李林
* é€šè¿‡æ³¨è§£å¿«é€Ÿç”Ÿæˆtable表头*/
public class PrintChina {
    public static <T> List<Map<String, Object>> printChina(Class<T> tClass) {
        //将实体类的属性和注释转换成参数
        List<Field> fieldList = new ArrayList<>();
        while (tClass != null){
            fieldList.addAll(new ArrayList<>(Arrays.asList(tClass.getDeclaredFields())));
            tClass = (Class<T>) tClass.getSuperclass();
        }
        Field[] fields = new Field[fieldList.size()];
        fieldList.toArray(fields);
        ArrayList<Map<String, Object>> list = new ArrayList<>();
        for (Field field : fields) {
            Map<String, Object> soundVo = new HashMap<>();
            boolean bool = field.isAnnotationPresent(ApiModelProperty.class);
            boolean bool2 = field.isAnnotationPresent(ValueTableShow.class);
            if (bool2) {
                int order = field.getAnnotation(ValueTableShow.class).value();
                String value = field.getAnnotation(ValueTableShow.class).name();
                int width = field.getAnnotation(ValueTableShow.class).width();
                if (bool){
                    value = value.isEmpty() ? field.getAnnotation(ApiModelProperty.class).value() : value;
                }
                soundVo.put("label", field.getName());
                soundVo.put("value", value);
                if(width>0){
                    soundVo.put("width", width);
                }
                soundVo.put("order", order + "");
                if(list.isEmpty()){
                    list.add(soundVo);
                }else{
                    boolean isAdd = false;
                    for (int i = 0; i < list.size(); i++) {
                        Map<String, Object> map = list.get(i);
                        if(order < Integer.parseInt(map.get("order").toString())){
                            list.add(i, soundVo);
                            isAdd = true;
                            break;
                        }
                    }
                    if (!isAdd) list.add(soundVo);
                }
            }
        }
        return list;
    }
}
ruoyi-system/src/main/java/com/ruoyi/system/service/UserService.java
@@ -27,5 +27,16 @@
     * @return
     */
    User getUserNow();
    /**
     * èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·éƒ¨é—¨
     * @return
     */
    String selectUserDepartmentLimsName();
    int upUserDepardLimsId(String ids, String id);
    int delUserDepardLimsId(Integer id);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/UserServiceImpl.java
@@ -1,5 +1,7 @@
package com.ruoyi.system.service.impl;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.QueryWrappers;
@@ -8,6 +10,7 @@
import com.ruoyi.system.service.UserService;
import org.springframework.stereotype.Service;
import java.time.LocalDateTime;
import java.util.List;
/**
@@ -38,5 +41,25 @@
    public User getUserNow() {
        return baseMapper.getUserNow(SecurityUtils.getUserId().intValue());
    }
    /**
     * èŽ·å–å½“å‰ç™»å½•ç”¨æˆ·éƒ¨é—¨
     * @return
     */
    @Override
    public String selectUserDepartmentLimsName() {
        return baseMapper.selectUserDepartmentLimsName(SecurityUtils.getUserId().intValue());
    }
    @Override
    public int upUserDepardLimsId(String ids, String id) {
        List<Integer> userIds = JSON.parseArray(ids, Integer.class);
        return baseMapper.update(null, Wrappers.<User>lambdaUpdate().in(User::getId, userIds).set(User::getDepartLimsId, id).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateBy,SecurityUtils.getLoginUser().getUsername()));
    }
    @Override
    public int delUserDepardLimsId(Integer id) {
        return baseMapper.update(null, Wrappers.<User>lambdaUpdate().eq(User::getId, id).set(User::getDepartLimsId, null).set(User::getUpdateTime, LocalDateTime.now()).set(User::getUpdateBy, SecurityUtils.getUsername()));
    }
}