PersonnelBaseArchivesManageController.java 159 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510151115121513151415151516151715181519152015211522152315241525152615271528152915301531153215331534153515361537153815391540154115421543154415451546154715481549155015511552155315541555155615571558155915601561156215631564156515661567156815691570157115721573157415751576157715781579158015811582158315841585158615871588158915901591159215931594159515961597159815991600160116021603160416051606160716081609161016111612161316141615161616171618161916201621162216231624162516261627162816291630163116321633163416351636163716381639164016411642164316441645164616471648164916501651165216531654165516561657165816591660166116621663166416651666166716681669167016711672167316741675167616771678167916801681168216831684168516861687168816891690169116921693169416951696169716981699170017011702170317041705170617071708170917101711171217131714171517161717171817191720172117221723172417251726172717281729173017311732173317341735173617371738173917401741174217431744174517461747174817491750175117521753175417551756175717581759176017611762176317641765176617671768176917701771177217731774177517761777177817791780178117821783178417851786178717881789179017911792179317941795179617971798179918001801180218031804180518061807180818091810181118121813181418151816181718181819182018211822182318241825182618271828182918301831183218331834183518361837183818391840184118421843184418451846184718481849185018511852185318541855185618571858185918601861186218631864186518661867186818691870187118721873187418751876187718781879188018811882188318841885188618871888188918901891189218931894189518961897189818991900190119021903190419051906190719081909191019111912191319141915191619171918191919201921192219231924192519261927192819291930193119321933193419351936193719381939194019411942194319441945194619471948194919501951195219531954195519561957195819591960196119621963196419651966196719681969197019711972197319741975197619771978197919801981198219831984198519861987198819891990199119921993199419951996199719981999200020012002200320042005200620072008200920102011201220132014201520162017201820192020202120222023202420252026202720282029203020312032203320342035203620372038203920402041204220432044204520462047204820492050205120522053205420552056205720582059206020612062206320642065206620672068206920702071207220732074207520762077207820792080208120822083208420852086208720882089209020912092209320942095209620972098209921002101210221032104210521062107210821092110211121122113211421152116211721182119212021212122212321242125212621272128212921302131213221332134213521362137213821392140214121422143214421452146214721482149215021512152215321542155215621572158215921602161216221632164216521662167216821692170217121722173217421752176217721782179218021812182218321842185218621872188218921902191219221932194219521962197219821992200220122022203220422052206220722082209221022112212221322142215221622172218221922202221222222232224222522262227222822292230223122322233223422352236223722382239224022412242224322442245224622472248224922502251225222532254225522562257225822592260226122622263226422652266226722682269227022712272227322742275227622772278227922802281228222832284228522862287228822892290229122922293229422952296229722982299230023012302230323042305230623072308230923102311231223132314231523162317231823192320232123222323232423252326232723282329233023312332233323342335233623372338233923402341234223432344234523462347234823492350235123522353235423552356235723582359236023612362236323642365236623672368236923702371237223732374237523762377237823792380238123822383238423852386238723882389239023912392239323942395239623972398239924002401240224032404240524062407240824092410241124122413241424152416241724182419242024212422242324242425242624272428242924302431243224332434243524362437243824392440244124422443244424452446244724482449245024512452245324542455245624572458245924602461246224632464246524662467246824692470247124722473247424752476247724782479248024812482248324842485248624872488248924902491249224932494249524962497249824992500250125022503250425052506250725082509251025112512251325142515251625172518251925202521252225232524252525262527252825292530253125322533253425352536253725382539254025412542254325442545254625472548254925502551255225532554255525562557255825592560256125622563256425652566256725682569257025712572257325742575257625772578257925802581258225832584258525862587258825892590259125922593259425952596259725982599260026012602260326042605260626072608260926102611261226132614261526162617261826192620262126222623262426252626262726282629263026312632263326342635263626372638263926402641264226432644264526462647264826492650265126522653265426552656265726582659266026612662266326642665266626672668266926702671267226732674267526762677267826792680268126822683268426852686268726882689269026912692269326942695269626972698269927002701270227032704270527062707270827092710271127122713271427152716271727182719272027212722272327242725272627272728272927302731273227332734273527362737273827392740274127422743274427452746274727482749275027512752275327542755275627572758275927602761276227632764276527662767276827692770277127722773277427752776277727782779278027812782278327842785278627872788278927902791279227932794279527962797279827992800280128022803280428052806280728082809281028112812281328142815281628172818281928202821282228232824282528262827282828292830283128322833283428352836283728382839284028412842284328442845284628472848284928502851285228532854285528562857285828592860286128622863286428652866286728682869287028712872287328742875287628772878287928802881288228832884288528862887288828892890289128922893289428952896289728982899290029012902290329042905290629072908290929102911291229132914291529162917291829192920292129222923292429252926292729282929293029312932293329342935293629372938293929402941294229432944294529462947294829492950295129522953295429552956295729582959296029612962296329642965296629672968296929702971297229732974297529762977297829792980298129822983298429852986298729882989299029912992299329942995299629972998299930003001300230033004300530063007300830093010301130123013301430153016301730183019302030213022302330243025302630273028302930303031303230333034303530363037303830393040304130423043304430453046304730483049305030513052305330543055305630573058305930603061306230633064306530663067306830693070307130723073307430753076307730783079308030813082308330843085308630873088308930903091309230933094309530963097309830993100310131023103310431053106310731083109311031113112311331143115311631173118311931203121312231233124312531263127312831293130313131323133313431353136313731383139314031413142314331443145314631473148314931503151315231533154315531563157315831593160316131623163316431653166316731683169317031713172317331743175317631773178317931803181318231833184318531863187318831893190319131923193319431953196319731983199320032013202320332043205320632073208320932103211321232133214321532163217321832193220322132223223322432253226322732283229323032313232323332343235323632373238323932403241324232433244324532463247324832493250325132523253325432553256325732583259326032613262326332643265326632673268326932703271327232733274327532763277327832793280328132823283328432853286328732883289329032913292329332943295329632973298329933003301330233033304330533063307330833093310331133123313331433153316331733183319332033213322332333243325332633273328332933303331333233333334333533363337333833393340334133423343334433453346334733483349335033513352335333543355335633573358335933603361336233633364336533663367336833693370337133723373337433753376337733783379338033813382338333843385338633873388338933903391339233933394339533963397339833993400340134023403340434053406340734083409341034113412341334143415341634173418341934203421342234233424342534263427342834293430343134323433343434353436343734383439344034413442344334443445344634473448344934503451345234533454345534563457345834593460346134623463346434653466346734683469347034713472347334743475347634773478347934803481348234833484348534863487348834893490349134923493349434953496349734983499350035013502350335043505350635073508350935103511351235133514351535163517351835193520352135223523352435253526352735283529353035313532353335343535353635373538353935403541354235433544354535463547354835493550355135523553355435553556355735583559356035613562356335643565356635673568356935703571357235733574357535763577357835793580358135823583358435853586358735883589359035913592359335943595359635973598359936003601360236033604360536063607360836093610361136123613361436153616361736183619362036213622362336243625362636273628362936303631363236333634363536363637363836393640364136423643364436453646364736483649365036513652365336543655365636573658365936603661366236633664366536663667366836693670
  1. package cn.com.lzt.personnelbasearchivesmanage.controller;
  2. import java.io.IOException;
  3. import java.io.UnsupportedEncodingException;
  4. import java.lang.reflect.Field;
  5. import java.net.URI;
  6. import java.text.DateFormat;
  7. import java.text.ParseException;
  8. import java.text.SimpleDateFormat;
  9. import java.util.*;
  10. import java.util.regex.Matcher;
  11. import java.util.regex.Pattern;
  12. import javax.annotation.Resource;
  13. import javax.servlet.ServletOutputStream;
  14. import javax.servlet.http.HttpServletRequest;
  15. import javax.servlet.http.HttpServletResponse;
  16. import javax.validation.ConstraintViolation;
  17. import javax.validation.Validator;
  18. import cn.afterturn.easypoi.excel.entity.ImportParams;
  19. import cn.com.lzt.car.schedule.entity.TBCarDrivingRecord;
  20. import cn.com.lzt.common.util.ExcelUtils;
  21. import cn.com.lzt.cost.pettycashaccount.service.TBCostPettyCashAccountServiceI;
  22. import cn.com.lzt.duties.service.DutiesServiceI;
  23. import cn.com.lzt.personnelbasearchivesmanage.dto.*;
  24. import cn.com.lzt.projectpostdetail.entity.ProjectPostDetailEntity;
  25. import cn.com.lzt.projectpostdetail.entity.ZTreePostEntity;
  26. import cn.hutool.core.io.IoUtil;
  27. import cn.hutool.poi.excel.ExcelUtil;
  28. import cn.hutool.poi.excel.ExcelWriter;
  29. import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
  30. import com.daju.mix.dao.entity.TBArchivesRoadSection;
  31. import com.daju.mix.dao.entity.TSBaseUser;
  32. //import com.daju.mix.dao.entity.TSUser;
  33. import com.daju.mix.dao.service.impl.TSBaseUserServiceImpl;
  34. import com.daju.mix.dao.service.impl.TSUserServiceImpl;
  35. import org.apache.commons.lang.StringUtils;
  36. import org.apache.log4j.Logger;
  37. import org.apache.poi.hssf.usermodel.HSSFWorkbook;
  38. import org.apache.poi.ss.usermodel.Sheet;
  39. import org.apache.poi.ss.usermodel.Workbook;
  40. import org.jeecgframework.core.beanvalidator.BeanValidators;
  41. import org.jeecgframework.core.common.controller.BaseController;
  42. import org.jeecgframework.core.common.exception.BusinessException;
  43. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  44. import org.jeecgframework.core.common.model.json.AjaxJson;
  45. import org.jeecgframework.core.common.model.json.DataGrid;
  46. import org.jeecgframework.core.constant.Globals;
  47. import org.jeecgframework.core.util.*;
  48. import org.jeecgframework.minidao.pojo.MiniDaoPage;
  49. import org.jeecgframework.poi.excel.ExcelImportUtil;
  50. import org.jeecgframework.poi.excel.entity.ExportParams;
  51. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  52. import org.jeecgframework.tag.core.easyui.TagUtil;
  53. import org.jeecgframework.web.system.pojo.base.*;
  54. import org.jeecgframework.web.system.service.DepartServiceI;
  55. import org.jeecgframework.web.system.service.SystemService;
  56. import org.jeecgframework.web.system.service.UserService;
  57. import org.springframework.beans.factory.annotation.Autowired;
  58. import org.springframework.http.HttpHeaders;
  59. import org.springframework.http.HttpStatus;
  60. import org.springframework.http.MediaType;
  61. import org.springframework.http.ResponseEntity;
  62. import org.springframework.stereotype.Controller;
  63. import org.springframework.ui.ModelMap;
  64. import org.springframework.web.bind.annotation.PathVariable;
  65. import org.springframework.web.bind.annotation.RequestBody;
  66. import org.springframework.web.bind.annotation.RequestMapping;
  67. import org.springframework.web.bind.annotation.RequestMethod;
  68. import org.springframework.web.bind.annotation.ResponseBody;
  69. import org.springframework.web.bind.annotation.ResponseStatus;
  70. import org.springframework.web.multipart.MultipartFile;
  71. import org.springframework.web.multipart.MultipartHttpServletRequest;
  72. import org.springframework.web.servlet.ModelAndView;
  73. import org.springframework.web.util.UriComponentsBuilder;
  74. import com.alibaba.fastjson.JSONObject;
  75. import com.dingtalk.open.client.api.model.corp.CorpUserDetail;
  76. import com.xcgl.utils.XcglDateUtils;
  77. import cn.com.lzt.arrangedutyoperate.entity.ArrangeDutyOperateEntity;
  78. import cn.com.lzt.common.entity.WebUploadEntity;
  79. import cn.com.lzt.dingding.service.DingdingService;
  80. import cn.com.lzt.duties.entity.DutiesEntity;
  81. import cn.com.lzt.goodsinfo.entity.TBGoodsInfoEntity;
  82. import cn.com.lzt.leave.service.ModifyServiceI;
  83. import cn.com.lzt.personnelbasearchivesmanage.dao.PersonnelBaseArchivesManageDao;
  84. import cn.com.lzt.personnelbasearchivesmanage.dto.exportandimportdto.PersonnelBaseArchivesManageExportAndImportDto;
  85. import cn.com.lzt.personnelbasearchivesmanage.dto.exportandimportdto.TSysFileDto;
  86. import cn.com.lzt.personnelbasearchivesmanage.entity.PersonnelBaseArchivesManageEntity;
  87. import cn.com.lzt.personnelbasearchivesmanage.service.PersonnelBaseArchivesManageExportAndImportServiceI;
  88. import cn.com.lzt.personnelbasearchivesmanage.service.PersonnelBaseArchivesManageServiceI;
  89. import cn.com.lzt.post.entity.PostEntity;
  90. import cn.com.lzt.projarrangedetail.entity.ProjarrangeDetailEntity;
  91. import cn.com.lzt.socialsecuritystrategy.entity.SocialSecurityStrategyEntity;
  92. import cn.com.lzt.socialsecuritystrategy.service.SocialSecurityStrategyServiceI;
  93. import cn.com.lzt.userarrangedetail.entity.UserArrangeDetailEntity;
  94. import cn.com.lzt.userchangeslog.entity.UserChangesLogEntity;
  95. import cn.com.lzt.userchangeslog.service.UserChangesLogServiceI;
  96. import cn.com.lzt.userwagestrategy.entity.UserWagestrategyEntity;
  97. import cn.com.lzt.userwagestrategy.service.UserWagestrategyServiceI;
  98. import static cn.com.lzt.common.util.DepartUtil.getMaxLocalCode;
  99. /**
  100. * @author onlineGenerator
  101. * @version V1.0
  102. * @Title: Controller
  103. * @Description: 员工人事信息表
  104. * @date 2017-10-17 15:09:04
  105. */
  106. @Controller
  107. @RequestMapping("/personnelBaseArchivesManageController")
  108. public class PersonnelBaseArchivesManageController extends BaseController {
  109. /**
  110. * Logger for this class
  111. */
  112. private static final Logger logger = Logger.getLogger(PersonnelBaseArchivesManageController.class);
  113. // 下载路径
  114. private static final String showAndDownUrl = ResourceUtil.getConfigByName("showAndDownUrl");
  115. @Autowired
  116. private PersonnelBaseArchivesManageServiceI personnelBaseArchivesManageService;
  117. @Autowired
  118. private UserService userService;
  119. @Autowired
  120. private SystemService systemService;
  121. @Autowired
  122. private Validator validator;
  123. @Autowired
  124. private PersonnelBaseArchivesManageExportAndImportServiceI personnelBaseArchivesManageExportAndImportService;
  125. @Autowired
  126. private DepartServiceI departService;
  127. @Autowired
  128. private DingdingService dingdingService;
  129. @Autowired
  130. private UserChangesLogServiceI userChangesLogService;
  131. @Autowired
  132. private UserWagestrategyServiceI userWagestrategyService;
  133. @Autowired
  134. private SocialSecurityStrategyServiceI socialSecurityStrategyService;
  135. @Autowired
  136. private ModifyServiceI modifyService;
  137. @Autowired
  138. private PersonnelBaseArchivesManageDao personnelBaseArchivesManageDao;
  139. @Autowired
  140. private TBCostPettyCashAccountServiceI tBCostPettyCashAccountService;
  141. @Autowired
  142. private DutiesServiceI dutiesService;
  143. @Resource
  144. private TSBaseUserServiceImpl tsBaseUserService;
  145. @Resource
  146. private TSUserServiceImpl tsUserService;
  147. /**
  148. * 员工人事信息表列表 页面跳转
  149. *
  150. * @return
  151. */
  152. @RequestMapping(params = "list")
  153. public ModelAndView list(HttpServletRequest request) {
  154. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  155. if (oConvertUtils.isNotEmpty(queryParams)) {
  156. JSONObject jsonObject = JSONObject.parseObject(queryParams);
  157. request.setAttribute("queryParams", jsonObject);
  158. } else {
  159. JSONObject jsonObject = new JSONObject();
  160. jsonObject.put("userName", "");
  161. jsonObject.put("departname", "");
  162. jsonObject.put("orgIds", "");
  163. jsonObject.put("telphone", "");
  164. jsonObject.put("idcard", "");
  165. jsonObject.put("positionStatus", "");
  166. jsonObject.put("certificateId", "");
  167. //jsonObject.put("deviceId", "");
  168. request.setAttribute("queryParams", jsonObject);
  169. }
  170. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManageList");
  171. }
  172. /**
  173. * 员工合同到期管理页面跳转
  174. *
  175. * @return
  176. * @author 刘梦祥
  177. * @Date 2022年1月4日16:40:41
  178. */
  179. @RequestMapping(params = "staffContractStatisticsList")
  180. public ModelAndView staffContractStatisticsList(HttpServletRequest request) {
  181. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/staffContractStatisticsList");
  182. }
  183. /**
  184. * 员工合同到期管理页面初始化请求
  185. *
  186. * @param response
  187. * @param dataGrid
  188. * @author 刘梦祥
  189. * @Date 2022年1月4日16:45:40
  190. */
  191. @RequestMapping(params = "staffContractStatisticsListDatagrid")
  192. public void staffContractStatisticsListDatagrid(HttpServletResponse response, DataGrid dataGrid) {
  193. String sqlStr = "SELECT\n" +
  194. "\ttsu.id id,\n" +
  195. "\ttsd.parentdepartid,\n" +
  196. "\tCOUNT(tsu.id) countNumber,\n" +
  197. "\n" +
  198. "IF (\n" +
  199. "\ttsuo.org_id IS NULL,\n" +
  200. "\t'未知',\n" +
  201. "\ttsuo.org_id\n" +
  202. ") departId,\n" +
  203. "\n" +
  204. "IF (\n" +
  205. "\ttsd.departname IS NULL,\n" +
  206. "\t'未知',\n" +
  207. "\ttsd.departname\n" +
  208. ") departName,\n" +
  209. "\n" +
  210. "IF (\n" +
  211. "\ttsu.nature IS NULL,\n" +
  212. "\t'未知',\n" +
  213. "\n" +
  214. "IF (\n" +
  215. "\ttsu.nature = \"\",\n" +
  216. "\t'未知',\n" +
  217. "\ttsu.nature\n" +
  218. ")\n" +
  219. ") natureId,\n" +
  220. "\n" +
  221. "IF (\n" +
  222. "\ttst.typename IS NULL,\n" +
  223. "\t'未知',\n" +
  224. "\n" +
  225. "IF (\n" +
  226. "\ttst.typename = \"\",\n" +
  227. "\t'未知',\n" +
  228. "\ttst.typename\n" +
  229. ")\n" +
  230. ") natureName,\n" +
  231. "\n" +
  232. "IF (\n" +
  233. "\ttsu.gender = '0',\n" +
  234. "\t'男',\n" +
  235. "\n" +
  236. "IF (\n" +
  237. "\ttsu.gender = '1',\n" +
  238. "\t'女',\n" +
  239. "\t'未知'\n" +
  240. ")\n" +
  241. ") gender\n" +
  242. "FROM\n" +
  243. "\tt_s_user tsu\n" +
  244. "LEFT JOIN t_s_base_user tsbu ON tsbu.id = tsu.id\n" +
  245. "LEFT JOIN t_s_user_org tsuo ON tsuo.user_id = tsu.id\n" +
  246. "LEFT JOIN t_s_depart tsd ON tsuo.org_id = tsd.id\n" +
  247. "LEFT JOIN (\n" +
  248. "\tSELECT\n" +
  249. "\t\t*\n" +
  250. "\tFROM\n" +
  251. "\t\tt_s_type\n" +
  252. "\tWHERE\n" +
  253. "\t\ttypegroupid = (\n" +
  254. "\t\t\tSELECT\n" +
  255. "\t\t\t\tid\n" +
  256. "\t\t\tFROM\n" +
  257. "\t\t\t\tt_s_typegroup\n" +
  258. "\t\t\tWHERE\n" +
  259. "\t\t\t\ttypegroupcode = \"nature\"\n" +
  260. "\t\t)\n" +
  261. ") tst ON tst.typecode = tsu.nature\n" +
  262. "WHERE\n" +
  263. "\ttsbu.realname IS NOT NULL and tsbu.delete_flag = \"0\"\n" +
  264. "GROUP BY\n" +
  265. "\ttsuo.org_id,\n" +
  266. "\ttsu.nature,\n" +
  267. "\ttsu.gender\n" +
  268. "ORDER BY\n" +
  269. "\ttsuo.org_id,\n" +
  270. "\ttsu.nature;";
  271. String sqlStr2 = "SELECT\n" +
  272. "\ttsd.parentdepartid,\n" +
  273. "IF (\n" +
  274. "\ttsuo.org_id IS NULL,\n" +
  275. "\t'未知',\n" +
  276. "\ttsuo.org_id\n" +
  277. ") departId,\n" +
  278. "\n" +
  279. "IF (\n" +
  280. "\ttsd.departname IS NULL,\n" +
  281. "\t'未知',\n" +
  282. "\ttsd.departname\n" +
  283. ") departName\n" +
  284. "FROM\n" +
  285. "\tt_s_user tsu\n" +
  286. "LEFT JOIN t_s_base_user tsbu ON tsbu.id = tsu.id\n" +
  287. "LEFT JOIN t_s_user_org tsuo ON tsuo.user_id = tsu.id\n" +
  288. "LEFT JOIN t_s_depart tsd ON tsuo.org_id = tsd.id\n" +
  289. "WHERE\n" +
  290. "\ttsbu.realname IS NOT NULL and tsbu.delete_flag = \"0\"\n" +
  291. "GROUP BY\n" +
  292. "\tdepartId\n" +
  293. "ORDER BY\n" +
  294. "\tdepartId;";
  295. String sqlStr3 = "SELECT\n" +
  296. "IF (\n" +
  297. "\ttst.typename IS NULL,\n" +
  298. "\t'未知',\n" +
  299. "IF (\n" +
  300. "\ttst.typename = \"\",\n" +
  301. "\t'未知',\n" +
  302. "\ttst.typename\n" +
  303. ")\n" +
  304. ") natureName\n" +
  305. "FROM\n" +
  306. "\tt_s_user tsu\n" +
  307. "LEFT JOIN t_s_base_user tsbu ON tsbu.id = tsu.id\n" +
  308. "LEFT JOIN (\n" +
  309. "\tSELECT\n" +
  310. "\t\t*\n" +
  311. "\tFROM\n" +
  312. "\t\tt_s_type\n" +
  313. "\tWHERE\n" +
  314. "\t\ttypegroupid = (\n" +
  315. "\t\t\tSELECT\n" +
  316. "\t\t\t\tid\n" +
  317. "\t\t\tFROM\n" +
  318. "\t\t\t\tt_s_typegroup\n" +
  319. "\t\t\tWHERE\n" +
  320. "\t\t\t\ttypegroupcode = \"nature\"\n" +
  321. "\t\t)\n" +
  322. ") tst ON tst.typecode = tsu.nature\n" +
  323. "WHERE\n" +
  324. "\ttsbu.realname IS NOT NULL and tsbu.delete_flag = \"0\"\n" +
  325. "GROUP BY\n" +
  326. "\tnatureName\n" +
  327. "ORDER BY\n" +
  328. "\ttsu.nature DESC;";
  329. String sqlStr4 = "SELECT\n" +
  330. "IF (\n" +
  331. "\ttsu.gender = '0',\n" +
  332. "\t'男',\n" +
  333. "IF (tsu.gender = '1', '女', '未知')\n" +
  334. ") gender\n" +
  335. "FROM\n" +
  336. "\tt_s_user tsu\n" +
  337. "LEFT JOIN t_s_base_user tsbu ON tsbu.id = tsu.id\n" +
  338. "WHERE\n" +
  339. "\ttsbu.realname IS NOT NULL and tsbu.delete_flag = \"0\"\n" +
  340. "GROUP BY\n" +
  341. "\tgender ORDER BY \n" +
  342. "tsu.gender;";
  343. List<Map<String, Object>> DataList = systemService.findForJdbc(sqlStr);
  344. //员工部门列表查询
  345. List<Map<String, Object>> DataInfo2 = systemService.findForJdbc(sqlStr2);
  346. //员工性质列表查询
  347. List<Map<String, Object>> DataInfo3 = systemService.findForJdbc(sqlStr3);
  348. //性别列表查询
  349. List<Map<String, Object>> DataInfo4 = systemService.findForJdbc(sqlStr4);
  350. //清洗数据返回实体<部门,员工性质,性别>
  351. List<Map<String, Object>> returnData = new ArrayList<>();
  352. //<部门+员工性质+性别,人数>
  353. Map<String, Integer> sumData = new HashMap<>();
  354. //部门集合
  355. List<String> departNameList = new ArrayList<>();
  356. //员工性质集合
  357. List<String> natureNameList = new ArrayList<>();
  358. //员工性别集合
  359. List<String> genderList = new ArrayList<>();
  360. //遍历总集合
  361. for (Map<String, Object> item : DataList) {
  362. String key = item.get("departName").toString() + item.get("natureName").toString() + item.get("gender").toString();
  363. Integer sumInfo = Integer.parseInt(item.get("countNumber").toString());
  364. if (sumData.containsKey(key)) {
  365. //存在的话累加值
  366. sumData.put(key, sumData.get(key) + sumInfo);
  367. } else {
  368. //不存在的话就添加对象
  369. sumData.put(key, sumInfo);
  370. }
  371. }
  372. for (Map<String, Object> item : DataInfo2){
  373. if(!departNameList.contains(item.get("departName").toString())){
  374. departNameList.add(item.get("departName").toString());
  375. }
  376. }
  377. for (Map<String, Object> item : DataInfo3){
  378. if(!natureNameList.contains(item.get("natureName").toString())){
  379. natureNameList.add(item.get("natureName").toString());
  380. }
  381. }
  382. for (Map<String, Object> item : DataInfo4){
  383. if(!genderList.contains(item.get("gender").toString())){
  384. genderList.add(item.get("gender").toString());
  385. }
  386. }
  387. Map<String,Object> returnDataMap = new HashMap<>();
  388. returnDataMap.put("sumData",sumData);
  389. returnDataMap.put("departNameList",departNameList);
  390. returnDataMap.put("natureNameList",natureNameList);
  391. returnDataMap.put("genderList",genderList);
  392. returnData.add(returnDataMap);
  393. //遍历部门集合
  394. dataGrid.setTotal(returnData.size());
  395. dataGrid.setResults(returnData);
  396. TagUtil.datagrid(response, dataGrid);
  397. }
  398. /**
  399. * 员工人事信息表列表 页面跳转
  400. *
  401. * @return
  402. */
  403. @RequestMapping(params = "viewList")
  404. public ModelAndView viewList(HttpServletRequest request) {
  405. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  406. if (oConvertUtils.isNotEmpty(queryParams)) {
  407. JSONObject jsonObject = JSONObject.parseObject(queryParams);
  408. request.setAttribute("queryParams", jsonObject);
  409. } else {
  410. JSONObject jsonObject = new JSONObject();
  411. jsonObject.put("userName", "");
  412. jsonObject.put("departname", "");
  413. jsonObject.put("orgIds", "");
  414. jsonObject.put("telphone", "");
  415. jsonObject.put("idcard", "");
  416. jsonObject.put("positionStatus", "");
  417. jsonObject.put("certificateId", "");
  418. request.setAttribute("queryParams", jsonObject);
  419. }
  420. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManageList-view");
  421. }
  422. /**
  423. * 新入职员工人事信息表列表 页面跳转
  424. *
  425. * @return
  426. */
  427. @RequestMapping(params = "list_newman")
  428. public ModelAndView list_newman(HttpServletRequest request) {
  429. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  430. Calendar calendar = DataUtils.getCalendar();
  431. // calendar.add(Calendar.MONTH, -1);
  432. String yearmonth = DataUtils.formatDate(calendar, "yyyy-MM-dd");
  433. request.setAttribute("maxdate", yearmonth);
  434. if (oConvertUtils.isNotEmpty(queryParams)) {
  435. JSONObject jsonObject = JSONObject.parseObject(queryParams);
  436. request.setAttribute("queryParams", jsonObject);
  437. } else {
  438. JSONObject jsonObject = new JSONObject();
  439. jsonObject.put("userName", "");
  440. jsonObject.put("departname", "");
  441. jsonObject.put("orgIds", "");
  442. jsonObject.put("telphone", "");
  443. jsonObject.put("idcard", "");
  444. jsonObject.put("positionStatus", "");
  445. jsonObject.put("certificateId", "");
  446. request.setAttribute("queryParams", jsonObject);
  447. }
  448. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManageList_newman");
  449. }
  450. // datagrid1
  451. @RequestMapping(params = "export_newman_tax")
  452. public String export_newman_tax(PersonnelBaseArchivesManageInDto inDto, HttpServletRequest request,
  453. HttpServletResponse response, DataGrid dataGrid, ModelMap modelMap) {
  454. String departIds = "";
  455. if (null != inDto.getOrgIds() && StringUtil.isNotEmpty(inDto.getOrgIds())) {
  456. departIds = inDto.getOrgIds();
  457. }
  458. // 页面的单位ID
  459. List<String> departIdByPageList = Arrays.asList(departIds.split(","));
  460. // 用于检索的单位ID
  461. List<String> departIdBySearchList = new ArrayList<String>();
  462. for (String str : departIdByPageList) {
  463. if (StringUtil.isNotEmpty(str)) {
  464. departIdBySearchList.add(str);
  465. List<DepartDto> departDtoList = personnelBaseArchivesManageService.getAllChildrenList(str, null, null);
  466. for (DepartDto departDto : departDtoList) {
  467. departIdBySearchList.add(departDto.getId());
  468. }
  469. }
  470. }
  471. // List去重复
  472. HashSet<String> h = new HashSet<String>(departIdBySearchList);
  473. departIdBySearchList.clear();
  474. departIdBySearchList.addAll(h);
  475. // 重新封装检索用的单位字符串
  476. departIds = "";
  477. for (String str : departIdBySearchList) {
  478. departIds += "'" + str + "',";
  479. }
  480. if (StringUtil.isNotEmpty(departIds)) {
  481. departIds = departIds.substring(0, departIds.length() - 1);
  482. }
  483. inDto.setOrgIds(departIds);
  484. // 获取请求对应的数据权限
  485. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  486. // 從SESSION中獲取用戶信息
  487. String sortorder = "";
  488. String sort = dataGrid.getSort(); // 排序对象
  489. String order = dataGrid.getOrder(); // 排序方式
  490. MiniDaoPage<NewPersonTaxExcelExportDto> list = personnelBaseArchivesManageService.getNewmanTaxExport(inDto, dataGrid.getPage(), dataGrid.getRows(), authSql, sortorder);
  491. modelMap.put(NormalExcelConstants.FILE_NAME, "新进人员信息_" + inDto.getInMonth());
  492. modelMap.put(NormalExcelConstants.CLASS, NewPersonTaxExcelExportDto.class);
  493. modelMap.put(NormalExcelConstants.PARAMS, new ExportParams("新进人员信息", "统计月份:" + inDto.getInMonth(),
  494. "导出信息"));
  495. modelMap.put(NormalExcelConstants.DATA_LIST, list.getResults());
  496. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  497. }
  498. @RequestMapping(params = "export_current_newman_tax")
  499. public String export_current_newman_tax(PersonnelBaseArchivesManageInDto inDto, HttpServletRequest request,
  500. HttpServletResponse response, DataGrid dataGrid, ModelMap modelMap) {
  501. String departIds = "";
  502. if (null != inDto.getOrgIds() && StringUtil.isNotEmpty(inDto.getOrgIds())) {
  503. departIds = inDto.getOrgIds();
  504. }
  505. // 页面的单位ID
  506. List<String> departIdByPageList = Arrays.asList(departIds.split(","));
  507. // 用于检索的单位ID
  508. List<String> departIdBySearchList = new ArrayList<String>();
  509. for (String str : departIdByPageList) {
  510. if (StringUtil.isNotEmpty(str)) {
  511. departIdBySearchList.add(str);
  512. List<DepartDto> departDtoList = personnelBaseArchivesManageService.getAllChildrenList(str, null, null);
  513. for (DepartDto departDto : departDtoList) {
  514. departIdBySearchList.add(departDto.getId());
  515. }
  516. }
  517. }
  518. // List去重复
  519. HashSet<String> h = new HashSet<String>(departIdBySearchList);
  520. departIdBySearchList.clear();
  521. departIdBySearchList.addAll(h);
  522. // 重新封装检索用的单位字符串
  523. departIds = "";
  524. for (String str : departIdBySearchList) {
  525. departIds += "'" + str + "',";
  526. }
  527. if (StringUtil.isNotEmpty(departIds)) {
  528. departIds = departIds.substring(0, departIds.length() - 1);
  529. }
  530. inDto.setOrgIds(departIds);
  531. // 获取请求对应的数据权限
  532. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  533. // 從SESSION中獲取用戶信息
  534. String sortorder = "";
  535. String sort = dataGrid.getSort(); // 排序对象
  536. String order = dataGrid.getOrder(); // 排序方式
  537. MiniDaoPage<NewPersonTaxExcelExportDto> list = personnelBaseArchivesManageService.getNewmanTaxExport(inDto, dataGrid.getPage(), dataGrid.getRows(), authSql, sortorder);
  538. List<CurrentNewPersonTaxExcelExportDto> list1 = new ArrayList<CurrentNewPersonTaxExcelExportDto>();
  539. for (int i = 0; i < list.getResults().size(); i++) {
  540. CurrentNewPersonTaxExcelExportDto example = new CurrentNewPersonTaxExcelExportDto();
  541. example.setUserNum(list.getResults().get(i).getUserNum());
  542. example.setUserName(list.getResults().get(i).getUserName());
  543. example.setCertNum(list.getResults().get(i).getCertNum());
  544. example.setGender(list.getResults().get(i).getGender());
  545. example.setBirth(list.getResults().get(i).getBirth());
  546. example.setMobile(list.getResults().get(i).getMobile());
  547. example.setDepartName(list.getResults().get(i).getDepartName());
  548. example.setDutiesName(list.getResults().get(i).getDutiesName());
  549. example.setEntryTime(list.getResults().get(i).getEntryTime());
  550. list1.add(example);
  551. }
  552. modelMap.put(NormalExcelConstants.FILE_NAME, "新进人员信息_" + inDto.getInMonth());
  553. modelMap.put(NormalExcelConstants.CLASS, CurrentNewPersonTaxExcelExportDto.class);
  554. modelMap.put(NormalExcelConstants.PARAMS, new ExportParams("新进人员信息", "统计月份:" + inDto.getInMonth(),
  555. "导出信息"));
  556. modelMap.put(NormalExcelConstants.DATA_LIST, list1);
  557. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  558. }
  559. @RequestMapping(params = "export_leaveman_tax")
  560. public String export_leaveman_tax(PersonnelBaseArchivesManageInDto inDto, HttpServletRequest request,
  561. HttpServletResponse response, DataGrid dataGrid, ModelMap modelMap) {
  562. String departIds = "";
  563. if (null != inDto.getOrgIds() && StringUtil.isNotEmpty(inDto.getOrgIds())) {
  564. departIds = inDto.getOrgIds();
  565. }
  566. // 页面的单位ID
  567. List<String> departIdByPageList = Arrays.asList(departIds.split(","));
  568. // 用于检索的单位ID
  569. List<String> departIdBySearchList = new ArrayList<String>();
  570. for (String str : departIdByPageList) {
  571. if (StringUtil.isNotEmpty(str)) {
  572. departIdBySearchList.add(str);
  573. List<DepartDto> departDtoList = personnelBaseArchivesManageService.getAllChildrenList(str, null, null);
  574. for (DepartDto departDto : departDtoList) {
  575. departIdBySearchList.add(departDto.getId());
  576. }
  577. }
  578. }
  579. // List去重复
  580. HashSet<String> h = new HashSet<String>(departIdBySearchList);
  581. departIdBySearchList.clear();
  582. departIdBySearchList.addAll(h);
  583. // 重新封装检索用的单位字符串
  584. departIds = "";
  585. for (String str : departIdBySearchList) {
  586. departIds += "'" + str + "',";
  587. }
  588. if (StringUtil.isNotEmpty(departIds)) {
  589. departIds = departIds.substring(0, departIds.length() - 1);
  590. }
  591. inDto.setOrgIds(departIds);
  592. // 获取请求对应的数据权限
  593. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  594. // 從SESSION中獲取用戶信息
  595. String sortorder = "";
  596. String sort = dataGrid.getSort(); // 排序对象
  597. String order = dataGrid.getOrder(); // 排序方式
  598. MiniDaoPage<LeavePersonTaxExcelExportDto> list = personnelBaseArchivesManageService.getLeavemanTaxExport(inDto, dataGrid.getPage(), dataGrid.getRows(), authSql, sortorder);
  599. modelMap.put(NormalExcelConstants.FILE_NAME, "离职人员信息_" + inDto.getLeaveMonth());
  600. modelMap.put(NormalExcelConstants.CLASS, LeavePersonTaxExcelExportDto.class);
  601. modelMap.put(NormalExcelConstants.PARAMS, new ExportParams("离职人员信息", "统计月份:" + inDto.getLeaveMonth(),
  602. "导出信息"));
  603. modelMap.put(NormalExcelConstants.DATA_LIST, list.getResults());
  604. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  605. }
  606. /**
  607. * 新入职人员名单
  608. *
  609. * @param request
  610. * @param response
  611. * @param dataGrid
  612. */
  613. @RequestMapping(params = "datagrid_newman")
  614. public void datagrid_newman(PersonnelBaseArchivesManageInDto inDto, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  615. String departIds = "";
  616. if (null != inDto.getOrgIds() && StringUtil.isNotEmpty(inDto.getOrgIds())) {
  617. departIds = inDto.getOrgIds();
  618. }
  619. if (StringUtil.isEmpty(inDto.getInMonth())) {
  620. dataGrid.setResults(new ArrayList<PersonnelBaseArchivesManageOutDto>());
  621. TagUtil.datagrid(response, dataGrid);
  622. return;
  623. }
  624. // 页面的单位ID
  625. List<String> departIdByPageList = Arrays.asList(departIds.split(","));
  626. // 用于检索的单位ID
  627. List<String> departIdBySearchList = new ArrayList<String>();
  628. for (String str : departIdByPageList) {
  629. if (StringUtil.isNotEmpty(str)) {
  630. departIdBySearchList.add(str);
  631. List<DepartDto> departDtoList = personnelBaseArchivesManageService.getAllChildrenList(str, null, null);
  632. for (DepartDto departDto : departDtoList) {
  633. departIdBySearchList.add(departDto.getId());
  634. }
  635. }
  636. }
  637. // List去重复
  638. HashSet<String> h = new HashSet<String>(departIdBySearchList);
  639. departIdBySearchList.clear();
  640. departIdBySearchList.addAll(h);
  641. // 重新封装检索用的单位字符串
  642. departIds = "";
  643. for (String str : departIdBySearchList) {
  644. departIds += "'" + str + "',";
  645. }
  646. if (StringUtil.isNotEmpty(departIds)) {
  647. departIds = departIds.substring(0, departIds.length() - 1);
  648. }
  649. inDto.setOrgIds(departIds);
  650. // 获取请求对应的数据权限
  651. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  652. // 從SESSION中獲取用戶信息
  653. String sortorder = "";
  654. MiniDaoPage<NewPersonTaxExcelExportDto> list = personnelBaseArchivesManageService.getNewmanTaxExport(inDto, dataGrid.getPage(), dataGrid.getRows(), authSql, sortorder);
  655. dataGrid.setTotal(list.getTotal());
  656. dataGrid.setResults(list.getResults());
  657. TagUtil.datagrid(response, dataGrid);
  658. }
  659. /**
  660. * 员工人事信息表列表 页面跳转
  661. *
  662. * @return
  663. */
  664. @RequestMapping(params = "list_leave")
  665. public ModelAndView list_leave(HttpServletRequest request) {
  666. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  667. Calendar calendar = DataUtils.getCalendar();
  668. // calendar.add(Calendar.MONTH, -1);
  669. String yearmonth = DataUtils.formatDate(calendar, "yyyy-MM-dd");
  670. request.setAttribute("maxdate", yearmonth);
  671. if (oConvertUtils.isNotEmpty(queryParams)) {
  672. JSONObject jsonObject = JSONObject.parseObject(queryParams);
  673. request.setAttribute("queryParams", jsonObject);
  674. } else {
  675. JSONObject jsonObject = new JSONObject();
  676. jsonObject.put("userName", "");
  677. jsonObject.put("departname", "");
  678. jsonObject.put("orgIds", "");
  679. jsonObject.put("telphone", "");
  680. jsonObject.put("idcard", "");
  681. jsonObject.put("positionStatus", "");
  682. jsonObject.put("certificateId", "");
  683. request.setAttribute("queryParams", jsonObject);
  684. }
  685. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManageList_leave");
  686. }
  687. /**
  688. * 员工人事信息表列表 页面跳转
  689. *
  690. * @return
  691. */
  692. @RequestMapping(params = "list_tired")
  693. public ModelAndView list_tired(HttpServletRequest request) {
  694. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  695. Calendar calendar = DataUtils.getCalendar();
  696. // calendar.add(Calendar.MONTH, -1);
  697. String yearmonth = DataUtils.formatDate(calendar, "yyyy-MM-dd");
  698. request.setAttribute("maxdate", yearmonth);
  699. if (oConvertUtils.isNotEmpty(queryParams)) {
  700. JSONObject jsonObject = JSONObject.parseObject(queryParams);
  701. request.setAttribute("queryParams", jsonObject);
  702. } else {
  703. JSONObject jsonObject = new JSONObject();
  704. jsonObject.put("userName", "");
  705. jsonObject.put("departname", "");
  706. jsonObject.put("orgIds", "");
  707. jsonObject.put("telphone", "");
  708. jsonObject.put("idcard", "");
  709. jsonObject.put("positionStatus", "");
  710. jsonObject.put("certificateId", "");
  711. request.setAttribute("queryParams", jsonObject);
  712. }
  713. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManageList_tired");
  714. }
  715. /**
  716. * 离职人员名单
  717. *
  718. * @param request
  719. * @param response
  720. * @param dataGrid
  721. */
  722. @RequestMapping(params = "datagrid_leave")
  723. public void datagrid_leave(PersonnelBaseArchivesManageInDto inDto, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  724. String departIds = "";
  725. if (null != inDto.getOrgIds() && StringUtil.isNotEmpty(inDto.getOrgIds())) {
  726. departIds = inDto.getOrgIds();
  727. }
  728. // if(StringUtil.isEmpty(inDto.getLeaveMonth())) {
  729. // dataGrid.setResults(new ArrayList<LeavePersonTaxExcelExportDto>());
  730. // TagUtil.datagrid(response, dataGrid);
  731. // return;
  732. // }
  733. //
  734. // 页面的单位ID
  735. List<String> departIdByPageList = Arrays.asList(departIds.split(","));
  736. // 用于检索的单位ID
  737. List<String> departIdBySearchList = new ArrayList<String>();
  738. for (String str : departIdByPageList) {
  739. if (StringUtil.isNotEmpty(str)) {
  740. departIdBySearchList.add(str);
  741. List<DepartDto> departDtoList = personnelBaseArchivesManageService.getAllChildrenList(str, null, null);
  742. for (DepartDto departDto : departDtoList) {
  743. departIdBySearchList.add(departDto.getId());
  744. }
  745. }
  746. }
  747. // List去重复
  748. HashSet<String> h = new HashSet<String>(departIdBySearchList);
  749. departIdBySearchList.clear();
  750. departIdBySearchList.addAll(h);
  751. // 重新封装检索用的单位字符串
  752. departIds = "";
  753. for (String str : departIdBySearchList) {
  754. departIds += "'" + str + "',";
  755. }
  756. if (StringUtil.isNotEmpty(departIds)) {
  757. departIds = departIds.substring(0, departIds.length() - 1);
  758. }
  759. inDto.setOrgIds(departIds);
  760. // 获取请求对应的数据权限
  761. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  762. // 從SESSION中獲取用戶信息
  763. String sortorder = "";
  764. MiniDaoPage<LeavePersonTaxExcelExportDto> list = personnelBaseArchivesManageService.getLeavemanTaxExport(inDto, dataGrid.getPage(), dataGrid.getRows(), authSql, sortorder);
  765. dataGrid.setTotal(list.getTotal());
  766. dataGrid.setResults(list.getResults());
  767. TagUtil.datagrid(response, dataGrid);
  768. }
  769. /**
  770. * easyui AJAX请求数据
  771. *
  772. * @param request
  773. * @param response
  774. * @param dataGrid
  775. */
  776. @RequestMapping(params = "datagrid")
  777. public void datagrid(PersonnelBaseArchivesManageInDto inDto, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  778. // CriteriaQuery cq = new CriteriaQuery(PersonnelBaseArchivesManageEntity.class, dataGrid);
  779. // //查询条件组装器
  780. // org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, personnelBaseArchivesManage, request.getParameterMap());
  781. // try{
  782. // //自定义追加查询条件
  783. // }catch (Exception e) {
  784. // throw new BusinessException(e.getMessage());
  785. // }
  786. // cq.add();
  787. // this.personnelBaseArchivesManageService.getDataGridReturn(cq, true);
  788. String employmentDateStart = request.getParameter("employmentDateStart");
  789. String employmentDateEnd = request.getParameter("employmentDateEnd");
  790. String departIds = "";
  791. String age_begin = request.getParameter("age_begin");
  792. String age_end = request.getParameter("age_end");
  793. String nature = request.getParameter("nature");
  794. String areaRegion = request.getParameter("belongRegion");
  795. // HttpSession session = ContextHolderUtils.getSession();
  796. // TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
  797. // departIds = tuser.getDepartid();
  798. String MENU_DATA_AUTHOR_RULE_SQL = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  799. if(org.apache.commons.lang3.StringUtils.isNotEmpty(MENU_DATA_AUTHOR_RULE_SQL)){
  800. if(MENU_DATA_AUTHOR_RULE_SQL.contains("departid")) {
  801. if(MENU_DATA_AUTHOR_RULE_SQL.contains("('") && MENU_DATA_AUTHOR_RULE_SQL.contains("')")){
  802. departIds = MENU_DATA_AUTHOR_RULE_SQL.substring(MENU_DATA_AUTHOR_RULE_SQL.indexOf("('")+2,MENU_DATA_AUTHOR_RULE_SQL.indexOf("')"));
  803. }else{
  804. departIds = MENU_DATA_AUTHOR_RULE_SQL.substring(16,MENU_DATA_AUTHOR_RULE_SQL.length()-1);
  805. }
  806. }
  807. }
  808. // 页面的单位ID
  809. List<String> departIdByPageList = Arrays.asList(departIds.split(","));
  810. if (null != inDto.getOrgIds() && StringUtil.isNotEmpty(inDto.getOrgIds())) {
  811. departIdByPageList.add(inDto.getOrgIds());
  812. }
  813. // 用于检索的单位ID
  814. List<String> departIdBySearchList = new ArrayList<String>();
  815. for (String str : departIdByPageList) {
  816. if (StringUtil.isNotEmpty(str)) {
  817. departIdBySearchList.add(str);
  818. List<DepartDto> departDtoList = personnelBaseArchivesManageService.getAllChildrenList(str, null, null);
  819. for (DepartDto departDto : departDtoList) {
  820. departIdBySearchList.add(departDto.getId());
  821. }
  822. }
  823. }
  824. // List去重复
  825. HashSet<String> h = new HashSet<String>(departIdBySearchList);
  826. departIdBySearchList.clear();
  827. departIdBySearchList.addAll(h);
  828. // 重新封装检索用的单位字符串
  829. departIds = "";
  830. for (String str : departIdBySearchList) {
  831. departIds += "'" + str + "',";
  832. }
  833. if(departIds.length() > 1){
  834. departIds = departIds.substring(0, departIds.length() - 1);
  835. }
  836. inDto.setOrgIds(departIds);
  837. //计算年龄条件,转换成出生日期条件
  838. if (StringUtils.isNotEmpty(age_begin)) {
  839. int age = Integer.parseInt(age_begin);
  840. String date = XcglDateUtils.addDateMonth(new Date(), (0 - age + 1) * 12, new SimpleDateFormat("yyyyMMdd"));
  841. inDto.setBirthdate_begin(date);
  842. }else{
  843. inDto.setBirthdate_begin(null);
  844. }
  845. if (StringUtils.isNotEmpty(age_end)) {
  846. int age = Integer.parseInt(age_end);
  847. String date = XcglDateUtils.addDateMonth(new Date(), (0 - age - 1) * 12, new SimpleDateFormat("yyyyMMdd"));
  848. inDto.setBirthdate_end(date);
  849. }else{
  850. inDto.setBirthdate_end(null);
  851. }
  852. // 入职时间
  853. if (StringUtils.isNotEmpty(employmentDateStart)) {
  854. inDto.setEmploymentDateStart(employmentDateStart);
  855. }else{
  856. inDto.setEmploymentDateStart(null);
  857. }
  858. // 所属网格化区域
  859. if(StringUtils.isNotEmpty(areaRegion)){
  860. inDto.setAreaRegion(areaRegion);
  861. }else{
  862. inDto.setAreaRegion(null);
  863. }
  864. if (StringUtils.isNotEmpty(employmentDateEnd)) {
  865. inDto.setEmploymentDateEnd(employmentDateEnd);
  866. }else{
  867. inDto.setEmploymentDateEnd(null);
  868. }
  869. if(StringUtils.isNotEmpty(nature)){
  870. inDto.setNation(nature);
  871. }else{
  872. inDto.setNation(null);
  873. }
  874. // 获取请求对应的数据权限
  875. String authSql = "";
  876. // 從SESSION中獲取用戶信息
  877. String sortorder = "";
  878. String sort = dataGrid.getSort(); // 排序对象
  879. String order = dataGrid.getOrder(); // 排序方式
  880. if (StringUtil.isEmpty(sort)) {
  881. sortorder = " userId "; //默认userName,userId降序
  882. } else {
  883. sortorder = humpToLine(sort) + " " + order; // 处理下划线,拼接排序
  884. }
  885. MiniDaoPage<PersonnelBaseArchivesManageOutDto> list = personnelBaseArchivesManageService.getPersonnelBaseArchivesManageList(inDto, dataGrid.getPage(), dataGrid.getRows(), authSql, sortorder);
  886. // list中去除null的废数据
  887. for (int i = list.getResults().size() - 1; i >= 0; i--) {
  888. PersonnelBaseArchivesManageOutDto personnelBaseArchivesManageOutDto = list.getResults().get(i);
  889. if (personnelBaseArchivesManageOutDto.getAttendType() != null) {
  890. personnelBaseArchivesManageOutDto.setAttendType("默认全勤");
  891. } else {
  892. personnelBaseArchivesManageOutDto.setAttendType("刷脸考勤");
  893. }
  894. // 滤除重复的兼职机构
  895. Map<String, String> jzMap = new HashMap<String, String>();
  896. String jzorgIds = personnelBaseArchivesManageOutDto.getJzorgId();
  897. if (jzorgIds != null && !"".equals(jzorgIds)) {
  898. String[] jzorgIdArr = jzorgIds.split(",");
  899. for (String jzorgId : jzorgIdArr) {
  900. jzMap.put(jzorgId, jzorgId);
  901. }
  902. String ids_processed = "";
  903. for (String jzorgId : jzMap.values()) {
  904. if ("".equals(ids_processed)) {
  905. ids_processed = modifyService.getByorgId(jzorgId);
  906. } else {
  907. ids_processed = ids_processed + "," + modifyService.getByorgId(jzorgId);
  908. }
  909. }
  910. list.getResults().get(i).setJzorgId(ids_processed);
  911. }
  912. // 滤除重复的证书
  913. Map<String, String> certMap = new HashMap<String, String>();
  914. String certificateNames = personnelBaseArchivesManageOutDto.getCertificateName();
  915. if (certificateNames != null && !"".equals(certificateNames)) {
  916. String[] certificateNameArr = certificateNames.split(",");
  917. for (String certName : certificateNameArr) {
  918. certMap.put(certName, certName);
  919. }
  920. String certName_processed = "";
  921. for (String certName : certMap.values()) {
  922. if ("".equals(certName_processed)) {
  923. certName_processed = certName;
  924. } else {
  925. certName_processed = certName_processed + "," + certName;
  926. }
  927. }
  928. list.getResults().get(i).setCertificateName(certName_processed);
  929. }
  930. // 设置组织机构
  931. String orgId = list.getResults().get(i).getOrgId();
  932. // orgId = modifyService.getByorgId(orgId);
  933. list.getResults().get(i).setOrgId(orgId);
  934. if (StringUtil.isEmpty(personnelBaseArchivesManageOutDto.getId())) {
  935. list.getResults().remove(i);
  936. }
  937. // 根据userid查询t_s_user表中的关联用户信息
  938. if (personnelBaseArchivesManageOutDto.getId() != null) {
  939. TSUser tsUser = systemService.getEntity(TSUser.class, personnelBaseArchivesManageOutDto.getId());
  940. // add-刘梦祥-2021年12月8日15:57:01(添加判断条件优化逻辑,防止接口异常)
  941. if (tsUser != null) {
  942. // 手动写入未获取数据
  943. list.getResults().get(i).setContacts(tsUser.getContacts());
  944. list.getResults().get(i).setContactsPhone(tsUser.getContactsPhone());
  945. list.getResults().get(i).setDeviceId(tsUser.getDeviceId());
  946. list.getResults().get(i).setOutlook(tsUser.getOutlook());
  947. if(tsUser.getNature() != null && StringUtils.isNotEmpty(tsUser.getNature())){
  948. list.getResults().get(i).setNature(tsUser.getNature());
  949. }else{
  950. list.getResults().get(i).setNature("未知");
  951. }
  952. if (tsUser.getAge() != null && !"".equals(tsUser.getAge())) {
  953. list.getResults().get(i).setAge(Integer.parseInt(tsUser.getAge()));
  954. } else {
  955. list.getResults().get(i).setAge(0);
  956. }
  957. }
  958. }
  959. }
  960. dataGrid.setTotal(list.getTotal());
  961. dataGrid.setResults(list.getResults());
  962. TagUtil.datagrid(response, dataGrid);
  963. }
  964. @RequestMapping(params = "datagrid_tired")
  965. public void datagrid_tired(PersonnelBaseArchivesManageInDto inDto, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  966. String departIds = "";
  967. if (null != inDto.getOrgIds() && StringUtil.isNotEmpty(inDto.getOrgIds())) {
  968. departIds = inDto.getOrgIds();
  969. }
  970. // if(StringUtil.isEmpty(inDto.getLeaveMonth())) {
  971. // dataGrid.setResults(new ArrayList<LeavePersonTaxExcelExportDto>());
  972. // TagUtil.datagrid(response, dataGrid);
  973. // return;
  974. // }
  975. String toDateStr = inDto.getLeaveMonth();
  976. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  977. Date toDate = new Date();
  978. if (StringUtil.isNotEmpty(toDateStr)) {
  979. toDateStr = toDateStr + "-15";
  980. try {
  981. toDate = sdf.parse(toDateStr);
  982. } catch (ParseException e) {
  983. System.out.println(e.getMessage());
  984. }
  985. }
  986. Calendar last_month = Calendar.getInstance();
  987. last_month.setTime(toDate);
  988. last_month.add(Calendar.MONTH, -1);
  989. // 设置上月最后一天
  990. last_month.set(Calendar.DAY_OF_MONTH, last_month.getActualMaximum(Calendar.DAY_OF_MONTH));
  991. // 页面的单位ID
  992. List<String> departIdByPageList = Arrays.asList(departIds.split(","));
  993. // 用于检索的单位ID
  994. List<String> departIdBySearchList = new ArrayList<String>();
  995. for (String str : departIdByPageList) {
  996. if (StringUtil.isNotEmpty(str)) {
  997. departIdBySearchList.add(str);
  998. List<DepartDto> departDtoList = personnelBaseArchivesManageService.getAllChildrenList(str, null, null);
  999. for (DepartDto departDto : departDtoList) {
  1000. departIdBySearchList.add(departDto.getId());
  1001. }
  1002. }
  1003. }
  1004. // List去重复
  1005. HashSet<String> h = new HashSet<String>(departIdBySearchList);
  1006. departIdBySearchList.clear();
  1007. departIdBySearchList.addAll(h);
  1008. // 重新封装检索用的单位字符串
  1009. departIds = "";
  1010. for (String str : departIdBySearchList) {
  1011. departIds += "'" + str + "',";
  1012. }
  1013. if (StringUtil.isNotEmpty(departIds)) {
  1014. departIds = departIds.substring(0, departIds.length() - 1);
  1015. }
  1016. inDto.setOrgIds(departIds);
  1017. // 获取请求对应的数据权限
  1018. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  1019. // 從SESSION中獲取用戶信息
  1020. String sortorder = "";
  1021. MiniDaoPage<LeavePersonTaxExcelExportDto> list = personnelBaseArchivesManageDao.getTiredperson(inDto
  1022. , dataGrid.getPage(), dataGrid.getRows(), authSql, sdf.format(last_month.getTime()));
  1023. dataGrid.setTotal(list.getTotal());
  1024. dataGrid.setResults(list.getResults());
  1025. TagUtil.datagrid(response, dataGrid);
  1026. }
  1027. /**
  1028. * @param personnelBaseArchivesManageOutDto
  1029. * @param stop_date
  1030. * @return
  1031. */
  1032. private boolean isTiredLastMonth(PersonnelBaseArchivesManageOutDto personnelBaseArchivesManageOutDto, Date stop_date) {
  1033. Date birth = getBirth(personnelBaseArchivesManageOutDto);
  1034. Calendar birth_cal = Calendar.getInstance();
  1035. birth_cal.setTime(birth);
  1036. Calendar last_month = Calendar.getInstance();
  1037. last_month.setTime(stop_date);
  1038. last_month.add(Calendar.MONTH, -1);
  1039. // 设置上月最后一天
  1040. last_month.set(Calendar.DAY_OF_MONTH, last_month.getLeastMaximum(Calendar.DAY_OF_MONTH));
  1041. // 男性60
  1042. if ("0".equals(personnelBaseArchivesManageOutDto.getGender())) {
  1043. birth_cal.add(Calendar.YEAR, 60);
  1044. if (birth_cal.before(last_month)) {
  1045. return true;
  1046. }
  1047. }
  1048. //女性55
  1049. if ("1".equals(personnelBaseArchivesManageOutDto.getGender())) {
  1050. birth_cal.add(Calendar.YEAR, 55);
  1051. if (birth_cal.before(last_month)) {
  1052. return true;
  1053. }
  1054. }
  1055. return false;
  1056. }
  1057. private Date getBirth(PersonnelBaseArchivesManageOutDto personnelBaseArchivesManageOutDto) {
  1058. String Id = personnelBaseArchivesManageOutDto.getIdcard();
  1059. String year = Id.substring(6, 10);//调用substring方法返回相关字段,注意索引从0开始
  1060. String month = Id.substring(10, 12);
  1061. String day = Id.substring(12, 14);
  1062. String birthday = year + "-" + month + "-" + day;
  1063. DateFormat fmt = new SimpleDateFormat("yyyy-MM-dd");//定义一个时间转换格式“年-月-日”
  1064. Date date = null;
  1065. try { //捕获类型转换(解析)异常
  1066. date = fmt.parse(birthday);
  1067. } catch (ParseException e) {
  1068. e.printStackTrace();
  1069. }
  1070. return date;
  1071. }
  1072. /**
  1073. * 驼峰转下划线
  1074. *
  1075. * @param str 需要转换的字符串
  1076. * @return
  1077. */
  1078. private String humpToLine(String str) {
  1079. Pattern humpPattern = Pattern.compile("[A-Z]");
  1080. Matcher matcher = humpPattern.matcher(str);
  1081. StringBuffer sb = new StringBuffer();
  1082. while (matcher.find()) {
  1083. matcher.appendReplacement(sb, "_" + matcher.group(0).toLowerCase());
  1084. }
  1085. matcher.appendTail(sb);
  1086. return sb.toString();
  1087. }
  1088. /**
  1089. * 编辑TAB 页面跳转
  1090. *
  1091. * @return
  1092. */
  1093. @RequestMapping(params = "goUpdateTab")
  1094. public ModelAndView goUpdateTab(String id, HttpServletRequest request) {
  1095. request.setAttribute("id", id);
  1096. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  1097. if (oConvertUtils.isNotEmpty(queryParams)) {
  1098. request.setAttribute("queryParams", queryParams);
  1099. }
  1100. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchives-tab");
  1101. }
  1102. /**
  1103. * 编辑TAB 页面跳转
  1104. *
  1105. * @return
  1106. */
  1107. @RequestMapping(params = "goUpdateTabLeave")
  1108. public ModelAndView goUpdateTabLeave(String id, HttpServletRequest request) {
  1109. request.setAttribute("id", id);
  1110. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  1111. if (oConvertUtils.isNotEmpty(queryParams)) {
  1112. request.setAttribute("queryParams", queryParams);
  1113. }
  1114. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchives-tab-Leave");
  1115. }
  1116. /**
  1117. * 查看TAB 页面跳转
  1118. *
  1119. * @return
  1120. */
  1121. @RequestMapping(params = "goViewTab")
  1122. public ModelAndView goViewTab(String id, HttpServletRequest request) {
  1123. request.setAttribute("id", id);
  1124. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  1125. if (oConvertUtils.isNotEmpty(queryParams)) {
  1126. request.setAttribute("queryParams", queryParams);
  1127. }
  1128. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchives-view-tab");
  1129. }
  1130. /**
  1131. * 编辑基本信息 页面跳转
  1132. *
  1133. * @return
  1134. */
  1135. @RequestMapping(params = "goUpdateBase")
  1136. public ModelAndView goUpdateBase(String id, HttpServletRequest request) {
  1137. if (StringUtil.isNotEmpty(id)) {
  1138. TSUser userInfo = userService.get(TSUser.class, id);
  1139. request.setAttribute("userInfo", userInfo);
  1140. this.idandname(request, userInfo);
  1141. this.getOrgInfos(request, userInfo);
  1142. // this.getJzOrgInfos(request, userInfo);
  1143. }
  1144. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/userInfo-update");
  1145. }
  1146. /**
  1147. * 查看基本信息 页面跳转
  1148. *
  1149. * @return
  1150. */
  1151. @RequestMapping(params = "goViewBase")
  1152. public ModelAndView goViewBase(String id, HttpServletRequest request) {
  1153. if (StringUtil.isNotEmpty(id)) {
  1154. TSUser userInfo = userService.get(TSUser.class, id);
  1155. request.setAttribute("userInfo", userInfo);
  1156. this.idandname(request, userInfo);
  1157. this.getOrgInfos(request, userInfo);
  1158. // this.getJzOrgInfos(request, userInfo);
  1159. }
  1160. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/userInfo-view");
  1161. }
  1162. /**
  1163. * 编辑证书信息 页面跳转
  1164. *
  1165. * @return
  1166. */
  1167. @RequestMapping(params = "goUpdateCertificate")
  1168. public ModelAndView goUpdateCertificate(String id, HttpServletRequest request) {
  1169. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManage-add");
  1170. }
  1171. /**
  1172. * 编辑人事信息 页面跳转
  1173. *
  1174. * @return
  1175. */
  1176. @RequestMapping(params = "goUpdatePersonnel")
  1177. public ModelAndView goUpdatePersonnel(String id, HttpServletRequest request) {
  1178. String personnelHql = "from PersonnelBaseArchivesManageEntity where userid=? ";
  1179. // 职务名
  1180. String dutiesName = "";
  1181. // 岗位名
  1182. String postName = "";
  1183. List<PersonnelBaseArchivesManageEntity> personnelBaseArchivesManageEntityList = personnelBaseArchivesManageService.findHql(personnelHql, id);
  1184. PersonnelBaseArchivesManageEntity personnelBaseArchivesManageEntity = new PersonnelBaseArchivesManageEntity();
  1185. if (personnelBaseArchivesManageEntityList.size() > 0) {
  1186. personnelBaseArchivesManageEntity = personnelBaseArchivesManageEntityList.get(0);
  1187. if (StringUtil.isNotEmpty(personnelBaseArchivesManageEntity.getBelongDutiesid())) {
  1188. DutiesEntity dutiesEntity = systemService.getEntity(DutiesEntity.class, personnelBaseArchivesManageEntity.getBelongDutiesid());
  1189. dutiesName = dutiesEntity.getDutiesName();
  1190. }
  1191. if (StringUtil.isNotEmpty(personnelBaseArchivesManageEntity.getInPostid())) {
  1192. PostEntity postEntity = systemService.getEntity(PostEntity.class, personnelBaseArchivesManageEntity.getInPostid());
  1193. postName = postEntity.getPostName();
  1194. }
  1195. } else {
  1196. personnelBaseArchivesManageEntity.setUserid(id);
  1197. }
  1198. // 查询主组织
  1199. StringBuilder mainOrgSql = new StringBuilder();
  1200. mainOrgSql.append(" SELECT ");
  1201. mainOrgSql.append(" depart.departname departname");
  1202. mainOrgSql.append(" FROM t_s_user_org userOrg ");
  1203. mainOrgSql.append(" LEFT JOIN t_s_depart depart ON userOrg.org_id = depart.id ");
  1204. mainOrgSql.append(" WHERE ");
  1205. mainOrgSql.append(" userOrg.user_id = '" + id + "'");
  1206. mainOrgSql.append(" AND userOrg.status = '0' ");
  1207. mainOrgSql.append(" AND userOrg.ifpluralism <> '1' ");
  1208. List<Map<String, Object>> mainOrgMapList = systemService.findForJdbc(mainOrgSql.toString());
  1209. // 查询兼职组织
  1210. StringBuilder parttimeOrgSql = new StringBuilder();
  1211. parttimeOrgSql.append(" SELECT ");
  1212. parttimeOrgSql.append(" depart.departname departname");
  1213. parttimeOrgSql.append(" FROM t_s_user_org userOrg ");
  1214. parttimeOrgSql.append(" LEFT JOIN t_s_depart depart ON userOrg.org_id = depart.id ");
  1215. parttimeOrgSql.append(" WHERE ");
  1216. parttimeOrgSql.append(" userOrg.user_id = '" + id + "'");
  1217. parttimeOrgSql.append(" AND userOrg.status = '0' ");
  1218. parttimeOrgSql.append(" AND userOrg.ifpluralism = '1' ");
  1219. List<Map<String, Object>> parttimeOrgMapList = systemService.findForJdbc(parttimeOrgSql.toString());
  1220. // 单位名称
  1221. String mainOrg = "";
  1222. // 兼职单位名
  1223. String parttimeOrg = "";
  1224. if (mainOrgMapList.size() > 0) {
  1225. mainOrg = (String) mainOrgMapList.get(0).get("departname");
  1226. }
  1227. if (parttimeOrgMapList.size() > 0) {
  1228. for (Map<String, Object> orgStr : parttimeOrgMapList) {
  1229. parttimeOrg += (String) orgStr.get("departname") + ",";
  1230. }
  1231. parttimeOrg = parttimeOrg.substring(0, parttimeOrg.length() - 1);
  1232. }
  1233. request.setAttribute("personnelInfo", personnelBaseArchivesManageEntity);
  1234. request.setAttribute("mainOrg", mainOrg);
  1235. request.setAttribute("parttimeOrg", parttimeOrg);
  1236. request.setAttribute("dutiesName", dutiesName);
  1237. request.setAttribute("postName", postName);
  1238. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManage-update");
  1239. }
  1240. /**
  1241. * 查看人事信息 页面跳转
  1242. *
  1243. * @return
  1244. */
  1245. @RequestMapping(params = "goViewPersonnel")
  1246. public ModelAndView goViewPersonnel(String id, HttpServletRequest request) {
  1247. String personnelHql = "from PersonnelBaseArchivesManageEntity where userid=? ";
  1248. // 职务名
  1249. String dutiesName = "";
  1250. // 岗位名
  1251. String postName = "";
  1252. List<PersonnelBaseArchivesManageEntity> personnelBaseArchivesManageEntityList = personnelBaseArchivesManageService.findHql(personnelHql, id);
  1253. PersonnelBaseArchivesManageEntity personnelBaseArchivesManageEntity = new PersonnelBaseArchivesManageEntity();
  1254. if (personnelBaseArchivesManageEntityList.size() > 0) {
  1255. personnelBaseArchivesManageEntity = personnelBaseArchivesManageEntityList.get(0);
  1256. if (StringUtil.isNotEmpty(personnelBaseArchivesManageEntity.getBelongDutiesid())) {
  1257. DutiesEntity dutiesEntity = systemService.getEntity(DutiesEntity.class, personnelBaseArchivesManageEntity.getBelongDutiesid());
  1258. dutiesName = dutiesEntity.getDutiesName();
  1259. }
  1260. if (StringUtil.isNotEmpty(personnelBaseArchivesManageEntity.getInPostid())) {
  1261. PostEntity postEntity = systemService.getEntity(PostEntity.class, personnelBaseArchivesManageEntity.getInPostid());
  1262. postName = postEntity.getPostName();
  1263. }
  1264. } else {
  1265. personnelBaseArchivesManageEntity.setUserid(id);
  1266. }
  1267. // 查询主组织
  1268. StringBuilder mainOrgSql = new StringBuilder();
  1269. mainOrgSql.append(" SELECT ");
  1270. mainOrgSql.append(" depart.departname departname");
  1271. mainOrgSql.append(" FROM t_s_user_org userOrg ");
  1272. mainOrgSql.append(" LEFT JOIN t_s_depart depart ON userOrg.org_id = depart.id ");
  1273. mainOrgSql.append(" WHERE ");
  1274. mainOrgSql.append(" userOrg.user_id = '" + id + "'");
  1275. mainOrgSql.append(" AND userOrg.status = '0' ");
  1276. mainOrgSql.append(" AND userOrg.ifpluralism <> '1' ");
  1277. List<Map<String, Object>> mainOrgMapList = systemService.findForJdbc(mainOrgSql.toString());
  1278. // 查询兼职组织
  1279. StringBuilder parttimeOrgSql = new StringBuilder();
  1280. parttimeOrgSql.append(" SELECT ");
  1281. parttimeOrgSql.append(" depart.departname departname");
  1282. parttimeOrgSql.append(" FROM t_s_user_org userOrg ");
  1283. parttimeOrgSql.append(" LEFT JOIN t_s_depart depart ON userOrg.org_id = depart.id ");
  1284. parttimeOrgSql.append(" WHERE ");
  1285. parttimeOrgSql.append(" userOrg.user_id = '" + id + "'");
  1286. parttimeOrgSql.append(" AND userOrg.status = '0' ");
  1287. parttimeOrgSql.append(" AND userOrg.ifpluralism = '1' ");
  1288. List<Map<String, Object>> parttimeOrgMapList = systemService.findForJdbc(parttimeOrgSql.toString());
  1289. // 单位名称
  1290. String mainOrg = "";
  1291. // 兼职单位名
  1292. String parttimeOrg = "";
  1293. if (mainOrgMapList.size() > 0) {
  1294. mainOrg = (String) mainOrgMapList.get(0).get("departname");
  1295. }
  1296. if (parttimeOrgMapList.size() > 0) {
  1297. for (Map<String, Object> orgStr : parttimeOrgMapList) {
  1298. parttimeOrg += (String) orgStr.get("departname") + ",";
  1299. }
  1300. parttimeOrg = parttimeOrg.substring(0, parttimeOrg.length() - 1);
  1301. }
  1302. request.setAttribute("personnelInfo", personnelBaseArchivesManageEntity);
  1303. request.setAttribute("mainOrg", mainOrg);
  1304. request.setAttribute("parttimeOrg", parttimeOrg);
  1305. request.setAttribute("dutiesName", dutiesName);
  1306. request.setAttribute("postName", postName);
  1307. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManage-view");
  1308. }
  1309. /**
  1310. * 编辑人员照片 页面跳转
  1311. *
  1312. * @return
  1313. */
  1314. @RequestMapping(params = "goUpdatePhoto")
  1315. public ModelAndView goUpdatePhoto(String userId, HttpServletRequest request) {
  1316. // 用户照片有无Flg
  1317. String photoFlg = "0";
  1318. String photoUrl = "";
  1319. StringBuilder mainOrgSql = new StringBuilder();
  1320. mainOrgSql.append(" SELECT ");
  1321. mainOrgSql.append(" file_url ");
  1322. mainOrgSql.append(" FROM t_sys_file ");
  1323. mainOrgSql.append(" WHERE ");
  1324. mainOrgSql.append(" busi_table = 't_s_base_user' ");
  1325. mainOrgSql.append(" AND taget_type = 'userPhoto' ");
  1326. mainOrgSql.append(" AND busi_id = '" + userId + "' ");
  1327. List<Map<String, Object>> userPhotoMapList = systemService.findForJdbc(mainOrgSql.toString());
  1328. if (userPhotoMapList.size() > 0) {
  1329. photoFlg = "1";
  1330. photoUrl = (String) userPhotoMapList.get(0).get("file_url");
  1331. }
  1332. request.setAttribute("userId", userId);
  1333. request.setAttribute("photoFlg", photoFlg);
  1334. request.setAttribute("photoUrl", photoUrl);
  1335. request.setAttribute("showAndDownUrl", showAndDownUrl);
  1336. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/userPhoto");
  1337. }
  1338. /**
  1339. * 编辑附件 页面跳转
  1340. *
  1341. * @return
  1342. */
  1343. @RequestMapping(params = "goAccessory")
  1344. public ModelAndView goAccessory(String userId, HttpServletRequest request) {
  1345. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/userAccessory");
  1346. }
  1347. /**
  1348. * 保存新增/更新人事数据
  1349. *
  1350. * @return
  1351. */
  1352. @RequestMapping(params = "savePersonnelData")
  1353. @ResponseBody
  1354. public AjaxJson savePersonnelData(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest request) {
  1355. String message = "";
  1356. AjaxJson j = new AjaxJson();
  1357. // 根据userId判断用户是否已经维护了员工人事信息表
  1358. String personnelBaseArchivesManageByUserIdHql = "from PersonnelBaseArchivesManageEntity where userid = ?";
  1359. List<PersonnelBaseArchivesManageEntity> personnelBaseArchivesManageEntityList = personnelBaseArchivesManageService.findHql(personnelBaseArchivesManageByUserIdHql, personnelBaseArchivesManage.getUserid());
  1360. if (personnelBaseArchivesManageEntityList.size() > 0) {
  1361. personnelBaseArchivesManage.setId(personnelBaseArchivesManageEntityList.get(0).getId());
  1362. }
  1363. if (StringUtil.isNotEmpty(personnelBaseArchivesManage.getId())) {
  1364. PersonnelBaseArchivesManageEntity t = personnelBaseArchivesManageService.get(PersonnelBaseArchivesManageEntity.class, personnelBaseArchivesManage.getId());
  1365. try {
  1366. // 维护员工人事变动表数据
  1367. if (Globals.JOBSTATUS_1.equals(personnelBaseArchivesManage.getPositionStatus()) && !Globals.JOBSTATUS_1.equals(t.getPositionStatus())
  1368. || Globals.JOBSTATUS_2.equals(personnelBaseArchivesManage.getPositionStatus()) && !Globals.JOBSTATUS_2.equals(t.getPositionStatus())) {
  1369. this.saveUserChangesLog(personnelBaseArchivesManage.getUserid(), personnelBaseArchivesManage.getIfpayment(), personnelBaseArchivesManage.getPositionStatus());
  1370. }
  1371. // 试用期为【无】时,转正日期=合同开始日期
  1372. if (Globals.SHIYONGQI_0.equals(personnelBaseArchivesManage.getTrialPeriod().toString())) {
  1373. t.setCorrectionDate(personnelBaseArchivesManage.getContractStime());
  1374. }
  1375. if (personnelBaseArchivesManage.getBelongDutiesid() != null && !personnelBaseArchivesManage.getBelongDutiesid().equals(t.getBelongDutiesid())) {
  1376. resetDutyAndPost(personnelBaseArchivesManage);
  1377. }
  1378. MyBeanUtils.copyBeanNotNull2Bean(personnelBaseArchivesManage, t);
  1379. personnelBaseArchivesManageService.saveOrUpdate(t);
  1380. message = "员工人事信息更新成功";
  1381. j.setSuccess(true);
  1382. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1383. } catch (Exception e) {
  1384. e.printStackTrace();
  1385. message = "员工人事信息更新失败";
  1386. j.setSuccess(false);
  1387. throw new BusinessException(e.getMessage());
  1388. }
  1389. } else {
  1390. try {
  1391. // 维护员工人事变动表数据
  1392. if (Globals.JOBSTATUS_1.equals(personnelBaseArchivesManage.getPositionStatus())
  1393. || Globals.JOBSTATUS_2.equals(personnelBaseArchivesManage.getPositionStatus())) {
  1394. this.saveUserChangesLog(personnelBaseArchivesManage.getUserid(), personnelBaseArchivesManage.getIfpayment(), personnelBaseArchivesManage.getPositionStatus());
  1395. }
  1396. // 试用期为【无】时,转正日期=合同开始日期
  1397. if (Globals.SHIYONGQI_0.equals(personnelBaseArchivesManage.getTrialPeriod().toString())) {
  1398. personnelBaseArchivesManage.setCorrectionDate(personnelBaseArchivesManage.getContractStime());
  1399. }
  1400. if (personnelBaseArchivesManage.getBelongDutiesid() != null) {
  1401. resetDutyAndPost(personnelBaseArchivesManage);
  1402. }
  1403. personnelBaseArchivesManageService.save(personnelBaseArchivesManage);
  1404. message = "员工人事信息添加成功";
  1405. j.setSuccess(true);
  1406. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  1407. } catch (Exception e) {
  1408. e.printStackTrace();
  1409. message = "员工人事信息添加失败";
  1410. j.setSuccess(false);
  1411. throw new BusinessException(e.getMessage());
  1412. }
  1413. }
  1414. j.setMsg(message);
  1415. return j;
  1416. }
  1417. /**
  1418. * @param personnelBaseArchivesManage
  1419. */
  1420. private void resetDutyAndPost(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage) {
  1421. String duty_id = personnelBaseArchivesManage.getBelongDutiesid();
  1422. if (duty_id == null) {
  1423. return;
  1424. }
  1425. DutiesEntity dutiesEntity = systemService.getEntity(DutiesEntity.class, duty_id);
  1426. if (dutiesEntity != null) {
  1427. personnelBaseArchivesManage.setInPostid(dutiesEntity.getPost());
  1428. personnelBaseArchivesManage.setManagerType(dutiesEntity.getManageType());
  1429. }
  1430. }
  1431. /**
  1432. * 保存员工基本信息数据
  1433. *
  1434. * @return
  1435. */
  1436. /* @RequestMapping(params = "saveUserData")
  1437. @ResponseBody
  1438. public AjaxJson saveUserData(TSUser userInfo, HttpServletRequest request){
  1439. String message = "";
  1440. AjaxJson j = new AjaxJson();
  1441. TSUser t = userService.get(TSUser.class, userInfo.getId());
  1442. try {
  1443. MyBeanUtils.copyBeanNotNull2Bean(userInfo, t);
  1444. userService.saveOrUpdate(t);
  1445. message = "员工基本信息更新成功";
  1446. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1447. } catch (Exception e) {
  1448. e.printStackTrace();
  1449. message = "员工基本信息更新失败";
  1450. throw new BusinessException(e.getMessage());
  1451. }
  1452. j.setMsg(message);
  1453. return j;
  1454. }*/
  1455. /**
  1456. * 逻辑删除用户
  1457. *
  1458. * @param request
  1459. * @return
  1460. * @author zhijia.wang
  1461. * 2017-12-27 pm
  1462. */
  1463. @RequestMapping(params = "logicDel")
  1464. @ResponseBody
  1465. public AjaxJson logicDel(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest request) {
  1466. String message = null;
  1467. AjaxJson j = new AjaxJson();
  1468. if ("admin".equals(personnelBaseArchivesManage.getUserid())) {
  1469. message = "超级管理员[admin]不可删除";
  1470. j.setSuccess(false);
  1471. j.setMsg(message);
  1472. return j;
  1473. }
  1474. TSUser user = systemService.getEntity(TSUser.class, personnelBaseArchivesManage.getId());
  1475. try {
  1476. if (!Globals.User_ADMIN.equals(user.getStatus())) {
  1477. user.setDeleteFlag(Globals.Delete_Forbidden);
  1478. // 逻辑删除用户,并把删除状态设置到Redis
  1479. userService.logicDelAndPutRedis(user);
  1480. message = "用户:" + user.getUserName() + "删除成功";
  1481. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  1482. logger.info("[" + IpUtil.getIpAddr(request) + "][逻辑删除用户]" + message);
  1483. j.setSuccess(true);
  1484. } else {
  1485. message = "超级管理员不可删除";
  1486. j.setSuccess(false);
  1487. }
  1488. } catch (Exception e) {
  1489. e.printStackTrace();
  1490. message = "参数异常,用户删除失败,请重试.";
  1491. j.setSuccess(false);
  1492. throw new BusinessException(e.getMessage());
  1493. }
  1494. j.setMsg(message);
  1495. return j;
  1496. }
  1497. /**
  1498. * 删除员工人事信息表
  1499. *
  1500. * @return
  1501. */
  1502. @RequestMapping(params = "doDel")
  1503. @ResponseBody
  1504. public AjaxJson doDel(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest request) {
  1505. String message = null;
  1506. AjaxJson j = new AjaxJson();
  1507. personnelBaseArchivesManage = systemService.getEntity(PersonnelBaseArchivesManageEntity.class, personnelBaseArchivesManage.getId());
  1508. message = "员工人事信息表删除成功";
  1509. try {
  1510. personnelBaseArchivesManageService.delete(personnelBaseArchivesManage);
  1511. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  1512. } catch (Exception e) {
  1513. e.printStackTrace();
  1514. message = "员工人事信息表删除失败";
  1515. throw new BusinessException(e.getMessage());
  1516. }
  1517. j.setMsg(message);
  1518. return j;
  1519. }
  1520. /**
  1521. * 批量删除员工人事信息表
  1522. *
  1523. * @return
  1524. */
  1525. @RequestMapping(params = "doBatchDel")
  1526. @ResponseBody
  1527. public AjaxJson doBatchDel(String ids, HttpServletRequest request) {
  1528. String message = null;
  1529. AjaxJson j = new AjaxJson();
  1530. message = "员工人事信息表删除成功";
  1531. try {
  1532. for (String id : ids.split(",")) {
  1533. PersonnelBaseArchivesManageEntity personnelBaseArchivesManage = systemService.getEntity(PersonnelBaseArchivesManageEntity.class,
  1534. id
  1535. );
  1536. personnelBaseArchivesManageService.delete(personnelBaseArchivesManage);
  1537. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  1538. }
  1539. } catch (Exception e) {
  1540. e.printStackTrace();
  1541. message = "员工人事信息表删除失败";
  1542. throw new BusinessException(e.getMessage());
  1543. }
  1544. j.setMsg(message);
  1545. return j;
  1546. }
  1547. /**
  1548. * 添加员工人事信息表
  1549. *
  1550. * @return
  1551. */
  1552. @RequestMapping(params = "doAdd")
  1553. @ResponseBody
  1554. public AjaxJson doAdd(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest request) {
  1555. String message = null;
  1556. AjaxJson j = new AjaxJson();
  1557. message = "员工人事信息表添加成功";
  1558. try {
  1559. personnelBaseArchivesManageService.save(personnelBaseArchivesManage);
  1560. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  1561. } catch (Exception e) {
  1562. e.printStackTrace();
  1563. message = "员工人事信息表添加失败";
  1564. throw new BusinessException(e.getMessage());
  1565. }
  1566. j.setMsg(message);
  1567. return j;
  1568. }
  1569. /**
  1570. * 更新员工人事信息表
  1571. *
  1572. * @return
  1573. */
  1574. @RequestMapping(params = "doUpdate")
  1575. @ResponseBody
  1576. public AjaxJson doUpdate(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest request) {
  1577. String message = null;
  1578. AjaxJson j = new AjaxJson();
  1579. message = "员工人事信息表更新成功";
  1580. PersonnelBaseArchivesManageEntity t = personnelBaseArchivesManageService.get(PersonnelBaseArchivesManageEntity.class, personnelBaseArchivesManage.getId());
  1581. try {
  1582. MyBeanUtils.copyBeanNotNull2Bean(personnelBaseArchivesManage, t);
  1583. personnelBaseArchivesManageService.saveOrUpdate(t);
  1584. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1585. } catch (Exception e) {
  1586. e.printStackTrace();
  1587. message = "员工人事信息表更新失败";
  1588. throw new BusinessException(e.getMessage());
  1589. }
  1590. j.setMsg(message);
  1591. return j;
  1592. }
  1593. /**
  1594. * 离职登记
  1595. *
  1596. * @return
  1597. */
  1598. @RequestMapping(params = "doLeave")
  1599. @ResponseBody
  1600. public AjaxJson doLeave(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest request) {
  1601. String message = null;
  1602. AjaxJson j = new AjaxJson();
  1603. message = "员工离职登记成功";
  1604. String id = request.getParameter("ids");
  1605. String leavedate = request.getParameter("leavedate");
  1606. SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
  1607. PersonnelBaseArchivesManageEntity t = personnelBaseArchivesManageService.get(PersonnelBaseArchivesManageEntity.class, id);
  1608. try {
  1609. t.setLeaveDate(sdf2.parse(leavedate));
  1610. t.setPositionStatus("3");
  1611. personnelBaseArchivesManageService.saveOrUpdate(t);
  1612. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1613. } catch (Exception e) {
  1614. e.printStackTrace();
  1615. message = "员工离职登记失败";
  1616. throw new BusinessException(e.getMessage());
  1617. }
  1618. j.setMsg(message);
  1619. return j;
  1620. }
  1621. /**
  1622. * 停缴社保
  1623. *
  1624. * @return
  1625. */
  1626. @RequestMapping(params = "stopShebao")
  1627. @ResponseBody
  1628. public AjaxJson stopShebao(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest request) {
  1629. String message = null;
  1630. AjaxJson j = new AjaxJson();
  1631. message = "社保停缴成功";
  1632. String userid = request.getParameter("userid");
  1633. StringBuffer hql = new StringBuffer("from UserWagestrategyEntity where userid = :userid and deleteFlag <> '1'");
  1634. List<UserWagestrategyEntity> tsList = systemService.getSession().createQuery(hql.toString()).setParameter("userid", userid).list();
  1635. try {
  1636. if (tsList.size() > 0) {
  1637. tsList.get(0).setSocialSecurityStrategyid(null);
  1638. systemService.saveOrUpdate(tsList.get(0));
  1639. }
  1640. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1641. } catch (Exception e) {
  1642. e.printStackTrace();
  1643. message = "社保停缴失败";
  1644. throw new BusinessException(e.getMessage());
  1645. }
  1646. j.setMsg(message);
  1647. return j;
  1648. }
  1649. /**
  1650. * 重新入职
  1651. *
  1652. * @return
  1653. */
  1654. @RequestMapping(params = "reruzhi")
  1655. @ResponseBody
  1656. public AjaxJson reruzhi(HttpServletRequest request) {
  1657. String message = null;
  1658. AjaxJson j = new AjaxJson();
  1659. message = "员工重新入职成功";
  1660. String id = request.getParameter("ids");
  1661. String start = request.getParameter("start");
  1662. String end = request.getParameter("end");
  1663. SimpleDateFormat sdf2 = new SimpleDateFormat("yyyy-MM-dd");
  1664. PersonnelBaseArchivesManageEntity t = personnelBaseArchivesManageService.get(PersonnelBaseArchivesManageEntity.class, id);
  1665. try {
  1666. t.setContractStime(sdf2.parse(start));
  1667. t.setContractEtime(sdf2.parse(end));
  1668. t.setLeaveDate(null);
  1669. t.setPositionStatus("1");
  1670. personnelBaseArchivesManageService.saveOrUpdate(t);
  1671. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1672. } catch (Exception e) {
  1673. e.printStackTrace();
  1674. message = "员工重新入职失败";
  1675. throw new BusinessException(e.getMessage());
  1676. }
  1677. j.setMsg(message);
  1678. return j;
  1679. }
  1680. /**
  1681. * 员工人事信息表新增页面跳转
  1682. *
  1683. * @return
  1684. */
  1685. @RequestMapping(params = "goAdd")
  1686. public ModelAndView goAdd(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest req) {
  1687. if (StringUtil.isNotEmpty(personnelBaseArchivesManage.getId())) {
  1688. personnelBaseArchivesManage = personnelBaseArchivesManageService.getEntity(PersonnelBaseArchivesManageEntity.class, personnelBaseArchivesManage.getId());
  1689. req.setAttribute("personnelBaseArchivesManagePage", personnelBaseArchivesManage);
  1690. }
  1691. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManage-add");
  1692. }
  1693. /**
  1694. * 员工人事信息表编辑页面跳转
  1695. *
  1696. * @return
  1697. */
  1698. @RequestMapping(params = "goUpdate")
  1699. public ModelAndView goUpdate(PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, HttpServletRequest req) {
  1700. if (StringUtil.isNotEmpty(personnelBaseArchivesManage.getId())) {
  1701. personnelBaseArchivesManage = personnelBaseArchivesManageService.getEntity(PersonnelBaseArchivesManageEntity.class, personnelBaseArchivesManage.getId());
  1702. req.setAttribute("personnelBaseArchivesManagePage", personnelBaseArchivesManage);
  1703. }
  1704. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManage-update");
  1705. }
  1706. /**
  1707. * 导入功能跳转
  1708. *
  1709. * @return
  1710. */
  1711. /*@RequestMapping(params = "upload")
  1712. public ModelAndView upload(HttpServletRequest req) {
  1713. req.setAttribute("controller_name","personnelBaseArchivesManageController");
  1714. return new ModelAndView("common/upload/pub_excel_upload");
  1715. }*/
  1716. /**
  1717. * 导入功能跳转
  1718. *
  1719. * @return
  1720. */
  1721. @RequestMapping(params = "upload")
  1722. public ModelAndView uploadTest(HttpServletRequest req) {
  1723. // req.setAttribute("controller_name","personnelBaseArchivesManageController");
  1724. // return new ModelAndView("common/upload/uploadzbw/excel_upload");
  1725. req.setAttribute("controller_name", "personnelBaseArchivesManageController");
  1726. return new ModelAndView("common/upload/common_excel_upload");
  1727. }
  1728. /**
  1729. * 导出excel
  1730. *
  1731. * @param request
  1732. * @param response datagrid1
  1733. */
  1734. @RequestMapping(params = "exportXls")
  1735. @ResponseBody
  1736. public void exportXls(PersonnelBaseArchivesManageInDto personnelBaseArchivesManageInDto, HttpServletRequest request, HttpServletResponse response
  1737. , DataGrid dataGrid, ModelMap modelMap) throws Exception {
  1738. // 获取请求对应的数据权限
  1739. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  1740. // 從SESSION中獲取用戶信息
  1741. String sortorder = "";
  1742. String sort = dataGrid.getSort(); // 排序对象
  1743. String order = dataGrid.getOrder(); // 排序方式
  1744. if (StringUtil.isEmpty(sort)) {
  1745. sortorder = " 'orgId' "; //默认userName,userId降序
  1746. } else {
  1747. sortorder = humpToLine(sort) + " " + order; // 处理下划线,拼接排序
  1748. }
  1749. if(personnelBaseArchivesManageInDto.getId() != null){
  1750. if(personnelBaseArchivesManageInDto.getId().contains(",")){
  1751. personnelBaseArchivesManageInDto.setId(personnelBaseArchivesManageInDto.getId().replace(",",""));
  1752. }
  1753. }
  1754. MiniDaoPage<PersonnelBaseArchivesManageOutDto> list = personnelBaseArchivesManageService.getPersonnelBaseArchivesManageList(personnelBaseArchivesManageInDto, dataGrid.getPage(), dataGrid.getRows(), authSql, sortorder);
  1755. for (int i = list.getResults().size() - 1; i >= 0; i--) {
  1756. PersonnelBaseArchivesManageOutDto personnelBaseArchivesManageOutDto = list.getResults().get(i);
  1757. // 根据userid查询t_s_user表中的关联用户信息
  1758. if (personnelBaseArchivesManageOutDto.getId() != null) {
  1759. TSUser tsUser = systemService.getEntity(TSUser.class, personnelBaseArchivesManageOutDto.getId());
  1760. // 手动写入未获取数据
  1761. list.getResults().get(i).setContacts(tsUser.getContacts());
  1762. list.getResults().get(i).setContactsPhone(tsUser.getContactsPhone());
  1763. list.getResults().get(i).setDeviceId(tsUser.getDeviceId());
  1764. list.getResults().get(i).setOutlook(tsUser.getOutlook());
  1765. if(StringUtil.isNotEmpty(tsUser.getAge())){
  1766. list.getResults().get(i).setAge(Integer.parseInt(tsUser.getAge()));
  1767. }else{
  1768. list.getResults().get(i).setAge(null);
  1769. }
  1770. }
  1771. }
  1772. List<PersonnelBaseArchivesManageOutDto> lp = new ArrayList<>();
  1773. for (PersonnelBaseArchivesManageOutDto li : list.getResults()) {
  1774. PersonnelBaseArchivesManageOutDto pdm = JSONObject.parseObject(JSONObject.toJSONString(li), PersonnelBaseArchivesManageOutDto.class);
  1775. lp.add(pdm);
  1776. }
  1777. ExcelWriter writer = ExcelUtil.getWriter();
  1778. writer.addHeaderAlias("userNum", "员工工号");
  1779. writer.addHeaderAlias("userName", "员工姓名");
  1780. writer.addHeaderAlias("gender", "性别");
  1781. writer.addHeaderAlias("nation", "民族");
  1782. writer.addHeaderAlias("mobilePhone", "手机号码");
  1783. writer.addHeaderAlias("officePhone", "座机号码");
  1784. writer.addHeaderAlias("contacts", "紧急联系人");
  1785. writer.addHeaderAlias("contactsPhone", "紧急联系人电");
  1786. writer.addHeaderAlias("idcard", "身份证号码");
  1787. writer.addHeaderAlias("birthday", "出生日期");
  1788. writer.addHeaderAlias("age", "年龄");
  1789. writer.addHeaderAlias("hkaddress", "户籍地址");
  1790. writer.addHeaderAlias("hktype", "户籍类别");
  1791. writer.addHeaderAlias("address", "居住地址");
  1792. writer.addHeaderAlias("departname", "所属部门");
  1793. writer.addHeaderAlias("dutiesId", "职务");
  1794. writer.addHeaderAlias("inPostid", "岗位");
  1795. writer.addHeaderAlias("deviceId", "设备编号");
  1796. writer.addHeaderAlias("outLook", "政治面貌");
  1797. writer.addHeaderAlias("education", "学历");
  1798. writer.addHeaderAlias("nature", "员工性质");
  1799. writer.addHeaderAlias("email", "邮箱");
  1800. writer.addHeaderAlias("employmentDate", "入职日期");
  1801. writer.addHeaderAlias("userType", "是否登录系统");
  1802. writer.merge(22, "人员档案");
  1803. writer.setOnlyAlias(true);
  1804. writer.write(lp, true);
  1805. response.setContentType("application/vnd.ms-excel;charset=utf-8");
  1806. String fileName = new String("美都员工档案".getBytes("UTF-8"), "ISO8859-1");;
  1807. response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
  1808. ServletOutputStream out = null;
  1809. try {
  1810. out = response.getOutputStream();
  1811. writer.flush(out, true);
  1812. } catch (IOException e) {
  1813. e.printStackTrace();
  1814. } finally {
  1815. writer.close();
  1816. }
  1817. IoUtil.close(out);
  1818. }
  1819. public static Map<?, ?> objectToMap(Object obj) {
  1820. if (obj == null)
  1821. return null;
  1822. return new org.apache.commons.beanutils.BeanMap(obj);
  1823. }
  1824. /**
  1825. * 导出excel 使模板
  1826. *
  1827. * @param request
  1828. * @param response
  1829. */
  1830. @RequestMapping(params = "exportXlsByT")
  1831. public String exportXlsByT(PersonnelBaseArchivesManageExportAndImportDto personnelBaseArchivesManageExportAndImportDto, HttpServletRequest request, HttpServletResponse response
  1832. , DataGrid dataGrid, ModelMap modelMap) {
  1833. modelMap.put(cn.afterturn.easypoi.entity.vo.NormalExcelConstants.FILE_NAME, "员工人事信息表");
  1834. modelMap.put(cn.afterturn.easypoi.entity.vo.NormalExcelConstants.CLASS, PersonnelBaseArchivesManageExportAndImportDto.class);
  1835. modelMap.put(cn.afterturn.easypoi.entity.vo.NormalExcelConstants.PARAMS, new cn.afterturn.easypoi.excel.entity.ExportParams("员工人事信息列表", "导出人:" + ResourceUtil.getSessionUser().getRealName(),
  1836. "导出信息"));
  1837. modelMap.put(cn.afterturn.easypoi.entity.vo.NormalExcelConstants.DATA_LIST, new ArrayList<>());
  1838. return cn.afterturn.easypoi.entity.vo.NormalExcelConstants.EASYPOI_EXCEL_VIEW;
  1839. }
  1840. /**
  1841. * 导入功能
  1842. *
  1843. * @param request
  1844. * @param response
  1845. * @return
  1846. * @author zbw
  1847. * 2017-12-13
  1848. */
  1849. @SuppressWarnings("unchecked")
  1850. // @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  1851. // @ResponseBody
  1852. // public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  1853. // AjaxJson j = new AjaxJson();
  1854. // try {
  1855. // long start = System.currentTimeMillis();
  1856. // j=personnelBaseArchivesManageExportAndImportService.importExcelPersonnelBaseArchivesManage(request, response);
  1857. // if(j.getAttributes()!=null){
  1858. // Map<String, Object> deleteMap=j.getAttributes();
  1859. // List<String> userNameList=new ArrayList<String>();
  1860. // for(java.util.Map.Entry<String, Object> entry :deleteMap.entrySet()){
  1861. //// System.out.println("键:"+ entry.getKey()+" 值:"+ entry.getValue());
  1862. // userNameList.add(entry.getKey());
  1863. // }
  1864. // if(userNameList.size()>0){
  1865. // personnelBaseArchivesManageExportAndImportService.deleteUserByUserName(userNameList);
  1866. // }
  1867. //
  1868. // }
  1869. // long end = System.currentTimeMillis();
  1870. // System.out.println(end-start);
  1871. // } catch (Exception e) {
  1872. // // TODO Auto-generated catch block
  1873. // e.printStackTrace();
  1874. // j.setMsg("导入失败");
  1875. // j.setSuccess(false);
  1876. // }
  1877. // return j;
  1878. // }
  1879. /**
  1880. * 导入功能
  1881. * @author zbw
  1882. * 2017-12-13
  1883. * @param request
  1884. * @param response
  1885. * @return
  1886. */
  1887. //@SuppressWarnings("unchecked")
  1888. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  1889. @ResponseBody
  1890. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  1891. AjaxJson j = new AjaxJson();
  1892. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  1893. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  1894. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  1895. MultipartFile file = entity.getValue();// 获取上传文件对象
  1896. cn.afterturn.easypoi.excel.entity.ImportParams params = new ImportParams();
  1897. params.setTitleRows(2);
  1898. params.setHeadRows(1);
  1899. params.setNeedSave(true);
  1900. Map<String,List<String>> errorInfoMap = new HashMap<>();
  1901. try {
  1902. List<PersonnelBaseArchivesManageExportAndImportDto> tsUserList = cn.afterturn.easypoi.excel.ExcelImportUtil.importExcel(file.getInputStream(), PersonnelBaseArchivesManageExportAndImportDto.class, params);
  1903. SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd");
  1904. TSTypegroup typegroup1 = systemService.getTypeGroup("outLook","政治面貌");
  1905. TSTypegroup typegroup2 = systemService.getTypeGroup("education","学历");
  1906. TSTypegroup typegroup3 = systemService.getTypeGroup("nature", "员工性质");
  1907. TSTypegroup typegroup4 = systemService.getTypeGroup("areaRegion", "所属网格区域");
  1908. List<TSType> typeList1 = new ArrayList<>();
  1909. List<TSType> typeList2 = new ArrayList<>();
  1910. List<TSType> typeList3 = new ArrayList<>();
  1911. List<TSType> typeList4 = new ArrayList<>();
  1912. if(typegroup1 != null){
  1913. typeList1 = typegroup1.getTSTypes();
  1914. if(typeList1 == null || typeList1.size() < 0){
  1915. errorInfo(errorInfoMap,"字典表查询失败","outLook");
  1916. }
  1917. }else{
  1918. errorInfo(errorInfoMap,"字典表查询失败","outLook");
  1919. }
  1920. if(typegroup2 != null){
  1921. typeList2 = typegroup2.getTSTypes();
  1922. if(typeList2 == null || typeList2.size() < 0){
  1923. errorInfo(errorInfoMap,"字典表查询失败","education");
  1924. }
  1925. }else{
  1926. errorInfo(errorInfoMap,"字典表查询失败","education");
  1927. }
  1928. if(typegroup3 != null){
  1929. typeList3 = typegroup3.getTSTypes();
  1930. if(typeList3 == null || typeList3.size() < 0){
  1931. errorInfo(errorInfoMap,"字典表查询失败","nature");
  1932. }
  1933. }else{
  1934. errorInfo(errorInfoMap,"字典表查询失败","nature");
  1935. }
  1936. if(typegroup4 != null){
  1937. typeList4 = typegroup4.getTSTypes();
  1938. if(typeList4 == null || typeList4.size() < 0){
  1939. errorInfo(errorInfoMap,"字典表查询失败","areaRegion");
  1940. }
  1941. }else{
  1942. errorInfo(errorInfoMap,"字典表查询失败","areaRegion");
  1943. }
  1944. for (PersonnelBaseArchivesManageExportAndImportDto dao : tsUserList) {
  1945. TSUser tsUser1 = new TSUser();
  1946. tsUser1.setUserNum(dao.getUserNum());
  1947. tsUser1.setUserName(dao.getRealName());
  1948. tsUser1.setRealName(dao.getRealName());
  1949. if (StringUtil.isEmpty(dao.getGender()) || dao.getGender().contains("男") || "0".equals(dao.getGender())) {
  1950. tsUser1.setGender("0");
  1951. } else {
  1952. tsUser1.setGender("1");
  1953. }
  1954. tsUser1.setNation(dao.getNation());
  1955. tsUser1.setIdcard(dao.getIdcard());
  1956. if(dao.getIdcard().length() > 14){
  1957. Date toDate = new Date();
  1958. String toDateStr = dao.getIdcard().substring(6,10) + "-" + dao.getIdcard().substring(10,12) + "-" + dao.getIdcard().substring(12,14);
  1959. try {
  1960. toDate = sdf.parse(toDateStr);
  1961. tsUser1.setBirthday(toDate);
  1962. Calendar c1 = Calendar.getInstance();
  1963. Calendar c2 = Calendar.getInstance();
  1964. c1.setTime(toDate);
  1965. c2.setTime(new Date());
  1966. tsUser1.setAge(String.valueOf(c2.get(Calendar.YEAR) - c1.get(Calendar.YEAR)));
  1967. } catch (ParseException e) {
  1968. System.out.println(e.getMessage());
  1969. }
  1970. }
  1971. tsUser1.setMobilePhone(dao.getMobilePhone());
  1972. tsUser1.setOfficePhone(dao.getOfficePhone());
  1973. tsUser1.setAddress(dao.getAddress());
  1974. tsUser1.setEmail(dao.getEmail());
  1975. tsUser1.setDeviceId(dao.getDeviceId());
  1976. tsUser1.setHkaddress(dao.getHkaddress());
  1977. tsUser1.setHktype(dao.getHktype());
  1978. tsUser1.setEmploymentDate(dao.getEmploymentDate());
  1979. tsUser1.setDevFlag("0");
  1980. tsUser1.setDingIsSynchronization("0");
  1981. if(StringUtil.isNotEmpty(dao.getUserType()) && (dao.getUserType().contains("是") || "0".equals(dao.getUserType()))){
  1982. tsUser1.setUserType("0");
  1983. }else{
  1984. tsUser1.setUserType("1");
  1985. }
  1986. // 获取民族信息
  1987. StringBuilder nationSql = new StringBuilder();
  1988. nationSql.append(" SELECT ");
  1989. nationSql.append(" tp.id id,tp.typecode code,tp.typename name ");
  1990. nationSql.append(" FROM t_s_type tp ");
  1991. nationSql.append(" LEFT JOIN t_s_typegroup tpg ON tp.typegroupid = tpg.id ");
  1992. nationSql.append(" WHERE ");
  1993. nationSql.append(" tpg.typegroupcode = 'nation' ");
  1994. nationSql.append(" and tp.typename = '" + dao.getNation() + "' ");
  1995. List<Map<String, Object>> nationMapList = systemService.findForJdbc(nationSql.toString());
  1996. if (nationMapList != null && nationMapList.size() == 1) {
  1997. tsUser1.setNation(nationMapList.get(0).get("code").toString());
  1998. }
  1999. //部门 orgIds
  2000. try {
  2001. TSDepart depart = systemService.findUniqueByProperty(TSDepart.class, "departname", dao.getSysOrgCode());
  2002. if(depart == null || depart.getId() == null){
  2003. errorInfo(errorInfoMap,"部门查询失败",dao.getSysOrgCode());
  2004. }else{
  2005. tsUser1.setOrgIds(depart.getId());
  2006. }
  2007. } catch (Exception e) {
  2008. errorInfo(errorInfoMap,"部门查询失败",dao.getSysOrgCode());
  2009. log.error("部门查询失败!"+dao.getSysOrgCode());
  2010. }
  2011. //职务
  2012. try {
  2013. DutiesEntity dutiesEntity = systemService.findUniqueByProperty(DutiesEntity.class, "dutiesName", dao.getBelongDutiesName());
  2014. if(dutiesEntity == null || dutiesEntity.getId() == null){
  2015. errorInfo(errorInfoMap,"职务未找到",dao.getBelongDutiesName());
  2016. }else{
  2017. tsUser1.setDutiesId(dutiesEntity.getId());
  2018. }
  2019. } catch (Exception e) {
  2020. errorInfo(errorInfoMap,"职务未找到",dao.getBelongDutiesName());
  2021. log.error("职务未找到!"+dao.getBelongDutiesName());
  2022. }
  2023. //岗位
  2024. try {
  2025. PostEntity postEntity = systemService.findUniqueByProperty(PostEntity.class, "postName", dao.getInPostName());
  2026. if(postEntity == null || postEntity.getId() == null){
  2027. errorInfo(errorInfoMap,"岗位未找到",dao.getInPostName());
  2028. }else{
  2029. tsUser1.setPostId(postEntity.getId());
  2030. }
  2031. } catch (Exception e) {
  2032. errorInfo(errorInfoMap,"岗位未找到",dao.getInPostName());
  2033. log.error("岗位未找到!"+dao.getInPostName());
  2034. }
  2035. //政治面貌
  2036. try {
  2037. if(StringUtil.isNotEmpty(dao.getOutlook()) && typeList1.size() > 0){
  2038. for (TSType tsType:typeList1){
  2039. if(tsType.getTypename().equals(dao.getOutlook())){
  2040. tsUser1.setOutlook(tsType.getTypecode());
  2041. }
  2042. }
  2043. if(tsUser1.getOutlook() == null){
  2044. errorInfo(errorInfoMap,"政治面貌未找到",dao.getOutlook());
  2045. }
  2046. }
  2047. } catch (Exception e) {
  2048. errorInfo(errorInfoMap,"政治面貌未找到",dao.getOutlook());
  2049. log.error("政治面貌未找到!"+dao.getOutlook());
  2050. }
  2051. //学历
  2052. try {
  2053. if(StringUtil.isNotEmpty(dao.getEducation()) && typeList2.size() > 0){
  2054. for (TSType tsType:typeList2){
  2055. if(tsType.getTypename().equals(dao.getEducation())){
  2056. tsUser1.setEducation(tsType.getTypecode());
  2057. }
  2058. }
  2059. if(tsUser1.getEducation() == null){
  2060. errorInfo(errorInfoMap,"学历未找到",dao.getEducation());
  2061. }
  2062. }
  2063. } catch (Exception e) {
  2064. errorInfo(errorInfoMap,"学历未找到",dao.getEducation());
  2065. log.error("学历未找到!"+dao.getEducation());
  2066. }
  2067. //员工性质
  2068. try {
  2069. if(StringUtil.isNotEmpty(dao.getNature()) && typeList3.size() > 0){
  2070. for (TSType tsType:typeList3){
  2071. if(tsType.getTypename().equals(dao.getNature())){
  2072. tsUser1.setNature(tsType.getTypecode());
  2073. }
  2074. }
  2075. if(tsUser1.getNature() == null){
  2076. errorInfo(errorInfoMap,"员工性质未找到",dao.getNature());
  2077. }
  2078. }
  2079. } catch (Exception e) {
  2080. errorInfo(errorInfoMap,"员工性质未找到",dao.getNature());
  2081. log.error("员工性质未找到!"+dao.getNature());
  2082. }
  2083. // 所属网格区域
  2084. try {
  2085. if(StringUtil.isNotEmpty(dao.getBelongRegion()) && typeList4.size() > 0){
  2086. for (TSType tsType:typeList4){
  2087. if(tsType.getTypename().equals(dao.getBelongRegion())){
  2088. tsUser1.setAreaRegion(tsType.getTypecode());
  2089. }
  2090. }
  2091. if(tsUser1.getAreaRegion() == null){
  2092. errorInfo(errorInfoMap,"所属网格区域未找到",dao.getBelongRegion());
  2093. }
  2094. }
  2095. } catch (Exception e) {
  2096. errorInfo(errorInfoMap,"所属网格区域未找到",dao.getBelongRegion());
  2097. log.error("所属网格区域未找到!"+dao.getBelongRegion());
  2098. }
  2099. AjaxJson ajaxJson = saveUser(request, tsUser1);
  2100. if (!ajaxJson.isSuccess()) {
  2101. return ajaxJson;
  2102. }
  2103. }
  2104. if(errorInfoMap.size() > 0){
  2105. j.setMsg("文件导入成功!部分数据对照失败:"+errorInfoMap+",请手动修改!");
  2106. }else{
  2107. j.setMsg("文件导入成功!");
  2108. }
  2109. } catch (Exception e) {
  2110. j.setMsg("文件导入成功!部分数据对照失败:"+errorInfoMap+",请手动修改!");
  2111. logger.error(ExceptionUtil.getExceptionMessage(e));
  2112. } finally {
  2113. try {
  2114. file.getInputStream().close();
  2115. } catch (IOException e) {
  2116. e.printStackTrace();
  2117. }
  2118. }
  2119. }
  2120. return j;
  2121. }
  2122. private void errorInfo(Map<String,List<String>> errorMap,String MKey,String EValue){
  2123. if(errorMap.containsKey(MKey)){
  2124. errorMap.get(MKey).add(EValue);
  2125. }else{
  2126. List<String> errorInfoList = new ArrayList<>();
  2127. errorInfoList.add(EValue);
  2128. errorMap.put(MKey,errorInfoList);
  2129. }
  2130. }
  2131. @RequestMapping(method = RequestMethod.GET)
  2132. @ResponseBody
  2133. public List<PersonnelBaseArchivesManageEntity> list() {
  2134. List<PersonnelBaseArchivesManageEntity> listPersonnelBaseArchivesManages = personnelBaseArchivesManageService.getList(PersonnelBaseArchivesManageEntity.class);
  2135. return listPersonnelBaseArchivesManages;
  2136. }
  2137. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  2138. @ResponseBody
  2139. public ResponseEntity<?> get(@PathVariable("id") String id) {
  2140. PersonnelBaseArchivesManageEntity task = personnelBaseArchivesManageService.get(PersonnelBaseArchivesManageEntity.class, id);
  2141. if (task == null) {
  2142. return new ResponseEntity(HttpStatus.NOT_FOUND);
  2143. }
  2144. return new ResponseEntity(task, HttpStatus.OK);
  2145. }
  2146. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  2147. @ResponseBody
  2148. public ResponseEntity<?> create(@RequestBody PersonnelBaseArchivesManageEntity personnelBaseArchivesManage, UriComponentsBuilder uriBuilder) {
  2149. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  2150. Set<ConstraintViolation<PersonnelBaseArchivesManageEntity>> failures = validator.validate(personnelBaseArchivesManage);
  2151. if (!failures.isEmpty()) {
  2152. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  2153. }
  2154. //保存
  2155. try {
  2156. personnelBaseArchivesManageService.save(personnelBaseArchivesManage);
  2157. } catch (Exception e) {
  2158. e.printStackTrace();
  2159. return new ResponseEntity(HttpStatus.NO_CONTENT);
  2160. }
  2161. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  2162. String id = personnelBaseArchivesManage.getId();
  2163. URI uri = uriBuilder.path("/rest/personnelBaseArchivesManageController/" + id).build().toUri();
  2164. HttpHeaders headers = new HttpHeaders();
  2165. headers.setLocation(uri);
  2166. return new ResponseEntity(headers, HttpStatus.CREATED);
  2167. }
  2168. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  2169. public ResponseEntity<?> update(@RequestBody PersonnelBaseArchivesManageEntity personnelBaseArchivesManage) {
  2170. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  2171. Set<ConstraintViolation<PersonnelBaseArchivesManageEntity>> failures = validator.validate(personnelBaseArchivesManage);
  2172. if (!failures.isEmpty()) {
  2173. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  2174. }
  2175. //保存
  2176. try {
  2177. personnelBaseArchivesManageService.saveOrUpdate(personnelBaseArchivesManage);
  2178. } catch (Exception e) {
  2179. e.printStackTrace();
  2180. return new ResponseEntity(HttpStatus.NO_CONTENT);
  2181. }
  2182. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  2183. return new ResponseEntity(HttpStatus.NO_CONTENT);
  2184. }
  2185. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  2186. @ResponseStatus(HttpStatus.NO_CONTENT)
  2187. public void delete(@PathVariable("id") String id) {
  2188. personnelBaseArchivesManageService.deleteEntityById(PersonnelBaseArchivesManageEntity.class, id);
  2189. }
  2190. /**
  2191. * 处理消息到期提醒逻辑
  2192. *
  2193. * @return
  2194. */
  2195. // http://192.168.100.117:8080/hgl/personnelBaseArchivesManageController/dealMessageExpirationAlert.do
  2196. @RequestMapping(params = "dealMessageExpirationAlert")
  2197. @ResponseBody
  2198. public String dealMessageExpirationAlert() {
  2199. try {
  2200. personnelBaseArchivesManageService.dealMessageExpirationAlert();
  2201. } catch (Exception e) {
  2202. // TODO Auto-generated catch block
  2203. e.printStackTrace();
  2204. }
  2205. return "操作成功";
  2206. }
  2207. /**
  2208. * 员工照片批量上传
  2209. * 证书批量上传
  2210. * 附件追加批量上传
  2211. * 文件管理表列表 页面跳转
  2212. *
  2213. * @return
  2214. */
  2215. @RequestMapping(params = "batchUploadFile")
  2216. public ModelAndView batchUploadFile(TSysFileDto tSysFileDto, HttpServletRequest request, HttpServletRequest req, WebUploadEntity webUpload) {
  2217. if (null == webUpload) {
  2218. webUpload = new WebUploadEntity();
  2219. }
  2220. if (tSysFileDto.getTagetType() != null && tSysFileDto.getTagetType().length() != 0) {
  2221. if (tSysFileDto.getTagetType().equals(Globals.taget_type_0)) {
  2222. webUpload.setBusiTable("t_s_base_user");
  2223. webUpload.setBizType(Globals.taget_type_0);
  2224. webUpload.setRemark("员工照片批量上传");
  2225. webUpload.setExtensions("jpg,png");
  2226. webUpload.setBusiId(Globals.busi_id_batch);
  2227. } else if (tSysFileDto.getTagetType().equals(Globals.taget_type_1)) {
  2228. webUpload.setBusiTable("t_bus_user_certificate");
  2229. webUpload.setBizType(Globals.taget_type_1);
  2230. webUpload.setRemark("员工证书批量上传");
  2231. webUpload.setExtensions("jpg,png,pdf,doc,docx,xls,xlsx");
  2232. webUpload.setBusiId(Globals.busi_id_batch);
  2233. } else if (tSysFileDto.getTagetType().equals(Globals.taget_type_2)) {
  2234. webUpload.setBusiTable("t_bus_accessory");
  2235. webUpload.setBizType(Globals.taget_type_2);
  2236. webUpload.setRemark("员工附件追加批量上传");
  2237. webUpload.setExtensions("jpg,png,pdf,doc,docx,xls,xlsx");
  2238. webUpload.setBusiId(Globals.busi_id_batch);
  2239. }
  2240. req.setAttribute("tagetType", tSysFileDto.getTagetType());
  2241. } else {
  2242. webUpload.setBusiTable("t_s_base_user");
  2243. webUpload.setBizType(Globals.taget_type_0);
  2244. webUpload.setRemark("员工照片批量上传");
  2245. webUpload.setExtensions("jpg,png");
  2246. webUpload.setBusiId(Globals.busi_id_batch);
  2247. req.setAttribute("tagetType", Globals.taget_type_0);
  2248. }
  2249. String curUserName = ResourceUtil.getSessionUser().getUserName();
  2250. req.setAttribute("curUserName", curUserName);
  2251. req.setAttribute("webUpload", webUpload);
  2252. req.setAttribute("showAndDownUrl", showAndDownUrl);
  2253. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/batchUploadFile/tSysUploadFileList");
  2254. }
  2255. /**
  2256. * 证书批量上传
  2257. * 文件管理表列表 页面跳转
  2258. *
  2259. * @return
  2260. */
  2261. /*@RequestMapping(params = "batchUploadFileCertificate")
  2262. public ModelAndView batchUploadFileCertificate(HttpServletRequest request, HttpServletRequest req,WebUploadEntity webUpload) {
  2263. if (null == webUpload) {
  2264. webUpload = new WebUploadEntity();
  2265. }
  2266. String curUserName = ResourceUtil.getSessionUser().getUserName();
  2267. req.setAttribute("curUserName", curUserName);
  2268. req.setAttribute("webUpload", webUpload);
  2269. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/batchUploadFile/tSysFileCertificateList");
  2270. }*/
  2271. /**
  2272. * 附件追加批量上传
  2273. * 文件管理表列表 页面跳转
  2274. *
  2275. * @return
  2276. */
  2277. /*@RequestMapping(params = "batchUploadFileAccessory")
  2278. public ModelAndView batchUploadFileAccessory(HttpServletRequest request, HttpServletRequest req,WebUploadEntity webUpload) {
  2279. if (null == webUpload) {
  2280. webUpload = new WebUploadEntity();
  2281. }
  2282. String curUserName = ResourceUtil.getSessionUser().getUserName();
  2283. req.setAttribute("curUserName", curUserName);
  2284. req.setAttribute("webUpload", webUpload);
  2285. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/batchUploadFile/tSysFileAccessoryList");
  2286. }*/
  2287. /**
  2288. * 员工照片查询
  2289. * 证书查询
  2290. * 附件追加查询
  2291. * easyui AJAX请求数据
  2292. *
  2293. * @param request
  2294. * @param response
  2295. * @param dataGrid
  2296. */
  2297. @RequestMapping(params = "batchUploadFileList")
  2298. public void batchUploadFileList(TSysFileDto tSysFileDto, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  2299. /*CriteriaQuery cq = new CriteriaQuery(TSysFileEntity.class, dataGrid);
  2300. //查询条件组装器
  2301. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, tSysFile, request.getParameterMap());
  2302. try{
  2303. //自定义追加查询条件
  2304. //查询文件名称
  2305. cq.like("fileName", tSysFile.getFileName());
  2306. if(tSysFile.getTagetType()!=null){
  2307. cq.eq("tagetType", tSysFile.getTagetType());
  2308. }else{
  2309. cq.eq("tagetType", "userPhoto");
  2310. }
  2311. //排序
  2312. Map<String, Object> map = new HashMap<String, Object>();
  2313. map.put("createDate", "desc");
  2314. cq.setOrder(map);
  2315. }catch (Exception e) {
  2316. throw new BusinessException(e.getMessage());
  2317. }
  2318. cq.add();
  2319. this.personnelBaseArchivesManageService.getDataGridReturn(cq, true);
  2320. TagUtil.datagrid(response, dataGrid);*/
  2321. if (tSysFileDto.getTagetType() == null) {
  2322. tSysFileDto.setTagetType("userPhoto");
  2323. }
  2324. MiniDaoPage<TSysFileDto> tSysFileDtoList = null;
  2325. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  2326. try {
  2327. tSysFileDtoList = personnelBaseArchivesManageExportAndImportService.getTSysFileDtoPage(tSysFileDto, dataGrid.getPage(), dataGrid.getRows(), authSql);
  2328. } catch (Exception e) {
  2329. // TODO Auto-generated catch block
  2330. e.printStackTrace();
  2331. }
  2332. for (int i = 0; i < tSysFileDtoList.getResults().size(); i++) {
  2333. // TSysFileEntity tSysFileEntity = (TSysFileEntity) tSysFileDtoList.getResults();
  2334. String fileName = tSysFileDtoList.getResults().get(i).getFileName();
  2335. String fileType = fileName.substring(fileName.lastIndexOf(".") + 1);
  2336. if ("jpg".equals(fileType) || "png".equals(fileType) || "pdf".equals(fileType)) {
  2337. // tSysFileEntity.setIsPreviewFlg("1");
  2338. tSysFileDtoList.getResults().get(i).setIsPreviewFlg("1");
  2339. } else {
  2340. // tSysFileEntity.setIsPreviewFlg("0");
  2341. tSysFileDtoList.getResults().get(i).setIsPreviewFlg("0");
  2342. }
  2343. }
  2344. dataGrid.setTotal(tSysFileDtoList.getTotal());
  2345. dataGrid.setResults(tSysFileDtoList.getResults());
  2346. TagUtil.datagrid(response, dataGrid);
  2347. }
  2348. /**
  2349. * 证书查询
  2350. * easyui AJAX请求数据
  2351. *
  2352. * @param request
  2353. * @param response
  2354. * @param dataGrid
  2355. * @param user
  2356. */
  2357. /*@RequestMapping(params = "batchUploadFileCertificateList")
  2358. public void batchUploadFileCertificateList(TSysFileEntity tSysFile,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  2359. CriteriaQuery cq = new CriteriaQuery(TSysFileEntity.class, dataGrid);
  2360. //查询条件组装器
  2361. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, tSysFile, request.getParameterMap());
  2362. try{
  2363. //自定义追加查询条件
  2364. //查询文件名称
  2365. cq.like("fileName", tSysFile.getFileName());
  2366. cq.eq("tagetType", "userCertificate");
  2367. //排序
  2368. Map<String, Object> map = new HashMap<String, Object>();
  2369. map.put("createDate", "desc");
  2370. cq.setOrder(map);
  2371. }catch (Exception e) {
  2372. throw new BusinessException(e.getMessage());
  2373. }
  2374. cq.add();
  2375. this.personnelBaseArchivesManageService.getDataGridReturn(cq, true);
  2376. TagUtil.datagrid(response, dataGrid);
  2377. }*/
  2378. /**
  2379. * 附件追加查询
  2380. * easyui AJAX请求数据
  2381. *
  2382. * @param request
  2383. * @param response
  2384. * @param dataGrid
  2385. * @param user
  2386. */
  2387. /*@RequestMapping(params = "batchUploadFileAccessoryList")
  2388. public void batchUploadFileAccessoryList(TSysFileEntity tSysFile,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  2389. CriteriaQuery cq = new CriteriaQuery(TSysFileEntity.class, dataGrid);
  2390. //查询条件组装器
  2391. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, tSysFile, request.getParameterMap());
  2392. try{
  2393. //自定义追加查询条件
  2394. //查询文件名称
  2395. cq.like("fileName", tSysFile.getFileName());
  2396. cq.eq("tagetType", "userAccessory");
  2397. //排序
  2398. Map<String, Object> map = new HashMap<String, Object>();
  2399. map.put("createDate", "desc");
  2400. cq.setOrder(map);
  2401. }catch (Exception e) {
  2402. throw new BusinessException(e.getMessage());
  2403. }
  2404. cq.add();
  2405. this.personnelBaseArchivesManageService.getDataGridReturn(cq, true);
  2406. TagUtil.datagrid(response, dataGrid);
  2407. }*/
  2408. //-----------------------------------------------------------------------------------------------------------
  2409. /**
  2410. * 弹出新建员工页面
  2411. *
  2412. * @param req
  2413. * @return
  2414. */
  2415. @RequestMapping(params = "addorupdate")
  2416. public ModelAndView addorupdate(TSUser userInfo, HttpServletRequest req) {
  2417. if (StringUtil.isNotEmpty(userInfo.getId())) {
  2418. userInfo = systemService.getEntity(TSUser.class, userInfo.getId());
  2419. this.idandname(req, userInfo);
  2420. this.getOrgInfos(req, userInfo);
  2421. this.getDutiesInfos(req, userInfo);
  2422. req.setAttribute("userInfo", userInfo);
  2423. // this.getJzOrgInfos(req, userInfo);
  2424. if (req.getParameter("isCheck") != null) {
  2425. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/userInfo-check");
  2426. }
  2427. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/userInfo-update");
  2428. }
  2429. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/userInfo-add");
  2430. }
  2431. /**
  2432. * 查看 页面跳转
  2433. *
  2434. * @return
  2435. */
  2436. @RequestMapping(params = "checkMan")
  2437. public ModelAndView checkMan(String id, HttpServletRequest request) {
  2438. request.setAttribute("id", id);
  2439. String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  2440. if (oConvertUtils.isNotEmpty(queryParams)) {
  2441. request.setAttribute("queryParams", queryParams);
  2442. }
  2443. return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/userInfo-check");
  2444. }
  2445. public void idandname(HttpServletRequest req, TSUser user) {
  2446. List<TSRoleUser> roleUsers = systemService.findByProperty(TSRoleUser.class, "TSUser.id", user.getId());
  2447. String roleId = "";
  2448. String roleName = "";
  2449. if (roleUsers.size() > 0) {
  2450. for (TSRoleUser tRoleUser : roleUsers) {
  2451. roleId += tRoleUser.getTSRole().getId() + ",";
  2452. roleName += tRoleUser.getTSRole().getRoleName() + ",";
  2453. }
  2454. }
  2455. req.setAttribute("id", roleId);
  2456. req.setAttribute("roleName", roleName);
  2457. }
  2458. public void getOrgInfos(HttpServletRequest req, TSUser user) {
  2459. // List<TSUserOrg> tSUserOrgs = systemService.findByProperty(TSUserOrg.class, "tsUser.id", user.getId());
  2460. // 查询项目经理的所属机构 by zhijia.wang
  2461. List<TSUserOrg> tSUserOrgs = new ArrayList<TSUserOrg>();
  2462. List<TSUserOrg> normalList = systemService.findHql(
  2463. "from TSUserOrg where tsUser=? and ifpluralism=? and status=? order by intime desc", user, Globals.PLURALISM_NO.toString(), Globals.BELONG_STATUS_NORMAL.toString());
  2464. if (normalList != null && normalList.size() > 0) {
  2465. tSUserOrgs.addAll(normalList);
  2466. } else {
  2467. List<TSUserOrg> moveList = systemService.findHql("from TSUserOrg where tsUser=? and ifpluralism=? order by intime desc", user, Globals.PLURALISM_NO.toString());
  2468. if (moveList != null && moveList.size() > 0) {
  2469. tSUserOrgs.add(moveList.get(0));
  2470. }
  2471. }
  2472. String orgIds = "";
  2473. String departname = "";
  2474. if (tSUserOrgs.size() > 0) {
  2475. for (TSUserOrg tSUserOrg : tSUserOrgs) {
  2476. orgIds += tSUserOrg.getTsDepart().getId() + ",";
  2477. if (tSUserOrg.getTsDepart().getDepartname().equals(tSUserOrg.getTsDepart().getGlcName())) {
  2478. departname += tSUserOrg.getTsDepart().getDepartname() + ",";
  2479. } else {
  2480. departname += tSUserOrg.getTsDepart().getGlcName() + "-" + tSUserOrg.getTsDepart().getDepartname() + ",";
  2481. }
  2482. }
  2483. }
  2484. req.setAttribute("orgIds", orgIds);
  2485. if (StringUtil.isNotEmpty(departname)) {
  2486. departname = departname.substring(0, departname.length() - 1);
  2487. }
  2488. req.setAttribute("departname", departname);
  2489. }
  2490. public void getDutiesInfos(HttpServletRequest req, TSUser user) {
  2491. // List<TSUserOrg> tSUserOrgs = systemService.findByProperty(TSUserOrg.class, "tsUser.id", user.getId());
  2492. // 查询项目经理的兼容机构 by zhijia.wang
  2493. List<PersonnelBaseArchivesManageEntity> pamList = systemService.findHql(
  2494. "from PersonnelBaseArchivesManageEntity where userid=? ", user.getId());
  2495. if (pamList.size() > 0) {
  2496. try {
  2497. user.setDutiesId(pamList.get(0).getBelongDutiesid());
  2498. user.setPostId(pamList.get(0).getInPostid());
  2499. DutiesEntity dutiesEntity = systemService.get(DutiesEntity.class, user.getDutiesId());
  2500. req.setAttribute("dutiesName", dutiesEntity.getDutiesName());
  2501. ZTreePostEntity zTreePostEntity = systemService.get(ZTreePostEntity.class, user.getPostId());
  2502. req.setAttribute("postName", zTreePostEntity.getPostName());
  2503. } catch (Exception e) {
  2504. }
  2505. }
  2506. }
  2507. public void getJzOrgInfos(HttpServletRequest req, TSUser user) {
  2508. // List<TSUserOrg> tSUserOrgs = systemService.findByProperty(TSUserOrg.class, "tsUser.id", user.getId());
  2509. // 查询项目经理的兼容机构 by zhijia.wang
  2510. List<TSUserOrg> tSUserOrgs = systemService.findHql(
  2511. "from TSUserOrg where tsUser=? and ifpluralism=? and status=? ", user, Globals.PLURALISM_YES.toString(), Globals.BELONG_STATUS_NORMAL.toString());
  2512. String jzorgIds = "";
  2513. String jzdepartname = "";
  2514. if (tSUserOrgs.size() > 0) {
  2515. for (TSUserOrg tSUserOrg : tSUserOrgs) {
  2516. jzorgIds += tSUserOrg.getTsDepart().getId() + ",";
  2517. if (tSUserOrg.getTsDepart().getDepartname().equals(tSUserOrg.getTsDepart().getGlcName())) {
  2518. jzdepartname += tSUserOrg.getTsDepart().getDepartname() + ",";
  2519. } else {
  2520. jzdepartname += tSUserOrg.getTsDepart().getGlcName() + "-" + tSUserOrg.getTsDepart().getDepartname() + ",";
  2521. }
  2522. }
  2523. }
  2524. req.setAttribute("jzorgIds", jzorgIds);
  2525. if (StringUtil.isNotEmpty(jzdepartname)) {
  2526. jzdepartname = jzdepartname.substring(0, jzdepartname.length() - 1);
  2527. }
  2528. req.setAttribute("jzdepartname", jzdepartname);
  2529. }
  2530. /**
  2531. * 新建员工基本信息
  2532. *
  2533. * @param user
  2534. * @param req
  2535. * @return
  2536. */
  2537. @RequestMapping(params = "saveUser")
  2538. @ResponseBody
  2539. public AjaxJson saveUser(HttpServletRequest req, TSUser user) {
  2540. String message = null;
  2541. String orgIds = oConvertUtils.getString(req.getParameter("orgIds"));//兼职机构ID数组
  2542. if (StringUtil.isEmpty(orgIds)) {
  2543. orgIds = user.getOrgIds();
  2544. }
  2545. AjaxJson j = new AjaxJson();
  2546. // if(true) return null;
  2547. // String roleid = oConvertUtils.getString(req.getParameter("roleid"));
  2548. // String yxyg_roleid = null;// 一线员工的角色ID
  2549. // List<TSRole> yxyg_roleList = systemService.findByProperty(TSRole.class, "roleCode", Globals.roleCode_yxyg);
  2550. // if(yxyg_roleList != null && yxyg_roleList.size() > 0){
  2551. // yxyg_roleid = yxyg_roleList.get(0).getId();// 一线员工的角色ID
  2552. // }
  2553. //
  2554. // String roleid = null;
  2555. // if(Globals.userType_1.equals(user.getUserType())){
  2556. // roleid = yxyg_roleid;
  2557. // }
  2558. // 得到默认密码
  2559. String password = ResourceUtil.getConfigByName("defaultPassword");
  2560. TSUser users = null;
  2561. try {
  2562. users = systemService.findUniqueByProperty(TSUser.class, "userNum", user.getUserNum());
  2563. } catch (Exception e) {
  2564. message = "员工号: " + user.getUserNum() + "已经存在";
  2565. j.setMsg(message);
  2566. j.setSuccess(false);
  2567. return j;
  2568. }
  2569. if (users != null) {
  2570. message = "员工号: " + user.getUserNum() + "已经存在";
  2571. j.setMsg(message);
  2572. j.setSuccess(false);
  2573. return j;
  2574. }
  2575. // 获取用户信息
  2576. StringBuilder suserSql = new StringBuilder();
  2577. suserSql.append(" SELECT ");
  2578. suserSql.append(" id ");
  2579. suserSql.append(" FROM t_s_base_user ");
  2580. suserSql.append(" WHERE ");
  2581. suserSql.append(" username = '" + user.getMobilePhone() + "' ");
  2582. suserSql.append(" AND delete_flag <> '1'");
  2583. List<Map<String, Object>> suserMapList = systemService.findForJdbc(suserSql.toString());
  2584. StringBuilder suserSqlidcard = new StringBuilder();
  2585. suserSqlidcard.append(" SELECT ");
  2586. suserSqlidcard.append(" suser.id ");
  2587. suserSqlidcard.append(" FROM t_s_user suser ");
  2588. suserSqlidcard.append(" LEFT JOIN t_s_base_user sbaseuser ON suser.id = sbaseuser.id ");
  2589. suserSqlidcard.append(" WHERE ");
  2590. suserSqlidcard.append(" suser.idcard = '" + user.getIdcard() + "' ");
  2591. suserSqlidcard.append(" AND sbaseuser.delete_flag <> '1' ");
  2592. List<Map<String, Object>> suserMapListidcard = systemService.findForJdbc(suserSqlidcard.toString());
  2593. if (suserMapListidcard.size() > 0) {
  2594. message = "身份证号已经存在,请核对后输入。";
  2595. j.setSuccess(false);
  2596. j.setMsg(message);
  2597. return j;
  2598. }
  2599. if (suserMapList.size() > 0) {
  2600. message = "员工手机号: " + user.getMobilePhone() + "已经存在.";//,无法同步考勤机。请尝试其它手机号码,或寻求信息部支持。
  2601. j.setSuccess(false);
  2602. } else {
  2603. // 加盐
  2604. //user.setPassword(PasswordUtil.encrypt(user.getUserName(), password, PasswordUtil.getStaticSalt()));
  2605. // 去掉空格
  2606. if (user.getRealName() != null) {
  2607. String trim = user.getRealName().replaceAll(" ", "");
  2608. user.setRealName(trim);
  2609. }
  2610. if (user.getIdcard() != null) {
  2611. String up = user.getIdcard().toUpperCase();
  2612. user.setIdcard(up);
  2613. }
  2614. user.setUserName(user.getMobilePhone());
  2615. user.setPassword(PasswordEncodeUtil.getMD5(password));
  2616. user.setStatus(Globals.User_Normal);
  2617. user.setDeleteFlag(Globals.Delete_Normal);
  2618. user.setDingIsSynchronization(Globals.DingIsSynchronization_NO.toString());//是否同步到钉钉:0不同步
  2619. //systemService.save(user);
  2620. String[] departId = orgIds.split(",");
  2621. user.setDepartid(departId[0]);
  2622. userService.saveOrUpdateUser(user);
  2623. // 保存1个组织机构
  2624. String msg = saveUserOrgList(req, user);
  2625. if (msg != null && !"".equals(msg.trim())) {
  2626. j.setMsg(msg);
  2627. j.setSuccess(false);
  2628. return j;
  2629. }
  2630. message = "员工: " + user.getUserName() + "基本信息添加成功";
  2631. j.setSuccess(true);
  2632. //保存岗位 职责
  2633. doAddDutiesAndPostName(user, req);
  2634. // if (StringUtil.isNotEmpty(roleid)) {
  2635. // saveRoleUser(user, roleid);
  2636. // }
  2637. List<String> orgIdList = extractIdListByComma(orgIds);
  2638. TSDepart depart = departService.getEntity(TSDepart.class, orgIdList.get(0));
  2639. if (StringUtil.isNotEmpty(depart.getDingdepartid())) {
  2640. List<Long> departIdList = new ArrayList<Long>();
  2641. departIdList.add(Long.valueOf(depart.getDingdepartid()));
  2642. // CorpUserDetail corpUserDetail = dingdingService.getUser(user.getId());
  2643. // boolean dingFlg = false;
  2644. // if(StringUtil.isNotEmpty(corpUserDetail.getUserid())) {
  2645. // dingFlg = dingdingService.updateUser(user.getId(), user.getRealName(), departIdList,user.getMobilePhone(), user.getUserName());
  2646. // } else {
  2647. // dingFlg = dingdingService.createUser(user.getId(), user.getRealName(), departIdList,user.getMobilePhone(), user.getUserName());
  2648. // }
  2649. // if(dingFlg) {
  2650. // message = "数据保存成功,钉钉同步成功!";
  2651. // user.setDingIsSynchronization(Globals.DingIsSynchronization_YES.toString());
  2652. // }else{
  2653. // message = "数据保存成功,钉钉同步失败!";
  2654. // user.setDingIsSynchronization(Globals.DingIsSynchronization_NO.toString());
  2655. // }
  2656. } else {
  2657. message = "数据保存成功,所属部门没有同步到钉钉,同步失败!";
  2658. }
  2659. systemService.saveOrUpdate(user);
  2660. // try {
  2661. // //处理附件追加用户默认固定附件类型
  2662. // personnelBaseArchivesManageService.dealAccessoryIsFixedDefault(user.getId());
  2663. // } catch (Exception e) {
  2664. // // TODO Auto-generated catch block
  2665. // e.printStackTrace();
  2666. // }
  2667. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  2668. // 保存职务和岗位
  2669. }
  2670. j.setMsg(message);
  2671. logger.info("[" + IpUtil.getIpAddr(req) + "][添加编辑员工]" + message);
  2672. return j;
  2673. }
  2674. /**
  2675. * 编辑员工基本信息
  2676. *
  2677. * @return
  2678. */
  2679. @RequestMapping(params = "updateUserData")
  2680. @ResponseBody
  2681. public AjaxJson updateUserData(TSUser userInfo, HttpServletRequest req) {
  2682. String message = "编辑成功";
  2683. AjaxJson j = new AjaxJson();
  2684. if (StringUtil.isNotEmpty(userInfo.getId())) {
  2685. // 判断身份证号是否重复
  2686. StringBuilder suserSql = new StringBuilder();
  2687. suserSql.append(" SELECT ");
  2688. suserSql.append(" suser.id ");
  2689. suserSql.append(" FROM t_s_user suser ");
  2690. suserSql.append(" LEFT JOIN t_s_base_user sbaseuser ON suser.id = sbaseuser.id ");
  2691. suserSql.append(" WHERE ");
  2692. suserSql.append(" suser.idcard = '" + userInfo.getIdcard() + "' ");
  2693. suserSql.append(" And suser.id != '" + userInfo.getId() + "' ");
  2694. suserSql.append(" AND sbaseuser.delete_flag <> '1' ");
  2695. List<Map<String, Object>> suserMapList = systemService.findForJdbc(suserSql.toString());
  2696. if (suserMapList.size() > 0) {
  2697. message = "身份证号已经存在,更新失败!";
  2698. j.setSuccess(false);
  2699. j.setMsg(message);
  2700. return j;
  2701. }
  2702. TSUser users = systemService.getEntity(TSUser.class, userInfo.getId());
  2703. // 设置用户角色相关信息start
  2704. List<TSRoleUser> ru = systemService.findByProperty(TSRoleUser.class, "TSUser.id", userInfo.getId());
  2705. if (users.getUserType() != null && !"".equals(users.getUserType())) {
  2706. if (Globals.userType_0.equals(users.getUserType()) && Globals.userType_1.equals(userInfo.getUserType())) {// 由管理员工改为普通员工
  2707. systemService.deleteAllEntitie(ru);
  2708. String yxyg_roleid = null;// 一线员工的角色ID
  2709. List<TSRole> yxyg_roleList = systemService.findByProperty(TSRole.class, "roleCode", Globals.roleCode_yxyg);
  2710. if (yxyg_roleList != null && yxyg_roleList.size() > 0) {
  2711. yxyg_roleid = yxyg_roleList.get(0).getId();// 一线员工的角色ID
  2712. }
  2713. message = "员工: " + users.getUserName() + "基本信息更新成功";
  2714. j.setSuccess(true);
  2715. if (StringUtil.isNotEmpty(yxyg_roleid)) {
  2716. this.saveRoleUser(users, yxyg_roleid);
  2717. }
  2718. } else if (Globals.userType_1.equals(users.getUserType()) && Globals.userType_0.equals(userInfo.getUserType())) {// 由普通员工改为管理员工
  2719. systemService.deleteAllEntitie(ru);
  2720. }
  2721. } else {
  2722. if (Globals.userType_1.equals(userInfo.getUserType())) {// 修改为普通员工
  2723. systemService.deleteAllEntitie(ru);
  2724. String yxyg_roleid = null;// 一线员工的角色ID
  2725. List<TSRole> yxyg_roleList = systemService.findByProperty(TSRole.class, "roleCode", Globals.roleCode_yxyg);
  2726. if (yxyg_roleList != null && yxyg_roleList.size() > 0) {
  2727. yxyg_roleid = yxyg_roleList.get(0).getId();// 一线员工的角色ID
  2728. }
  2729. message = "员工: " + users.getUserName() + "基本信息更新成功";
  2730. j.setSuccess(true);
  2731. if (StringUtil.isNotEmpty(yxyg_roleid)) {
  2732. this.saveRoleUser(users, yxyg_roleid);
  2733. }
  2734. } else {
  2735. systemService.deleteAllEntitie(ru);
  2736. }
  2737. }
  2738. // 设置用户角色相关信息end
  2739. if (userInfo.getRealName() != null) {
  2740. String trim = userInfo.getRealName().replaceAll(" ", "");
  2741. userInfo.setRealName(trim);
  2742. }
  2743. if (userInfo.getIdcard() != null) {
  2744. String up = userInfo.getIdcard().toUpperCase();
  2745. userInfo.setIdcard(up);
  2746. }
  2747. users.setUserType(userInfo.getUserType());// 设置员工类型
  2748. users.setUserNum(userInfo.getUserNum());
  2749. users.setOfficePhone(userInfo.getOfficePhone());
  2750. users.setEmail(userInfo.getEmail());
  2751. users.setDevFlag(userInfo.getDevFlag());// 开发权限标志
  2752. users.setGender(userInfo.getGender());
  2753. users.setNation(userInfo.getNation());
  2754. users.setIdcard(userInfo.getIdcard());
  2755. users.setAddress(userInfo.getAddress());
  2756. users.setHkaddress(userInfo.getHkaddress());
  2757. users.setRealName(userInfo.getRealName());
  2758. users.setMobilePhone(userInfo.getMobilePhone());
  2759. users.setHktype(userInfo.getHktype());
  2760. users.setEducation(userInfo.getEducation());
  2761. users.setBirthday(userInfo.getBirthday());
  2762. users.setPostId(userInfo.getPostId());
  2763. users.setEmploymentDate(userInfo.getEmploymentDate());
  2764. users.setDutiesId(userInfo.getDutiesId());
  2765. users.setDeviceId(userInfo.getDeviceId());
  2766. users.setImage(userInfo.getImage());
  2767. users.setContacts(userInfo.getContacts());
  2768. users.setContactsPhone(userInfo.getContactsPhone());
  2769. users.setNature(userInfo.getNature());
  2770. users.setAge(userInfo.getAge());
  2771. users.setOutlook(userInfo.getOutlook());
  2772. users.setAreaRegion(userInfo.getAreaRegion());
  2773. users.setStatus(Globals.User_Normal);
  2774. // 修改base表username
  2775. TSBaseUser tu = tsBaseUserService.getById(userInfo.getId());
  2776. tu.setUsername(userInfo.getMobilePhone());
  2777. tsBaseUserService.updateById(tu);
  2778. // systemService.executeSql("delete from t_s_user_org where user_id=? ", user.getId());
  2779. // 保存1个组织机构
  2780. String msg = saveUserOrgList(req, userInfo);
  2781. if (msg != null && !"".equals(msg.trim())) {
  2782. j.setMsg(msg);
  2783. j.setSuccess(false);
  2784. return j;
  2785. }
  2786. // users.setTSDepart(user.getTSDepart());
  2787. // users.setActivitiSync(userInfo.getActivitiSync());// 是否同步工作流引擎
  2788. // users.setDingIsSynchronization(userInfo.getDingIsSynchronization());// 是否同步到钉钉
  2789. //systemService.updateEntitie(users);
  2790. // String orgIds = oConvertUtils.getString(req.getParameter("orgIds"));// 兼职机构ID数组
  2791. // List<String> orgIdList = extractIdListByComma(orgIds);
  2792. // TSDepart depart = departService.getEntity(TSDepart.class, orgIdList.get(0));
  2793. // if(StringUtil.isNotEmpty(depart.getDingdepartid())) {
  2794. // List<Long> departIdList = new ArrayList<Long>();
  2795. // departIdList.add(Long.valueOf(depart.getDingdepartid()));
  2796. //
  2797. // CorpUserDetail corpUserDetail = dingdingService.getUser(userInfo.getId());
  2798. // boolean dingFlg = false;
  2799. // if(StringUtil.isNotEmpty(corpUserDetail.getUserid())) {
  2800. // dingFlg = dingdingService.updateUser(userInfo.getId(), userInfo.getRealName(), departIdList,userInfo.getMobilePhone(), userInfo.getUserName());
  2801. // } else {
  2802. // dingFlg = dingdingService.createUser(userInfo.getId(), userInfo.getRealName(), departIdList,userInfo.getMobilePhone(), userInfo.getUserName());
  2803. // }
  2804. // if(dingFlg) {
  2805. // message = "数据保存成功,钉钉数据同步成功!";
  2806. // users.setDingIsSynchronization(Globals.DingIsSynchronization_YES.toString());
  2807. // }else{
  2808. // message = "数据保存成功,钉钉数据同步失败!";
  2809. // users.setDingIsSynchronization(Globals.DingIsSynchronization_NO.toString());
  2810. // }
  2811. // } else {
  2812. // message = "数据保存成功,所属部门没有同步到钉钉,同步失败!";
  2813. // }
  2814. // systemService.updateEntitie(users);
  2815. userService.saveOrUpdateUser(users);////将该员工同步至工作流内
  2816. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  2817. // 保存职务和岗位
  2818. doAddDutiesAndPostName(users, req);
  2819. } else {
  2820. message = "数据异常!";
  2821. j.setSuccess(false);
  2822. }
  2823. j.setMsg(message);
  2824. logger.info("[" + IpUtil.getIpAddr(req) + "][编辑员工]" + message);
  2825. return j;
  2826. }
  2827. /**
  2828. * 添加职务岗位
  2829. */
  2830. public boolean doAddDutiesAndPostName(TSUser users, HttpServletRequest request) {
  2831. PersonnelBaseArchivesManageEntity personnelBaseArchivesManage = new PersonnelBaseArchivesManageEntity();
  2832. personnelBaseArchivesManage.setUserid(users.getId());
  2833. personnelBaseArchivesManage.setInPostid(users.getPostId());
  2834. personnelBaseArchivesManage.setBelongDutiesid(users.getDutiesId());
  2835. // 根据userId判断用户是否已经维护了员工人事信息表
  2836. String personnelBaseArchivesManageByUserIdHql = "from PersonnelBaseArchivesManageEntity where userid = ?";
  2837. List<PersonnelBaseArchivesManageEntity> personnelBaseArchivesManageEntityList = personnelBaseArchivesManageService.findHql(personnelBaseArchivesManageByUserIdHql, personnelBaseArchivesManage.getUserid());
  2838. if (personnelBaseArchivesManageEntityList.size() > 0) {
  2839. personnelBaseArchivesManage.setId(personnelBaseArchivesManageEntityList.get(0).getId());
  2840. }
  2841. if (StringUtil.isNotEmpty(personnelBaseArchivesManage.getId())) {
  2842. PersonnelBaseArchivesManageEntity t = personnelBaseArchivesManageService.get(PersonnelBaseArchivesManageEntity.class, personnelBaseArchivesManage.getId());
  2843. try {
  2844. // 维护员工人事变动表数据
  2845. if (Globals.JOBSTATUS_1.equals(personnelBaseArchivesManage.getPositionStatus()) && !Globals.JOBSTATUS_1.equals(t.getPositionStatus())
  2846. || Globals.JOBSTATUS_2.equals(personnelBaseArchivesManage.getPositionStatus()) && !Globals.JOBSTATUS_2.equals(t.getPositionStatus())) {
  2847. this.saveUserChangesLog(personnelBaseArchivesManage.getUserid(), personnelBaseArchivesManage.getIfpayment(), personnelBaseArchivesManage.getPositionStatus());
  2848. }
  2849. // 试用期为【无】时,转正日期=合同开始日期
  2850. // if(Globals.SHIYONGQI_0.equals(personnelBaseArchivesManage.getTrialPeriod().toString())) {
  2851. // t.setCorrectionDate(personnelBaseArchivesManage.getContractStime());
  2852. // }
  2853. // if(personnelBaseArchivesManage.getBelongDutiesid() != null && !personnelBaseArchivesManage.getBelongDutiesid().equals(t.getBelongDutiesid())) {
  2854. // resetDutyAndPost(personnelBaseArchivesManage);
  2855. // }
  2856. MyBeanUtils.copyBeanNotNull2Bean(personnelBaseArchivesManage, t);
  2857. personnelBaseArchivesManageService.saveOrUpdate(t);
  2858. systemService.addLog("员工人事信息更新成功", Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  2859. } catch (Exception e) {
  2860. e.printStackTrace();
  2861. throw new BusinessException(e.getMessage());
  2862. }
  2863. } else {
  2864. try {
  2865. // 维护员工人事变动表数据
  2866. if (Globals.JOBSTATUS_1.equals(personnelBaseArchivesManage.getPositionStatus())
  2867. || Globals.JOBSTATUS_2.equals(personnelBaseArchivesManage.getPositionStatus())) {
  2868. this.saveUserChangesLog(personnelBaseArchivesManage.getUserid(), personnelBaseArchivesManage.getIfpayment(), personnelBaseArchivesManage.getPositionStatus());
  2869. }
  2870. // 试用期为【无】时,转正日期=合同开始日期
  2871. if (personnelBaseArchivesManage.getTrialPeriod() != null && Globals.SHIYONGQI_0.equals(personnelBaseArchivesManage.getTrialPeriod().toString())) {
  2872. personnelBaseArchivesManage.setCorrectionDate(personnelBaseArchivesManage.getContractStime());
  2873. }
  2874. // if(personnelBaseArchivesManage.getBelongDutiesid() != null) {
  2875. // resetDutyAndPost(personnelBaseArchivesManage);
  2876. // }
  2877. personnelBaseArchivesManageService.save(personnelBaseArchivesManage);
  2878. systemService.addLog("员工人事信息添加成功", Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  2879. } catch (Exception e) {
  2880. e.printStackTrace();
  2881. throw new BusinessException(e.getMessage());
  2882. }
  2883. }
  2884. return true;
  2885. }
  2886. /**
  2887. * 保存 用户-组织机构 关系信息
  2888. *
  2889. * @param request request
  2890. * @param user user
  2891. */
  2892. private String saveUserOrgList(HttpServletRequest request, TSUser user) {
  2893. String orgIds = oConvertUtils.getString(request.getParameter("orgIds"));//组织机构ID数组
  2894. if (StringUtil.isEmpty(orgIds)) {//导入部门信息
  2895. orgIds = user.getOrgIds();
  2896. }
  2897. String jzorgIds = oConvertUtils.getString(request.getParameter("jzorgIds"));//兼职机构ID数组
  2898. String msg = null;
  2899. //-------------------------设置该用户的组织机构关系-------------------------
  2900. List<String> orgIdList = extractIdListByComma(orgIds);
  2901. String orgId = orgIdList.get(0);//目前规定一个人只能有一个组织机构
  2902. List<String> removedOrgList = new ArrayList<>();//移除的组织机构 包括兼职和非兼职
  2903. //查询该用户所有的组织机构
  2904. List<TSUserOrg> userOrgList = systemService.findHql(
  2905. "from TSUserOrg where tsUser.id=? and ifpluralism=? order by intime desc", user.getId(), Globals.PLURALISM_NO.toString());
  2906. if (userOrgList != null && userOrgList.size() > 0) {
  2907. TSUserOrg uo = userOrgList.get(0);//取出该用户最新的一条组织机构关系记录
  2908. if (!uo.getTsDepart().getId().equals(orgId)) {//如果数据库中最新的一条数据的组织机构ID 和页面传过来的ID不一样
  2909. removedOrgList.add(uo.getTsDepart().getId());
  2910. boolean delFlag = false;
  2911. if (uo.getStatus().equals(Globals.BELONG_STATUS_NORMAL.toString())) {
  2912. delFlag = true;
  2913. }
  2914. if (getProjectStatus(orgId)) {
  2915. if (delFlag) {
  2916. // 删除在原有组织机构的组织关系、排班、工资策略等
  2917. dealOldOrgInfos(user, uo, orgId);
  2918. }
  2919. TSDepart depart = new TSDepart();
  2920. depart.setId(orgId);
  2921. TSUserOrg userOrg = new TSUserOrg();
  2922. userOrg.setTsUser(user);
  2923. userOrg.setTsDepart(depart);
  2924. userOrg.setIfpluralism(Globals.PLURALISM_NO.toString());
  2925. userOrg.setStatus(Globals.BELONG_STATUS_NORMAL.toString());
  2926. userOrg.setIntime(new Date());
  2927. systemService.save(userOrg);
  2928. } else {
  2929. msg = "该组织机构已停用,不可选!";
  2930. }
  2931. }
  2932. } else {//该用户还没有组织机构,说明是新建的用户,所以直接插入一条组织机构关系即可
  2933. if (getProjectStatus(orgId)) {
  2934. TSDepart depart = new TSDepart();
  2935. depart.setId(orgId);
  2936. TSUserOrg userOrg = new TSUserOrg();
  2937. userOrg.setTsUser(user);
  2938. userOrg.setTsDepart(depart);
  2939. userOrg.setIfpluralism(Globals.PLURALISM_NO.toString());
  2940. userOrg.setStatus(Globals.BELONG_STATUS_NORMAL.toString());
  2941. userOrg.setIntime(new Date());
  2942. systemService.save(userOrg);
  2943. } else {
  2944. msg = "该组织机构已停用,不可选!";
  2945. }
  2946. }
  2947. //-------------------------设置该用户的兼职机构-------------------------
  2948. /* List<String> orgIdList_jz = extractIdListByComma(jzorgIds);
  2949. List<TSUserOrg> jzuserOrg4AddList = new ArrayList<TSUserOrg>();
  2950. List<TSUserOrg> jzuserOrg4DelList = new ArrayList<TSUserOrg>();
  2951. Map<String, String> jzOrgMap = new HashMap<String, String>();
  2952. if(orgIdList_jz!=null && orgIdList_jz.size()>0){
  2953. for(String jzorgId : orgIdList_jz){
  2954. jzOrgMap.put(jzorgId, null);
  2955. }
  2956. }
  2957. //查询该用户所有的兼职机构关系
  2958. List<TSUserOrg> jzList = systemService.findHql("from TSUserOrg where tsUser.id=? and ifpluralism=? order by intime desc", user.getId(), Globals.PLURALISM_YES.toString());
  2959. if(jzList!=null && jzList.size()>0){
  2960. Map<String, TSUserOrg> myJzOrgMap = new HashMap<String, TSUserOrg>();
  2961. for(TSUserOrg jz : jzList){
  2962. myJzOrgMap.put(jz.getTsDepart().getId(), jz);
  2963. }
  2964. for(int i=0; i<jzList.size(); i++){
  2965. TSUserOrg jz = jzList.get(i);//用户原兼职机构关系
  2966. if(orgIdList_jz!=null && orgIdList_jz.size()>0){
  2967. for(String jzorgId : orgIdList_jz){
  2968. if(jz.getTsDepart().getId().equals(jzorgId)){//如果数据库中最新的一条数据的组织机构ID 和页面传过来的ID一样
  2969. jzOrgMap.remove(jzorgId);
  2970. myJzOrgMap.remove(jzorgId);
  2971. }
  2972. }
  2973. }else{
  2974. if(jz.getStatus().equals(Globals.BELONG_STATUS_NORMAL.toString())){
  2975. jzuserOrg4DelList.add(jz);
  2976. }
  2977. }
  2978. }
  2979. if(!jzOrgMap.isEmpty()){
  2980. for(String key : jzOrgMap.keySet()){
  2981. if(!getProjectStatus(key)){
  2982. TSDepart depart = departService.getEntity(TSDepart.class, key);
  2983. msg = depart.getDepartname()+" 已停用,请选择其他兼职机构";
  2984. return msg;
  2985. }
  2986. TSDepart depart = new TSDepart();
  2987. depart.setId(key);
  2988. TSUserOrg userOrg_jz = new TSUserOrg();
  2989. userOrg_jz.setTsUser(user);
  2990. userOrg_jz.setTsDepart(depart);
  2991. userOrg_jz.setIfpluralism(Globals.PLURALISM_YES.toString());//1是兼职机构
  2992. userOrg_jz.setStatus(Globals.BELONG_STATUS_NORMAL.toString());//0正常
  2993. userOrg_jz.setIntime(new Date());
  2994. jzuserOrg4AddList.add(userOrg_jz);
  2995. }
  2996. }
  2997. if(!myJzOrgMap.isEmpty()){
  2998. for(String key : myJzOrgMap.keySet()){
  2999. TSUserOrg ts = myJzOrgMap.get(key);
  3000. if(ts.getStatus().equals(Globals.BELONG_STATUS_NORMAL.toString())){
  3001. jzuserOrg4DelList.add(ts);
  3002. }
  3003. }
  3004. }
  3005. if(!jzuserOrg4DelList.isEmpty()){
  3006. for(TSUserOrg userOrg :jzuserOrg4DelList){
  3007. removedOrgList.add(userOrg.getTsDepart().getId());
  3008. }
  3009. systemService.deleteAllEntitie(jzuserOrg4DelList);
  3010. }
  3011. if(!jzuserOrg4AddList.isEmpty()){
  3012. systemService.batchSave(jzuserOrg4AddList);
  3013. }
  3014. }else{
  3015. if(orgIdList_jz!=null && orgIdList_jz.size()>0){
  3016. for(String jzorgId : orgIdList_jz){
  3017. if(!getProjectStatus(jzorgId)){
  3018. TSDepart depart = departService.getEntity(TSDepart.class, jzorgId);
  3019. msg = depart.getDepartname()+" 已停用,请选择其他兼职机构";
  3020. return msg;
  3021. }
  3022. TSDepart depart = new TSDepart();
  3023. depart.setId(jzorgId);
  3024. TSUserOrg userOrg_jz = new TSUserOrg();
  3025. userOrg_jz.setTsUser(user);
  3026. userOrg_jz.setTsDepart(depart);
  3027. userOrg_jz.setIfpluralism(Globals.PLURALISM_YES.toString());//1是兼职机构
  3028. userOrg_jz.setStatus(Globals.BELONG_STATUS_NORMAL.toString());//0正常
  3029. userOrg_jz.setIntime(new Date());
  3030. jzuserOrg4AddList.add(userOrg_jz);
  3031. }
  3032. }
  3033. if(!jzuserOrg4AddList.isEmpty()){
  3034. systemService.batchSave(jzuserOrg4AddList);
  3035. }
  3036. }*/
  3037. if (removedOrgList.size() > 0) {
  3038. tBCostPettyCashAccountService.onChangeDepart(user.getId(), removedOrgList.toArray(new String[removedOrgList.size()]));
  3039. }
  3040. return msg;
  3041. }
  3042. /**
  3043. * @param user 用户
  3044. * @param uo 组织关系
  3045. * @param orgId 新组织机构
  3046. */
  3047. private void dealOldOrgInfos(TSUser user, TSUserOrg uo, String orgId) {
  3048. TSDepart oldDepart = uo.getTsDepart();
  3049. List<ArrangeDutyOperateEntity> list = systemService.findHql("from ArrangeDutyOperateEntity where userid like ? ", "%" + user.getId() + "%");
  3050. List<ProjarrangeDetailEntity> projarrangeDetailEntityList = systemService.findByProperty(ProjarrangeDetailEntity.class, "userid", user.getId());
  3051. List<UserWagestrategyEntity> uwlist = systemService.findByProperty(UserWagestrategyEntity.class, "userid", user.getId());
  3052. for (ArrangeDutyOperateEntity operateEntity : list) {
  3053. String operateUserIds = operateEntity.getUserid();
  3054. String[] operateUserIdArr = operateUserIds.split(",");
  3055. if (operateUserIdArr.length == 1 && operateUserIdArr[0].equals(user.getId())) {
  3056. systemService.delete(operateEntity);
  3057. continue;
  3058. }
  3059. List<String> idList = new ArrayList<String>(operateUserIdArr.length);
  3060. for (String id : operateUserIdArr) {
  3061. if (id.equals(user.getId())) continue;
  3062. idList.add(id);
  3063. }
  3064. operateEntity.setUserid(org.apache.commons.lang.StringUtil.join(idList.toArray(new Object[idList.size()]), ","));
  3065. systemService.updateEntitie(operateEntity);
  3066. }
  3067. //更新t_bus_user_arrange_detail t_bus_projarrange_detail
  3068. if (projarrangeDetailEntityList != null && !projarrangeDetailEntityList.isEmpty()) {
  3069. for (ProjarrangeDetailEntity projarrangeDetailEntity : projarrangeDetailEntityList) {
  3070. List<UserArrangeDetailEntity> tempList = systemService.findByProperty(UserArrangeDetailEntity.class, "projarrangeDetailid", projarrangeDetailEntity.getId());
  3071. systemService.deleteAllEntitie(tempList);
  3072. }
  3073. systemService.deleteAllEntitie(projarrangeDetailEntityList);
  3074. }
  3075. //更新t_bus_user_wagestrategy 换成新的组织机构
  3076. if (uwlist != null && !uwlist.isEmpty()) {
  3077. for (UserWagestrategyEntity sw : uwlist) {
  3078. sw.setBelongUnitid(orgId);
  3079. sw.setPjtId(getBybelongId(orgId));
  3080. systemService.saveOrUpdate(sw);
  3081. }
  3082. }
  3083. //删除组织关系
  3084. systemService.delete(uo);
  3085. }
  3086. public String getBybelongId(String orgid) {
  3087. String temp = "";
  3088. StringBuffer hql = new StringBuffer("from TSDepart where id = :oid");
  3089. List<TSDepart> tsList = systemService.getSession().createQuery(hql.toString()).setParameter("oid", orgid).list();
  3090. if (!tsList.isEmpty()) {
  3091. TSDepart tsDepart = tsList.get(0);
  3092. temp = tsDepart.getGlcid();
  3093. }
  3094. return temp;
  3095. }
  3096. /**
  3097. * 查询项目停用、启用情况
  3098. *
  3099. * @param id
  3100. * @return
  3101. */
  3102. private boolean getProjectStatus(String id) {
  3103. TSDepart t = systemService.get(TSDepart.class, id);
  3104. if (t.getStatus().equals(Globals.Enabled_Status.toString())) {
  3105. return true;//启用
  3106. } else {
  3107. return false;//停用
  3108. }
  3109. }
  3110. /**
  3111. * 保存用户与角色的关系列表
  3112. *
  3113. * @param user // * @param roleidstr
  3114. */
  3115. /* protected void saveRoleUser(TSUser user, String roleidStr) {
  3116. String[] roleids = roleidStr.split(",");
  3117. List<TSRoleUser> rUserList = new ArrayList<TSRoleUser>();
  3118. for (int i = 0; i < roleids.length; i++) {
  3119. TSRoleUser rUser = new TSRoleUser();
  3120. TSRole role = systemService.getEntity(TSRole.class, roleids[i]);
  3121. rUser.setTSRole(role);
  3122. rUser.setTSUser(user);
  3123. rUserList.add(rUser);
  3124. }
  3125. if(rUserList != null && rUserList.size() > 0){
  3126. systemService.batchSave(rUserList);
  3127. }
  3128. }*/
  3129. protected void saveRoleUser(TSUser user, String roleidStr) {
  3130. String[] roleids = roleidStr.split(",");
  3131. for (int i = 0; i < roleids.length; i++) {
  3132. TSRoleUser rUser = new TSRoleUser();
  3133. TSRole role = systemService.getEntity(TSRole.class, roleids[i]);
  3134. rUser.setTSRole(role);
  3135. rUser.setTSUser(user);
  3136. systemService.save(rUser);
  3137. }
  3138. }
  3139. /**
  3140. * 钉钉同步用户
  3141. *
  3142. * @author id 用户ID
  3143. */
  3144. @RequestMapping(params = "synchronization")
  3145. @ResponseBody
  3146. public AjaxJson synchronization(String id, HttpServletRequest req) {
  3147. AjaxJson j = new AjaxJson();
  3148. String message = null;
  3149. TSUser user = systemService.getEntity(TSUser.class, id);
  3150. String dingDepartIdString = "";
  3151. // 查询主组织
  3152. StringBuilder mainOrgSql = new StringBuilder();
  3153. mainOrgSql.append(" SELECT ");
  3154. mainOrgSql.append(" depart.dingdepartid dingdepartid ");
  3155. mainOrgSql.append(" FROM t_s_user_org userOrg ");
  3156. mainOrgSql.append(" LEFT JOIN t_s_depart depart ON userOrg.org_id = depart.id ");
  3157. mainOrgSql.append(" WHERE ");
  3158. mainOrgSql.append(" userOrg.user_id = '" + id + "'");
  3159. mainOrgSql.append(" AND userOrg.status = '0' ");
  3160. mainOrgSql.append(" AND userOrg.ifpluralism <> '1' ");
  3161. List<Map<String, Object>> mainOrgMapList = systemService.findForJdbc(mainOrgSql.toString());
  3162. if (mainOrgMapList.size() > 0) {
  3163. dingDepartIdString = (String) mainOrgMapList.get(0).get("dingdepartid");
  3164. }
  3165. CorpUserDetail dingUserInfo = dingdingService.getUser(id);
  3166. if (StringUtil.isNotEmpty(dingUserInfo.getUserid())) {
  3167. if (StringUtil.isNotEmpty(dingDepartIdString)) {
  3168. List<Long> departIdList = new ArrayList<Long>();
  3169. departIdList.add(Long.valueOf(dingDepartIdString));
  3170. boolean dingFlg = dingdingService.updateUser(id, user.getRealName(), departIdList, user.getMobilePhone(), user.getUserName());
  3171. if (dingFlg) {
  3172. message = "钉钉数据同步成功";
  3173. j.setSuccess(true);
  3174. user.setDingIsSynchronization("1");
  3175. } else {
  3176. message = "钉钉数据同步失败";
  3177. j.setSuccess(false);
  3178. user.setDingIsSynchronization("0");
  3179. }
  3180. } else {
  3181. message = "所属部门没有同步到钉钉,同步失败";
  3182. j.setSuccess(false);
  3183. user.setDingIsSynchronization("0");
  3184. }
  3185. } else {
  3186. if (StringUtil.isNotEmpty(dingDepartIdString)) {
  3187. List<Long> departIdList = new ArrayList<Long>();
  3188. departIdList.add(Long.valueOf(dingDepartIdString));
  3189. boolean dingFlg = dingdingService.createUser(id, user.getRealName(), departIdList, user.getMobilePhone(), user.getUserName());
  3190. if (dingFlg) {
  3191. message = "钉钉数据同步成功";
  3192. j.setSuccess(true);
  3193. user.setDingIsSynchronization("1");
  3194. } else {
  3195. message = "钉钉数据同步失败";
  3196. j.setSuccess(false);
  3197. user.setDingIsSynchronization("0");
  3198. }
  3199. } else {
  3200. message = "所属部门没有同步到钉钉,同步失败";
  3201. j.setSuccess(false);
  3202. user.setDingIsSynchronization("0");
  3203. }
  3204. }
  3205. userService.updateEntitie(user);
  3206. j.setMsg(message);
  3207. return j;
  3208. }
  3209. /**
  3210. * 保存员工人事变动信息
  3211. *
  3212. * @param userId 用户ID
  3213. * @param ifpayment 是否缴金人员
  3214. * @param positionStatus 在职状态
  3215. * @throws Exception
  3216. */
  3217. private void saveUserChangesLog(String userId, String ifpayment, String positionStatus) throws Exception {
  3218. // 查询用户信息
  3219. //TSBaseUser userInfo = userService.get(TSBaseUser.class, userId);
  3220. TSBaseUser userInfo = userService.get(TSBaseUser.class, userId);
  3221. // 查询主组织
  3222. StringBuilder mainOrgSql = new StringBuilder();
  3223. mainOrgSql.append(" SELECT ");
  3224. mainOrgSql.append(" org_id orgId");
  3225. mainOrgSql.append(" FROM t_s_user_org ");
  3226. mainOrgSql.append(" WHERE ");
  3227. mainOrgSql.append(" user_id = '" + userId + "'");
  3228. mainOrgSql.append(" AND status = '0' ");
  3229. mainOrgSql.append(" AND ifpluralism <> '1' ");
  3230. List<Map<String, Object>> mainOrgMapList = systemService.findForJdbc(mainOrgSql.toString());
  3231. String mainOrgId = "";
  3232. if (mainOrgMapList.size() > 0) {
  3233. mainOrgId = (String) mainOrgMapList.get(0).get("orgId");
  3234. }
  3235. // 缴金人员,入职,显示人员变动信息,缴金状态"待缴金"
  3236. // 协议人员,入职,显示人员变动信息,缴金状态为空,状态栏为空
  3237. // 缴金单位,关联到员工工资策略中的社保单位
  3238. // 查询登录人名字
  3239. String loginUserName = ResourceUtil.getSessionUser().getRealName();
  3240. UserChangesLogEntity userChangesLogEntity = new UserChangesLogEntity();
  3241. userChangesLogEntity.setChangeTime(new Date());
  3242. userChangesLogEntity.setUserCode(userInfo.getUsername());
  3243. userChangesLogEntity.setUserName(userInfo.getRealname());
  3244. userChangesLogEntity.setBelongUnitid(mainOrgId);
  3245. userChangesLogEntity.setInUnitid("");
  3246. if (Globals.JOBSTATUS_1.equals(positionStatus)) {
  3247. userChangesLogEntity.setChangeType(Globals.CHANGE_TYPE_RUZHI);
  3248. }
  3249. if (Globals.JOBSTATUS_2.equals(positionStatus)) {
  3250. userChangesLogEntity.setChangeType(Globals.CHANGE_TYPE_ZHUANZHENG);
  3251. }
  3252. userChangesLogEntity.setApplicant(loginUserName);
  3253. if (Globals.SHIFOU_01_1.equals(ifpayment)) {
  3254. String payUnit = "";
  3255. String userWagestrategyHql = "from UserWagestrategyEntity where userid = ?";
  3256. List<UserWagestrategyEntity> UserWagestrategyEntityList = userWagestrategyService.findHql(userWagestrategyHql, userId);
  3257. if (UserWagestrategyEntityList.size() > 0) {
  3258. String socialSecurityStrategyid = UserWagestrategyEntityList.get(0).getSocialSecurityStrategyid();
  3259. // 查询用户信息
  3260. SocialSecurityStrategyEntity socialSecurityStrategyEntity = socialSecurityStrategyService.get(SocialSecurityStrategyEntity.class, socialSecurityStrategyid);
  3261. if (null != socialSecurityStrategyEntity) {
  3262. payUnit = socialSecurityStrategyEntity.getSocialSecurityUnit();
  3263. }
  3264. }
  3265. userChangesLogEntity.setPayUnit(payUnit);
  3266. userChangesLogEntity.setPayRemindStatus(Globals.PAY_REMIND_STATUS_0);
  3267. } else {
  3268. userChangesLogEntity.setPayUnit("");
  3269. userChangesLogEntity.setPayRemindStatus("");
  3270. }
  3271. userChangesLogService.save(userChangesLogEntity);
  3272. }
  3273. @RequestMapping(params = "export_leaveman_hr")
  3274. public void export_leaveman_hr(PersonnelBaseArchivesManageInDto personnelBaseArchivesManageInDto, HttpServletRequest request, HttpServletResponse response
  3275. , DataGrid dataGrid, ModelMap modelMap) {
  3276. String codedFileName = "离职人员列表";
  3277. String orgid = personnelBaseArchivesManageInDto.getOrgIds();
  3278. if (orgid != null) {
  3279. TSDepart depart = systemService.get(TSDepart.class, orgid);
  3280. if (depart != null) {
  3281. codedFileName = depart.getDepartname() + "员工";
  3282. }
  3283. }
  3284. List<Map<String, Object>> modelMapList = null;
  3285. try {
  3286. modelMapList = personnelBaseArchivesManageExportAndImportService.exportXlsLeave(personnelBaseArchivesManageInDto);
  3287. } catch (Exception e1) {
  3288. // TODO Auto-generated catch block
  3289. e1.printStackTrace();
  3290. }
  3291. Workbook workbook = personnelBaseArchivesManageExportAndImportService.getWorkBook(modelMapList);
  3292. Sheet sh = workbook.getSheetAt(0);
  3293. if (sh != null) {
  3294. sh.createFreezePane(3, 0, 3, 0);
  3295. }
  3296. if (workbook instanceof HSSFWorkbook) {
  3297. codedFileName += ".xls";
  3298. } else {
  3299. codedFileName += ".xlsx";
  3300. }
  3301. try {
  3302. if (personnelBaseArchivesManageExportAndImportService.isIE(request)) {
  3303. codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8");
  3304. } else {
  3305. codedFileName = new String(codedFileName.getBytes("UTF-8"), "ISO-8859-1");
  3306. }
  3307. response.setHeader("content-disposition", "attachment;filename=" + codedFileName);
  3308. ServletOutputStream out = response.getOutputStream();
  3309. workbook.write(out);
  3310. out.flush();
  3311. } catch (UnsupportedEncodingException e) {
  3312. // TODO Auto-generated catch block
  3313. e.printStackTrace();
  3314. } catch (IOException e) {
  3315. // TODO Auto-generated catch block
  3316. e.printStackTrace();
  3317. }
  3318. }
  3319. // @RequestMapping(params = "viewlist")
  3320. // public ModelAndView viewlist(HttpServletRequest request) {
  3321. // String queryParams = oConvertUtils.getString(request.getParameter("queryParams"));
  3322. // if (oConvertUtils.isNotEmpty(queryParams)) {
  3323. // JSONObject jsonObject =JSONObject.parseObject(queryParams);
  3324. // request.setAttribute("queryParams",jsonObject);
  3325. // }else {
  3326. // JSONObject jsonObject = new JSONObject();
  3327. // jsonObject.put("userName", "");
  3328. // jsonObject.put("departname", "");
  3329. // jsonObject.put("orgIds", "");
  3330. // jsonObject.put("telphone", "");
  3331. // jsonObject.put("idcard", "");
  3332. // jsonObject.put("positionStatus", "");
  3333. // jsonObject.put("certificateId", "");
  3334. // request.setAttribute("queryParams",jsonObject);
  3335. // }
  3336. // return new ModelAndView("cn/com/lzt/personnelbasearchivesmanage/personnelBaseArchivesManageViewList");
  3337. // }
  3338. @SuppressWarnings({"unchecked", "rawtypes"})
  3339. @RequestMapping(params = "searchUserCard", method = RequestMethod.POST)
  3340. @ResponseBody
  3341. public Object searchUserCard(String userid) {
  3342. Map reJson = new HashMap<String, Object>();
  3343. List<Map<String, Object>> resList = new ArrayList<Map<String, Object>>();
  3344. String msg = "";
  3345. if (StringUtils.isNotBlank(userid)) {
  3346. try {
  3347. String sql = "select su.idcard as idcard,bu.realname as realname,uf.belong_bank as bankname,uf.card_number as cardnumber from t_s_user su\n" +
  3348. "left join t_s_base_user bu on bu.id = su.id \n" +
  3349. "left join t_bus_user_financial uf on uf.userid = su.id and uf.delete_flag = '0' and uf.isdefault = '1'\n" +
  3350. "where su.id =? ";
  3351. resList = systemService.findForJdbc(sql, userid);
  3352. if (resList.size() == 0)
  3353. throw new BusinessException("查询不到员工");
  3354. msg += "员工姓名:" + resList.get(0).get("realname") + "<br><br>";
  3355. msg += "身份证号:" + resList.get(0).get("idcard") + "<br><br>";
  3356. msg += "开户行名:" + resList.get(0).get("bankname") + "<br><br>";
  3357. msg += "银行账号:" + resList.get(0).get("cardnumber");
  3358. } catch (Exception e) {
  3359. reJson.put("status", "fail");
  3360. logger.info(e.getMessage());
  3361. return reJson;
  3362. }
  3363. reJson.put("status", "success");
  3364. reJson.put("msg", msg);
  3365. } else {
  3366. reJson.put("status", "success");
  3367. reJson.put("msg", msg);
  3368. }
  3369. return reJson;
  3370. }
  3371. }