zhuo
2025-02-25 a0b5291eb64b13555d4390aba7782eb76dced376
Merge branch 'dev' into dev_cr
已修改24个文件
已删除2个文件
已添加2个文件
471 ■■■■ 文件已修改
basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java 33 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java 6 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardProductList.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/StandardMethodListService.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/StandardProductListService.java 4 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/StandardProductListService2.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/StandardTreeService.java 2 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java 73 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListService2Impl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java 84 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java 29 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/resources/mapper/StandardProductListMapper.xml 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalCorrectController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalImplementController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalMeetingController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalPlanController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java 65 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java 14 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java 25 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-common/src/main/java/com/ruoyi/common/constant/DictDataConstants.java 24 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java 16 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java 9 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java 12 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml 8 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml 3 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
basic-server/src/main/java/com/ruoyi/basic/controller/StandardTreeController.java
@@ -57,14 +57,6 @@
        return Result.success(standardTreeService.addStandardTree(standardTree));
    }
    @ApiOperation(value = "给标准树添加检验标准")
    @PostMapping("/addStandardMethodList")
    public Result addStandardMethodList(@RequestBody Map<String, Object> map) {
        Integer standardId = (Integer) map.get("standardId");
        String tree = (String) map.get("tree");
        return Result.success(standardMethodListService.addStandardMethodList(standardId, tree));
    }
    @ApiOperation(value = "根据标准树进行标准查询")
    @GetMapping("/selectsStandardMethodByFLSSM")
    public Result selectsStandardMethodByFLSSM(String tree) {
@@ -87,27 +79,6 @@
        return Result.success(standardProductListService.updateSection(list));
    }
    @ApiOperation(value = "删除标准树下的检验标准")
    @DeleteMapping("/delStandardMethodByFLSSM")
    public Result delStandardMethodByFLSSM(Integer id) {
        return Result.success(standardMethodListService.delStandardMethodByFLSSM(id));
    }
    @ApiOperation(value = "删除标准树下的检验项目")
    @DeleteMapping("/delStandardProductByIds")
    public Result delStandardProductByIds(String ids) {
        JSONArray lists = JSON.parseArray(ids);
        return Result.success(standardProductListService.delStandardProduct(lists));
    }
    @ApiOperation(value = "新增标准树下的检验项目")
    @PostMapping("/addStandardProduct")
    public Result addStandardProduct(@RequestBody Map<String, String> map) {
        String ids = map.get("ids");
        String tree = map.get("tree");
        return Result.success(standardTreeService.addStandardProduct(ids, tree));
    }
    @ApiOperation(value = "删除标准树的层级")
    @DeleteMapping("/delStandardTree")
    public Result delStandardTree(String tree) {
@@ -122,8 +93,8 @@
    @ApiOperation(value = "通过检验标准查询检验项目")
    @GetMapping("/selectStandardProductListByMethodId")
    public Result selectStandardProductListByMethodId(Integer id, String tree, Integer page) {
        return Result.success(standardProductListService.selectStandardProductListByMethodId(id, tree, page));
    public Result selectStandardProductListByMethodId(Integer id, String tree) {
        return Result.success(standardProductListService.selectStandardProductListByMethodId(id, tree));
    }
    @ApiOperation(value = "批量查询检验项目")
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardProductListMapper.java
@@ -62,6 +62,12 @@
                        @Param("endIndex") Integer endIndex,
                        @Param("methodId") Integer methodId,
                        @Param("tree") String tree);
    /**
     * æ‰¹é‡æ·»åŠ æ ‡å‡†
     * @param productLists
     */
    void saveBatchProductLists(@Param("productLists") List<StandardProductList> productLists);
}
basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
@@ -39,9 +39,6 @@
    List<SampleTypeDto> getStandardTree2();
    List<SampleDto> getStandardTree3(String sampleType);
    String getLaboratory(String str);
    Integer getStructureItemParameterId(String sampleType, String item, String itemChild, String inspectionItemClass);
basic-server/src/main/java/com/ruoyi/basic/pojo/StandardProductList.java
@@ -153,7 +153,7 @@
    @ApiModelProperty("型号")
    private String model;
    @ApiModelProperty("型号")
    @ApiModelProperty("模板id")
    private Integer templateId;
    @ApiModelProperty("")
@@ -187,6 +187,7 @@
    private String tree;
    @ApiModelProperty("检验项id")
    private Integer structureItemParameterId;
    @ApiModelProperty(value = "检验项分类")
basic-server/src/main/java/com/ruoyi/basic/service/StandardMethodListService.java
@@ -13,13 +13,8 @@
*/
public interface StandardMethodListService extends IService<StandardMethodList> {
    int addStandardMethodList(Integer standardId, String tree);
    Map<String, List<?>> selectsStandardMethodByFLSSM(String tree);
    Map<String, List<?>> selectsStandardMethodByFLSSM2(String tree);
    int delStandardMethodByFLSSM(Integer id);
    List<StandardMethodList> selectStandardMethodEnum();
basic-server/src/main/java/com/ruoyi/basic/service/StandardProductListService.java
@@ -20,11 +20,9 @@
    int upStandardProductList(StandardProductList list);
    int delStandardProduct(JSONArray list);
    List<StandardProductList> selectStandardProductList(InsSampleReceiveDto insSample);
    Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree, Integer page);
    Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree);
    IPage<StandardProductList> selectStandardProductByMethodId(Integer id, String tree, Integer page, String laboratory, String item, String items);
basic-server/src/main/java/com/ruoyi/basic/service/StandardProductListService2.java
ÎļþÒÑɾ³ý
basic-server/src/main/java/com/ruoyi/basic/service/StandardTreeService.java
@@ -23,8 +23,6 @@
    int delStandardTree(String tree);
    int addStandardProduct(String ids, String tree);
    List<SampleTypeDto> getStandardTree2();
    int upStandardProducts(Map<String, Object> product);
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java
@@ -29,48 +29,6 @@
    private StandardProductListMapper standardProductListMapper;
    @Override
    public int addStandardMethodList(Integer standardId, String tree) {
        String[] trees = tree.split(" - ");
        Map<String, String> map = standardMethodListMapper.selectStandardMethodById(standardId);
        StandardMethodList list = new StandardMethodList();
        list.setCode(map.get("code"));
        list.setName(map.get("name"));
        list.setRemark(map.get("remark"));
        list.setFactory(trees[0]);
        try {
            list.setLaboratory(trees[1]);
        }catch (Exception e){}
        try {
            list.setSampleType(trees[2]);
        }catch (Exception e){}
        try {
            list.setSample(trees[3]);
        }catch (Exception e){}
        try {
            list.setModel(trees[4]);
        }catch (Exception e){}
        standardMethodListMapper.insert(list);
        List<StandardProductList> standardProductLists = standardMethodListMapper.selectParameterList(list.getCode());
        for (StandardProductList standardProductList : standardProductLists) {
            standardProductList.setStandardMethodListId(list.getId());
            standardProductList.setFactory(trees[0]);
            try {
                standardProductList.setLaboratory(trees[1]);
            }catch (Exception e){}
            try {
                standardProductList.setSampleType(trees[2]);
            }catch (Exception e){}
            try {
                standardProductList.setSample(trees[3]);
            }catch (Exception e){}
            try {
                standardProductList.setModel(trees[4]);
            }catch (Exception e){}
            standardProductListMapper.insert(standardProductList);
        }
        return 1;
    }
    @Override
    public Map<String, List<?>> selectsStandardMethodByFLSSM(String tree) {
@@ -103,37 +61,6 @@
        return map;
    }
    @Override
    public Map<String, List<?>> selectsStandardMethodByFLSSM2(String tree) {
        String[] trees = tree.split(" - ");
        List<StandardMethodList> standardMethodLists = null;
        switch (trees.length){
            case 5:
                standardMethodLists = standardMethodListMapper.selectStandardMethodLists2(trees[0],trees[1],trees[2],trees[3],trees[4]);
                break;
            case 4:
                standardMethodLists = standardMethodListMapper.selectStandardMethodLists2(trees[0],trees[1],trees[2],trees[3],null);
                break;
            case 3:
                standardMethodLists = standardMethodListMapper.selectStandardMethodLists2(trees[0],trees[1],trees[2],null,null);
                break;
            case 2:
                standardMethodLists = standardMethodListMapper.selectStandardMethodLists2(trees[0],trees[1],null,null,null);
                break;
            case 1:
                standardMethodLists = standardMethodListMapper.selectStandardMethodLists2(trees[0],null,null,null,null);
                break;
        }
        Map<String, List<?>> map = new HashMap<>();
        map.put("standardMethodList", standardMethodLists);
        return map;
    }
    @Override
    public int delStandardMethodByFLSSM(Integer id) {
        standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate().eq(StandardProductList::getStandardMethodListId, id));
        return standardMethodListMapper.deleteById(id);
    }
    @Override
    public List<StandardMethodList> selectStandardMethodEnum() {
        return standardMethodListMapper.selectListEnum();
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListService2Impl.java
ÎļþÒÑɾ³ý
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardProductListServiceImpl.java
@@ -20,7 +20,6 @@
import com.ruoyi.basic.pojo.StandardProductListSupplierAsk;
import com.ruoyi.basic.pojo.StandardTree;
import com.ruoyi.basic.service.StandardProductListService;
import com.ruoyi.basic.service.StandardProductListService2;
import lombok.AllArgsConstructor;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@@ -45,8 +44,6 @@
    private StandardTreeMapper standardTreeMapper;
    private StandardProductListService2 standardProductListService2;
    private IfsInventoryQuantityMapper ifsInventoryQuantityMapper;
    private StandardProductListSupplierAskMapper standardProductListSupplierAskMapper;
@@ -57,10 +54,6 @@
        return standardProductListMapper.updateById(list);
    }
    @Override
    public int delStandardProduct(JSONArray list) {
        return standardProductListMapper.deleteBatchIds(list);
    }
    @Override
    public List<StandardProductList> selectStandardProductList(InsSampleReceiveDto insSample) {
@@ -263,13 +256,9 @@
    @Override
    @Transactional(rollbackFor = Exception.class)
    public Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree, Integer page) {
    public Map<String, Object> selectStandardProductListByMethodId(Integer id, String tree) {
        String[] trees = tree.split(" - ");
        try {
            String tree1 = trees[2];
        } catch (Exception e) {
            throw new BaseException("操作太快,系统传参错误!!!!");
        }
        // åˆ¤æ–­æ˜¯å¦æ‹–拽
        boolean isDrag = false;
        List<StandardProductList> list = new ArrayList<>();
        if (trees.length == 3) {
@@ -411,46 +400,37 @@
                    if (sp.getTemplateId() != null && !sp.getTemplateId().equals("")) {
                        pl.setTemplateId(sp.getTemplateId());
                    }
                    //因为还有个产品叫耐张线夹 æŽ¥ç»­é‡‘å…· ,这两个项目的数据完全一样,特殊处理
                    if (sp.getTree() != null && !sp.getTree().equals("") && !pl.getTree().equals("中天科技检测中心 - ç”µåŠ›äº§å“å®žéªŒå®¤ - é‡‘å…· - è€å¼ çº¿å¤¹ - null")) {
                        pl.setTree(sp.getTree());
                    }
                    break;
                }
            }
        }
        if (page == 1) {
            Integer userId = SecurityUtils.getUserId().intValue();
//            CompletableFuture.supplyAsync(() -> {
            if (trees.length == 5) {
                standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                        .eq(StandardProductList::getStandardMethodListId, id)
                        .eq(StandardProductList::getTree, tree));
            } else {
                standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                        .eq(StandardProductList::getStandardMethodListId, id)
                        .like(StandardProductList::getTree, tree));
            }
            try {
                standardProductListService2.saveBatch(list.stream().map(a -> {
                    a.setFactory(trees[0]);
                    a.setLaboratory(trees[1]);
                    a.setSampleType(trees[2]);
                    a.setCreateUser(userId);
                    a.setUpdateUser(userId);
                    a.setStandardMethodListId(id);
                    return a;
                }).collect(Collectors.toList()));
            } catch (Exception e) {
                // å¤„理重复 ID çš„记录,重新生成 ID å¹¶ç»§ç»­å°è¯•插入
                for (StandardProductList productList : list) {
                    productList.setId(IdWorker.getId());
                }
            }
        Integer userId = SecurityUtils.getUserId().intValue();
        if (trees.length == 5) {
            standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                    .eq(StandardProductList::getStandardMethodListId, id)
                    .eq(StandardProductList::getTree, tree));
        } else {
            standardProductListMapper.delete(Wrappers.<StandardProductList>lambdaUpdate()
                    .eq(StandardProductList::getStandardMethodListId, id)
                    .like(StandardProductList::getTree, tree));
        }
        Map<String, Object> map = new HashMap<>();
        List<StandardProductList> productLists = list.stream().map(a -> {
            a.setFactory(trees[0]);
            a.setLaboratory(trees[1]);
            a.setSampleType(trees[2]);
            a.setCreateUser(userId);
            a.setUpdateUser(userId);
            a.setStandardMethodListId(id);
            return a;
        }).collect(Collectors.toList());
//            this.saveBatch(productLists);
        // æ‰¹é‡æ·»åŠ æ ‡å‡†
        baseMapper.saveBatchProductLists(productLists);
        Collections.sort(list, (o1, o2) -> {
            String field1 = o1.getManHourGroup();
            String field2 = o2.getManHourGroup();
@@ -475,11 +455,9 @@
            list.sort((o1, o2) -> (o1.getSort() == null ? 0 : o1.getSort())
                    - (o2.getSort() == null ? 0 : o2.getSort()));
        }
        try {
            map.put("productList", list.subList((page - 1) * 300, page * 300));
        } catch (IndexOutOfBoundsException e) {
            map.put("productList", list.subList((page - 1) * 300, list.size()));
        }
        Map<String, Object> map = new HashMap<>();
        map.put("productList", list);
        map.put("total", list.size());
        return map;
    }
@@ -574,7 +552,7 @@
    @Override
    public void resetTreeDragBatch(List<StandardProductList> standardProductLists) {
        standardProductListService2.updateBatchById(standardProductLists);
        this.updateBatchById(standardProductLists);
    }
    /**
basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardTreeServiceImpl.java
@@ -127,35 +127,6 @@
    }
    @Override
    @Transactional(rollbackFor = Exception.class)
    public int addStandardProduct(String ids, String tree) {
        String[] trees = tree.split(" - ");
        JSONArray jsonArray = JSON.parseArray(ids);
        for (Object o : jsonArray) {
            StandardProductList standardProductList = standardTreeMapper.selectStandardProductById(Integer.parseInt("" + o));
            standardProductList.setFactory(trees[0]);
            try {
                standardProductList.setLaboratory(trees[1]);
            } catch (Exception e) {
            }
            try {
                standardProductList.setSampleType(trees[2]);
            } catch (Exception e) {
            }
            try {
                standardProductList.setSample(trees[3]);
            } catch (Exception e) {
            }
            try {
                standardProductList.setModel(trees[4]);
            } catch (Exception e) {
            }
            standardProductListMapper.insert(standardProductList);
        }
        return 1;
    }
    @Override
    public List<SampleTypeDto> getStandardTree2() {
        return standardTreeMapper.getStandardTree2();
    }
basic-server/src/main/resources/mapper/StandardProductListMapper.xml
@@ -27,6 +27,19 @@
            <result property="createTime" column="create_time" jdbcType="TIMESTAMP"/>
            <result property="updateTime" column="update_time" jdbcType="TIMESTAMP"/>
    </resultMap>
    <!-- æ‰¹é‡æ·»åŠ æ£€æµ‹æ ‡å‡† -->
    <insert id="saveBatchProductLists">
        INSERT INTO standard_product_list (id, inspection_item, inspection_item_en, inspection_item_subclass, inspection_item_subclass_en, factory, laboratory, sample_type, sample, model, son_laboratory, unit, price, man_hour, man_hour_group, inspection_item_type, inspection_value_type, checkout_number, section, cores, method, method_s, man_day, bsm, ask, tell, standard_method_list_id, template_id, state, dic, tree, structure_item_parameter_id, inspection_item_class, inspection_item_class_en, radius, radius_list, rates, sort, conductor_material, conductor_type)
        VALUES
        <foreach item="item" collection="productLists" open="(" separator="),(" close=")">
            #{item.id}, #{item.inspectionItem}, #{item.inspectionItemEn}, #{item.inspectionItemSubclass}, #{item.inspectionItemSubclassEn}, #{item.factory}, #{item.sonLaboratory}, #{item.sampleType}, #{item.sample}, #{item.model}, #{item.sonLaboratory}, #{item.unit}, #{item.price}, #{item.manHour}, #{item.manHourGroup}, #{item.inspectionItemType}, #{item.inspectionValueType}, #{item.checkoutNumber}, #{item.section}, #{item.cores}, #{item.method}, #{item.methodS}, #{item.manDay}, #{item.bsm}, #{item.ask}, #{item.tell}, #{item.standardMethodListId}, #{item.templateId}, #{item.state}, #{item.dic}, #{item.tree}, #{item.structureItemParameterId},
            #{item.inspectionItemClass}, #{item.inspectionItemClassEn}, #{item.radius}, #{item.radiusList}, #{item.rates}, #{item.sort}, #{item.conductorMaterial}, #{item.conductorType}
        </foreach>
    </insert>
    <update id="updateSection">
        UPDATE standard_product_list
        SET price=#{productList.price},
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalCorrectController.java
@@ -102,7 +102,7 @@
     */
    @ApiOperation(value = "删除内审管理纠正措施附件")
    @GetMapping("/delInternalCorrectFile")
    @DeleteMapping("/delInternalCorrectFile")
    public Result delInternalCorrectFile(Integer correctFileId){
        return Result.success(internalCorrectFileMapper.deleteById(correctFileId));
    }
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalImplementController.java
@@ -76,7 +76,7 @@
     */
    @ApiOperation(value = "内审实施计划删除")
    @GetMapping("/delInternalImplement")
    @DeleteMapping("/delInternalImplement")
    public Result delInternalImplement(Integer implementId){
        return Result.success(internalImplementService.delInternalImplement(implementId));
    }
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalMeetingController.java
@@ -74,7 +74,7 @@
     */
    @ApiOperation(value = "内审会议删除")
    @GetMapping("/delInternalMeeting")
    @DeleteMapping("/delInternalMeeting")
    public Result delInternalMeeting(Integer meetingId){
        return Result.success(internalMeetingService.delInternalMeeting(meetingId));
    }
cnas-manage/src/main/java/com/ruoyi/manage/controller/InternalPlanController.java
@@ -76,7 +76,7 @@
     */
    @ApiOperation(value = "内审年度计划删除")
    @GetMapping("/delInternalPlan")
    @DeleteMapping("/delInternalPlan")
    public Result delInternalPlan(Integer planId){
        return Result.success(internalPlanService.delInternalPlan(planId));
    }
cnas-personnel/src/main/java/com/ruoyi/personnel/task/PersonTrainingSchedule.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,65 @@
package com.ruoyi.personnel.task;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.ruoyi.common.core.domain.entity.User;
import com.ruoyi.common.utils.WxCpUtils;
import com.ruoyi.personnel.mapper.PersonTrainingDetailedMapper;
import com.ruoyi.personnel.pojo.PersonTrainingDetailed;
import com.ruoyi.system.mapper.UserMapper;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.scheduling.concurrent.ThreadPoolTaskExecutor;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.time.format.DateTimeFormatter;
import java.util.List;
/**
 * åŸ¹è®­è®¡åˆ’使用提醒记录提醒
 */
@Component
public class PersonTrainingSchedule {
    @Resource
    private PersonTrainingDetailedMapper personTrainingDetailedMapper;
    @Resource
    private UserMapper userMapper;
    @Resource
    private ThreadPoolTaskExecutor threadPoolTaskExecutor;
    /**
     * æé†’填写设备使用记录
     */
//    @Scheduled(cron = "0/5 * * * * *")
    @Scheduled(cron = "0 0 9 1 * *") // æ¯æœˆä¸€å·æ‰§è¡Œ
    public void task1() {
        // æŸ¥è¯¢å½“月培训计划
        DateTimeFormatter formatter = DateTimeFormatter.ofPattern("yyyy.M");
        String format = LocalDateTime.now().format(formatter);
        List<PersonTrainingDetailed> personTrainingDetaileds = personTrainingDetailedMapper.selectList(Wrappers.<PersonTrainingDetailed>lambdaQuery()
                .eq(PersonTrainingDetailed::getTrainingDate, format));
        for (PersonTrainingDetailed personTrainingDetailed : personTrainingDetaileds) {
            threadPoolTaskExecutor.execute(() -> {
                // æŸ¥è¯¢åŸ¹è®­è®²å¸ˆ
                User user = userMapper.selectById(personTrainingDetailed.getTrainingLecturerId());
                // ä¼ä¸šå¾®ä¿¡é€šçŸ¥åŸ¹è®­
                String message = "";
                message += "人员培训计划提醒通知";
                message += "\n培训目标: " + personTrainingDetailed.getTrainingObjectives();
                message += "\n培训内容: " + personTrainingDetailed.getTrainingContent();
                message += "\n参加对象: " + personTrainingDetailed.getParticipants();
                message += "\n培训日期: " + personTrainingDetailed.getTrainingDate();
                message += "\n计划当月进行培训";
                //发送企业微信消息通知
                try {
                    WxCpUtils.inform(user.getAccount(), message, null);
                } catch (Exception e) {
                    throw new RuntimeException(e);
                }
            });
        }
    }
}
cnas-process/src/main/java/com/ruoyi/process/service/impl/ProcessComplainServiceImpl.java
@@ -1,5 +1,6 @@
package com.ruoyi.process.service.impl;
import cn.hutool.core.date.DateUtil;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
@@ -9,6 +10,8 @@
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.ruoyi.basic.pojo.StandardTemplate;
import com.ruoyi.common.numgen.NumberGenerator;
import com.ruoyi.common.utils.QueryWrappers;
import com.ruoyi.framework.exception.ErrorException;
import com.ruoyi.inspect.mapper.InsReportMapper;
@@ -26,6 +29,7 @@
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.Date;
import java.util.List;
/**
@@ -49,6 +53,9 @@
    @Resource
    private InsSampleMapper insSampleMapper;
    @Resource
    private NumberGenerator<ProcessComplain> numberGenerator;
    @Override
    public IPage<ProcessComplain> pageProcessComplain(Page page, ProcessComplain processComplain) {
@@ -68,9 +75,10 @@
            throw new ErrorException("样品编号输入有误");
        }
        //投诉编号生成
        //todo  giveCode
//        String giveCode = this.giveCode.giveCode("JCZX-", "cnas_process_complain", "", "yyMMdd");
//        processComplain.setComplainNo(giveCode);
        String giveCode = numberGenerator.generateNumberWithPrefix(3,
                "JCZX-" + DateUtil.format(new Date(), "yyMMdd"),
                ProcessComplain::getComplainNo);
        processComplain.setComplainNo(giveCode);
        return processComplainMapper.insert(processComplain);
    }
inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -30,6 +30,7 @@
import com.ruoyi.basic.pojo.IfsInventoryQuantity;
import com.ruoyi.basic.pojo.StandardTemplate;
import com.ruoyi.basic.service.StandardTemplateService;
import com.ruoyi.common.constant.DictDataConstants;
import com.ruoyi.common.constant.InsOrderTypeConstants;
import com.ruoyi.common.core.domain.entity.Custom;
import com.ruoyi.common.core.domain.entity.InformationNotification;
@@ -1514,9 +1515,9 @@
            standardMethod2.append("、").append(s);
        }
        standardMethod2.replace(0, 1, "");
        // todo: æŸ¥è¯¢å­—典检测类型
//        List<SysDictData> sysDictData = iSysDictTypeService.selectDictDataByName("");
        String orderType = null;
        // æ ·å“ç±»åž‹
        String orderType = iSysDictTypeService.selectLabelByDict(DictDataConstants.CHECK_TYPE, insOrder.getOrderType());
        List<RowRenderData> rows = new ArrayList<>();
        List<TextRenderData> text = new ArrayList<>();
@@ -2275,18 +2276,23 @@
        String modelStr = CollUtil.join(models, "\n");
        String finalModelStr = modelStr;
        // todo: æŸ¥è¯¢å­—å…¸
        //        List<SysDictData> sysDictData = iSysDictTypeService.selectDictDataByName("");
        // æ£€æµ‹ç±»åž‹
        String orderType = null;
        String formType = null;
        orderType = iSysDictTypeService.selectLabelByDict(DictDataConstants.CHECK_TYPE, insOrder.getOrderType());
        // åˆ¤æ–­ç¬¬ä¸€ä¸ªå­—典是否为空
        if (StringUtils.isBlank(orderType)) {
            orderType = iSysDictTypeService.selectLabelByDict(DictDataConstants.CHECK_TYPE1, insOrder.getOrderType());
        }
        // æ¥æ ·æ–¹å¼
        String formType = iSysDictTypeService.selectLabelByDict(DictDataConstants.FORM_TYPE, insOrder.getFormType());
        // æ ·å“çŠ¶æ€
        String sampleStatus = null;
        String sampleStatus = iSysDictTypeService.selectLabelByDict(DictDataConstants.SAMPLE_STATUS_LIST, insOrder.getSampleStatus());;
        ConfigureBuilder builder = Configure.builder();
        builder.useSpringEL(true);
        List<Map<String, String>> finalDeviceList = deviceList;
        Integer userId = insSampleUserMapper.selectOne(Wrappers.<InsSampleUser>lambdaQuery().eq(InsSampleUser::getInsSampleId, orderId).last("limit 1")).getUserId();
        Custom custom = customMapper.selectById(insOrder.getCompanyId());
        // æŸ¥è¯¢åˆ¤æ–­æ˜¯å¦æœ‰ä¸åˆ¤å®šé¡¹ç›®,和全都是判定项
@@ -2379,6 +2385,7 @@
        String finalResultCh = resultCh;
        String finalResultEn = resultEn;
        String finalOrderType = orderType;
        InputStream inputStream = this.getClass().getResourceAsStream("/static/report-template.docx");
        XWPFTemplate template = XWPFTemplate.compile(inputStream, builder.build()).render(
                new HashMap<String, Object>() {{
@@ -2403,7 +2410,7 @@
                    put("images", images);
                    put("examineUrl", null);
                    put("ratifyUrl", null);
                    put("orderType", orderType);
                    put("orderType", finalOrderType);
                    put("getTime", finalSendTime.format(DateTimeFormatter.ofPattern("yyyyå¹´MM月dd日")));
                    put("getTimeEn", monthNames[finalSendTime.getMonthValue() - 1] + " " + finalSendTime.format(DateTimeFormatter.ofPattern("dd, yyyy")));
                    put("seal1", null);
inspect-server/src/main/java/com/ruoyi/inspect/vo/InsOrderPlanVO.java
@@ -7,7 +7,7 @@
public class InsOrderPlanVO{
    private String id;
    private Integer id;
    @ApiModelProperty("委托编号")
    private String entrustCode;
@@ -73,6 +73,6 @@
    private String tempUrlPdf;
    @ApiModelProperty("报告id")
    private String insReportId;
    private Integer insReportId;
}
ruoyi-admin/src/main/java/com/ruoyi/web/controller/system/UserController.java
@@ -26,7 +26,8 @@
    private UserService userService;
    /**
     * type : 1: èŽ·å–æ£€æµ‹äººå‘˜ä¿¡æ¯
     * todo:  type : 1: èŽ·å–æ£€æµ‹äººå‘˜ä¿¡æ¯
              type : 2: èŽ·å–å½“å‰éƒ¨é—¨(实验室人员)
     * @param user
     * @param type
     * @return
ruoyi-common/src/main/java/com/ruoyi/common/constant/DictDataConstants.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,24 @@
package com.ruoyi.common.constant;
import lombok.Data;
/**
 * å­—典类型
 *
 * @Author zhuo
 * @Date 2025/2/25
 */
public class DictDataConstants {
    // æ£€éªŒç±»åž‹(原材料)
    public static final String CHECK_TYPE = "check_type";
    // æ£€éªŒç±»åž‹(成品)
    public static final String CHECK_TYPE1 = "check_type1";
    // æ¥æ ·æ–¹å¼
    public static final String FORM_TYPE = "form_type";
    // æ ·å“çŠ¶æ€
    public static final String SAMPLE_STATUS_LIST = "sample_status_list";
}
ruoyi-system/src/main/java/com/ruoyi/system/mapper/SysDictTypeMapper.java
@@ -5,6 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.ruoyi.common.core.domain.entity.SysDictType;
import org.apache.ibatis.annotations.Param;
/**
 * å­—典表 æ•°æ®å±‚
@@ -84,5 +85,20 @@
     */
    public SysDictType checkDictTypeUnique(String dictType);
    /**
     * æ ¹æ®å­—典名称查询字典数据
     *
     * @param dictName å­—典名称
     * @return å­—典数据集合信息
     */
    List<SysDictType> selectList(String dictName);
    /**
     * æ ¹æ®å­—典编号, å­—典值value查询label内容
     *
     * @param dictType å­—典类型
     * @param dictValue å­—典值
     * @return ç»“æžœ
     */
    String selectLabelByDict(@Param("dictType") String dictType, @Param("dictValue") String dictValue);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/ISysDictTypeService.java
@@ -103,4 +103,13 @@
     * @return ç»“æžœ
     */
    public boolean checkDictTypeUnique(SysDictType dictType);
    /**
     * æ ¹æ®å­—典编号, å­—典值value查询label内容
     *
     * @param dictType å­—典类型
     * @param dictValue å­—典值
     * @return ç»“æžœ
     */
    public String selectLabelByDict(String dictType, String dictValue);
}
ruoyi-system/src/main/java/com/ruoyi/system/service/impl/SysDictTypeServiceImpl.java
@@ -235,4 +235,16 @@
        }
        return UserConstants.UNIQUE;
    }
    /**
     * æ ¹æ®å­—典编号, å­—典值value查询label内容
     *
     * @param dictType å­—典类型
     * @param dictValue å­—典值
     * @return ç»“æžœ
     */
    @Override
    public String selectLabelByDict(String dictType, String dictValue) {
        return dictTypeMapper.selectLabelByDict(dictType, dictValue);
    }
}
ruoyi-system/src/main/resources/mapper/system/SysDictTypeMapper.xml
@@ -140,4 +140,12 @@
        from sys_dict_type
        where dict_name = #{dictName}
    </select>
    <!-- æ ¹æ®å­—典编号, å­—典值value查询label内容 -->
    <select id="selectLabelByDict" resultType="java.lang.String">
        select dict_label
        from sys_dict_data
        where dict_type = #{dictType}
          and dict_value = #{dictValue}
    </select>
</mapper>
ruoyi-system/src/main/resources/mapper/system/SysUserMapper.xml
@@ -69,6 +69,9 @@
        <if test="userName != null and userName != ''">
            AND u.account like concat('%', #{userName}, '%')
        </if>
        <if test="nickName != null and nickName != ''">
            AND u.name like concat('%', #{nickName}, '%')
        </if>
        <if test="status != null and status != ''">
            AND u.status = #{status}
        </if>