Commit 007b0708 by zhangmengqi

Merge branch 'dev'

parents f3174e3c 83c81d14
package com.patzn.cloud.service.lims.rcp;
import com.patzn.cloud.service.lims.common.LabreOfficeUtil;
import com.patzn.cloud.service.lims.socket.SpringUtil;
import io.netty.channel.ChannelHandlerContext;
import io.netty.channel.ChannelId;
import io.netty.channel.ChannelInboundHandlerAdapter;
import net.jodah.expiringmap.ExpiringMap;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.util.UUID;
public class ServerHandler extends ChannelInboundHandlerAdapter {
private static final Logger logger = LoggerFactory.getLogger(ServerHandler.class);
@Override
public void channelRead(ChannelHandlerContext ctx, Object msg) throws Exception {
String oid = ctx.channel().id().asLongText();
RpcRequest request = (RpcRequest) msg;
logger.error("天平传输的原始数据为:"+request.getData().toString());
logger.error("天平传输的处理数据为:"+ConvertHexStrToByteArray.balanceTextChangg(ConvertHexStrToByteArray.hexStringToAsciiString(request.getData().toString())));
InitBalanceMap mapInit = (InitBalanceMap)SpringUtil.getBean("initBalanceMap");
ExpiringMap<String,String> mapId = mapInit.getMapId();
ExpiringMap<String,String> mapValue = mapInit.getMapValue();
......
......@@ -191,6 +191,13 @@ public class SoilExpReportController extends ServiceController {
}
@ApiOperation("生成附件汇总")
@PostMapping("/generate_appendix")
public RestResult<SoilExpReport> generateAppendix(@RequestParam("id")Long id) {
return success(soilExpReportService.generateAppendix(id,getAccount()));
}
@ApiOperation(value = "下载项目报告", notes = "下载项目报告")
@GetMapping("/download/{id}")
......
......@@ -39,4 +39,6 @@ public interface ISoilExpReportService extends IBaseService<SoilExpReport> {
boolean expReportIssueBack(Long[] ids, String remark, Account account);
void downloadFile(Long id, HttpServletResponse response);
SoilExpReport generateAppendix(Long id, Account account);
}
......@@ -627,6 +627,65 @@ public class SoilExpReportServiceImpl extends BaseServiceImpl<SoilExpReportMappe
ossClient.download(attachment.getObjectKey(), attachment.getExpName() + ".xlsx", response);
}
@Override
public SoilExpReport generateAppendix(Long id, Account account) {
RestAssert.fail(null == id ,"请选择要生成的报告");
List<SoilExpReportRelExp> reportRelExpList = soilExpReportRelExpService.list(Condition.create().eq("exp_report_id",id));
if (CollectionUtils.isEmpty(reportRelExpList)){
RestAssert.fail("该项目报告不含有项目!!");
}
List<Long> expIdsList = reportRelExpList.stream().map(r->{
return r.getExpId();
}).collect(Collectors.toList());
SoilExpReport soilExpReport = getById(id);
List<SoilAppendix> appendixList = soilAppendixService.list(Condition.create().in("exp_id",expIdsList));
List<Workbook> bookList = new ArrayList<>();
Workbook workbook =null;
XSSFWorkbook xssfWorkbook = HSSFWorkbookUtil.getWorkbookByIO(ossClient.download(soilExpReport.getObjectKey()));
if (null !=xssfWorkbook){
try {
workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));
}catch (Exception e){
logger.error(" workbook = new Workbook(exportToExcelInputStream(xssfWorkbook));"+e.getMessage());
}
}
for (SoilAppendix appendix:appendixList) {
try {
Workbook book = new Workbook(ossClient.download(appendix.getObjectKey()));
if (null!=book){
bookList.add(book);
}
}catch (Exception e){
logger.error(" Workbook book = new Workbook(ossClient.download(appendix.getObjectKey()));;"+e.getMessage());
}
}
if (CollectionUtils.isNotEmpty(bookList)) {
try {
File allFileName = AsposeUtil.mergeWork(soilExpReport.getExpName(), workbook, bookList);
OssFileResult result = ossClient.upload(allFileName);
soilExpReport.setAppendixKey(result.getObjectKey());
if (updateById(soilExpReport)) {
FileUtils.deleteFiles(allFileName);
return soilExpReport;
}
} catch (Exception e) {
logger.error("生成汇总附录失败" + e.getMessage());
return null;
}
}
return null;
}
public InputStream exportToExcelInputStream(XSSFWorkbook workbook) {
......
......@@ -84,6 +84,7 @@
WHERE
p.deleted = 0
AND s.deleted = 0
AND e.deleted = 0
<if test="vo.type!=null">
AND p.type = #{vo.type}
</if>
......@@ -143,6 +144,7 @@
WHERE
p.deleted = 0
AND s.deleted = 0
AND e.deleted = 0
<if test="vo.type!=null">
AND p.type = #{vo.type}
</if>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment