Browse Source

fix 数据确认 委托单 下载

32197351@qq.com 1 year ago
parent
commit
ea5a60df0f

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

@@ -40,7 +40,7 @@ public interface IItdmBaogaoService extends IService<ItdmBaogao> {
     Page<ItdmBaogaoListVO> pageVO(Page<ItdmBaogao> pageVO, QueryWrapper<ItdmBaogao> queryWrapper);
 
 
-    void createBaogao(ItdmBaogaoCreateDTO itdmBaogao);
+    String createBaogao(ItdmBaogaoCreateDTO itdmBaogao);
 
 
     ItdmBaogaoVO wordById(String id);

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

@@ -134,7 +134,7 @@ public class ItdmBaogaoServiceImpl extends ServiceImpl<ItdmBaogaoMapper, ItdmBao
 
 
     @Override
-    public void createBaogao(ItdmBaogaoCreateDTO dto) {
+    public String createBaogao(ItdmBaogaoCreateDTO dto) {
         ItdmWeituoInfo itdmWeituoInfo = itdmWeituoInfoMapper.selectById(dto.getWeituoId());
         ItdmBaogao itdmBaogao = BaogaoConvert.INSTANCE.convert(dto);
         itdmBaogao.setWeituoClient(itdmWeituoInfo.getWeituoClient());
@@ -182,6 +182,7 @@ public class ItdmBaogaoServiceImpl extends ServiceImpl<ItdmBaogaoMapper, ItdmBao
         }
 
         this.baseMapper.insert(itdmBaogao);
+        return filePath;
     }
 
 

+ 14 - 2
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/gongdandetail/controller/ItdmGongdanQuerenController.java

@@ -99,11 +99,23 @@ public class ItdmGongdanQuerenController extends JeecgController<ItdmGongdanDeta
         return Result.OK(detailListByWoId);
     }
 
+
+
+    @GetMapping(value = "/gongdanShebeiListByWoId")
+    @ApiOperation(value = "工单detail-获取试验设备", notes = "工单detail-获取试验设备")
+
+    public Result<List<Map<String,String>>> gongdanShebeiList(String woId, String riqi,String shiyanType) {
+        List<Map<String,String>> detailListByWoId = itdmGongdanDetailService.gongdanShebeiList(woId, riqi,shiyanType);
+        return Result.OK(detailListByWoId);
+    }
+
+
     @GetMapping(value = "/gongdanDateListByWoId1")
     @ApiOperation(value = "工单detail-获取试验时间", notes = "工单detail-获取试验时间")
 
-    public Result<Map<String, String>> gongdanDateList1(String woId, String riqi,String shiyanType) {
-        Map<String, String> detailListByWoId = itdmGongdanDetailService.getDetailListByWoId1(woId, riqi, shiyanType);
+    public Result<Map<String, String>> gongdanDateList1(String woId, String riqi, String shiyanType, String shebeiId) {
+
+        Map<String, String> detailListByWoId = itdmGongdanDetailService.getDetailListByWoId1(woId, riqi, shiyanType, shebeiId);
         return Result.OK(detailListByWoId);
     }
 

+ 9 - 6
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/gongdandetail/service/IItdmGongdanQuerenService.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.gongdandetail.service;
 
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.common.api.vo.Result;
 import org.jeecg.modules.gongdandetail.dto.ItdmGongdanDetailEditDTO;
 import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
 
@@ -11,7 +12,7 @@ import java.util.Map;
 /**
  * @Description: 工单detail
  * @Author: jeecg-boot
- * @Date:   2023-05-21
+ * @Date: 2023-05-21
  * @Version: V1.0
  */
 public interface IItdmGongdanQuerenService extends IService<ItdmGongdanDetail> {
@@ -20,15 +21,17 @@ public interface IItdmGongdanQuerenService extends IService<ItdmGongdanDetail> {
     void queren(ItdmGongdanDetailEditDTO itdmGongdanDetail) throws ParseException;
 
 
-
     public List<String> getByweituoId(String weituoId);
 
-    public  List<Map<String,String>> getDetailListByWoId(String woId, String riqi);
+    public List<Map<String, String>> getDetailListByWoId(String woId, String riqi);
+
+    public Map<String, String> getDetailListByWoId1(String woId, String riqi, String shiyanType, String shebeiId);
+
+    public List<String> getWorkDateByWeituoNO(String weituoNo);
 
-    public Map<String, String> getDetailListByWoId1(String woId, String riqi, String shiyanType);
-    public  List<String> getWorkDateByWeituoNO(String weituoNo);
+    public List<String> getWoIdByWeituoIdAndWordDate(String weituoNo, String work_date);
 
-    public  List<String> getWoIdByWeituoIdAndWordDate(String weituoNo,String work_date);
 
+    List<Map<String, String>> gongdanShebeiList(String woId, String riqi, String shiyanType);
 
 }

+ 36 - 2
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/gongdandetail/service/impl/ItdmGongdanQuerenServiceImpl.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.modules.gongdandetail.convert.GongdanDetailConvert;
 import org.jeecg.modules.gongdandetail.dto.ItdmGongdanDetailEditDTO;
 import org.jeecg.modules.gongdandetail.service.IItdmGongdanQuerenService;
+import org.jeecg.modules.itdmDevice.entity.ItdmDevice;
+import org.jeecg.modules.itdmDevice.mapper.ItdmDeviceMapper;
 import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanDetail;
 import org.jeecg.modules.itdmGongDan.entity.ItdmGongdanMaster;
 import org.jeecg.modules.itdmGongDan.mapper.ItdmGongdanDetailMapper;
@@ -48,6 +50,9 @@ public class ItdmGongdanQuerenServiceImpl extends ServiceImpl<ItdmGongdanDetailM
 
     private SysDictMapper sysDictItemMapper;
 
+    @Autowired
+    private ItdmDeviceMapper itdmDeviceMapper;
+
     @Override
     public void queren(ItdmGongdanDetailEditDTO itdmGongdanDetail) throws ParseException {
 
@@ -121,16 +126,18 @@ public class ItdmGongdanQuerenServiceImpl extends ServiceImpl<ItdmGongdanDetailM
 
 
     @Override
-    public Map<String, String> getDetailListByWoId1(String woId, String riqi, String shiyanType) {
+    public Map<String, String> getDetailListByWoId1(String woId, String riqi, String shiyanType, String shebeiId) {
+
         QueryWrapper<ItdmGongdanDetail> queryWrapper = new QueryWrapper<ItdmGongdanDetail>();
         queryWrapper.eq("wo_id", woId);
         queryWrapper.eq("shiji_work_date", riqi);
+        queryWrapper.eq("shiji_shebei_id", shebeiId);
         queryWrapper.apply("FIND_IN_SET('" + shiyanType + "',shiji_shiiyan_type)");
         List<ItdmGongdanDetail> list = itdmGongdanDetailMapper.selectList(queryWrapper);
         Map<String, String> map = new HashMap<>();
         map.put("shiyanKaishitime", "00:00");
         map.put("shiyanJieshutime", "23:59");
-        if (list.size() > 0 && list.size() <= 1) {
+        if (list.size() == 1) {
 
             map.put("shiyanKaishitime", list.get(0).getShijiStartTime());
             map.put("shiyanJieshutime", list.get(0).getShijiEndTime());
@@ -148,6 +155,33 @@ public class ItdmGongdanQuerenServiceImpl extends ServiceImpl<ItdmGongdanDetailM
         return itdmTestPlanMapper.getWoIdByWeituoIdAndWordDate(weituoNo, work_date);
     }
 
+
+    @Override
+    public List<Map<String, String>> gongdanShebeiList(String woId, String riqi, String shiyanType) {
+        QueryWrapper<ItdmGongdanDetail> queryWrapper = new QueryWrapper<ItdmGongdanDetail>();
+        queryWrapper.eq("wo_id", woId);
+        queryWrapper.eq("shiji_work_date", riqi);
+        queryWrapper.apply("FIND_IN_SET('" + shiyanType + "',shiji_shiiyan_type)");
+        List<ItdmGongdanDetail> list = itdmGongdanDetailMapper.selectList(queryWrapper);
+
+        List<Map<String, String>> mapList = new ArrayList<>();
+
+        for (ItdmGongdanDetail i : list) {
+            ItdmDevice itdmDevice = itdmDeviceMapper.selectById(i.getShijiShebeiId());
+
+            if (itdmDevice != null) {
+                Map<String, String> map = new HashMap<>();
+
+                map.put("type", i.getShijiShebeiId());
+                map.put("name", itdmDevice.getDeviceName());
+                mapList.add(map);
+            }
+
+        }
+
+        return mapList;
+    }
+
     private Date getMax(List<ItdmGongdanDetail> list, SimpleDateFormat simpleDate, SimpleDateFormat simpleDate1) {
 
 

+ 1 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmgongdanshuju/dto/ItdmGongdanDto.java

@@ -35,6 +35,7 @@ public class ItdmGongdanDto implements Serializable {
 	/**试验结束时间*/
     private String shiyanJieshutime;
 
+    private String shebeiId;
 
     private String riqi;
 

+ 2 - 10
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/itdmgongdanshuju/service/impl/ItdmGongdanShujuServiceImpl.java

@@ -43,8 +43,6 @@ import java.util.stream.Collectors;
 public class ItdmGongdanShujuServiceImpl extends ServiceImpl<ItdmGongdanShujuMapper, ItdmGongdanShuju> implements ItdmGongdanShujuService {
 
     @Autowired
-    ItdmGongdanDetail1Mapper itdmGongdanDetailMapper;
-    @Autowired
     ItdmGongdanShujuMapper itdmGongdanShujuMapper;
 
     @Autowired
@@ -62,20 +60,14 @@ public class ItdmGongdanShujuServiceImpl extends ServiceImpl<ItdmGongdanShujuMap
                 .eq("wo_id", itdmGongdanDto.getWoId()).eq("shiyan_date_time", itdmGongdanDto.getRiqi()));
 
         if (detail.size() > 0) {
-            throw new JeecgBootException("当前工单已有数据,不能重复生成数据");
+            throw new JeecgBootException("当前工单当前有数据,不能重复生成数据(请检查时间是否重合)");
         }
 
         try {
-            // todo 如果一天 有俩个呢 如何确定 这段时间 唯一个设备
-            ItdmGongdanDetail itdmGongdanDetail = itdmGongdanDetailMapper.selectOne(Wrappers.lambdaQuery(ItdmGongdanDetail.class)
-                    .eq(ItdmGongdanDetail::getWoId, itdmGongdanDto.getWoId()).eq(ItdmGongdanDetail::getShijiWorkDate, itdmGongdanDto.getRiqi())
-                    .apply("FIND_IN_SET('" + itdmGongdanDto.getShiyanType() + "',shiji_shiiyan_type)")
-
-                    .last(" limit 1"));
 
             String startTime = itdmGongdanDto.getShiyanKaishitime();
             String endTime = itdmGongdanDto.getShiyanJieshutime();
-            String shijiShebeiId = itdmGongdanDetail.getShijiShebeiId();
+            String shijiShebeiId = itdmGongdanDto.getShebeiId();
             String ShijiWorkDate = itdmGongdanDto.getRiqi();
 
             String startDateTime = ShijiWorkDate + " " + startTime + ":00";

+ 11 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/weituo/controller/ItdmWeituoInfoController.java

@@ -24,6 +24,7 @@ import org.springframework.web.servlet.ModelAndView;
 
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.text.SimpleDateFormat;
 import java.util.*;
 
@@ -258,4 +259,14 @@ public class ItdmWeituoInfoController extends JeecgController<ItdmWeituoInfo, II
 		 }
 	 }
 
+
+
+	@GetMapping("/word")
+	@ApiOperation(value = "委托单导出", notes = "委托单导出")
+
+	public void word(String  id, HttpServletResponse response) throws IOException {
+		itdmWeituoInfoService.word(id, response);
+	}
+
+
 }

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

@@ -7,6 +7,8 @@ import org.jeecg.modules.weituo.entity.ItdmWeituoInfo;
 import org.jeecg.modules.weituo.entity.ItdmWeituoYangpin;
 import org.jeecg.modules.weituo.vo.ItdmWeituoInfoInfoVO;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.IOException;
 import java.util.List;
 
 /**
@@ -37,6 +39,10 @@ public interface IItdmWeituoInfoService extends IService<ItdmWeituoInfo> {
 
     void deleteById(String id);
     void deleteByIds(List<String> id);
+
+
+    public void word(String id, HttpServletResponse response) throws IOException;
+
 }
 
 

+ 43 - 0
itdmServer/module-iTDM/src/main/java/org/jeecg/modules/weituo/service/impl/ItdmWeituoInfoServiceImpl.java

@@ -1,10 +1,13 @@
 package org.jeecg.modules.weituo.service.impl;
 
+import cn.hutool.core.io.IoUtil;
 import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import org.jeecg.common.exception.JeecgBootException;
+import org.jeecg.modules.baogao.dto.ItdmBaogaoCreateDTO;
+import org.jeecg.modules.baogao.service.IItdmBaogaoService;
 import org.jeecg.modules.itdmFirstPage.entity.ItdmTask;
 import org.jeecg.modules.itdmFirstPage.mapper.ItdmTaskMapper;
 import org.jeecg.modules.weituo.common.ShenheStatus;
@@ -23,6 +26,13 @@ import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
 
+import javax.servlet.http.HttpServletResponse;
+import java.io.FileInputStream;
+import java.io.IOException;
+import java.io.InputStream;
+import java.io.OutputStream;
+import java.nio.file.Files;
+import java.nio.file.Paths;
 import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
@@ -50,6 +60,10 @@ public class ItdmWeituoInfoServiceImpl extends ServiceImpl<ItdmWeituoInfoMapper,
     @Autowired
     private ItdmTaskMapper taskMapper;
 
+    @Autowired
+
+    private IItdmBaogaoService itdmBaogaoService;
+
     /**根据委托单位查询委托信息列表*/
     public List<ItdmWeituoInfo> selectWTListByClient(String weituoClient){
         return itdmWeituoInfoMapper.selectWTListByClient(weituoClient);
@@ -188,4 +202,33 @@ public class ItdmWeituoInfoServiceImpl extends ServiceImpl<ItdmWeituoInfoMapper,
 
 
     }
+
+
+    @Override
+    public void word(String id, HttpServletResponse response) throws IOException {
+        ItdmBaogaoCreateDTO description=new ItdmBaogaoCreateDTO();
+        description.setWeituoId(id);
+        List<String> sampleIds = yangpinMapper.selectList(Wrappers.lambdaQuery(ItdmWeituoYangpin.class).eq(ItdmWeituoYangpin::getWeituoId, id)).stream().map(ItdmWeituoYangpin::getId).collect(Collectors.toList());
+        List<String> testItemsIds = yangpinExtendMapper.selectList(Wrappers.lambdaQuery(ItdmWeituoYangpinExtend.class).eq(ItdmWeituoYangpinExtend::getWeituoId, id)).stream().map(ItdmWeituoYangpinExtend::getId).collect(Collectors.toList());
+
+        description.setSampleIds(sampleIds);
+
+        description.setTestItemsIds(testItemsIds);
+        description.setBaogaoType("1660819812871245825");
+
+
+        String file = itdmBaogaoService.createBaogao(description);
+
+        response.setContentType("application/octet-stream");
+        response.setHeader("Content-disposition", "attachment;filename=\"" + "out_template.docx" + "\"");
+
+        OutputStream out = response.getOutputStream();
+
+        try (InputStream inputStream = Files.newInputStream(Paths.get(file))) {
+            IoUtil.copy(inputStream, out);
+
+        }
+
+
+    }
 }