From 760cd57881cf1c4261e546216783542178f51eb4 Mon Sep 17 00:00:00 2001 From: guoshengxiong <1923636941@qq.com> Date: Wed, 15 Jan 2025 14:50:54 +0800 Subject: [PATCH] =?UTF-8?q?=E5=8C=85=E5=A4=B4bug=E4=BF=AE=E5=A4=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../modules/worker/entity/WorkerInfo.java | 1 + .../service/impl/WorkerInfoServiceImpl.java | 64 ++++++++---------- .../service/impl/XzProjectOrgServiceImpl.java | 6 +- .../com/zhgd/xmgl/util/FlowSeviceUtil.java | 4 +- src/main/resources/excel/人员导入模板.xlsx | Bin 14341 -> 14328 bytes 5 files changed, 36 insertions(+), 39 deletions(-) diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java index baed2e703..8fba9e8c6 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/entity/WorkerInfo.java @@ -455,6 +455,7 @@ public class WorkerInfo implements Serializable { ", teamId=" + teamId + ", departmentId=" + departmentId + ", payRollBankNumber='" + payRollBankNumber + '\'' + + ", personMail='" + personMail + '\'' + '}'; } diff --git a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java index c85578250..4b36bc758 100644 --- a/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/worker/service/impl/WorkerInfoServiceImpl.java @@ -10,8 +10,6 @@ import cn.hutool.core.map.MapUtil; import cn.hutool.core.text.CharSequenceUtil; import cn.hutool.core.util.*; import cn.hutool.extra.qrcode.QrCodeUtil; -import cn.hutool.poi.excel.ExcelUtil; -import cn.hutool.poi.excel.ExcelWriter; import com.alibaba.fastjson.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; @@ -155,6 +153,9 @@ public class WorkerInfoServiceImpl extends ServiceImpl() +// .eq(Project::getProjectSn, workerInfo.getProjectSn())); +// if (project == null) { +// throw new OpenAlertException("项目不存在"); +// } +// JSONObject param = new JSONObject(); +// String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl(); +// if (StrUtil.isBlank(fieldAcquisitionUrl)) { +// throw new OpenAlertException("fieldAcquisitionUrl不能为空"); +// } +// param.put("facePicBinaryData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + fieldAcquisitionUrl))); +// return hikvisionCall.faceScore(project, param); +// } + /** * 删除项目下所有人员 * @@ -448,21 +464,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl() -// .eq(Project::getProjectSn, workerInfo.getProjectSn())); -// if (project == null) { -// throw new OpenAlertException("项目不存在"); -// } -// JSONObject param = new JSONObject(); -// String fieldAcquisitionUrl = workerInfo.getFieldAcquisitionUrl(); -// if (StrUtil.isBlank(fieldAcquisitionUrl)) { -// throw new OpenAlertException("fieldAcquisitionUrl不能为空"); -// } -// param.put("facePicBinaryData", Base64Util.convertFileToBase64(PathUtil.reviseSlash(basePath + "/" + fieldAcquisitionUrl))); -// return hikvisionCall.faceScore(project, param); -// } - /** * 人员新增 * @@ -1202,10 +1203,6 @@ public class WorkerInfoServiceImpl extends ServiceImpl map) { try { @@ -1943,7 +1940,7 @@ public class WorkerInfoServiceImpl extends ServiceImpl m.getId()).orElse(null)); - workerInfo.setNum(importInfo.get("*编号")); - workerInfo.setEntryDeadline(importInfo.get("*计划入场截止时间")); + workerInfo.setWorkArea(Optional.ofNullable(unitMap.get(importInfo.get("工作区域"))).map(m -> m.getId()).orElse(null)); + workerInfo.setNum(importInfo.get("编号")); + workerInfo.setEntryDeadline(importInfo.get("计划入场截止时间")); + workerInfo.setPersonMail(importInfo.get("邮箱")); workerInfo.setEpcCbs(Optional.ofNullable(unitMap.get(importInfo.get("EPC承包商"))).map(m -> m.getId()).orElse(null)); boolean isVaild = IdCardUtils.strongVerifyIdNumber(workerInfo.getIdCard()); if (isVaild) { @@ -2190,21 +2188,15 @@ public class WorkerInfoServiceImpl extends ServiceImpl numList = list.stream().collect(Collectors.groupingBy(m -> m.get("*编号"), Collectors.counting())).entrySet().stream().filter(key -> key.getValue() > 1).map(o -> o.getKey()).collect(Collectors.toList()); + List numList = list.stream().collect(Collectors.groupingBy(m -> m.get("编号"), Collectors.counting())).entrySet().stream().filter(key -> key.getValue() > 1).map(o -> o.getKey()).collect(Collectors.toList()); if (CollUtil.isNotEmpty(numList)) { throw new OpenAlertException("编号有重复,重复的号码为:" + StringUtils.join(numList)); } - List numList1 = list.stream().map(o -> o.get("*编号")).collect(Collectors.toList()); + List numList1 = list.stream().map(o -> o.get("编号")).collect(Collectors.toList()); List cardList1 = list.stream().map(o -> o.get("*身份证号码")).collect(Collectors.toList()); List infos = workerInfoMapper.selectList(new LambdaQueryWrapper() .eq(WorkerInfo::getProjectSn, projectSn) diff --git a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzProjectOrgServiceImpl.java b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzProjectOrgServiceImpl.java index cd7c79710..ac1bcc7f4 100644 --- a/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzProjectOrgServiceImpl.java +++ b/src/main/java/com/zhgd/xmgl/modules/xz/service/impl/XzProjectOrgServiceImpl.java @@ -347,8 +347,10 @@ public class XzProjectOrgServiceImpl extends ServiceImpl 0) { for (int z = 0; z < value.size(); z++) { - JSONObject jsonObject = value.getJSONObject(z); - orgIds.add(jsonObject.getString("id")); + if (value.get(z) instanceof JSONObject) { + JSONObject jsonObject = value.getJSONObject(z); + orgIds.add(jsonObject.getString("id")); + } } } } diff --git a/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java b/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java index 63247df0d..316c2a611 100644 --- a/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java +++ b/src/main/java/com/zhgd/xmgl/util/FlowSeviceUtil.java @@ -453,7 +453,6 @@ public class FlowSeviceUtil { HistoricProcessInstanceQuery instanceQuery = historyService.createHistoricProcessInstanceQuery(); instanceQuery.processInstanceTenantId(TenantContextHolder.getTenantId()); Executor.builder() - .ifNotBlankNext(Objects.equals(customStatus, 1) ? "PRE_%" : null, instanceQuery::processInstanceBusinessStatusLike) .ifNotBlankNext(Objects.equals(customStatus, 2) ? ProcessStatus.PASS.toString() : null, instanceQuery::processInstanceBusinessStatus) .ifNotBlankNext(userId, instanceQuery::involvedUser) // .ifNotBlankNext(startUser, instanceQuery::startedBy) @@ -474,6 +473,9 @@ public class FlowSeviceUtil { // } // }) ; + if (Objects.equals(customStatus, 1)) { + instanceQuery.or().processInstanceBusinessStatusLike("PRE_%").unfinished().endOr(); + } instanceQuery.count(); return instanceQuery; } diff --git a/src/main/resources/excel/人员导入模板.xlsx b/src/main/resources/excel/人员导入模板.xlsx index 1cac0be30ac15ee446c33261607550fc42b9195f..cb535cf26d785c0e5adcb1f4c86c55cb9d543845 100644 GIT binary patch delta 7020 zcmZ8mby$>7*WO(^mIf*5&ZRr0K|rNTN>aM>k&@1pR$974K)R(nWa&n_5fMK9eeu5E zJJr@SfpiBtlv%Y|%La2aAl^z(;`xBJa+^zQKwUZ*Uh@hcL zN_2Ii6Is_U#E1e0mu0Fhd+q?dRi#r-HAICci^w|-pedVVV#l5F^mTNuLTz4;g zNM9Rs@3K(flZRUpBzY?r#hAckvogAve?M=k)THWvRHgKxgW9$-@I)8IOn}eOzb!5m zQPcfG)l@}7CIW##=%8@*4QWcq4>b6DBo3f$G@jF*Z!zxkvb4Cc^D!Ia^G4as4-B7h z&Hy0`^|Lkk`1q5}3(1o<_p?Q>t{3D8yJRpWEuIpi`*LXjYSxzn7&yoyxwK53Jv|6s zZ<@HeQb3W9W^2Umu!cWmwYIhd3!jJzIb^5!srR#BvasqS_bAnmLfbHo22#HgN(KOZ zG>5ceIzZTey)#Tm>T3s`J?EIGXQKqvL`Xwwy(nkj*wA{dqCj5%rQEYxbNLAT9oo!l zVL1%hP`LSMN|_fP_O2BKqJ0&3^=kkvzCv;RcER&XojhLhtB+8tp0#T*3kFZ*J(PZA zgY@&MnA-a6dbS|EY}B~s7f%*vb1JpfHk*P!xy6V@hNh^6|Bwx@{1%x;AYt&Xy>VbV z07@W-?<31#%AXlq{6q$UlJMY(*kk|?m$$>)KE3Bon{uS>^k>wqI-kRO7Ri`L!;>v% znK&K3%OXB(i#ISwY9lrqm_3G}7zqg^M<}5Q2`O02p=>TPi_1|`(}yWQml##N1@j6& zak!411eMeY-+1fA$bkzYeq2IVgx+jRvm>9bB9E=NvH0jVKklyY>^i@&R1U!YCFohA zA^HO)a%Nx|SITC9Up%%y6ox{2Uz{IDhNWg4U(R#pTrm0W_S91887^NFRMD3x6d9qM zu=_*d^UHaO!`o6*SdX^wp7Wkwfks87qCb<8?1nk&U49LrT+-2!N#r<=3$|ObuPec? z4dwoDJFGkL0Zd!DaJ9PPA}qi*y6)|MMYp(weNZujJ{67za~C}gj;Ski+(C7;<=2;Z zW_($~aSg%|{KFdBTLhuxqGoN%y~Xnb*k#L}wGg!26$b>4Wg>SQL6Vu`vh)tm%UmfL zaStWR?M2KUW~2>*XnczDJhmkW^M@?gH7<8;VK2y9%!2tC**^aKQ8CaW;5=DpiEYyj z@)eYA=TtbHRyO-SN(~X#Z?1CA7i%)e1Gbot1W!^Ym zb*0|7MoPr%#ig@g%(!;vt`TkRnxx)>!@;FGXL@M3Jx4e6*)#TVBp+T;qiN@v)@Q<& z92jT~u9s1QaGdy5r7EDP%b61kHG{D$mY=lpO;=|#1L=@F9YrN?QyRaiF#*m&W@t}? zxc|>2T9((!;!aAzv(xW+2b{f%Qh4h7IgT2!xj92zvr24cXE6$FHOB-hTJV$*G&bMJ zX58AF-#}om5~Xauo$eU-r;a`2JIGDZDd8{sJ|2a@Ri-|FKl2h`Kg`+A1SxZ$zh{sR z8(fm5S&p#s3^jloj&7g5cc*tMfW)*|PA5Q0`5=1+wLqyW*oXe7`Rq~@8J%i0 z(tchq(`;tP^RGt<{g|z`WMEY5YE@mFwI8#J&6OI#XGWA zn+qar3UeLH!UKByOCi>+czl?d@5D1rb+xMxro5;79!eHCEyz#qx5sCtXQ9BdH1z8z9$i>VVLn5i!m{DMLqX6PGvC$Rhhf>R-GjzUcpD`y^|MY z7Hh1ol(*o+AjR$JMk`V`QxJhEiyP7|JIizDuP3OXp*XE(4EVVuC4{uXFB znJqOZl+EgrbpzEc43Clw$;Z7Kz}>bv9P^Wyv9n8? zQ;z8r9H&gEwtY-Kfdl-h63;`M18{rlD~PIj&8u>6FwA9K;_r-^(Y*4WW_q2G4=avb z73|7xu=$L&Zd|Kmr*xBB8)ReT>nC}B+Kw507N%R-`w^8!jF5Ym`A$@DFrN`x z?_YI4RlHhzW-M=gY3awi`6K}`W|6vLMJV2R*p?*WAA-bknJ4j)AqJ4;h?5(hnEYT9 z81u+OTU2+*6&kIVlAqFVF9jz!zpfRErUeP~lqI1~2{3KM6r3x4@zcoL-n?iB;~ zcQ7H*t=XPPpse!DZw%)B1vfUQBo~S#7k|blkBP5j;6p)9>tc$d*+{@rzvNx@63?`2Bu_ir>C*&4`btP4_I|R*xO)C5GuDL{LfzL zLH)Z|;6XUtkQfGdEsixnP*j~nJ&C8?hxtw3#U^J~T@F%2{<|#0!%owWRjNQ&WpPs< zO^TVsEj-3|@P6cV4<_q}Vt2g=CfB(!jpmq?6_LyhwLRGya<**TWnxS(?)Af#pd@)@UoTAqev#P^Z|AO2sovDLl8N+-?1jV%sxIfdTp_Oy2P?`172B zrGkA?(T$p@Ka??uk9x^xZ3)c{x0R|3y)EYbRP=k8DA`xC^tq!sq$iS17oCRGBNEOc z!CATAZCF0B)%We$*pS4l+1u;}MdI#I3D3?Ai*%$B=D!*P8pCcn|9)PWP8o|HvR_rg z)fdd&heU{1-2B`UBPSz8mZJuYj4aLF&DC{xct$gSEpaL^?}*(*@_7YCP9}#j|2ii;G2}}0E$3A%S?2iv0ttfsPSu}v>0Nn zSQmz3mjBC{h9bCfI`%F4+ZdiuTB-i58;7cUtgK*ln=)M{lX6?~F}E?lF`qHTlE>pZ zrG<+Rsapvw$fT=jsb{C%1;WGxg-9bkXoR{>JXHD^n6J93Sx&(_BHVml%@@1(wdLNY z5(&$D=1%n8`D5aNmJSR)Z~ZI5Cp=g8gfurxjB} z)^y7cM&Xr0#;e*oBFu2MHp6%B6q5d=d%*L$?n!v#f{B=&mVi=w(5)cRB15wxn<2wI z!0#6OqNVOqRI^Uc(w}}}s@*Vh^e0;dRZNQF`tdR~a|u*pX$J-fkuJHTTQH@*IE>>#P?!+sopUr4eTIGAC zT+Y$ytKoCzHnLgq%aeF@$nTn2XSH%;KZu=vvvo=+*mhu%D}-c#4T2#FbI(K6po;ldej0Hrn? zHhjRvx?e%io8f5~A#^onSn!;j?KNjG^)ODf24iZu(mEff2;KB3_OioNjKziYXiM{P zel;&Yf+MiUMG90WNz)GjL{ze!VlhD=wO1ez^v~1J`z^PdyU*J(EOkID0C!80w|X8VH6f zRenliaYR%MIsO`d%gdL2`$YKW&SgBd%EC(!*IFUN<)hz9hu;_w@V#YT<1Ws9;9TL0 zn9b0Tr+!Mg%)rrNNPgk{vSGiDaf(8_$X-UASarsEi9k}-Nx&6*3;p9vjU$y|3O6{q ztC*Gg*MoDB7P&`UMZ3tNXZRebeZSdc_3{t1(jtdS3?Ig!zgT50*>-K15jqN@bY9r^ zI*09NuEh8ERKx)Y>WuaP8?i5diqGK7j=GDx$H>EBl9i zW@^WF+ki3PrGOMbR{uv^gx>~YVr=GQm*o{^eoG_54UOYl zDdr0%uWL_5CuJ`+w6Bq}bTckb=i&a+Vshy#WN88HHZBiapDuQ}ZObgCDP)*2&;>p% zg+c=UEG-K zE;~ywuU#43W5SMuBHT=)sL6zG$$}@z3Eu4K(=unn|3jt0q)N#BxqjO{<~JvsD+O&7 zfuZ5|c2j}S-g&lUUwPZ&ueFCnctfuf(}{h6HZz6uc>*g2fYYonBy0O-=SN0Q%vKfS zh|+^Ww~?XiC>C77Vf5dOqNRsVMymy?=NA9ZtTm4obeLBz@Q+W-7BC2#R%TMO$2G3P zGIV^|6kG7YOoeO-f$%8L!X;E5mlS1s4DeDaOs+iX0hnf29Onh&mxA^?->~LIJP@iZ zl!Z7n7amggd@-oUdm9%Zw3N$|s6cx&@*$n5@+&#l3j}J zizK?9N(Pw}59O#(Vz)T4fkHOLg?J6Ba*F=>a)`$^->>>p{(HsH~ zj)7)nmHr!F7m=w!<#0Has4pm7_S+YJk!5Kvz-(5a6&nbJFnpR#Wk%aD6O)ku=WJi5^}BwWQym<84PPlQ zy`1S%D8>v)Jk%uWDY>K^Q4rQHQnVM8)t(_%ekAbfqj^{*yTRog&)KcgyW!DUZcgY2 z3Njs1`dOC23VL5daQU@A-=?Wrt19VzE2?&FGLsCGuZB*O&bbMyS?Fcp*Sa?0T09=ixv>$~)7Fk564#h#%WqxQxuY&WPKMVmky>*b-KwCY4tjzQi#cyJ@w zz!eEu6HqUFTfq-4Ax$-M;VMrtYT){iLYf-JDK2cx7FHon$rWwr>wLoMcqG#VFidg> zw*L{uDJ&bO(#uRX`b&!;E`LP>hvQLK(_djg(s;cV@uczElr!4UPqSBGqUl!O7%3L3 zlrgI5%k|=`Zo}g)RPjZ>j>Wka_bI}YF2doSSU==qeR27ju1mIs=_kwV4spPAi^qzR}*(Kp#}z5$o{4@aliYp?Z;i%5lA#hOaDrNuyxa{9}3ry zYWBW6KVP4|xLF0-(>^m>C@5%*$Bqwud^o5|wLVdR44%f~cMh?;=jumAGXv@OJInhg z>VV>B5CS+(a>0aT5GT>Pk@ zrFhU(F90~}t7GQDh)2=YDX(g-QCHpPuLAa;^Lf?INLiwHwTF*lYLGekz4O z6&g>RW{93wY+bj0h7@C13s3r_F|@J-@=V=%Lpoq!apU z7;j`8VFcFM7%4qV3%jXr!_*6hDoN4 zwyNxz>2z4y^S(d9EOefj3;u7gC9Nu$;2QPY4|vUxDp0R%6^MNVkdFBNcUjzuU3R3< zH>_qo(GdTC@-Jb^a~a0J%WczG`KXkQ7BO)BuBvjDZy*j}f2d`xJ8+s-{6KSORwi^L zR;i)S|Hkt-s?SGgKkGY}w3rT_VC#vs4*u)I!u#nEor)U3wAk>H^QrV`M?PH7BBpN+C=_*q7;Ao z7;In=2>(wlf$$H-{X4)Qnm^JFKFKGIHuk4z|A+R%2L&kMFaaDe68sszAeasA%g;&i ze~-&Q6!~vwG8ng<{d=|5TiHxC6ICdiKbw{8Z1El2`U!GyoSB!?#ovO(go|3G5+lprzX wze*+l>HY@iA0tvBZU`6tKhWe41QGrN3;w`qqJQ8C5eoc72oF_=_iy(90tx^a-T(jq delta 7034 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 Wllfl5wd4OYSNRB#B)R^U@qYm0