Browse Source

实验系统相关bug修改

DengLinLang 6 months ago
parent
commit
c5ab343019
16 changed files with 178 additions and 112 deletions
  1. 4 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSampleDataInfoVO.java
  2. 6 0
      blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSelfInspectionRecordVO.java
  3. 0 4
      blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java
  4. 7 8
      blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java
  5. 1 2
      blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialMaterialController.java
  6. 30 2
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/EntrustInfoMapper.xml
  7. 1 0
      blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSampleInfoMapper.xml
  8. 2 2
      blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialMaterialMobilizationService.java
  9. 5 10
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/EntrustInfoServiceImpl.java
  10. 5 17
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TaskServiceImpl.java
  11. 30 6
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialMaterialMobilizationServiceImpl.java
  12. 16 7
      blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSelfInspectionRecordServiceImpl.java
  13. 11 10
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java
  14. 4 14
      blade-service/blade-e-visa/src/main/java/org/springblade/evisa/service/impl/EVisaServiceImpl.java
  15. 25 24
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java
  16. 31 6
      blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

+ 4 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSampleDataInfoVO.java

@@ -104,5 +104,9 @@ public class TrialSampleDataInfoVO extends TrialSampleInfo {
      */
     @ApiModelProperty(value = "是否留样")
     private String isSample;
+    /**
+     * 入库时间
+     */
+    private String sampleTime;
 
 }

+ 6 - 0
blade-service-api/blade-business-api/src/main/java/org/springblade/business/vo/TrialSelfInspectionRecordVO.java

@@ -29,4 +29,10 @@ public class TrialSelfInspectionRecordVO extends TrialSelfInspectionRecord {
     @ApiModelProperty("原材料检测报告ids(试验记录id)")
     private String rawMaterialIds;
 
+    @ApiModelProperty("委托单名称")
+    private String entrustName;
+
+    @ApiModelProperty("委托单编号")
+    private String entrustNo;
+
 }

+ 0 - 4
blade-service/blade-business/src/main/java/org/springblade/business/controller/EVisaTaskCheckController.java

@@ -1,6 +1,5 @@
 package org.springblade.business.controller;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
@@ -21,7 +20,6 @@ import org.springblade.business.service.IFixedFlowLinkService;
 import org.springblade.business.service.IFixedFlowService;
 import org.springblade.business.service.IInformationQueryService;
 import org.springblade.business.utils.PDFUtil;
-import org.springblade.business.vo.AddContractTreeNodeVO;
 import org.springblade.business.vo.FixedFlowVO;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.tool.api.R;
@@ -33,10 +31,8 @@ import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
-import javax.management.MalformedObjectNameException;
 import java.util.*;
 import java.util.stream.Collectors;
 

+ 7 - 8
blade-service/blade-business/src/main/java/org/springblade/business/controller/InformationWriteQueryController.java

@@ -27,7 +27,6 @@ import org.springblade.business.mapper.InformationQueryMapper;
 import org.springblade.business.service.*;
 import org.springblade.business.utils.FileUtils;
 import org.springblade.business.vo.*;
-import org.springblade.common.constant.ClientIdConstant;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.BaseUtils;
 import org.springblade.common.utils.CommonUtil;
@@ -51,7 +50,6 @@ import org.springblade.manager.feign.*;
 import org.springblade.manager.vo.WbsTreeContractTreeVOS;
 import org.springblade.manager.vo.WbsTreeContractVO8;
 import org.springblade.manager.vo.WbsTreePrivateAddVO;
-//import org.springblade.producer.bean.PushMessage;
 import org.springblade.resource.feign.NewIOSSClient;
 import org.springblade.system.cache.ParamCache;
 import org.springblade.system.entity.DictBiz;
@@ -63,16 +61,13 @@ import org.springframework.dao.EmptyResultDataAccessException;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.jdbc.core.RowMapper;
-import org.springframework.jdbc.core.namedparam.MapSqlParameterSource;
 import org.springframework.scheduling.annotation.Async;
 import org.springframework.web.bind.annotation.*;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.sql.ResultSet;
-import java.sql.ResultSetMetaData;
-import java.sql.SQLException;
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.function.Function;
 import java.util.stream.Collectors;
@@ -1367,7 +1362,11 @@ public class InformationWriteQueryController extends BladeController {
 
                             // 为多单上报 状态修改
                             if(appType!=null && appType == 2L){
-                                String sql = "update u_entrust_info set status = 2 ,sample_status=1 where id = " + startTaskVO.getIds();
+                                //获取当前时间
+                                LocalDateTime now = LocalDateTime.now();
+                                //格式化时间
+                                String nowFormat = now.format(DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"));
+                                String sql = "update u_entrust_info set status = 2 , entrust_time = '"+ nowFormat + "' ,sample_status=1 where id = " + startTaskVO.getIds();
                                 jdbcTemplate.execute(sql);
                             }
                             var = true;

+ 1 - 2
blade-service/blade-business/src/main/java/org/springblade/business/controller/TrialMaterialController.java

@@ -29,7 +29,6 @@ import org.springframework.web.multipart.MultipartFile;
 
 import javax.servlet.http.HttpServletResponse;
 import javax.validation.Valid;
-import java.text.ParseException;
 import java.util.List;
 
 @RestController
@@ -94,7 +93,7 @@ public class TrialMaterialController extends BladeController {
     @ApiOperationSupport(order = 6)
     @ApiOperation(value = "进场材料批量删除", notes = "传入ids")
     public R<Object> mobilizationRemove(@Valid @RequestParam String ids) {
-        return R.status(iTrialMaterialMobilizationService.deleteLogic(Func.toLongList(ids)));
+        return  iTrialMaterialMobilizationService.mobilizationRemove(ids);
     }
 
     @PostMapping("/mobilization/copy")

+ 30 - 2
blade-service/blade-business/src/main/java/org/springblade/business/mapper/EntrustInfoMapper.xml

@@ -87,8 +87,19 @@
                CONCAT_WS('-', resam_start_time, resam_end_time) as resamTime,IF(resam_start_time is NULL,'否','是') as isSample,
                a.repeal_reason as repealReason,a.repeal_time as repealTime,
         (SELECT max(task_status) from u_trial_self_inspection_record c where c.entrust_id = a.id) as entrustStatusName,
-        (SELECT IF((max(task_status)) ='已审批',4,1) from u_trial_self_inspection_record c where c.entrust_id = a.id) as entrustStatus,
-        (SELECT max(c.id) from u_trial_self_inspection_record c where c.entrust_id = a.id) as testId
+        (
+        SELECT
+        CASE
+        WHEN max(c.task_status) = '未上报' THEN 1
+        WHEN max(c.task_status) = '待审批' THEN 3
+        WHEN max(c.task_status) = '已审批' THEN 4
+        ELSE 5
+        END
+        FROM u_trial_self_inspection_record c
+        WHERE c.entrust_id = a.id
+        ) as entrustStatus,
+        (SELECT max(c.id) from u_trial_self_inspection_record c where c.entrust_id = a.id) as testId ,a.entrust_time as entrustTime,
+        a.sample_time as sampleTime
         from u_entrust_info a , u_trial_sample_info b
         where  a.sample_id=b.id and a.is_deleted = 0 and b.is_deleted=0
           and a.sample_status=#{param2.status}
@@ -101,6 +112,23 @@
         <if test="param2.contractId != null and param2.contractId != ''">
             AND a.contract_id = #{param2.contractId}
         </if>
+        <if test="param2.startTime != null and param2.endTime != ''" >
+            <if test="param2.status == 1">
+                AND #{param2.startTime} <![CDATA[<]]> a.entrust_time And  a.entrust_time <![CDATA[<]]> #{param2.endTime}
+            </if>
+            <if test="param2.status == 2">
+                AND #{param2.startTime} <![CDATA[<]]> a.sample_time And  a.sample_time <![CDATA[<]]> #{param2.endTime}
+            </if>
+            <if test="param2.status == 4">
+                AND #{param2.startTime} <![CDATA[<]]> b.create_time And  b.create_time <![CDATA[<]]> #{param2.endTime}
+            </if>
+            <if test="param2.status == 5">
+                AND #{param2.startTime} <![CDATA[<]]> a.resam_start_time And  a.resam_start_time <![CDATA[<]]> #{param2.endTime}
+            </if>
+            <if test="param2.status == 6">
+                AND #{param2.startTime} <![CDATA[<]]> a.repeal_time And  a.repeal_time <![CDATA[<]]> #{param2.endTime}
+            </if>
+        </if>
 
     </select>
 

+ 1 - 0
blade-service/blade-business/src/main/java/org/springblade/business/mapper/TrialSampleInfoMapper.xml

@@ -66,5 +66,6 @@
                     or a.specification_number like CONCAT(CONCAT('%', #{param2.queryValue}), '%')
             )
         </if>
+        order by a.sampling_date desc
     </select>
 </mapper>

+ 2 - 2
blade-service/blade-business/src/main/java/org/springblade/business/service/ITrialMaterialMobilizationService.java

@@ -7,10 +7,9 @@ import org.springblade.business.excel.TrialMaterialMobilizationExcel;
 import org.springblade.business.vo.TrialMaterialMobilizationVO;
 import org.springblade.business.vo.TrialSamplingRecordVO;
 import org.springblade.core.mp.base.BaseService;
-import org.springframework.web.bind.annotation.RequestParam;
+import org.springblade.core.tool.api.R;
 
 import javax.servlet.http.HttpServletResponse;
-import java.text.ParseException;
 import java.util.List;
 
 
@@ -36,4 +35,5 @@ public interface ITrialMaterialMobilizationService extends BaseService<TrialMate
 
     boolean uploadFile(String id, Integer type, String url);
 
+    R<Object> mobilizationRemove(String ids);
 }

+ 5 - 10
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/EntrustInfoServiceImpl.java

@@ -17,18 +17,14 @@
 package org.springblade.business.service.impl;
 
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import lombok.AllArgsConstructor;
-import org.jsoup.select.Elements;
-import org.springblade.business.dto.TrialSelfInspectionRecordDTO;
 import org.springblade.business.entity.EntrustInfo;
-import org.springblade.business.entity.TrialSampleInfo;
-import org.springblade.business.service.ITrialSampleInfoService;
-import org.springblade.business.vo.EntrustDataInfoVO;
-import org.springblade.business.vo.EntrustInfoVO;
 import org.springblade.business.mapper.EntrustInfoMapper;
 import org.springblade.business.service.IEntrustInfoService;
+import org.springblade.business.vo.EntrustDataInfoVO;
+import org.springblade.business.vo.EntrustInfoVO;
 import org.springblade.business.vo.LoadDataInfoVO;
 import org.springblade.business.vo.TrialSampleDataInfoVO;
 import org.springblade.core.mp.base.BaseServiceImpl;
@@ -39,8 +35,6 @@ import org.springblade.manager.feign.ExcelTabClient;
 import org.springblade.manager.feign.WbsTreePrivateClient;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springframework.transaction.annotation.Transactional;
 
 import java.util.List;
 import java.util.Map;
@@ -107,6 +101,8 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 		EntrustInfo entrustInfo = baseMapper.selectOne(Wrappers.<EntrustInfo>query().lambda().eq(EntrustInfo::getSampleId, sampleId).eq(EntrustInfo::getContractId,contractId));
 		if(entrustInfo==null && Func.isEmpty(entrustInfo)){
 			entrustInfo = new EntrustInfo();
+			//委托单未上报不进入样品流转 状态设置为0
+			entrustInfo.setSampleStatus("0");
 		}
 		WbsTreePrivate wbsTreePrivate = wbsTreePrivateClient.getNodeByPrimaryKeyId(nodeErTreeId);
 
@@ -139,7 +135,6 @@ public class EntrustInfoServiceImpl extends BaseServiceImpl<EntrustInfoMapper, E
 		dataInfo.put("groupId",entrustInfo.getId());
 		dataInfo.put("pkeyId", dataInfo.getString("nodeErTreeId"));
 		excelTabClient.saveEntrustTabData(dataInfo);
-
 		return R.success("操作成功");
 	}
 

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

@@ -1,6 +1,5 @@
 package org.springblade.business.service.impl;
 
-import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
@@ -19,9 +18,7 @@ import org.springblade.business.service.*;
 import org.springblade.business.vo.*;
 import org.springblade.common.constant.CommonConstant;
 import org.springblade.common.utils.CommonUtil;
-import org.springblade.common.utils.FileUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
-import org.springblade.core.cloud.feign.EnableBladeFeign;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.base.BaseServiceImpl;
 import org.springblade.core.mp.support.Query;
@@ -35,7 +32,6 @@ import org.springblade.core.tool.utils.Func;
 import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.core.tool.utils.ResourceUtil;
 import org.springblade.evisa.feign.EVisaClient;
-import org.springblade.evisa.redissionUtil.DistributedRedisLock;
 import org.springblade.evisa.vo.EVisaTaskApprovalVO;
 import org.springblade.flow.core.constant.ProcessConstant;
 import org.springblade.flow.core.entity.BladeFlow;
@@ -44,36 +40,27 @@ import org.springblade.flow.core.feign.NewFlowClient;
 import org.springblade.flow.core.utils.FlowUtil;
 import org.springblade.flow.core.utils.TaskUtil;
 import org.springblade.flow.core.vo.FlowProcessVO;
-import org.springblade.manager.entity.*;
+import org.springblade.manager.entity.ContractInfo;
+import org.springblade.manager.entity.ProjectInfo;
+import org.springblade.manager.entity.TabBusstimeInfo;
+import org.springblade.manager.entity.WbsTreeContract;
 import org.springblade.manager.feign.*;
 import org.springblade.manager.vo.AppWbsTreeContractVO;
-import org.springblade.manager.vo.TableFileVO;
 import org.springblade.resource.feign.CommonFileClient;
 import org.springblade.resource.feign.NewIOSSClient;
 import org.springblade.system.cache.ParamCache;
-import org.springblade.system.user.cache.UserCache;
-import org.springblade.system.user.entity.User;
 import org.springframework.beans.BeanUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.cloud.openfeign.EnableFeignClients;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.stereotype.Service;
 import org.springframework.transaction.annotation.Transactional;
-import org.springframework.web.bind.annotation.RequestHeader;
 
-import javax.annotation.Resource;
-import javax.servlet.http.HttpServletRequest;
 import java.io.File;
 import java.io.FileNotFoundException;
-import java.nio.file.Watchable;
 import java.util.*;
-import java.util.concurrent.CompletableFuture;
-import java.util.concurrent.ThreadPoolExecutor;
-import java.util.concurrent.TimeUnit;
 import java.util.stream.Collectors;
 
 /**
@@ -1223,6 +1210,7 @@ public class TaskServiceImpl extends BaseServiceImpl<TaskMapper, Task> implement
                 //修改试验业务状态(已审批的情况下修改)
                 if (new Integer(2).equals(queryinfo.getType()) && ObjectUtil.isNotEmpty(queryinfo.getWbsId()) && status != 3) {
                     jdbcTemplate.execute("update u_trial_self_inspection_record set task_status = '已审批' where id = " + queryinfo.getWbsId());
+                    jdbcTemplate.execute("update u_entrust_info set status = 4 where id = (select entrust_id from u_trial_self_inspection_record where id = '" + queryinfo.getWbsId()+ "')");
                 }
 
             }

+ 30 - 6
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialMaterialMobilizationServiceImpl.java

@@ -27,7 +27,6 @@ import org.springblade.business.vo.TrialMaterialMobilizationVO;
 import org.springblade.business.vo.TrialSamplingRecordVO;
 import org.springblade.business.wrapper.TrialMaterialMobilizationWarpper;
 import org.springblade.common.utils.CommonUtil;
-import org.springblade.common.utils.FileUtils;
 import org.springblade.common.utils.SnowFlakeUtil;
 import org.springblade.common.utils.SystemUtils;
 import org.springblade.core.log.exception.ServiceException;
@@ -36,12 +35,14 @@ import org.springblade.core.mp.support.Condition;
 import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.*;
+import org.springblade.core.tool.utils.BeanUtil;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.resource.entity.Attach;
 import org.springblade.resource.feign.NewIOSSClient;
 import org.springblade.system.entity.Dict;
 import org.springblade.system.feign.IDictClient;
-import org.springblade.system.feign.ISysClient;
 import org.springblade.system.user.entity.User;
 import org.springblade.system.user.feign.IUserClient;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
@@ -49,9 +50,10 @@ import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.stereotype.Service;
 
 import javax.servlet.http.HttpServletResponse;
-import java.io.*;
+import java.io.File;
+import java.io.FileOutputStream;
+import java.io.IOException;
 import java.util.*;
-import java.util.function.Function;
 import java.util.stream.Collectors;
 
 @Service
@@ -429,5 +431,27 @@ public class TrialMaterialMobilizationServiceImpl extends BaseServiceImpl<TrialM
         return false;
     }
 
-
+    /**
+     * 进场材料批量删除
+     * @param ids
+     * @return
+     */
+    @Override
+    public R<Object> mobilizationRemove(String ids) {
+        //限制 有取样记录的不允许删除
+        List<Long> idList = Func.toLongList(ids);
+        ArrayList<Long> newIdList = new ArrayList<>(idList);
+        for (Long id : idList) {
+            List<TrialSamplingRecord> trialSelfInspectionRecords = trialSamplingRecordMapper.selectListByMobilizationId(id);
+            if(trialSelfInspectionRecords != null && trialSelfInspectionRecords.size() > 0){
+                //存在取样记录 不允许删除 从idList中移除
+                newIdList.remove(newIdList.indexOf(id));
+            }
+        }
+        if(newIdList == null || newIdList.size() == 0){
+            return R.fail("所选数据均存在取样记录,不允许删除");
+        }
+        boolean b = super.deleteLogic(newIdList);
+        return  b?R.success("删除成功"):R.fail("删除失败");
+    }
 }

+ 16 - 7
blade-service/blade-business/src/main/java/org/springblade/business/service/impl/TrialSelfInspectionRecordServiceImpl.java

@@ -2,19 +2,20 @@ package org.springblade.business.service.impl;
 
 import cn.hutool.core.date.LocalDateTimeUtil;
 import com.alibaba.fastjson.JSONArray;
-import com.baomidou.mybatisplus.core.conditions.Wrapper;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
-import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.ObjectUtils;
 import com.baomidou.mybatisplus.core.toolkit.StringUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import com.spire.xls.*;
+import com.spire.xls.CellRange;
+import com.spire.xls.ExcelVersion;
+import com.spire.xls.Workbook;
+import com.spire.xls.Worksheet;
 import lombok.AllArgsConstructor;
 import org.apache.commons.lang.time.DateUtils;
 import org.springblade.business.dto.*;
 import org.springblade.business.entity.*;
+import org.springblade.business.mapper.EntrustInfoMapper;
 import org.springblade.business.mapper.TrialMaterialMobilizationMapper;
 import org.springblade.business.mapper.TrialSampleInfoMapper;
 import org.springblade.business.mapper.TrialSelfInspectionRecordMapper;
@@ -35,7 +36,10 @@ import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.*;
 import org.springblade.manager.entity.*;
-import org.springblade.manager.feign.*;
+import org.springblade.manager.feign.ContractClient;
+import org.springblade.manager.feign.ExcelTabClient;
+import org.springblade.manager.feign.TableFileClient;
+import org.springblade.manager.feign.WbsTreePrivateClient;
 import org.springblade.resource.entity.Attach;
 import org.springblade.resource.feign.CommonFileClient;
 import org.springblade.resource.feign.IOSSClient;
@@ -56,7 +60,6 @@ import org.springframework.web.multipart.MultipartFile;
 import java.io.File;
 import java.io.FileNotFoundException;
 import java.util.*;
-import java.util.List;
 import java.util.function.Function;
 import java.util.stream.Collectors;
 
@@ -66,6 +69,7 @@ public class TrialSelfInspectionRecordServiceImpl extends BaseServiceImpl<TrialS
 
     private final TrialSampleInfoMapper trialSampleInfoMapper;
     private final TrialMaterialMobilizationMapper trialMaterialMobilizationMapper;
+    private final EntrustInfoMapper entrustInfoMapper;
     private final IUserClient iUserClient;
     private final ContractClient contractClient;
     private final WbsTreePrivateClient wbsTreePrivateClient;
@@ -159,7 +163,12 @@ public class TrialSelfInspectionRecordServiceImpl extends BaseServiceImpl<TrialS
                     List<Long> ids = query1.stream().map(TrialRawMaterialSelfRecord::getRawMaterialRecordId).collect(Collectors.toList());
                     record.setRawMaterialIds(org.apache.commons.lang.StringUtils.join(ids, ","));
                 }
-
+                //委托单名称 委托单编号
+                EntrustInfo entrustInfo = entrustInfoMapper.selectById(record.getEntrustId());
+                if (entrustInfo != null){
+                    record.setEntrustName(entrustInfo.getEntrustName());
+                    record.setEntrustNo(entrustInfo.getEntrustNo());
+                }
                 //合并的pdfUrl
                 String pdf = this.getMergePdfToTrial(record.getContractId(), record.getId());
                 record.setPdfUrl(pdf);

+ 11 - 10
blade-service/blade-e-visa/src/main/java/org/springblade/evisa/controller/EVisaController.java

@@ -2,29 +2,29 @@ package org.springblade.evisa.controller;
 
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONObject;
-import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
 import lombok.AllArgsConstructor;
 import lombok.extern.slf4j.Slf4j;
 import org.apache.commons.lang.StringUtils;
 import org.springblade.business.entity.Task;
-import org.springblade.business.entity.TaskBatch;
-import org.springblade.business.entity.TaskParallel;
 import org.springblade.business.feign.TaskClient;
 import org.springblade.business.vo.TaskApprovalVO;
 import org.springblade.evisa.service.EVisaService;
 import org.springblade.evisa.vo.EVisaTaskApprovalVO;
-import org.springblade.resource.feign.NewIOSSClient;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.data.redis.core.StringRedisTemplate;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.scheduling.annotation.Scheduled;
-import org.springframework.web.bind.annotation.*;
+import org.springframework.web.bind.annotation.RequestMapping;
+import org.springframework.web.bind.annotation.RestController;
 
 import javax.annotation.Resource;
 import java.io.FileNotFoundException;
-import java.util.*;
-import java.util.concurrent.*;
+import java.util.List;
+import java.util.Map;
+import java.util.concurrent.CompletableFuture;
+import java.util.concurrent.ThreadPoolExecutor;
+import java.util.concurrent.TimeUnit;
 
 
 /**
@@ -214,8 +214,9 @@ public class EVisaController {
             this.jdbcTemplate.execute("delete from u_task_batch where id="+taskApprovalVO.getId());
             RedisTemplate.delete("sign-" + taskApprovalVO.getFormDataId());
         } else if (taskApprovalVO.getApprovalType()==8) { // 委托单
-
-            this.jdbcTemplate.execute("update u_entrust_info set sample_status=2,status="+(type+1)+",entrust_e_pdf='"+finalPdfUrl+"' where id=(SELECT wbs_id from u_information_query where id='"+taskApprovalVO.getFormDataId()+"')");
+           if(type == 2){
+               this.jdbcTemplate.execute("update u_entrust_info set sample_status=2,status="+(type+1)+",entrust_e_pdf='"+finalPdfUrl+"' where id=(SELECT wbs_id from u_information_query where id='"+taskApprovalVO.getFormDataId()+"')");
+           }
             jdbcTemplate.execute("update u_information_query set e_visa_pdf_url='"+finalPdfUrl+"',status="+type+" where id='"+taskApprovalVO.getFormDataId()+"'");
 
             this.jdbcTemplate.execute("delete from u_task_batch where id="+taskApprovalVO.getId());

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

@@ -1,15 +1,11 @@
 package org.springblade.evisa.service.impl;
 
-import cfca.com.itextpdf.text.Image;
 import cfca.com.itextpdf.text.Rectangle;
 import cfca.com.itextpdf.text.pdf.PdfReader;
 import cfca.paperless.ClientConstants;
 import cfca.paperless.base.BaseConstants;
 import cfca.paperless.base.util.Base64;
-import cfca.paperless.base.util.GUIDUtil;
-import cfca.paperless.base.util.ImageUtil;
-import cfca.paperless.base.util.IoUtil;
-import cfca.paperless.base.util.PwdEncryptUtil;
+import cfca.paperless.base.util.*;
 import cfca.paperless.client.PaperlessClient;
 import cfca.paperless.dto.RequestHead;
 import cfca.paperless.dto.ResponseDto;
@@ -33,14 +29,10 @@ import cfca.paperless.dto.response.tx40.SealPdfResponse;
 import cfca.paperless.dto.response.tx40.VerifyPdfSealResponse;
 import cn.hutool.core.io.file.FileReader;
 import com.alibaba.fastjson.JSONObject;
-import com.spire.xls.Workbook;
 import lombok.AllArgsConstructor;
 import org.apache.commons.io.IOUtils;
 import org.apache.commons.lang.StringUtils;
 import org.apache.pdfbox.pdmodel.PDDocument;
-import org.apache.pdfbox.pdmodel.PDPage;
-import org.apache.pdfbox.pdmodel.PDPageContentStream;
-import org.apache.pdfbox.pdmodel.font.PDType1Font;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 import org.springblade.business.entity.ArchiveFile;
@@ -56,14 +48,15 @@ import org.springblade.core.oss.model.BladeFile;
 import org.springblade.core.secure.utils.AuthUtil;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
-import org.springblade.core.tool.utils.*;
+import org.springblade.core.tool.utils.DateUtil;
+import org.springblade.core.tool.utils.Func;
+import org.springblade.core.tool.utils.ObjectUtil;
 import org.springblade.evisa.redissionUtil.DistributedRedisLock;
 import org.springblade.evisa.service.EVisaService;
 import org.springblade.evisa.utils.FileUtils;
 import org.springblade.evisa.utils.PDFUtils;
 import org.springblade.evisa.vo.*;
 import org.springblade.manager.entity.ContractInfo;
-import org.springblade.manager.entity.ProjectInfo;
 import org.springblade.manager.entity.SignPfxFile;
 import org.springblade.manager.feign.ContractClient;
 import org.springblade.manager.feign.SignPfxClient;
@@ -90,9 +83,6 @@ import java.awt.image.BufferedImage;
 import java.io.*;
 import java.net.URL;
 import java.nio.charset.StandardCharsets;
-import java.nio.file.Files;
-import java.nio.file.Path;
-import java.nio.file.Paths;
 import java.util.*;
 import java.util.stream.Collectors;
 

+ 25 - 24
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/TextdictInfoController.java

@@ -19,23 +19,18 @@ package org.springblade.manager.controller;
 import com.alibaba.fastjson.JSON;
 import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
+import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
-import io.swagger.annotations.*;
 import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
+import io.swagger.annotations.*;
 import lombok.AllArgsConstructor;
-
-import javax.validation.Valid;
-
 import org.apache.commons.lang.StringUtils;
-import org.apache.commons.net.ftp.FTPClient;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
 import org.jsoup.nodes.Element;
 import org.jsoup.select.Elements;
-import org.springblade.common.constant.CommonConstant;
-import org.springblade.common.utils.CommonUtil;
 import org.springblade.common.utils.SnowFlakeUtil;
-import org.springblade.common.utils.SystemUtils;
+import org.springblade.core.boot.ctrl.BladeController;
 import org.springblade.core.log.exception.ServiceException;
 import org.springblade.core.mp.support.Condition;
 import org.springblade.core.mp.support.Query;
@@ -43,28 +38,30 @@ import org.springblade.core.redis.cache.BladeRedis;
 import org.springblade.core.secure.utils.SecureUtil;
 import org.springblade.core.tool.api.R;
 import org.springblade.core.tool.utils.*;
-import org.springblade.manager.entity.*;
+import org.springblade.manager.entity.TextdictInfo;
+import org.springblade.manager.entity.WbsTreeContract;
+import org.springblade.manager.entity.WbsTreePrivate;
 import org.springblade.manager.mapper.WbsTreePrivateMapper;
+import org.springblade.manager.service.ITextdictInfoService;
 import org.springblade.manager.service.impl.WbsTreeContractServiceImpl;
-import org.springblade.manager.service.impl.WbsTreePrivateServiceImpl;
 import org.springblade.manager.utils.ExcelInfoUtils;
 import org.springblade.manager.utils.FileUtils;
 import org.springblade.manager.vo.*;
-import org.springblade.manager.wrapper.ExcelTabWrapper;
-import org.springblade.manager.wrapper.TextdictWrapper;
-import org.springblade.system.cache.ParamCache;
+import org.springframework.dao.DataAccessException;
 import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
-import org.springframework.scheduling.annotation.Scheduled;
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.bind.annotation.RequestParam;
-import com.baomidou.mybatisplus.core.metadata.IPage;
-import org.springblade.manager.service.ITextdictInfoService;
-import org.springblade.core.boot.ctrl.BladeController;
 
-import java.io.*;
-import java.util.*;
+import javax.validation.Valid;
+import java.io.File;
+import java.io.FileInputStream;
+import java.io.FileNotFoundException;
+import java.io.InputStream;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
 import java.util.stream.Collectors;
 
 /**
@@ -374,10 +371,15 @@ public class TextdictInfoController extends BladeController {
                 String isExitSql = " select * from information_schema.TABLES where TABLE_NAME='" + tabName + "'";
                 List<Map<String, Object>> tablist = jdbcTemplate.queryForList(isExitSql);
                 if (tablist != null && tablist.size() > 0 && wbsTreePrivate.getType() != 10) {
-                    String clarSql = "update  " + tabName + " set " + keyname.split("__")[0] + "=null where p_key_id in(SELECT p_key_id FROM m_wbs_tree_contract WHERE id ='" + wbsTreePrivate.getId() + "' and project_id='" + wbsTreePrivate.getProjectId() + "' )";
-                    jdbcTemplate.execute(clarSql);
+                    String clarSql = "update  " + tabName + " set " + keyname.split("__")[0] + "=null where p_key_id in(SELECT p_key_id FROM m_wbs_tree_contract WHERE is_type_private_pid ='" + wbsTreePrivate.getPKeyId() + "' and project_id='" + wbsTreePrivate.getProjectId() + "'UNION ALL SELECT 1 )";
+                    try {
+                        jdbcTemplate.execute(clarSql);
+                    } catch (DataAccessException e) {
+                        throw new RuntimeException("该实体信息无对应字段");
+                    }
                 }
             }
+
             File writeFile = ResourceUtil.getFile(wbsTreePrivate.getHtmlUrl());
             if (!writeFile.exists()) {
                 if (StringUtils.isNotEmpty(fileUrl)) {
@@ -516,8 +518,8 @@ public class TextdictInfoController extends BladeController {
                 }
             }
         }
-
         File writeFile = new File(wbsTreePrivate.getHtmlUrl());
+//        File writeFile = new File("D:\\file\\downfile\\1792757075013533696.html");
         FileUtil.writeToFile(writeFile, doc.html(), Boolean.parseBoolean("UTF-8"));
 
         String str1 = wbsTreePrivate.getHtmlUrl().replace("Desktop//privateUrl", "Desktop/privateUrl");
@@ -815,5 +817,4 @@ public class TextdictInfoController extends BladeController {
         TextdictInfoVO detail = textdictInfoService.selectTextdictInfoById(textdictInfo);
         return R.data(detail);
     }
-
 }

+ 31 - 6
blade-service/blade-manager/src/main/java/org/springblade/manager/controller/WbsTreeContractController.java

@@ -9,14 +9,15 @@ import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
 import com.google.common.collect.Lists;
 import com.spire.xls.FileFormat;
 import com.spire.xls.Worksheet;
-import io.swagger.annotations.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiImplicitParam;
+import io.swagger.annotations.ApiImplicitParams;
+import io.swagger.annotations.ApiOperation;
 import lombok.AllArgsConstructor;
 import lombok.SneakyThrows;
 import org.apache.commons.lang.StringUtils;
 import org.apache.poi.ss.usermodel.*;
-import org.apache.poi.ss.usermodel.CellStyle;
 import org.apache.poi.ss.util.CellRangeAddress;
-import org.apache.poi.ss.util.RegionUtil;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.jsoup.Jsoup;
 import org.jsoup.nodes.Document;
@@ -47,21 +48,20 @@ import org.springframework.jdbc.core.BeanPropertyRowMapper;
 import org.springframework.jdbc.core.JdbcTemplate;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.bind.annotation.GetMapping;
-import org.springframework.web.bind.annotation.RestController;
 
 import javax.servlet.ServletOutputStream;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 import java.io.*;
+import java.net.URL;
 import java.net.URLEncoder;
+import java.nio.charset.StandardCharsets;
 import java.nio.file.Files;
 import java.nio.file.Path;
 import java.nio.file.Paths;
 import java.text.ParseException;
 import java.text.SimpleDateFormat;
 import java.util.*;
-import java.util.List;
 import java.util.regex.Matcher;
 import java.util.regex.Pattern;
 import java.util.stream.Collectors;
@@ -272,6 +272,12 @@ public class WbsTreeContractController extends BladeController {
                 WbsTreePrivate treePrivateTab = jdbcTemplate.query("select * from m_wbs_tree_private where p_key_id = " + pKeyId, new BeanPropertyRowMapper<>(WbsTreePrivate.class)).stream().findAny().orElse(null);
                 if (treePrivateTab != null && treePrivateTab.getHtmlUrl() != null) {
                     htmlUrl = treePrivateTab.getHtmlUrl();
+                    //<开始>-----------本地测试  下载html到本地
+//                    htmlUrl = FileUtils.getNetUrl(htmlUrl);
+//                    String localFilePath = "D:\\file\\downfile\\1792757075013533696.html";
+//                    downloadHtmlAndSave(htmlUrl, localFilePath);
+//                    htmlUrl =localFilePath;
+                    //本地测试  下载html到本地-----------<结束>
                     fileName = ObjectUtil.isNotEmpty(treePrivateTab.getFullName()) ? treePrivateTab.getFullName() : treePrivateTab.getNodeName();
                 }
             } else {
@@ -757,4 +763,23 @@ public class WbsTreeContractController extends BladeController {
         return R.success("成功");
     }
 
+    /**
+     * 文件存储到指定路径方法
+     * @param htmlUrl
+     * @param localFilePath
+     */
+    public static void downloadHtmlAndSave(String htmlUrl, String localFilePath) {
+        try (BufferedReader reader = new BufferedReader(new InputStreamReader(new URL(htmlUrl).openStream(), StandardCharsets.UTF_8));
+             BufferedWriter writer = new BufferedWriter(new OutputStreamWriter(new FileOutputStream(localFilePath), StandardCharsets.UTF_8))) {
+
+            String line;
+            while ((line = reader.readLine()) != null) {
+                writer.write(line);
+                writer.newLine();
+            }
+        } catch (IOException e) {
+            e.printStackTrace();
+        }
+    }
+
 }