XiaoRuby
2023-08-23 fca5900388c17f234ff1cb8c2248854139169bdf
LIMS管理系统框架-开发8-23
已修改10个文件
已添加6个文件
305 ■■■■■ 文件已修改
standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java 7 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/controller/OrganizationalController.java 70 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/OrganizationalMapper.java 20 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Organizational.java 61 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/OrganizationalService.java 26 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java 4 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/OrganizationalServiceImpl.java 64 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java 6 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/MaterialMapper.xml 5 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/resources/mapper/OrganizationalMapper.xml 14 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java 8 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/EnterpriseService.java 1 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/EnterpriseServiceImpl.java 13 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
standard-server/src/main/java/com/yuanchu/limslaboratory/controller/MaterialController.java
@@ -60,12 +60,9 @@
    }
    @ApiOperation(value = "标准库-->物料-->侧边栏四级展开")
    @ApiImplicitParams(value = {
            @ApiImplicitParam(value = "型号/型号名称", name = "specificationName", dataTypeClass = String.class)
    })
    @GetMapping("/list")
    public Result<?> getFourLevelInformation(String specificationName) {
        List<Map<String, Object>> fourLevelInformation = materialService.getFourLevelInformation(specificationName);
    public Result<?> getFourLevelInformation() {
        List<Map<String, Object>> fourLevelInformation = materialService.getFourLevelInformation();
        return Result.success(fourLevelInformation);
    }
}
standard-server/src/main/java/com/yuanchu/limslaboratory/controller/OrganizationalController.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,70 @@
package com.yuanchu.limslaboratory.controller;
import com.yuanchu.limslaboratory.pojo.Organizational;
import com.yuanchu.limslaboratory.service.OrganizationalService;
import com.yuanchu.limslaboratory.vo.Result;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import org.springframework.stereotype.Controller;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  å‰ç«¯æŽ§åˆ¶å™¨
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-23 01:13:37
 */
@Api(tags = "实验室管理-->组织架构")
@RestController
@RequestMapping("/organizational")
public class OrganizationalController {
    @Autowired
    private OrganizationalService organizationalService;
    @ApiOperation(value = "侧边栏树展开")
    @GetMapping("/list")
    public Result<?> getFourLevelInformation() {
        Map<String, Object> organizationalTree = organizationalService.OrganizationalTree();
        return Result.success(organizationalTree);
    }
    @ApiOperation(value = "添加部门")
    @PostMapping("/add")
    public Result<?> addDepartment(@RequestBody @Validated Organizational organizational) {
        Integer addDepartment = organizationalService.addDepartment(organizational);
        if (addDepartment >= 1){
            return Result.success("添加成功!");
        }
        return Result.fail("添加失败!");
    }
    @ApiOperation(value = "修改部门")
    @PutMapping("/add")
    public Result<?> updateDepartment(Integer id, @RequestBody @Validated Organizational organizational) {
        Integer addDepartment = organizationalService.updateDepartment(id, organizational);
        if (addDepartment >= 1){
            return Result.success("更新成功!");
        }
        return Result.fail("更新失败!");
    }
    @ApiOperation(value = "删除部门")
    @DeleteMapping("/delete")
    public Result<?> deleteDepartment(Integer id) {
        Integer deleteDepartment = organizationalService.deleteDepartment(id);
        if (deleteDepartment >= 1){
            return Result.success("删除成功!");
        }
        return Result.fail("删除失败!");
    }
}
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/MaterialMapper.java
@@ -24,7 +24,7 @@
    Map selectMaterialById(String materialId);
    // å››çº§æ ‘
    List<Map<String, Object>> FourTree(String specificationsName);
    List<Map<String, Object>> FourTree();
standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/OrganizationalMapper.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,20 @@
package com.yuanchu.limslaboratory.mapper;
import com.yuanchu.limslaboratory.pojo.Organizational;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  Mapper æŽ¥å£
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-23 01:13:37
 */
public interface OrganizationalMapper extends BaseMapper<Organizational> {
    List<Map<String, Object>> OrganizationalTree(Integer father_id);
}
standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Organizational.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,61 @@
package com.yuanchu.limslaboratory.pojo;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.time.LocalDateTime;
import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.Getter;
import lombok.Setter;
import lombok.experimental.Accessors;
import javax.validation.constraints.NotBlank;
/**
 * <p>
 *
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-23 01:13:37
 */
@Accessors(chain = true)
@Data
@EqualsAndHashCode(callSuper = false)
@ApiModel(value="Material对象", description="")
public class Organizational implements Serializable {
    private static final long serialVersionUID = 1L;
    @ApiModelProperty(value = "主键ID",hidden = true)
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;
    @NotBlank(message = "部门名称不能为空!")
    @ApiModelProperty(value = "部门名称", example = "开发部", required = true)
    private String department;
    @NotBlank(message = "请选择上级部门!")
    @ApiModelProperty(value = "上级部门ID", example = "1", required = true)
    private Integer fatherId;
    @TableLogic(value = "1", delval = "0")
    @ApiModelProperty(value = "逻辑删除 æ­£å¸¸>=1,删除<=0", hidden = true)
    private Integer state;
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date createTime;
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新时间", hidden = true)
    @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
    private Date updateTime;
}
standard-server/src/main/java/com/yuanchu/limslaboratory/service/MaterialService.java
@@ -38,7 +38,7 @@
    /**
     * å››çº§åˆ†å±‚显示
     */
    List<Map<String, Object>> getFourLevelInformation(String specificationName);
    List<Map<String, Object>> getFourLevelInformation();
    /**
standard-server/src/main/java/com/yuanchu/limslaboratory/service/OrganizationalService.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,26 @@
package com.yuanchu.limslaboratory.service;
import com.yuanchu.limslaboratory.pojo.Organizational;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-23 01:13:37
 */
public interface OrganizationalService extends IService<Organizational> {
    Map<String, Object> OrganizationalTree();
    Integer addDepartment(Organizational organizational);
    Integer updateDepartment(Integer id, Organizational organizational);
    Integer deleteDepartment(Integer id);
}
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/MaterialServiceImpl.java
@@ -120,8 +120,8 @@
    }
    @Override
    public List<Map<String, Object>> getFourLevelInformation(String specificationName) {
        return materialMapper.FourTree(specificationName);
    public List<Map<String, Object>> getFourLevelInformation() {
        return materialMapper.FourTree();
    }
    //添加指标-->选择样品名称
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/OrganizationalServiceImpl.java
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,64 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.yuanchu.limslaboratory.pojo.Organizational;
import com.yuanchu.limslaboratory.mapper.OrganizationalMapper;
import com.yuanchu.limslaboratory.service.EnterpriseService;
import com.yuanchu.limslaboratory.service.OrganizationalService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
 * <p>
 *  æœåŠ¡å®žçŽ°ç±»
 * </p>
 *
 * @author æ±Ÿè‹éµ·é›ç½‘络科技有限公司
 * @since 2023-08-23 01:13:37
 */
@Service
public class OrganizationalServiceImpl extends ServiceImpl<OrganizationalMapper, Organizational> implements OrganizationalService {
    @Resource
    private OrganizationalMapper organizationalMapper;
    @Autowired
    private EnterpriseService enterpriseService;
    @Override
    public Map<String, Object> OrganizationalTree() {
        String firstEnterpriseName = enterpriseService.getFirstEnterpriseName();
        List<Map<String, Object>> mapList = organizationalMapper.OrganizationalTree(0);
        Map<String, Object> map = new HashMap<>();
        map.put("id", 0);
        map.put("department", firstEnterpriseName);
        map.put("children", mapList);
        return map;
    }
    @Override
    public Integer addDepartment(Organizational organizational) {
        return organizationalMapper.insert(organizational);
    }
    @Override
    public Integer updateDepartment(Integer id, Organizational organizational) {
        LambdaUpdateWrapper<Organizational> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(Organizational::getId, id);
        return organizationalMapper.update(organizational, updateWrapper);
    }
    @Override
    public Integer deleteDepartment(Integer id) {
        LambdaUpdateWrapper<Organizational> updateWrapper = new LambdaUpdateWrapper<>();
        updateWrapper.eq(Organizational::getId, id);
        updateWrapper.set(Organizational::getState, 0);
        return organizationalMapper.update(new Organizational(), updateWrapper);
    }
}
standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/SpecificationsServiceImpl.java
@@ -87,7 +87,11 @@
        List<Product> productList = productModel.stream().map(stringObjectMap -> {
            Product product = new Product();
            product.setName(stringObjectMap.get("name").toString());
            product.setFather(stringObjectMap.get("father").toString());
            try{
                product.setFather(stringObjectMap.get("father").toString());
            }catch (Exception e){
                product.setFather(null);
            }
            product.setUnit(stringObjectMap.get("unit").toString());
            product.setSpecifications_id(specifications.getId());
            return product;
standard-server/src/main/resources/mapper/MaterialMapper.xml
@@ -58,10 +58,7 @@
        FROM material m
        LEFT JOIN (SELECT s.`id`, s.`name`, s.`material_id` FROM standard s WHERE s.`state` = 1) s
        ON s.material_id = m.`id`
        LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM specifications f WHERE f.`state` = 1
        <if test="specificationsName != null and specificationsName != ''">
            AND f.`name` = #{specificationsName}
        </if>) f
        LEFT JOIN (SELECT f.`id`, f.`name`, f.`standard_id` FROM specifications f WHERE f.`state` = 1) f
        ON f.standard_id = s.id
        WHERE m.`state` = 1
    </select>
standard-server/src/main/resources/mapper/OrganizationalMapper.xml
¶Ô±ÈÐÂÎļþ
@@ -0,0 +1,14 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.yuanchu.limslaboratory.mapper.OrganizationalMapper">
    <resultMap id="OrganizationalMap" type="map">
        <id property="id" column="id"/>
        <result property="department" column="department"/>
        <collection property="children" select="OrganizationalTree" column="id" javaType="list"/>
    </resultMap>
    <select id="OrganizationalTree" resultMap="OrganizationalMap">
        SELECT o.id, o.`department` FROM organizational o where o.`father_id` = #{father_id}
    </select>
</mapper>
sys/src/main/java/com/yuanchu/limslaboratory/CodeGenerator.java
@@ -16,7 +16,7 @@
    public static String database_username = "user";
    public static String database_password= "123456";
    public static String author = "江苏鵷雏网络科技有限公司";
    public static String model_name = "/cnas-server"; // å¦‚果为分布式填子模块名称,如果不是分布式为空即可
    public static String model_name = "/standard-server"; // å¦‚果为分布式填子模块名称,如果不是分布式为空即可
    public static String setParent = "com.yuanchu.limslaboratory"; // åŒ…路径
    public static void main(String[] args) {
        String projectPath = System.getProperty("user.dir");
sys/src/test/java/com/yuanchu/limslaboratory/SysApplicationTests.java
@@ -1,5 +1,6 @@
package com.yuanchu.limslaboratory;
import com.yuanchu.limslaboratory.mapper.OrganizationalMapper;
import com.yuanchu.limslaboratory.service.PlanService;
import com.yuanchu.limslaboratory.service.UserService;
import com.yuanchu.limslaboratory.utils.MyUtil;
@@ -21,16 +22,15 @@
class SysApplicationTests {
    @Resource
    private PlanService planService;
    private OrganizationalMapper organizationalMapper;
    @Resource
    private UserService userService;
    @Test
    void contextLoads() {
        String newString = String.format("%06d", 77);
        System.out.println("newString === " + newString);
        List<Map<String, Object>> test = organizationalMapper.OrganizationalTree(0);
        MyUtil.PrintLog(test.toString());
    }
    @Test
user-server/src/main/java/com/yuanchu/limslaboratory/service/EnterpriseService.java
@@ -13,4 +13,5 @@
 */
public interface EnterpriseService extends IService<Enterprise> {
    String getFirstEnterpriseName();
}
user-server/src/main/java/com/yuanchu/limslaboratory/service/impl/EnterpriseServiceImpl.java
@@ -1,10 +1,13 @@
package com.yuanchu.limslaboratory.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.yuanchu.limslaboratory.pojo.Enterprise;
import com.yuanchu.limslaboratory.mapper.EnterpriseMapper;
import com.yuanchu.limslaboratory.service.EnterpriseService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
/**
 * <p>
@@ -17,4 +20,14 @@
@Service
public class EnterpriseServiceImpl extends ServiceImpl<EnterpriseMapper, Enterprise> implements EnterpriseService {
    @Resource
    private EnterpriseMapper enterpriseMapper;
    @Override
    public String getFirstEnterpriseName() {
        LambdaQueryWrapper<Enterprise> wrapper = new LambdaQueryWrapper<>();
        wrapper.select(Enterprise::getName);
        Enterprise enterprise = enterpriseMapper.selectOne(wrapper);
        return enterprise.getName();
    }
}