|
@@ -1,790 +0,0 @@
|
|
-package com.malk.ruisi.service.impl;
|
|
|
|
-
|
|
|
|
-import cn.hutool.core.io.FileUtil;
|
|
|
|
-import com.alibaba.fastjson.JSONArray;
|
|
|
|
-import com.alibaba.fastjson.JSONObject;
|
|
|
|
-import com.malk.ruisi.service.QysService;
|
|
|
|
-import com.malk.ruisi.service.RsQysService;
|
|
|
|
-import com.malk.server.aliwork.YDConf;
|
|
|
|
-import com.malk.server.aliwork.YDParam;
|
|
|
|
-import com.malk.server.common.McR;
|
|
|
|
-import com.malk.server.dingtalk.DDConf;
|
|
|
|
-import com.malk.service.aliwork.YDClient;
|
|
|
|
-import com.malk.utils.UtilMap;
|
|
|
|
-import lombok.extern.slf4j.Slf4j;
|
|
|
|
-import org.apache.tomcat.util.http.fileupload.FileUtils;
|
|
|
|
-import org.apache.tomcat.util.http.fileupload.IOUtils;
|
|
|
|
-import org.springframework.beans.factory.annotation.Autowired;
|
|
|
|
-import org.springframework.beans.factory.annotation.Value;
|
|
|
|
-import org.springframework.stereotype.Service;
|
|
|
|
-
|
|
|
|
-import java.io.*;
|
|
|
|
-import java.net.HttpURLConnection;
|
|
|
|
-import java.net.URL;
|
|
|
|
-import java.text.SimpleDateFormat;
|
|
|
|
-import java.util.*;
|
|
|
|
-import java.util.zip.ZipEntry;
|
|
|
|
-import java.util.zip.ZipInputStream;
|
|
|
|
-
|
|
|
|
-import static com.malk.ruisi.constant.QysConstant.QYS_SUCCESS_CODE;
|
|
|
|
-
|
|
|
|
-@Service
|
|
|
|
-@Slf4j
|
|
|
|
-public class RsQysServiceImpl implements RsQysService {
|
|
|
|
- @Autowired
|
|
|
|
- private QysService qysService;
|
|
|
|
- @Autowired
|
|
|
|
- private YDClient ydClient;
|
|
|
|
- @Autowired
|
|
|
|
- private YDConf ydConf;
|
|
|
|
- @Autowired
|
|
|
|
- private DDConf ddConf;
|
|
|
|
- @Value("${qiyuesuo.bdurl}")
|
|
|
|
- private String BDURL;
|
|
|
|
- @Value("${qiyuesuo.pdfbdurl}")
|
|
|
|
- private String PDFBDURL;
|
|
|
|
- @Value("${qiyuesuo.url}")
|
|
|
|
- private String URL;
|
|
|
|
- private String getCust(String type, String key) throws Exception {
|
|
|
|
- Map<String, String> map = UtilMap.empty();
|
|
|
|
- if (type.equals("FORM-55D56A69CCCE4043A01660C8910E33BAQ4N0")) {
|
|
|
|
- // 合同用印 组件编号
|
|
|
|
- map.put("subject", "textField_ltsbwegw");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_ltsbweh2");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lvz1kozf");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lvm5xmqe");//业务分类Id
|
|
|
|
- map.put("contractId", "textField_lwah8x72");//合同Id
|
|
|
|
- map.put("categoryName", "textField_lvz1kozg");//业务分类名称
|
|
|
|
- map.put("fujian", "attachmentField_ltsbweir");//附件
|
|
|
|
- map.put("creatorName", "employeeField_ltsbwefl");//创建人姓名
|
|
|
|
- map.put("applyerNumber", "textField_lwebkb16");//创建人员工编号
|
|
|
|
- map.put("sealName", "textField_lvw4umfr");//授权印章名称
|
|
|
|
- map.put("count", "numberField_ltwa0vj6");//授权次数
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("tenantNameP", "textField_ltwa0vke");//对方个人签署人姓名
|
|
|
|
- map.put("contactP", "textField_ltwa0vkf");//对方个人签署人联系电话
|
|
|
|
- map.put("tenantNameA", "textField_ltwa0vk0");//对方公司名称
|
|
|
|
- map.put("receiverNameA", "textField_ltwa0vk1");//对方公司签署人名称
|
|
|
|
- map.put("contactA", "textField_ltwa0vk2");//对方公司签署人联系电话
|
|
|
|
- } else if (type.equals("FORM-5DB656AF0F0E4EFA85A4739D55C23ED85BXO")) {
|
|
|
|
- // 框架类用印
|
|
|
|
- map.put("subject", "textField_lvz8coad");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_lvz8coae");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lvza5uwu");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lvz8cobe");//业务分类Id
|
|
|
|
- map.put("contractId", "textField_lwg205ug");//合同Id
|
|
|
|
- map.put("categoryName", "textField_lvz8cobd");//业务分类名称
|
|
|
|
- map.put("fujian", "attachmentField_lvz8cocl");//附件
|
|
|
|
- map.put("creatorName", "employeeField_lvz8co98");//创建人姓名
|
|
|
|
- map.put("applyerNumber", "textField_lweccz0q");//创建人员工编号
|
|
|
|
- map.put("sealName", "textField_lwelg27e");//授权印章名称
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("count", "numberField_lvz8cobz");//授权次数
|
|
|
|
- map.put("tenantNameP", "textField_lvz8cocg");//对方个人签署人姓名
|
|
|
|
- map.put("contactP", "textField_lvz8coce");//对方个人签署人联系电话
|
|
|
|
- map.put("tenantNameA", "textField_lvz8coc5");//对方公司名称
|
|
|
|
- map.put("receiverNameA", "textField_lvz8coc6");//对方公司签署人名称
|
|
|
|
- map.put("contactA", "textField_lvz8coc7");//对方公司签署人联系电话
|
|
|
|
-
|
|
|
|
- } else if (type.equals("FORM-B27C1AE7298648F29E836B5FDF469DBDPFCK")) {
|
|
|
|
- // 其他用印
|
|
|
|
- map.put("subject", "textField_ltwktalv");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_ltwktal5");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lvz45lif");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lvz45lii");//业务分类Id
|
|
|
|
- map.put("contractId", "textField_lwg1z6hk");//合同Id
|
|
|
|
- map.put("applyerNumber", "textField_lwelap55");//创建人员工编号
|
|
|
|
- map.put("sealName", "textField_lx1gzqai");//授权印章名称
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("count", "numberField_ltwktalp");//授权次数
|
|
|
|
- map.put("categoryName", "textField_lvz45lih");//业务分类名称
|
|
|
|
- map.put("fujian", "attachmentField_ltwktamq");//附件
|
|
|
|
-// map.put("creatorName", "employeeField_ltwktal6");//创建人姓名
|
|
|
|
-// map.put("creatorContact", "textField_ltsbwef1");//创建人联系方式
|
|
|
|
-// map.put("receiverNameP", "textField_ltwa0vke");//对方个人签署人姓名
|
|
|
|
-// map.put("contactP", "textField_ltwa0vkf");//对方个人签署人联系电话
|
|
|
|
-// map.put("tenantNameA", "textField_ltwa0vk0");//对方公司名称
|
|
|
|
-// map.put("receiverNameA", "textField_ltwa0vk1");//对方公司签署人名称
|
|
|
|
-// map.put("contactA", "textField_ltwa0vk2");//对方公司签署人联系电话
|
|
|
|
- } else if (type.equals("FORM-FCDDD18FD63E49B2A4C652FBDB1874F6DPHW")) {
|
|
|
|
- // 租赁类用印 组件编号
|
|
|
|
- map.put("subject", "textField_ltwcj54k");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_ltwcj54l");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lvz3j6lq");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lvz3j6ls");//业务分类Id
|
|
|
|
- map.put("contractId", "textField_lwg1wbix");//合同Id
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("categoryName", "textField_ltwe0wyb");//业务分类名称
|
|
|
|
- map.put("fujian", "attachmentField_ltwe0wyz");//附件
|
|
|
|
- map.put("creatorName", "employeeField_ltwcj52j");//创建人姓名
|
|
|
|
- map.put("applyerNumber", "textField_lwel4lyq");//创建人员工编号
|
|
|
|
-// map.put("creatorContact", "textField_ltsbwef1");//创建人联系方式
|
|
|
|
- map.put("tenantNameP", "textField_ltwe0wyw");//对方个人签署人姓名
|
|
|
|
- map.put("contactP", "textField_ltwe0wyx");//对方个人签署人联系电话
|
|
|
|
- map.put("tenantNameA", "textField_ltwe0wyq");//对方公司名称
|
|
|
|
- map.put("receiverNameA", "textField_ltwe0wyr");//对方公司签署人名称
|
|
|
|
- map.put("contactA", "textField_ltwe0wys");//对方公司签署人联系电话
|
|
|
|
-// } else if (type.equals("FORM-53A0FB8715FB4378B0708794DFAF7089SV8P")) {
|
|
|
|
-// // 加盟签约
|
|
|
|
-// map.put("subject", "textField_ltsbwegw");//合同名称
|
|
|
|
-// map.put("sn", "serialNumberField_ltsbweh2");//合同编号
|
|
|
|
-// map.put("tenantName", "textField_lvz1kozf");//公司名称
|
|
|
|
-// map.put("categoryId", "textField_lvm5xmqe");//业务分类Id
|
|
|
|
-// map.put("fujian", "attachmentField_ltsbweir");//附件
|
|
|
|
-// map.put("creatorName", "employeeField_ltsbwefl");//创建人姓名
|
|
|
|
-// map.put("creatorContact", "textField_ltsbwef1");//创建人联系方式
|
|
|
|
-// map.put("receiverNameP", "textField_ltwa0vke");//对方个人签署人姓名
|
|
|
|
-// map.put("contactP", "textField_ltwa0vkf");//对方个人签署人联系电话
|
|
|
|
-// map.put("tenantNameA", "textField_ltwa0vk0");//对方公司名称
|
|
|
|
-// map.put("receiverNameA", "textField_ltwa0vk1");//对方公司签署人名称
|
|
|
|
-// map.put("contactA", "textField_ltwa0vk2");//对方公司签署人联系电话
|
|
|
|
- } else if (type.equals("FORM-88F968E75CC340EB91B1AC692F4184DC9I9W")) {
|
|
|
|
- // 合同/申购流程
|
|
|
|
- map.put("subject", "textField_lu7ycpub");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_lu7ycpuc");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lw05x5rk");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lw05x5rm");//业务分类Id
|
|
|
|
- map.put("contractId", "textField_lwg219kl");//合同Id
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("categoryName", "textField_lwa2350q");//业务分类名称
|
|
|
|
- map.put("fujian", "attachmentField_lu81zomp");//附件
|
|
|
|
- map.put("applyerNumber", "textField_lwelmmkr");//创建人员工编号
|
|
|
|
- map.put("sealName", "textField_lwelmmks");//授权印章名称
|
|
|
|
- map.put("count", "numberField_lual6ol8");//授权次数
|
|
|
|
-// map.put("creatorName", "employeeField_ltsbwefl");//创建人姓名
|
|
|
|
-// map.put("creatorContact", "textField_ltsbwef1");//创建人联系方式
|
|
|
|
- map.put("tenantNameP", "textField_lu81zome");//对方个人签署人姓名
|
|
|
|
- map.put("contactP", "textField_lu81zomf");//对方个人签署人联系电话
|
|
|
|
- map.put("tenantNameA", "textField_lu81zomd");//对方公司名称
|
|
|
|
- map.put("receiverNameA", "textField_lu81zome");//对方公司签署人名称
|
|
|
|
- map.put("contactA", "textField_lu81zomf");//对方公司签署人联系电话
|
|
|
|
-
|
|
|
|
- } else if (type.equals("FORM-54972289A0B7416287A9BA44DA6CCDC50QUC")) {
|
|
|
|
- // HR用印
|
|
|
|
- map.put("subject", "textField_lu9euh7n");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_lu9euh7o");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lvzz59hk");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lvzz59hn");//业务分类Id
|
|
|
|
- map.put("contractId", "textField_lwg22nvj");//合同Id
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("categoryName", "textField_lvzz59hm");//业务分类名称
|
|
|
|
- map.put("applyerNumber", "textField_lweezm68");//创建人员工编号
|
|
|
|
- map.put("sealName", "textField_lweezm69");//授权印章名称
|
|
|
|
- map.put("count", "numberField_lu9euh8c");//授权次数
|
|
|
|
- map.put("fujian", "attachmentField_lu9euh8d");//附件
|
|
|
|
- } else if (type.equals("FORM-0D501EF1688247DC932E7784298BD46BRYHC")) {
|
|
|
|
- // 新签劳动合同/协议
|
|
|
|
- map.put("subject", "textField_luauhgb4");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_luauhgb5");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lw4rpz1w");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lw4rpz1x");//业务分类Id
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("jf", "textField_lwk0stof");//甲方名称
|
|
|
|
- map.put("txdz", "textField_lup3q6ke");//甲方通讯地址
|
|
|
|
- map.put("yf", "textField_lup3q6kf");//乙方
|
|
|
|
- map.put("sjhm", "textField_lup3q6kg");//乙方手机号码
|
|
|
|
- map.put("syqksrq", "dateField_lup3q6kv");//试用期开始日期
|
|
|
|
- map.put("syqjsrq", "dateField_lup3q6kw");//试用期结束日期
|
|
|
|
- map.put("ldhtksrq", "dateField_lup3q6kx");//劳动合同开始日期
|
|
|
|
- map.put("ldhtjsrq", "dateField_lup3q6ky");//劳动合同结束日期
|
|
|
|
- map.put("gzdd", "textField_lup3q6kk");//工作地点
|
|
|
|
- map.put("yftgfw", "textField_lup3q6kh");//乙方提供服务
|
|
|
|
- map.put("xchsgz", "selectField_lup3q6ki");//薪酬核算规则
|
|
|
|
- map.put("dyzmtbc", "numberField_lup3q6kj");//报酬金额
|
|
|
|
- map.put("dyzarksrq", "dateField_lup3q6kl");//开始日期
|
|
|
|
- map.put("dyzarjsrq", "dateField_lup3q6km");//结束日期
|
|
|
|
- map.put("contractId", "textField_lwg241g6");//合同Id
|
|
|
|
- map.put("categoryName", "textField_lwa1xm1p");//业务分类名称
|
|
|
|
- map.put("tenantNameP", "textField_lup3q6kf");//对方个人签署人姓名
|
|
|
|
- map.put("contactP", "textField_lup3q6kg");//对方个人签署人联系电话
|
|
|
|
- } else if (type.equals("FORM-3E04D5456B2341CCBA62C955B791CF45IAH1")) {
|
|
|
|
- // 发文审批用印
|
|
|
|
- map.put("subject", "textField_ltwmutnp");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_ltwmutno");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lw044nmp");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lw044nmr");//业务分类Id
|
|
|
|
- map.put("contractId", "textField_lwg251gn");//合同Id
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("categoryName", "textField_ltwmutoc");//业务分类名称
|
|
|
|
- map.put("applyerNumber", "textField_lweluap2");//创建人员工编号
|
|
|
|
- map.put("sealName", "textField_lweluap3");//授权印章名称
|
|
|
|
- map.put("count", "numberField_ltwmutow");//授权次数
|
|
|
|
- map.put("fujian", "attachmentField_ltwmutq4");//附件
|
|
|
|
- } else if (type.equals("FORM-87BD065161F84560B999FE94713255E20E6E")) {
|
|
|
|
- //印章授权&承诺书
|
|
|
|
- map.put("subject", "textField_ltwp3e43");//合同名称
|
|
|
|
- map.put("sn", "serialNumberField_ltwp3e44");//合同编号
|
|
|
|
- map.put("tenantName", "textField_lw04hhp1");//公司名称
|
|
|
|
- map.put("categoryId", "textField_lw04hhp3");//业务分类Id
|
|
|
|
- map.put("contractId", "textField_lwg260n6");//合同Id
|
|
|
|
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
|
|
|
|
- map.put("categoryName", "textField_lwa29saw");//业务分类名称
|
|
|
|
- map.put("fujian", "attachmentField_ltwp3e4g");//附件
|
|
|
|
- map.put("tenantNameP", "textField_lw93mjk9");//授权人姓名
|
|
|
|
- map.put("contactP", "textField_ltwp3e4d");//授权人联系电话
|
|
|
|
- map.put("tenantNameA", "textField_lw93mjka");//被授权人姓名
|
|
|
|
- map.put("contactA", "textField_ltwp3e4f");//被授权人联系电话
|
|
|
|
- } else {
|
|
|
|
- throw new Exception();
|
|
|
|
- }
|
|
|
|
- return map.get(key);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public McR createByFile(JSONObject param) throws Exception {
|
|
|
|
- String formInstanceId = param.getString("formInstanceId");
|
|
|
|
- String type = param.getString("type");
|
|
|
|
- log.info("formInstanceId:{}", formInstanceId);
|
|
|
|
- log.info("type:{}", type);
|
|
|
|
- //根据实例ID获取表单数据
|
|
|
|
- Map data = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId)
|
|
|
|
- .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
|
|
|
|
- .userId(ddConf.getOperator()).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
|
- log.info("data:{}", data);
|
|
|
|
- //把文件下载到本地路径 ,并获取到文档ID
|
|
|
|
- List<String> documentId = new ArrayList<>();
|
|
|
|
- if (!type.equals("FORM-0D501EF1688247DC932E7784298BD46BRYHC")) {
|
|
|
|
- documentId = createbyfile(data, type);
|
|
|
|
- }
|
|
|
|
- //定义参数 创建合同草稿
|
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
|
-// obj.put("subject",data.get("textField_ltsbwef0"));//合同名称
|
|
|
|
- obj.put("subject", data.get(getCust(type, "subject")).toString());//合同名称
|
|
|
|
-// obj.put("sn",data.get("serialNumberField_ltsbweh2"));//合同编号流水号
|
|
|
|
- obj.put("sn", data.get(getCust(type, "sn")));//合同编号流水号
|
|
|
|
- obj.put("tenantName", data.get(getCust(type, "tenantName")));//发起方公司名称
|
|
|
|
- obj.put("categoryId", data.get(getCust(type, "categoryId")));//业务分类Id data.get("textField_lvm5xmqe")
|
|
|
|
- if (!type.equals("FORM-0D501EF1688247DC932E7784298BD46BRYHC")) {
|
|
|
|
- if (documentId != null) {
|
|
|
|
- obj.put("documents", documentId);//文档ID
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- List<Map<String, Object>> params1 = new ArrayList<>();
|
|
|
|
- List<Map<String, Object>> params2 = new ArrayList<>();
|
|
|
|
- if (type.equals("FORM-0D501EF1688247DC932E7784298BD46BRYHC")) {
|
|
|
|
- JSONObject jf = new JSONObject();
|
|
|
|
- jf.put("name", "jf");
|
|
|
|
- jf.put("value", data.get(getCust(type, "jf")));//甲方名称
|
|
|
|
- JSONObject txdz = new JSONObject();
|
|
|
|
- txdz.put("name", "txdz");
|
|
|
|
- txdz.put("value", data.get(getCust(type, "txdz")));//甲方通讯地址
|
|
|
|
- JSONObject yf = new JSONObject();
|
|
|
|
- yf.put("name", "yf");
|
|
|
|
- yf.put("value", data.get(getCust(type, "yf")));//乙方
|
|
|
|
- JSONObject sjhm = new JSONObject();
|
|
|
|
- sjhm.put("name", "sjhm");
|
|
|
|
- sjhm.put("value", data.get(getCust(type, "sjhm")));//乙方手机号码
|
|
|
|
- JSONObject syqksrq = new JSONObject();
|
|
|
|
- long timestamp = (long) data.get(getCust(type, "syqksrq"));
|
|
|
|
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
|
|
|
|
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
|
- // 将时间戳转换为 Date 对象
|
|
|
|
- Date date = new Date(timestamp);
|
|
|
|
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
|
|
|
|
- String formattedDate = sdf.format(date);
|
|
|
|
- syqksrq.put("name", "syqksrq");
|
|
|
|
- syqksrq.put("value", formattedDate);//试用期开始日期
|
|
|
|
- JSONObject syqjsrq = new JSONObject();
|
|
|
|
- long timestamp1 = (long) data.get(getCust(type, "syqjsrq"));
|
|
|
|
- // 将时间戳转换为 Date 对象
|
|
|
|
- Date date1 = new Date(timestamp1);
|
|
|
|
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
|
|
|
|
- String formattedDate1 = sdf.format(date1);
|
|
|
|
- syqjsrq.put("name", "syqjsrq");
|
|
|
|
- syqjsrq.put("value", formattedDate1);//试用期结束日期
|
|
|
|
- JSONObject ldhtksrq = new JSONObject();
|
|
|
|
- long timestamp2 = (long) data.get(getCust(type, "syqksrq"));
|
|
|
|
- // 将时间戳转换为 Date 对象
|
|
|
|
- Date date2 = new Date(timestamp2);
|
|
|
|
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
|
|
|
|
- String formattedDate2 = sdf.format(date2);
|
|
|
|
- ldhtksrq.put("name", "ldhtksrq");
|
|
|
|
- ldhtksrq.put("value", formattedDate2);//劳动合同开始日期
|
|
|
|
- JSONObject ldhtjsrq = new JSONObject();
|
|
|
|
- long timestamp3 = (long) data.get(getCust(type, "ldhtjsrq"));
|
|
|
|
- // 将时间戳转换为 Date 对象
|
|
|
|
- Date date3 = new Date(timestamp3);
|
|
|
|
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
|
|
|
|
- String formattedDate3 = sdf.format(date3);
|
|
|
|
- ldhtjsrq.put("name", "ldhtjsrq");
|
|
|
|
- ldhtjsrq.put("value", formattedDate3);//劳动合同结束日期
|
|
|
|
- JSONObject gzdd = new JSONObject();
|
|
|
|
- gzdd.put("name", "gzdd");
|
|
|
|
- gzdd.put("value", data.get(getCust(type, "gzdd")));//工作地点
|
|
|
|
- JSONObject yftgfw = new JSONObject();
|
|
|
|
- yftgfw.put("name", "yftgfw");
|
|
|
|
- yftgfw.put("value", data.get(getCust(type, "yftgfw")));//乙方提供服务
|
|
|
|
- JSONObject xchsgz = new JSONObject();
|
|
|
|
- xchsgz.put("name", "xchsgz");
|
|
|
|
- xchsgz.put("value", data.get(getCust(type, "xchsgz")));//薪酬核算规则
|
|
|
|
- JSONObject dyzmtbc = new JSONObject();
|
|
|
|
- dyzmtbc.put("name", "dyzmtbc");
|
|
|
|
- dyzmtbc.put("value", data.get(getCust(type, "dyzmtbc")));//报酬金额
|
|
|
|
- JSONObject dyzarksrq = new JSONObject();
|
|
|
|
- long timestamp4 = (long) data.get(getCust(type, "syqjsrq"));
|
|
|
|
- // 将时间戳转换为 Date 对象
|
|
|
|
- Date date4 = new Date(timestamp4);
|
|
|
|
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
|
|
|
|
- String formattedDate4 = sdf.format(date4);
|
|
|
|
- dyzarksrq.put("name", "dyzarksrq");
|
|
|
|
- dyzarksrq.put("value", formattedDate4);//开始日期
|
|
|
|
- JSONObject dyzarjsrq = new JSONObject();
|
|
|
|
- long timestamp5 = (long) data.get(getCust(type, "syqjsrq"));
|
|
|
|
- // 将时间戳转换为 Date 对象
|
|
|
|
- Date date5 = new Date(timestamp5);
|
|
|
|
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
|
|
|
|
- String formattedDate5 = sdf.format(date5);
|
|
|
|
- dyzarjsrq.put("name", "dyzarjsrq");
|
|
|
|
- dyzarjsrq.put("value", formattedDate5);//结束日期
|
|
|
|
- params1.add(jf);
|
|
|
|
- params1.add(txdz);
|
|
|
|
- params1.add(yf);
|
|
|
|
- params1.add(sjhm);
|
|
|
|
- params1.add(syqksrq);
|
|
|
|
- params1.add(syqjsrq);
|
|
|
|
- params1.add(ldhtksrq);
|
|
|
|
- params1.add(ldhtjsrq);
|
|
|
|
- params1.add(gzdd);
|
|
|
|
- params2.add(jf);
|
|
|
|
- params2.add(txdz);
|
|
|
|
- params2.add(yf);
|
|
|
|
- params2.add(sjhm);
|
|
|
|
- params2.add(yftgfw);
|
|
|
|
- params2.add(xchsgz);
|
|
|
|
- params2.add(dyzmtbc);
|
|
|
|
- params2.add(dyzarksrq);
|
|
|
|
- params2.add(dyzarjsrq);
|
|
|
|
- }
|
|
|
|
- String categoryName = data.get(getCust(type, "categoryName")).toString();
|
|
|
|
- if (categoryName.equals("劳动合同") || categoryName.equals("校区劳动合同")
|
|
|
|
- ) {
|
|
|
|
- obj.put("send", true);
|
|
|
|
- obj.put("documentParams", params1);
|
|
|
|
- } else if (categoryName.equals("校区劳务协议") || categoryName.equals("劳务协议")) {
|
|
|
|
- obj.put("send", true);
|
|
|
|
- obj.put("documentParams", params2);
|
|
|
|
- } else {
|
|
|
|
- obj.put("send", false);// 是否发起合同;发起合同后不能再进行添加文档、指定签署位置等操作
|
|
|
|
- }
|
|
|
|
- //签署人数据
|
|
|
|
- JSONArray array = new JSONArray();
|
|
|
|
- JSONArray array1 = new JSONArray();
|
|
|
|
-
|
|
|
|
- if (categoryName.equals("多方电子用印(个人)(我方先签)") ||
|
|
|
|
- categoryName.equals("我方电子对方物理(个人)(我方先签)")) {
|
|
|
|
- array.add(getCompASignatory());
|
|
|
|
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameP")).toString(), data.get(getCust(type, "contactP")).toString()));
|
|
|
|
- } else if (categoryName.equals("我方电子对方物理(企业)(我方先签)") ||
|
|
|
|
- categoryName.equals("多方电子用印(企业)(我方先签)")) {
|
|
|
|
- array.add(getCompASignatory());
|
|
|
|
- array.add(getCompSignatory(data.get(getCust(type, "tenantNameA")).toString(), data.get(getCust(type, "contactA")).toString(), data.get(getCust(type, "receiverNameA")).toString()));
|
|
|
|
- } else if (categoryName.equals("我方电子对方物理(企业&个人)(我方先签)") ||
|
|
|
|
- categoryName.equals("多方电子用印(企业&个人)(我方先签)")) {
|
|
|
|
- array.add(getCompASignatory());
|
|
|
|
- array.add(getCompSignatory(data.get(getCust(type, "tenantNameA")).toString(), data.get(getCust(type, "contactA")).toString(), data.get(getCust(type, "receiverNameA")).toString()));
|
|
|
|
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameP")).toString(), data.get(getCust(type, "contactP")).toString()));
|
|
|
|
- } else if (categoryName.equals("我方电子对方物理(个人)") ||
|
|
|
|
- categoryName.equals("多方电子用印(个人)(对方先签)") ||
|
|
|
|
- categoryName.equals("劳动合同") ||
|
|
|
|
- categoryName.equals("校区劳务协议") ||
|
|
|
|
- categoryName.equals("校区劳动合同") ||
|
|
|
|
- categoryName.equals("劳务协议") ||
|
|
|
|
- categoryName.equals("续签(固定几年)") ||
|
|
|
|
- categoryName.equals("续签(无固定期限)") ||
|
|
|
|
- categoryName.equals("续签(员工合同到期公司不再与员工续签)") ||
|
|
|
|
- categoryName.equals("续签(员工合同到期员工本人不愿意与公司续签时签订)") ||
|
|
|
|
- categoryName.equals("解除劳动合同")
|
|
|
|
- ) {
|
|
|
|
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameP")).toString(), data.get(getCust(type, "contactP")).toString()));
|
|
|
|
- array.add(getCompASignatory());
|
|
|
|
- } else if (categoryName.equals("我方电子对方物理(企业)") ||
|
|
|
|
- categoryName.equals("多方电子用印(企业)(对方先签)")) {
|
|
|
|
- array.add(getCompSignatory(data.get(getCust(type, "tenantNameA")).toString(), data.get(getCust(type, "contactA")).toString(), data.get(getCust(type, "receiverNameA")).toString()));
|
|
|
|
- array.add(getCompASignatory());
|
|
|
|
- } else if (categoryName.equals("我方电子对方物理(企业&个人)") ||
|
|
|
|
- categoryName.equals("多方电子用印(企业&个人)(对方先签)")) {
|
|
|
|
- array.add(getCompSignatory(data.get(getCust(type, "tenantNameA")).toString(), data.get(getCust(type, "contactA")).toString(), data.get(getCust(type, "receiverNameA")).toString()));
|
|
|
|
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameP")).toString(), data.get(getCust(type, "contactP")).toString()));
|
|
|
|
- array.add(getCompASignatory());
|
|
|
|
- } else if (categoryName.equals("内部企业单签") ||
|
|
|
|
- categoryName.equals("默认业务分类")) {
|
|
|
|
- array.add(getCompASignatory());
|
|
|
|
- } else if (categoryName.equals("印章保管授权&承诺书")) {
|
|
|
|
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameP")).toString(), data.get(getCust(type, "contactP")).toString()));
|
|
|
|
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameA")).toString(), data.get(getCust(type, "contactA")).toString()));
|
|
|
|
- } else if (categoryName.equals("物理用印外带场景") ||
|
|
|
|
- categoryName.equals("物理用印公司用印场景")) {
|
|
|
|
- array1.add(getAuths(data.get(getCust(type, "sealName")).toString(), data.get(getCust(type, "count")).toString()));
|
|
|
|
- }
|
|
|
|
- //把所有参数传到obj中
|
|
|
|
- if (categoryName.equals("物理用印外带场景") ||
|
|
|
|
- categoryName.equals("物理用印公司用印场景")) {
|
|
|
|
- obj.put("applyerNumber", data.get(getCust(type, "applyerNumber")));
|
|
|
|
- obj.put("auths", array1);
|
|
|
|
- } else {
|
|
|
|
- obj.put("signatories", array);
|
|
|
|
- }
|
|
|
|
- System.out.println("obj:{}" + obj);
|
|
|
|
- try {
|
|
|
|
- if (categoryName.equals("物理用印外带场景") ||
|
|
|
|
- categoryName.equals("物理用印公司用印场景")) {
|
|
|
|
- qysService.createseal(obj);
|
|
|
|
- } else {
|
|
|
|
- //1.调用创建合同草稿方法
|
|
|
|
- JSONObject draft = qysService.createDraft(obj);
|
|
|
|
- System.out.println(draft);
|
|
|
|
- if (draft != null) {
|
|
|
|
- String contractId = draft.getString("contractId");
|
|
|
|
- if (contractId != "") {
|
|
|
|
- //发起合同
|
|
|
|
- System.out.println("contractId" + contractId);
|
|
|
|
-// //合同id 写入宜搭
|
|
|
|
- String sc = getCust(type, "sn");//合同id字段
|
|
|
|
- String sc_values = data.get(getCust(type, "sn")).toString();//合同id字段的值
|
|
|
|
- String fd = getCust(type, "contractId");//字段名称
|
|
|
|
- ydClient.operateData(YDParam.builder()
|
|
|
|
- .formUuid(type)
|
|
|
|
- .searchCondition(JSONObject.toJSONString(UtilMap.map(sc, sc_values)))
|
|
|
|
- .formDataJson(JSONObject.toJSONString(UtilMap.map(fd, contractId)))
|
|
|
|
- .build(), YDConf.FORM_OPERATION.upsert).toString();
|
|
|
|
- qysService.send(contractId, data.get(getCust(type, "tenantName")).toString());
|
|
|
|
-// FileUtil.file("C:\\Users\\Administrator\\Desktop\\合同.pdf");
|
|
|
|
-// System.out.println("send:" + send);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
- return McR.success("success");
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public McR callback(Map<String, String> param) throws Exception {
|
|
|
|
- String sn = param.get("sn");
|
|
|
|
- String contractId = param.get("contractId");
|
|
|
|
- String status = param.get("status");
|
|
|
|
- log.info("sn:{}", sn);
|
|
|
|
- log.info("contractId:{}", contractId);
|
|
|
|
- if (status.equals("SIGNED")) {
|
|
|
|
- qysService.download(contractId, new File(BDURL + sn + ".zip"));
|
|
|
|
- }
|
|
|
|
- List<String> unzippedFiles = new ArrayList<>();
|
|
|
|
- String zipFilePath = BDURL + sn + ".zip";
|
|
|
|
- String destDirectory = PDFBDURL + sn;
|
|
|
|
- try {
|
|
|
|
- File destDir = new File(destDirectory);
|
|
|
|
- if (!destDir.exists()) {
|
|
|
|
- destDir.mkdir();
|
|
|
|
- }
|
|
|
|
- byte[] buffer = new byte[1024];
|
|
|
|
- ZipInputStream zipIn = new ZipInputStream(new FileInputStream(zipFilePath));
|
|
|
|
- ZipEntry entry = zipIn.getNextEntry();
|
|
|
|
- while (entry != null) {
|
|
|
|
- String filePath = destDirectory + File.separator + entry.getName();
|
|
|
|
- if (!entry.isDirectory()) {
|
|
|
|
- new File(filePath).getParentFile().mkdirs();
|
|
|
|
- FileOutputStream fos = new FileOutputStream(filePath);
|
|
|
|
- int len;
|
|
|
|
- while ((len = zipIn.read(buffer)) > 0) {
|
|
|
|
- fos.write(buffer, 0, len);
|
|
|
|
- }
|
|
|
|
- fos.close();
|
|
|
|
- unzippedFiles.add(filePath);
|
|
|
|
- }
|
|
|
|
- zipIn.closeEntry();
|
|
|
|
- entry = zipIn.getNextEntry();
|
|
|
|
- }
|
|
|
|
- zipIn.close();
|
|
|
|
- System.out.println("ZIP 文件解压完成。");
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- System.out.println("发生异常: " + e.getMessage());
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
- List list = new ArrayList();
|
|
|
|
- for (String unzippedFile : unzippedFiles) {
|
|
|
|
- Map map = new HashMap();
|
|
|
|
- String fileName = FileUtil.getName(unzippedFile);
|
|
|
|
- map.put("downloadUrl", URL + sn + "/" + fileName);
|
|
|
|
- map.put("name", fileName);
|
|
|
|
- map.put("previewUrl", map.get("downloadUrl"));
|
|
|
|
- map.put("url", map.get("downloadUrl"));
|
|
|
|
- map.put("ext", FileUtil.extName(unzippedFile));
|
|
|
|
- list.add(map);
|
|
|
|
- }
|
|
|
|
- log.info("list:{}", list);
|
|
|
|
- //查询宜搭底表数据
|
|
|
|
- String[] sns = sn.split("-");
|
|
|
|
- Map<String, String> formUuid = getFormUuid(sns[0]);
|
|
|
|
- List<Map> list1 = (List<Map>) ydClient.queryData(YDParam.builder().formUuid(formUuid.get("type")).searchCondition(
|
|
|
|
- JSONObject.toJSONString(UtilMap.map(formUuid.get("sn"), sn))
|
|
|
|
- ).build(), YDConf.FORM_QUERY.retrieve_list).getData();
|
|
|
|
- Map map = list1.get(0);
|
|
|
|
- String instanceId = (String) map.get("formInstanceId");
|
|
|
|
- ydClient.operateData(YDParam.builder()
|
|
|
|
- .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
|
|
|
|
- .userId(ddConf.getOperator()).formInstId(instanceId)
|
|
|
|
- .updateFormDataJson(JSONObject.toJSONString(UtilMap.map("attachmentField_ltsbweit", list)))
|
|
|
|
- .build(), YDConf.FORM_OPERATION.update);
|
|
|
|
- return null;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public McR appointurl(String contractId) throws Exception {
|
|
|
|
- try {
|
|
|
|
- log.info("获取预签署地址 {}",contractId);
|
|
|
|
- JSONObject urlR=qysService.appointurl(contractId);
|
|
|
|
- String presignUrl = urlR.getString("presignUrl");
|
|
|
|
- if(!QYS_SUCCESS_CODE.equals(urlR.getString("code"))){
|
|
|
|
- return McR.error(urlR.getString("code"),urlR.getString("message"));
|
|
|
|
- }else{
|
|
|
|
- return McR.success(presignUrl);
|
|
|
|
- }
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- return McR.error("401","获取失败");
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
-// @Override
|
|
|
|
-// public McR sendContract(String contractId,String tenantName) throws Exception {
|
|
|
|
-// JSONObject send = qysService.send(contractId, tenantName);
|
|
|
|
-// return McR.success(send);
|
|
|
|
-// }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public McR apply(JSONObject param) throws Exception {
|
|
|
|
- String formInstanceId = param.getString("formInstanceId");
|
|
|
|
- String type = param.getString("type");
|
|
|
|
- log.info("formInstanceId:{}", formInstanceId);
|
|
|
|
- log.info("type:{}", type);
|
|
|
|
- //根据实例ID获取表单数据
|
|
|
|
- Map data = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId)
|
|
|
|
- .userId(ddConf.getOperator()).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
|
- log.info("data:{}", data);
|
|
|
|
- JSONObject obj = new JSONObject();
|
|
|
|
- JSONObject obj1 = new JSONObject();
|
|
|
|
- JSONObject obj2 = new JSONObject();
|
|
|
|
- JSONArray arr = new JSONArray();
|
|
|
|
- JSONArray arr1 = new JSONArray();
|
|
|
|
- obj2.put("mobile", data.get(getCust(type, "mobile")));
|
|
|
|
- arr1.add(obj2);
|
|
|
|
- obj1.put("sealName", data.get(getCust(type, "sealName")));
|
|
|
|
- obj1.put("count", data.get(getCust(type, "count")));
|
|
|
|
- obj1.put("users", arr1);
|
|
|
|
- arr.add(obj1);
|
|
|
|
- obj.put("subject", data.get(getCust(type, "subject")).toString());//合同名称
|
|
|
|
- obj.put("tenantName", data.get(getCust(type, "tenantName")));//发起方公司名称
|
|
|
|
- obj.put("applyerNumber", data.get(getCust(type, "applyerNumber")));//发起员工编号
|
|
|
|
-// obj.put("applyerNumber", "722");//发起员工编号
|
|
|
|
- obj.put("auths", arr);
|
|
|
|
- JSONObject code = qysService.applyseals(obj);
|
|
|
|
- JSONObject json = code.getJSONObject("result");
|
|
|
|
- JSONArray sealAuthsArray = json.getJSONArray("sealAuths");
|
|
|
|
-// 检查数组是否非空且至少有一个元素
|
|
|
|
- String vertifyCode;
|
|
|
|
- if (sealAuthsArray != null && !sealAuthsArray.isEmpty()) {
|
|
|
|
- JSONObject firstSealAuth = sealAuthsArray.getJSONObject(0);
|
|
|
|
- vertifyCode = firstSealAuth.getString("vertifyCode");
|
|
|
|
- } else {
|
|
|
|
- vertifyCode = "物理授权码不存在";
|
|
|
|
- }
|
|
|
|
- // 返回结果
|
|
|
|
- return McR.success(vertifyCode);
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- @Override
|
|
|
|
- public McR signurl(JSONObject param) throws Exception {
|
|
|
|
- String formInstanceId = param.getString("formInstanceId");
|
|
|
|
- String type = param.getString("type");
|
|
|
|
- log.info("formInstanceId:{}", formInstanceId);
|
|
|
|
- log.info("type:{}", type);
|
|
|
|
- //根据实例ID获取表单数据
|
|
|
|
- Map data = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId)
|
|
|
|
- .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
|
|
|
|
- .userId(ddConf.getOperator()).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
|
|
|
|
- log.info("data:{}", data);
|
|
|
|
-// String categoryName = data.get(getCust(type, "categoryName")).toString();
|
|
|
|
- JSONObject signatory = new JSONObject();
|
|
|
|
- signatory.put("tenantType", "COMPANY");
|
|
|
|
- signatory.put("tenantName", data.get(getCust(type, "tenantName")));
|
|
|
|
- signatory.put("contractId", data.get(getCust(type, "contractId")));
|
|
|
|
- JSONObject urlR = qysService.signurla(signatory);
|
|
|
|
- String signUrl = urlR.getString("signUrl");
|
|
|
|
- System.out.println("aaa---------------"+signUrl);
|
|
|
|
- System.out.println(urlR);
|
|
|
|
- if(!QYS_SUCCESS_CODE.equals(urlR.getString("code"))){
|
|
|
|
- return McR.error(urlR.getString("code"),urlR.getString("message"));
|
|
|
|
- }else{
|
|
|
|
- return McR.success(signUrl);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- private Map<String, String> getFormUuid(String type) {
|
|
|
|
- Map<String, String> map = UtilMap.empty();
|
|
|
|
- switch (type) {
|
|
|
|
- case "HT01"://合同
|
|
|
|
- map.put("type", "FORM-55D56A69CCCE4043A01660C8910E33BAQ4N0");
|
|
|
|
- map.put("sn", "serialNumberField_ltsbweh2");
|
|
|
|
- break;
|
|
|
|
- case "HT02"://框架
|
|
|
|
- map.put("type", "FORM-5DB656AF0F0E4EFA85A4739D55C23ED85BXO");
|
|
|
|
- map.put("sn", "serialNumberField_lvz8coae");
|
|
|
|
- break;
|
|
|
|
- case "HT03"://租赁
|
|
|
|
- map.put("type", "FORM-FCDDD18FD63E49B2A4C652FBDB1874F6DPHW");
|
|
|
|
- map.put("sn", "serialNumberField_ltwcj54l");
|
|
|
|
- break;
|
|
|
|
- case "XZ04"://其他
|
|
|
|
- map.put("type", "FORM-B27C1AE7298648F29E836B5FDF469DBDPFCK");
|
|
|
|
- map.put("sn", "serialNumberField_ltwktal5");
|
|
|
|
- break;
|
|
|
|
- case "HTSG"://合同/申购
|
|
|
|
- map.put("type", "FORM-88F968E75CC340EB91B1AC692F4184DC9I9W");
|
|
|
|
- map.put("sn", "serialNumberField_lu7ycpuc");
|
|
|
|
- break;
|
|
|
|
- case "HR03"://hr用印
|
|
|
|
- map.put("type", "FORM-54972289A0B7416287A9BA44DA6CCDC50QUC");
|
|
|
|
- map.put("sn", "serialNumberField_lu9euh7o");
|
|
|
|
- break;
|
|
|
|
- case "HR18"://新签劳动合同/协议
|
|
|
|
- map.put("type", "FORM-0D501EF1688247DC932E7784298BD46BRYHC");
|
|
|
|
- map.put("sn", "serialNumberField_luauhgb5");
|
|
|
|
- break;
|
|
|
|
- case "XZ05"://发文审批
|
|
|
|
- map.put("type", "FORM-3E04D5456B2341CCBA62C955B791CF45IAH1");
|
|
|
|
- map.put("sn", "serialNumberField_ltwmutno");
|
|
|
|
- break;
|
|
|
|
- case "XZ08"://印章授权
|
|
|
|
- map.put("type", "FORM-87BD065161F84560B999FE94713255E20E6E");
|
|
|
|
- map.put("sn", "serialNumberField_ltwp3e44");
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
- return map;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /***
|
|
|
|
- * 获取对方公司签署对象
|
|
|
|
- * @param name
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- private Map getCompSignatory(String name, String contact, String receiverName) {
|
|
|
|
- JSONObject signatory = new JSONObject();
|
|
|
|
- signatory.put("tenantType", "COMPANY");
|
|
|
|
- signatory.put("tenantName", name);//对方(物理)名称
|
|
|
|
- signatory.put("contact", contact);
|
|
|
|
- signatory.put("receiverName", receiverName);
|
|
|
|
- return signatory;
|
|
|
|
- }
|
|
|
|
- private Map getPeosignurl(String contractId, String name, String contact) {
|
|
|
|
- JSONObject signurl = new JSONObject();
|
|
|
|
- signurl.put("tenantType", "PERSONAL");
|
|
|
|
- signurl.put("tenantName", name);
|
|
|
|
- signurl.put("contractId", contractId);
|
|
|
|
- signurl.put("contact", contact);
|
|
|
|
- return signurl;
|
|
|
|
- }
|
|
|
|
- private Map getComsignurl(String contractId, String name) {
|
|
|
|
- JSONObject signatory = new JSONObject();
|
|
|
|
- signatory.put("tenantType", "COMPANY");
|
|
|
|
- signatory.put("tenantName", name);
|
|
|
|
- signatory.put("contractId", contractId);
|
|
|
|
- return signatory;
|
|
|
|
- }
|
|
|
|
- //获取物理印章信息
|
|
|
|
- private Map getAuths(String name, String count) {
|
|
|
|
- JSONObject auths = new JSONObject();
|
|
|
|
- auths.put("sealName", name);//印章名称
|
|
|
|
- auths.put("count", count);//授权数量
|
|
|
|
- return auths;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /***
|
|
|
|
- * 获取我方公司签署对象
|
|
|
|
- * @param
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- private Map getCompASignatory() {
|
|
|
|
- JSONObject signatory = new JSONObject();
|
|
|
|
- signatory.put("tenantType", "COMPANY");
|
|
|
|
- return signatory;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- /***
|
|
|
|
- * 获取个人签署对象
|
|
|
|
- * @param name
|
|
|
|
- * @return
|
|
|
|
- */
|
|
|
|
- private Map getPeopSignatory(String name, String contact) {
|
|
|
|
- JSONObject signatory = new JSONObject();
|
|
|
|
- signatory.put("tenantType", "PERSONAL");
|
|
|
|
- signatory.put("contact", contact);
|
|
|
|
- signatory.put("tenantName", name);//对方(个人)名称
|
|
|
|
- return signatory;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
- //根据附件创建合同文档得到文档Id
|
|
|
|
- public List<String> createbyfile(Map data, String type) throws Exception {
|
|
|
|
-// String jsonString = data.get("attachmentField_ltsbweir").toString();
|
|
|
|
- String jsonString = data.get(getCust(type, "fujian")).toString();
|
|
|
|
- JSONArray jsonArray = JSONObject.parseArray(jsonString);
|
|
|
|
- List<String> resultList = new ArrayList<>();
|
|
|
|
- if (jsonArray != null) {
|
|
|
|
- for (int i = 0; i < jsonArray.size(); i++) {
|
|
|
|
- // 将元素转换为JSONObject
|
|
|
|
- JSONObject jsonObj = jsonArray.getJSONObject(i);
|
|
|
|
- String fj_url = ydClient.convertTemporaryUrl(jsonObj.getString("url"));
|
|
|
|
- String fj_name = jsonObj.getString("name");
|
|
|
|
- String localFilePath = "/home/file/" + fj_name;
|
|
|
|
- //下载文件到本地
|
|
|
|
- RsQysServiceImpl.downloadFile1(fj_url, localFilePath);
|
|
|
|
- Map<String, Object> data1 = new HashMap<>();
|
|
|
|
- data1.put("file", FileUtil.file("/home/file/" + fj_name));
|
|
|
|
- data1.put("title", FileUtil.mainName(fj_name));
|
|
|
|
- data1.put("fileType", FileUtil.extName(fj_name));// 获取文件格式(通过文件名)
|
|
|
|
- try {
|
|
|
|
- log.info("2. 根据文件类型创建合同文档");
|
|
|
|
- JSONObject draft = qysService.createbyfile(data1);
|
|
|
|
- if (draft != null) {
|
|
|
|
- resultList.add(draft.getJSONObject("result").getString("documentId"));
|
|
|
|
- }
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
- return resultList;
|
|
|
|
- }
|
|
|
|
-
|
|
|
|
-
|
|
|
|
- public static void downloadFile1(String downloadUrl, String path) {
|
|
|
|
- InputStream inputStream = null;
|
|
|
|
- OutputStream outputStream = null;
|
|
|
|
- try {
|
|
|
|
- URL url = new URL(downloadUrl);
|
|
|
|
- //这里没有使用 封装后的ResponseEntity 就是也是因为这里不适合一次性的拿到结果,放不下content,会造成内存溢出
|
|
|
|
- HttpURLConnection connection = (HttpURLConnection) url.openConnection();
|
|
|
|
- //使用bufferedInputStream 缓存流的方式来获取下载文件,不然大文件会出现内存溢出的情况
|
|
|
|
- inputStream = new BufferedInputStream(connection.getInputStream());
|
|
|
|
- File file = new File(path);
|
|
|
|
- if (file.exists()) {
|
|
|
|
- file.delete();
|
|
|
|
- }
|
|
|
|
- // 创建目录和父文件夹
|
|
|
|
- FileUtils.forceMkdirParent(file);
|
|
|
|
- outputStream = new FileOutputStream(file);
|
|
|
|
- //这里也很关键每次读取的大小为5M 不一次性读取完
|
|
|
|
- byte[] buffer = new byte[1024 * 1024 * 5];// 5MB
|
|
|
|
- int len = 0;
|
|
|
|
- while ((len = inputStream.read(buffer)) != -1) {
|
|
|
|
- outputStream.write(buffer, 0, len);
|
|
|
|
- }
|
|
|
|
- connection.disconnect();
|
|
|
|
- } catch (Exception e) {
|
|
|
|
- e.printStackTrace();
|
|
|
|
- } finally {
|
|
|
|
- IOUtils.closeQuietly(outputStream);
|
|
|
|
- IOUtils.closeQuietly(inputStream);
|
|
|
|
- }
|
|
|
|
- }
|
|
|
|
-}
|
|
|