From 8f9f72a3f92de3a1a5f2faf1eaff583fbe6e70fb Mon Sep 17 00:00:00 2001
From: kaiyu <404897439@qq.com>
Date: Wed, 12 May 2021 11:06:50 +0800
Subject: [PATCH] screen-manage                   增加单位转换模块,增加功能,查询功能

---
 screen-manage/src/main/java/com/moral/api/controller/UnitConversionController.java               |   61 +++++
 screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionQueryVO.java      |   82 ++++++
 screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java          |    4 
 screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java            |  123 ++++++++++
 screen-manage/src/main/resources/mapper/UnitConversionMapper.xml                                 |   16 +
 screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java                |    2 
 screen-manage/src/main/java/com/moral/api/pojo/form/unitConversion/UnitConversionQueryForm.java  |   46 +++
 screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java        |    2 
 screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java                     |   38 +++
 screen-common/src/main/java/com/moral/constant/Constants.java                                    |   10 
 screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionVO.java           |   55 ++++
 screen-manage/src/main/java/com/moral/api/entity/UnitConversion.java                             |   69 +++++
 screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java                             |    3 
 screen-manage/src/main/java/com/moral/api/mapper/UnitConversionMapper.java                       |   16 +
 screen-manage/src/main/java/com/moral/api/pojo/dto/unitConversion/UnitConversionQueryDTO.java    |   29 ++
 screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java                        |    9 
 screen-manage/src/main/java/com/moral/api/pojo/dto/unitConversion/UnitConversionDTO.java         |   26 ++
 screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java           |    4 
 screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java                     |    2 
 screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java               |   11 
 screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java              |    2 
 screen-manage/src/main/java/com/moral/api/entity/GroupMenu.java                                  |    4 
 screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java                 |    4 
 myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java                                  |    4 
 screen-manage/src/main/java/com/moral/api/pojo/form/unitConversion/UnitConversionInsertForm.java |   49 ++++
 25 files changed, 656 insertions(+), 15 deletions(-)

diff --git a/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java b/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java
index 2d25b48..4e724b7 100644
--- a/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java
+++ b/myBatisPlusGenerator/src/main/java/com/moral/CodeGenerator.java
@@ -67,10 +67,10 @@
 
         // ���������������
         DataSourceConfig dsc = new DataSourceConfig();
-        dsc.setUrl("jdbc:mysql://39.97.177.149:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC");
+        dsc.setUrl("jdbc:mysql://vp9l57dtd2vng7oxft1t.rwlb.rds.aliyuncs.com:3306/moral?useUnicode=true&characterEncoding=UTF-8&useSSL=false&serverTimezone=UTC");
         dsc.setDriverName("com.mysql.cj.jdbc.Driver");
         dsc.setUsername("root");
-        dsc.setPassword("chenkaiyu111");
+        dsc.setPassword("moral_123456");
         mpg.setDataSource(dsc);
 
         // ���������
diff --git a/screen-common/src/main/java/com/moral/constant/Constants.java b/screen-common/src/main/java/com/moral/constant/Constants.java
index c7ae5cc..e538e66 100644
--- a/screen-common/src/main/java/com/moral/constant/Constants.java
+++ b/screen-common/src/main/java/com/moral/constant/Constants.java
@@ -84,5 +84,15 @@
      * */
     public static final String DELETE_OPERATE_TYPE = "3";
 
+    /*
+    * ���������������������������������������
+    * */
+    public static final String FORMULA_PLACEHOLDER = "{0}";
+
+    /*
+    * ������������������
+    * */
+    public static final String SYSTEM_DICT_TYPE_UNIT = "unit";
+
 
 }
diff --git a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
index f927c81..a78ed51 100644
--- a/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
+++ b/screen-common/src/main/java/com/moral/constant/ResponseCodeEnum.java
@@ -48,7 +48,8 @@
     SENSOR_IS_EXIST(-34, "���������������"),
     SENSOR_KEY_IS_USED(-35, "������������������������"),
     ORGANIZATION_USER_NOT_EXIST(-36,"���������������������"),
-    SENSOR_IS_NOT_EXIST(-37, "���������������")
+    SENSOR_IS_NOT_EXIST(-37, "���������������"),
+    UNIT_CONVERSION_EXIST(-38,"������������������������")
     ;
     private final Integer code;
     private final String  msg;
diff --git a/screen-manage/src/main/java/com/moral/api/controller/UnitConversionController.java b/screen-manage/src/main/java/com/moral/api/controller/UnitConversionController.java
new file mode 100644
index 0000000..a5f8390
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/controller/UnitConversionController.java
@@ -0,0 +1,61 @@
+package com.moral.api.controller;
+
+import com.moral.api.pojo.dto.unitConversion.UnitConversionDTO;
+import com.moral.api.pojo.dto.unitConversion.UnitConversionQueryDTO;
+import com.moral.api.pojo.form.unitConversion.UnitConversionInsertForm;
+import com.moral.api.pojo.form.unitConversion.UnitConversionQueryForm;
+import com.moral.api.pojo.vo.unitConversion.UnitConversionQueryVO;
+import com.moral.api.service.UnitConversionService;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.constant.ResultMessage;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @ClassName UnitConvertionController
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/11 15:59
+ * @Version TODO
+ **/
+@Slf4j
+@RestController
+@CrossOrigin(origins = "*", maxAge = 3600)
+@RequestMapping("/unitConversion")
+public class UnitConversionController {
+
+    @Autowired
+    UnitConversionService unitConversionService;
+
+    @PostMapping("insert")
+    public ResultMessage insert(@RequestBody UnitConversionInsertForm form) {
+
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������
+        UnitConversionDTO dto = unitConversionService.insertUnitConversion(form);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), null);
+    }
+
+    @GetMapping("query")
+    public ResultMessage query(UnitConversionQueryForm form){
+
+        //������������������������
+        if (!form.valid())
+            return ResultMessage.fail(ResponseCodeEnum.PARAMETERS_IS_MISSING.getCode(),
+                    ResponseCodeEnum.PARAMETERS_IS_MISSING.getMsg());
+
+        //������������������
+        UnitConversionQueryDTO dto = unitConversionService.queryUnitConversion(form);
+
+        //������������������������
+        UnitConversionQueryVO vo = UnitConversionQueryVO.convert(dto);
+
+        return new ResultMessage(dto.getCode(), dto.getMsg(), vo);
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/entity/GroupMenu.java b/screen-manage/src/main/java/com/moral/api/entity/GroupMenu.java
index 96cf300..55ec085 100644
--- a/screen-manage/src/main/java/com/moral/api/entity/GroupMenu.java
+++ b/screen-manage/src/main/java/com/moral/api/entity/GroupMenu.java
@@ -43,9 +43,9 @@
     private Integer menuId;
 
     /**
-     * ������
+     * ���������������
      */
-    private Integer channel;
+    private String channelKey;
 
     /**
      * ������Id
diff --git a/screen-manage/src/main/java/com/moral/api/entity/UnitConversion.java b/screen-manage/src/main/java/com/moral/api/entity/UnitConversion.java
new file mode 100644
index 0000000..f6a2994
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/entity/UnitConversion.java
@@ -0,0 +1,69 @@
+package com.moral.api.entity;
+
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.extension.activerecord.Model;
+import com.baomidou.mybatisplus.annotation.TableId;
+import java.time.LocalDateTime;
+import java.io.Serializable;
+import java.util.Date;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * <p>
+ * ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-05-11
+ */
+@Data
+@EqualsAndHashCode(callSuper = false)
+public class UnitConversion extends Model<UnitConversion> {
+
+    private static final long serialVersionUID = 1L;
+
+    /**
+     * ������
+     */
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    /**
+     * ������������������Key
+     */
+    private String originalUnitKey;
+
+    /**
+     * ������������������Key
+     */
+    private String targetUnitKey;
+
+    /**
+     * ������������
+     */
+    private String formula;
+
+    /**
+     * ������������
+     */
+    private Date createTime;
+
+    /**
+     * ������������
+     */
+    private Date updateTime;
+
+    /**
+     * ������������
+     */
+    private String isDelete;
+
+
+    @Override
+    protected Serializable pkVal() {
+        return this.id;
+    }
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/mapper/UnitConversionMapper.java b/screen-manage/src/main/java/com/moral/api/mapper/UnitConversionMapper.java
new file mode 100644
index 0000000..86eaa6d
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/mapper/UnitConversionMapper.java
@@ -0,0 +1,16 @@
+package com.moral.api.mapper;
+
+import com.moral.api.entity.UnitConversion;
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+
+/**
+ * <p>
+ * ��������������� Mapper ������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-05-11
+ */
+public interface UnitConversionMapper extends BaseMapper<UnitConversion> {
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java
index e6d0df5..fc32589 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/organization/OrganizationQueryDTO.java
@@ -18,7 +18,7 @@
 
     private String msg;
 
-    private long page;
+    private long pages;
 
     private long total;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/unitConversion/UnitConversionDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/unitConversion/UnitConversionDTO.java
new file mode 100644
index 0000000..e18661d
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/unitConversion/UnitConversionDTO.java
@@ -0,0 +1,26 @@
+package com.moral.api.pojo.dto.unitConversion;
+
+import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.UnitConversion;
+import lombok.Data;
+
+/**
+ * @ClassName UnitConversionDTO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/11 16:43
+ * @Version TODO
+ **/
+@Data
+public class UnitConversionDTO {
+
+    private Integer code;
+
+    private String msg;
+
+    private UnitConversion unitConversion;
+
+    private SysDictData originalUnit;
+
+    private SysDictData targetUnit;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/dto/unitConversion/UnitConversionQueryDTO.java b/screen-manage/src/main/java/com/moral/api/pojo/dto/unitConversion/UnitConversionQueryDTO.java
new file mode 100644
index 0000000..162b057
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/dto/unitConversion/UnitConversionQueryDTO.java
@@ -0,0 +1,29 @@
+package com.moral.api.pojo.dto.unitConversion;
+
+import lombok.Data;
+
+import java.util.List;
+
+/**
+ * @ClassName
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/12 9:09
+ * @Version TODO
+ **/
+@Data
+public class UnitConversionQueryDTO {
+    private Integer code;
+
+    private String msg;
+
+    private long pages;
+
+    private long total;
+
+    private long current;
+
+    private long size;
+
+    private List<UnitConversionDTO> unitConversionDTOs;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java
index 2509a87..6076a5d 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/groupMenu/GroupMenuUpdateForm.java
@@ -17,12 +17,12 @@
 
     private Integer organizationId;
 
-    private Integer channel;
+    private String channelKey;
 
     private List<Integer> menuIds;
 
     public boolean valid(){
-        if(ObjectUtils.isEmpty(organizationId)||ObjectUtils.isEmpty(channel)||null==menuIds)
+        if(ObjectUtils.isEmpty(organizationId)||ObjectUtils.isEmpty(channelKey)||null==menuIds)
             return false;
         return true;
     }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/unitConversion/UnitConversionInsertForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/unitConversion/UnitConversionInsertForm.java
new file mode 100644
index 0000000..93d7f83
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/unitConversion/UnitConversionInsertForm.java
@@ -0,0 +1,49 @@
+package com.moral.api.pojo.form.unitConversion;
+
+import com.moral.api.entity.UnitConversion;
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * @ClassName UnitConvertionInsertForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/11 16:18
+ * @Version TODO
+ **/
+@Data
+public class UnitConversionInsertForm {
+    /*
+    * ���������������key
+    * */
+    private String originalUnitKey;
+
+    /*
+    * ������������������key
+    * */
+    private String targetUnitKey;
+
+    /*
+    * ������
+    * */
+    private String formula;
+
+    public boolean valid(){
+        if(
+                ObjectUtils.isEmpty(originalUnitKey)||
+                ObjectUtils.isEmpty(targetUnitKey)||
+                ObjectUtils.isEmpty(formula)
+                )
+            return false;
+        return true;
+    }
+
+    public UnitConversion formConvertEntity(){
+        UnitConversion unitConversion = new UnitConversion();
+        unitConversion.setOriginalUnitKey(originalUnitKey);
+        unitConversion.setTargetUnitKey(targetUnitKey);
+        unitConversion.setFormula(formula);
+        return unitConversion;
+    }
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/form/unitConversion/UnitConversionQueryForm.java b/screen-manage/src/main/java/com/moral/api/pojo/form/unitConversion/UnitConversionQueryForm.java
new file mode 100644
index 0000000..503874f
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/form/unitConversion/UnitConversionQueryForm.java
@@ -0,0 +1,46 @@
+package com.moral.api.pojo.form.unitConversion;
+
+import lombok.Data;
+import org.springframework.util.ObjectUtils;
+
+/**
+ * @ClassName UnitConversionQueryForm
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/12 9:07
+ * @Version TODO
+ **/
+@Data
+public class UnitConversionQueryForm {
+
+    private Integer page;
+
+    private Integer size;
+
+    /*
+     * ���������������key
+     * */
+    private Integer originalUnitKey;
+
+    /*
+     * ������������������key
+     * */
+    private Integer targetUnitKey;
+
+    private String order;
+
+    private String orderType;
+
+    private Integer isDelete;
+
+
+    public boolean valid() {
+        if (
+                ObjectUtils.isEmpty(page) ||
+                        ObjectUtils.isEmpty(size)
+                )
+            return false;
+        return true;
+    }
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java
index 606631a..cfcbea2 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuQueryVO.java
@@ -41,7 +41,7 @@
         GroupMenuVO vo = new GroupMenuVO();
         GroupMenu groupMenu = dto.getGroupMenu();
         vo.setId(groupMenu.getId());
-        vo.setChannel(groupMenu.getChannel());
+        vo.setChannelKey(groupMenu.getChannelKey());
         vo.setMenuId(groupMenu.getMenuId());
         return vo;
     }
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java
index f03e7fc..d651a77 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/groupMenu/GroupMenuVO.java
@@ -20,7 +20,7 @@
 
     private Integer menuId;
 
-    private Integer channel;
+    private String channelKey;
 
     private Integer organizationId;
 
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java
index 116d94e..ae181e6 100644
--- a/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/organization/OrganizationQueryVO.java
@@ -40,7 +40,7 @@
         if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
             return null;
         OrganizationQueryVO vo = new OrganizationQueryVO();
-        long page = dto.getPage();
+        long pages = dto.getPages();
         long total = dto.getTotal();
         long current = dto.getCurrent();
         long size = dto.getSize();
@@ -53,7 +53,7 @@
 
         vo.setCurrent(current);
         vo.setOrganizations(organizationVOS);
-        vo.setPages(page);
+        vo.setPages(pages);
         vo.setSize(size);
         vo.setTotal(total);
         return vo;
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionQueryVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionQueryVO.java
new file mode 100644
index 0000000..b7fb204
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionQueryVO.java
@@ -0,0 +1,82 @@
+package com.moral.api.pojo.vo.unitConversion;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.UnitConversion;
+import com.moral.api.pojo.dto.unitConversion.UnitConversionDTO;
+import com.moral.api.pojo.dto.unitConversion.UnitConversionQueryDTO;
+import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
+import lombok.Data;
+
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @ClassName UnitConversionQueryVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/12 9:17
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class UnitConversionQueryVO {
+
+    private long pages;
+
+    private long total;
+
+    private long current;
+
+    private long size;
+
+    private List<UnitConversionVO> unitConversions;
+
+    public static UnitConversionQueryVO convert(UnitConversionQueryDTO dto) {
+        if (dto.getCode() != ResponseCodeEnum.SUCCESS.getCode())
+            return null;
+        UnitConversionQueryVO vo = new UnitConversionQueryVO();
+        long pages = dto.getPages();
+        long total = dto.getTotal();
+        long current = dto.getCurrent();
+        long size = dto.getSize();
+        List<UnitConversionDTO> dtos = dto.getUnitConversionDTOs();
+        List<UnitConversionVO> unitConversions = new ArrayList<>();
+        for (UnitConversionDTO unitConversionDTO : dtos) {
+            UnitConversionVO unitConversionVO = convertToQueryPage(unitConversionDTO);
+            unitConversions.add(unitConversionVO);
+        }
+        vo.setPages(pages);
+        vo.setTotal(total);
+        vo.setCurrent(current);
+        vo.setSize(size);
+        vo.setUnitConversions(unitConversions);
+        return vo;
+    }
+
+    private static UnitConversionVO convertToQueryPage(UnitConversionDTO dto) {
+        UnitConversionVO vo = new UnitConversionVO();
+        UnitConversion unitConversion = dto.getUnitConversion();
+        SysDictData originalUnit = dto.getOriginalUnit();
+        SysDictData targetUnit = dto.getTargetUnit();
+        vo.setId(unitConversion.getId());
+        vo.setOriginalUnitName(originalUnit.getDataValue());
+        vo.setTargetUnitName(targetUnit.getDataValue());
+        vo.setFormula(formulaConvert(unitConversion.getFormula(),originalUnit.getDataValue(),targetUnit.getDataValue()));
+        return vo;
+    }
+
+    /**
+     * @Description: ������������������������������������������������������������������������
+     * @Param: [formula]
+     * @return: java.lang.String
+     * @Author: ���������
+     * @Date: 2021/5/12
+     */
+    public static String formulaConvert(String formula, String originalUnitName, String targetUnitName) {
+        formula = formula.replace(Constants.FORMULA_PLACEHOLDER, originalUnitName);
+        formula += "=" + targetUnitName;
+        return formula;
+    }
+}
diff --git a/screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionVO.java b/screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionVO.java
new file mode 100644
index 0000000..3aa65f2
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/pojo/vo/unitConversion/UnitConversionVO.java
@@ -0,0 +1,55 @@
+package com.moral.api.pojo.vo.unitConversion;
+
+import com.fasterxml.jackson.annotation.JsonInclude;
+import lombok.Data;
+
+import java.util.Date;
+
+/**
+ * @ClassName UnitConversionVO
+ * @Description TODO
+ * @Author ���������
+ * @Date 2021/5/12 9:12
+ * @Version TODO
+ **/
+@Data
+@JsonInclude(JsonInclude.Include.NON_EMPTY)
+public class UnitConversionVO {
+
+    private Integer id;
+
+    /**
+     * ������������������Key
+     */
+    private String originalUnitKey;
+
+    /*
+    * ������������������
+    * */
+    private String originalUnitName;
+
+    /**
+     * ������������������Key
+     */
+    private String targetUnitKey;
+
+    /*
+    * ������������������
+    * */
+    private String targetUnitName;
+
+    /**
+     * ������������
+     */
+    private String formula;
+
+    /**
+     * ������������
+     */
+    private String createTime;
+
+    /**
+     * ������������
+     */
+    private String updateTime;
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java b/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java
index a9f1bea..b7c1f99 100644
--- a/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java
+++ b/screen-manage/src/main/java/com/moral/api/service/SysDictDataService.java
@@ -65,4 +65,13 @@
      */
     Map<String, List<SysDictData>> getAllDictData();
 
+    /**
+    * @Description: ���������������������������map���������map���key���������������key���map���value���������������������
+            * @Param: [type]
+            * @return: java.util.Map<java.lang.String,com.moral.api.entity.SysDictData>
+            * @Author: ���������
+            * @Date: 2021/5/12
+            */
+    Map<String,SysDictData> getDictDatasByType(String type);
+
 }
diff --git a/screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java b/screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java
new file mode 100644
index 0000000..a2a539c
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/service/UnitConversionService.java
@@ -0,0 +1,38 @@
+package com.moral.api.service;
+
+import com.moral.api.entity.UnitConversion;
+import com.baomidou.mybatisplus.extension.service.IService;
+import com.moral.api.pojo.dto.unitConversion.UnitConversionDTO;
+import com.moral.api.pojo.dto.unitConversion.UnitConversionQueryDTO;
+import com.moral.api.pojo.form.unitConversion.UnitConversionInsertForm;
+import com.moral.api.pojo.form.unitConversion.UnitConversionQueryForm;
+
+/**
+ * <p>
+ * ��������������� ���������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-05-11
+ */
+public interface UnitConversionService extends IService<UnitConversion> {
+
+    /**
+    * @Description: ������������������������
+            * @Param: [form]
+            * @return: com.moral.api.pojo.dto.unitConversion.UnitConversionDTO
+            * @Author: ���������
+            * @Date: 2021/5/11
+            */
+    UnitConversionDTO insertUnitConversion(UnitConversionInsertForm form);
+
+    /**
+    * @Description: ������������������������
+            * @Param: [form]
+            * @return: com.moral.api.pojo.dto.unitConversion.UnitConversionQueryDTO
+            * @Author: ���������
+            * @Date: 2021/5/12
+            */
+    UnitConversionQueryDTO queryUnitConversion(UnitConversionQueryForm form);
+
+}
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
index 827af1c..0d61854 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/GroupMenuServiceImpl.java
@@ -45,7 +45,7 @@
         GroupMenuDTO dto = new GroupMenuDTO();
         //������
         Integer orgId = form.getOrganizationId();
-        Integer channel = form.getChannel();
+        String channelKey = form.getChannelKey();
         List<Integer> insertMenuIds = form.getMenuIds();
         //������orgId������������admin������id
         Group group = queryAdminGroupByOrganizationId(orgId);
@@ -62,7 +62,7 @@
         //������������
         for (Integer menuId : insertMenuIds) {
             GroupMenu groupMenu = new GroupMenu();
-            groupMenu.setChannel(channel);
+            groupMenu.setChannelKey(channelKey);
             groupMenu.setGroupId(group.getId());
             groupMenu.setMenuId(menuId);
             groupMenu.setOrganizationId(orgId);
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
index b7a7099..2de9059 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/OrganizationServiceImpl.java
@@ -323,7 +323,7 @@
         dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
         dto.setOrganizationDTOS(organizationDTOS);
         dto.setCurrent(page.getCurrent());
-        dto.setPage(page.getPages());
+        dto.setPages(page.getPages());
         dto.setSize(page.getSize());
         dto.setTotal(page.getTotal());
         return dto;
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
index cfca955..ba8db95 100644
--- a/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/SysDictDataServiceImpl.java
@@ -167,6 +167,17 @@
         return datas;
     }
 
+    @Override
+    public Map<String, SysDictData> getDictDatasByType(String type) {
+        Map<String, List<SysDictData>> allDictData = getAllDictData();
+        List<SysDictData> sysDictDatas = allDictData.get(type);
+        Map<String,SysDictData> result = new HashMap<>();
+        for (SysDictData sysDictData : sysDictDatas) {
+            result.put(sysDictData.getDataKey(),sysDictData);
+        }
+        return result;
+    }
+
 
     /**
      * @Description: ������������������������������������������������������������Map  Key��������������� value���������������
diff --git a/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java b/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
new file mode 100644
index 0000000..16ff9d1
--- /dev/null
+++ b/screen-manage/src/main/java/com/moral/api/service/impl/UnitConversionServiceImpl.java
@@ -0,0 +1,123 @@
+package com.moral.api.service.impl;
+
+import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.moral.api.config.mybatis.wrapper.NullFilterWrapper;
+import com.moral.api.entity.SysDictData;
+import com.moral.api.entity.UnitConversion;
+import com.moral.api.mapper.UnitConversionMapper;
+import com.moral.api.pojo.dto.unitConversion.UnitConversionDTO;
+import com.moral.api.pojo.dto.unitConversion.UnitConversionQueryDTO;
+import com.moral.api.pojo.form.unitConversion.UnitConversionInsertForm;
+import com.moral.api.pojo.form.unitConversion.UnitConversionQueryForm;
+import com.moral.api.service.SysDictDataService;
+import com.moral.api.service.UnitConversionService;
+import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.moral.constant.Constants;
+import com.moral.constant.ResponseCodeEnum;
+import com.moral.util.ConvertUtils;
+import net.bytebuddy.description.method.ParameterList;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.stereotype.Service;
+import org.springframework.util.ObjectUtils;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+
+/**
+ * <p>
+ * ��������������� ���������������
+ * </p>
+ *
+ * @author moral
+ * @since 2021-05-11
+ */
+@Service
+public class UnitConversionServiceImpl extends ServiceImpl<UnitConversionMapper, UnitConversion> implements UnitConversionService {
+
+    @Autowired
+    UnitConversionMapper unitConversionMapper;
+    @Autowired
+    SysDictDataService sysDictDataService;
+
+    @Override
+    public UnitConversionDTO insertUnitConversion(UnitConversionInsertForm form) {
+        //������������������
+        UnitConversionDTO dto  = new UnitConversionDTO();
+        //������
+        UnitConversion unitConversion = form.formConvertEntity();
+        //������������������������������������������������������������������������
+        QueryWrapper existWrapper = new QueryWrapper();
+        existWrapper.eq("original_unit_key",unitConversion.getOriginalUnitKey());
+        existWrapper.eq("target_unit_key",unitConversion.getTargetUnitKey());
+        existWrapper.eq("is_delete",Constants.NOT_DELETE);
+        UnitConversion existConversion = unitConversionMapper.selectOne(existWrapper);
+        if(!ObjectUtils.isEmpty(existConversion)){
+            dto.setCode(ResponseCodeEnum.UNIT_CONVERSION_EXIST.getCode());
+            dto.setMsg(ResponseCodeEnum.UNIT_CONVERSION_EXIST.getMsg());
+            return dto;
+        }
+        //������������
+        unitConversionMapper.insert(unitConversion);
+        //������������������
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+
+    @Override
+    public UnitConversionQueryDTO queryUnitConversion(UnitConversionQueryForm form) {
+        //������������������
+        UnitConversionQueryDTO dto = new UnitConversionQueryDTO();
+        //������
+        Integer page = form.getPage();
+        Integer size = form.getSize();
+        String order = form.getOrder();
+        String orderType = form.getOrderType();
+        Integer isDelete = form.getIsDelete();
+        Integer originalUnitKey = form.getOriginalUnitKey();
+        Integer targetUnitKey = form.getTargetUnitKey();
+        //������������������
+        Page<UnitConversion> queryPage = new Page<>(page, size);
+        NullFilterWrapper<UnitConversion> wrapper = new NullFilterWrapper<>();
+        wrapper.eq("original_unit_key",originalUnitKey);
+        wrapper.eq("target_unit_key",targetUnitKey);
+        //������������������������
+        if (!ObjectUtils.isEmpty(order) && !ObjectUtils.isEmpty(orderType)) {
+            if (orderType.equals(Constants.ORDER_ASC))
+                wrapper.orderByAsc(ConvertUtils.toLine(order));
+            else
+                wrapper.orderByDesc(ConvertUtils.toLine(order));
+        }
+        //������������������������
+        if (!ObjectUtils.isEmpty(isDelete))
+            wrapper.eq("is_delete", isDelete);
+        else
+            wrapper.eq("is_delete", Constants.NOT_DELETE);
+        //������������
+        Page<UnitConversion> resultPage = unitConversionMapper.selectPage(queryPage, wrapper);
+        List<UnitConversion> records = resultPage.getRecords();
+        //���������������������������������������������������������������
+        Map<String, SysDictData> dictDatas = sysDictDataService.getDictDatasByType(Constants.SYSTEM_DICT_TYPE_UNIT);
+        List<UnitConversionDTO> dtos = new ArrayList<>();
+        for (UnitConversion record : records) {
+            UnitConversionDTO unitConversionDTO = new UnitConversionDTO();
+            SysDictData originalUnit = dictDatas.get(record.getOriginalUnitKey());
+            SysDictData targetUnit = dictDatas.get(record.getTargetUnitKey());
+            unitConversionDTO.setUnitConversion(record);
+            unitConversionDTO.setOriginalUnit(originalUnit);
+            unitConversionDTO.setTargetUnit(targetUnit);
+            dtos.add(unitConversionDTO);
+        }
+        //������������������
+        dto.setUnitConversionDTOs(dtos);
+        dto.setCurrent(resultPage.getCurrent());
+        dto.setPages(resultPage.getPages());
+        dto.setSize(resultPage.getSize());
+        dto.setTotal(resultPage.getTotal());
+        dto.setCode(ResponseCodeEnum.SUCCESS.getCode());
+        dto.setMsg(ResponseCodeEnum.SUCCESS.getMsg());
+        return dto;
+    }
+}
diff --git a/screen-manage/src/main/resources/mapper/UnitConversionMapper.xml b/screen-manage/src/main/resources/mapper/UnitConversionMapper.xml
new file mode 100644
index 0000000..cdd147e
--- /dev/null
+++ b/screen-manage/src/main/resources/mapper/UnitConversionMapper.xml
@@ -0,0 +1,16 @@
+<?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.moral.api.mapper.UnitConversionMapper">
+
+        <!-- ������������������������ -->
+        <resultMap id="BaseResultMap" type="com.moral.api.entity.UnitConversion">
+                    <id column="id" property="id" />
+                    <result column="original_unit" property="originalUnit" />
+                    <result column="target_unit" property="targetUnit" />
+                    <result column="formula" property="formula" />
+                    <result column="create_time" property="createTime" />
+                    <result column="update_time" property="updateTime" />
+                    <result column="is_delete" property="isDelete" />
+        </resultMap>
+
+</mapper>
\ No newline at end of file

--
Gitblit v1.8.0