176 lines
5.8 KiB
Java
176 lines
5.8 KiB
Java
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();
|
||
}
|
||
}
|
||
}
|