Test1.java 159 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007200820092010201120122013201420152016201720182019202020212022202320242025202620272028202920302031203220332034203520362037203820392040204120422043204420452046204720482049205020512052205320542055205620572058205920602061206220632064206520662067206820692070207120722073207420752076207720782079208020812082208320842085208620872088208920902091209220932094209520962097209820992100210121022103210421052106210721082109211021112112211321142115211621172118211921202121212221232124212521262127212821292130213121322133213421352136213721382139214021412142214321442145214621472148214921502151215221532154215521562157215821592160216121622163216421652166216721682169217021712172217321742175217621772178217921802181218221832184218521862187218821892190219121922193219421952196219721982199220022012202220322042205220622072208220922102211221222132214221522162217221822192220222122222223222422252226222722282229223022312232223322342235223622372238223922402241224222432244224522462247224822492250225122522253225422552256225722582259226022612262226322642265226622672268226922702271227222732274227522762277227822792280228122822283228422852286228722882289229022912292229322942295229622972298229923002301230223032304230523062307230823092310231123122313231423152316231723182319232023212322232323242325232623272328232923302331233223332334233523362337233823392340234123422343234423452346234723482349235023512352235323542355235623572358235923602361236223632364236523662367236823692370237123722373237423752376237723782379238023812382238323842385238623872388238923902391239223932394239523962397239823992400240124022403240424052406240724082409241024112412241324142415241624172418241924202421242224232424242524262427242824292430243124322433243424352436243724382439244024412442244324442445244624472448244924502451245224532454245524562457245824592460246124622463246424652466246724682469247024712472247324742475247624772478247924802481248224832484248524862487248824892490249124922493249424952496249724982499250025012502250325042505250625072508250925102511251225132514251525162517251825192520252125222523252425252526252725282529253025312532253325342535253625372538253925402541254225432544254525462547254825492550255125522553255425552556255725582559256025612562256325642565256625672568256925702571257225732574257525762577257825792580258125822583258425852586258725882589259025912592259325942595259625972598259926002601260226032604260526062607260826092610261126122613261426152616261726182619262026212622262326242625262626272628262926302631263226332634263526362637263826392640264126422643264426452646264726482649265026512652265326542655265626572658265926602661266226632664266526662667266826692670267126722673267426752676267726782679268026812682268326842685268626872688268926902691269226932694269526962697269826992700270127022703270427052706270727082709271027112712271327142715271627172718271927202721272227232724272527262727272827292730273127322733273427352736273727382739274027412742274327442745274627472748274927502751275227532754275527562757275827592760276127622763276427652766276727682769277027712772277327742775277627772778277927802781278227832784278527862787278827892790279127922793279427952796279727982799280028012802280328042805280628072808280928102811281228132814281528162817281828192820282128222823282428252826282728282829283028312832283328342835283628372838283928402841284228432844284528462847284828492850285128522853285428552856285728582859286028612862286328642865286628672868286928702871287228732874287528762877287828792880288128822883288428852886288728882889289028912892289328942895289628972898289929002901290229032904290529062907290829092910291129122913291429152916291729182919292029212922292329242925292629272928292929302931293229332934293529362937293829392940294129422943294429452946294729482949295029512952295329542955295629572958295929602961296229632964296529662967296829692970297129722973297429752976297729782979298029812982298329842985298629872988298929902991299229932994299529962997299829993000300130023003300430053006300730083009301030113012301330143015301630173018301930203021302230233024302530263027302830293030303130323033303430353036303730383039304030413042304330443045304630473048304930503051305230533054305530563057305830593060306130623063306430653066306730683069307030713072307330743075307630773078307930803081308230833084308530863087308830893090309130923093309430953096309730983099310031013102310331043105310631073108310931103111311231133114311531163117311831193120312131223123312431253126312731283129313031313132313331343135313631373138313931403141314231433144314531463147314831493150315131523153315431553156315731583159316031613162316331643165316631673168316931703171317231733174317531763177317831793180318131823183318431853186318731883189319031913192319331943195319631973198319932003201320232033204320532063207320832093210321132123213321432153216321732183219322032213222322332243225322632273228322932303231323232333234323532363237323832393240324132423243324432453246324732483249325032513252325332543255325632573258325932603261326232633264326532663267326832693270327132723273327432753276327732783279328032813282328332843285328632873288328932903291329232933294329532963297329832993300330133023303330433053306330733083309331033113312331333143315331633173318331933203321
  1. //package com.muzhi.huanshi.APITest;
  2. //
  3. //import cn.hutool.core.date.DateTime;
  4. //import cn.hutool.core.date.DateUtil;
  5. //import cn.hutool.core.thread.ThreadUtil;
  6. //import com.alibaba.fastjson.JSON;
  7. //import com.alibaba.fastjson.JSONArray;
  8. //import com.alibaba.fastjson.JSONObject;
  9. //import com.aliyun.dingtalkyida_1_0.models.*;
  10. //import com.aliyun.tea.TeaException;
  11. //import com.aliyun.teautil.models.RuntimeOptions;
  12. //import com.auth0.jwt.JWT;
  13. //import com.auth0.jwt.algorithms.Algorithm;
  14. //import com.dingtalk.api.DefaultDingTalkClient;
  15. //import com.dingtalk.api.DingTalkClient;
  16. //import com.dingtalk.api.request.*;
  17. //import com.dingtalk.api.response.*;
  18. //import com.muzhi.huanshi.service.AccessTokenService;
  19. //import com.taobao.api.ApiException;
  20. //import com.taobao.api.internal.util.StringUtils;
  21. //import lombok.extern.slf4j.Slf4j;
  22. //import okhttp3.*;
  23. //import org.apache.commons.codec.digest.DigestUtils;
  24. //import org.apache.commons.lang.StringEscapeUtils;
  25. //import org.apache.poi.ss.formula.functions.T;
  26. //import org.jacoco.agent.rt.internal_035b120.core.internal.flow.IFrame;
  27. //import org.junit.jupiter.api.Test;
  28. //import org.springframework.beans.factory.annotation.Autowired;
  29. //import org.springframework.boot.test.context.SpringBootTest;
  30. //
  31. //import java.io.IOException;
  32. //import java.math.BigDecimal;
  33. //import java.math.RoundingMode;
  34. //import java.text.DateFormat;
  35. //import java.text.DecimalFormat;
  36. //import java.text.SimpleDateFormat;
  37. //import java.util.*;
  38. //import java.util.concurrent.ExecutorService;
  39. //import java.util.concurrent.Executors;
  40. //import java.util.concurrent.TimeUnit;
  41. //
  42. //@SpringBootTest
  43. //@Slf4j
  44. //public class Test1 {
  45. //
  46. // @Autowired
  47. // private AccessTokenService accessTokenService;
  48. //
  49. // @Test
  50. // public void panduan(){
  51. // //判断日期是否为周六周日
  52. // String date = "2022-10-08 00:00:00";
  53. // DateFormat format = new SimpleDateFormat("yyyy-MM-dd");
  54. // Date date1 = null;
  55. // try {
  56. // date1 = format.parse(date);
  57. // System.out.println("date1:" + date1);
  58. // }catch (Exception e){
  59. // e.printStackTrace();
  60. // }
  61. // Calendar calendar = Calendar.getInstance();
  62. // calendar.setTime(date1);
  63. //
  64. // if (calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SATURDAY||calendar.get(Calendar.DAY_OF_WEEK)==Calendar.SUNDAY){
  65. // System.out.println("当前日期为周六周日!");
  66. // }else {
  67. // System.out.println("当前日期为工作日");
  68. // }
  69. // }
  70. //
  71. // @Test
  72. // public void date(){
  73. // int dkcs = 5;
  74. // int ccts = 0;
  75. //
  76. // dkcs = dkcs/2;
  77. // int dkcsLast = (int)dkcs;
  78. //
  79. //
  80. // if (dkcs > 0){
  81. // //实际出差天数
  82. // ccts = ccts + dkcsLast;
  83. // System.out.println("实际出差天数:" + ccts);
  84. // }
  85. //
  86. // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  87. // long startLong = new Long("1670342400000");
  88. // //将时间戳转换为时间
  89. // Date startDate = new Date(startLong);
  90. // System.out.println("出差开始时间(时间型):" + startDate);
  91. // //将时间调整为yyyy-MM-dd HH:mm:ss时间样式
  92. // String startString = simpleDateFormat.format(startDate);
  93. // System.out.println("出差开始时间(时间样式):" + startString);
  94. //
  95. // long endLong = new Long("1670428800000");
  96. // //将时间戳转换为时间
  97. // Date endDate = new Date(endLong);
  98. // System.out.println("出差结束时间(时间型):" + endDate);
  99. // //将时间调整为yyyy-MM-dd HH:mm:ss时间样式
  100. // String endString = simpleDateFormat.format(endDate);
  101. // System.out.println("出差结束时间(时间样式):" + endString);
  102. //
  103. // Calendar calendar1 = Calendar.getInstance();
  104. // calendar1.setTime(endDate);
  105. // //后面一天
  106. // calendar1.add(Calendar.DAY_OF_MONTH,1);
  107. // calendar1.set(Calendar.HOUR_OF_DAY,0);
  108. // calendar1.set(Calendar.MINUTE,0);
  109. // calendar1.set(Calendar.SECOND,0);
  110. // calendar1.set(Calendar.MILLISECOND,0);
  111. // String time1 = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar1.getTime());
  112. // System.out.println("出差结束时间后面一天零点:" + time1);
  113. //
  114. // DateTime lastDateTime = DateUtil.parse(time1);
  115. // System.out.println("出差结束时间后面一天(时间型):" + lastDateTime);
  116. //
  117. // //获取当天前一天的零点零分零秒
  118. // Date Date = new Date(System.currentTimeMillis());
  119. // System.out.println("当前时间:" + Date);
  120. // String dateNowString = simpleDateFormat.format(Date);
  121. // System.out.println("当前时间(时间样式):" + dateNowString);
  122. //
  123. // Calendar calendar = Calendar.getInstance();
  124. // calendar.setTime(Date);
  125. // //前一天
  126. // calendar.add(Calendar.DAY_OF_MONTH,-1);
  127. // calendar.set(Calendar.HOUR_OF_DAY,0);
  128. // calendar.set(Calendar.MINUTE,0);
  129. // calendar.set(Calendar.SECOND,0);
  130. // calendar.set(Calendar.MILLISECOND,0);
  131. // String time = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar.getTime());
  132. // System.out.println("前一天零点:" + time);
  133. //
  134. // Calendar calendar111 = Calendar.getInstance();
  135. // calendar111.setTime(Date);
  136. // //前一个月第一天
  137. // calendar111.add(Calendar.MONTH,-1);
  138. // calendar111.set(Calendar.DAY_OF_MONTH,1);
  139. // calendar111.set(Calendar.HOUR_OF_DAY,0);
  140. // calendar111.set(Calendar.MINUTE,0);
  141. // calendar111.set(Calendar.SECOND,0);
  142. // calendar111.set(Calendar.MILLISECOND,0);
  143. // String FORMtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar111.getTime());
  144. // System.out.println("前一个月第一天零点:" + FORMtime);
  145. //
  146. // Calendar calendar222 = Calendar.getInstance();
  147. // int month222 = calendar222.get(Calendar.MONTH);
  148. // //前一个月最后一天
  149. // calendar222.set(Calendar.MONTH,month222-1);
  150. // calendar222.set(Calendar.DAY_OF_MONTH,calendar222.getActualMaximum(Calendar.DAY_OF_MONTH));
  151. // calendar222.set(Calendar.HOUR_OF_DAY,0);
  152. // calendar222.set(Calendar.MINUTE,0);
  153. // calendar222.set(Calendar.SECOND,0);
  154. // calendar222.set(Calendar.MILLISECOND,0);
  155. // String TOtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar222.getTime());
  156. // System.out.println("前一个月最后一天零点:" + TOtime);
  157. // }
  158. //
  159. // //MD5加密
  160. // @Test
  161. // public void MD5(){
  162. //
  163. // /*明文
  164. // * timestamp毫秒级时间戳
  165. // * */
  166. // //当前时间的时间戳
  167. // long timeMillis = System.currentTimeMillis();
  168. // String timestamp = String.valueOf(timeMillis);
  169. // log.info("当前时间的时间戳(毫秒级):" + timestamp);
  170. //
  171. // /*秘钥
  172. // * AppSecret应用秘钥
  173. // * */
  174. // String AppSecret = "f7585e1f2c4c25682f407af23b7ff7d5f21f4f9e3715c294";
  175. //
  176. // //加密后的字符串
  177. // String encodeStr= DigestUtils.md5Hex(AppSecret + "_" + timestamp);
  178. // log.info("MD5加密后的字符串encodeStr:" + encodeStr);
  179. //
  180. // Map map = new HashMap();
  181. // map.put("appKey","shbqv00tso4dg5kcjz");
  182. // map.put("timestamp",timestamp);
  183. // map.put("verifyCode",encodeStr);
  184. // String parmsStr = JSON.toJSONString(map);
  185. // log.info("封装秘钥参数parmsStr:" + parmsStr);
  186. //
  187. // //售后宝【接口授权】
  188. // //授权码
  189. // String access_token = null;
  190. // //失效时间
  191. // String expire_time = null;
  192. // try {
  193. // OkHttpClient client = new OkHttpClient().newBuilder()
  194. // .build();
  195. // MediaType mediaType = MediaType.parse("application/json");
  196. // RequestBody body = RequestBody.create(mediaType, parmsStr);
  197. // Request request = new Request.Builder()
  198. // .url("https://oapi.shb.ltd/service/auth/get_access_token")
  199. // .method("POST", body)
  200. // .addHeader("Content-Type", "application/json")
  201. // .addHeader("Cookie", "acw_tc=0a45662a16728986832314856e80f39124201b89184960430078b3ebfda740")
  202. // .build();
  203. //
  204. // Response response = client.newCall(request).execute();
  205. // String responseBody = response.body().string();
  206. // log.info("售后宝【接口授权】返回信息:" + responseBody);
  207. // String substring1 = responseBody.substring(1, responseBody.length() - 1);
  208. // log.info("去除首尾双引号后的返回信息:" + substring1);
  209. // String substring2 = substring1.replaceAll("\\\\", "");
  210. // log.info("去除转义字符后的返回信息:" + substring2);
  211. //
  212. // JSONObject jsonObject = JSON.parseObject(substring2);
  213. // JSONObject data = jsonObject.getJSONObject("data");
  214. // //授权码
  215. // access_token = data.getString("access_token");
  216. // //失效时间
  217. // expire_time = data.getString("expire_time");
  218. // }catch (Exception e){
  219. // e.printStackTrace();
  220. // }
  221. //
  222. // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
  223. // long endLong = new Long(expire_time);
  224. // //将时间戳转换为时间
  225. // Date endDate = new Date(endLong);
  226. // System.out.println("授权码失效时间(时间型):" + endDate);
  227. // //将时间调整为yyyy-MM-dd HH:mm:ss时间样式
  228. // String endString = simpleDateFormat.format(endDate);
  229. // System.out.println("授权码失效时间(时间样式):" + endString);
  230. // log.info("【授权码】:" + access_token + "【失效时间】:" + endString);
  231. // }
  232. //
  233. // //【客户列表】
  234. // @Test
  235. // public void getKehuList(){
  236. // Map map = new HashMap();
  237. // map.put("pageSize",50);
  238. // map.put("pageNum",1);
  239. // map.put("keyword","KH20230607020507345");
  240. //
  241. // String jsonString = JSON.toJSONString(map);
  242. // System.out.println("封装的客户列表查询接口条件参数:" + jsonString);
  243. //
  244. // OkHttpClient client = new OkHttpClient().newBuilder()
  245. // .build();
  246. // MediaType mediaType = MediaType.parse("application/json");
  247. // RequestBody body = RequestBody.create(mediaType, jsonString);
  248. // Request request = new Request.Builder()
  249. // .url("https://oapi.shb.ltd/service/customer/get_customers?accessToken=4da6f063-5083-481f-8e0a-be59d41eea40")
  250. // .method("POST", body)
  251. // .addHeader("Content-Type", "application/json")
  252. // .build();
  253. //
  254. // try {
  255. // Response response = client.newCall(request).execute();
  256. // String responseBody = response.body().string();
  257. // log.info("售后宝【客户列表】返回信息:" + responseBody);
  258. // }catch (Exception e){
  259. // e.printStackTrace();
  260. // }
  261. // }
  262. //
  263. // //根据客户编号查询售后宝客户是否存在
  264. // @Test
  265. // public void getKehuBoolean(){
  266. //
  267. // //售后宝授权码
  268. // String shouhoubaoAccessToken = "46998202-77f4-4943-a2a3-61a3a96a0959";
  269. // //客户编号
  270. // String khbh = "KH001";
  271. //
  272. // OkHttpClient client = new OkHttpClient().newBuilder()
  273. // .build();
  274. // Request request = new Request.Builder()
  275. // .url("https://oapi.shb.ltd/service/customer/get_customer_customerNo?accessToken="+shouhoubaoAccessToken+
  276. // "&customerNo="+khbh)
  277. // .method("GET", null)
  278. // .build();
  279. //
  280. // boolean flag = false;
  281. // try {
  282. // Response response = client.newCall(request).execute();
  283. // String responseBody = response.body().string();
  284. // log.info("售后宝【客户详情】返回信息:" + responseBody);
  285. // String substring1 = responseBody.substring(1, responseBody.length() - 1);
  286. // log.info("去除首尾双引号后的返回信息:" + substring1);
  287. // String substring2 = substring1.replaceAll("\\\\", "");
  288. // log.info("去除转义字符后的返回信息:" + substring2);
  289. //
  290. // JSONObject jsonObject = JSON.parseObject(substring2);
  291. // Integer errorCode = jsonObject.getInteger("errorCode");
  292. // if (errorCode == 0){
  293. // System.out.println("当前客户在售后宝【已存在】!");
  294. // flag = true;
  295. // }else {
  296. // System.out.println("当前客户在售后宝【不存在】!");
  297. // flag = false;
  298. // }
  299. //
  300. // System.out.println("根据客户编号查询售后宝客户是否存在(true存在;false不存在):" + flag);
  301. // }catch (Exception e){
  302. // e.printStackTrace();
  303. // }
  304. //
  305. // }
  306. //
  307. // //【售后宝人员ID】
  308. // @Test
  309. // public void getSHBid(){
  310. //
  311. // int pageNum = 1;
  312. // int pageSize = 50;
  313. //
  314. // //根据售人员姓名进行匹配查询售后宝人员id
  315. // String userName = "牧之";
  316. // List list = new ArrayList();
  317. // list.add(userName);
  318. //
  319. // Map map = new HashMap();
  320. // map.put("pageNum",pageNum);
  321. // map.put("pageSize",pageSize);
  322. // map.put("userNameList",list);
  323. //
  324. // //根据售售后宝人员userid进行匹配查询售后宝人员信息
  325. //// String userid = "f58e62b5-a843-11ed-bdbf-00163e179ed7";
  326. //// List list = new ArrayList();
  327. //// list.add(userid);
  328. ////
  329. //// Map map = new HashMap();
  330. //// map.put("pageNum",pageNum);
  331. //// map.put("pageSize",pageSize);
  332. //// map.put("userIds",list);
  333. //
  334. // String bodyStr = JSON.toJSONString(map);
  335. //
  336. // String userId = null;
  337. //
  338. // OkHttpClient client = new OkHttpClient().newBuilder()
  339. // .build();
  340. // MediaType mediaType = MediaType.parse("application/json");
  341. // RequestBody body = RequestBody.create(mediaType, bodyStr);
  342. // Request request = new Request.Builder()
  343. // .url("https://oapi.shb.ltd/service/user/get_user_params?accessToken=f3fa69d7-b152-4e5d-9659-4208dc4c7296")
  344. // .method("POST", body)
  345. // .addHeader("Content-Type", "application/json")
  346. // .build();
  347. //
  348. // try {
  349. // Response response = client.newCall(request).execute();
  350. // String responseBody = response.body().string();
  351. // log.info("售后宝【人员列表】返回信息:" + responseBody);
  352. // String substring1 = responseBody.substring(1, responseBody.length() - 1);
  353. // log.info("去除首尾双引号后的返回信息:" + substring1);
  354. // String substring2 = substring1.replaceAll("\\\\", "");
  355. // log.info("去除转义字符后的返回信息:" + substring2);
  356. //
  357. // JSONObject jsonObject = JSON.parseObject(substring2);
  358. // JSONObject data = jsonObject.getJSONObject("data");
  359. //// System.out.println("data===" + data);
  360. //
  361. // userId = data.getJSONArray("list").getJSONObject(0).getString("userId");
  362. // System.out.println("售后宝人员userId:" + userId);
  363. // }catch (Exception e){
  364. // e.printStackTrace();
  365. // }
  366. //
  367. //// return userId;f58e62b5-a843-11ed-bdbf-00163e179ed7
  368. // }
  369. //
  370. // //【工单类型】
  371. // @Test
  372. // public void getGongdanType(){
  373. // OkHttpClient client = new OkHttpClient().newBuilder()
  374. // .build();
  375. // Request request = new Request.Builder()
  376. // .url("https://oapi.shb.ltd/service/task/get_task_types?accessToken=0824c173-62f3-4ad5-a2d0-dc2d03fa8e6c")
  377. // .method("GET", null)
  378. // .build();
  379. //
  380. // try {
  381. // Response response = client.newCall(request).execute();
  382. // String responseBody = response.body().string();
  383. // log.info("售后宝【工单类型】返回信息:" + responseBody);
  384. // }catch (Exception e){
  385. // e.printStackTrace();
  386. // }
  387. // }
  388. //
  389. // //【创建工单】
  390. // @Test
  391. // public void addGongdan(){
  392. //
  393. // /*
  394. // 【创建工单json参数】
  395. // {
  396. // "cusNo":"KH000384",
  397. // "cusName":"上海松江区就业促进中心",
  398. // "address":"上海市-市辖区-松江区-荣乐东路2378号1/2/3/6楼",
  399. // "lmName":"闻老师",
  400. // "lmPhone":"15800656968",
  401. // "templateId":"279bb347-913e-4627-bffc-605317774885",
  402. // "templateName":"安装工单",
  403. // "planTime":"2023-03-19",
  404. // "productIds": ["a0a6c248-f5f5-11ed-ae93-00163e1537d3","4ef0ee3f-f619-11ed-996b-00163e17c56d"],
  405. // "attribute": {
  406. // "field_DfIX3Gg9ziTYZQpY": ["有水","有电"]
  407. // }
  408. // }
  409. // */
  410. //
  411. // OkHttpClient client = new OkHttpClient().newBuilder()
  412. // .build();
  413. // MediaType mediaType = MediaType.parse("application/json");
  414. // RequestBody body = RequestBody.create(mediaType, " {\n" +
  415. // " \"cusNo\":\"KH000384\",\n" +
  416. // " \"cusName\":\"上海松江区就业促进中心\",\n" +
  417. // " \"address\":\"上海市-市辖区-松江区-荣乐东路2378号1/2/3/6楼\",\n" +
  418. // " \"lmName\":\"闻老师\",\n" +
  419. // " \"lmPhone\":\"15800656968\",\n" +
  420. // " \"templateId\":\"279bb347-913e-4627-bffc-605317774885\",\n" +
  421. // " \"templateName\":\"安装工单\",\n" +
  422. // " \"planTime\":\"2023-03-19\",\n" +
  423. // " \"productIds\": [\"a0a6c248-f5f5-11ed-ae93-00163e1537d3\",\"4ef0ee3f-f619-11ed-996b-00163e17c56d\"],\n" +
  424. // " \"attribute\": {\n" +
  425. // " \"field_DfIX3Gg9ziTYZQpY\": [\"有水\",\"有电\"]\n" +
  426. // " }\n" +
  427. // " }");
  428. // Request request = new Request.Builder()
  429. // .url("https://oapi.shb.ltd/service/task/create_task_v2?accessToken=88ee3824-1fd4-4209-811f-03b9a0b5d98c")
  430. // .method("POST", body)
  431. // .addHeader("Content-Type", "application/json")
  432. // .build();
  433. //
  434. // try {
  435. // Response response = client.newCall(request).execute();
  436. // String responseBody = response.body().string();
  437. // log.info("售后宝【创建工单】返回信息:" + responseBody);
  438. // }catch (Exception e){
  439. // e.printStackTrace();
  440. // }
  441. // }
  442. //
  443. // //sha256加密测试
  444. // @Test
  445. // public void sha256test(){
  446. //
  447. // //sha256加密
  448. // /*明文
  449. // * timestamp毫秒级时间戳
  450. // * */
  451. // //当前时间的时间戳
  452. // long timeMillis = System.currentTimeMillis();
  453. // String timestamp = String.valueOf(timeMillis);
  454. // log.info("当前时间的时间戳(毫秒级):" + timestamp);
  455. //
  456. // String qingqiu = "{\"mihome\": 112,\"date\": \"2023-01-01\"}";
  457. //
  458. // /*秘钥
  459. // * AppSecret应用秘钥
  460. // * */
  461. // String AppSecret = "uFW0o8ALNiwZAT9saHUD";
  462. //
  463. // //加密后的字符串
  464. // String encodeStr= DigestUtils.sha256Hex(qingqiu + "|" + AppSecret);
  465. // log.info("sha256加密后的字符串encodeStr:" + encodeStr);
  466. // }
  467. //
  468. // @Test
  469. // public void AA(){
  470. //
  471. // /*明文
  472. // * 时间型:yyyy-MM-dd-HH
  473. // * */
  474. // SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd-HH");
  475. // Date Date = new Date(System.currentTimeMillis());
  476. // System.out.println("当前时间:" + Date);
  477. // String dateNowString = simpleDateFormat.format(Date);
  478. // System.out.println("当前时间(时间样式:yyyy-MM-dd-HH)" + dateNowString);
  479. //
  480. // /*秘钥
  481. // * 系统id和Secret密钥
  482. // * */
  483. // String SystemId = "6CBAC3D3-F055-6150-E3C9-142FB65524B5";
  484. // String secret = "c2Vhc2t5Y29udHJhY3RhcGk=";
  485. //
  486. // //加密后的字符串
  487. // String encodeStr= DigestUtils.md5Hex(SystemId + "|" + dateNowString + "|" + secret);
  488. // log.info("MD5加密后的字符串encodeStr:" + encodeStr);
  489. // }
  490. //
  491. // public static com.aliyun.dingtalkyida_1_0.Client createClient() throws Exception {
  492. // com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
  493. // config.protocol = "https";
  494. // config.regionId = "central";
  495. // return new com.aliyun.dingtalkyida_1_0.Client(config);
  496. // }
  497. //
  498. // //获取审批实例详情
  499. // @Test
  500. // public void getShenpi(){
  501. //
  502. // JSONObject jsonObject = null;
  503. //
  504. // int size = 100;
  505. // int page = 1;
  506. //
  507. // do {
  508. // try {
  509. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  510. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders searchFormDatasHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders();
  511. // searchFormDatasHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  512. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest searchFormDatasRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest()
  513. // //宜搭应用秘钥
  514. // .setSystemToken("RH766AC1Z0P6IBWRFIA885XCULUV275UHT5CLYF")
  515. // //每页查询数量
  516. // .setPageSize(size)
  517. // //当前分页
  518. // .setCurrentPage(page)
  519. // //宜搭表单ID
  520. // .setFormUuid("FORM-FDA66N81C5V672VY53J7D7ZBSIC63EQHRT5CL0")
  521. // //TODO 系统管理员id
  522. // .setUserId("yida_pub_account")
  523. // //宜搭应用编码
  524. // .setAppType("APP_EXJ5WMWZ18FS1F2UFOHN");
  525. //
  526. // SearchFormDatasResponse searchFormDatasResponse = client.searchFormDatasWithOptions(searchFormDatasRequest, searchFormDatasHeaders, new RuntimeOptions());
  527. // System.out.println(JSON.toJSONString(searchFormDatasResponse.getBody()));
  528. // String s = JSON.toJSONString(searchFormDatasResponse.getBody());
  529. // jsonObject = JSON.parseObject(s);
  530. // System.out.println("审批详情接口object对象:" + jsonObject);
  531. // } catch (TeaException err) {
  532. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  533. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  534. // }
  535. //
  536. // } catch (Exception _err) {
  537. // TeaException err = new TeaException(_err.getMessage(), _err);
  538. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  539. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  540. // }
  541. //
  542. // }
  543. //
  544. // JSONArray data = jsonObject.getJSONArray("data");
  545. // for (int i = 0; data.size()>i; i++){
  546. //
  547. // JSONObject formData = data.getJSONObject(i).getJSONObject("formData");
  548. //
  549. // String khbh = formData.getString("textField_lhemu0bf");
  550. // System.out.println("客户编号:" + khbh);
  551. //
  552. // String khmc = formData.getString("textField_lc5vdt71");
  553. // System.out.println("客户名称:" + khmc);
  554. //
  555. //
  556. // //客户联系人列表
  557. // JSONArray tableField_le6s0mhc = formData.getJSONArray("tableField_le6s0mhc");
  558. // JSONObject jsonObject1 = tableField_le6s0mhc.getJSONObject(0);
  559. // //客户联系人姓名
  560. // String khlxr = jsonObject1.getString("textField_lc5vdt76");
  561. // System.out.println("客户联系人姓名:" + khlxr);
  562. // //客户联系人电话
  563. // String khlxrdh = jsonObject1.getString("textField_lc5vdt77");
  564. // System.out.println("客户联系人电话:" + khlxrdh);
  565. //
  566. //
  567. // String khdz = formData.getString("textField_lfj2zo84");
  568. // System.out.println("客户地址:" + khdz);
  569. //
  570. //
  571. //
  572. // String khfzrmc = formData.getJSONArray("employeeField_lc5vdt7w").getString(0);
  573. // System.out.println("客户负责人姓名:" + khfzrmc);
  574. //
  575. //
  576. // /*根据客户负责人姓名来匹配售后宝的人员ID*/
  577. // //休眠1秒后,进行调用【获取售后宝人员ID】
  578. // try {
  579. // log.info("休眠中,时长为:1秒...");
  580. // Thread.sleep(1000);
  581. // }catch (Exception e){
  582. // e.printStackTrace();
  583. // }
  584. // log.info("根据客户负责人姓名来匹配售后宝的人员ID===>");
  585. //
  586. // int pageNum = 1;
  587. // int pageSize = 50;
  588. //
  589. // String userName = khfzrmc;
  590. // List list = new ArrayList();
  591. // list.add(userName);
  592. //
  593. // Map map = new HashMap();
  594. // map.put("pageNum",pageNum);
  595. // map.put("pageSize",pageSize);
  596. // map.put("userNameList",list);
  597. //
  598. // String bodyStr = JSON.toJSONString(map);
  599. //
  600. // String userId = null;
  601. //
  602. // try {
  603. // OkHttpClient client = new OkHttpClient().newBuilder()
  604. // .build();
  605. // MediaType mediaType = MediaType.parse("application/json");
  606. // RequestBody body = RequestBody.create(mediaType, bodyStr);
  607. // Request request = new Request.Builder()
  608. // .url("https://oapi.shb.ltd/service/user/get_user_params?accessToken=6ff00058-58a9-49a3-b354-e9fb1f507f5a")
  609. // .method("POST", body)
  610. // .addHeader("Content-Type", "application/json")
  611. // .build();
  612. //
  613. //
  614. // Response response = client.newCall(request).execute();
  615. // String responseBody = response.body().string();
  616. // log.info("售后宝【人员列表】返回信息:" + responseBody);
  617. // String substring1 = responseBody.substring(1, responseBody.length() - 1);
  618. // log.info("去除首尾双引号后的返回信息:" + substring1);
  619. // String substring2 = substring1.replaceAll("\\\\", "");
  620. // log.info("去除转义字符后的返回信息:" + substring2);
  621. //
  622. // JSONObject jsonObject111 = JSON.parseObject(substring2);
  623. // JSONObject data111 = jsonObject111.getJSONObject("data");
  624. //// System.out.println("data===" + data);
  625. //
  626. // userId = data111.getJSONArray("list").getJSONObject(0).getString("userId");
  627. // System.out.println("售后宝人员userId:" + userId);
  628. // }catch (Exception e){
  629. // e.printStackTrace();
  630. // }
  631. // /*根据客户负责人姓名来匹配售后宝的人员ID*/
  632. //
  633. //
  634. // String htqydw = formData.getString("selectField_lc5vdt7v");
  635. // System.out.println("合同签约单位:" + htqydw);
  636. //
  637. // /*调用售后宝【客户新增】接口*/
  638. // //封装售后宝客户新增接口需要的参数
  639. // Map map2 = new HashMap();
  640. // map2.put("field_2L1hdL8o2Gz563tQ",htqydw);
  641. //
  642. // Map map1 = new HashMap();
  643. // //客户编号
  644. // map1.put("serialNumber",khbh);
  645. // //客户名称
  646. // map1.put("name",khmc);
  647. // //客户联系人
  648. // map1.put("lmName",khlxr);
  649. // //客户联系电话
  650. // map1.put("lmPhone",khlxrdh);
  651. // //客户地址
  652. // map1.put("address",khdz);
  653. // //客户负责人(售后宝人员id)
  654. // map1.put("customerManager",userId);
  655. // //客户负责人姓名
  656. // map1.put("customerManagerName",khfzrmc);
  657. // //合同签约单位(单选项匹配)
  658. // map1.put("attribute",map2);
  659. //
  660. // String jsonString = JSON.toJSONString(map1);
  661. // System.out.println("封装售后宝客户新增接口需要的参数:" + jsonString);
  662. //
  663. // //休眠1秒后,进行调用【客户新增】接口
  664. // try {
  665. // log.info("休眠中,时长为:1秒...");
  666. // Thread.sleep(1000);
  667. // }catch (Exception e){
  668. // e.printStackTrace();
  669. // }
  670. // log.info("调用售后宝【客户新增】接口===>");
  671. // try {
  672. // OkHttpClient client = new OkHttpClient().newBuilder()
  673. // .build();
  674. // MediaType mediaType = MediaType.parse("application/json");
  675. // RequestBody body = RequestBody.create(mediaType, jsonString);
  676. // Request request = new Request.Builder()
  677. // .url("https://oapi.shb.ltd/service/customer/createV2?accessToken=6ff00058-58a9-49a3-b354-e9fb1f507f5a")
  678. // .method("POST", body)
  679. // .addHeader("Content-Type", "application/json")
  680. // .build();
  681. // Response response = client.newCall(request).execute();
  682. // String responseBody = response.body().string();
  683. // log.info("售后宝【客户新增】接口返回信息:" + responseBody);
  684. // }catch (Exception e){
  685. // e.printStackTrace();
  686. // }
  687. // /*调用售后宝【客户新增】接口*/
  688. //
  689. // }
  690. //
  691. // if (data.size() == 100){
  692. // page = page + 1;
  693. // }
  694. //
  695. //// float aa = jsonObject.getFloat("totalCount") / 100;
  696. //// int bb = jsonObject.getInteger("currentPage");
  697. //// log.info("aa" + aa + "---bb" + bb);
  698. // }while (jsonObject.getFloat("totalCount") / 100 > jsonObject.getInteger("currentPage"));
  699. //
  700. //
  701. // System.out.println("同步【宜搭客户信息至售后宝】完成!");
  702. // }
  703. //
  704. // //更新售后宝客户信息接口
  705. // @Test
  706. // public void updateKehu(){
  707. // /*调用售后宝【客户更新】接口*/
  708. // //封装售后宝客户更新接口需要的参数
  709. //// Map map2 = new HashMap();
  710. //// map2.put("field_2L1hdL8o2Gz563tQ",htqydw);
  711. ////
  712. //// Map map1 = new HashMap();
  713. //// //客户编号
  714. //// map1.put("serialNumber",khbh);
  715. //// //客户名称
  716. //// map1.put("name",khmc);
  717. //// //客户联系人
  718. //// map1.put("lmName",khlxrStr);
  719. //// //客户联系电话
  720. //// map1.put("lmPhone",khlxrdhStr);
  721. //// //客户地址
  722. //// map1.put("address",khdz);
  723. //// //客户负责人(售后宝人员id)
  724. //// map1.put("customerManager",shBid);
  725. //// //客户负责人姓名
  726. //// map1.put("customerManagerName",khfzrxm);
  727. //// //合同签约单位(单选项匹配)
  728. //// map1.put("attribute",map2);
  729. //
  730. //// String jsonString = JSON.toJSONString(map1);
  731. // String jsonString = "{\"customerNo\":\"KH20230607020507345\",\"address\":\"上海市浦东新区曹路镇AAA号\",\"lmPhone\":\"15200000000\",\"customerManager\":\"be8d91b5-85a9-11ed-b57f-00163e0b3979\",\"name\":\"测试客户名称AAA\",\"attribute\":{\"field_2L1hdL8o2Gz563tQ\":\"上海另爱实业有限公司\"},\"lmName\":\"联系人AAA\",\"customerManagerName\":\"孟慧菲\"}";//TODO 测试使用!
  732. // System.out.println("封装售后宝客户更新接口需要的参数:" + jsonString);
  733. //
  734. // //休眠1秒后,进行调用【客户新增】接口
  735. // try {
  736. // log.info("休眠中,时长为:1秒...");
  737. // Thread.sleep(1000);
  738. // }catch (Exception e){
  739. // e.printStackTrace();
  740. // }
  741. // log.info("调用售后宝【客户更新】接口===>");
  742. // try {
  743. // OkHttpClient client = new OkHttpClient().newBuilder()
  744. // .build();
  745. // MediaType mediaType = MediaType.parse("application/json");
  746. // RequestBody body = RequestBody.create(mediaType, jsonString);
  747. // Request request = new Request.Builder()
  748. // .url("https://oapi.shb.ltd/service/customer/update_customer?accessToken=4da6f063-5083-481f-8e0a-be59d41eea40")
  749. // .method("POST", body)
  750. // .addHeader("Content-Type", "application/json")
  751. // .build();
  752. // Response response = client.newCall(request).execute();
  753. // String responseBody = response.body().string();
  754. // log.info("售后宝【客户更新】接口返回信息:" + responseBody);
  755. // }catch (Exception e){
  756. // e.printStackTrace();
  757. // }
  758. // /*调用售后宝【客户更新】接口*/
  759. // }
  760. //
  761. // @Test
  762. // public void XXX(){
  763. // //获取钉钉授权码
  764. // String accessToken = null;
  765. // DefaultDingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/gettoken");
  766. // OapiGettokenRequest request = new OapiGettokenRequest();
  767. // request.setAppkey("dingwkpw32zomzvufilo");
  768. // request.setAppsecret("Zc5thIhmxXUHVibMJ-Ft8RxHefKDlXs6x5TvOvjJbRaZ25TDmCFU4BKmqOBqAHF6");
  769. // request.setHttpMethod("GET");
  770. // try {
  771. // OapiGettokenResponse response = client.execute(request);
  772. // accessToken = response.getAccessToken();
  773. // System.out.println("AccessToken:" + accessToken);
  774. // } catch (ApiException e) {
  775. // e.printStackTrace();
  776. // }
  777. //
  778. // //获取宜搭表单数据,更新经纬度坐标
  779. // JSONObject jsonObject = null;
  780. //
  781. // //封装查询条件
  782. // List listAll = new ArrayList();
  783. // //创建时间(系统字段)
  784. //// Map map1 = new HashMap();
  785. //// map1.put("key","createTime");
  786. //// map1.put("value",1688003940000l);
  787. //// map1.put("type","DOUBLE");
  788. //// map1.put("operator","le");
  789. //// map1.put("componentName","DateField");
  790. //// listAll.add(map1);
  791. //
  792. //// PC 绵阳百盛(CAXD)
  793. //
  794. // Map map1 = new HashMap();
  795. // map1.put("key","textField_ljghmc0e");
  796. // map1.put("value"," ");
  797. // map1.put("type","TEXT");
  798. // map1.put("operator","eq");
  799. // map1.put("componentName","textField");
  800. // listAll.add(map1);
  801. //
  802. // String jsonStr = JSON.toJSONString(listAll);
  803. // System.out.println("封装的查询参数:" + jsonStr);
  804. //
  805. // int size = 100;
  806. // int page = 1;
  807. //
  808. // do {
  809. //
  810. // try {
  811. // com.aliyun.dingtalkyida_1_0.Client client111 = createClient();
  812. // com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldHeaders searchFormDataSecondGenerationNoTableFieldHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldHeaders();
  813. // searchFormDataSecondGenerationNoTableFieldHeaders.xAcsDingtalkAccessToken = accessToken;
  814. // com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldRequest searchFormDataSecondGenerationNoTableFieldRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldRequest()
  815. // //当前分页
  816. // .setPageNumber(page)
  817. // //每页查询数量
  818. // .setPageSize(size)
  819. // //宜搭表单ID
  820. // .setFormUuid("FORM-4H666KB102PBA69DCCC2A6ATHV6R3YH99MCJLJ")
  821. // //TODO 查询条件内容
  822. // .setSearchCondition(jsonStr)
  823. // //宜搭应用编码
  824. // .setAppType("APP_ZTKQXN2ISL7TWFDR6PSK")
  825. // //宜搭应用秘钥
  826. // .setSystemToken("GM866LB1OJTBPZB471GENBEO35YB270I085JLN1")
  827. // //TODO 系统管理员id
  828. // .setUserId("yida_pub_account");
  829. //
  830. // SearchFormDataSecondGenerationNoTableFieldResponse searchFormDataSecondGenerationNoTableFieldResponse = client111.searchFormDataSecondGenerationNoTableFieldWithOptions(searchFormDataSecondGenerationNoTableFieldRequest, searchFormDataSecondGenerationNoTableFieldHeaders, new RuntimeOptions());
  831. // // System.out.println(JSON.toJSONString(searchFormDataSecondGenerationNoTableFieldResponse.getBody()));
  832. // String s = JSON.toJSONString(searchFormDataSecondGenerationNoTableFieldResponse.getBody());
  833. // jsonObject = JSON.parseObject(s);
  834. // System.out.println("门店定位高级条件查询接口object对象:" + jsonObject);
  835. // } catch (TeaException err) {
  836. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  837. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  838. // }
  839. //
  840. // } catch (Exception _err) {
  841. // TeaException err = new TeaException(_err.getMessage(), _err);
  842. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  843. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  844. // }
  845. //
  846. // }
  847. //
  848. // JSONArray data = jsonObject.getJSONArray("data");
  849. // System.out.println("获取的宜搭数据:" + data);
  850. // for (int i = 0; data.size()>i; i++){
  851. // log.info("开始第" + i + "次循环获取经纬度数据...");
  852. //
  853. // //表单实例ID
  854. // String formInstanceId = data.getJSONObject(i).getString("formInstanceId");
  855. // System.out.println("表单实例ID ===> " + formInstanceId);
  856. //
  857. // JSONObject formData = data.getJSONObject(i).getJSONObject("formData");
  858. //
  859. // String locationField_liy8a294 = formData.getString("locationField_liy8a294");
  860. // System.out.println("@@@定位组件数据:" + locationField_liy8a294);
  861. //
  862. // if (locationField_liy8a294 == null){
  863. // System.out.println("定位组件为空!!!");
  864. // }else {
  865. // JSONObject jsonObject1 = JSONObject.parseObject(locationField_liy8a294);
  866. // System.out.println("定位组件数据(转对象)" + jsonObject1);
  867. //
  868. // //经度
  869. // String longitude = jsonObject1.getString("longitude");
  870. // System.out.println("经度:" + longitude);
  871. // //维度
  872. // String latitude = jsonObject1.getString("latitude");
  873. // System.out.println("维度:" + latitude);
  874. //
  875. //
  876. //
  877. // /*更新数据表的经纬度字段*/
  878. // /*同步至宜搭*/
  879. // Map map = new HashMap();
  880. // //经度
  881. // map.put("textField_ljghmc0e", longitude);
  882. // //维度
  883. // map.put("textField_ljghmc0f", latitude);
  884. //
  885. // String mapJson = JSON.toJSONString(map);
  886. // System.out.println("mapJson:" + mapJson);
  887. //
  888. //
  889. // //新增或更新表单实例【宜搭】
  890. // JSONObject jsonObject11 = null;
  891. //// try {
  892. //// com.aliyun.dingtalkyida_1_0.Client client11 = createClient();
  893. //// com.aliyun.dingtalkyida_1_0.models.CreateOrUpdateFormDataHeaders createOrUpdateFormDataHeaders = new com.aliyun.dingtalkyida_1_0.models.CreateOrUpdateFormDataHeaders();
  894. //// createOrUpdateFormDataHeaders.xAcsDingtalkAccessToken = accessToken;
  895. //// com.aliyun.dingtalkyida_1_0.models.CreateOrUpdateFormDataRequest createOrUpdateFormDataRequest = new com.aliyun.dingtalkyida_1_0.models.CreateOrUpdateFormDataRequest()
  896. //// //应用秘钥
  897. //// .setSystemToken("GM866LB1OJTBPZB471GENBEO35YB270I085JLN1")
  898. //// //表单编码
  899. //// .setFormUuid("FORM-4H666KB102PBA69DCCC2A6ATHV6R3YH99MCJL")
  900. //// .setUserId("yida_pub_account")
  901. ////// .setSearchCondition(listJson)
  902. //// //应用编码
  903. //// .setAppType("APP_ZTKQXN2ISL7TWFDR6PSK")
  904. //// .setFormDataJson(mapJson);
  905. ////
  906. //// CreateOrUpdateFormDataResponse orUpdateFormDataWithOptions = client11.createOrUpdateFormDataWithOptions(createOrUpdateFormDataRequest, createOrUpdateFormDataHeaders, new RuntimeOptions());
  907. //// String s = JSON.toJSONString(orUpdateFormDataWithOptions.getBody());
  908. //// jsonObject11 = JSON.parseObject(s);
  909. //// System.out.println("【创建或更新】表单object对象:" + jsonObject11);
  910. //// } catch (TeaException err) {
  911. //// if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  912. //// // err 中含有 code 和 message 属性,可帮助开发定位问题
  913. //// }
  914. ////
  915. //// } catch (Exception _err) {
  916. //// TeaException err = new TeaException(_err.getMessage(), _err);
  917. //// if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  918. //// // err 中含有 code 和 message 属性,可帮助开发定位问题
  919. //// }
  920. ////
  921. //// }
  922. //
  923. //
  924. // //更新表单经纬度字段数据
  925. // try {
  926. // com.aliyun.dingtalkyida_1_0.Client client11 = createClient();
  927. // com.aliyun.dingtalkyida_1_0.models.UpdateFormDataHeaders updateFormDataHeaders = new com.aliyun.dingtalkyida_1_0.models.UpdateFormDataHeaders();
  928. // updateFormDataHeaders.xAcsDingtalkAccessToken = accessToken;
  929. // com.aliyun.dingtalkyida_1_0.models.UpdateFormDataRequest updateFormDataRequest = new com.aliyun.dingtalkyida_1_0.models.UpdateFormDataRequest()
  930. // .setSystemToken("GM866LB1OJTBPZB471GENBEO35YB270I085JLN1")
  931. // .setFormInstanceId(formInstanceId)
  932. // .setUserId("yida_pub_account")
  933. // .setAppType("APP_ZTKQXN2ISL7TWFDR6PSK")
  934. // .setUpdateFormDataJson(mapJson);
  935. //
  936. // UpdateFormDataResponse updateFormDataResponse = client11.updateFormDataWithOptions(updateFormDataRequest, updateFormDataHeaders, new RuntimeOptions());
  937. // System.out.println("############" + updateFormDataResponse);
  938. //// String s = JSON.toJSONString(updateFormDataResponse.getBody());
  939. //// jsonObject1 = JSON.parseObject(s);
  940. //// System.out.println("【创建或更新】表单object对象:" + jsonObject1);
  941. // } catch (TeaException err) {
  942. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  943. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  944. // }
  945. //
  946. // } catch (Exception _err) {
  947. // TeaException err = new TeaException(_err.getMessage(), _err);
  948. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  949. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  950. // }
  951. //
  952. // }
  953. // /*同步至宜搭*/
  954. // }
  955. //
  956. // }
  957. //
  958. // if (data.size() == 100){
  959. // page = page + 1;
  960. // }
  961. //
  962. // }while (jsonObject.getFloat("totalCount") / 100 > jsonObject.getInteger("pageNumber"));
  963. // }
  964. //
  965. // //获取宜搭表单数据【人员信息数据】
  966. // public JSONObject getYidaRenyuanxinxi(String userId){
  967. //
  968. // //封装查询条件【数组】
  969. // List search = new ArrayList();
  970. //
  971. // //封装根据项目id作为查询条件
  972. // Map mapAll = new HashMap();
  973. // //查询字段编号
  974. // mapAll.put("key","textField_lkkg5ay7");
  975. // //查询钉钉userid
  976. // mapAll.put("value",userId);
  977. // //查询字段类型
  978. // mapAll.put("type","TEXT");
  979. // //查询匹配方式:like(匹配)、eq(等于)
  980. // mapAll.put("operator","eq");
  981. // //查询字段标识
  982. // mapAll.put("componentName","textField");
  983. // search.add(mapAll);
  984. // String mapAllStr = JSON.toJSONString(search);
  985. // System.out.println("封装修改的字段参数:" + mapAllStr);
  986. //
  987. // JSONObject jsonObject = null;
  988. //
  989. // int size = 100;
  990. // int page = 1;
  991. //
  992. // try {
  993. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  994. // com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldHeaders searchFormDataSecondGenerationNoTableFieldHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldHeaders();
  995. // searchFormDataSecondGenerationNoTableFieldHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  996. // com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldRequest searchFormDataSecondGenerationNoTableFieldRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldRequest()
  997. //// //当前分页
  998. //// .setPageNumber(page)
  999. //// //每页查询数量
  1000. //// .setPageSize(size)
  1001. // //宜搭表单ID
  1002. // .setFormUuid("FORM-CP766081M3TC3T87EUOWL7AELNFI38B9BVLKLE")
  1003. // //TODO 查询条件内容
  1004. // .setSearchCondition(mapAllStr)
  1005. //// //宜搭应用编码
  1006. // .setAppType("APP_OVZ4YE0AZPWIHDYPIB2Y")
  1007. // //宜搭应用秘钥
  1008. // .setSystemToken("IC766WA1MLVCU5DX9L6VY8HI3X0D39K6BVLKL0")
  1009. // //TODO 系统管理员id
  1010. // .setUserId("yida_pub_account");
  1011. //
  1012. // SearchFormDataSecondGenerationNoTableFieldResponse searchFormDataSecondGenerationNoTableFieldResponse = client.searchFormDataSecondGenerationNoTableFieldWithOptions(searchFormDataSecondGenerationNoTableFieldRequest, searchFormDataSecondGenerationNoTableFieldHeaders, new RuntimeOptions());
  1013. // System.out.println(JSON.toJSONString(searchFormDataSecondGenerationNoTableFieldResponse.getBody()));
  1014. // String s = JSON.toJSONString(searchFormDataSecondGenerationNoTableFieldResponse.getBody());
  1015. // jsonObject = JSON.parseObject(s);
  1016. // System.out.println("高级条件查询【宜搭人员信息】接口object对象:" + jsonObject);
  1017. // } catch (TeaException err) {
  1018. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  1019. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  1020. // }
  1021. //
  1022. // } catch (Exception _err) {
  1023. // TeaException err = new TeaException(_err.getMessage(), _err);
  1024. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  1025. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  1026. // }
  1027. //
  1028. // }
  1029. //
  1030. // JSONArray data = jsonObject.getJSONArray("data");
  1031. //
  1032. // float gudinggongzi = 0;
  1033. // float quanqinbutie = 0;
  1034. // float kaohejishu = 0;
  1035. // float xiaoshigongzi = 0;
  1036. // if (data.isEmpty()){
  1037. // System.out.println("查询宜搭人员信息的表单返回数据为空!");
  1038. // }else {
  1039. // JSONObject formData = data.getJSONObject(0).getJSONObject("formData");
  1040. // try {
  1041. // //固定工资(日工资)
  1042. // gudinggongzi = formData.getFloat("numberField_ljm75t26");
  1043. // //全勤补贴
  1044. // quanqinbutie = formData.getFloat("numberField_lkkg5ay6");
  1045. // //考核基数
  1046. // kaohejishu = formData.getFloat("numberField_ljm8j49p");
  1047. // //小时工资(日工资/8)
  1048. // xiaoshigongzi = formData.getFloat("numberField_lkrn1v2h");
  1049. // }catch (Exception e){
  1050. // e.printStackTrace();
  1051. // }
  1052. // }
  1053. // System.out.println("固定工资(日工资):" + gudinggongzi);
  1054. // System.out.println("全勤补贴:" + quanqinbutie);
  1055. // System.out.println("考核基数:" + kaohejishu);
  1056. // System.out.println("小时工资(日工资/8):" + xiaoshigongzi);
  1057. //
  1058. // Map map = new HashMap();
  1059. // map.put("gudinggongzi", gudinggongzi);
  1060. // map.put("quanqinbutie", quanqinbutie);
  1061. // map.put("kaohejishu", kaohejishu);
  1062. // map.put("xiaoshigongzi", xiaoshigongzi);
  1063. //
  1064. // String jsonString = JSON.toJSONString(map);
  1065. // JSONObject jsonObjectRenyuan = JSON.parseObject(jsonString);
  1066. // System.out.println("jsonObjectRenyuan===>" + jsonObjectRenyuan);
  1067. //
  1068. // return jsonObjectRenyuan;
  1069. // }
  1070. //
  1071. // @Test
  1072. // public void getKaoqin(){
  1073. //
  1074. // //待测试人员userId
  1075. // String userId = "271003020526307119";
  1076. //
  1077. // //获取当前时间
  1078. // Date Date = new Date(System.currentTimeMillis());
  1079. // System.out.println("当前时间:" + Date);
  1080. //
  1081. // /*获取考勤数据*/
  1082. // //获取人员信息数据
  1083. // JSONObject yidaRenyuanxinxi = getYidaRenyuanxinxi(userId);
  1084. // //固定工资(日工资)
  1085. // float gudinggongzi = yidaRenyuanxinxi.getFloat("gudinggongzi");
  1086. // //全勤补贴
  1087. // float quanqinbutie = yidaRenyuanxinxi.getFloat("quanqinbutie");
  1088. // //考核基数
  1089. // float kaohejishu = yidaRenyuanxinxi.getFloat("kaohejishu");
  1090. // //小时工资(日工资/8)
  1091. // float xiaoshigongzi = yidaRenyuanxinxi.getFloat("xiaoshigongzi");
  1092. //
  1093. // /*
  1094. // * 获取前一个月的第一天和最后一天的时间
  1095. // * */
  1096. // Calendar calendar111 = Calendar.getInstance();
  1097. // calendar111.setTime(Date);
  1098. // //前一个月第一天
  1099. // calendar111.add(Calendar.MONTH,-1);
  1100. // calendar111.set(Calendar.DAY_OF_MONTH,1);
  1101. // calendar111.set(Calendar.HOUR_OF_DAY,0);
  1102. // calendar111.set(Calendar.MINUTE,0);
  1103. // calendar111.set(Calendar.SECOND,0);
  1104. // calendar111.set(Calendar.MILLISECOND,0);
  1105. // String FORMtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar111.getTime());
  1106. // System.out.println("前一个月第一天零点:" + FORMtime);
  1107. //
  1108. // Calendar calendar222 = Calendar.getInstance();
  1109. //// int month222 = calendar222.get(Calendar.MONTH);
  1110. // //前一个月最后一天
  1111. // calendar222.add(Calendar.MONTH,-1);
  1112. // calendar222.set(Calendar.DAY_OF_MONTH,calendar222.getActualMaximum(Calendar.DAY_OF_MONTH));
  1113. // calendar222.set(Calendar.HOUR_OF_DAY,0);
  1114. // calendar222.set(Calendar.MINUTE,0);
  1115. // calendar222.set(Calendar.SECOND,0);
  1116. // calendar222.set(Calendar.MILLISECOND,0);
  1117. // String TOtime = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(calendar222.getTime());
  1118. // System.out.println("前一个月最后一天零点:" + TOtime);
  1119. //
  1120. //
  1121. //
  1122. //
  1123. // int chuqintianshu = 0;
  1124. // int yingchuqintianshu = 0;
  1125. // int jiabanxiaoshishu = 0;
  1126. // int quanqintianshu = 0;
  1127. // int chidaocishuAll = 0;
  1128. // int chidaocishu = 0;
  1129. // int zaotuicishu = 0;
  1130. //
  1131. // //工作日加班小时数
  1132. // float gongzuorijiaban = 0l;
  1133. // //休息日加班小时数
  1134. // float xiuxirijiaban = 0l;
  1135. //
  1136. //
  1137. // //保留1位小数
  1138. // DecimalFormat df1 = new DecimalFormat("#.0");
  1139. // //保留2位小数
  1140. // DecimalFormat df = new DecimalFormat("#.00");
  1141. //
  1142. //
  1143. // //工作时长(最新版本)
  1144. // BigDecimal gzsc = new BigDecimal("0.0");
  1145. // //每天固定工时(最新版本,用于计算使用)
  1146. // BigDecimal gdgs = new BigDecimal("8.0");
  1147. //
  1148. // //总扣除迟到时长差额
  1149. // BigDecimal subtractAll = new BigDecimal("0.00");
  1150. //
  1151. // //查询上月出勤数据,统计上月出勤天数
  1152. // try {
  1153. // DingTalkClient client11 = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/attendance/getcolumnval");
  1154. // OapiAttendanceGetcolumnvalRequest req = new OapiAttendanceGetcolumnvalRequest();
  1155. // //TODO 待查询人员的userid
  1156. // req.setUserid(userId);
  1157. // //考勤报表列定义查出来的工作时长的列id(固定)
  1158. // req.setColumnIdList("754387968,754387971,754387973,754387974,754387975,754387979,754387991,754387993,805519014,805519015,805519016,836124047");
  1159. // //TODO 查询开始时间
  1160. // req.setFromDate(StringUtils.parseDateTime(FORMtime));
  1161. // //TODO 查询结束时间
  1162. // req.setToDate(StringUtils.parseDateTime(TOtime));
  1163. // OapiAttendanceGetcolumnvalResponse rsp = client11.execute(req, accessTokenService.getAccessToken());
  1164. // System.out.println(rsp.getBody());
  1165. // String string = rsp.getBody();
  1166. // JSONObject jsonObjectKaoqin = JSON.parseObject(string);
  1167. //
  1168. // int errcode = jsonObjectKaoqin.getInteger("errcode");
  1169. // System.out.println("考勤时间周期查询结果状态码:" + errcode);
  1170. // String errmsg = jsonObjectKaoqin.getString("errmsg");
  1171. // System.out.println("考勤时间周期查询结果状态信息:" + errmsg);
  1172. //
  1173. //
  1174. // if (errcode != 0){
  1175. // log.info("考勤时间周期查询结果反馈异常,异常状态码:" + errcode + "【"+ errmsg +"】");
  1176. //
  1177. // }else {
  1178. // //出勤天数
  1179. // JSONArray jsonArray = jsonObjectKaoqin.getJSONObject("result").
  1180. // getJSONArray("column_vals").
  1181. // getJSONObject(0).
  1182. // getJSONArray("column_vals");
  1183. // for (int x = 0; x<jsonArray.size(); x++){
  1184. // //出勤天数
  1185. // String value = jsonArray.getJSONObject(x).getString("value");
  1186. // System.out.println("出差天数:" + value);
  1187. // float v = Float.parseFloat(value);
  1188. // if (v == 1) {
  1189. // System.out.println("出勤天数,进行循环统计!");
  1190. // chuqintianshu = chuqintianshu + 1;
  1191. // }
  1192. // }
  1193. //
  1194. // //应出勤天数
  1195. // JSONArray jsonArray1 = jsonObjectKaoqin.getJSONObject("result").
  1196. // getJSONArray("column_vals").
  1197. // getJSONObject(1).
  1198. // getJSONArray("column_vals");
  1199. // for (int x = 0; x<jsonArray1.size(); x++){
  1200. // //应出勤天数
  1201. // String value = jsonArray1.getJSONObject(x).getString("value");
  1202. // System.out.println("应出勤天数:" + value);
  1203. // float v = Float.parseFloat(value);
  1204. // if (v == 1) {
  1205. // System.out.println("应出勤天数,进行循环统计!");
  1206. // yingchuqintianshu = yingchuqintianshu + 1;
  1207. // }
  1208. // }
  1209. //
  1210. //// //迟到时长
  1211. //// float cdscFloat = 0l;
  1212. //// BigDecimal subtract = new BigDecimal("0.00");
  1213. //// //用于差额计算的判断
  1214. //// BigDecimal panduan = new BigDecimal(0.5);
  1215. //// BigDecimal panduan1 = new BigDecimal(1);
  1216. ////
  1217. //// JSONArray jsonArray9 = jsonObjectKaoqin.getJSONObject("result").
  1218. //// getJSONArray("column_vals").
  1219. //// getJSONObject(4).
  1220. //// getJSONArray("column_vals");
  1221. //// for (int x = 0; x<jsonArray9.size(); x++){
  1222. //// //迟到时长
  1223. //// String value = jsonArray9.getJSONObject(x).getString("value");
  1224. //// System.out.println("迟到时长:" + value);
  1225. //// cdscFloat = Float.parseFloat(value);
  1226. //// if (cdscFloat > 5) {
  1227. //// System.out.println("迟到时长超过5分钟,进行循环统计!");
  1228. //// chidaocishu = chidaocishu + 1;
  1229. ////
  1230. //// float aaa = cdscFloat / 60;
  1231. //// System.out.println("迟到分钟按照小时(除以60每小时)换算:" + aaa);
  1232. ////
  1233. //// //迟到时长,换算成小时(转换bd型,保留2位小数)
  1234. //// BigDecimal cdsc = new BigDecimal(aaa);
  1235. ////// BigDecimal cdsc1 = new BigDecimal("0.00");
  1236. //// BigDecimal cdsc1 = cdsc.setScale(2, BigDecimal.ROUND_HALF_UP);
  1237. //// System.out.println("迟到时长换算成小时,保留2位小数:" + cdsc1);
  1238. ////
  1239. //// // 整数部分
  1240. //// BigDecimal integerPart = cdsc1.setScale(0, RoundingMode.DOWN);
  1241. //// System.out.println("整数部分:" + integerPart);
  1242. //// // 小数部分
  1243. //// BigDecimal fractionalPart = cdsc1.subtract(integerPart);
  1244. //// System.out.println("小数部分:" + fractionalPart);
  1245. ////
  1246. ////
  1247. //// if (fractionalPart.compareTo(panduan) == -1){
  1248. //// if (fractionalPart.compareTo(BigDecimal.ZERO) == 1) {
  1249. //// System.out.println("小数位小于0.5小时~~~");
  1250. //// subtract = panduan.subtract(fractionalPart);
  1251. //// System.out.println("计算不足0.5小时的差额:" + subtract);
  1252. //// subtractAll = subtractAll.add(subtract);
  1253. //// }
  1254. //// }else {
  1255. //// System.out.println("小数位大于0.5小时~~~");
  1256. //// subtract = panduan1.subtract(fractionalPart);
  1257. //// System.out.println("计算不足1小时的差额:" + subtract);
  1258. //// subtractAll = subtractAll.add(subtract);
  1259. //// }
  1260. //// }
  1261. //// }
  1262. //
  1263. // //工作时长
  1264. // JSONArray jsonArray6 = jsonObjectKaoqin.getJSONObject("result").
  1265. // getJSONArray("column_vals").
  1266. // getJSONObject(2).
  1267. // getJSONArray("column_vals");
  1268. //
  1269. // //考勤结果(包含加班审批时间段)
  1270. // JSONArray jsonArray10 = jsonObjectKaoqin.getJSONObject("result").
  1271. // getJSONArray("column_vals").
  1272. // getJSONObject(6).
  1273. // getJSONArray("column_vals");
  1274. // //打卡结果(实际上班打卡时间)
  1275. // JSONArray jsonArray11 = jsonObjectKaoqin.getJSONObject("result").
  1276. // getJSONArray("column_vals").
  1277. // getJSONObject(7).
  1278. // getJSONArray("column_vals");
  1279. //
  1280. // SimpleDateFormat sdf = new SimpleDateFormat("MM-dd HH:mm");
  1281. //
  1282. // //休息日加班小时数
  1283. // JSONArray jsonArray8 = jsonObjectKaoqin.getJSONObject("result").
  1284. // getJSONArray("column_vals").
  1285. // getJSONObject(10).
  1286. // getJSONArray("column_vals");
  1287. //
  1288. //// for (int x = 0; x<jsonArray8.size(); x++){
  1289. //// //休息日加班小时数
  1290. //// String value = jsonArray8.getJSONObject(x).getString("value");
  1291. //// System.out.println("休息日加班小时数:" + value);
  1292. //// float v = Float.parseFloat(value);
  1293. ////
  1294. //// if (v > 0) {
  1295. //// System.out.println("休息日加班小时数,进行循环统计!");
  1296. ////
  1297. //// //考勤结果(包含加班审批时间段)
  1298. ////
  1299. //// //打卡结果(实际上班打卡时间)
  1300. ////
  1301. //// xiuxirijiaban = xiuxirijiaban + v;
  1302. //// }
  1303. //// }
  1304. //
  1305. // for (int x = 0; x<jsonArray6.size(); x++){
  1306. // //工作时长
  1307. // String value = jsonArray6.getJSONObject(x).getString("value");
  1308. // System.out.println("原始返回的工作时长:" + value);
  1309. // //日期
  1310. // Date date = jsonArray6.getJSONObject(x).getDate("date");
  1311. //// System.out.println("日期:" + date);
  1312. //
  1313. // // 创建Calendar类实例
  1314. // Calendar instance = Calendar.getInstance();
  1315. // // 根据指定日期获取周几
  1316. // instance.setTime(date);
  1317. // //因为数组下标从0开始,而返回的是数组的内容,是数组{1,2,3,4,5,6,7}中用1~7来表示
  1318. // int week = instance.get(Calendar.DAY_OF_WEEK);
  1319. // // 周日的编号是1,周六的编号是7
  1320. // if (week == Calendar.SUNDAY) {// || week == Calendar.SATURDAY
  1321. // // 是周日返回true
  1322. // System.out.println("周日");
  1323. //
  1324. // //休息日加班小时数
  1325. // String value3 = jsonArray8.getJSONObject(x).getString("value");
  1326. // System.out.println("休息日加班小时数:" + value3);
  1327. // float v3 = Float.parseFloat(value3);
  1328. // xiuxirijiaban = xiuxirijiaban + v3;
  1329. //
  1330. // //打卡结果(实际上班打卡时间)
  1331. // String value2 = jsonArray11.getJSONObject(x).getString("value");
  1332. // System.out.println("打卡结果(实际(休息日)上班打卡时间):" + value2);
  1333. //
  1334. // //考勤结果(包含加班审批时间段)
  1335. // String value1 = jsonArray10.getJSONObject(x).getString("value");
  1336. // System.out.println("考勤结果(包含加班审批时间段):" + value1);
  1337. // //截取考勤结果返回的加班审批时长
  1338. //// if (value1.length()>5){
  1339. //// String substring = value1.substring(0, 8);
  1340. //// System.out.println("截取的(休息日)考勤结果标识是否包含【休息并打卡】:" + substring);
  1341. //// if (substring.equals("休息并打卡,加班")){
  1342. //// String shenpi = value1.substring(8, 19);
  1343. //// System.out.println("截取的(休息日)加班审批完整时间:" + shenpi);
  1344. //// String shenpishichang = value1.substring(32, 33);
  1345. //// float shenpishichangFloat = Float.parseFloat(shenpishichang);
  1346. //// System.out.println("截取的(休息日)加班审批时长:" + shenpishichangFloat);
  1347. ////
  1348. //// String shenpiriqi = value1.substring(8, 14);
  1349. //// String shijidakashijian = shenpiriqi + value2;
  1350. //// System.out.println("拼接的实际打卡时间:" + shijidakashijian);
  1351. ////
  1352. //// Date date1 = null;
  1353. //// Date date2 = null;
  1354. //// try {
  1355. //// date1 = sdf.parse(shenpi);
  1356. //// date2 = sdf.parse(shijidakashijian);
  1357. //// }catch (Exception e){
  1358. //// e.printStackTrace();
  1359. //// }
  1360. //// System.out.println("转换成时间型(加班审批时间):" + date1);
  1361. //// System.out.println("转换成时间型(加班打卡时间):" + date2);
  1362. ////
  1363. //// long a = date2.getTime() - date1.getTime();
  1364. //// System.out.println("实际打卡时间 - 加班审批时间 (相差的毫秒数):" + a);
  1365. //// long fenzhong = a / 1000 / 60;
  1366. //// System.out.println("实际打卡时间 - 加班审批时间 (转换成分钟):" + fenzhong);
  1367. ////
  1368. //// float jisuan = ((shenpishichangFloat * 60) - fenzhong) / 60;
  1369. //// System.out.println("计算实际的周日加班打卡时长(折算小时):" + jisuan);
  1370. //// //判断实际打卡时间是否超过加班审批时间
  1371. ////// if (fenzhong > 0 && fenzhong < 5){
  1372. ////// xiuxirijiaban = xiuxirijiaban + 8;
  1373. ////// }else {
  1374. ////// xiuxirijiaban = xiuxirijiaban + v3;
  1375. ////// }
  1376. //// if (fenzhong > 0){
  1377. //// xiuxirijiaban = xiuxirijiaban + jisuan;
  1378. //// }else {
  1379. //// xiuxirijiaban = xiuxirijiaban + v3;
  1380. //// }
  1381. //// }
  1382. //// }
  1383. //
  1384. // }else {
  1385. // // 不是周日返回false
  1386. // System.out.println("周一至周六的工作日");
  1387. //
  1388. // float v = Float.parseFloat(value);
  1389. // //每日工作时长,1位小数
  1390. // BigDecimal ri = new BigDecimal(v);
  1391. // BigDecimal ri1 = ri.setScale(2, BigDecimal.ROUND_DOWN);
  1392. // System.out.println("工作时长(浮点数,保留2位小数):" + ri1);
  1393. // gzsc = gzsc.add(ri1);
  1394. //
  1395. //// if (v >= 1 && v <= 8) {
  1396. //// System.out.println("工作时长,进行循环统计!");
  1397. //// gzsc = gzsc.add(ri1);
  1398. ////
  1399. //// }else if (v > 8){
  1400. //// gzsc = gzsc.add(gdgs);
  1401. //// } else if (v >= 7.85 && v <= 8) {
  1402. //// gzsc = gzsc.add(gdgs);
  1403. //// }
  1404. // }
  1405. // }
  1406. //
  1407. // //迟到次数
  1408. // JSONArray jsonArray2 = jsonObjectKaoqin.getJSONObject("result").
  1409. // getJSONArray("column_vals").
  1410. // getJSONObject(3).
  1411. // getJSONArray("column_vals");
  1412. // for (int x = 0; x<jsonArray2.size(); x++){
  1413. // //迟到次数
  1414. // String value = jsonArray2.getJSONObject(x).getString("value");
  1415. // System.out.println("迟到次数:" + value);
  1416. // float v = Float.parseFloat(value);
  1417. // if (v == 1) {
  1418. // System.out.println("迟到总次数,进行循环统计!");
  1419. // chidaocishuAll = chidaocishuAll + 1;
  1420. // }
  1421. // }
  1422. //
  1423. //
  1424. //
  1425. // //早退次数
  1426. // JSONArray jsonArray3 = jsonObjectKaoqin.getJSONObject("result").
  1427. // getJSONArray("column_vals").
  1428. // getJSONObject(5).
  1429. // getJSONArray("column_vals");
  1430. // for (int x = 0; x<jsonArray3.size(); x++){
  1431. // //早退次数
  1432. // String value = jsonArray3.getJSONObject(x).getString("value");
  1433. // System.out.println("早退次数:" + value);
  1434. // float v = Float.parseFloat(value);
  1435. // if (v == 1) {
  1436. // System.out.println("早退次数,进行循环统计!");
  1437. // zaotuicishu = zaotuicishu + 1;
  1438. // }
  1439. // }
  1440. //
  1441. // //加班小时数
  1442. // JSONArray jsonArray4 = jsonObjectKaoqin.getJSONObject("result").
  1443. // getJSONArray("column_vals").
  1444. // getJSONObject(8).
  1445. // getJSONArray("column_vals");
  1446. // for (int x = 0; x<jsonArray4.size(); x++){
  1447. // //加班小时数
  1448. // String value = jsonArray4.getJSONObject(x).getString("value");
  1449. // System.out.println("加班小时数:" + value);
  1450. // float v = Float.parseFloat(value);
  1451. // if (v > 1) {
  1452. // System.out.println("加班小时数,进行循环统计!");
  1453. // jiabanxiaoshishu = jiabanxiaoshishu + (int)v;
  1454. // }
  1455. // }
  1456. //
  1457. // //工作日加班小时数
  1458. // JSONArray jsonArray7 = jsonObjectKaoqin.getJSONObject("result").
  1459. // getJSONArray("column_vals").
  1460. // getJSONObject(9).
  1461. // getJSONArray("column_vals");
  1462. // for (int x = 0; x<jsonArray7.size(); x++){
  1463. // //工作日加班小时数
  1464. // String value = jsonArray7.getJSONObject(x).getString("value");
  1465. // System.out.println("工作日加班小时数:" + value);
  1466. // float v = Float.parseFloat(value);
  1467. // if (v > 0) {
  1468. // System.out.println("工作日加班小时数,进行循环统计!");
  1469. // gongzuorijiaban = gongzuorijiaban + v;
  1470. // }
  1471. // }
  1472. //
  1473. //// //休息日加班小时数
  1474. //// JSONArray jsonArray8 = jsonObjectKaoqin.getJSONObject("result").
  1475. //// getJSONArray("column_vals").
  1476. //// getJSONObject(10).
  1477. //// getJSONArray("column_vals");
  1478. ////
  1479. //// for (int x = 0; x<jsonArray8.size(); x++){
  1480. //// //休息日加班小时数
  1481. //// String value = jsonArray8.getJSONObject(x).getString("value");
  1482. //// System.out.println("休息日加班小时数:" + value);
  1483. //// float v = Float.parseFloat(value);
  1484. ////
  1485. //// if (v > 0) {
  1486. //// System.out.println("休息日加班小时数,进行循环统计!");
  1487. ////
  1488. //// //考勤结果(包含加班审批时间段)
  1489. ////
  1490. //// //打卡结果(实际上班打卡时间)
  1491. ////
  1492. //// xiuxirijiaban = xiuxirijiaban + v;
  1493. //// }
  1494. //// }
  1495. //
  1496. // //全勤天数
  1497. // JSONArray jsonArray5 = jsonObjectKaoqin.getJSONObject("result").
  1498. // getJSONArray("column_vals").
  1499. // getJSONObject(11).
  1500. // getJSONArray("column_vals");
  1501. // for (int x = 0; x<jsonArray5.size(); x++){
  1502. // //全勤天数
  1503. // String value = jsonArray5.getJSONObject(x).getString("value");
  1504. // System.out.println("全勤天数:" + value);
  1505. // float v = Float.parseFloat(value);
  1506. // if (v == 1) {
  1507. // System.out.println("全勤天数,进行循环统计!");
  1508. // quanqintianshu = quanqintianshu + 1;
  1509. // }
  1510. // }
  1511. // }
  1512. //
  1513. // } catch (ApiException e) {
  1514. // e.printStackTrace();
  1515. // }
  1516. //
  1517. // //加班小时数(休息日加班,保留2位小时)
  1518. // BigDecimal xxrjbxss = new BigDecimal(xiuxirijiaban);
  1519. //
  1520. // System.out.println("工作时长(最新版本计算,不包含周日工时,保留2位小数)" + gzsc);
  1521. // System.out.println("迟到扣除时长(最新版本计算,按照0.5换算,保留2位小数)" + subtractAll);
  1522. // //出勤天数(最新版本计算,保留2位小数)
  1523. // gzsc = gzsc.subtract(subtractAll).add(xxrjbxss);
  1524. //
  1525. // BigDecimal cqts = gzsc.divide(gdgs, 2,BigDecimal.ROUND_HALF_UP);
  1526. // System.out.println("出勤天数(最新版本计算,保留2位小数)" + cqts);
  1527. //
  1528. //
  1529. // //TODO 加班时长,后面要加入休息日加班
  1530. // float jiaban1 = gongzuorijiaban;
  1531. // float jiaban = Float.parseFloat(df.format(jiaban1));
  1532. //
  1533. // //迟到早退扣款(迟到3次以上的次数*10)
  1534. // int chidaozaotuizongcishu = chidaocishu + zaotuicishu;
  1535. // float chidaozaotuikoukuan = 0l;
  1536. // if (chidaozaotuizongcishu > 3){
  1537. // int a = chidaozaotuizongcishu - 3;
  1538. // chidaozaotuikoukuan = a * 10;
  1539. // }
  1540. //
  1541. // //全勤补贴(全勤天数*5)
  1542. // float c = quanqintianshu * 5;
  1543. //
  1544. // //加班小时数(工作日加班,保留2位小时)//TODO 后面要加入休息日加班小时数
  1545. // BigDecimal jbxss = new BigDecimal(jiaban);
  1546. //
  1547. // //迟到早退扣款(迟到3次以上的次数*10)
  1548. // BigDecimal cdztkk = new BigDecimal(chidaozaotuikoukuan);
  1549. // //全勤补贴
  1550. // BigDecimal qqbt = new BigDecimal(c);
  1551. //
  1552. // //总工资
  1553. // BigDecimal zgz = new BigDecimal("0.00");
  1554. // //固定工资
  1555. // BigDecimal gdgz1 = new BigDecimal("0.00");
  1556. // //小时工资
  1557. // BigDecimal xsgz1 = new BigDecimal("0.00");
  1558. // //出勤工资
  1559. // BigDecimal cqgz1 = new BigDecimal("0.00");
  1560. // //加班工资
  1561. // BigDecimal jbgz1 = new BigDecimal("0.00");
  1562. // if (gudinggongzi > 0) {
  1563. // //固定工资:日工资(转换bd型,保留2位小数)
  1564. // BigDecimal gdgz = new BigDecimal(gudinggongzi);
  1565. // gdgz1 = gdgz.setScale(2, BigDecimal.ROUND_HALF_UP);
  1566. //
  1567. // //小时工资(转换bd型,保留2位小数)
  1568. // BigDecimal xsgz = new BigDecimal(xiaoshigongzi);
  1569. // xsgz1 = xsgz.setScale(2, BigDecimal.ROUND_HALF_UP);
  1570. //
  1571. // //出勤工资(出勤天数*日工资,保留2位小数)
  1572. // BigDecimal cqgz = cqts.multiply(gdgz1);
  1573. // cqgz1 = cqgz.setScale(2, BigDecimal.ROUND_HALF_UP);
  1574. //
  1575. // //加班工资(加班小时数*小时工资,保留2位小数)
  1576. // BigDecimal jbgz = jbxss.multiply(xsgz1);
  1577. // jbgz1 = jbgz.setScale(2, BigDecimal.ROUND_HALF_UP);
  1578. //
  1579. // /*总工资合计*/
  1580. // //总工资(出勤工资+加班工资-迟到早退扣款)//TODO 后面要加入补贴、扣款等金额计算
  1581. // zgz = zgz.add(cqgz1).add(jbgz1).add(qqbt).subtract(cdztkk);
  1582. // }
  1583. //
  1584. //
  1585. // System.out.println("上月出勤天数(钉钉报表自带:不使用):" + chuqintianshu);
  1586. // System.out.println("上月应出勤天数:" + yingchuqintianshu);
  1587. // System.out.println("加班小时数(钉钉报表自带:不使用):" + jiabanxiaoshishu);
  1588. // System.out.println("全勤天数:" + quanqintianshu);
  1589. // System.out.println("迟到次数:" + chidaocishu);
  1590. // System.out.println("早退次数:" + zaotuicishu);
  1591. // System.out.println("休息日加班(钉钉报表自带:不使用):" + xiuxirijiaban);
  1592. // System.out.println("加班小时数【钉钉报表统计工作日加班小时数,需要使用】:" + jiaban);
  1593. //
  1594. // System.out.println("工作时长【最新版本】:" + gzsc);
  1595. // System.out.println("出勤天数【最新版本】:" + cqts);
  1596. // }
  1597. //
  1598. // //获取宜搭表单数据【餐费扣款】
  1599. // @Test
  1600. // public void getYidaCanfei(){
  1601. //
  1602. // //获取当前时间
  1603. // Date Date = new Date(System.currentTimeMillis());
  1604. // System.out.println("当前时间:" + Date);
  1605. // //截取当天上月的年月
  1606. // Calendar calendar123 = Calendar.getInstance();
  1607. // calendar123.setTime(Date);
  1608. // calendar123.add(Calendar.MONTH,-1);
  1609. // String lastMonthNow = new SimpleDateFormat("yyyy-MM").format(calendar123.getTime());
  1610. // System.out.println("当天上月的日期,文本格式(月)" + lastMonthNow);
  1611. //
  1612. //
  1613. // //封装根据项目id作为查询条件
  1614. // Map mapAll = new HashMap();
  1615. // //查询实际统计月份
  1616. // mapAll.put("textField_lfw815u7",lastMonthNow);
  1617. //
  1618. // String mapAllStr = JSON.toJSONString(mapAll);
  1619. // System.out.println("封装修改的字段参数:" + mapAllStr);
  1620. //
  1621. // //list集合装载最终的集合
  1622. // List list = new ArrayList();
  1623. //
  1624. // JSONObject jsonObject = null;
  1625. //
  1626. // int size = 100;
  1627. // int page = 1;
  1628. //
  1629. // List listAll = new ArrayList();
  1630. //
  1631. // do {
  1632. //
  1633. // //【斯曼尔架构】
  1634. // try {
  1635. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  1636. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders searchFormDatasHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders();
  1637. // searchFormDatasHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  1638. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest searchFormDatasRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest()
  1639. // .setSystemToken("IC766WA1MLVCU5DX9L6VY8HI3X0D39K6BVLKL0")
  1640. // .setSearchFieldJson(mapAllStr)
  1641. // .setCurrentPage(page)
  1642. // .setPageSize(size)
  1643. // .setFormUuid("FORM-RK966E7175LD660Z5QWAF4YO2Q2W3WW00RLLL0")
  1644. // .setUserId("yida_pub_account")
  1645. // .setAppType("APP_OVZ4YE0AZPWIHDYPIB2Y");
  1646. //
  1647. // SearchFormDatasResponse searchFormDatasResponse = client.searchFormDatasWithOptions(searchFormDatasRequest, searchFormDatasHeaders, new RuntimeOptions());
  1648. // System.out.println(JSON.toJSONString(searchFormDatasResponse.getBody()));
  1649. // String s = JSON.toJSONString(searchFormDatasResponse.getBody());
  1650. // jsonObject = JSON.parseObject(s);
  1651. // System.out.println("钉钉差旅补贴数据高级条件查询【餐费扣款】接口object对象:" + jsonObject);
  1652. // } catch (TeaException err) {
  1653. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  1654. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  1655. // }
  1656. //
  1657. // } catch (Exception _err) {
  1658. // TeaException err = new TeaException(_err.getMessage(), _err);
  1659. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  1660. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  1661. // }
  1662. //
  1663. // }
  1664. //
  1665. // JSONArray data = jsonObject.getJSONArray("data");
  1666. // System.out.println("返回的宜搭data:" + data);
  1667. //
  1668. //
  1669. //
  1670. // if (data.isEmpty()) {
  1671. // System.out.println("查询当月【餐费扣款】返回数据为空!");
  1672. // } else {
  1673. // for (int i = 0; i < data.size(); i++) {
  1674. // JSONObject formData = data.getJSONObject(i).getJSONObject("formData");
  1675. // JSONArray tableField_lfw7ctif = formData.getJSONArray("tableField_lkkfs5p2");
  1676. // for (int j = 0; j < tableField_lfw7ctif.size(); j++) {
  1677. // JSONObject jsonObject1 = tableField_lfw7ctif.getJSONObject(j);
  1678. // listAll.add(jsonObject1);
  1679. // }
  1680. // }
  1681. // }
  1682. //
  1683. // if (jsonObject.getFloat("totalCount") / 100 > jsonObject.getInteger("currentPage")){
  1684. // page += page;
  1685. // }
  1686. //
  1687. // }while (jsonObject.getFloat("totalCount") / 100 > jsonObject.getInteger("currentPage"));
  1688. //
  1689. // JSONArray jsonArray = JSON.parseArray(listAll.toString());
  1690. // System.out.println("封装【餐费扣款】明细jsonArray:" + jsonArray);
  1691. // }
  1692. //
  1693. // //获取宜搭表单数据【机加工计件单】
  1694. // @Test
  1695. // public void getYidaJijiandan(){
  1696. //
  1697. // String userID = "014000073221556459";
  1698. //
  1699. // //获取当前时间
  1700. // Date Date = new Date(System.currentTimeMillis());
  1701. // System.out.println("当前时间:" + Date);
  1702. // //截取当天上月的年月
  1703. // Calendar calendar123 = Calendar.getInstance();
  1704. // calendar123.setTime(Date);
  1705. // calendar123.add(Calendar.MONTH,-1);
  1706. // String lastMonthNow = new SimpleDateFormat("yyyy-MM").format(calendar123.getTime());
  1707. // System.out.println("当天上月的日期,文本格式(月)" + lastMonthNow);
  1708. //
  1709. //
  1710. // //封装根据项目id作为查询条件
  1711. // Map mapAll = new HashMap();
  1712. // //查询实际统计月份
  1713. // mapAll.put("textField_lltuatw2",lastMonthNow);
  1714. // //人员ID
  1715. // mapAll.put("textField_llq7e7e0",userID);
  1716. //
  1717. // String mapAllStr = JSON.toJSONString(mapAll);
  1718. // System.out.println("封装修改的字段参数:" + mapAllStr);
  1719. //
  1720. // //list集合装载最终的集合
  1721. // List list = new ArrayList();
  1722. //
  1723. // JSONObject jsonObject = null;
  1724. //
  1725. // int size = 100;
  1726. // int page = 1;
  1727. //
  1728. // List listAll = new ArrayList();
  1729. //
  1730. // do {
  1731. //
  1732. // //【斯曼尔架构】
  1733. // try {
  1734. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  1735. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders searchFormDatasHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders();
  1736. // searchFormDatasHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  1737. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest searchFormDatasRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest()
  1738. // .setSystemToken("IC766WA1MLVCU5DX9L6VY8HI3X0D39K6BVLKL0")
  1739. // .setSearchFieldJson(mapAllStr)
  1740. // .setCurrentPage(page)
  1741. // .setPageSize(size)
  1742. // .setFormUuid("FORM-0A966I81OCKDWQO07SBXYCKC6BN033LQDULLL2")
  1743. // .setUserId("yida_pub_account")
  1744. // .setAppType("APP_OVZ4YE0AZPWIHDYPIB2Y");
  1745. //
  1746. // SearchFormDatasResponse searchFormDatasResponse = client.searchFormDatasWithOptions(searchFormDatasRequest, searchFormDatasHeaders, new RuntimeOptions());
  1747. // System.out.println(JSON.toJSONString(searchFormDatasResponse.getBody()));
  1748. // String s = JSON.toJSONString(searchFormDatasResponse.getBody());
  1749. // jsonObject = JSON.parseObject(s);
  1750. // System.out.println("钉钉差旅补贴数据高级条件查询【机加工计件单】接口object对象:" + jsonObject);
  1751. // } catch (TeaException err) {
  1752. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  1753. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  1754. // }
  1755. //
  1756. // } catch (Exception _err) {
  1757. // TeaException err = new TeaException(_err.getMessage(), _err);
  1758. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  1759. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  1760. // }
  1761. //
  1762. // }
  1763. //
  1764. // JSONArray data = jsonObject.getJSONArray("data");
  1765. // System.out.println("返回的宜搭data:" + data);
  1766. //
  1767. //
  1768. //
  1769. // if (data.isEmpty()) {
  1770. // System.out.println("查询当月【机加工计件单】返回数据为空!");
  1771. // } else {
  1772. // for (int i = 0; i < data.size(); i++) {
  1773. // JSONObject formData = data.getJSONObject(i).getJSONObject("formData");
  1774. // Map map = new HashMap<>();
  1775. //
  1776. // //钉钉userid
  1777. // String userid = formData.getString("textField_llq7e7e0");
  1778. // System.out.println("钉钉userid===>" + userid);
  1779. // //人员姓名
  1780. // String username = formData.getString("textField_llq7e7e1");
  1781. // System.out.println("人员姓名===>" + username);
  1782. // //计件工时(分钟)折算时长
  1783. // String jijiangongshi = formData.getString("numberField_lllv8q6d");
  1784. // System.out.println("计件工时(分钟)折算时长===>" + jijiangongshi);
  1785. // //工位补贴
  1786. // String gongweibutie = formData.getString("numberField_lllv8q6l");
  1787. // System.out.println("工位补贴===>" + gongweibutie);
  1788. // //机床
  1789. // String jichuangStr = formData.getString("textField_llttf90g");
  1790. // String jichuang = jichuangStr.substring(0, 3);
  1791. // System.out.println("机床===>" + jichuang);
  1792. // if (gongweibutie == null){
  1793. // gongweibutie = "0";
  1794. // }
  1795. // if (jijiangongshi == null){
  1796. // jijiangongshi = "0";
  1797. // }
  1798. //
  1799. //
  1800. // map.put("userid",userid);
  1801. // map.put("username",username);
  1802. // map.put("jijiangongshi",jijiangongshi);
  1803. // map.put("gongweibutie",gongweibutie);
  1804. // map.put("jichuang",jichuang);
  1805. //
  1806. // listAll.add(map);
  1807. // }
  1808. // }
  1809. //
  1810. // if (jsonObject.getFloat("totalCount") / 100 > jsonObject.getInteger("currentPage")){
  1811. // page += page;
  1812. // }
  1813. //
  1814. // }while (jsonObject.getFloat("totalCount") / 100 > jsonObject.getInteger("currentPage"));
  1815. //
  1816. // JSONArray yidaJijiandan = JSON.parseArray(JSON.toJSONString(listAll));
  1817. // System.out.println("封装【机加工计件单】明细jsonArray:" + yidaJijiandan);
  1818. //
  1819. // //计件工时(主机床)
  1820. // float jijiangongshi = 0;
  1821. // //超产工时(副机床)
  1822. // float chaochangongshi = 0;
  1823. // //工位补贴
  1824. // float gongweibutie = 0;
  1825. //
  1826. //
  1827. // /*通过封装接口获取【机加工计件单】*/
  1828. // for (int j = 0; j < yidaJijiandan.size(); j++) {
  1829. // log.info("循环第" + j + "次!");
  1830. // //机床
  1831. // String jichuang = yidaJijiandan.getJSONObject(j).getString("jichuang");
  1832. // System.out.println("机床===》" + jichuang);
  1833. //
  1834. // //计件工时(折算时长)
  1835. // float jijiangongshiOne = yidaJijiandan.getJSONObject(j).getFloat("jijiangongshi");
  1836. // System.out.println("计件工时===》" + jijiangongshiOne);
  1837. //
  1838. // if (jichuang.equals("主机床")) {
  1839. // jijiangongshi = jijiangongshi + jijiangongshiOne;
  1840. // } else {
  1841. // chaochangongshi = chaochangongshi + jijiangongshiOne;
  1842. // }
  1843. // //工位补贴
  1844. // float gongweibutieFloat = yidaJijiandan.getJSONObject(j).getFloat("gongweibutie");
  1845. // System.out.println("工位补贴===》" + gongweibutieFloat);
  1846. // gongweibutie = gongweibutie + gongweibutieFloat;
  1847. // }
  1848. // jijiangongshi = jijiangongshi / 60 / 8;
  1849. // chaochangongshi = chaochangongshi / 60 / 8;
  1850. //
  1851. // System.out.println("计件工时(主机床)" + jijiangongshi);
  1852. // System.out.println("超产工时(副机床)" + chaochangongshi);
  1853. // System.out.println("工位补贴" + gongweibutie);
  1854. // }
  1855. //
  1856. // //获取宜搭表单数据【人员信息底表】
  1857. // @Test
  1858. // public void getYidaRenyuanxinxidibiao(){
  1859. //
  1860. // JSONObject jsonObject = null;
  1861. //
  1862. // int size = 100;
  1863. // int page = 1;
  1864. //
  1865. // List listAll = new ArrayList();
  1866. //
  1867. // do {
  1868. //
  1869. // //【斯曼尔架构】
  1870. // try {
  1871. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  1872. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders searchFormDatasHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders();
  1873. // searchFormDatasHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  1874. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest searchFormDatasRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest()
  1875. // .setSystemToken("J0A6698165EFMED0AHIG76FW7C6Q3ON1PG5OL482")
  1876. //// .setSearchFieldJson(mapAllStr)
  1877. // .setCurrentPage(page)
  1878. // .setPageSize(size)
  1879. // .setFormUuid("FORM-5Q966D91G96F0WI8D98Q27NSBGUR3OV02H5OL21")
  1880. // .setUserId("yida_pub_account")
  1881. // .setAppType("APP_QHPV3T4ZU2Y88Q4U0UDA");
  1882. //
  1883. // SearchFormDatasResponse searchFormDatasResponse = client.searchFormDatasWithOptions(searchFormDatasRequest, searchFormDatasHeaders, new RuntimeOptions());
  1884. //// System.out.println(JSON.toJSONString(searchFormDatasResponse.getBody()));
  1885. // String s = JSON.toJSONString(searchFormDatasResponse.getBody());
  1886. // jsonObject = JSON.parseObject(s);
  1887. // System.out.println("宜搭数据高级条件查询【人员信息底表】接口object对象:" + jsonObject);
  1888. // } catch (TeaException err) {
  1889. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  1890. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  1891. // }
  1892. //
  1893. // } catch (Exception _err) {
  1894. // TeaException err = new TeaException(_err.getMessage(), _err);
  1895. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  1896. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  1897. // }
  1898. //
  1899. // }
  1900. //
  1901. // JSONArray data = jsonObject.getJSONArray("data");
  1902. //// System.out.println("返回的宜搭data:" + data);
  1903. //
  1904. //
  1905. // float gudinggongzi = 0;
  1906. // float quanqinbutie = 0;
  1907. // float kaohejishu = 0;
  1908. // float xiaoshigongzi = 0;
  1909. // int paixu = 0;
  1910. // String suanxinleixing = null;
  1911. //
  1912. // if (data.isEmpty()) {
  1913. // System.out.println("查询当月【人员信息底表】返回数据为空!");
  1914. // } else {
  1915. // for (int i = 0; i < data.size(); i++) {
  1916. // JSONObject formData = data.getJSONObject(i).getJSONObject("formData");
  1917. //// System.out.println("循环返回的宜搭formData:" + formData);
  1918. // Map map = new HashMap<>();
  1919. //
  1920. // //实例ID
  1921. // String shiliID = data.getJSONObject(i).getString("formInstanceId");
  1922. // System.out.println("实例ID===>" + shiliID);
  1923. //
  1924. // //钉钉userid
  1925. // String userid = formData.getString("textField_lo5h5imc");
  1926. // System.out.println("钉钉userid===>" + userid);
  1927. // //人员姓名
  1928. // String username = formData.getString("textField_lo5h5ime");
  1929. // System.out.println("人员姓名===>" + username);
  1930. // //主部门
  1931. // String zhubumen = formData.getString("textField_lo5h5imj");
  1932. // System.out.println("主部门===>" + zhubumen);
  1933. //
  1934. // //职位
  1935. // String zhiwei = formData.getString("textField_los37klu");
  1936. // System.out.println("职位===>" + username);
  1937. // //邮箱
  1938. // String youoxiang = formData.getString("textField_los37klv");
  1939. // System.out.println("邮箱===>" + zhubumen);
  1940. //
  1941. //
  1942. // try {
  1943. //// //固定工资(日工资)
  1944. //// gudinggongzi = formData.getFloat("numberField_ljm75t26");
  1945. //// System.out.println("固定工资(日工资)===>" + gudinggongzi);
  1946. //// //小时工资(日工资/8)
  1947. //// xiaoshigongzi = formData.getFloat("numberField_lkrn1v2h");
  1948. //// System.out.println("小时工资(日工资/8)===>" + xiaoshigongzi);
  1949. //// //加班小时工资(前期定义为全勤补贴)
  1950. //// quanqinbutie = formData.getFloat("numberField_lkkg5ay6");
  1951. //// System.out.println("全勤补贴===>" + quanqinbutie);
  1952. //// //考核基数
  1953. //// kaohejishu = formData.getFloat("numberField_ljm8j49p");
  1954. //// System.out.println("考核基数===>" + kaohejishu);
  1955. ////
  1956. //// //算薪类型(普通、计件)
  1957. //// suanxinleixing = formData.getString("selectField_lme9gohy");
  1958. //// System.out.println("算薪类型(普通、计件)===>" + suanxinleixing);
  1959. //// //排序
  1960. //// paixu = formData.getInteger("numberField_llxdipxq");
  1961. //// System.out.println("排序===>" + paixu);
  1962. //
  1963. // }catch (Exception e){
  1964. // e.printStackTrace();
  1965. // }
  1966. //
  1967. // map.put("shiliID",shiliID);
  1968. //
  1969. // map.put("userid",userid);
  1970. // map.put("username",username);
  1971. // map.put("zhubumen",zhubumen);
  1972. //
  1973. // map.put("zhiwei",zhiwei);
  1974. // map.put("youxiang",youoxiang);
  1975. //
  1976. // System.out.println("每次封装人员信息的map:" + map);
  1977. //
  1978. // listAll.add(map);
  1979. // }
  1980. // }
  1981. //
  1982. // if (jsonObject.getFloat("totalCount") / 100 > jsonObject.getFloat("currentPage")){
  1983. // page = page + 1;
  1984. // System.out.println("下一次待查询分页:" + page);
  1985. // }
  1986. //
  1987. // }while (jsonObject.getFloat("totalCount") / 100 > jsonObject.getFloat("currentPage"));
  1988. //
  1989. // JSONArray jsonArray = JSON.parseArray(JSON.toJSONString(listAll));
  1990. // System.out.println("封装【人员信息底表】明细jsonArray:" + jsonArray);
  1991. //
  1992. //// return jsonArray;
  1993. // }
  1994. //
  1995. // //更新表单数据【最新版本更新】
  1996. //// @Test
  1997. //// public void updateBiaodan(){
  1998. ////
  1999. //// JSONArray yidaRenyuanxinxidibiao = getYidaRenyuanxinxidibiao();
  2000. ////
  2001. //// for (int i = 0; i < yidaRenyuanxinxidibiao.size(); i++) {
  2002. //// //实例ID
  2003. //// String shiliID = yidaRenyuanxinxidibiao.getJSONObject(i).getString("shiliID");
  2004. //// System.out.println("实例ID:" + shiliID);
  2005. //// //人员id
  2006. //// String userid = yidaRenyuanxinxidibiao.getJSONObject(i).getString("userid");
  2007. //// System.out.println("人员id:" + userid);
  2008. ////
  2009. //// /*---获取花名册数据---*/
  2010. //// String huamingce1 = null;
  2011. //// try {
  2012. //// DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/smartwork/hrm/employee/list");
  2013. //// OapiSmartworkHrmEmployeeListRequest request = new OapiSmartworkHrmEmployeeListRequest();
  2014. ////
  2015. //// request.setUseridList(userid);
  2016. ////
  2017. //// //需要获取的花名册字段信息
  2018. //// //request.setFieldFilterList("sys00-name,sys02-sexType,sys01-employeeStatus,sys00-email,sys03-graduateSchool,sys03-highestEdu,sys00-dept,e3d6dbbd-9265-4f1e-8c58-ac3602e83960,sys03-graduationTime,sys00-mobile,sys02-address,sys02-marriage,sys00-confirmJoinTime,sys00-workPlace,sys00-position,sys01-positionLevel,sys02-politicalStatus,sys03-major,sys02-certNo,sys02-birthTime,sys02-certAddress,sys02-certEndTime,sys02-residenceType,sys01-employeeType,sys04-bankAccountNo,sys04-accountBank,sys09-personalHf,sys05-contractType,sys05-contractCompanyName,ff63191a-45cf-4106-ade0-54f1def7cc55");
  2019. ////
  2020. //// OapiSmartworkHrmEmployeeListResponse response = client.execute(request, accessTokenService.getAccessToken());
  2021. //// huamingce1 = response.getBody();
  2022. //// System.out.println(response.getBody());
  2023. //// }catch (ApiException e){
  2024. //// e.printStackTrace();
  2025. //// }
  2026. ////
  2027. //// //通过fastjson工具转换成json对象,逐层解析
  2028. //// //将String类型的花名册json数据转换为Object数据对象
  2029. //// JSONObject jsonObject = JSON.parseObject(huamingce1);
  2030. ////
  2031. //// //直接将花名册对象通过Object转换成Array数组格式
  2032. //// JSONArray resultArray = jsonObject.getJSONArray("result");
  2033. //// System.out.println("Array===>" + resultArray);
  2034. //// /*---获取花名册数据---*/
  2035. ////
  2036. //// JSONArray fieldListArray = resultArray.getJSONObject(0).getJSONArray("field_list");
  2037. ////
  2038. //// String userName = null;
  2039. //// String zhubumen = null;
  2040. ////
  2041. //// for (int a = 0; a<fieldListArray.size(); a++) {
  2042. //// String fieldCode = fieldListArray
  2043. //// .getJSONObject(a)
  2044. //// .getString("field_code");
  2045. ////
  2046. //// switch (fieldCode) {
  2047. //// //姓名
  2048. //// case "sys00-name":
  2049. //// if (fieldListArray.getJSONObject(a).getString("value") != null) {
  2050. //// System.out.println("***《《《姓名》》》***-->" + fieldListArray.getJSONObject(a).getString("value"));
  2051. ////
  2052. //// userName = fieldListArray.getJSONObject(a).getString("value");
  2053. //// }
  2054. //// break;
  2055. //// //主部门
  2056. //// case "sys00-mainDept":
  2057. //// if (fieldListArray.getJSONObject(a).getString("value") != null){
  2058. //// System.out.println("***主部门***-->" + fieldListArray.getJSONObject(a).getString("value"));
  2059. ////
  2060. //// zhubumen = fieldListArray.getJSONObject(a).getString("value");
  2061. //// }
  2062. //// break;
  2063. //// }
  2064. //// }
  2065. ////
  2066. //// Map map = new HashMap();
  2067. ////
  2068. //// //主部门
  2069. //// map.put("textField_lm64k9gb", zhubumen);
  2070. ////
  2071. //// String mapJson = JSON.toJSONString(map);
  2072. //// System.out.println("mapJson:" + mapJson);
  2073. ////
  2074. //// //更新表单数据【最新版本更新内容】
  2075. //// try {
  2076. //// com.aliyun.dingtalkyida_1_0.Client client = createClient();
  2077. //// com.aliyun.dingtalkyida_1_0.models.UpdateFormDataHeaders updateFormDataHeaders = new com.aliyun.dingtalkyida_1_0.models.UpdateFormDataHeaders();
  2078. //// updateFormDataHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  2079. //// com.aliyun.dingtalkyida_1_0.models.UpdateFormDataRequest updateFormDataRequest = new com.aliyun.dingtalkyida_1_0.models.UpdateFormDataRequest()
  2080. //// .setSystemToken("IC766WA1MLVCU5DX9L6VY8HI3X0D39K6BVLKL0")
  2081. //// .setFormInstanceId(shiliID)
  2082. //// .setUserId("yida_pub_account")
  2083. //// .setUseLatestVersion(true)
  2084. //// .setAppType("APP_OVZ4YE0AZPWIHDYPIB2Y")
  2085. //// .setUpdateFormDataJson(mapJson);
  2086. ////
  2087. //// client.updateFormDataWithOptions(updateFormDataRequest, updateFormDataHeaders, new com.aliyun.teautil.models.RuntimeOptions());
  2088. //// } catch (TeaException err) {
  2089. //// if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  2090. //// // err 中含有 code 和 message 属性,可帮助开发定位问题
  2091. //// }
  2092. ////
  2093. //// } catch (Exception _err) {
  2094. //// TeaException err = new TeaException(_err.getMessage(), _err);
  2095. //// if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  2096. //// // err 中含有 code 和 message 属性,可帮助开发定位问题
  2097. //// }
  2098. ////
  2099. //// }
  2100. //// }
  2101. ////
  2102. ////
  2103. //// }
  2104. //
  2105. // @Test
  2106. // public void getSuanxin(){
  2107. // //封装查询条件【数组】
  2108. // List search = new ArrayList();
  2109. //
  2110. // //封装根据项目id作为查询条件
  2111. // Map mapAll = new HashMap();
  2112. // //查询字段编号
  2113. // mapAll.put("key","textField_ll67cnfu");
  2114. // //查询钉钉userid
  2115. // mapAll.put("value","026534042237650981");
  2116. // //查询字段类型
  2117. // mapAll.put("type","TEXT");
  2118. // //查询匹配方式:like(匹配)、eq(等于)
  2119. // mapAll.put("operator","eq");
  2120. // //查询字段标识
  2121. // mapAll.put("componentName","textField");
  2122. // search.add(mapAll);
  2123. // String mapAllStr = JSON.toJSONString(search);
  2124. // System.out.println("封装修改的字段参数:" + mapAllStr);
  2125. //
  2126. // JSONObject jsonObject = null;
  2127. //
  2128. // int size = 100;
  2129. // int page = 1;
  2130. //
  2131. // try {
  2132. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  2133. // com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldHeaders searchFormDataSecondGenerationNoTableFieldHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldHeaders();
  2134. // searchFormDataSecondGenerationNoTableFieldHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  2135. // com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldRequest searchFormDataSecondGenerationNoTableFieldRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDataSecondGenerationNoTableFieldRequest()
  2136. //// //当前分页
  2137. //// .setPageNumber(page)
  2138. //// //每页查询数量
  2139. //// .setPageSize(size)
  2140. // //宜搭表单ID
  2141. // .setFormUuid("FORM-PR8667D1V09DOA2JAJOD94P8QCLJ3HIJ376LL1")
  2142. // //TODO 查询条件内容
  2143. // .setSearchCondition(mapAllStr)
  2144. //// //宜搭应用编码
  2145. // .setAppType("APP_OVZ4YE0AZPWIHDYPIB2Y")
  2146. // //宜搭应用秘钥
  2147. // .setSystemToken("IC766WA1MLVCU5DX9L6VY8HI3X0D39K6BVLKL0")
  2148. // //TODO 系统管理员id
  2149. // .setUserId("yida_pub_account");
  2150. //
  2151. // SearchFormDataSecondGenerationNoTableFieldResponse searchFormDataSecondGenerationNoTableFieldResponse = client.searchFormDataSecondGenerationNoTableFieldWithOptions(searchFormDataSecondGenerationNoTableFieldRequest, searchFormDataSecondGenerationNoTableFieldHeaders, new RuntimeOptions());
  2152. // System.out.println(JSON.toJSONString(searchFormDataSecondGenerationNoTableFieldResponse.getBody()));
  2153. // String s = JSON.toJSONString(searchFormDataSecondGenerationNoTableFieldResponse.getBody());
  2154. // jsonObject = JSON.parseObject(s);
  2155. // System.out.println("高级条件查询【算薪权限表】接口object对象:" + jsonObject);
  2156. // } catch (TeaException err) {
  2157. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  2158. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  2159. // }
  2160. //
  2161. // } catch (Exception _err) {
  2162. // TeaException err = new TeaException(_err.getMessage(), _err);
  2163. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  2164. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  2165. // }
  2166. //
  2167. // }
  2168. //
  2169. // JSONArray data = jsonObject.getJSONArray("data");
  2170. //
  2171. // String suanxinfuzerenId = null;
  2172. // List list = new ArrayList<>();
  2173. // if (data.isEmpty()){
  2174. // System.out.println("查询宜搭算薪权限表返回数据为空!");
  2175. // }else {
  2176. // //循环获取多个算薪负责人
  2177. // for (int i = 0; i < data.size(); i++) {
  2178. // JSONObject formData = data.getJSONObject(i).getJSONObject("formData");
  2179. // try {
  2180. // //被算薪人员Id
  2181. // suanxinfuzerenId = formData.getString("textField_ll67cnft");
  2182. // list.add(suanxinfuzerenId);
  2183. // }catch (Exception e){
  2184. // e.printStackTrace();
  2185. // }
  2186. // }
  2187. // }
  2188. // String jsonString = JSON.toJSONString(list);
  2189. // System.out.println("算薪负责人Id数组:" + jsonString);
  2190. // }
  2191. //
  2192. // //特殊加班单
  2193. // @Test
  2194. // public void getTeshujiaban(){
  2195. // /**
  2196. // * type = 0 上月数据
  2197. // * type = 1 本月数据
  2198. // * */
  2199. //
  2200. // int type = 0;
  2201. //
  2202. // //获取当前时间
  2203. // Date Date = new Date(System.currentTimeMillis());
  2204. // System.out.println("当前时间:" + Date);
  2205. //
  2206. // String lastMonthNow = null;
  2207. // if (type == 0){//上月
  2208. // //截取当天上月的年月
  2209. // Calendar calendar123 = Calendar.getInstance();
  2210. // calendar123.setTime(Date);
  2211. // calendar123.add(Calendar.MONTH,-1);
  2212. // lastMonthNow = new SimpleDateFormat("yyyy-MM").format(calendar123.getTime());
  2213. // System.out.println("当天上月的日期,文本格式(月)" + lastMonthNow);
  2214. // }else {//本月
  2215. // //截取当天本月的年月
  2216. // Calendar calendar123 = Calendar.getInstance();
  2217. // calendar123.setTime(Date);
  2218. // calendar123.add(Calendar.MONTH,0);
  2219. // lastMonthNow = new SimpleDateFormat("yyyy-MM").format(calendar123.getTime());
  2220. // System.out.println("当天本月的日期,文本格式(月)" + lastMonthNow);
  2221. // }
  2222. //
  2223. //
  2224. //
  2225. // //封装根据项目id作为查询条件
  2226. // Map mapAll = new HashMap();
  2227. // //查询实际统计月份
  2228. // mapAll.put("textField_lfw815u7",lastMonthNow);
  2229. //
  2230. // String mapAllStr = JSON.toJSONString(mapAll);
  2231. // System.out.println("封装修改的字段参数:" + mapAllStr);
  2232. //
  2233. // //list集合装载最终的集合
  2234. // List list = new ArrayList();
  2235. //
  2236. // JSONObject jsonObject = null;
  2237. //
  2238. // int size = 100;
  2239. // int page = 1;
  2240. //
  2241. // List listAll = new ArrayList();
  2242. //
  2243. // do {
  2244. // //【斯曼尔架构】
  2245. // try {
  2246. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  2247. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders searchFormDatasHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders();
  2248. // searchFormDatasHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  2249. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest searchFormDatasRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest()
  2250. // .setSystemToken("IC766WA1MLVCU5DX9L6VY8HI3X0D39K6BVLKL0")
  2251. // .setSearchFieldJson(mapAllStr)
  2252. // .setCurrentPage(page)
  2253. // .setPageSize(size)
  2254. // .setFormUuid("FORM-HT866U91HLKFLTYH9AZEIB9E4LXZ22WVUHEOL51")
  2255. // .setUserId("yida_pub_account")
  2256. // .setAppType("APP_OVZ4YE0AZPWIHDYPIB2Y");
  2257. //
  2258. // SearchFormDatasResponse searchFormDatasResponse = client.searchFormDatasWithOptions(searchFormDatasRequest, searchFormDatasHeaders, new RuntimeOptions());
  2259. // System.out.println(JSON.toJSONString(searchFormDatasResponse.getBody()));
  2260. // String s = JSON.toJSONString(searchFormDatasResponse.getBody());
  2261. // jsonObject = JSON.parseObject(s);
  2262. // System.out.println("宜搭数据高级条件查询【特殊加班单】接口object对象:" + jsonObject);
  2263. // } catch (TeaException err) {
  2264. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  2265. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  2266. // }
  2267. //
  2268. // } catch (Exception _err) {
  2269. // TeaException err = new TeaException(_err.getMessage(), _err);
  2270. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  2271. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  2272. // }
  2273. //
  2274. // }
  2275. //
  2276. // JSONArray data = jsonObject.getJSONArray("data");
  2277. // System.out.println("返回的宜搭data:" + data);
  2278. //
  2279. //
  2280. //
  2281. // if (data.isEmpty()) {
  2282. // System.out.println("查询当月【特殊加班单】返回数据为空!");
  2283. // } else {
  2284. // for (int i = 0; i < data.size(); i++) {
  2285. // JSONObject formData = data.getJSONObject(i).getJSONObject("formData");
  2286. // JSONArray tableField_lofdxd54 = formData.getJSONArray("tableField_lofdxd54");
  2287. // for (int j = 0; j < tableField_lofdxd54.size(); j++) {
  2288. // JSONObject jsonObject1 = tableField_lofdxd54.getJSONObject(j);
  2289. // listAll.add(jsonObject1);
  2290. // }
  2291. // }
  2292. // }
  2293. //
  2294. // if (jsonObject.getFloat("totalCount") / 100 > jsonObject.getInteger("currentPage")){
  2295. // page += page;
  2296. // }
  2297. //
  2298. // }while (jsonObject.getFloat("totalCount") / 100 > jsonObject.getInteger("currentPage"));
  2299. //
  2300. // JSONArray jsonArray = JSON.parseArray(listAll.toString());
  2301. // System.out.println("封装【特殊加班单】明细jsonArray:" + jsonArray);
  2302. // }
  2303. //
  2304. // //根据部门id获取下级部门列表
  2305. // @Test
  2306. // public JSONArray getBumenList(long bumenID){
  2307. //
  2308. //// long bumenID = 541945265l;
  2309. //
  2310. // //获取部门列表
  2311. // String bumenStr = null;
  2312. // try {
  2313. // DingTalkClient client = new DefaultDingTalkClient("https://oapi.dingtalk.com/topapi/v2/department/listsub");
  2314. // OapiV2DepartmentListsubRequest req = new OapiV2DepartmentListsubRequest();
  2315. // req.setDeptId(bumenID);
  2316. // OapiV2DepartmentListsubResponse rsp = client.execute(req, accessTokenService.getAccessToken());
  2317. // System.out.println(rsp.getBody());
  2318. // bumenStr = rsp.getBody();
  2319. // } catch (ApiException e) {
  2320. // e.printStackTrace();
  2321. // }
  2322. //
  2323. // JSONObject jsonObject = JSON.parseObject(bumenStr);
  2324. // JSONArray result = jsonObject.getJSONArray("result");
  2325. // System.out.println("部门列表返回结果:" + result);
  2326. //
  2327. // return result;
  2328. // }
  2329. //
  2330. // @Test
  2331. // public void getBumen(){
  2332. //
  2333. // //固定部门:【技术部】、【产品部】
  2334. // String bumenIdStr = "[\"480288770\",\"831620159\"]";
  2335. //
  2336. // JSONArray bumenIdArray = JSON.parseArray(bumenIdStr);
  2337. //
  2338. // for (int i = 0; i < bumenIdArray.size(); i++) {
  2339. // long bumenID = bumenIdArray.getLong(i);
  2340. // System.out.println("循环第" + i + "次部门id~~~");
  2341. //
  2342. // //获取部门列表
  2343. // JSONArray bumenList1 = getBumenList(bumenID);
  2344. //
  2345. // if (bumenList1.isEmpty()) {
  2346. // System.out.println("第一层部门列表为空!");
  2347. // } else {
  2348. // for (int j = 0; j < bumenList1.size(); j++) {
  2349. // log.info("循环第一层部门列表。。。");
  2350. // JSONObject jsonObject1 = bumenList1.getJSONObject(j);
  2351. // System.out.println("第一层部门列表:" + jsonObject1);
  2352. //
  2353. // //第一层部门id
  2354. // long dept_id1 = jsonObject1.getLong("dept_id");
  2355. // System.out.println("第一层部门id:" + dept_id1);
  2356. //
  2357. // JSONArray bumenList2 = getBumenList(dept_id1);
  2358. //
  2359. // if (bumenList2.isEmpty()) {
  2360. // System.out.println("第二层部门列表为空!");
  2361. // } else {
  2362. // for (int k = 0; k < bumenList2.size(); k++) {
  2363. // log.info("循环第二层部门列表。。。");
  2364. //
  2365. // JSONObject jsonObject2 = bumenList2.getJSONObject(j);
  2366. // System.out.println("第二层部门列表:" + jsonObject2);
  2367. // }
  2368. // }
  2369. // }
  2370. // }
  2371. // }
  2372. // }
  2373. //
  2374. //
  2375. // //环世TB企业ID(tbOrganizationId)
  2376. // public static String tbOrganizationId = "61318dae53bac9ea1baf7d9d";
  2377. //
  2378. // @Test
  2379. // public void getTBuserId(){
  2380. //
  2381. // String youxiang = "hongd@olymtech.com";
  2382. //
  2383. // int code = 0;
  2384. // JSONArray result = null;
  2385. // try {
  2386. // OkHttpClient client = new OkHttpClient().newBuilder()
  2387. // .build();
  2388. // MediaType mediaType = MediaType.parse("text/plain");
  2389. // RequestBody body = RequestBody.create(mediaType, "");
  2390. // Request request = new Request.Builder()
  2391. // .url("https://open.teambition.com/api/org/member/search?orgId=" + tbOrganizationId + "&query=" + youxiang)
  2392. // .method("GET", null)
  2393. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2394. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2395. // .addHeader("X-Tenant-Type", "organization")
  2396. // .build();
  2397. // Response response = client.newCall(request).execute();
  2398. //
  2399. // String bodyStr = response.body().string();
  2400. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2401. //// System.out.println("返回体body:" + jsonObject);
  2402. // code = jsonObject.getInteger("code");
  2403. // System.out.println("TB获取人员接口返回状态码:" + code);
  2404. //
  2405. // result = jsonObject.getJSONArray("result");
  2406. // System.out.println("TB获取人员接口返回result:" + result);
  2407. // }catch (IOException e){
  2408. // e.printStackTrace();
  2409. // }
  2410. //
  2411. // String TBuserId = result.getJSONObject(0).getString("userId");
  2412. // System.out.println("根据邮箱匹配的TBuserId:" + TBuserId);
  2413. // }
  2414. //
  2415. // @Test
  2416. // public void getTEST(){
  2417. // String aaa = "[{\"shiliID\":\"FINST-QC766EC1L3UFMWJ56OPWECOBKSH62WS7X3SOL8Z3\",\"zhubumen\":\"跨境电商组\",\"zhiwei\":\"后端开发工程师\",\"userid\":\"2055054927907044\",\"username\":\"洪鼎\",\"youxiang\":\"hongd@olymtech.com\"}]";
  2418. // JSONArray yidaRenyuanxinxidibiao = JSON.parseArray(aaa);
  2419. // log.info("【TEST】通过封装接口获取【人员信息底表】:" + yidaRenyuanxinxidibiao);
  2420. //
  2421. // for (int i = 0; i < yidaRenyuanxinxidibiao.size(); i++) {
  2422. // //员工id
  2423. // String userId = yidaRenyuanxinxidibiao.getJSONObject(i).getString("userid");
  2424. // System.out.println("员工id:" + userId);
  2425. // }
  2426. // }
  2427. //
  2428. // //根据任务ID获取任务详情
  2429. // @Test
  2430. // public void getRenwuxiangqing(){
  2431. //
  2432. // String renwuId = "65698c723718c3e0586686bf";
  2433. //
  2434. // int code = 0;
  2435. // JSONArray result = null;
  2436. // JSONArray renwuxiangqing = null;
  2437. // try {
  2438. // OkHttpClient client = new OkHttpClient().newBuilder()
  2439. // .build();
  2440. // MediaType mediaType = MediaType.parse("text/plain");
  2441. // RequestBody body = RequestBody.create(mediaType, "");
  2442. // Request request = new Request.Builder()
  2443. // .url("https://open.teambition.com/api/v3/task/query?taskId=" + renwuId)
  2444. // .method("GET", null)
  2445. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2446. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2447. // .addHeader("X-Tenant-Type", "organization")
  2448. // .build();
  2449. // Response response = client.newCall(request).execute();
  2450. //
  2451. // String bodyStr = response.body().string();
  2452. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2453. //// System.out.println("返回体body:" + jsonObject);
  2454. // code = jsonObject.getInteger("code");
  2455. // System.out.println("TB获取任务详情接口返回状态码:" + code);
  2456. //
  2457. // result = jsonObject.getJSONArray("result");
  2458. // System.out.println("TB获取任务详情接口返回result:" + result);
  2459. //
  2460. // renwuxiangqing = JSON.parseArray(result.toJSONString());
  2461. // System.out.println("接口返回任务详情数组:" + renwuxiangqing);
  2462. // }catch (IOException e){
  2463. // e.printStackTrace();
  2464. // }
  2465. //
  2466. // JSONObject jsonObject = renwuxiangqing.getJSONObject(0);
  2467. //
  2468. // //是否放入回收站
  2469. // String isArchived = jsonObject.getString("isArchived");
  2470. // System.out.println("是否放入回收站:" + isArchived);
  2471. //
  2472. // String content = "";
  2473. // String yewuleixing = "";
  2474. // String tBxaingmuName = "";
  2475. //
  2476. // if (renwuxiangqing == null){
  2477. // log.info("该任务不存在!");
  2478. // } else if (isArchived.equals("true")) {
  2479. // log.info("该任务已放入回收站,不统计!");
  2480. // } else {
  2481. // log.info("该任务没有放入回收站,正常统计!");
  2482. // }
  2483. //// if (renwuxiangqing == null){
  2484. //// log.info("该任务不存在!");
  2485. //// }else {
  2486. ////
  2487. //// //任务标题
  2488. //// content = jsonObject.getString("content");
  2489. //// System.out.println("任务标题:" + content);
  2490. ////
  2491. //// /*调用封装接口获取自定义字段【业务类型】选项值集合*/
  2492. //// log.info("调用封装接口获取自定义字段【业务类型】选项值集合。");
  2493. //// JSONArray tBzidingyi = getTBzidingyi();
  2494. //// for (int i = 0; i < tBzidingyi.size(); i++) {
  2495. //// JSONObject jsonObject1 = tBzidingyi.getJSONObject(i);
  2496. //// //自定义字段id
  2497. //// String zidingyiID = jsonObject1.getString("id");
  2498. //// System.out.println("自定义字段【业务类型】id:" + zidingyiID);
  2499. //// //自定义字段名称
  2500. //// String zidingyiName = jsonObject1.getString("value");
  2501. //// System.out.println("自定义字段【业务类型】名称:" + zidingyiName);
  2502. ////
  2503. //// //业务类型
  2504. //// JSONArray yewuleixingjsonArray = renwuxiangqing.getJSONObject(0).getJSONArray("customfields");
  2505. //// for (int j = 0; j < yewuleixingjsonArray.size(); j++) {
  2506. //// JSONArray yewuleixingjsonArray1 = yewuleixingjsonArray.getJSONObject(j).getJSONArray("value");
  2507. //// if (yewuleixingjsonArray1.isEmpty()){
  2508. //// log.info("任务字段没有内容,跳过~");
  2509. //// }else {
  2510. //// String ziduanName = yewuleixingjsonArray1.getJSONObject(0).getString("title");
  2511. //// System.out.println("任务中包含的字段内容:" + ziduanName);
  2512. //// //判断当前循环到的字段内容是否属于自定义字段【业务类型】中的某个值,如果符合其中一个则取该值
  2513. //// if (ziduanName.equals(zidingyiName)) {
  2514. //// yewuleixing = ziduanName;
  2515. //// }
  2516. //// }
  2517. //// }
  2518. //// }
  2519. //// System.out.println("【匹配】业务类型:" + yewuleixing);
  2520. ////
  2521. ////
  2522. ////
  2523. //// //项目ID
  2524. //// String projectId = jsonObject.getString("projectId");
  2525. //// System.out.println("项目ID:" + projectId);
  2526. ////
  2527. //// }
  2528. //
  2529. //// return resultArray;
  2530. // }
  2531. //
  2532. // //根据TB人员userId获取工时
  2533. // @Test
  2534. // public void getTBgongshi(){
  2535. //
  2536. // String TBuserId = "61336e4f4c42b6c212f358f1";
  2537. //
  2538. // //TODO 需要做成动态的
  2539. // String startDate = "2023-11-01";
  2540. // String endDate = "2023-11-30";
  2541. //
  2542. // int code = 0;
  2543. // JSONArray result = null;
  2544. // try {
  2545. // OkHttpClient client = new OkHttpClient().newBuilder()
  2546. // .build();
  2547. // MediaType mediaType = MediaType.parse("text/plain");
  2548. // RequestBody body = RequestBody.create(mediaType, "");
  2549. // Request request = new Request.Builder()
  2550. // .url("https://open.teambition.com/api/worktime/query?userId=" + TBuserId + "&pageSize=1000&pageToken=&startDate="+ startDate +"&endDate="+ endDate)
  2551. // .method("GET", null)
  2552. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2553. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2554. // .addHeader("X-Tenant-Type", "organization")
  2555. // .build();
  2556. // Response response = client.newCall(request).execute();
  2557. //
  2558. // String bodyStr = response.body().string();
  2559. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2560. //// System.out.println("返回体body:" + jsonObject);
  2561. // code = jsonObject.getInteger("code");
  2562. // System.out.println("TB获取人员实际工时接口返回状态码:" + code);
  2563. //
  2564. // result = jsonObject.getJSONArray("result");
  2565. // System.out.println("TB获取人员实际工时接口返回result:" + result);
  2566. // }catch (IOException e){
  2567. // e.printStackTrace();
  2568. // }
  2569. //
  2570. // double gongshiAll = 0;
  2571. //
  2572. // if (result.isEmpty()){
  2573. // log.info("未获取到!");
  2574. // }else {
  2575. // log.info("获取到!");
  2576. //
  2577. //
  2578. // for (int i = 0; i < result.size(); i++) {
  2579. // //工时关联的task ID
  2580. // String objectId = result.getJSONObject(i).getString("objectId");
  2581. // System.out.println("工时关联的task ID:" + objectId);
  2582. // //工时(毫秒:转换成天)
  2583. // long plantime = result.getJSONObject(i).getLong("worktime");
  2584. // System.out.println("工时(毫秒):" + plantime);
  2585. // double gongshi = (double) plantime / 3600000 / 8;
  2586. // BigDecimal gongshiTwo = new BigDecimal(gongshi);
  2587. // double gs = gongshiTwo.setScale(2, BigDecimal.ROUND_HALF_UP).doubleValue();
  2588. // System.out.println("工时(毫秒转换成天):" + gs);
  2589. //
  2590. // gongshiAll = gongshiAll + gs;
  2591. //
  2592. //// //根据任务ID获取任务详情,解析得到任务标题和项目ID
  2593. //// JSONArray renwuxiangqing = getRenwuxiangqing(objectId);
  2594. //// JSONObject jsonObject = renwuxiangqing.getJSONObject(0);
  2595. //// //任务标题
  2596. //// String content = jsonObject.getString("content");
  2597. //// System.out.println("任务标题:" + content);
  2598. ////
  2599. //// //项目ID
  2600. //// String projectId = jsonObject.getString("projectId");
  2601. //// System.out.println("项目ID:" + projectId);
  2602. //// /*根据项目ID获取项目详情*/
  2603. // }
  2604. // }
  2605. //
  2606. // System.out.println("该人员计划工时为:" + gongshiAll);
  2607. // }
  2608. //
  2609. // public JSONArray getTBxiangmufenzu(String fenzuId){
  2610. // //根据项目分组id获取其中的项目id
  2611. // int code = 0;
  2612. // JSONArray result = null;
  2613. // try {
  2614. // OkHttpClient client = new OkHttpClient().newBuilder()
  2615. // .build();
  2616. // MediaType mediaType = MediaType.parse("text/plain");
  2617. // RequestBody body = RequestBody.create(mediaType, "");
  2618. // Request request = new Request.Builder()
  2619. // .url("https://open.teambition.com/api/v3/project-tag/"+ fenzuId +"/project/query")
  2620. // .method("GET", null)
  2621. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2622. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2623. // .addHeader("X-Tenant-Type", "organization")
  2624. // .build();
  2625. // Response response = client.newCall(request).execute();
  2626. // String bodyStr = response.body().string();
  2627. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2628. // System.out.println("返回体body:" + jsonObject);
  2629. // code = jsonObject.getInteger("code");
  2630. //
  2631. // result = jsonObject.getJSONArray("result");
  2632. // }catch (IOException e){
  2633. // e.printStackTrace();
  2634. // }
  2635. // System.out.println("查询【项目分组】下面的项目id,接口返回的状态码(200成功,400异常):" + code);
  2636. // System.out.println("每一个项目分组下面的项目id列表返回值:" + result);
  2637. //
  2638. // return result;
  2639. // }
  2640. //
  2641. // //获取项目信息
  2642. // @Test
  2643. // public void getTBxaingmu(){
  2644. //
  2645. // String xiangmuID = "652e28f8d74c5cc851b1a732";
  2646. //
  2647. // int code = 0;
  2648. // JSONArray result = null;
  2649. // try {
  2650. // OkHttpClient client = new OkHttpClient().newBuilder()
  2651. // .build();
  2652. // Request request = new Request.Builder()
  2653. // .url("https://open.teambition.com/api/v3/project/query?projectIds=" + xiangmuID)
  2654. // .method("GET", null)
  2655. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2656. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2657. // .addHeader("X-Tenant-Type", "organization")
  2658. // .build();
  2659. //
  2660. // Response response = client.newCall(request).execute();
  2661. // String bodyStr = response.body().string();
  2662. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2663. // System.out.println("返回体body:" + jsonObject);
  2664. // code = jsonObject.getInteger("code");
  2665. // System.out.println("查询【项目信息】接口返回的状态码(200成功,400异常):" + code);
  2666. //
  2667. // result = jsonObject.getJSONArray("result");
  2668. // }catch (IOException e){
  2669. // e.printStackTrace();
  2670. // }
  2671. //
  2672. // String xiangmuName = result.getJSONObject(0).getString("name");
  2673. // System.out.println("项目名称:" + xiangmuName);
  2674. // }
  2675. //
  2676. // //根据项目ID获取项目分组ID
  2677. // @Test
  2678. // public void getXiangmufenzuID(){
  2679. //
  2680. // //项目ID
  2681. // String xiangmuID = "65489aef757f53d1f80dfaa6";
  2682. //
  2683. // int code = 0;
  2684. // JSONArray result = null;
  2685. // String xiangmufenzuID = "";
  2686. // try {
  2687. // OkHttpClient client = new OkHttpClient().newBuilder()
  2688. // .build();
  2689. // MediaType mediaType = MediaType.parse("text/plain");
  2690. // RequestBody body = RequestBody.create(mediaType, "");
  2691. // Request request = new Request.Builder()
  2692. // .url("https://open.teambition.com/api/v3/project/"+ xiangmuID +"/project-tag")
  2693. // .method("GET", null)
  2694. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2695. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2696. // .addHeader("X-Tenant-Type", "organization")
  2697. // .build();
  2698. // Response response = client.newCall(request).execute();
  2699. //
  2700. // String bodyStr = response.body().string();
  2701. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2702. // System.out.println("返回体body:" + jsonObject);
  2703. // code = jsonObject.getInteger("code");
  2704. // System.out.println("查询【项目分组】接口返回的状态码(200成功,400异常):" + code);
  2705. //
  2706. // result = jsonObject.getJSONArray("result");
  2707. // xiangmufenzuID = result.getString(0);
  2708. // }catch (IOException e){
  2709. // e.printStackTrace();
  2710. // }
  2711. //
  2712. // System.out.println("项目分组ID:" + xiangmufenzuID);
  2713. //
  2714. // }
  2715. //
  2716. // //根据项目分组ID获取项目分组名称
  2717. // @Test
  2718. // public void getXiangmufenzuName(){
  2719. //
  2720. // //项目分组ID
  2721. // String xiangmufenzuID = "6459ffcafe95850316b2c2dc";
  2722. //
  2723. // int code = 0;
  2724. // JSONArray result = null;
  2725. // String xiangmufenzuName = "";
  2726. // try {
  2727. // OkHttpClient client = new OkHttpClient().newBuilder()
  2728. // .build();
  2729. // MediaType mediaType = MediaType.parse("text/plain");
  2730. // RequestBody body = RequestBody.create(mediaType, "");
  2731. // Request request = new Request.Builder()
  2732. // .url("https://open.teambition.com/api/v3/project-tag/query?ids="+ xiangmufenzuID)
  2733. // .method("GET", null)
  2734. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2735. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2736. // .addHeader("X-Tenant-Type", "organization")
  2737. // .build();
  2738. // Response response = client.newCall(request).execute();
  2739. //
  2740. // String bodyStr = response.body().string();
  2741. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2742. // System.out.println("返回体body:" + jsonObject);
  2743. // code = jsonObject.getInteger("code");
  2744. // System.out.println("查询【项目分组名称】接口返回的状态码(200成功,400异常):" + code);
  2745. //
  2746. // result = jsonObject.getJSONArray("result");
  2747. // JSONObject jsonObject1 = result.getJSONObject(0);
  2748. // xiangmufenzuName = jsonObject1.getString("name");
  2749. // }catch (IOException e){
  2750. // e.printStackTrace();
  2751. // }
  2752. //
  2753. // System.out.println("项目分组名称:" + xiangmufenzuName);
  2754. //
  2755. // }
  2756. //
  2757. // @Test
  2758. // public void getTB(){
  2759. // /*根据人员信息底表获取【TB项目/任务工时】数据*/
  2760. // //获取项目分组【IDX项目】下面的分组
  2761. // String IDXxiangmufenzuID = "645def56443fd5770693c3f8";
  2762. //
  2763. // int code = 0;
  2764. // JSONArray result = null;
  2765. // try {
  2766. // OkHttpClient client = new OkHttpClient().newBuilder()
  2767. // .build();
  2768. // MediaType mediaType = MediaType.parse("text/plain");
  2769. // RequestBody body = RequestBody.create(mediaType, "");
  2770. // Request request = new Request.Builder()
  2771. // .url("https://open.teambition.com/api/v3/project-tag/query?parentProjectTagId=" + IDXxiangmufenzuID)
  2772. // .method("GET", null)
  2773. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2774. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2775. // .addHeader("X-Tenant-Type", "organization")
  2776. // .build();
  2777. // Response response = client.newCall(request).execute();
  2778. // String bodyStr = response.body().string();
  2779. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2780. // System.out.println("返回体body:" + jsonObject);
  2781. // code = jsonObject.getInteger("code");
  2782. //
  2783. // result = jsonObject.getJSONArray("result");
  2784. // }catch (IOException e){
  2785. // e.printStackTrace();
  2786. // }
  2787. // System.out.println("查询【IDX分组】下面的分组,接口返回的状态码(200成功,400异常):" + code);
  2788. //
  2789. // for (int i = 0; i < result.size(); i++) {
  2790. // String fenzuId = result.getJSONObject(i).getString("id");
  2791. // System.out.println("分组id:" + fenzuId);
  2792. // String fenzuName = result.getJSONObject(i).getString("name");
  2793. // System.out.println("分组名称:" + fenzuName);
  2794. // }
  2795. //
  2796. //
  2797. //
  2798. //
  2799. //
  2800. //// try {
  2801. //// OkHttpClient client = new OkHttpClient().newBuilder()
  2802. //// .build();
  2803. //// Request request = new Request.Builder()
  2804. //// .url("https://open.teambition.com/api/v3/project/query?pageSize=1000")
  2805. //// .method("GET", null)
  2806. //// .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2807. //// .addHeader("X-Tenant-Id", tbOrganizationId)
  2808. //// .addHeader("X-Tenant-Type", "organization")
  2809. //// .build();
  2810. ////
  2811. //// Response response = client.newCall(request).execute();
  2812. //// String bodyStr = response.body().string();
  2813. //// JSONObject jsonObject = JSON.parseObject(bodyStr);
  2814. //// System.out.println("返回体body:" + jsonObject);
  2815. //// code = jsonObject.getInteger("code");
  2816. ////
  2817. //// result = jsonObject.getJSONArray("result");
  2818. //// }catch (IOException e){
  2819. //// e.printStackTrace();
  2820. //// }
  2821. //// System.out.println("查询【项目信息】接口返回的状态码(200成功,400异常):" + code);
  2822. //
  2823. // }
  2824. //
  2825. // //获取IDX分组下的目录名称
  2826. // public JSONArray getIDXfenzu(){
  2827. // /*根据人员信息底表获取【TB项目/任务工时】数据*/
  2828. // //获取项目分组【IDX项目】下面的分组
  2829. // String IDXxiangmufenzuID = "645def56443fd5770693c3f8";
  2830. //
  2831. // int code = 0;
  2832. // JSONArray result = null;
  2833. // try {
  2834. // OkHttpClient client = new OkHttpClient().newBuilder()
  2835. // .build();
  2836. // MediaType mediaType = MediaType.parse("text/plain");
  2837. // RequestBody body = RequestBody.create(mediaType, "");
  2838. // Request request = new Request.Builder()
  2839. // .url("https://open.teambition.com/api/v3/project-tag/query?parentProjectTagId=" + IDXxiangmufenzuID)
  2840. // .method("GET", null)
  2841. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2842. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2843. // .addHeader("X-Tenant-Type", "organization")
  2844. // .build();
  2845. // Response response = client.newCall(request).execute();
  2846. // String bodyStr = response.body().string();
  2847. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2848. // System.out.println("返回体body:" + jsonObject);
  2849. // code = jsonObject.getInteger("code");
  2850. //
  2851. // result = jsonObject.getJSONArray("result");
  2852. // }catch (IOException e){
  2853. // e.printStackTrace();
  2854. // }
  2855. // System.out.println("查询【IDX分组】下面的分组,接口返回的状态码(200成功,400异常):" + code);
  2856. //
  2857. // return result;
  2858. // }
  2859. //
  2860. // //测试业务类型--分组目录获取
  2861. // @Test
  2862. // public void getFenzu(){
  2863. //
  2864. // String xiangmufenzuName = "船东";
  2865. // int flag = 0;
  2866. // String XXX = "";
  2867. //
  2868. // //调用接口获取IDX分组下的目录名称,匹配逻辑下最终的业务类型名称
  2869. // log.info("调用接口获取IDX分组下的目录名称===");
  2870. // JSONArray IDXfenzu = getIDXfenzu();
  2871. // for (int f = 0; f < IDXfenzu.size(); f++) {
  2872. // String fenzuId = IDXfenzu.getJSONObject(f).getString("id");
  2873. // System.out.println("分组id:" + fenzuId);
  2874. // String fenzuName = IDXfenzu.getJSONObject(f).getString("name");
  2875. // System.out.println("分组名称:" + fenzuName);
  2876. //
  2877. // if (flag == 0){
  2878. // if (xiangmufenzuName.equals(fenzuName)){
  2879. // log.info("匹配到IDX分组名称,去取该IDX分组下的目录名称。");
  2880. // XXX = fenzuName;
  2881. // //添加标识,说明已经匹配到了
  2882. // flag = flag + 1;
  2883. // }else {
  2884. // log.info("匹配不到IDX分组名称,继续匹配下一个IDX分组。");
  2885. // }
  2886. // }
  2887. // }
  2888. // System.out.println("获取的IDX分组下的目录名称用作最终的【业务类型】:" + XXX);
  2889. // }
  2890. //
  2891. //
  2892. // //根据自定义字段ID【业务类型】获取自定义字段内容
  2893. // @Test
  2894. // public void getTBzidingyi() {
  2895. //
  2896. // //业务类型
  2897. // String zidingyiID = "642a8ff24ed7d8c44b469ced";
  2898. //
  2899. // int code = 0;
  2900. // JSONArray result = null;
  2901. // try {
  2902. // OkHttpClient client = new OkHttpClient().newBuilder()
  2903. // .build();
  2904. // MediaType mediaType = MediaType.parse("text/plain");
  2905. // RequestBody body = RequestBody.create(mediaType, "");
  2906. // Request request = new Request.Builder()
  2907. // .url("https://open.teambition.com/api/v3/customfield/search?cfIds=" + zidingyiID)
  2908. // .method("GET", null)
  2909. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2910. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2911. // .addHeader("X-Tenant-Type", "organization")
  2912. // .build();
  2913. // Response response = client.newCall(request).execute();
  2914. //
  2915. // String bodyStr = response.body().string();
  2916. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2917. // System.out.println("返回体body:" + jsonObject);
  2918. // code = jsonObject.getInteger("code");
  2919. // System.out.println("查询【自定义字段:业务类型】接口返回的状态码(200成功,400异常):" + code);
  2920. //
  2921. // result = jsonObject.getJSONArray("result");
  2922. // System.out.println("result:" + result);
  2923. //
  2924. // }catch (IOException e){
  2925. // e.printStackTrace();
  2926. // }
  2927. //
  2928. // JSONArray yewuleixingArray = result.getJSONObject(0).getJSONArray("choices");
  2929. // System.out.println("【业务类型】值:" + yewuleixingArray);
  2930. //
  2931. //// return yewuleixingArray;
  2932. // }
  2933. //
  2934. // //获取迭代类型
  2935. // @Test
  2936. // public void getDiedai(){
  2937. //
  2938. // String xmid = "6476b93d344ff5c76845eb8d";
  2939. // String ddid = "6528b83315680fd221e3c1b6";
  2940. //
  2941. // int code = 0;
  2942. // JSONArray result = null;
  2943. // String diedaiName = "";
  2944. // try {
  2945. // OkHttpClient client = new OkHttpClient().newBuilder()
  2946. // .build();
  2947. // MediaType mediaType = MediaType.parse("text/plain");
  2948. // RequestBody body = RequestBody.create(mediaType, "");
  2949. // Request request = new Request.Builder()
  2950. // .url("https://open.teambition.com/api/v3/project/" + xmid + "/sprint/search?sprintIds=" + ddid)
  2951. // .method("GET", null)
  2952. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  2953. // .addHeader("X-Tenant-Id", tbOrganizationId)
  2954. // .addHeader("X-Tenant-Type", "organization")
  2955. // .build();
  2956. // Response response = client.newCall(request).execute();
  2957. //
  2958. // String bodyStr = response.body().string();
  2959. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  2960. // System.out.println("返回体body:" + jsonObject);
  2961. // code = jsonObject.getInteger("code");
  2962. // System.out.println("查询【迭代名称】接口返回的状态码(200成功,400异常):" + code);
  2963. //
  2964. // result = jsonObject.getJSONArray("result");
  2965. // System.out.println("result:" + result);
  2966. //
  2967. // if (!result.isEmpty()){
  2968. // diedaiName = result.getJSONObject(0).getString("name");
  2969. // }
  2970. // }catch (IOException e){
  2971. // e.printStackTrace();
  2972. // }
  2973. // System.out.println("迭代名称:" + diedaiName);
  2974. // }
  2975. //
  2976. //
  2977. // //删除宜搭表单数据【工时数据汇总表】
  2978. // @Test
  2979. // public void delGongshitongji(){
  2980. //
  2981. // JSONObject jsonObject = null;
  2982. //
  2983. // int size = 100;
  2984. // int page = 1;
  2985. //
  2986. // List listAll = new ArrayList();
  2987. //
  2988. // do {
  2989. //
  2990. // //【环世架构】
  2991. // try {
  2992. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  2993. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders searchFormDatasHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders();
  2994. // searchFormDatasHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  2995. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest searchFormDatasRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest()
  2996. // .setSystemToken("J0A6698165EFMED0AHIG76FW7C6Q3ON1PG5OL482")
  2997. //// .setSearchFieldJson(mapAllStr)
  2998. // .setCurrentPage(page)
  2999. // .setPageSize(size)
  3000. // .setFormUuid("FORM-BH766Y61W4CFWBS0869YFBF8COTE2QEHIH5OLM")
  3001. // .setUserId("yida_pub_account")
  3002. // .setAppType("APP_QHPV3T4ZU2Y88Q4U0UDA");
  3003. //
  3004. // SearchFormDatasResponse searchFormDatasResponse = client.searchFormDatasWithOptions(searchFormDatasRequest, searchFormDatasHeaders, new RuntimeOptions());
  3005. //// System.out.println(JSON.toJSONString(searchFormDatasResponse.getBody()));
  3006. // String s = JSON.toJSONString(searchFormDatasResponse.getBody());
  3007. // jsonObject = JSON.parseObject(s);
  3008. // System.out.println("宜搭数据高级条件查询【工时数据汇总表】接口object对象:" + jsonObject);
  3009. // } catch (TeaException err) {
  3010. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  3011. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  3012. // }
  3013. //
  3014. // } catch (Exception _err) {
  3015. // TeaException err = new TeaException(_err.getMessage(), _err);
  3016. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  3017. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  3018. // }
  3019. //
  3020. // }
  3021. //
  3022. // JSONArray data = jsonObject.getJSONArray("data");
  3023. //// System.out.println("返回的宜搭data:" + data);
  3024. //
  3025. //
  3026. // if (data.isEmpty()) {
  3027. // System.out.println("查询当月【工时数据汇总表】返回数据为空!");
  3028. // } else {
  3029. // for (int i = 0; i < data.size(); i++) {
  3030. // JSONObject formData = data.getJSONObject(i).getJSONObject("formData");
  3031. //// System.out.println("循环返回的宜搭formData:" + formData);
  3032. //
  3033. // //实例ID
  3034. // String shiliID = data.getJSONObject(i).getString("formInstanceId");
  3035. // System.out.println("实例ID===>" + shiliID);
  3036. //
  3037. // try {
  3038. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  3039. // DeleteFormDataHeaders deleteFormDataHeaders = new DeleteFormDataHeaders();
  3040. // deleteFormDataHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  3041. // DeleteFormDataRequest deleteFormDataRequest = new DeleteFormDataRequest()
  3042. // .setAppType("APP_QHPV3T4ZU2Y88Q4U0UDA")
  3043. // .setSystemToken("J0A6698165EFMED0AHIG76FW7C6Q3ON1PG5OL482")
  3044. // .setUserId("yida_pub_account")
  3045. // .setFormInstanceId(shiliID);
  3046. //
  3047. // client.deleteFormDataWithOptions(deleteFormDataRequest, deleteFormDataHeaders, new RuntimeOptions());
  3048. // } catch (TeaException err) {
  3049. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  3050. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  3051. // }
  3052. //
  3053. // } catch (Exception _err) {
  3054. // TeaException err = new TeaException(_err.getMessage(), _err);
  3055. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  3056. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  3057. // }
  3058. //
  3059. // }
  3060. // }
  3061. // }
  3062. //
  3063. // if (jsonObject.getFloat("totalCount") / 100 > jsonObject.getFloat("currentPage")){
  3064. // page = page + 1;
  3065. // System.out.println("下一次待查询分页:" + page);
  3066. // }
  3067. //
  3068. // }while (jsonObject.getFloat("totalCount") / 100 > jsonObject.getFloat("currentPage"));
  3069. //
  3070. // System.out.println("删除【工时数据统计表】完成!");
  3071. // }
  3072. //
  3073. // //多线程执行for循环
  3074. // @Test
  3075. // public void testFor() throws InterruptedException{
  3076. // //创建一个线程池,最大线程为10
  3077. //// ExecutorService executorService = Executors.newFixedThreadPool(10);
  3078. //
  3079. // //定义循环此时
  3080. // int size = 100;
  3081. //
  3082. // for (int i = 0; i < size; i++) {
  3083. // ThreadUtil.execAsync(() -> {
  3084. // try {
  3085. // Thread.sleep(3000);
  3086. // } catch (InterruptedException e) {
  3087. // e.printStackTrace();
  3088. // }
  3089. // System.out.println("线程" + Thread.currentThread().getName() + "执行完");
  3090. // });
  3091. // System.out.println("第" + i + "个线程");
  3092. // }
  3093. // System.out.println("完成");
  3094. //
  3095. //// for (int i = 0; i < size; i++) {
  3096. //// // 任务逻辑代码
  3097. //// System.out.println("任务执行中:" + i);
  3098. ////
  3099. //// try {
  3100. //// Thread.sleep(2000);
  3101. //// }catch (Exception e){
  3102. //// e.printStackTrace();
  3103. //// }
  3104. //// }
  3105. //
  3106. //// // 定义任务
  3107. //// Runnable task = () -> {
  3108. //// // 循环逻辑
  3109. //// for (int i = 0; i < size; i++) {
  3110. //// // 任务逻辑代码
  3111. //// System.out.println("任务执行中:" + i);
  3112. ////
  3113. //// try {
  3114. //// Thread.sleep(2000);
  3115. //// }catch (Exception e){
  3116. //// e.printStackTrace();
  3117. //// }
  3118. ////
  3119. //// }
  3120. //// };
  3121. ////
  3122. //// // 提交任务给线程池
  3123. //// executorService.execute(task);
  3124. ////
  3125. //// // 关闭线程池
  3126. //// executorService.shutdown();
  3127. ////
  3128. //// // 等待任务完成
  3129. //// executorService.awaitTermination(Long.MAX_VALUE, TimeUnit.NANOSECONDS);
  3130. ////
  3131. //// System.out.println("任务执行完成");
  3132. // }
  3133. //
  3134. //
  3135. // //通过IDMap查询TBuserId
  3136. // @Test
  3137. // public void getDingdingToTBuserId(){
  3138. //
  3139. // String userid = "3242531728350746";
  3140. //
  3141. // String dingCorpId = "ding8f59ac9a4a00de1635c2f4657eb6378f";
  3142. //
  3143. // int code = 0;
  3144. // JSONArray result = null;
  3145. // try {
  3146. // OkHttpClient client = new OkHttpClient().newBuilder()
  3147. // .build();
  3148. // MediaType mediaType = MediaType.parse("text/plain");
  3149. // RequestBody body = RequestBody.create(mediaType, "");
  3150. // Request request = new Request.Builder()
  3151. // .url("https://open.teambition.com/api/idmap/query?refId="+ dingCorpId +"&refer=dingTalk-user&extraUserId="+ userid)
  3152. // .method("GET", null)
  3153. // .addHeader("Authorization", "Bearer " + accessTokenService.getAppToken())
  3154. // .addHeader("X-Tenant-Id", tbOrganizationId)
  3155. // .addHeader("X-Tenant-Type", "organization")
  3156. // .build();
  3157. // Response response = client.newCall(request).execute();
  3158. //
  3159. // String bodyStr = response.body().string();
  3160. // JSONObject jsonObject = JSON.parseObject(bodyStr);
  3161. //// System.out.println("返回体body:" + jsonObject);
  3162. // code = jsonObject.getInteger("code");
  3163. // System.out.println("TB获取人员接口返回状态码:" + code);
  3164. //
  3165. // result = jsonObject.getJSONArray("result");
  3166. // System.out.println("TB获取人员接口返回result:" + result);
  3167. // }catch (IOException e){
  3168. // e.printStackTrace();
  3169. // }
  3170. //
  3171. // String tbId = result.getJSONObject(0).getString("tbId");
  3172. // System.out.println("根据钉钉userid匹配的TBuserId:" + tbId);
  3173. // }
  3174. //
  3175. // //宜搭接口调用
  3176. // public static com.aliyun.dingtalkyida_1_0.Client createClient2() throws Exception {
  3177. // com.aliyun.teaopenapi.models.Config config = new com.aliyun.teaopenapi.models.Config();
  3178. // config.protocol = "https";
  3179. // config.regionId = "central";
  3180. // return new com.aliyun.dingtalkyida_1_0.Client(config);
  3181. // }
  3182. //
  3183. // //查询宜搭中是否有该任务的工时
  3184. // @Test
  3185. // public void getYida(){
  3186. //
  3187. //// {"textField_lqn3tjjv":"2024-01-22T00:00:00.000Z","textField_losayxi8":"2024-01","textField_los8y15p":"061141054827422143","textField_lp8ihks3":"65ba02f66f5ee01eee0cf59b"}
  3188. //
  3189. // //{"textField_lqn3tjjv":"2024-03-15T00:00:00.000Z","textField_losayxi8":"2024-03",
  3190. // // "textField_los8y15p":"010447236935176207","textField_lp8ihks3":"65befa3e8b441c8a0e5df178"}
  3191. //
  3192. // String sjtjyf = "2024-04";
  3193. // String userid = "085953146222434489";
  3194. // String tbrwid = "656071b6f06c9997edf0f984";
  3195. // String rwgsssrq = "2024-04-30T00:00:00.000Z";
  3196. // String panduan = "判断实际工时是否存在";
  3197. //
  3198. // //封装根据当前年份作为查询条件
  3199. // Map mapAll = new HashMap();
  3200. //// //查询实际统计月份
  3201. //// mapAll.put("textField_losayxi8",sjtjyf);
  3202. //// //人员userid
  3203. //// mapAll.put("textField_los8y15p",userid);
  3204. //// //TB任务id
  3205. //// mapAll.put("textField_lp8ihks3",tbrwid);
  3206. //// //任务工时所属日期
  3207. //// mapAll.put("textField_lqn3tjjv",rwgsssrq);
  3208. //
  3209. // if (panduan.equals("实际工时")){
  3210. // //查询实际统计月份
  3211. // mapAll.put("textField_losayxi8",sjtjyf);
  3212. // //人员userid
  3213. // mapAll.put("textField_los8y15p",userid);
  3214. // //TB任务id
  3215. // mapAll.put("textField_lp8ihks3",tbrwid);
  3216. // //任务工时所属日期
  3217. // mapAll.put("textField_lqn3tjjv",rwgsssrq);
  3218. // }else {
  3219. // //查询实际统计月份
  3220. // mapAll.put("textField_losayxi8",sjtjyf);
  3221. // //人员userid
  3222. // mapAll.put("textField_los8y15p",userid);
  3223. // //TB任务id
  3224. // mapAll.put("textField_lp8ihks3",tbrwid);
  3225. // //任务工时所属日期
  3226. // mapAll.put("textField_lqn3tjjv",rwgsssrq);
  3227. // //工时类型
  3228. // mapAll.put("textField_lrq4uku2","实际工时");
  3229. // }
  3230. //
  3231. // String mapAllStr = JSON.toJSONString(mapAll);
  3232. // System.out.println("封装查询宜搭中是否有该任务工时的字段参数:" + mapAllStr);
  3233. //
  3234. // JSONObject jsonObject = null;
  3235. // JSONArray data = null;
  3236. //
  3237. // int size = 100;
  3238. // int page = 1;
  3239. //
  3240. // //【环世架构】
  3241. // try {
  3242. // com.aliyun.dingtalkyida_1_0.Client client = createClient();
  3243. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders searchFormDatasHeaders = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasHeaders();
  3244. // searchFormDatasHeaders.xAcsDingtalkAccessToken = accessTokenService.getAccessToken();
  3245. // com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest searchFormDatasRequest = new com.aliyun.dingtalkyida_1_0.models.SearchFormDatasRequest()
  3246. // .setSystemToken("J0A6698165EFMED0AHIG76FW7C6Q3ON1PG5OL482")
  3247. // .setSearchFieldJson(mapAllStr)
  3248. // .setCurrentPage(page)
  3249. // .setPageSize(size)
  3250. // .setFormUuid("FORM-BH766Y61W4CFWBS0869YFBF8COTE2QEHIH5OLM")
  3251. // .setUserId("yida_pub_account")
  3252. // .setAppType("APP_QHPV3T4ZU2Y88Q4U0UDA");
  3253. //
  3254. // SearchFormDatasResponse searchFormDatasResponse = client.searchFormDatasWithOptions(searchFormDatasRequest, searchFormDatasHeaders, new RuntimeOptions());
  3255. //// System.out.println(JSON.toJSONString(searchFormDatasResponse.getBody()));
  3256. // String s = JSON.toJSONString(searchFormDatasResponse.getBody());
  3257. // jsonObject = JSON.parseObject(s);
  3258. //// System.out.println("钉钉宜搭数据高级条件查询【宜搭工时统计表】接口object对象:" + jsonObject);
  3259. //
  3260. // data = jsonObject.getJSONArray("data");
  3261. // System.out.println("返回的宜搭data:" + data);
  3262. // } catch (TeaException err) {
  3263. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  3264. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  3265. // }
  3266. //
  3267. // } catch (Exception _err) {
  3268. // TeaException err = new TeaException(_err.getMessage(), _err);
  3269. // if (!com.aliyun.teautil.Common.empty(err.code) && !com.aliyun.teautil.Common.empty(err.message)) {
  3270. // // err 中含有 code 和 message 属性,可帮助开发定位问题
  3271. // }
  3272. //
  3273. // }
  3274. //
  3275. // String flag = null;
  3276. // if (data == null || data.isEmpty()) {
  3277. // System.out.println("查询【宜搭工时统计表】返回数据为空!");
  3278. // flag = "不存在";
  3279. // } else {
  3280. // flag = "已存在";
  3281. // }
  3282. // System.out.println("查询返回结果标识:" + flag);
  3283. //
  3284. //// return "";
  3285. // }
  3286. //
  3287. //
  3288. // public static final Long EXPIRES_IN = 1 * 3600 * 1000L;
  3289. // public static final String TOKEN_APPID = "_appId";
  3290. //
  3291. // public static String appId = "65e56669046a09f810102606";
  3292. // public static String appSecret = "tWxECRxFHG8SYnBxPNz6gyDRCAew7CjR";
  3293. // //获取access_token的方法(TB应用)【测试】
  3294. // @Test
  3295. // public void getAppToken() {
  3296. // if (org.springframework.util.StringUtils.isEmpty(appId) || org.springframework.util.StringUtils.isEmpty(appSecret)) {
  3297. //// return null;
  3298. // }
  3299. //
  3300. // Algorithm algorithm = Algorithm.HMAC256(appSecret);
  3301. // long timestamp = System.currentTimeMillis();
  3302. // Date issuedAt = new Date(timestamp);
  3303. // Date expiresAt = new Date(timestamp + EXPIRES_IN);
  3304. //
  3305. //// return JWT.create()
  3306. //// .withClaim(TOKEN_APPID, appId)
  3307. //// .withIssuedAt(issuedAt)
  3308. //// .withExpiresAt(expiresAt)
  3309. //// .sign(algorithm);
  3310. //
  3311. // String sign = JWT.create()
  3312. // .withClaim(TOKEN_APPID, appId)
  3313. // .withIssuedAt(issuedAt)
  3314. // .withExpiresAt(expiresAt)
  3315. // .sign(algorithm);
  3316. // System.out.println("TB应用的AccessToken:" + sign);
  3317. //
  3318. //// return sign;
  3319. //
  3320. // }
  3321. //}