Quellcode durchsuchen

Merge remote-tracking branch 'origin/master'

110 vor 1 Jahr
Ursprung
Commit
a6b79141ff

+ 1 - 0
itdmServer/jeecg-boot-base-core/src/main/java/org/jeecg/config/shiro/ShiroConfig.java

@@ -99,6 +99,7 @@ public class ShiroConfig {
         filterChainDefinitionMap.put("/sys/getQrcodeToken/**", "anon"); //监听扫码
         filterChainDefinitionMap.put("/sys/checkAuth", "anon"); //授权接口排除
 
+        filterChainDefinitionMap.put("/word/**", "anon"); //word 下载排除
 
         filterChainDefinitionMap.put("/", "anon");
         filterChainDefinitionMap.put("/doc.html", "anon");

+ 16 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/baogao/controller/ItdmBaogaoController.java

@@ -23,6 +23,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
+import org.jeecg.modules.baogao.vo.ItdmBaogaoVO;
 import org.jeecg.modules.moban.entity.ItdmMoban;
 import org.jeecg.modules.weituo.entity.ItdmWeituoInfo;
 import org.jeecg.modules.weituo.entity.ItdmWeituoYangpin;
@@ -147,6 +148,21 @@ public class ItdmBaogaoController extends JeecgController<ItdmBaogao, IItdmBaoga
 
 
 
+    @ApiOperation(value = "onlyoffice 所需数据", notes = "onlyoffice 所需数据")
+
+
+    @GetMapping(value = "/wordById")
+    public  Result<ItdmBaogaoVO>  wordById(@RequestParam(name = "id", required = true) String id) {
+        ItdmBaogaoVO itdmBaogao = itdmBaogaoService.wordById(id);
+
+        if (itdmBaogao == null) {
+            return Result.error("未找到对应数据");
+        }
+        return Result.OK(itdmBaogao);
+    }
+
+
+
     @GetMapping(value = "/weituo/list")
     public Result<List<ItdmWeituoInfo>> queryweituoList() {
         List<ItdmWeituoInfo> pageList = itdmBaogaoService.queryweituoList();

+ 6 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/baogao/service/IItdmBaogaoService.java

@@ -4,14 +4,17 @@ import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.apache.poi.ss.formula.functions.T;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.baogao.dto.ItdmBaogaoCreateDTO;
 import org.jeecg.modules.baogao.entity.ItdmBaogao;
 import com.baomidou.mybatisplus.extension.service.IService;
 import org.jeecg.modules.baogao.vo.ItdmBaogaoListVO;
+import org.jeecg.modules.baogao.vo.ItdmBaogaoVO;
 import org.jeecg.modules.moban.entity.ItdmMoban;
 import org.jeecg.modules.weituo.entity.ItdmWeituoInfo;
 import org.jeecg.modules.weituo.entity.ItdmWeituoYangpin;
 import org.jeecg.modules.weituo.entity.ItdmWeituoYangpinExtend;
+import org.springframework.web.bind.annotation.RequestParam;
 
 import java.util.List;
 
@@ -40,4 +43,7 @@ public interface IItdmBaogaoService extends IService<ItdmBaogao> {
     void createBaogao(ItdmBaogaoCreateDTO itdmBaogao);
 
 
+    ItdmBaogaoVO wordById(String id);
+
+
 }

+ 36 - 4
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/baogao/service/impl/ItdmBaogaoServiceImpl.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import org.jeecg.common.constant.SymbolConstant;
 import org.jeecg.config.JeecgBaseConfig;
 import org.jeecg.modules.baogao.convert.BaogaoConvert;
 import org.jeecg.modules.baogao.dto.ItdmBaogaoCreateDTO;
@@ -13,6 +14,7 @@ import org.jeecg.modules.baogao.mapper.ItdmBaogaoMapper;
 import org.jeecg.modules.baogao.service.IItdmBaogaoService;
 import org.jeecg.modules.baogao.util.PoiTiUtils;
 import org.jeecg.modules.baogao.vo.ItdmBaogaoListVO;
+import org.jeecg.modules.baogao.vo.ItdmBaogaoVO;
 import org.jeecg.modules.chuanganqi.entity.ItdmChuanganqi;
 import org.jeecg.modules.chuanganqi.mapper.ItdmChuanganqiMapper;
 import org.jeecg.modules.itdmDevice.entity.ItdmDevice;
@@ -157,15 +159,16 @@ public class ItdmBaogaoServiceImpl extends ServiceImpl<ItdmBaogaoMapper, ItdmBao
 
         ItdmMoban itdmMoban = mobanMapper.selectById(dto.getBaogaoType());
 
-        String fileName = jeecgBaseConfig.getPath().getUpload() + File.separator + "word" + File.separator + System.currentTimeMillis() + ".docx";
-        FileUtil.touch(fileName);
+        String fileName =  "word" + File.separator + System.currentTimeMillis() + ".docx";
+        String filePath = jeecgBaseConfig.getPath().getUpload() + File.separator +fileName;
+        FileUtil.touch(filePath);
 
 
         try {
             Map map = getMap(dto, itdmWeituoInfo, yangpins, testItems, getChuanganqiList(dto.getTestItemsIds()), getDeviceList(dto.getTestItemsIds()));
 
             PoiTiUtils.create(jeecgBaseConfig.getPath().getUpload() + File.separator + itdmMoban.getFilePath(), map,
-                    new FileOutputStream(fileName));
+                    new FileOutputStream(filePath));
         } catch (IOException e) {
             throw new RuntimeException(e);
         } catch (ParseException e) {
@@ -173,7 +176,12 @@ public class ItdmBaogaoServiceImpl extends ServiceImpl<ItdmBaogaoMapper, ItdmBao
         }
 
 
-        itdmBaogao.setFilePath(fileName);
+        if (fileName.contains(SymbolConstant.DOUBLE_BACKSLASH)) {
+            itdmBaogao.setFilePath(fileName.replace(SymbolConstant.DOUBLE_BACKSLASH, SymbolConstant.SINGLE_SLASH));
+        }else{
+            itdmBaogao.setFilePath(fileName);
+
+        }
 
         this.baseMapper.insert(itdmBaogao);
     }
@@ -265,4 +273,28 @@ public class ItdmBaogaoServiceImpl extends ServiceImpl<ItdmBaogaoMapper, ItdmBao
         return jeecgBaseConfig.getPath().getUpload() + File.separator + filepath;
     }
 
+
+    @Override
+    public ItdmBaogaoVO wordById(String id) {
+        ItdmBaogao baoVo = this.baseMapper.selectById(id);
+
+        String filepath = baoVo.getFilePath();
+
+        String key = FileUtil.mainName(filepath);
+        String fileType = FileUtil.extName(filepath);
+        String url = filepath;
+        String title = FileUtil.getName(filepath);
+
+
+        return new ItdmBaogaoVO(key, url,fileType, title);
+    }
+
+
+    public static void main(String[] args) {
+        String s = "temap\\user.docx";
+        System.out.println(s.replace(SymbolConstant.DOUBLE_BACKSLASH, SymbolConstant.SINGLE_SLASH));
+
+
+        System.out.println(FileUtil.mainName(s));
+    }
 }

+ 26 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/baogao/vo/ItdmBaogaoVO.java

@@ -0,0 +1,26 @@
+package org.jeecg.modules.baogao.vo;
+
+import com.fasterxml.jackson.annotation.JsonFormat;
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.io.Serializable;
+import java.util.Date;
+
+/**
+ * @Description: 报告生成
+ * @Author: jeecg-boot
+ * @Date: 2023-05-19
+ * @Version: V1.0
+ */
+@Data
+@NoArgsConstructor
+
+@AllArgsConstructor
+public class ItdmBaogaoVO implements Serializable {
+    private  String key;
+    private  String url;
+    private String fileType;
+    private String title;
+}

+ 55 - 21
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/controller/ItdmGongdanDetailController.java

@@ -1,27 +1,27 @@
 package org.jeecg.modules.itdmGongDan.controller;
 
-import java.util.Arrays;
-import javax.servlet.http.HttpServletRequest;
-import javax.servlet.http.HttpServletResponse;
-import org.jeecg.common.api.vo.Result;
-import org.jeecg.common.system.query.QueryGenerator;
-import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
-import org.jeecg.modules.itdmGongDan.service.IItdmGongdanDetailService;
-
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
 import lombok.extern.slf4j.Slf4j;
-
+import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.aspect.annotation.AutoLog;
 import org.jeecg.common.system.base.controller.JeecgController;
+import org.jeecg.common.system.query.QueryGenerator;
+import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
+import org.jeecg.modules.itdmGongDan.service.IItdmGongdanDetailService;
+import org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.servlet.ModelAndView;
-import io.swagger.annotations.Api;
-import io.swagger.annotations.ApiOperation;
-import org.jeecg.common.aspect.annotation.AutoLog;
 
- /**
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Arrays;
+
+/**
  * @Description: 工单detail
  * @Author: jeecg-boot
  * @Date:   2023-05-21
@@ -47,15 +47,49 @@ public class ItdmGongdanDetailController extends JeecgController<ItdmGongdanDeta
 	//@AutoLog(value = "工单detail-分页列表查询")
 	@ApiOperation(value="工单detail-分页列表查询", notes="工单detail-分页列表查询")
 	@GetMapping(value = "/list")
-	public Result<IPage<ItdmGongdanDetail>> queryPageList(ItdmGongdanDetail itdmGongdanDetail,
-								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
-								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
-								   HttpServletRequest req) {
-		QueryWrapper<ItdmGongdanDetail> queryWrapper = QueryGenerator.initQueryWrapper(itdmGongdanDetail, req.getParameterMap());
-		Page<ItdmGongdanDetail> page = new Page<ItdmGongdanDetail>(pageNo, pageSize);
-		IPage<ItdmGongdanDetail> pageList = itdmGongdanDetailService.page(page, queryWrapper);
-		return Result.OK(pageList);
+	public Result<Page<ItdmGongdanDetailListVO>> queryPageList(ItdmGongdanDetail itdmGongdanDetail,
+															   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+															   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+															   HttpServletRequest req) {
+		Result<Page<ItdmGongdanDetailListVO>> result = new Result<Page<ItdmGongdanDetailListVO>>();
+		Page<ItdmGongdanDetailListVO> pageList = new Page<>(pageNo,pageSize);
+		pageList = itdmGongdanDetailService.getDetailList(pageList,"");//通知公告消息
+		result.setSuccess(true);
+		result.setResult(pageList);
+		return result;
 	}
+//	public Result<Page<ItdmGongdanDetail>> queryPageList(ItdmGongdanDetail itdmGongdanDetail,
+//								   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+//								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+//								   HttpServletRequest req) {
+//		Result<Page<ItdmGongdanDetail>> result = new Result<Page<ItdmGongdanDetail>>();
+//		Page<ItdmGongdanDetail> pageList = new Page<>(pageNo,pageSize);
+//		pageList = itdmGongdanDetailService.getDetailList(pageList,"");//通知公告消息
+//		result.setSuccess(true);
+//		result.setResult(pageList);
+//		return result;
+//	}
+
+
+
+//	@ApiOperation(value="工单detail-分页列表查询", notes="工单detail-分页列表查询")
+//	@GetMapping(value = "/list")
+//	public Result<IPage<ItdmGongdanDetail>> queryPageList(ItdmGongdanDetail itdmGongdanDetail,
+//														  @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
+//														  @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
+//														  HttpServletRequest req) {
+//		QueryWrapper<ItdmGongdanDetail> queryWrapper = QueryGenerator.initQueryWrapper(itdmGongdanDetail, req.getParameterMap());
+////		queryWrapper.select().orderByAsc("work_date");
+//		Page<ItdmGongdanDetail> page = new Page<ItdmGongdanDetail>(pageNo, pageSize);
+//		IPage<ItdmGongdanDetail> pageList = itdmGongdanDetailService.page(page, queryWrapper);
+//		return Result.OK(pageList);
+////		IPage<ItdmGongdanDetailListVO> pageVOList = pageList.convert(result -> {
+////			ItdmGongdanDetailListVO vo = new ItdmGongdanDetailListVO();
+////			BeanUtil.copyProperties(result, vo);
+////			return vo;
+////		});
+////		return Result.OK(pageVOList);
+//	}
 
 	/**
 	 *   添加

+ 5 - 1
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/ItdmGongdanDetailMapper.java

@@ -1,7 +1,11 @@
 package org.jeecg.modules.itdmGongDan.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO;
+
+import java.util.List;
 
 /**
  * @Description: 工单detail
@@ -10,5 +14,5 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  * @Version: V1.0
  */
 public interface ItdmGongdanDetailMapper extends BaseMapper<ItdmGongdanDetail> {
-
+    List<ItdmGongdanDetailListVO> getDetailList (Page<ItdmGongdanDetailListVO> page, String weituoId);
 }

+ 25 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/mapper/xml/ItdmGongdanDetailMapper.xml

@@ -2,4 +2,29 @@
 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
 <mapper namespace="org.jeecg.modules.itdmGongDan.mapper.ItdmGongdanDetailMapper">
 
+    <resultMap id="ItdmGongdanDetailListVO" type="org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO" >
+        <result column="id" property="id" jdbcType="VARCHAR"/>
+        <result column="wo_id" property="woId" jdbcType="VARCHAR"/>
+        <result column="shiji_shebei_id" property="shijiShebeiId" jdbcType="VARCHAR"/>
+        <result column="shiji_shiiyan_type" property="shijiShiiyanType" jdbcType="VARCHAR"/>
+        <result column="work_date" property="workDate" jdbcType="DATE"/>
+        <result column="start_time" property="startTime" jdbcType="VARCHAR"/>
+        <result column="end_time" property="endTime" jdbcType="VARCHAR"/>
+        <result column="shiji_work_date" property="shijiWorkDate" jdbcType="VARCHAR"/>
+        <result column="shiji_start_time" property="shijiStartTime" jdbcType="VARCHAR"/>
+        <result column="shiji_end_time" property="shijiEndTime" jdbcType="VARCHAR"/>
+        <result column="chuanganqi" property="chuanganqi" jdbcType="VARCHAR"/>
+    </resultMap>
+
+
+    <select id="getDetailList" parameterType="String"  resultMap="ItdmGongdanDetailListVO">
+        select d.id, d.wo_id, d.shiji_shebei_id, d.shiji_shiiyan_type, d.work_date, d.start_time, d.end_time,
+               d.shiji_work_date, d.shiji_start_time, d.shiji_end_time, d.chuanganqi,
+               m.jihua_shiyan_id, m.test_items_id, m.weituo_yangpin_id, m.shebei_id, t.weituo_id
+        from itdm_gongdan_detail d
+left join itdm_gongdan_master m on d.wo_id = m.id
+left join itdm_test_plan t on m.jihua_shiyan_id = t.id
+    </select>
+
+
 </mapper>

+ 4 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/IItdmGongdanDetailService.java

@@ -1,7 +1,9 @@
 package org.jeecg.modules.itdmGongDan.service;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO;
 
 /**
  * @Description: 工单detail
@@ -11,4 +13,6 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IItdmGongdanDetailService extends IService<ItdmGongdanDetail> {
 
+    public Page<ItdmGongdanDetailListVO> getDetailList(Page<ItdmGongdanDetailListVO> page, String weituoId);
+
 }

+ 11 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmGongDan/service/impl/ItdmGongdanDetailServiceImpl.java

@@ -1,8 +1,11 @@
 package org.jeecg.modules.itdmGongDan.service.impl;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
 import org.jeecg.modules.itdmGongDan.mapper.ItdmGongdanDetailMapper;
 import org.jeecg.modules.itdmGongDan.service.IItdmGongdanDetailService;
+import org.jeecg.modules.itdmGongDan.vo.ItdmGongdanDetailListVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
@@ -16,4 +19,12 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class ItdmGongdanDetailServiceImpl extends ServiceImpl<ItdmGongdanDetailMapper, ItdmGongdanDetail> implements IItdmGongdanDetailService {
 
+    @Autowired
+    @SuppressWarnings("all")
+    private ItdmGongdanDetailMapper itdmGongdanDetailMapper;
+
+    public Page<ItdmGongdanDetailListVO> getDetailList(Page<ItdmGongdanDetailListVO> page, String weituoId) {
+        return page.setRecords(itdmGongdanDetailMapper.getDetailList(page, weituoId));
+    }
+
 }

+ 75 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/word/WordController.java

@@ -0,0 +1,75 @@
+package org.jeecg.modules.word;
+
+import com.alibaba.fastjson.JSONObject;
+import com.auth0.jwt.JWT;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.config.JeecgBaseConfig;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.io.*;
+import java.net.URL;
+import java.security.Signer;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.Scanner;
+
+@RestController
+@RequestMapping("word")
+public class WordController {
+
+
+    @Autowired
+    private ObjectMapper objectMapper;
+
+    @Autowired
+    private JeecgBaseConfig jeecgBaseConfig;
+
+
+    @PostMapping("/save")
+    @ResponseBody
+    public void save(HttpServletRequest request, HttpServletResponse response) throws IOException {
+
+
+        PrintWriter writer = response.getWriter();
+
+        Scanner scanner = new Scanner(request.getInputStream()).useDelimiter("\\A");
+        String body = scanner.hasNext() ? scanner.next() : "";
+
+        Map<String, Object> map = objectMapper.readValue(body, objectMapper.getTypeFactory().constructMapType(HashMap.class, String.class, Object.class));
+
+
+        System.out.println(map);
+        if ((Integer) map.get("status") == 2||(Integer) map.get("status") ==6&&(Integer) map.get("status") ==7) {
+            String downloadUri = (String) map.get("url");
+            String fileName = map.get("key") + "." + map.get("filetype");
+
+            URL url = new URL(downloadUri);
+            java.net.HttpURLConnection connection = (java.net.HttpURLConnection) url.openConnection();
+            InputStream stream = connection.getInputStream();
+            String pathForSave = jeecgBaseConfig.getPath().getUpload() + File.separator + "word" + File.separator + fileName;
+
+            File savedFile = new File(pathForSave);
+            try (FileOutputStream out = new FileOutputStream(savedFile)) {
+                int read;
+                final byte[] bytes = new byte[1024];
+                while ((read = stream.read(bytes)) != -1) {
+                    out.write(bytes, 0, read);
+                }
+
+                out.flush();
+            }
+
+            connection.disconnect();
+        }
+        writer.write("{\"error\":0}");
+    }
+
+
+
+}
+
+