FlowconditionUtil.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668
  1. package cn.com.lzt.common.util;
  2. import cn.com.lzt.cost.activiti.costrequest.entity.TBActivitiCostRequestEntity;
  3. import cn.com.lzt.cost.activiti.payinneruser.entity.TBActivitiCostPayInnerUserDetailEntity;
  4. import cn.com.lzt.cost.activiti.tmpcompany.entity.TBActivitiCostPayTmpCompanyEntity;
  5. import cn.com.lzt.cost.type.entity.TBCostTypeEntity;
  6. import cn.com.lzt.duties.entity.DutiesEntity;
  7. import cn.com.lzt.holiday.entity.HolidayEntity;
  8. import cn.com.lzt.message.send.entity.MMessageEntity;
  9. import cn.com.lzt.personnelbasearchivesmanage.entity.PersonnelBaseArchivesManageEntity;
  10. import cn.com.lzt.useractiviti.appoint.entity.TBActivitiUserAppointEntity;
  11. import cn.com.lzt.useractiviti.data.dao.UseractivitiDataDao;
  12. import cn.com.lzt.useractiviti.data.service.UseractivitiDataServiceI;
  13. import cn.com.lzt.useractiviti.entity.TBusActivitiUserPersonnelEntity;
  14. import cn.com.lzt.useractiviti.leave.entity.TBusActivitiLeaveEntity;
  15. import cn.com.lzt.useractiviti.sameleveltransfer.entity.TBusActivitiSamelevelTransferEntity;
  16. import org.apache.commons.lang3.StringUtils;
  17. import org.jeecgframework.core.common.exception.BusinessException;
  18. import org.jeecgframework.core.constant.Globals;
  19. import org.jeecgframework.core.util.ApplicationContextUtil;
  20. import org.jeecgframework.web.system.pojo.base.*;
  21. import org.jeecgframework.web.system.service.SystemService;
  22. import org.jeecgframework.web.system.service.UserService;
  23. import java.text.ParseException;
  24. import java.text.SimpleDateFormat;
  25. import java.util.*;
  26. /**
  27. * cn.com.lzt.common.util.FlowconditionUtil
  28. * @author Administrator
  29. *
  30. */
  31. public class FlowconditionUtil {
  32. private static List<String> list = null;
  33. /**
  34. * 判断id员工是一线员工还是管理处员工
  35. * 1.管理处
  36. * 0.一线员工
  37. * @param tableName
  38. * @param id
  39. * @return
  40. */
  41. public static String isManagerType(String tableName,String id) {
  42. String managerType = "";
  43. if(StringUtils.isNotEmpty(id)){
  44. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  45. PersonnelBaseArchivesManageEntity personnerl = systemService.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class, "userid", id);
  46. if(personnerl != null){
  47. if("2".equals(personnerl.getManagerType())){
  48. managerType = "1";
  49. }else{
  50. managerType = "0";
  51. }
  52. }
  53. }else{
  54. throw new BusinessException("传入的参数有问题,请联系管理员");
  55. }
  56. return managerType;
  57. }
  58. public static String isManagerType(String tableName,String userid,String id) {
  59. String managerType = "";
  60. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  61. Map<String,Object> map = systemService.findOneForJdbc(String.format("select manager_type from %s where id='%s'",tableName,id));
  62. if(map!=null){
  63. String dbManagerType = (String) map.get("manager_type");
  64. if(StringUtils.equals(dbManagerType, "2")){
  65. managerType = "1";
  66. }else {
  67. managerType = "0";
  68. }
  69. }else{
  70. throw new BusinessException("传入的参数有问题,请联系管理员");
  71. }
  72. return managerType;
  73. }
  74. /**
  75. * 计算休假时间(天)
  76. * @param tableName
  77. * @param id
  78. * @return
  79. * @throws ParseException
  80. */
  81. public static Integer countDay(String tableName,String id) throws ParseException {
  82. Integer count = 0;
  83. if("t_bus_holiday".equals(tableName) && StringUtils.isNotEmpty(id)){
  84. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  85. HolidayEntity holiday = systemService.get(HolidayEntity.class,id);
  86. if(holiday != null){
  87. count = daysBetween(holiday.getHolidayStime(), holiday.getHolidayEtime());
  88. /*Calendar calendar = Calendar.getInstance();
  89. calendar.setTime(holiday.getHolidayStime());
  90. Calendar calendar1 = Calendar.getInstance();
  91. calendar.setTime(holiday.getHolidayEtime());
  92. count = DateUtils.dateDiff('y', calendar1, calendar);*/
  93. }
  94. }else{
  95. throw new BusinessException("传入的参数有问题,请联系管理员");
  96. }
  97. return count;
  98. }
  99. /**
  100. * 计算两个日期之间相差的天数
  101. * @param smdate 较小的时间
  102. * @param bdate 较大的时间
  103. * @return 相差天数
  104. * @throws ParseException
  105. * @throws java.text.ParseException
  106. */
  107. public static int daysBetween(Date smdate,Date bdate) throws ParseException
  108. {
  109. SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd");
  110. smdate=sdf.parse(sdf.format(smdate));
  111. bdate=sdf.parse(sdf.format(bdate));
  112. Calendar cal = Calendar.getInstance();
  113. cal.setTime(smdate);
  114. long time1 = cal.getTimeInMillis();
  115. cal.setTime(bdate);
  116. long time2 = cal.getTimeInMillis();
  117. long between_days=(time2-time1)/(1000*3600*24);
  118. return Integer.parseInt(String.valueOf(between_days));
  119. }
  120. /**
  121. * 判断角色等级是否是项目经理以上级别
  122. * @param tableName
  123. * @param id
  124. * @return
  125. */
  126. public static boolean istimeup(String tableName,String id){
  127. boolean temp = false;
  128. if("t_bus_correction".equals(tableName) && StringUtils.isNotEmpty(id)){
  129. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  130. PersonnelBaseArchivesManageEntity per = systemService.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class, "userid",id);
  131. if(per != null && StringUtils.isNotEmpty(per.getManagerType())){
  132. if("0".equals(per.getManagerType())){
  133. temp = true;
  134. }
  135. }else{
  136. throw new BusinessException("被申请人不能确认是管理层员工,请联系管理员");
  137. }
  138. }else{
  139. throw new BusinessException("传入的参数有问题,请联系管理员");
  140. }
  141. return temp;
  142. }
  143. /**
  144. * 判断该员工是属于什么项目
  145. * @param id
  146. * @return
  147. */
  148. @SuppressWarnings("unchecked")
  149. public static String isRank(String id){
  150. String rank = "";
  151. if(StringUtils.isNotEmpty(id)){
  152. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  153. PersonnelBaseArchivesManageEntity per = systemService.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class, "userid",id);
  154. TSBaseUser tsBaseUser = systemService.get(TSBaseUser.class, id);
  155. if(tsBaseUser != null){
  156. //查看申请人是否为区域经理,如果为区域经理则走职能部门角色
  157. List<TSRoleUser> roleList = systemService.getSession().createSQLQuery("select * from t_s_role_user where userid = '"+tsBaseUser.getId()+"'").addEntity(TSRoleUser.class).list();
  158. boolean temp = false;
  159. if(!roleList.isEmpty()){
  160. String [] roleStrings = new String[10];
  161. for (int i = 0; i < roleList.size(); i++) {
  162. TSRole tsRole = roleList.get(i).getTSRole();
  163. roleStrings[i] = tsRole.getRoleCode();
  164. }
  165. temp = Arrays.asList(roleStrings).contains(Globals.POSITION_TYPE_RE.toString());
  166. }
  167. if(temp){
  168. rank="5";//职能部门
  169. }else{
  170. List<TSUserOrg> orgList = systemService.getSession().createSQLQuery("select * from t_s_user_org where user_id = '"+tsBaseUser.getId()+"' and ifpluralism = 0 and status = 0").addEntity(TSUserOrg.class).list();
  171. if(orgList != null){
  172. TSDepart tsDepart = orgList.get(0).getTsDepart();
  173. list = selectById(tsDepart.getId());
  174. if(!list.isEmpty() && list.size() > 0){
  175. if(list.get(0).equals(Globals.org_type_5)){
  176. if(Globals.MANAGETYPE_2.toString().equals(per.getManagerType())){
  177. rank = "1";//直属项目一线员工
  178. }else{
  179. rank = "2";//直属项目管理处员工
  180. }
  181. }else{
  182. if(Globals.MANAGETYPE_2.toString().equals(per.getManagerType())){
  183. rank = "3";//区域项目一线员工
  184. }else{
  185. rank = "4";//区域项目管理处员工
  186. }
  187. }
  188. }else{
  189. if(Globals.MANAGETYPE_0.toString().equals(per.getManagerType())){
  190. rank = "5";//职能部门管理员工
  191. }else{
  192. rank = "6";//职能部门管理员工
  193. }
  194. }
  195. }
  196. }
  197. }
  198. }else{
  199. throw new BusinessException("传入的参数有问题,请联系管理员");
  200. }
  201. return rank;
  202. }
  203. /**
  204. * 递归调用
  205. * @param id
  206. * @return
  207. */
  208. private static List<String> selectById(String id){
  209. list = new ArrayList<String>();
  210. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  211. TSDepart tsDepart = systemService.getEntity(TSDepart.class,id);
  212. if(Globals.org_type_3.equals(tsDepart.getOrgType())){
  213. list.add(Globals.org_type_3);
  214. }else if(Globals.org_type_4.equals(tsDepart.getOrgType())){
  215. list.add(Globals.org_type_3);
  216. }else if(Globals.org_type_5.equals(tsDepart.getOrgType())){
  217. list.add(Globals.org_type_5);
  218. }else{
  219. if(tsDepart.getTSPDepart() != null){
  220. selectById(tsDepart.getTSPDepart().getId());
  221. }
  222. }
  223. return list;
  224. }
  225. @SuppressWarnings("unchecked")
  226. public static String isorgType(String id){
  227. String rank = "";
  228. if(StringUtils.isNotEmpty(id)){
  229. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  230. TSBaseUser tsBaseUser = systemService.get(TSBaseUser.class, id);
  231. if(tsBaseUser != null){
  232. //查看申请人是否为区域经理,如果为区域经理则走职能部门角色
  233. List<TSRoleUser> roleList = systemService.getSession().createSQLQuery("select * from t_s_role_user where userid = '"+tsBaseUser.getId()+"'").addEntity(TSRoleUser.class).list();
  234. boolean temp = false;
  235. if(!roleList.isEmpty()){
  236. String [] roleStrings = new String[10];
  237. for (int i = 0; i < roleList.size(); i++) {
  238. TSRole tsRole = roleList.get(i).getTSRole();
  239. roleStrings[i] = tsRole.getRoleCode();
  240. }
  241. temp = Arrays.asList(roleStrings).contains(Globals.POSITION_TYPE_RE.toString());
  242. }
  243. if(temp){
  244. rank="3";//职能部门
  245. }else{
  246. List<TSUserOrg> orgList = systemService.getSession().createSQLQuery("select * from t_s_user_org where user_id = '"+tsBaseUser.getId()+"' and ifpluralism = 0 and status = 0").addEntity(TSUserOrg.class).list();
  247. if(orgList != null){
  248. TSDepart tsDepart = orgList.get(0).getTsDepart();
  249. list = selectById(tsDepart.getId());
  250. if(!list.isEmpty() && list.size() > 0){
  251. if(list.get(0).equals(Globals.org_type_5)){
  252. rank="1";//直属项目
  253. }else{
  254. rank="2";//区域项目
  255. }
  256. }else{
  257. rank="3";//职能部门
  258. }
  259. }
  260. }
  261. }
  262. }else{
  263. throw new BusinessException("传入的参数有问题,请联系管理员");
  264. }
  265. return rank;
  266. }
  267. /**
  268. * 判断该人员是否是项目经理或区域经理助理
  269. * @param tableName
  270. * @param id
  271. * @return
  272. */
  273. public static boolean isRegion(String tableName,String id){
  274. boolean temp = false;
  275. if("t_bus_correction".equals(tableName) && StringUtils.isNotEmpty(id)){
  276. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  277. TSBaseUser tsBaseUser = systemService.get(TSBaseUser.class, id);
  278. //PersonnelBaseArchivesManageEntity per = systemService.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class, "userid",id);
  279. List<TSRoleUser> tsList = systemService.findByProperty(TSRoleUser.class, "TSUser.id", tsBaseUser.getId());
  280. if(!tsList.isEmpty()){
  281. String [] reg = {"P_XMJL","P_QYZL"};
  282. for (TSRoleUser t : tsList) {
  283. TSRole role = t.getTSRole();
  284. if(Arrays.asList(reg).contains(role.getRoleCode())){
  285. temp = true;
  286. break;
  287. }
  288. }
  289. }
  290. }
  291. return temp;
  292. }
  293. /**
  294. *项目人员类型
  295. * 1 项目人员
  296. * 0 职能部门人员
  297. * @return
  298. */
  299. public static int projectUserType(String table,String id){
  300. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  301. Map<String,Object> map = systemService.findOneForJdbc("select * from "+table+" where id = ?" , id);
  302. String createBy = (String) map.get("create_by");
  303. TSUser user = systemService.findUniqueByProperty(TSUser.class,"userName" , createBy);
  304. boolean projectUser = UserUtil.isProjectUser(user.getId());
  305. if(projectUser){
  306. return 1;
  307. }
  308. return 0;
  309. }
  310. /**
  311. * 是否包含某一角色code
  312. *
  313. */
  314. public static boolean isContainRoleCode(String userid,String roleCode){
  315. if(StringUtils.isBlank(userid)){
  316. return false;
  317. }
  318. if(StringUtils.isBlank(roleCode)){
  319. return false;
  320. }
  321. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  322. List<TSRoleUser> reRoleUsers = systemService.findByProperty(TSRoleUser.class, "TSUser.id", userid);
  323. boolean flag = false;
  324. for(TSRoleUser roleUser : reRoleUsers){
  325. String code = roleUser.getTSRole().getRoleCode();
  326. if(StringUtils.equals(code, roleCode)){
  327. flag=true;
  328. break;
  329. }
  330. }
  331. return flag;
  332. }
  333. /**
  334. * 一线员工分类
  335. * 0 项目经理
  336. * 1 内勤
  337. * 2 一线员工
  338. * @param userid
  339. * @return
  340. */
  341. public static int normalUserType(String userid){
  342. boolean type = isContainRoleCode(userid,Globals.POSITION_TYPE_PRO);
  343. if(type){
  344. return 0;
  345. }
  346. type = isContainRoleCode(userid,Globals.POSITION_TYPE_NQ);
  347. if(type){
  348. return 1;
  349. }
  350. return 2;
  351. }
  352. /**
  353. * 离职类型
  354. * @return 0 辞退 1主动离职
  355. *
  356. */
  357. public static int leaveType(String table,String id){
  358. if(StringUtils.equals(table,"t_bus_activiti_leave" )){
  359. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  360. TBusActivitiLeaveEntity leaveEntity = systemService.getEntity(TBusActivitiLeaveEntity.class, id);
  361. String leaveType =leaveEntity.getLeaveType();
  362. if(StringUtils.equals(leaveType,"citui" )){
  363. return 0;
  364. }
  365. return 1;
  366. }
  367. return -1;
  368. }
  369. /**
  370. * 是否包含工程物料
  371. * 采购申请专用
  372. * */
  373. public static String hasGongchengGoods(String id) {
  374. String hasGongcheng = "";
  375. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  376. Map<String,Object> map = systemService.findOneForJdbc("select count(*) as count "
  377. + " from t_b_order_products products "
  378. + " left join t_b_goods_info goods on goods.id = products.goods_id where left(category_code,7) = 'rootA01' and fk_id = ?",id);
  379. if(map!=null){
  380. String count = map.get("count").toString();
  381. if(StringUtils.equals(count, "0")){
  382. hasGongcheng = "0";
  383. }else {
  384. hasGongcheng = "1";
  385. }
  386. }else{
  387. throw new BusinessException("传入的参数有问题,请联系管理员");
  388. }
  389. return hasGongcheng;
  390. }
  391. /**
  392. * 职务类型
  393. * @param table
  394. * @param id
  395. * @return
  396. * 1 一线员工
  397. * 2部门专员
  398. * 3项目主管及以上
  399. * 4部门经理和项目经理
  400. */
  401. public static int deutiesType(String table,String id){
  402. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  403. String dutiesId = null;
  404. if(StringUtils.equals("t_bus_activiti_user_personnel",table)) {//入职审批
  405. TBusActivitiUserPersonnelEntity entity =systemService.getEntity(TBusActivitiUserPersonnelEntity.class, id);
  406. dutiesId = entity.getDuty();
  407. }else if(StringUtils.equals("t_b_activiti_user_appoint",table)){//任免签报
  408. TBActivitiUserAppointEntity entity = systemService.getEntity(TBActivitiUserAppointEntity.class, id);
  409. String type = entity.getType();
  410. if(StringUtils.equals(type,"demotion")){//降职根据当前职务
  411. dutiesId=entity.getOldDutyId();
  412. }else {
  413. dutiesId = entity.getNewDutyId();
  414. }
  415. if(StringUtils.isBlank(dutiesId)){//辞退没有new_duty_id
  416. dutiesId = entity.getOldDutyId();
  417. }
  418. }else {
  419. Map<String,Object> map = systemService.findOneForJdbc("select * from "+table+" where id = ?" , id);
  420. String userId = (String) map.get("userid");
  421. PersonnelBaseArchivesManageEntity per = systemService.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class, "userid",userId);
  422. dutiesId = per.getBelongDutiesid();
  423. }
  424. int type = UserUtil.getDutyType(dutiesId);
  425. return type;
  426. }
  427. /**
  428. * 是否超过编制
  429. * @return
  430. */
  431. public static boolean isOverNeedNum(String table,String id){
  432. UseractivitiDataServiceI useractivitiDataService = ApplicationContextUtil.getContext().getBean(UseractivitiDataServiceI.class);
  433. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  434. UseractivitiDataDao dataDao = ApplicationContextUtil.getContext().getBean(UseractivitiDataDao.class);
  435. String depId = null;
  436. String postId = null;
  437. if(StringUtils.equals("t_bus_activiti_user_personnel",table)) {//入职审批
  438. TBusActivitiUserPersonnelEntity entity =systemService.getEntity(TBusActivitiUserPersonnelEntity.class, id);
  439. depId = entity.getDepartId();
  440. String dutiesId = entity.getDuty();
  441. DutiesEntity duties = systemService.getEntity(DutiesEntity.class,dutiesId );
  442. postId = duties.getPost();
  443. }else if(StringUtils.equals("t_bus_activiti_samelevel_transfer",table)){//平调
  444. TBusActivitiSamelevelTransferEntity entity = systemService.getEntity(TBusActivitiSamelevelTransferEntity.class, id);
  445. postId = entity.getNewPostid();
  446. depId = entity.getInUnitPid();
  447. } else{
  448. Map<String,Object> map = systemService.findOneForJdbc("select * from "+table+" where id = ?" , id);
  449. String userId = (String) map.get("userid");
  450. PersonnelBaseArchivesManageEntity per = systemService.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class, "userid",userId);
  451. TSDepart depart = dataDao.getUserDep(userId);
  452. depId = depart.getId();
  453. postId = per.getInPostid();
  454. }
  455. depId =UserUtil.getQueryDepIdByDepId(depId);
  456. int needNum = useractivitiDataService.getPostNeedNum(depId,postId);
  457. int userNum = dataDao.getParentDepartPostUserCount(depId,postId );
  458. return userNum>=needNum;
  459. }
  460. //获得调休时长
  461. public double getExchangeDays(String id){
  462. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  463. String sql = "select max(exchange_time) exchange_time from t_bus_activiti_exchange_detail where 1 = 1 AND eXCHANGE_ID =? ";
  464. Map<String,Object> map = systemService.findOneForJdbc(sql,id);
  465. double exchangeTime = (double) map.get("exchange_time");
  466. return exchangeTime/8;
  467. }
  468. /**
  469. * 判断组织机构类型
  470. *
  471. * @param table
  472. * @param id
  473. * @see DepartUtil.DepartType
  474. * @return 1项目 2职能部门
  475. *
  476. */
  477. public int departType(String table,String id){
  478. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  479. Map<String,Object> map = systemService.findOneForJdbc("select * from "+table+" where id = ?" , id);
  480. String departId = (String) map.get("depart_id");
  481. if(StringUtils.isBlank(departId)){
  482. String userid = (String) map.get("userid");
  483. if(StringUtils.isNotBlank(userid)) {
  484. UseractivitiDataDao dataDao = ApplicationContextUtil.getContext().getBean(UseractivitiDataDao.class);
  485. departId = dataDao.getUserDep(userid).getId();
  486. }
  487. }
  488. DepartUtil.DepartType departType = DepartUtil.departType(departId);
  489. return departType.getTypeCode();
  490. }
  491. /**
  492. * 是否超过申请金额
  493. * @param table
  494. * @param id
  495. * @return
  496. */
  497. public boolean isOverRequestMoney(String table,String id){
  498. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  499. if(StringUtils.equals(table,"t_b_activiti_cost_pay_tmp_company")){//临时付款
  500. TBActivitiCostPayTmpCompanyEntity entity = systemService.getEntity(TBActivitiCostPayTmpCompanyEntity.class,id);
  501. if(entity.getExpectMoney().compareTo(entity.getPayMoney())<0){
  502. return true;
  503. }
  504. }else if(StringUtils.equals(table,"t_b_activiti_cost_pay_inner_user")){//费用报销
  505. List<TBActivitiCostPayInnerUserDetailEntity> detailEntityList = systemService.findByProperty(TBActivitiCostPayInnerUserDetailEntity.class,"costPayInnerUserId",id);
  506. for(TBActivitiCostPayInnerUserDetailEntity detailEntity:detailEntityList){
  507. if(detailEntity.getExpectMoney().compareTo(detailEntity.getPayMoney())<0){
  508. return true;
  509. }
  510. }
  511. }
  512. return false;
  513. }
  514. //返回 费用报销或公对公报销【费用类型】的【审批分类】
  515. public String getCostRequestExamineType(String table,String id){
  516. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  517. if(StringUtils.equals(table,"t_b_activiti_cost_request" )){//费用申请
  518. TBActivitiCostRequestEntity entity =systemService.getEntity(TBActivitiCostRequestEntity.class, id);
  519. String costId = entity.getCostType();
  520. TBCostTypeEntity typeEntity = systemService.getEntity(TBCostTypeEntity.class, costId);
  521. return typeEntity.getExamineType();
  522. }
  523. return null;
  524. }
  525. //返回 费用类型信息
  526. public String getCostRequestInfo(String table,String id,String column){
  527. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  528. if(StringUtils.equals(table,"t_b_activiti_cost_request" )){//费用申请
  529. TBActivitiCostRequestEntity entity =systemService.getEntity(TBActivitiCostRequestEntity.class, id);
  530. String costId = entity.getCostType();
  531. TBCostTypeEntity typeEntity = systemService.getEntity(TBCostTypeEntity.class, costId);
  532. if(StringUtils.equals(column,"pre_proc")) return typeEntity.getPreProc();
  533. }
  534. return null;
  535. }
  536. /**
  537. *
  538. * @return 返回费用申请中费用类型名称
  539. */
  540. public String getCostRequestTypeName(String table,String id){
  541. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  542. if(StringUtils.equals(table,"t_b_activiti_cost_request" )){//费用申请
  543. TBActivitiCostRequestEntity entity =systemService.getEntity(TBActivitiCostRequestEntity.class, id);
  544. String costId = entity.getCostType();
  545. TBCostTypeEntity typeEntity = systemService.getEntity(TBCostTypeEntity.class, costId);
  546. return typeEntity.getName();
  547. }
  548. return null;
  549. }
  550. /**
  551. * 返回消息审批的消息类型
  552. * @param table
  553. * @param id
  554. * @return 会议通知:meeting,其他通知:other,红头文件:red
  555. */
  556. public String getMessageNoticeType(String table,String id){
  557. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  558. if(StringUtils.equals(table,"m_message" )){//消息审批
  559. MMessageEntity entity =systemService.getEntity(MMessageEntity.class, id);
  560. return entity.getNoticeType();
  561. }
  562. return null;
  563. }
  564. /**
  565. * 是否人事部门申请
  566. * @param table
  567. * @param id
  568. * @param checkType 1 制单人,2表单用户
  569. * @return
  570. */
  571. public boolean isHr(String table,String id,int checkType){
  572. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  573. Map<String,Object> map = systemService.findOneForJdbc("select * from "+table+" where id = ?" , id);
  574. String userId=null;
  575. if(checkType==1){
  576. UserService userService = ApplicationContextUtil.getContext().getBean(UserService.class);
  577. String createBy = (String) map.get("create_by");
  578. List<TSUser> userList = systemService.findHql("from TSUser where userName=? and deleteFlag=0 ",createBy);
  579. TSUser user = userList.get(0);
  580. userId = user.getId();
  581. }else if(checkType==2) {
  582. userId = (String) map.get("userid");
  583. }
  584. return UserUtil.isHr(userId);
  585. }
  586. /**
  587. * 休假用户类型
  588. * @param table
  589. * @param id
  590. * @return
  591. * 1 一线人员
  592. * 2 部门专员
  593. * 3 部门经理
  594. * 4 项目经理
  595. * -1 未知
  596. */
  597. public int holidayUserType(String table,String id){
  598. SystemService systemService = ApplicationContextUtil.getContext().getBean(SystemService.class);
  599. Map<String,Object> map = systemService.findOneForJdbc("select * from "+table+" where id = ?" , id);
  600. String userId = (String) map.get("userid");
  601. PersonnelBaseArchivesManageEntity per = systemService.findUniqueByProperty(PersonnelBaseArchivesManageEntity.class, "userid",userId);
  602. String dutiesId = per.getBelongDutiesid();
  603. int type = UserUtil.getDutyType(dutiesId);
  604. if(type==1||type==3){
  605. return 1;
  606. }else if(type==2){
  607. return 2;
  608. }else if(type==4){//部门经理、项目经理
  609. UserService userService = ApplicationContextUtil.getContext().getBean(UserService.class);
  610. TSUser user = systemService.getEntity(TSUser.class,userId);
  611. String userRoleCode = userService.getUserRole(user);
  612. for(String roleCode :Globals.POSITION_TYPE_SECTION){
  613. if(userRoleCode.contains(roleCode)){
  614. return 3;
  615. }
  616. }
  617. if(userRoleCode.contains(Globals.POSITION_TYPE_PRO)){
  618. return 4;
  619. }
  620. }
  621. return -1;
  622. }
  623. }