| 12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736 |
- package com.malk.ruisi.service.impl;
- import cn.hutool.core.io.FileUtil;
- import com.alibaba.fastjson.JSONArray;
- import com.alibaba.fastjson.JSONObject;
- import com.fasterxml.jackson.databind.JsonNode;
- import com.fasterxml.jackson.databind.ObjectMapper;
- import com.fasterxml.jackson.databind.node.ArrayNode;
- import com.malk.ruisi.service.QysService;
- import com.malk.ruisi.service.RsQysService;
- import com.malk.ruisi.service.dingshiqi;
- import com.malk.server.aliwork.YDConf;
- import com.malk.server.aliwork.YDParam;
- import com.malk.server.common.McException;
- import com.malk.server.common.McR;
- import com.malk.server.dingtalk.DDConf;
- import com.malk.service.aliwork.YDClient;
- import com.malk.utils.UtilHttp;
- import com.malk.utils.UtilMap;
- import lombok.extern.slf4j.Slf4j;
- import org.apache.commons.lang3.StringEscapeUtils;
- 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.regex.Pattern;
- 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 QysService QYSService;
- @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("tenantName1", "textField_lznvplmm");//印章公司id
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("glbd", "associationFormField_lu0u6npd");//物理印章关联表单
- map.put("categoryId", "textField_lvm5xmqe");//业务分类Id
- map.put("contractId", "textField_lwah8x72");//合同Id
- map.put("categoryName", "textField_lvz1kozg");//业务分类名称
- map.put("fujian", "attachmentField_ltsbweir");//附件
- map.put("fujian1", "attachmentField_m1gebrx1");//附件
- map.put("creatorName", "employeeField_ltsbwefl");//创建人姓名
- map.put("applyerNumber", "textField_lwebkb16");//创建人员工编号
- map.put("sealName", "textField_lvw4umfr");//授权印章名称
- map.put("sealId", "textField_m0dh8wmp");//印章id
- 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-82E566F8576E44D3AB4B34033A27E76FEB75")) {
- // CG11-框架采购订单
- map.put("subject", "textField_ltsbwef0");//合同名称
- map.put("sn", "serialNumberField_ltsbweh2");//合同编号
- map.put("tenantName", "textField_lvz1kozf");//公司名称
- map.put("tenantName1", "textField_lznvplmm");//印章公司id
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("glbd", "associationFormField_lu0u6npd");//物理印章关联表单
- map.put("categoryId", "textField_lvm5xmqe");//业务分类Id
- map.put("contractId", "textField_lwah8x72");//合同Id
- map.put("categoryName", "textField_lvz1kozg");//业务分类名称
- map.put("fujian", "attachmentField_ltsbweis");//附件
- map.put("creatorName", "employeeField_ltsbwefl");//创建人姓名
- map.put("applyerNumber", "textField_lwebkb16");//创建人员工编号
- map.put("sealName", "textField_lvw4umfr");//授权印章名称
- map.put("sealId", "textField_m0dh8wmp");//印章id
- 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("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("tenantName1", "textField_lznvplmm");//印章公司名称
- map.put("glbd", "associationFormField_lvz8coby");//物理印章关联表单
- map.put("categoryId", "textField_lvz8cobe");//业务分类Id
- map.put("contractId", "textField_lwg205ug");//合同Id
- map.put("categoryName", "textField_lvz8cobd");//业务分类名称
- map.put("fujian", "attachmentField_lvz8cocl");//附件
- map.put("fujian1", "attachmentField_m11gqbly");//附件
- map.put("creatorName", "employeeField_lvz8co98");//创建人姓名
- map.put("applyerNumber", "textField_lweccz0q");//创建人员工编号
- map.put("sealName", "textField_lwelg27e");//授权印章名称
- map.put("sealId", "textField_m0dhf7ph");//印章id
- 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_ltwktal4");//合同名称
- map.put("sn", "serialNumberField_ltwktal5");//合同编号
- map.put("tenantName", "textField_lvz45lif");//公司名称
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("tenantName1", "textField_lznvplmm");//印章公司名称
- map.put("categoryId", "textField_lvz45lii");//业务分类Id
- map.put("glbd", "associationFormField_lu0w0l7x");//物理印章关联表单
- map.put("contractId", "textField_lwg1z6hk");//合同Id
- map.put("applyerNumber", "textField_lwelap55");//创建人员工编号
- map.put("sealName", "textField_lx1gzqai");//授权印章名称
- map.put("sealId", "textField_m0dhpgjr");//印章id
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
- map.put("count", "numberField_ltwktalp");//授权次数
- map.put("categoryName", "textField_lvz45lih");//业务分类名称
- map.put("fujian", "attachmentField_ltwktamq");//附件
- map.put("fujian1", "attachmentField_ltwktamr");//附件
- // 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("tenantName1", "textField_lznvplmm");//公司名称
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("glbd", "associationFormField_lu0vkwu7");//物理印章关联表单
- map.put("categoryId", "textField_lvz3j6ls");//业务分类Id
- map.put("contractId", "textField_lwg1wbix");//合同Id
- map.put("sealName", "textField_lwel4lyr");//授权印章名称
- map.put("sealId", "textField_m0dhqv5m");//印章id
- map.put("count", "numberField_ltwe0wyo");//授权次数
- 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_ltrzli9n");//合同名称
- map.put("sn", "serialNumberField_ltsaig24");//合同编号
- map.put("tenantName", "textField_lybee634");//公司名称
- map.put("categoryId", "textField_lw4tkat0");//业务分类Id
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("glbd", "associationFormField_lwso6sgd");//物理印章关联表单
- map.put("fujian", "attachmentField_luhu041t");//附件
- // map.put("creatorName", "employeeField_ltrzli8r");//创建人姓名
- map.put("categoryName", "textField_lvz1kozg");//业务分类名称
- map.put("tenantNameP", "textField_lts1g8sc");//对方个人签署人姓名
- map.put("applyerNumber", "textField_lybee62y");//创建人员工编号
- map.put("sealName", "textField_lybee635");//授权印章名称
- map.put("count", "numberField_lts1g8r9");//授权次数
- map.put("contactP", "textField_lts1g8sd");//对方个人签署人联系电话
- map.put("tenantNameA", "textField_lts1g8rs");//对方公司名称
- map.put("receiverNameA", "textField_lts1g8ru");//对方公司签署人名称
- map.put("contactA", "textField_lts1g8rt");//对方公司签署人联系电话
- } else if (type.equals("FORM-88F968E75CC340EB91B1AC692F4184DC9I9W")) {
- // 合同/申购流程
- map.put("subject", "textField_lu7ycpub");//合同名称
- map.put("sn", "serialNumberField_lu7ycpuc");//合同编号
- map.put("tenantName", "textField_lygvcsw5");//公司名称textField_lu81zom2
- map.put("tenantName1", "textField_lznvplmm");//公司名称
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("glbd", "associationFormField_lwrmm4p7");//物理印章关联表单
- 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("sealId", "textField_m0dhtx3s");//印章id
- map.put("count", "numberField_lual6ol8");//授权次数
- // map.put("creatorName", "employeeField_ltsbwefl");//创建人姓名
- // map.put("creatorContact", "textField_ltsbwef1");//创建人联系方
- map.put("tenantNameP", "textField_ltwa0vke");//对方个人签署人姓名
- map.put("contactP", "textField_ltwa0vkf");//对方个人签署人联系电话
- 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("tenantName1", "textField_lznvplmm");//公司名称
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("glbd", "associationFormField_lu9euh8b");//物理印章关联表单
- 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("sealId", "textField_m0dhwqon");//印章id
- map.put("count", "numberField_lu9euh8c");//授权次数
- map.put("fujian", "attachmentField_lzvac8lu");//附件
- map.put("fujian1", "attachmentField_lzv9up2n");//附件1
- } 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("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("mobile", "textField_lwzqvg93");//授权人手机号
- map.put("contractId", "textField_lwg241g6");//合同Id
- 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("tenantName1", "textField_lznvplmm");//公司名称
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("categoryId", "textField_lw044nmr");//业务分类Id
- map.put("glbd", "associationFormField_lu6mvmik");//物理印章关联表单
- 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("sealId", "textField_m0dhyj02");//印章id
- 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("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- 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 if (type.equals("FORM-040619C0CE6744EDA4154B4BBBF1843F49JY")) {
- //hz06定调价
- map.put("subject", "textField_ltrzli9n");//合同名称
- map.put("sn", "serialNumberField_ltse8sos");//合同编号
- map.put("tenantName", "textField_mayy2yf8");//公司名称
- map.put("categoryName", "textField_mayy2yf8");//公司名称
- map.put("contractId", "textField_lwg1z6hk");//公司名称
- map.put("categoryId", "textField_lvz45lii");//业务分类Id
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("sealName", "textField_lx1gzqai");//授权印章名称
- map.put("sealId", "textField_m0dhpgjr");//印章id
- } else if (type.equals("FORM-FD73905FB9C24E3A99244F901D9C98AFH4E6")) {
- //合同续签流程
- map.put("subject", "textField_lu991xi2");//合同名称
- map.put("sn", "serialNumberField_lu991xi3");//合同编号
- map.put("tenantName", "textField_lvz1kozf");//公司名称
- map.put("categoryId", "textField_lvm5xmqe");//业务分类Id
- map.put("categoryName", "textField_lvz1kozg");//业务分类名称
- map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- map.put("contact", "textField_lu991xih");//续签人手机号码
- map.put("contractId", "textField_lwah8x72");//合同Id
- map.put("jf", "textField_lvz1kozf");//公司主体名称
- map.put("sfzh", "textField_lu991xig");//续签人身份证号码
- map.put("xm", "textField_lzkz3mkq");//续签人姓名
- map.put("htkssj", "dateField_lu991xii");//合同开始时间
- map.put("htjssj", "dateField_lu991xij");//合同结束时间
- map.put("xdqxkssj", "dateField_lu991xim");//续订期限开始时间
- map.put("xdqxjzsj", "dateField_lu991xin");//续订期限结束时间
- map.put("zfjjbcjrq", "dateField_lzl3nrxf");//续订期限结束时间
- map.put("jjbcj", "numberField_lzl3nrxg");//续订期限结束时间
- } else if (type.equals("FORM-4C410326630D4B498A1410EFBBEFE8EAORL5")) {
- //HZ04-合作校区警示/解约函
- map.put("subject", "textField_m0yoek7p");//合同名称
- map.put("sn", "serialNumberField_m0yoek7q");//合同编号
- map.put("tenantName", "textField_m0z328xq");//公司名称
- map.put("glbd", "associationFormField_m0yx25he");//物理印章关联表单
- map.put("count", "numberField_m0yx25hf");//盖章次数
- // map.put("categoryName", "textField_lvz1kozg");//业务分类名称
- // map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- // map.put("creatorName", "textField_lzpdjzfp");//创建人名称
- // map.put("creatorContact", "textField_lzpdjzfq");//创建人手机号
- } else {
- throw new Exception();
- }
- return map.get(key);
- }
- //todo 待完善
- @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);
- String categoryName = data.get(getCust(type, "categoryName")).toString();
- //把文件下载到本地路径 ,并获取到文档ID
- List<String> documentId = new ArrayList<>();
- if (!type.equals("FORM-FD73905FB9C24E3A99244F901D9C98AFH4E6")) {
- 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("creatorName", data.get(getCust(type, "creatorName")).toString());//发起人姓名
- obj.put("creatorContact", data.get(getCust(type, "creatorContact")).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-FD73905FB9C24E3A99244F901D9C98AFH4E6")) {
- if (documentId != null) {
- obj.put("documents", documentId);//文档ID
- }
- }
- if (categoryName.equals("劳动合同") || categoryName.equals("校区劳动合同")
- ) {
- obj.put("send", true);
- } else if (categoryName.equals("校区劳务协议") || categoryName.equals("劳务协议")) {
- obj.put("send", true);
- } else {
- obj.put("send", false);// 是否发起合同;发起合同后不能再进行添加文档、指定签署位置等操作
- }
- //签署人数据
- JSONArray array = new JSONArray();
- JSONArray array1 = new JSONArray();
- if (categoryName.equals("多方电子用印(个人)(我方先签)") ||
- categoryName.equals("我方电子对方物理(个人)(我方先签)")) {
- array.add(getCompASignatory(data.get(getCust(type, "sealId")).toString()));
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameP")).toString(), data.get(getCust(type, "contactP")).toString()));
- } else if (categoryName.equals("我方电子对方物理(企业)(我方先签)") ||
- categoryName.equals("多方电子用印(企业)(我方先签)")) {
- array.add(getCompASignatory(data.get(getCust(type, "sealId")).toString()));
- 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(data.get(getCust(type, "sealId")).toString()));
- 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(data.get(getCust(type, "sealId")).toString()));
- } 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(data.get(getCust(type, "sealId")).toString()));
- } 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(data.get(getCust(type, "sealId")).toString()));
- } else if (categoryName.equals("内部企业单签") ||
- categoryName.equals("默认业务分类")) {
- array.add(getCompASignatory(data.get(getCust(type, "sealId")).toString()));
- } 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("物理用印公司用印场景")) {
- String glbdjson = data.get(getCust(type, "glbd") + "_id").toString();
- String sealjson = StringEscapeUtils.unescapeJava(glbdjson.substring(1, glbdjson.length() - 1));
- List<Map> sealjsonlist = (List<Map>) JSONArray.parse(sealjson);
- for (Map sealmap : sealjsonlist) {
- String sealInstanceId = (String) sealmap.get("instanceId");
- if (sealInstanceId != null) {
- Map sealdata1 = (Map) ydClient.queryData(
- YDParam.builder()
- .formInstId(sealInstanceId)
- .appType(ydConf.getAppType())
- .systemToken(ydConf.getSystemToken())
- .userId(ddConf.getOperator())
- .build(),
- YDConf.FORM_QUERY.retrieve_id
- ).getFormData();
- if (sealdata1 != null) {
- String sealName1 = (String) sealdata1.get("textField_lw6aecve");
- if (sealName1 != null) {
- array1.add(getAuths(sealName1, data.get(getCust(type, "count")).toString()));
- } else {
- // 处理 sealName1 为空的情况
- return null;
- }
- } else {
- // 处理 sealdata1 为空的情况
- return null;
- }
- } else {
- // 处理 sealInstanceId 为空的情况
- return null;
- }
- }
- }
- //把所有参数传到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);
- // JSONObject senddata = qysService.send(contractId, data.get(getCust(type, "tenantName")).toString());
- // //合同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);
- JSONObject senddata = qysService.send(contractId, data.get(getCust(type, "tenantName")).toString());
- //
- // FileUtil.file("C:\\Users\\Administrator\\Desktop\\合同.pdf");
- System.out.println("senddata:" + senddata);
- }
- }
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return McR.success("success");
- }
- private static final Pattern SAFE_FILENAME_PATTERN = Pattern.compile("[^\\w\\u4e00-\\u9fa5-.]");
- @Override
- public String 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);
- //查询宜搭底表数据
- String[] sns = sn.split("-");
- dingshiqiImpl dingshiqi = new dingshiqiImpl();
- 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 maplist = list1.get(0);
- String instanceId = (String) maplist.get("formInstanceId");
- Map data = (Map) ydClient.queryData(YDParam.builder().formInstId(instanceId)
- .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
- .userId(ddConf.getOperator()).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
- log.info("data:{}", data);
- log.info("list1:{}", list1);
- String categoryName = data.get(getCust(formUuid.get("type"), "categoryName")).toString();
- List list = new ArrayList();
- if (categoryName.equals("我方电子对方物理(个人)") || categoryName.equals("我方电子对方物理(个人)(我方先签)")
- || categoryName.equals("我方电子对方物理(企业&个人)") || categoryName.equals("我方电子对方物理(企业&个人)(我方先签)")
- || categoryName.equals("我方电子对方物理(企业)") || categoryName.equals("我方电子对方物理(企业)(我方先签)")) {
- 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();
- // 1. 获取原始文件名并清理特殊字符
- String originalName = entry.getName();
- String safeName = SAFE_FILENAME_PATTERN.matcher(originalName).replaceAll("");
- // 2. 替换空格为下划线(可选)
- safeName = safeName.replace(" ", "_");
- // 3. 构建安全文件路径
- String filePath = destDirectory + File.separator + safeName;
- 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();
- }
- for (String unzippedFile : unzippedFiles) {
- Map map = new HashMap();
- String fileName = FileUtil.getName(unzippedFile);
- if (fileName.contains("签署摘要")) {
- continue; // 跳过这个文件
- }
- 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);
- }
- if (status.equals("COMPLETE") || status.equals("SIGNED") || status.equals("FINISHED")) {
- 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();
- // 1. 获取原始文件名并清理特殊字符
- String originalName = entry.getName();
- String safeName = SAFE_FILENAME_PATTERN.matcher(originalName).replaceAll("");
- // 2. 替换空格为下划线(可选)
- safeName = safeName.replace(" ", "_");
- // 3. 构建安全文件路径
- String filePath = destDirectory + File.separator + safeName;
- 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();
- }
- for (String unzippedFile : unzippedFiles) {
- Map map = new HashMap();
- String fileName = FileUtil.getName(unzippedFile);
- if (fileName.contains("签署摘要")) {
- continue; // 跳过这个文件
- }
- 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);
- }
- Map param2 = new HashMap();
- param2.put("x-acs-dingtalk-access-token", dingshiqi.getAccessToken_PJSS());
- Map body3 = new HashMap();
- body3.put("appType", "APP_VCTRP6227CC8368NDOID");
- body3.put("systemToken", "5H9662C1X8XJLFFCE841M5VBEBQ73DM5IBPULPI3");
- body3.put("processInstanceId", instanceId);
- body3.put("userId", "13810479803");
- boolean flag = true;
- String taskId = "";
- String s = UtilHttp.doGet("https://api.dingtalk.com/v1.0/yida/processes/operationRecords", param2, (Map<String, Object>) body3);
- JSONObject obj = JSONObject.parseObject(s);
- JSONArray arr = obj.getJSONArray("result");
- for (int i = 0; i < arr.size(); i++) {
- JSONObject json = arr.getJSONObject(i);
- flag = false;
- if (json.getString("operatorUserId").equals("13810479803") ){
- taskId = json.getString("taskId");
- }
- if (json.getString("operatorUserId").equals("13810479803") && json.getString("type").equals("TODO")) {
- taskId = json.getString("taskId");
- flag = true;
- break;
- }
- }
- if (flag){
- taskExecute(instanceId, taskId);
- System.out.println("taskId");
- }else {
- ydClient.operateData(YDParam.builder()
- .formUuid("FORM-F7B0E685C56E41FC939A581F8B7C2665PXPV")
- .formDataJson(JSONObject.toJSONString(UtilMap.map("textField_lzns5l3l, textField_lzns5l3k, textField_lzns5l3m", sn, instanceId, taskId)))
- .build(), YDConf.FORM_OPERATION.create);
- }
- if(list.size() > 0){
- 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 "success";
- }
- //自动系统管理员自动审批流程
- private void taskExecute(String instanceId, String taskId) {
- Map param3 = new HashMap();
- param3.put("x-acs-dingtalk-access-token", new dingshiqiImpl().getAccessToken_PJSS());
- Map body4 = new HashMap();
- body4.put("outResult", "AGREE");
- body4.put("appType", "APP_VCTRP6227CC8368NDOID");
- body4.put("systemToken", "5H9662C1X8XJLFFCE841M5VBEBQ73DM5IBPULPI3");
- body4.put("remark", "同意");
- body4.put("taskId", taskId);
- body4.put("processInstanceId", instanceId);
- body4.put("userId", "13810479803");
- String s1 = UtilHttp.doPost("https://api.dingtalk.com/v1.0/yida/tasks/execute", param3, null, (Map<String, Object>) body4);
- System.out.println("result" + s1);
- }
- @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");
- Integer currentPage = Integer.valueOf(param.getString("currentPage"));
- Integer pageSize = Integer.valueOf(param.getString("pageSize"));
- 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);
- //获取印章详情
- String glbd = getCust(type, "glbd");
- String glbdjson = data.get(getCust(type, "glbd") + "_id").toString();
- String sealjson = StringEscapeUtils.unescapeJava(glbdjson.substring(1, glbdjson.length() - 1));
- List<Map> sealjsonlist = (List<Map>) JSONArray.parse(sealjson);
- System.out.println("==========" + sealjsonlist);
- JSONObject obj = new JSONObject();
- 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")));//发起员工编号
- ArrayList<Object> objects1 = new ArrayList<>();
- for (Map sealjsonmap : sealjsonlist) {
- JSONObject auths = new JSONObject();
- String sealInstanceId = (String) sealjsonmap.get("instanceId");
- Map sealdata1 = (Map) ydClient.queryData(YDParam.builder().formInstId(sealInstanceId)
- .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
- .userId(ddConf.getOperator()).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
- System.out.println("aaaaaaa==========" + sealdata1);
- String aaa = (String) sealdata1.get("textField_lwywohh0");
- String aaa1 = (String) sealdata1.get("textField_lw6aecve");
- ArrayList<Object> objects = new ArrayList<>();
- Map hashMap = new HashMap();
- hashMap.put("mobile", aaa);
- Map hashUser = new HashMap();
- hashUser.put("number", data.get(getCust(type, "applyerNumber")));
- objects.add(hashMap);
- objects.add(hashUser);
- auths.put("sealName", aaa1);//印章名称
- auths.put("count", data.get(getCust(type, "count")));//授权数量
- auths.put("users", objects);
- objects1.add(auths);
- }
- obj.put("auths", objects1);
- JSONObject code = qysService.applyseals(obj);
- System.out.println("code===========" + code);
- JSONObject json = code.getJSONObject("result");
- JSONArray sealAuthsArray = json.getJSONArray("sealAuths");
- ObjectMapper mapper = new ObjectMapper();
- List<Map<String, Object>> pageResult = null;
- Map result = new HashMap();
- try {
- // 假设这是从文件或者网络读取的JSON数据
- String jsonData = String.valueOf(sealAuthsArray);
- // 解析JSON数据
- ArrayNode arrayNode = (ArrayNode) mapper.readTree(jsonData);
- // 处理每个对象
- List<Map<String, Object>> resultList = new ArrayList<>();
- for (JsonNode node : arrayNode) {
- Map<String, Object> map = new HashMap<>();
- map.put("userName", node.get("userName").asText());
- map.put("sealName", node.get("sealName").asText());
- String contact = node.get("contact") != null && !node.get("contact").isMissingNode() ? node.get("contact").asText() : String.valueOf(data.get(getCust(type, "applyerNumber")));
- map.put("contact", contact);
- String vertifyCode = node.get("vertifyCode") != null && !node.get("vertifyCode").isMissingNode() ? node.get("vertifyCode").asText() : "授权码不存在";
- map.put("vertifyCode", vertifyCode);
- resultList.add(map);
- }
- // int currentPage = 1; // 当前页码
- // int pageSize = 2; // 每页的数量
- pageResult = getPage(resultList, currentPage, pageSize);
- // 打印结果
- System.out.println(pageResult);
- result.put("totalCount", resultList.size());
- result.put("data", pageResult);
- result.put("currentPage", currentPage);
- } catch (IOException e) {
- e.printStackTrace();
- }
- return McR.success(result);
- }
- private static List<Map<String, Object>> getPage(List<Map<String, Object>> list, int pageNum, int pageSize) {
- int startIndex = (pageNum - 1) * pageSize;
- int endIndex = Math.min(startIndex + pageSize, list.size());
- return list.subList(startIndex, endIndex);
- }
- @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);
- }
- }
- @Override
- public McR createContract(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);
- JSONObject obj = new JSONObject();
- // obj.put("subject",data.get("textField_ltsbwef0"));//合同名称
- obj.put("subject", data.get(getCust(type, "subject")).toString());//合同名称
- obj.put("creatorName", data.get(getCust(type, "creatorName")).toString());//发起人姓名
- obj.put("creatorContact", data.get(getCust(type, "creatorContact")).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
- List<Map<String, Object>> params1 = new ArrayList<>();
- List<Map<String, Object>> params2 = new ArrayList<>();
- String categoryName = data.get(getCust(type, "categoryName")).toString();
- 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")));//乙方手机号码
- if (categoryName.equals("劳动合同") || categoryName.equals("校区劳动合同")
- ) {
- 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, "ldhtksrq"));
- // 将时间戳转换为 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")));//工作地点
- 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);
- } else {
- if (categoryName.equals("劳务协议") || categoryName.equals("校区劳务协议")
- ) {
- 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, "dyzarksrq"));
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- //// 将时间戳转换为 Date 对象
- Date date4 = new Date(timestamp4);
- //// 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate4 = sdf.format(date4);
- dyzarksrq.put("name", "dyzarksrq");
- // dyzarksrq.put("value", timestamp4);//开始日期
- dyzarksrq.put("value", formattedDate4);//开始日期
- JSONObject dyzarjsrq = new JSONObject();
- long timestamp5 = (long) data.get(getCust(type, "dyzarjsrq"));
- // 将时间戳转换为 Date 对象
- Date date5 = new Date(timestamp5);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate5 = sdf.format(date5);
- dyzarjsrq.put("name", "dyzarjsrq");
- dyzarjsrq.put("value", formattedDate5);//结束日期
- // dyzarjsrq.put("value", timestamp5);//结束日期
- 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);
- }
- }
- }
- // System.out.println("qqqqqqqqqqqqqqq" + params2);
- JSONArray array = new JSONArray();
- if (categoryName.equals("劳动合同") || categoryName.equals("校区劳动合同")
- ) {
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameP")).toString(), data.get(getCust(type, "contactP")).toString()));
- array.add(getCompASignatory1());
- obj.put("documentParams", params1);
- obj.put("signatories", array);
- obj.put("send", true);
- } else {
- array.add(getPeopSignatory(data.get(getCust(type, "tenantNameP")).toString(), data.get(getCust(type, "contactP")).toString()));
- array.add(getCompASignatory1());
- obj.put("documentParams", params2);
- obj.put("signatories", array);
- obj.put("send", true);
- }
- 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();
- }
- }
- return McR.success("success");
- }
- //TODO 封装代码
- @Override
- public McR createReContract(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);
- JSONObject obj = new JSONObject();
- // obj.put("subject",data.get("textField_ltsbwef0"));//合同名称
- obj.put("subject", data.get(getCust(type, "subject")).toString());//合同名称
- obj.put("creatorName", data.get(getCust(type, "creatorName")).toString());//发起人姓名
- obj.put("creatorContact", data.get(getCust(type, "creatorContact")).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
- List<Map<String, Object>> params1 = new ArrayList<>();
- List<Map<String, Object>> params2 = new ArrayList<>();
- List<Map<String, Object>> params3 = new ArrayList<>();
- List<Map<String, Object>> params4 = new ArrayList<>();
- String categoryName = data.get(getCust(type, "categoryName")).toString();
- if (categoryName.equals("续签(固定几年)")
- ) {
- JSONObject jf = new JSONObject();
- jf.put("name", "jf");
- jf.put("value", data.get(getCust(type, "jf")));//甲方名称
- JSONObject xm = new JSONObject();
- xm.put("name", "xm");
- xm.put("value", data.get(getCust(type, "xm")));//身份证号
- JSONObject sfzh = new JSONObject();
- sfzh.put("name", "sfzh");
- sfzh.put("value", data.get(getCust(type, "sfzh")));//乙方
- JSONObject htkssj = new JSONObject();
- long timestamp = (long) data.get(getCust(type, "htkssj"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date = new Date(timestamp);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate = sdf.format(date);
- htkssj.put("name", "htkssj");
- htkssj.put("value", formattedDate);//合同开始时间
- JSONObject xdqxkssj = new JSONObject();
- long timestamp1 = (long) data.get(getCust(type, "xdqxkssj"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date1 = new Date(timestamp1);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate1 = sdf1.format(date1);
- xdqxkssj.put("name", "xdqxkssj");
- xdqxkssj.put("value", formattedDate1);//续订期限开始时间
- JSONObject xdqxjzsj = new JSONObject();
- long timestamp2 = (long) data.get(getCust(type, "xdqxjzsj"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date2 = new Date(timestamp2);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate2 = sdf2.format(date2);
- xdqxjzsj.put("name", "xdqxjzsj");
- xdqxjzsj.put("value", formattedDate2);//续订期限开始时间
- params1.add(jf);
- params1.add(xm);
- params1.add(sfzh);
- params1.add(htkssj);
- params1.add(xdqxkssj);
- params1.add(xdqxjzsj);
- } else if (categoryName.equals("续签(无固定期限)")) {
- JSONObject jf = new JSONObject();
- jf.put("name", "jf");
- jf.put("value", data.get(getCust(type, "jf")));//甲方名称
- JSONObject xm = new JSONObject();
- xm.put("name", "xm");
- xm.put("value", data.get(getCust(type, "xm")));//身份证号
- JSONObject sfzh = new JSONObject();
- sfzh.put("name", "sfzh");
- sfzh.put("value", data.get(getCust(type, "sfzh")));//乙方
- JSONObject htkssj = new JSONObject();
- long timestamp = (long) data.get(getCust(type, "htkssj"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date = new Date(timestamp);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate = sdf.format(date);
- htkssj.put("name", "htkssj");
- htkssj.put("value", formattedDate);//合同开始时间
- params2.add(jf);
- params2.add(xm);
- params2.add(sfzh);
- params2.add(htkssj);
- } else if (categoryName.equals("续签(员工合同到期公司不再与员工续签)")) {
- JSONObject xm = new JSONObject();
- xm.put("name", "xm");
- xm.put("value", data.get(getCust(type, "xm")));//姓名
- JSONObject sfzh = new JSONObject();
- sfzh.put("name", "sfzh");
- sfzh.put("value", data.get(getCust(type, "sfzh")));//身份证号
- JSONObject htkssj = new JSONObject();
- long timestamp = (long) data.get(getCust(type, "htkssj"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date = new Date(timestamp);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate = sdf.format(date);
- htkssj.put("name", "htkssj");
- htkssj.put("value", formattedDate);//合同开始时间
- JSONObject htjssj = new JSONObject();
- long timestamp1 = (long) data.get(getCust(type, "htjssj"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date1 = new Date(timestamp1);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate1 = sdf1.format(date1);
- htjssj.put("name", "htjssj");
- htjssj.put("value", formattedDate1);//续订期限开始时间
- JSONObject zfjjbcjrq = new JSONObject();
- long timestamp3 = (long) data.get(getCust(type, "zfjjbcjrq"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf3 = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date3 = new Date(timestamp3);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate2 = sdf3.format(date3);
- zfjjbcjrq.put("name", "zfjjbcjrq");
- zfjjbcjrq.put("value", formattedDate2);//支付经济补偿金日期
- JSONObject jjbcj = new JSONObject();
- jjbcj.put("name", "jjbcj");
- jjbcj.put("value", data.get(getCust(type, "jjbcj")));//姓名
- params3.add(jjbcj);
- params3.add(xm);
- params3.add(sfzh);
- params3.add(htkssj);
- params3.add(htjssj);
- params3.add(zfjjbcjrq);
- } else {
- JSONObject xm = new JSONObject();
- xm.put("name", "xm");
- xm.put("value", data.get(getCust(type, "xm")));//姓名
- JSONObject htkssj = new JSONObject();
- long timestamp = (long) data.get(getCust(type, "htkssj"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date = new Date(timestamp);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate = sdf.format(date);
- htkssj.put("name", "htkssj");
- htkssj.put("value", formattedDate);//合同开始时间
- JSONObject htjssj = new JSONObject();
- long timestamp1 = (long) data.get(getCust(type, "htjssj"));
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf1 = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date1 = new Date(timestamp1);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String formattedDate1 = sdf1.format(date1);
- htjssj.put("name", "htjssj");
- htjssj.put("value", formattedDate1);//续订期限开始时间
- params4.add(xm);
- params4.add(htkssj);
- params4.add(htjssj);
- }
- JSONArray array = new JSONArray();
- if (categoryName.equals("续签(固定几年)")) {
- array.add(getPeopSignatory(data.get(getCust(type, "xm")).toString(), data.get(getCust(type, "contact")).toString()));
- array.add(getCompASignatory1());
- obj.put("documentParams", params1);
- obj.put("signatories", array);
- obj.put("send", true);
- } else if (categoryName.equals("续签(无固定期限)")) {
- array.add(getPeopSignatory(data.get(getCust(type, "xm")).toString(), data.get(getCust(type, "contact")).toString()));
- array.add(getCompASignatory1());
- obj.put("documentParams", params2);
- obj.put("signatories", array);
- obj.put("send", true);
- } else if (categoryName.equals("续签(员工合同到期公司不再与员工续签)")) {
- array.add(getPeopSignatory(data.get(getCust(type, "xm")).toString(), data.get(getCust(type, "contact")).toString()));
- array.add(getCompASignatory1());
- obj.put("documentParams", params3);
- obj.put("signatories", array);
- obj.put("send", true);
- } else {
- array.add(getPeopSignatory(data.get(getCust(type, "xm")).toString(), data.get(getCust(type, "contact")).toString()));
- array.add(getCompASignatory1());
- obj.put("documentParams", params4);
- obj.put("signatories", array);
- obj.put("send", true);
- }
- JSONObject draft = qysService.createDraft(obj);
- System.out.println(draft);
- // 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();
- }
- }
- return McR.success("success");
- }
- @Override
- public String callback1(Map<String, String> param) throws Exception {
- dingshiqiImpl dingshiqi = new dingshiqiImpl();
- String sn = param.get("sn");
- 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");
- Map param2 = new HashMap();
- param2.put("x-acs-dingtalk-access-token", dingshiqi.getAccessToken_PJSS());
- Map body3 = new HashMap();
- body3.put("appType", "APP_VCTRP6227CC8368NDOID");
- body3.put("systemToken", "5H9662C1X8XJLFFCE841M5VBEBQ73DM5IBPULPI3");
- body3.put("processInstanceId", instanceId);
- body3.put("userId", "13810479803");
- boolean flag = true;
- do {
- String s = UtilHttp.doGet("https://api.dingtalk.com/v1.0/yida/processes/operationRecords", param2, (Map<String, Object>) body3);
- JSONObject obj = JSONObject.parseObject(s);
- JSONArray arr = obj.getJSONArray("result");
- for (int i = 0; i < arr.size(); i++) {
- JSONObject json = arr.getJSONObject(i);
- flag = false;
- if (json.getString("operatorUserId").equals("13810479803") && json.getString("type").equals("TODO")) {
- taskExecute(instanceId, json.getString("taskId"));
- flag = true;
- break;
- }
- }
- } while (flag);
- return "success";
- }
- @Override
- public McR viewurl(String contractId, String pageType) throws Exception {
- try {
- log.info("获取合同浏览页面 {},{}", contractId,pageType);
- JSONObject urlR = qysService.viewurl(contractId,pageType);
- String viewUrl = urlR.getString("viewUrl");
- if (!QYS_SUCCESS_CODE.equals(urlR.getString("code"))) {
- return McR.error(urlR.getString("code"), urlR.getString("message"));
- } else {
- return McR.success(viewUrl);
- }
- } catch (Exception e) {
- return McR.error("401", "获取失败");
- }
- }
- @Override
- public McR audit(String contractId) throws Exception {
- try {
- log.info("合同审批 {}", contractId);
- JSONObject urlR = qysService.audit(contractId);
- String viewUrl = urlR.getString("viewUrl");
- if (!QYS_SUCCESS_CODE.equals(urlR.getString("code"))) {
- return McR.error(urlR.getString("code"), urlR.getString("message"));
- } else {
- return McR.success(viewUrl);
- }
- } catch (Exception e) {
- return McR.error("401", "获取失败");
- }
- }
- //TODO hz06
- @Override
- public McR createHzContract(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<>();
- documentId = createbyMoBan(formInstanceId);
- //定义参数 创建合同草稿
- JSONObject obj = new JSONObject();
- obj.put("subject", data.get(getCust(type, "subject")).toString());//合同名称
- obj.put("creatorName", data.get(getCust(type, "creatorName")).toString());//发起人姓名
- obj.put("creatorContact", data.get(getCust(type, "creatorContact")).toString());//发起人联系方式
- obj.put("sn", data.get(getCust(type, "sn")));//合同编号流水号
- obj.put("tenantName", "北京领语堂科技发展有限公司");//发起方公司名称
- // obj.put("tenantName", data.get(getCust(type, "tenantName")));//发起方公司名称
- // obj.put("categoryId", data.get(getCust(type, "categoryId")));//业务分类Id data.get("textField_lvm5xmqe")
- obj.put("categoryId", "2741593310334300984");//业务分类Id data.get("textField_lvm5xmqe")
- obj.put("send", true);
- if (documentId != null) {
- obj.put("documents", documentId);//文档ID
- }
- JSONArray array = new JSONArray();
- array.add(getCompASignatory(data.get(getCust(type, "sealId")).toString()));
- obj.put("signatories", array);
- //1.调用创建合同草稿方法
- JSONObject draft = qysService.createDraft(obj);
- if (draft != null) {
- String contractId = draft.getString("contractId");
- if (contractId != "") {
- //发起合同
- 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);
- // JSONObject senddata = qysService.send(contractId, data.get(getCust(type, "tenantName")).toString());
- // System.out.println("senddata:" + senddata);
- }
- }
- return McR.success();
- }
- private List<String> createbyMoBan( String formInstanceId) {
- Map<String, Object> data = new HashMap<>();
- data.put("templateId", "2758656747503223510");
- Map data1 = (Map) ydClient.queryData(YDParam.builder().formInstId(formInstanceId)
- .appType(ydConf.getAppType()).systemToken(ydConf.getSystemToken())
- .userId(ddConf.getOperator()).build(), YDConf.FORM_QUERY.retrieve_id).getFormData();
- String title = String.valueOf(data1.get("textField_ltrzli9n"));//发文公司
- String fwgs = String.valueOf(data1.get("textField_mayy2yf8"));//发文公司
- String fzf = String.valueOf(data1.get("textField_lxa4w5uh"));//发子方
- String dz = String.valueOf(data1.get("textField_lxa4w5uc"));//代字
- String sxh = String.valueOf(data1.get("textField_lxa4w5ud"));//红头文件编号
- String syqy = String.valueOf(data1.get("textField_lxa4w5ub"));//适用区域
- String cpx = String.valueOf(data1.get("textField_lxa4w5uf"));//产品线
- String dtj = String.valueOf(data1.get("selectField_lxa4w5ue"));//定调价
- long timestamp = (long) data1.get("dateField_m0wel9k2");//实施日期
- // long timestamp = Long.parseLong("1747893049582");
- // 创建 SimpleDateFormat 对象来定义输出日期的格式
- SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
- // 将时间戳转换为 Date 对象
- Date date = new Date(timestamp);
- // 使用 SimpleDateFormat 格式化 Date 对象为所需的日期格式
- String ssrq = sdf.format(date);//申请执行日期
- List<Map> mapList = (List<Map>)data1.get("tableField_ltse8sqr");
- Map<String, Object> params = new HashMap<>();
- if(mapList!=null && mapList.size()>0){
- List<Map> bg = new ArrayList<>();
- for (int i = 0; i <mapList.size(); i++) {
- Map map = mapList.get(i);
- String kcjdxua = map.get("textField_luhyit7r") != null ? String.valueOf(map.get("textField_luhyit7r")) : "";//课时阶段名称
- String zkss = map.get("numberField_ltse8sqv") != null ? String.valueOf(map.get("numberField_ltse8sqv")) : "";//总课时数
- String ksfyks = map.get("numberField_ltse8sqw") != null ? String.valueOf(map.get("numberField_ltse8sqw")) : "";//课时费单价
- String ksfy = map.get("numberField_ltse8sqx") != null ? String.valueOf(map.get("numberField_ltse8sqx")) : "";//课时费
- String sf = map.get("numberField_ltse8sqy") != null ? String.valueOf(map.get("numberField_ltse8sqy")) : "";//教辅书费
- String byfprekkqjrbtxyn = map.get("numberField_ltse8sqz") != null ? String.valueOf(map.get("numberField_ltse8sqz")) : "";//其他费用
- String zj = map.get("numberField_ltse8sr0") != null ? String.valueOf(map.get("numberField_ltse8sr0")) : "";//总价
- Map table1 = new HashMap<>();
- table1.put("kcjdxua", kcjdxua);
- table1.put("zkss", zkss);
- table1.put("ksfyks", ksfyks);
- table1.put("ksfy", ksfy);
- table1.put("sf", sf);
- table1.put("byfprekkqjrbtxyn",byfprekkqjrbtxyn);
- table1.put("zj", zj);
- bg.add(table1);
- params.put("bg",JSONObject.toJSONString(bg));
- }
- }
- params.put("fwgs", fwgs);
- params.put("fzf", fzf);
- params.put("dz", dz);
- params.put("sxh", sxh);
- params.put("syqy", syqy);
- params.put("cpx", cpx);
- params.put("dtj", dtj);
- params.put("ssrq", ssrq);
- data.put("title", title);
- data.put("params", JSONObject.toJSONString(params));
- JSONObject draft = null;
- List<String> resultList = new ArrayList<>();
- try {
- draft = QYSService.createbyMoban(data);
- if (draft != null) {
- resultList.add(draft.getString("documentId"));
- }
- } catch (Exception e) {
- e.printStackTrace();
- }
- return resultList;
- }
- // @Override
- // public McR appointurldownload(String contractId) throws Exception {
- // try {
- // log.info("获取预签署地址 {}", contractId);
- // JSONObject urlR = qysService.appointurldownload(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", "获取失败");
- // }
- // }
- 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");
- map.put("contractId", "textField_lwah8x72");
- break;
- case "CG11"://框架采购
- map.put("type", "FORM-82E566F8576E44D3AB4B34033A27E76FEB75");
- map.put("sn", "serialNumberField_ltsbweh2");
- map.put("contractId", "textField_lwah8x72");
- break;
- case "HT02"://框架
- map.put("type", "FORM-5DB656AF0F0E4EFA85A4739D55C23ED85BXO");
- map.put("sn", "serialNumberField_lvz8coae");
- map.put("contractId", "textField_lwg205ug");
- break;
- case "HT03"://租赁
- map.put("type", "FORM-FCDDD18FD63E49B2A4C652FBDB1874F6DPHW");
- map.put("sn", "serialNumberField_ltwcj54l");
- map.put("contractId", "textField_lwg1wbix");
- 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");
- map.put("contractId", "textField_lwg219kl");
- break;
- case "HR09"://hr用印
- map.put("type", "FORM-54972289A0B7416287A9BA44DA6CCDC50QUC");
- map.put("sn", "serialNumberField_lu9euh7o");
- break;
- case "HR18"://新签劳动合同/协议
- map.put("type", "FORM-0D501EF1688247DC932E7784298BD46BRYHC");
- map.put("sn", "serialNumberField_luauhgb5");
- map.put("contractId", "textField_lwg241g6");
- 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;
- case "XZQYLC"://加盟签约
- map.put("type", "FORM-53A0FB8715FB4378B0708794DFAF7089SV8P");
- map.put("sn", "serialNumberField_ltsaig24");
- break;
- case "HR02"://合同续签
- map.put("type", "FORM-FD73905FB9C24E3A99244F901D9C98AFH4E6");
- map.put("sn", "serialNumberField_lu991xi3");
- map.put("contractId", "textField_lwah8x72");
- break;
- case "HZDTJLC"://hz06
- map.put("type", "FORM-040619C0CE6744EDA4154B4BBBF1843F49JY");
- map.put("sn", "serialNumberField_ltse8sos");
- map.put("contractId", "textField_lwg1z6hk");
- 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(String sealId) {
- JSONObject signatory = new JSONObject();
- ArrayList<Object> actions = new ArrayList<>();
- Map sss = new HashMap<>();
- sss.put("sealId", sealId);
- sss.put("type", "CORPORATE");
- sss.put("serialNo", 1);
- actions.add(sss);
- signatory.put("tenantType", "COMPANY");
- signatory.put("actions", actions);
- return signatory;
- }
- private Map getCompASignatory1() {
- 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 formuuid ="FORM-B27C1AE7298648F29E836B5FDF469DBDPFCK";//其他用印
- String hrformuuid ="FORM-54972289A0B7416287A9BA44DA6CCDC50QUC";//hr09
- String htformuuid ="FORM-55D56A69CCCE4043A01660C8910E33BAQ4N0";//合同用印
- String kjformuuid ="FORM-5DB656AF0F0E4EFA85A4739D55C23ED85BXO";//框架用印
- String jsonString = "";
- // 根据categoryName的值来决定从data中获取哪个键对应的值
- //其他用印处理附件选择问题
- if (type.equals(formuuid)) {
- String categoryName = String.valueOf(data.get(getCust(formuuid, "categoryName")));
- // String ghl = data.get("selectField_ltwktalx") != null ? data.get("selectField_ltwktalx").toString() : "";
- if ("物理用印外带场景".equals(categoryName) || "物理用印公司用印场景".equals(categoryName) ) {
- jsonString = data.get(getCust(type, "fujian1")) != null ? data.get(getCust(type, "fujian1")).toString() : "";
- } else {
- jsonString = data.get(getCust(type, "fujian")) != null ? data.get(getCust(type, "fujian")).toString() : "";
- }
- } else if (type.equals(hrformuuid)) {
- String categoryName = String.valueOf(data.get(getCust(hrformuuid, "categoryName")));
- String sfbh = data.get("selectField_lu9euh7u") != null ? data.get("selectField_lu9euh7u").toString() : "";
- if ("内部企业单签".equals(categoryName) && "是".equals(sfbh)) {
- jsonString = data.get(getCust(type, "fujian")) != null ? data.get(getCust(type, "fujian")).toString() : "";
- } else {
- jsonString = data.get(getCust(type, "fujian1")) != null ? data.get(getCust(type, "fujian1")).toString() : "";
- }
- } else if (type.equals(htformuuid)) {
- // String categoryName = String.valueOf(data.get(getCust(htformuuid, "categoryName")));
- String yycj = data.get("selectField_ltsbwei5") != null ? data.get("selectField_ltsbwei5").toString() : "";
- if ("我方电子对方物理用印".equals(yycj)) {
- jsonString = data.get(getCust(type, "fujian1")) != null ? data.get(getCust(type, "fujian1")).toString() : "";
- } else {
- jsonString = data.get(getCust(type, "fujian")) != null ? data.get(getCust(type, "fujian")).toString() : "";
- }
- } else if (type.equals(kjformuuid)) {
- // String categoryName = String.valueOf(data.get(getCust(htformuuid, "categoryName")));
- String yycj = data.get("selectField_lvz8cob7") != null ? data.get("selectField_lvz8cob7").toString() : "";
- if ("我方电子对方物理用印".equals(yycj)) {
- jsonString = data.get(getCust(type, "fujian1")) != null ? data.get(getCust(type, "fujian1")).toString() : "";
- } else {
- jsonString = data.get(getCust(type, "fujian")) != null ? data.get(getCust(type, "fujian")).toString() : "";
- }
- } else {
- jsonString = data.get(getCust(type, "fujian")) != null ? 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;
- // String localFilePath = "C:\\Users\\EDY\\Downloads\\" + fj_name;
- //下载文件到本地
- RsQysServiceImpl.downloadFile1(fj_url, localFilePath);
- Map<String, Object> data1 = new HashMap<>();
- data1.put("file", FileUtil.file("/home/file/" + fj_name));
- // data1.put("file", FileUtil.file("C:\\Users\\EDY\\Downloads\\" + 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);
- }
- }
- }
|