yangyj 3 rokov pred
rodič
commit
e6348809bd
21 zmenil súbory, kde vykonal 732 pridanie a 14 odobranie
  1. 11 1
      blade-ops-api/blade-resource-api/blade-resource-api.iml
  2. 26 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/DatumPoint.java
  3. 20 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/DatumPointVo.java
  4. 28 0
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/Formula.java
  5. 0 1
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/FormulaBase.java
  6. 16 2
      blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/FormulaType.java
  7. 181 0
      blade-service/blade-business/src/main/java/org/springblade/business/controller/DatumPointController.java
  8. 27 0
      blade-service/blade-business/src/main/java/org/springblade/business/excel/DatumPointExcel.java
  9. 32 0
      blade-service/blade-business/src/main/java/org/springblade/business/excel/DatumPointxyExcel.java
  10. 10 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/DatumPointMapper.java
  11. 30 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/DatumPointMapper.xml
  12. 178 0
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/DatumPointService.java
  13. 38 0
      blade-service/blade-business/src/main/java/org/springblade/business/utils/ExcelUtil.java
  14. 8 5
      blade-service/blade-business/src/main/java/org/springblade/business/utils/FunctionMain.java
  15. 3 0
      blade-service/blade-manager/blade-manager.iml
  16. 1 1
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaBaseController.java
  17. 66 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java
  18. 12 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/FormulaMapper.java
  19. 21 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/FormulaMapper.xml
  20. 8 4
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaBaseService.java
  21. 16 0
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaService.java

+ 11 - 1
blade-ops-api/blade-resource-api/blade-resource-api.iml

@@ -115,7 +115,6 @@
     <orderEntry type="library" name="Maven: ch.qos.logback:logback-classic:1.2.11" level="project" />
     <orderEntry type="library" name="Maven: ch.qos.logback:logback-core:1.2.11" level="project" />
     <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-to-slf4j:2.17.2" level="project" />
-    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
     <orderEntry type="library" name="Maven: org.slf4j:jul-to-slf4j:1.7.30" level="project" />
     <orderEntry type="library" name="Maven: jakarta.annotation:jakarta.annotation-api:1.3.5" level="project" />
     <orderEntry type="library" name="Maven: org.yaml:snakeyaml:1.26" level="project" />
@@ -129,6 +128,17 @@
     <orderEntry type="library" name="Maven: org.springframework.boot:spring-boot-starter-cache:2.3.12.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: org.springframework:spring-context-support:5.2.15.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.baomidou:dynamic-datasource-spring-boot-starter:3.3.6" level="project" />
+    <orderEntry type="library" name="Maven: org.springblade:blade-starter-oss:2.9.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: org.springblade:blade-core-secure:2.9.1.RELEASE" level="project" />
+    <orderEntry type="library" name="Maven: com.huaweicloud:esdk-obs-java:3.21.12" level="project" />
+    <orderEntry type="library" name="Maven: com.jamesmurty.utils:java-xmlbuilder:1.3" level="project" />
+    <orderEntry type="library" name="Maven: com.squareup.okhttp3:okhttp:4.9.3" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib:1.3.72" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains:annotations:13.0" level="project" />
+    <orderEntry type="library" name="Maven: com.squareup.okio:okio:2.7.0" level="project" />
+    <orderEntry type="library" name="Maven: org.jetbrains.kotlin:kotlin-stdlib-common:1.3.72" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-core:2.17.2" level="project" />
+    <orderEntry type="library" name="Maven: org.apache.logging.log4j:log4j-api:2.17.2" level="project" />
     <orderEntry type="library" name="Maven: org.springblade:blade-starter-mybatis:2.9.1.RELEASE" level="project" />
     <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus:3.5.1" level="project" />
     <orderEntry type="library" name="Maven: com.baomidou:mybatis-plus-extension:3.5.1" level="project" />

+ 26 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/entity/DatumPoint.java

@@ -0,0 +1,26 @@
+package org.springblade.business.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.tenant.mp.TenantEntity;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/7 15:32
+ * @description TODO
+ */
+@Data
+@TableName("t_om_datum_point")
+@EqualsAndHashCode(callSuper = true)
+public class DatumPoint  extends TenantEntity {
+    private String name;
+    private Double x=0.0;
+    private Double y=0.0;
+    private Double h=0.0;
+    private String level;
+    private String remark;
+    private Integer type;
+    private Long projectId;
+    private Long contractId;
+}

+ 20 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/DatumPointVo.java

@@ -0,0 +1,20 @@
+package org.springblade.business.vo;
+
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/7 17:44
+ * @description TODO
+ */
+@Data
+public class DatumPointVo {
+    private String id;
+    private String name;
+    private Double x;
+    private Double y;
+    private Double h;
+    private String level;
+    private String remark;
+}

+ 28 - 0
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/Formula.java

@@ -0,0 +1,28 @@
+package org.springblade.manager.entity;
+
+import com.baomidou.mybatisplus.annotation.TableName;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+import org.springblade.core.mp.base.BaseEntity;
+
+import javax.validation.constraints.Size;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/9 11:44
+ * @description TODO
+ */
+@EqualsAndHashCode(callSuper = true)
+@Data
+@TableName("formula")
+public class Formula extends BaseEntity {
+   private String name;
+   @Size(max = 1024)
+   private String formula;
+   @Size(max = 50)
+   private String number;
+   private Integer orderNum;
+   private String remark;
+   @Size(max = 20)
+   private Long wbsId;
+}

+ 0 - 1
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/entity/FormulaBase.java

@@ -17,6 +17,5 @@ public class FormulaBase extends BaseEntity {
     private String name;
     private String template;
     private Integer type;
-    private String typeName;
     private String example;
 }

+ 16 - 2
blade-service-api/blade-manager-api/src/main/java/org/springblade/manager/vo/FormulaType.java

@@ -1,5 +1,9 @@
 package org.springblade.manager.vo;
 
+/**
+ * @author yangyj
+ */
+
 public enum FormulaType {
     STATISTICS(0,"统计"),
     Arithmetic(1,"基础运算"),
@@ -7,10 +11,20 @@ public enum FormulaType {
     DATE(3,"时间相关"),
     COLLECT(4,"数组、集合"),
     logic(5,"逻辑");
-    private String name;
+    private final String name;
     private int index;
-    private FormulaType(int index ,String name ) {
+    FormulaType(int index ,String name ) {
         this.name = name;
         this.index = index;
     }
+    public static String getName(int index){
+         for(FormulaType ft:FormulaType.values()){
+             if(ft.index==index){
+                 return ft.name;
+             }
+         }
+         return "";
+    }
+
+
 }

+ 181 - 0
blade-service/blade-business/src/main/java/org/springblade/business/controller/DatumPointController.java

@@ -0,0 +1,181 @@
+package org.springblade.business.controller;
+
+import com.baomidou.mybatisplus.core.conditions.Wrapper;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
+import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import io.swagger.annotations.Api;
+import lombok.AllArgsConstructor;
+import org.apache.poi.hssf.usermodel.HSSFRow;
+import org.apache.poi.hssf.usermodel.HSSFSheet;
+import org.apache.poi.hssf.usermodel.HSSFWorkbook;
+import org.springblade.business.entity.DatumPoint;
+import org.springblade.business.service.impl.DatumPointService;
+import org.springblade.business.vo.DatumPointVo;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.mp.support.Query;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.beans.BeanUtils;
+import org.springframework.web.bind.annotation.*;
+import org.springframework.web.multipart.MultipartFile;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import javax.servlet.http.HttpSession;
+import java.io.IOException;
+import java.io.OutputStream;
+import java.net.URLEncoder;
+import java.text.SimpleDateFormat;
+import java.util.*;
+import java.util.regex.Pattern;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/7 16:11
+ * @description TODO
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/dap")
+@Api(tags = "基准点信息")
+public class DatumPointController {
+    private final DatumPointService service;
+
+
+    @PostMapping("/list")
+    public R<IPage<DatumPoint>>  list( String contractId, Query page, String type, String name){
+        Map<String, Object> param = new HashMap<>(10);
+        param.put("contractId",contractId);
+        param.put("type",type);
+        param.put("name",name);
+        param.put("remark",name);
+        return R.data(service.page(Condition.getPage(page),Condition.getQueryWrapper(param,DatumPoint.class)));
+    }
+
+    @PostMapping("/add")
+    public R<String> add (@RequestBody DatumPoint datumPoint, HttpSession session){
+        if(StringUtil.isEmpty(datumPoint.getContractId())){
+            return R.fail("合同id为空!,无法添加数据");
+        }
+
+        LambdaQueryWrapper<DatumPoint> queryWrapper=  Wrappers.<DatumPoint>lambdaQuery().eq(DatumPoint::getContractId,datumPoint.getContractId()).eq(DatumPoint::getType,datumPoint.getType()).eq(DatumPoint::getName,datumPoint.getName());
+        if(this.service.count(queryWrapper)>0){
+            return R.fail("同一合同段下,不能重复添加");
+        }
+        return R.status(this.service.save(datumPoint));
+    }
+
+
+    @PostMapping("/del")
+    public R del(String id){
+          return R.status(this.service.removeById(id));
+    }
+
+
+    @PostMapping("/update")
+    public R<Boolean> upDate (@RequestBody DatumPointVo vo){
+        DatumPoint old = this.service.getById(vo.getId());
+        BeanUtils.copyProperties(vo,old);
+        return R.status(this.service.updateById(old));
+    }
+
+    @ResponseBody
+    @RequestMapping(value = "/queryData",method=RequestMethod.POST)
+    public R<DatumPointVo> queryData(HttpServletRequest request,String queryName,String contractId ,Integer type){
+        if(StringUtil.isEmpty(queryName)||StringUtil.isEmpty(contractId)||StringUtil.isEmpty(type)){
+            return R.fail("缺少参数");
+        }
+
+       LambdaQueryWrapper<DatumPoint> wrapper = Wrappers.<DatumPoint>lambdaQuery().eq(DatumPoint::getName,queryName).eq(DatumPoint::getContractId,contractId).eq(DatumPoint::getType,type);
+        DatumPoint dap = this.service.getOne(wrapper);
+        DatumPointVo vo = new DatumPointVo();
+        BeanUtils.copyProperties(dap,vo);
+        return R.data(vo);
+    }
+
+
+    @PostMapping("/import")
+    public R<String> importXy(@RequestParam("file") MultipartFile file, Integer type , Long contractId) throws Exception {
+        if(file != null&& type!=null && contractId!=null) {
+            String fileName = Objects.requireNonNull(file.getOriginalFilename());
+            if(Pattern.matches(".(\\.xls)x?$",fileName.toLowerCase(Locale.ROOT))) {
+                return R.success(this.service.importData(file,contractId,type));
+            } else {
+                R.fail("文件格式不正确,请上传Excel文件");
+            }
+        }
+        return R.fail("缺少参数");
+    }
+
+    @PostMapping("/batchDel")
+    public R bacthDel(String ids){
+        return R.status(this.service.deleteLogic(Func.toLongList(ids)));
+    }
+
+
+
+    @GetMapping("exportExcel")
+    public void  exportExcel(HttpServletResponse response, String contractId , Integer type, String search) throws IOException {
+
+        List<DatumPoint> list=this.service.exportExcel(contractId,type,search);
+        if(list!=null&&list.size()>0){
+            //创建HSSFWorkbook对象(excel的文档对象)
+            HSSFWorkbook wb = new HSSFWorkbook();
+            //创建sheet对象(excel的表单)
+            HSSFSheet sheet=wb.createSheet("测站点数据");
+            //创建第一行,这里即是表头。行的最小值是0,代表每一行,上限没研究过,可参考官方的文档
+            HSSFRow row1=sheet.createRow(0);
+            if(type==1) {
+                row1.createCell(0).setCellValue("测站点名称");
+                row1.createCell(1).setCellValue("x坐标(m)");
+                row1.createCell(2).setCellValue("y坐标(m)");
+                row1.createCell(3).setCellValue("高程(m)");
+                row1.createCell(4).setCellValue("等级");
+                row1.createCell(5).setCellValue("备注");
+                for (int i = 0; i < list.size(); i++) {
+                    HSSFRow row = sheet.createRow(i + 1);
+                    row.createCell(0).setCellValue(list.get(i).getName());
+                    row.createCell(1).setCellValue(list.get(i).getX());
+                    row.createCell(2).setCellValue(list.get(i).getY());
+                    row.createCell(3).setCellValue(list.get(i).getH());
+                    row.createCell(4).setCellValue(list.get(i).getLevel());
+                    row.createCell(5).setCellValue(list.get(i).getRemark());
+
+                }
+            }else if(type==0){
+                row1.createCell(0).setCellValue("测站点名称");
+                row1.createCell(1).setCellValue("高程(m)");
+                row1.createCell(2).setCellValue("等级");
+                row1.createCell(3).setCellValue("备注");
+                for (int i = 0; i < list.size(); i++) {
+                    HSSFRow row = sheet.createRow(i + 1);
+                    row.createCell(0).setCellValue(list.get(i).getName());
+                    row.createCell(1).setCellValue(list.get(i).getH());
+                    row.createCell(2).setCellValue(list.get(i).getLevel());
+                    row.createCell(3).setCellValue(list.get(i).getRemark());
+
+                }
+            }
+            //输出Excel文件
+            OutputStream output=response.getOutputStream();
+            response.reset();
+            Date dt = new Date();
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd-hh-mm-ss");
+            String fileName = sdf.format(dt);
+            if(0==type){
+                fileName=fileName+"水准点.xls";
+            }else if(1==type){
+                fileName=fileName+"导线点.xls";
+            }
+            response.setContentType("application/x-msdownload");
+            response.setHeader("Content-Disposition", "attachment; filename=" + URLEncoder.encode(fileName, "UTF-8"));
+            wb.write(output);
+            output.close();
+        }
+
+    }
+
+}

+ 27 - 0
blade-service/blade-business/src/main/java/org/springblade/business/excel/DatumPointExcel.java

@@ -0,0 +1,27 @@
+package org.springblade.business.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/9 10:59
+ * @description TODO
+ */
+@Data
+@ColumnWidth(16)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class DatumPointExcel {
+    @ExcelProperty(value = "名称")
+    private String name;
+    @ExcelProperty(value = "高程")
+    private Double h=0.0;
+    @ExcelProperty(value = "等级")
+    private String level;
+    @ExcelProperty(value = "备注")
+    private String remark;
+}

+ 32 - 0
blade-service/blade-business/src/main/java/org/springblade/business/excel/DatumPointxyExcel.java

@@ -0,0 +1,32 @@
+package org.springblade.business.excel;
+
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.alibaba.excel.annotation.write.style.ColumnWidth;
+import com.alibaba.excel.annotation.write.style.ContentRowHeight;
+import com.alibaba.excel.annotation.write.style.HeadRowHeight;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/9 11:01
+ * @description TODO
+ */
+@Data
+@ColumnWidth(16)
+@HeadRowHeight(20)
+@ContentRowHeight(18)
+public class DatumPointxyExcel {
+    @ExcelProperty(value = "名称")
+    private String name;
+    @ExcelProperty(value = "x坐标")
+    private Double x = 0.0;
+    @ExcelProperty(value = "y坐标")
+    private Double y = 0.0;
+    @ExcelProperty(value = "高程")
+    private Double h = 0.0;
+    @ExcelProperty(value = "等级")
+    private String level;
+    @ExcelProperty(value = "备注")
+    private String remark;
+}

+ 10 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/DatumPointMapper.java

@@ -0,0 +1,10 @@
+package org.springblade.business.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.business.entity.DatumPoint;
+
+/**
+ * @author yangyj
+ */
+public interface DatumPointMapper extends BaseMapper<DatumPoint> {
+}

+ 30 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/DatumPointMapper.xml

@@ -0,0 +1,30 @@
+<?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="org.springblade.business.mapper.DatumPointMapper">
+
+    <!-- 通用查询映射结果 -->
+    <resultMap id="DatumPointResultMap" type="org.springblade.business.entity.DatumPoint">
+        <result column="id" property="id"/>
+        <result column="createUser" property="create_user"/>
+        <result column="createDept" property="create_dept"/>
+        <result column="createTime" property="create_time"/>
+        <result column="updateUser" property="update_user"/>
+        <result column="updateTime" property="update_time"/>
+        <result column="status" property="status"/>
+        <result column="isDeleted" property="is_deleted"/>
+        <result column="tenantId" property="tenant_id"/>
+        <result column="name" property="name"/>
+        <result column="x" property="x"/>
+        <result column="y" property="y"/>
+        <result column="h" property="h"/>
+        <result column="level" property="level"/>
+        <result column="remark" property="remark"/>
+        <result column="type" property="type"/>
+        <result column="projectId" property="project_id"/>
+        <result column="contractId" property="contract_id"/>
+    </resultMap>
+
+
+
+
+</mapper>

+ 178 - 0
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/DatumPointService.java

@@ -0,0 +1,178 @@
+package org.springblade.business.service.impl;
+
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.apache.poi.hssf.usermodel.HSSFDataFormatter;
+import org.apache.poi.ss.usermodel.*;
+import org.springblade.business.entity.DatumPoint;
+import org.springblade.business.mapper.DatumPointMapper;
+import org.springblade.business.utils.ExcelUtil;
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.core.tool.utils.StringUtil;
+import org.springframework.stereotype.Service;
+import org.springframework.web.multipart.MultipartFile;
+
+import java.io.InputStream;
+import java.util.*;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/7 15:49
+ * @description TODO
+ */
+@Service
+public class DatumPointService extends BaseServiceImpl<DatumPointMapper, DatumPoint> {
+
+
+
+
+    public String importData(MultipartFile file,  Long contractId, Integer dataType) throws Exception {
+        List<String> level=new ArrayList<>();
+        level.add("一级");
+        level.add("二级");
+        level.add("三级");
+        level.add("四级");
+        try {
+            Workbook wb = WorkbookFactory.create(file.getInputStream());
+            Sheet sheet = wb.getSheetAt(0);
+            List<DatumPoint> importList = new ArrayList<>();
+            Row row1=sheet.getRow(0);
+            if(dataType==0){
+                String dengji= ExcelUtil.getValue(row1.getCell(2)).toString();
+                String beizhu=ExcelUtil.getValue(row1.getCell(3)).toString();
+                if( !"等级".equals(dengji)||!"备注".equals(beizhu)){
+                    return "导入的数据格式有错,请对准导入模板确认!";
+                }
+            }
+            if(dataType==1){
+                String dengji=ExcelUtil.getValue(row1.getCell(4)).toString();
+                String beizhu=ExcelUtil.getValue(row1.getCell(5)).toString();
+                if( !"等级".equals(dengji)||!"备注".equals(beizhu)){
+                    return "导入的数据格式有错,请对准导入模板确认!";
+                }
+            }
+
+            for (int i = 1; ; i++) {
+                Row row = sheet.getRow(i);
+                if(row == null) {
+                    break;
+                }
+                if(dataType==0) {
+                    DatumPoint obj = new DatumPoint();
+                    for (int j = 0; j < 4; j++) {
+                        String value = (String) ExcelUtil.getValue(row.getCell(j));
+                        if (StringUtil.isEmpty(value)) {
+                            value = "";
+                        }
+                        String msg="";
+                        //判断测站点名称是否为空
+                        String name=(String)ExcelUtil.getValue(row.getCell(0));
+                        if(StringUtil.isEmpty(name)){
+                            msg="第"+i+"行,测站点名称为空,请输入!";
+                            return msg;
+                        }
+                        //判断,同一合同段下,测站点名称是否重复
+                        if(this.count(Wrappers.<DatumPoint>lambdaQuery().eq(DatumPoint::getName,name).eq(DatumPoint::getContractId,contractId).eq(DatumPoint::getType,dataType))>0){
+                            msg="第"+i+"行,测站点:"+name+"已存在,请修改";
+                            return msg;
+                        }
+                        switch (j) {
+                            case 0:
+                                obj.setName(value);
+                                break;
+                            case 1:
+                                obj.setH(Double.parseDouble(value));
+                                break;
+                            case 2:
+                                //判断等级是否为:一级、二级、三级、四级
+                                if(StringUtil.isNotBlank((String) ExcelUtil.getValue(row.getCell(j)))) {
+                                    if(!level.contains(value)){
+                                        msg="第"+i+"行,等级应该为:一级、二级、三级 或 四级,请修改!";
+                                        return msg;
+                                    }
+                                    obj.setLevel(value);
+                                }
+                                break;
+                            case 3:
+                                obj.setRemark(value);
+                                break;
+                            default:
+                                break;
+                        }
+
+                    }
+                    obj.setContractId(contractId);
+                    obj.setCreateTime(new Date());
+                    obj.setType(dataType);
+                    importList.add(obj);
+                }
+                if(dataType==1){
+                    DatumPoint obj = new DatumPoint();
+                    for (int j = 0; j < 6; j++) {
+                        String value = (String) ExcelUtil.getValue(row.getCell(j));
+                        if (StringUtil.isEmpty(value)) {
+                            value = "";
+                        }
+                        String msg="";
+                        //判断测站点名称是否为空
+                        String name=(String)ExcelUtil.getValue(row.getCell(0));
+                        if(StringUtil.isEmpty(name)){
+                            msg="第"+i+"行,测站点名称为空,请输入!";
+                            return msg;
+                        }
+                        //判断,同一合同段下,测站点名称是否重复
+                        if(this.count(Wrappers.<DatumPoint>lambdaQuery().eq(DatumPoint::getName,name).eq(DatumPoint::getContractId,contractId).eq(DatumPoint::getType,dataType))>0){
+                            msg="第"+i+"行,测站点:"+name+"已存在,请修改";
+                            return msg;
+                        }
+                        switch (j) {
+                            case 0:
+                                obj.setName(value);
+                                break;
+                            case 1:
+                                obj.setX(Double.parseDouble(value));
+                                break;
+                            case 2:
+                                obj.setY(Double.parseDouble(value));
+                                break;
+                            case 3:
+                                obj.setH(Double.parseDouble(value));
+                                break;
+                            case 4:
+                                //判断等级是否为:一级、二级、三级、四级
+                                if(StringUtil.isNotBlank((String) ExcelUtil.getValue(row.getCell(j)))) {
+                                    if(!level.contains(value)){
+                                        msg="第"+i+"行,等级应该为:一级、二级、三级 或 四级,请修改!";
+                                        return msg;
+                                    }
+                                    obj.setLevel(value);
+                                }
+                                break;
+                            case 5:
+                                obj.setRemark(value);
+                                break;
+                            default:
+                                break;
+                        }
+
+                    }
+                    obj.setContractId(contractId);
+                    obj.setCreateTime(new Date());
+                    obj.setType(dataType);
+                    importList.add(obj);
+                }
+            }
+            //批量保存
+            this.saveBatch(importList);
+            return  "导入成功";
+        } catch (Exception e){
+            e.printStackTrace();
+        }
+        return "执行异常";
+    }
+
+    //导出数据
+    public List<DatumPoint>  exportExcel( String contractId , Integer type, String search){
+      return   this.list(Wrappers.<DatumPoint>lambdaQuery().eq(DatumPoint::getType,type).and(e->e.like(DatumPoint::getName,search).or().like(DatumPoint::getRemark,search)));
+    }
+
+}

+ 38 - 0
blade-service/blade-business/src/main/java/org/springblade/business/utils/ExcelUtil.java

@@ -0,0 +1,38 @@
+package org.springblade.business.utils;
+
+import org.apache.poi.hssf.usermodel.HSSFDataFormatter;
+import org.apache.poi.ss.usermodel.Cell;
+import org.apache.poi.ss.usermodel.CellType;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/8 11:18
+ * @description TODO
+ */
+public class ExcelUtil {
+    public static Object getValue(Cell cell) {
+        if(cell != null) {
+            switch(cell.getCellTypeEnum()){
+                case STRING:
+                    return cell.getStringCellValue()==null ? null : cell.getStringCellValue().trim();
+                case NUMERIC:
+                    HSSFDataFormatter dataFormatter = new HSSFDataFormatter();
+                    return dataFormatter.formatCellValue(cell);
+                case BOOLEAN:
+                    return cell.getBooleanCellValue();
+                case ERROR:
+                    return cell.getErrorCellValue();
+                case FORMULA:
+                    try {
+                        return cell.getStringCellValue();
+                    } catch (IllegalStateException e) {
+                        return cell.getNumericCellValue();
+                    }
+                default:
+                    cell.setCellType(CellType.STRING);
+                    return cell.getStringCellValue()==null ? null : cell.getStringCellValue().trim();
+            }
+        }
+        return null;
+    }
+}

+ 8 - 5
blade-service/blade-business/src/main/java/org/springblade/business/utils/FunctionMain.java

@@ -20,7 +20,10 @@ import org.apache.http.client.methods.HttpPost;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.message.BasicNameValuePair;
 import com.baomidou.mybatisplus.annotation.TableName;
+import org.springblade.business.entity.DatumPoint;
+import org.springblade.manager.entity.Formula;
 import org.springblade.manager.entity.FormulaBase;
+import org.springblade.manager.vo.FormulaType;
 
 import javax.validation.constraints.Size;
 
@@ -114,8 +117,8 @@ public class FunctionMain {
     }
     public static void createTable(Class<?> clazz,String remark) {
                String tableName=clazz.getAnnotation(TableName.class).value();
-               StringBuilder sql = new StringBuilder("CREATE TABLE `"+tableName+"` ( \n" +
-                                                      "`id` bigint(20) NOT NULL COMMENT '主键',\n");
+               StringBuilder sql = new StringBuilder( "DROP TABLE IF EXISTS `"+tableName+"`;\n");
+               sql.append("CREATE TABLE `").append(tableName).append("` ( \n").append("`id` bigint(20) NOT NULL COMMENT '主键',\n");
                List<Field> fields=collectChain(clazz,false);
                for(Field f:fields){
                    Size s=f.getAnnotation(Size.class);
@@ -169,9 +172,9 @@ public class FunctionMain {
     }
 
     public static void main(String[] args)  {
-//        createTable(FormulaBase.class,"基础公式");
-//        System.out.println(builder(FormulaBase.class));
-          getToken();
+        createTable(Formula.class,"公式配置");
+        System.out.println(builder(Formula.class));
+//          getToken();
     }
 
 

+ 3 - 0
blade-service/blade-manager/blade-manager.iml

@@ -260,6 +260,9 @@
     <orderEntry type="library" name="Maven: org.mapstruct:mapstruct:1.3.1.Final" level="project" />
     <orderEntry type="library" name="Maven: io.swagger:swagger-models:1.6.2" level="project" />
     <orderEntry type="library" name="Maven: com.fasterxml.jackson.core:jackson-annotations:2.11.4" level="project" />
+    <orderEntry type="module" module-name="blade-user-api" />
+    <orderEntry type="module" module-name="blade-business-api" />
+    <orderEntry type="library" name="Maven: com.jfirer:baseutil:1.0" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: junit:junit:4.13.1" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest-core:2.2" level="project" />
     <orderEntry type="library" scope="TEST" name="Maven: org.hamcrest:hamcrest:2.2" level="project" />

+ 1 - 1
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaBaseController.java

@@ -75,7 +75,7 @@ public class FormulaBaseController extends BladeController {
     @ApiOperationSupport(order = 8)
     @ApiOperation(value = "按类型获取基础公式", notes = "传入id")
     @GetMapping("/getTypeMap")
-    public R<Map<Integer, List<FormulaBaseVo>>> getTypeMap() {
+    public R<Map<String, List<FormulaBaseVo>>> getTypeMap() {
         return R.data(this.service.getTypeMap());
     }
 

+ 66 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/FormulaController.java

@@ -0,0 +1,66 @@
+package org.springblade.manager.controller;
+
+import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import lombok.AllArgsConstructor;
+import org.springblade.core.mp.support.Condition;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.manager.entity.Formula;
+import org.springblade.manager.service.impl.FormulaService;
+import org.springframework.web.bind.annotation.*;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/9 14:27
+ * @description TODO
+ */
+@RestController
+@AllArgsConstructor
+@RequestMapping("/formula")
+@Api(value = "公式脚本", tags = "公式脚本")
+public class FormulaController {
+    private final FormulaService service;
+    /**
+     * 新增或修改
+     */
+    @PostMapping("/save")
+    @ApiOperationSupport(order = 4)
+    @ApiOperation(value = "新增或修改", notes = "传入")
+    public R save(Formula f) {
+        return R.status(service.save(f));
+    }
+
+    /**
+     * 修改
+     */
+    @PostMapping("/update")
+    @ApiOperationSupport(order = 5)
+    @ApiOperation(value = "修改", notes = "传入脚本")
+    public R update( Formula f) {
+        return R.status(service.updateById(f));
+    }
+
+    /**
+     * 删除
+     */
+    @PostMapping("/remove")
+    @ApiOperationSupport(order = 6)
+    @ApiOperation(value = "删除", notes = "传入id集合")
+    public R remove(@RequestParam String ids) {
+        return R.status(this.service.deleteLogic(Func.toLongList(ids)));
+    }
+    /**
+     * 查询单条
+     */
+    @ApiOperationSupport(order =7)
+    @ApiOperation(value = "查看详情", notes = "传入id")
+    @GetMapping("/detail")
+    public R<Formula> detail(Formula f) {
+        Formula detail = service.getOne(Condition.getQueryWrapper(f));
+        return R.data(detail);
+    }
+
+
+}

+ 12 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/FormulaMapper.java

@@ -0,0 +1,12 @@
+package org.springblade.manager.mapper;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.manager.entity.Formula;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/9 13:36
+ * @description TODO
+ */
+public interface FormulaMapper extends BaseMapper<Formula> {
+}

+ 21 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/mapper/FormulaMapper.xml

@@ -0,0 +1,21 @@
+<?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="org.springblade.manager.mapper.FormulaMapper">
+    <resultMap id="formulaResultMap" type="org.springblade.manager.entity.Formula">
+        <result column="id" property="id"/>
+        <result column="createUser" property="create_user"/>
+        <result column="createDept" property="create_dept"/>
+        <result column="createTime" property="create_time"/>
+        <result column="updateUser" property="update_user"/>
+        <result column="updateTime" property="update_time"/>
+        <result column="status" property="status"/>
+        <result column="isDeleted" property="is_deleted"/>
+        <result column="name" property="name"/>
+        <result column="formula" property="formula"/>
+        <result column="number" property="number"/>
+        <result column="orderNum" property="order_num"/>
+        <result column="remark" property="remark"/>
+        <result column="wbsId" property="wbs_id"/>
+    </resultMap>
+
+</mapper>

+ 8 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaBaseService.java

@@ -9,8 +9,7 @@ import org.springblade.manager.vo.FormulaType;
 import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 
 /**
@@ -20,10 +19,15 @@ import java.util.stream.Collectors;
  */
 @Service
 public class FormulaBaseService extends BaseServiceImpl<FormulaBaseMapper, FormulaBase> {
-   public Map<Integer, List<FormulaBaseVo>> getTypeMap(){
+   public Map<String, List<FormulaBaseVo>> getTypeMap(){
         List<FormulaBase> list = this.list();
         if(CollectionUtil.isNotEmpty(list)){
-          return  list.stream().map(e->{FormulaBaseVo fb =new FormulaBaseVo();BeanUtils.copyProperties(e,fb);return fb;}).collect(Collectors.groupingBy(FormulaBaseVo::getType));
+            Map<Integer, List<FormulaBaseVo>> tmp = list.stream().map(e->{FormulaBaseVo fb =new FormulaBaseVo();BeanUtils.copyProperties(e,fb);return fb;}).collect(Collectors.groupingBy(FormulaBaseVo::getType));
+            Map<String, List<FormulaBaseVo>> data = new LinkedHashMap<>();
+            for(int i=0;i<FormulaType.values().length;i++){
+                data.put(FormulaType.getName(i),tmp.get(i));
+            }
+            return data;
         }
         return null;
     }

+ 16 - 0
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/FormulaService.java

@@ -0,0 +1,16 @@
+package org.springblade.manager.service.impl;
+
+
+import org.springblade.core.mp.base.BaseServiceImpl;
+import org.springblade.manager.entity.Formula;
+import org.springblade.manager.mapper.FormulaMapper;
+import org.springframework.stereotype.Service;
+
+/**
+ * @author yangyj
+ * @Date 2022/6/9 14:29
+ * @description TODO
+ */
+@Service
+public class FormulaService extends BaseServiceImpl<FormulaMapper, Formula> {
+}