Ver Fonte

2023 11 23 保存更新

zhuwei há 1 ano atrás
pai
commit
46a8d645aa
26 ficheiros alterados com 290 adições e 114 exclusões
  1. 1 1
      blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java
  2. 1 1
      blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java
  3. 2 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/MeterTreeContractDTO.java
  4. 0 3
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/InventoryFormMeter.java
  5. 77 0
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ContractFromVO.java
  6. 1 1
      blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MeterTreeContractVO.java
  7. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  8. 1 1
      blade-service/blade-business/src/main/java/org/springblade/business/utils/FunctionMain.java
  9. 2 2
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java
  10. 4 2
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java
  11. 2 4
      blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java
  12. 14 45
      blade-service/blade-manager/src/main/java/org/springblade/manager/utils/test.java
  13. 21 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ContractInventoryFormController.java
  14. 23 5
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/InventoryFormMeterController.java
  15. 6 10
      blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MeterTreeController.java
  16. 9 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.java
  17. 10 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.xml
  18. 2 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/InventoryFormApplyMapper.xml
  19. 3 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/InventoryFormMeterMapper.java
  20. 3 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/InventoryFormMeterMapper.xml
  21. 5 4
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IContractInventoryFormService.java
  22. 5 1
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/IInventoryFormMeterService.java
  23. 12 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractInventoryFormServiceImpl.java
  24. 28 0
      blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/InventoryFormMeterServiceImpl.java
  25. 55 30
      blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java
  26. 2 0
      blade-service/blade-user/src/main/java/org/springblade/system/user/util/AesInfoUtil.java

+ 1 - 1
blade-common/src/main/java/org/springblade/common/constant/LauncherConstant.java

@@ -110,7 +110,7 @@ public interface LauncherConstant {
     /**
      * elk dev 地址
      */
-    String ELK_DEV_ADDR = "127.0.0.1:9000";
+    String ELK_DEV_ADDR = "192.168.0.119:9000";
 
     /**
      * elk prod 地址

+ 1 - 1
blade-common/src/main/java/org/springblade/common/launch/LauncherServiceImpl.java

@@ -43,7 +43,7 @@ public class LauncherServiceImpl implements LauncherService {
         PropsUtil.setProperty(props, "spring.datasource.dynamic.enabled", "false");
 
         // 开启elk日志
-        // PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile));
+        //PropsUtil.setProperty(props, "blade.log.elk.destination", LauncherConstant.elkAddr(profile));
 
         // seata注册地址
         // PropsUtil.setProperty(props, "seata.service.grouplist.default", LauncherConstant.seataAddr(profile));

+ 2 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/dto/MeterTreeContractDTO.java

@@ -3,6 +3,7 @@ package org.springblade.meter.dto;
 import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import org.springblade.meter.entity.MeterTreeContract;
+import org.springblade.meter.vo.ContractFromVO;
 
 import java.util.List;
 
@@ -13,6 +14,6 @@ import java.util.List;
 public class MeterTreeContractDTO extends MeterTreeContract {
 
     @ApiModelProperty(value = "分解清单列表详情")
-    private List<Object> decompositionList; //TODO 此处Obj替换为分解清单Bean对象
+    private List<ContractFromVO> decompositionList; //TODO 此处Obj替换为分解清单Bean对象
 
 }

+ 0 - 3
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/entity/InventoryFormMeter.java

@@ -17,9 +17,6 @@
 package org.springblade.meter.entity;
 
 import com.baomidou.mybatisplus.annotation.TableName;
-
-import java.io.Serializable;
-
 import io.swagger.annotations.ApiModelProperty;
 import org.springblade.core.mp.base.BaseEntity;
 import lombok.Data;

+ 77 - 0
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/ContractFromVO.java

@@ -0,0 +1,77 @@
+package org.springblade.meter.vo;
+
+import com.alibaba.excel.annotation.ExcelIgnore;
+import com.alibaba.excel.annotation.ExcelProperty;
+import com.fasterxml.jackson.annotation.JsonInclude;
+import com.fasterxml.jackson.databind.annotation.JsonSerialize;
+import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+import org.springblade.core.tool.node.INode;
+
+import java.math.BigDecimal;
+import java.util.ArrayList;
+import java.util.List;
+
+/**
+ * @Param
+ * @Author zhuw
+ * @Date 2023/11/29 15:25
+ **/
+@Data
+public class ContractFromVO {
+
+    /**
+     * 主键ID
+     */
+    @JsonSerialize(using = ToStringSerializer.class)
+    private Long id;
+
+    /**
+     * 清单编号
+     */
+    @ApiModelProperty(value = "清单编号")
+    @ExcelProperty("清单编号")
+    private String formNumber;
+    /**
+     * 清单名称
+     */
+    @ApiModelProperty(value = "清单名称")
+    @ExcelProperty("清单名称")
+    private String formName;
+
+    /**
+     * 当前单价
+     */
+    @ApiModelProperty(value = "当前单价")
+    @ExcelIgnore
+    private BigDecimal currentPrice;
+
+    /**
+     * 合同数量
+     */
+    @ApiModelProperty(value = "合同数量")
+    @ExcelProperty("数量")
+    private Integer contractTotal;
+
+    /**
+     * 变更后数量
+     */
+    @ApiModelProperty(value = "变更后数量")
+    @ExcelIgnore
+    private Integer changeTotal;
+
+    /**
+     * 已分解量
+     */
+    @ApiModelProperty(value = "已分解量")
+    @ExcelIgnore
+    private Integer poseNum;
+
+    /**
+     * 是否增补
+     */
+    @ApiModelProperty(value = "是否增补")
+    @ExcelIgnore
+    private Integer isSupplement;
+}

+ 1 - 1
blade-service-api/blade-meter-api/src/main/java/org/springblade/meter/vo/MeterTreeContractVO.java

@@ -13,6 +13,6 @@ import java.util.List;
 public class MeterTreeContractVO extends MeterTreeContract {
 
     @ApiModelProperty(value = "分解清单列表详情")
-    private List<Object> decompositionList; //TODO 此处Obj替换为分解清单Bean对象
+    private List<ContractFromVO> decompositionList; //TODO 此处Obj替换为分解清单Bean对象
 
 }

+ 1 - 1
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java

@@ -576,7 +576,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
     }
 
 
-    @Scheduled(cron = "0 */1 * * * ?")
+   // @Scheduled(cron = "0 */1 * * * ?")
     public void SignInfo() {
         //执行代码
         logger.debug("扫描开始");

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

@@ -91,7 +91,7 @@ public class FunctionMain {
 
     public static void getToken() {
         HttpClient httpClient = HttpClientBuilder.create().build();
-        HttpPost httpPost = new HttpPost("http://localhost/blade-auth/oauth/token");
+        HttpPost httpPost = new HttpPost("http://localhost:8090/blade-auth/oauth/token");
         httpPost.setHeader("Authorization", "Basic c2FiZXI6c2FiZXJfc2VjcmV0");
         httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
         httpPost.setHeader("Tenant-Id", "000000");

+ 2 - 2
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java

@@ -542,7 +542,7 @@ public class EVisaServiceImpl implements EVisaService {
      */
     public String eVisaCustom(org.springblade.evisa.vo.TaskArchiveDTO taskArchiveDTO) {
         //type=1表示任务审批自定义签章,type=2表示认证电签签章(不涉及审批任务)
-        if (taskArchiveDTO.getSealStrategy().size() > 0 && taskArchiveDTO.getType() == 1) {
+        if (taskArchiveDTO.getSealStrategy()!=null && taskArchiveDTO.getSealStrategy().size() > 0 && taskArchiveDTO.getType() == 1) {
             //获取档案任务
             Task task = jdbcTemplate.queryForObject("select form_data_id from u_task where id = " + taskArchiveDTO.getTaskId(), new BeanPropertyRowMapper<>(Task.class));
             if (task != null) {
@@ -611,7 +611,7 @@ public class EVisaServiceImpl implements EVisaService {
                 }
             }
             return "";
-        } else if (taskArchiveDTO.getSealStrategy().size() > 0 && taskArchiveDTO.getType() == 2) {
+        } else if (taskArchiveDTO.getSealStrategy()!=null && taskArchiveDTO.getSealStrategy().size() > 0 && taskArchiveDTO.getType() == 2) {
             //此时的taskArchiveDTO.taskId=档案数据业务id(档案认证不涉及审批流任务)
             //获取档案任务的文件信息(这里根据id再查询一次,入参的时候不想重新构造入参的dto了)
             ArchiveFile archiveFile = jdbcTemplate.queryForObject("select pdf_file_url,e_visa_file from u_archive_file where id = " + taskArchiveDTO.getTaskId(), new BeanPropertyRowMapper<>(ArchiveFile.class));

+ 4 - 2
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/ExcelTabController.java

@@ -318,9 +318,11 @@ public class ExcelTabController extends BladeController {
         ExcelInfoUtils.excelInfo(file.getInputStream(), exceUrl, thmlUrl, "1");
         // 上传excel文件
         BladeFile bladeFile = newIOSSClient.uploadFile(file.getOriginalFilename(), exceUrl);
-        // 解析原始excel
 
-        //  BladeFile bladeFileR = newIOSSClient.uploadFileByInputStream(file);
+        if(bladeFile==null || ObjectUtil.isEmpty(bladeFile)){
+            return R.fail("oss上传失败,请校验oss配置是否正确");
+        }
+        // 解析原始excel
         detail.setExtension(file.getOriginalFilename());
         detail.setFileUrl(bladeFile.getLink());
         detail.setFileType(3); // 表示为清表信息  1 表示祖节点  2 表示为节点信息 3 表示清表

+ 2 - 4
blade-service/blade-manager/src/main/java/org/springblade/manager/service/impl/ExcelTabServiceImpl.java

@@ -1675,13 +1675,10 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
 
                             String myData = DataInfo.get(val) + "";
                             if ((myData.indexOf("T") >= 0 && myData.indexOf("-") >= 0) || (myData.indexOf(",") >= 0 && myData.indexOf("]") >= 0)) {
-
                                 SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd'T'HH:mm:ss.SSS'Z'");
                                 sdf.setTimeZone(TimeZone.getTimeZone("GTM+8"));
                                 SimpleDateFormat formatStr = new SimpleDateFormat("yyyy年MM月dd日");
-
                                 if (myData.indexOf(",") >= 0 && myData.indexOf("]") >= 0) {
-
                                     myData = myData.replace("[", "").replace("]", "").replaceAll("'", "");
                                     String[] dataVal = myData.split(",");
                                     Date Start_dataStr = new Date();
@@ -1842,7 +1839,8 @@ public class ExcelTabServiceImpl extends BaseServiceImpl<ExcelTabMapper, ExcelTa
         FileOutputStream outputStream = new FileOutputStream(excelPath);
         workbook.write(outputStream);
 
-        FileUtils.excel2pdf(excelPath, pdfPath);
+      //  FileUtils.excel2pdf(excelPath, pdfPath);
+        FileUtils.excelToPdf(excelPath, pdfPath);
 
         BladeFile bladeFile = newIOSSClient.uploadFile(pkeyId + ".pdf", pdfPath);
 

+ 14 - 45
blade-service/blade-manager/src/main/java/org/springblade/manager/utils/test.java

@@ -1,55 +1,24 @@
 package org.springblade.manager.utils;
 
-
-
-
-
-import com.spire.xls.CellRange;
-import com.spire.xls.Workbook;
-import com.spire.xls.Worksheet;
-import org.jsoup.Jsoup;
-import org.jsoup.nodes.Document;
-import org.jsoup.nodes.Element;
-import org.jsoup.select.Elements;
-import org.springblade.core.tool.utils.IoUtil;
-import org.springblade.core.tool.utils.ResourceUtil;
+import cn.hutool.http.useragent.UserAgentUtil;
+import cn.hutool.jwt.JWT;
+import cn.hutool.jwt.JWTUtil;
+import io.jsonwebtoken.Claims;
+import org.springblade.core.secure.utils.AuthUtil;
+import org.springblade.core.tool.utils.Charsets;
+import org.springblade.core.tool.utils.StringPool;
 
 import java.io.*;
+import java.util.Base64;
 
 public class test {
+    public static void main11(String[] args) throws IOException {
+     String token ="bearer eyJhbGciOiJIUzI1NiIsInR5cCI6IkpXVCJ9.eyJ0ZW5hbnRfaWQiOiIwMDAwMDAiLCJ1c2VyX25hbWUiOiJwZW5nY3QiLCJyZWFsX25hbWUiOiJQQ1QiLCJhdmF0YXIiOiJodHRwczovL2JsYWRleC1jaG9uZ3FpbmctaW5mby5vc3MtY24taGFuZ3pob3UuYWxpeXVuY3MuY29tLy91cGxvYWQvMjAyMjA2MTYvOGVkMzdhMTU2ZjJiMTc3ZDY5MTgxYzg3Njg5MjczOWYuanBnIiwiYXV0aG9yaXRpZXMiOlsiYWRtaW5pc3RyYXRvciJdLCJjbGllbnRfaWQiOiJjbGllbnQiLCJyb2xlX25hbWUiOiJhZG1pbmlzdHJhdG9yIiwibGljZW5zZSI6InBvd2VyZWQgYnkgYmxhZGV4IiwicG9zdF9pZCI6IjE1MzcyNjAzOTA3NzI1OTI2NDEiLCJ1c2VyX2lkIjoiMTUzNjk4NTA5NDU3MTgyMzEwNSIsInJvbGVfaWQiOiIxMTIzNTk4ODE2NzM4Njc1MjAxIiwicGhvbmUiOiIxODU4MDE0NzU1MCIsInNjb3BlIjpbImFsbCJdLCJuaWNrX25hbWUiOiJQQ1QiLCJvYXV0aF9pZCI6IiIsImRldGFpbCI6eyJ0eXBlIjoid2ViIn0sImV4cCI6MTcwMTMzNTM1OCwiZGVwdF9pZCI6IjE1MzY5ODMwNTYzNjIzODEzMTMiLCJqdGkiOiIzOGE2MDA4Yi01MzQ2LTQ5YjktOGU0OC1hOTNmYjNlNjYyMGYiLCJhY2NvdW50IjoicGVuZ2N0In0._IvCSHGZY8P74XcPWnRw7D46zWORsPCRKkB0HQgxjU0";
 
-    public static void main1(String[] args) throws IOException {
-     //   String excel="/Users/hongchuangyanfa/Downloads/JL1036隧道锚喷支护施工记录表.xlsx";
-        String excel="/Users/hongchuangyanfa/Downloads/养护表格/ZJY6.11.2植筋检验表.xlsx";
-        String poiPath="/Users/hongchuangyanfa/Desktop/pdf/poi.pdf";
-        String pdfPath22="/Users/hongchuangyanfa/Desktop/pdf/poi222.pdf";
-        String pdfPathhtml="/Users/hongchuangyanfa/Desktop/pdf/poi222.html";
-        Workbook workbook2 = new Workbook();
-        workbook2.loadFromFile(excel);
-        //设置转换后的PDF页面高宽适应工作表的内容大小
-        workbook2.getConverterSetting().setSheetFitToPage(true);
-        Worksheet sheet = workbook2.getWorksheets().get(0);
-
-        sheet.saveToHtml(pdfPathhtml);
-
-        File file1 = ResourceUtil.getFile(pdfPathhtml);
-        String htmlString = IoUtil.readToString(new FileInputStream(file1));
-        Document doc = Jsoup.parse(htmlString);
-        Element table = doc.select("table").first();
-        Elements trs = table.select("tr");
-        Elements cols = table.select("Col");
-
-        sheet.deleteRow(trs.size(),sheet.getRows().length - trs.size());
-        sheet.deleteColumn(cols.size(),sheet.getColumns().length - cols.size());
-
-        System.out.println(trs.size());
-        System.out.println(cols.size());
-
-        System.out.println(sheet.getRows().length);
-        System.out.println(sheet.getColumns().length);
-
-
-        ////16384*/
+        byte[] decoded = Base64.getDecoder().decode(token);
+        String token2 = new String(decoded, Charsets.UTF_8_NAME);
+        int index = token2.indexOf(StringPool.COLON);
+        System.out.println("ccd");
     }
 
 }

+ 21 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/ContractInventoryFormController.java

@@ -25,6 +25,8 @@ 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.ObjectUtil;
+import org.springblade.meter.vo.ContractFromVO;
 import org.springblade.meter.vo.ContractInventoryFormVO;
 import org.springblade.meter.vo.ContractInventoryFormVO2;
 import org.springblade.meter.vo.FormTreeVO;
@@ -176,5 +178,24 @@ public class ContractInventoryFormController extends BladeController {
 		return R.data("https://bladex-chongqing-info.oss-cn-hangzhou.aliyuncs.com//upload/20231201/853cebb7e9c89c982dd15f842fed42a3.xls");
 	}
 
+
+
+	/**
+	 * 分解获取合同段清单列表
+	 */
+	@GetMapping("getContrInFormAllByConId")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "获取合同工程清单表", notes = "返回获取合同工程清单表列表")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "contractId", value = "", required = true),
+			@ApiImplicitParam(name = "formNum", value = "formNum", required = true)
+	})
+	public R<List<ContractFromVO>> getFormTree(Long contractId, String formNum){
+		if(contractId!=null && ObjectUtil.isEmpty(contractId)){
+			return R.fail("contractId不能为空");
+		}
+		List<ContractFromVO> treeAll = contractInventoryFormService.getContrFormAllByContrId(contractId,formNum);
+		return R.data(treeAll);
+	}
 	
 }

+ 23 - 5
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/InventoryFormMeterController.java

@@ -16,13 +16,12 @@
  */
 package org.springblade.meter.controller;
 
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import io.swagger.annotations.ApiParam;
+import io.swagger.annotations.*;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import lombok.AllArgsConstructor;
 import javax.validation.Valid;
 
+import org.apache.commons.lang.StringUtils;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
 import org.springblade.core.tool.api.R;
@@ -43,7 +42,7 @@ import org.springblade.core.boot.ctrl.BladeController;
 @RestController
 @AllArgsConstructor
 @RequestMapping("/inventoryFormMeter")
-@Api(value = "工程清单与合同计量单元	中间表", tags = "工程清单与合同计量单元	中间表接口")
+@Api(value = "工程清单与合同计量单元中间表", tags = "工程清单与合同计量单元中间表接口")
 public class InventoryFormMeterController extends BladeController {
 
 	private final IInventoryFormMeterService inventoryFormMeterService;
@@ -113,5 +112,24 @@ public class InventoryFormMeterController extends BladeController {
 		return R.status(inventoryFormMeterService.deleteLogic(Func.toLongList(ids)));
 	}
 
-	
+
+	/**
+	 * 添加同合计量 清单
+	 */
+	@PostMapping("/saveInvenFormMeter")
+	@ApiOperationSupport(order = 8)
+	@ApiOperation(value = "添加同合计量 清单", notes = "传入")
+	@ApiImplicitParams(value = {
+			@ApiImplicitParam(name = "meterId", value = "合同计量单元id", required = true),
+			@ApiImplicitParam(name = "formIds", value = "合同工程清单ids,多个以,分割", required = true)
+	})
+	public R inventoryFormMeterService(String meterId,String formIds) {
+		if(meterId==null & StringUtils.isEmpty(meterId)){
+			R.fail("计量单元meterId不能为null");
+		}
+		if(formIds!=null & StringUtils.isNotEmpty(formIds)){
+			R.fail("合同工程清单formIds不能为null");
+		}
+		return inventoryFormMeterService.inventoryFormMeterService(meterId,formIds);
+	}
 }

+ 6 - 10
blade-service/blade-meter/src/main/java/org/springblade/meter/controller/MeterTreeController.java

@@ -25,14 +25,8 @@ import org.springblade.meter.entity.MeterTreeContract;
 import org.springblade.meter.entity.MeterTreeProject;
 import org.springblade.meter.entity.MeterTreeSystem;
 import org.springblade.meter.entity.MeterTreeTemplateInfo;
-import org.springblade.meter.service.MeterTreeContractService;
-import org.springblade.meter.service.MeterTreeProjectService;
-import org.springblade.meter.service.MeterTreeSystemService;
-import org.springblade.meter.service.MeterTreeTemplateInfoService;
-import org.springblade.meter.vo.MeterTreeContractTreeVO;
-import org.springblade.meter.vo.MeterTreeContractVO;
-import org.springblade.meter.vo.MeterTreeProjectTreeVO;
-import org.springblade.meter.vo.MeterTreeSystemTreeVO;
+import org.springblade.meter.service.*;
+import org.springblade.meter.vo.*;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
@@ -53,6 +47,7 @@ public class MeterTreeController extends BladeController {
     private final MeterTreeSystemService meterTreeSystemService;
     private final MeterTreeProjectService meterTreeProjectService;
     private final MeterTreeContractService meterTreeContractService;
+    private final IContractInventoryFormService contractInventoryFormService;
 
     @GetMapping("/template/detail")
     @ApiOperationSupport(order = 1)
@@ -564,9 +559,10 @@ public class MeterTreeController extends BladeController {
         if (basicInfo != null) {
             MeterTreeContractVO vo = new MeterTreeContractVO();
             BeanUtil.copyProperties(basicInfo, vo);
-
             //TODO 此处为分解列表信息,查询赋值
-            vo.setDecompositionList(null);
+            List<ContractFromVO> contrFormAllByContrId = contractInventoryFormService.getContrFormAllByContrId(basicInfo.getContractId(), "");
+
+            vo.setDecompositionList(contrFormAllByContrId);
             return R.data(vo);
         }
         return R.data(null);

+ 9 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.java

@@ -19,6 +19,7 @@ package org.springblade.meter.mapper;
 import org.apache.ibatis.annotations.Param;
 import org.springblade.meter.entity.ContractInventoryForm;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.springblade.meter.vo.ContractFromVO;
 import org.springblade.meter.vo.ContractInventoryFormVO;
 import org.springblade.meter.vo.ContractInventoryFormVO2;
 import org.springblade.meter.vo.FormTreeVO;
@@ -46,4 +47,12 @@ public interface ContractInventoryFormMapper extends BaseMapper<ContractInventor
     void updateNode(@Param("id") Long id,@Param("contractId") Long contractId);
 
     List<ContractInventoryFormVO2> getChildNode(@Param("contractId") Long contractId, @Param("parentId") Long parentId);
+
+    /**
+     * 获取合同工程清单表
+     * @param contractId
+     * @param formNum
+     * @return
+     */
+    List<ContractFromVO> getContrFormAllByContrId(@Param("contractId") Long contractId, @Param("formNum") String formNum);
 }

+ 10 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/ContractInventoryFormMapper.xml

@@ -78,5 +78,15 @@
         order by sort
     </select>
 
+    <select id="getContrFormAllByContrId" resultType="org.springblade.meter.vo.ContractFromVO">
+        select id,form_number,form_name,current_price,contract_total,change_total,
+        (SELECT count(1) from s_inventory_form_meter a where is_deleted=0 and a.contract_id=u.contract_id and a.contract_form_id=u.id) as poseNum,is_supplement
+        from s_contract_inventory_form u
+        where contract_id = #{contractId} and is_deleted = 0
+        <if test="formNum != null and formNum != ''">
+            and u.form_number like concat('%',#{formNum},'%')
+        </if>
+        order by sort
+    </select>
 
 </mapper>

+ 2 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/InventoryFormApplyMapper.xml

@@ -19,6 +19,7 @@
         <result column="current_meter_total" property="currentMeterTotal"/>
     </resultMap>
 
+    <select id="dadainfo" >
 
-
+    </select>
 </mapper>

+ 3 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/InventoryFormMeterMapper.java

@@ -16,7 +16,8 @@
  */
 package org.springblade.meter.mapper;
 
-import org.apache.ibatis.annotations.Param;
+import feign.Param;
+import org.springblade.meter.entity.ContractInventoryForm;
 import org.springblade.meter.entity.InventoryFormMeter;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -32,4 +33,5 @@ public interface InventoryFormMeterMapper extends BaseMapper<InventoryFormMeter>
 
 
     List<Long> getNodeAllForm(@Param("nodeId") Long nodeId);
+    ContractInventoryForm dadainfo(@Param("forid") long forid);
 }

+ 3 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/mapper/InventoryFormMeterMapper.xml

@@ -24,5 +24,8 @@
         where contract_meter_id = #{nodeId} and is_deleted = 0
     </select>
 
+    <select id="dadainfo" resultType="org.springblade.meter.entity.ContractInventoryForm">
+        select * from s_contract_inventory_form where id=#{forid} ;
+    </select>
 
 </mapper>

+ 5 - 4
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IContractInventoryFormService.java

@@ -19,10 +19,7 @@ package org.springblade.meter.service;
 import org.springblade.core.tool.api.R;
 import org.springblade.meter.entity.ContractInventoryForm;
 import org.springblade.core.mp.base.BaseService;
-import org.springblade.meter.vo.ContractInventoryFormVO;
-import org.springblade.meter.vo.ContractInventoryFormVO2;
-import org.springblade.meter.vo.FormTreeVO;
-import org.springblade.meter.vo.InventoryFormDetailVO;
+import org.springblade.meter.vo.*;
 import org.springframework.web.multipart.MultipartFile;
 
 import java.util.List;
@@ -53,4 +50,8 @@ public interface IContractInventoryFormService extends BaseService<ContractInven
     void delete(Long id,Long contractId);
 
     List<ContractInventoryFormVO2> lazyTree(Long projectId, Long contractId, Long parentId);
+
+    //获取合同工程清单表
+    List<ContractFromVO> getContrFormAllByContrId(Long contractId, String formNum);
+
 }

+ 5 - 1
blade-service/blade-meter/src/main/java/org/springblade/meter/service/IInventoryFormMeterService.java

@@ -16,6 +16,7 @@
  */
 package org.springblade.meter.service;
 
+import org.springblade.core.tool.api.R;
 import org.springblade.meter.entity.InventoryFormMeter;
 import org.springblade.core.mp.base.BaseService;
 
@@ -33,5 +34,8 @@ public interface IInventoryFormMeterService extends BaseService<InventoryFormMet
     List<Long> getNodeAllForm(Long nodeId);
 
 
-
+    /**
+     * 添加同合计量 清单
+     */
+    R inventoryFormMeterService(String meterId, String formIds);
 }

+ 12 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/ContractInventoryFormServiceImpl.java

@@ -36,6 +36,7 @@ import org.springblade.meter.service.IContractInventoryFormService;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.meter.service.IInventoryFormMeterService;
 import org.springblade.meter.utils.ForestNodeMerger;
+import org.springblade.meter.vo.ContractFromVO;
 import org.springblade.meter.vo.ContractInventoryFormVO;
 import org.springblade.meter.vo.ContractInventoryFormVO2;
 import org.springblade.meter.vo.FormTreeVO;
@@ -467,6 +468,17 @@ public class ContractInventoryFormServiceImpl extends BaseServiceImpl<ContractIn
         return  vos;
     }
 
+    /**
+     * 获取合同工程清单表
+     * @param contractId
+     * @param formNum
+     * @return
+     */
+    @Override
+    public List<ContractFromVO> getContrFormAllByContrId(Long contractId, String formNum) {
+        return  baseMapper.getContrFormAllByContrId(contractId,formNum);
+    }
+
     /**
      * 判断当前节点是否已经分解或变更过,变更过返回true
      */

+ 28 - 0
blade-service/blade-meter/src/main/java/org/springblade/meter/service/impl/InventoryFormMeterServiceImpl.java

@@ -16,6 +16,11 @@
  */
 package org.springblade.meter.service.impl;
 
+import com.baomidou.mybatisplus.core.toolkit.Wrappers;
+import org.springblade.core.tool.api.R;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
+import org.springblade.meter.entity.ContractInventoryForm;
 import org.springblade.meter.entity.InventoryFormMeter;
 import org.springblade.meter.mapper.InventoryFormMeterMapper;
 import org.springblade.meter.service.IInventoryFormMeterService;
@@ -38,4 +43,27 @@ public class InventoryFormMeterServiceImpl extends BaseServiceImpl<InventoryForm
     public List<Long> getNodeAllForm(Long nodeId) {
         return baseMapper.getNodeAllForm(nodeId);
     }
+    /**
+     * 添加同合计量 清单
+     */
+    @Override
+    public R inventoryFormMeterService(String meterId, String formIds) {
+        List<Long> longList = Func.toLongList(formIds);
+        for(Long forid:longList){
+            InventoryFormMeter inventoryFormMeter = baseMapper.selectOne(Wrappers.<InventoryFormMeter>query().lambda()
+                    .eq(InventoryFormMeter::getContractMeterId, meterId)
+                    .eq(InventoryFormMeter::getContractFormId, forid));
+            if(inventoryFormMeter==null && ObjectUtil.isEmpty(inventoryFormMeter)){
+                ContractInventoryForm inventoryForm = baseMapper.dadainfo(forid);
+                InventoryFormMeter data =new InventoryFormMeter();
+                data.setContractId(inventoryForm.getContractId());
+                data.setProjectId(inventoryForm.getProjectId());
+                data.setContractFormId(forid);
+                data.setContractMeterId(Func.toLong(meterId));
+                data.setBuildPictureTotal(0);
+                baseMapper.insert(data);
+            }
+        }
+        return R.success("成功");
+    }
 }

+ 55 - 30
blade-service/blade-user/src/main/java/org/springblade/system/user/controller/UserController.java

@@ -17,13 +17,17 @@
 package org.springblade.system.user.controller;
 
 
+import cn.hutool.jwt.JWT;
+import cn.hutool.jwt.JWTUtil;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.common.utils.MD5Utils;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.jsonwebtoken.Claims;
 import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
 import org.apache.http.Consts;
@@ -31,6 +35,7 @@ import org.apache.http.HttpResponse;
 import org.apache.http.NameValuePair;
 import org.apache.http.client.HttpClient;
 import org.apache.http.client.entity.UrlEncodedFormEntity;
+import org.apache.http.client.methods.HttpGet;
 import org.apache.http.client.methods.HttpPost;
 import org.apache.http.impl.client.HttpClientBuilder;
 import org.apache.http.message.BasicNameValuePair;
@@ -423,58 +428,78 @@ public class UserController {
         return R.success("操作成功");
     }
 
-
     /**
      * token验证登录
      */
     @PostMapping("/loginByToken")
     @ApiOperationSupport(order = 20)
     @ApiOperation(value = "token验证加密", notes = "token验证登录")
-    public R loginByToken(String token, String account, String timestamp) {
-        if (StringUtil.isBlank(token)) {
-            return R.fail("请输出token");
-        }
-        if (StringUtil.isBlank(account)) {
-            return R.fail("请输出account");
-        }
-        if (StringUtil.isBlank(timestamp)) {
-            return R.fail("请输出timestamp");
+    public R loginByToken(String  token) {
+      //  this.loginByToken2(token);
+        token = "bearer "+token;
+        HttpClient httpClient = HttpClientBuilder.create().build();
+        HttpGet httpPost = new HttpGet("http://47.110.251.215:8090/blade-auth/oauth/user-info");
+        httpPost.setHeader("Authorization", token); //这个需要 client:
+        List<NameValuePair> params = new ArrayList<NameValuePair>();
+
+        try {
+            HttpResponse httpResponse = httpClient.execute(httpPost);
+            InputStream inputStream = httpResponse.getEntity().getContent();
+            ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
+            byte[] buffer = new byte[1024];
+            int index = 0;
+            while ((index = inputStream.read(buffer)) != -1) {
+                outputStream.write(buffer, 0, index);
+            }
+            JSONObject jsonObject = JSON.parseObject(outputStream.toString());
+            if(jsonObject!=null && ObjectUtil.isNotEmpty(jsonObject)){
+                JSONObject data = jsonObject.getJSONObject("data");
+                String name = data.getString("name");
+                return this.loginByToken2(name);
+            }else{
+                return R.fail("token解析用户失败");
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+            return R.success("操作失败");
         }
 
-        //解析tokne
-        String tokenInfo = AesInfoUtil.decrypt(token, null);
-        if (tokenInfo != null && tokenInfo.length() >= 20) {
-            JSONObject tokenUser = JSON.parseObject(tokenInfo);
-            String tokenPw = tokenUser.getString("password");
+    }
 
-            String tokenAccount = tokenUser.getString("account");
+    @PostMapping("/loginByToken2")
+    @ApiOperationSupport(order = 20)
+    @ApiOperation(value = "token验证加密", notes = "token验证登录")
+    public R loginByToken2(String account) {
+        if (StringUtil.isBlank(account)) {
+            return R.fail("请输出token");
+        }
 
-            String tokenTimestamp = tokenUser.getString("timestamp");
-            if (!account.equals(account)) {
-                return R.fail("token解析用户和account不一致");
-            }
+        if (account != null) {
             QueryWrapper<User> queryWrapper = new QueryWrapper<>();
-            queryWrapper.eq("account", tokenAccount);
+            queryWrapper.eq("account", account);
             // queryWrapper.eq("password", tokenPw);
             queryWrapper.eq("sys_type", 2);
             User userInfo = userService.getOne(queryWrapper);
             if (userInfo == null) {
                 return R.fail("用户名或密码错误");
             }
-            //获取用户list
+            String tenId =userInfo.getTenantId();
+            String pass = userInfo.getPlaintextPassword();
+            String md5Pass =MD5Utils.md5Hex(pass,"UTF-8");
+            System.out.println("密码"+ md5Pass);
+
             HttpClient httpClient = HttpClientBuilder.create().build();
-            HttpPost httpPost = new HttpPost("http://172.31.222.127:8090/blade-auth/oauth/token");
-            httpPost.setHeader("Authorization", "Basic Y2xpZW50OmNsaWVudF9zZWNyZXQ="); //这个需要 client:
+            HttpPost httpPost = new HttpPost("http://47.110.251.215:8090/blade-auth/oauth/token");
+            httpPost.setHeader("Authorization", "Basic YXJjaGl2ZXM6YXJjaGl2ZXNfc2VjcmV0");
             httpPost.setHeader("Content-Type", "application/x-www-form-urlencoded");
             httpPost.setHeader("Tenant-Id", "000000");
             List<NameValuePair> params = new ArrayList<NameValuePair>();
             params.add(new BasicNameValuePair("grant_type", "password"));
-            params.add(new BasicNameValuePair("username", userInfo.getAccount()));
-            params.add(new BasicNameValuePair("password", "e10adc3949ba59abbe56e057f20f883e"));
+            params.add(new BasicNameValuePair("username", account));
+            params.add(new BasicNameValuePair("password", md5Pass));
             params.add(new BasicNameValuePair("scope", "all"));
             params.add(new BasicNameValuePair("tenantId", "000000"));
             httpPost.setEntity(new UrlEncodedFormEntity(params, Consts.UTF_8));
-
             try {
                 HttpResponse httpResponse = httpClient.execute(httpPost);
                 InputStream inputStream = httpResponse.getEntity().getContent();
@@ -484,15 +509,15 @@ public class UserController {
                 while ((index = inputStream.read(buffer)) != -1) {
                     outputStream.write(buffer, 0, index);
                 }
-                System.out.println(JSON.parseObject(outputStream.toString()));
+                System.out.println("\n");
                 return R.data(JSON.parseObject(outputStream.toString()));
             } catch (IOException e) {
                 e.printStackTrace();
-                return R.success("操作失败");
             }
         } else {
-            return R.fail("请确认token是否有误");
+            return R.fail("请确认account是否有误");
         }
+        return R.fail("");
     }
 
     /**

+ 2 - 0
blade-service/blade-user/src/main/java/org/springblade/system/user/util/AesInfoUtil.java

@@ -1,6 +1,7 @@
 package org.springblade.system.user.util;
 
 import com.alibaba.fastjson.JSONObject;
+import com.alibaba.nacos.common.utils.MD5Utils;
 import org.apache.commons.codec.binary.Base64;
 import org.apache.http.HttpEntity;
 import org.apache.http.client.methods.CloseableHttpResponse;
@@ -178,4 +179,5 @@ public class AesInfoUtil {
         response.close();
         return body;
     }
+
 }