ecology_maven/com/api/aiyh_pcn/fadada/web/FaDDContractController.java

176 lines
5.8 KiB
Java
Raw Blame History

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

package com.api.aiyh_pcn.fadada.web;
import aiyh.utils.ApiResult;
import aiyh.utils.Util;
import aiyh.utils.zwl.common.ToolUtil;
import com.alibaba.fastjson.JSON;
import com.api.aiyh_pcn.fadada.dao.FaDDContractMapping;
import com.api.aiyh_pcn.fadada.entity.UfContractInfoDTO;
import com.api.aiyh_pcn.fadada.service.impl.FaDDContractService;
import io.swagger.v3.oas.annotations.parameters.RequestBody;
import org.h2.util.StringUtils;
import weaver.hrm.HrmUserVarify;
import weaver.hrm.User;
import weaver.systeminfo.SystemEnv;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import javax.ws.rs.*;
import javax.ws.rs.core.Context;
import javax.ws.rs.core.MediaType;
import javax.ws.rs.core.Response;
import javax.ws.rs.core.StreamingOutput;
import java.util.HashMap;
import java.util.Map;
/**
* @author EBU7-dev1-ayh
* @create 2021/11/3 0003 14:49
* fadada
*/
@Path("/v2/fadada")
public class FaDDContractController {
private final FaDDContractService faDDService = new FaDDContractService();
private final FaDDContractMapping faDDContractMapping = new FaDDContractMapping();
private final ToolUtil toolUtil = new ToolUtil();
/**
* 获取流程全版本
*
* @param workflowId 流程id
* @return 流程全版本id
*/
@Path("/getAllVersion/{workflowId}/{markOnly}")
@GET
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String getAllVersion(@PathParam("workflowId") String workflowId, @PathParam("markOnly") String markOnly) {
try {
Map<String, Object> allVersion = faDDService.getAllVersion(workflowId, markOnly);
return ApiResult.success(allVersion);
} catch (Exception e) {
toolUtil.writeErrorLog("错误:" + e.toString());
return ApiResult.error(e.toString());
}
}
/**
* 合同签署回调
* @param params
* @return
*/
@Path("/callback/signed")
@POST
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String signedCallBack(@RequestBody Map<String, Object> params) {
Map<String, Object> result = new HashMap<>();
result.put("code", 200);
result.put("msg", "操作成功!");
String resultCode = String.valueOf(params.get("resultCode"));
if(!"1".equals(resultCode)){
// 签署失败
toolUtil.writeErrorLog("合同回调:签署失败,失败信息:" + JSON.toJSONString(params));
return JSON.toJSONString(result);
}
String contractNo = String.valueOf(params.get("docNo"));
faDDService.signedCallBack(contractNo);
return JSON.toJSONString(result);
}
/**
* 是否签署完毕
* @param requestId
* @param workflowId
* @return
*/
@Path("/isAllSigned/{workflowId}/{requestId}")
@GET
@Produces(MediaType.APPLICATION_JSON)
@Consumes(MediaType.APPLICATION_JSON)
public String querySignedStatus(@PathParam("requestId") String requestId, @PathParam("workflowId") String workflowId){
Map<String, Object> result = faDDService.querySignedStatus(requestId);
return ApiResult.success(result);
}
/**
* 本方签署
*
* @param workflowId 流程id
* @param requestId 请求id
* @return 本方签署结果
*/
@Path("/signedContract/own/{requestId}/{workflowId}")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String signedContractOwn(@Context HttpServletRequest request, @Context HttpServletResponse response,
@PathParam("workflowId") String workflowId, @PathParam("requestId") String requestId) {
// TODO 更换labelIndex
User user = HrmUserVarify.getUser(request, response);
try {
faDDService.signedContractOwn(requestId, user);
}catch (Exception e){
return ApiResult.error(Util.getHtmlLabelName(-87658,user.getLanguage(),"合同签署失败!"));
}
return ApiResult.success(Util.getHtmlLabelName(-87657,user.getLanguage(),"本方签署成功!"));
}
/**
* 催一催
*
* @param requestId 请求id
* @return 催一催
*/
@Path("/signedContract/{requestId}")
@GET
@Consumes(MediaType.APPLICATION_JSON)
@Produces(MediaType.APPLICATION_JSON)
public String signedContract(@Context HttpServletRequest request, @Context HttpServletResponse response,
@PathParam("requestId") String requestId) {
return ApiResult.success("没有催一催接口还点!淦!等法大大调整,额。。。具体啥时候好我也不知道,反正不关我的事!");
}
/**
* 合同下载
*
* @param requestId 请求id
* @return 合同问价压缩包
*/
@Path("/contract/download/{requestId}")
@GET
@Produces(MediaType.APPLICATION_OCTET_STREAM)
public Response contractDownload(@PathParam("requestId") String requestId) {
toolUtil.writeErrorLog("进入请求方法获取到请求id" + requestId);
try {
UfContractInfoDTO ufContractInfoDTO = faDDContractMapping.queryContractInfoByRequestId(requestId);
StreamingOutput contractZipStream = faDDService.download4mFDD(ufContractInfoDTO);
String requestTitle = Util.null2String(Util.getRequestTitleById(String.valueOf(requestId)));
if(StringUtils.isNullOrEmpty(requestTitle)){
requestTitle = "contracts";
}
if(Util.null2String(ufContractInfoDTO.getContractNo()).split(",").length >= 2){
// 多文件
return Response.ok(contractZipStream, MediaType.APPLICATION_OCTET_STREAM)
.type("application/zip")
.header("Content-Disposition", "attachment;filename=" + requestTitle + ".zip").build();
}else{
// 单文件
return Response.ok(contractZipStream, MediaType.APPLICATION_OCTET_STREAM)
.type("application/pdf")
.header("Content-Disposition", "attachment;filename=" + requestTitle + ".pdf").build();
}
} catch (Exception e) {
toolUtil.writeErrorLog("文件流转换失败," + e);
return Response.ok(ApiResult.error("出现错误,错误原因: " + e), MediaType.TEXT_PLAIN).build();
}
}
}