UserWagestrategyServiceImpl.java 24 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555
  1. package cn.com.lzt.userwagestrategy.service.impl;
  2. import java.io.Serializable;
  3. import java.math.BigDecimal;
  4. import java.util.Date;
  5. import java.util.HashMap;
  6. import java.util.List;
  7. import java.util.Map;
  8. import java.util.UUID;
  9. import org.apache.commons.collections.CollectionUtils;
  10. import org.apache.commons.lang3.StringUtils;
  11. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  12. import org.jeecgframework.core.common.model.json.AjaxJson;
  13. import org.jeecgframework.core.common.service.impl.CommonServiceImpl;
  14. import org.jeecgframework.core.constant.Globals;
  15. import org.jeecgframework.core.util.ApplicationContextUtil;
  16. import org.jeecgframework.core.util.ListUtils;
  17. import org.jeecgframework.core.util.MyBeanUtils;
  18. import org.jeecgframework.core.util.MyClassLoader;
  19. import org.jeecgframework.core.util.ResourceUtil;
  20. import org.jeecgframework.core.util.StringUtil;
  21. import org.jeecgframework.core.util.oConvertUtils;
  22. import org.jeecgframework.minidao.pojo.MiniDaoPage;
  23. import org.jeecgframework.web.cgform.enhance.CgformEnhanceJavaInter;
  24. import org.jeecgframework.web.system.pojo.base.TSBaseUser;
  25. import org.jeecgframework.web.system.pojo.base.TSDepart;
  26. import org.jeecgframework.web.system.pojo.base.TSUser;
  27. import org.jeecgframework.web.system.pojo.base.TSUserOrg;
  28. import org.jeecgframework.web.system.service.SystemService;
  29. import org.springframework.beans.factory.annotation.Autowired;
  30. import org.springframework.stereotype.Service;
  31. import org.springframework.transaction.annotation.Transactional;
  32. import cn.com.lzt.dutyfeestrategy.entity.DutyfeeStrategyEntity;
  33. import cn.com.lzt.mealssubsidy.entity.MealsSubsidyEntity;
  34. import cn.com.lzt.megathermalsubsidy.entity.MegathermalSubsidyEntity;
  35. import cn.com.lzt.othersubsidy.entity.OtherSubsidyEntity;
  36. import cn.com.lzt.overtimepaystrategy.entity.OvertimepayStrategyEntity;
  37. import cn.com.lzt.personnelbasearchivesmanage.entity.PersonnelBaseArchivesManageEntity;
  38. import cn.com.lzt.providentfundstrategy.entity.ProvidentFundStrategyEntity;
  39. import cn.com.lzt.socialsecuritystrategy.entity.SocialSecurityStrategyEntity;
  40. import cn.com.lzt.trafficsubsidy.entity.TrafficSubsidyEntity;
  41. import cn.com.lzt.userchangeslog.entity.UserChangesLogEntity;
  42. import cn.com.lzt.userwagestrategy.dao.UserwagestrategyMinidaoDao;
  43. import cn.com.lzt.userwagestrategy.dto.UserWagestrategyDto;
  44. import cn.com.lzt.userwagestrategy.entity.UserWagestrategyEntity;
  45. import cn.com.lzt.userwagestrategy.service.UserWagestrategyServiceI;
  46. import cn.com.lzt.wagestrategy.entity.WagestrategyEntity;
  47. @Service("userWagestrategyService")
  48. @Transactional
  49. public class UserWagestrategyServiceImpl extends CommonServiceImpl implements UserWagestrategyServiceI {
  50. @Autowired
  51. private UserwagestrategyMinidaoDao minidao;
  52. @Autowired
  53. private SystemService systemService;
  54. @Override
  55. public BigDecimal getBaseHourWage(String userid) throws Exception{
  56. PersonnelBaseArchivesManageEntity per = null;
  57. per = findUniqueByProperty(PersonnelBaseArchivesManageEntity.class,"userid",userid);
  58. StringBuffer str = new StringBuffer();
  59. str.append("select * from t_bus_wagestrategy where dutiesid = '"+per.getBelongDutiesid()+"'");
  60. List<WagestrategyEntity> perobident = null;
  61. perobident = this.getSession().createSQLQuery(str.toString()).addEntity(WagestrategyEntity.class).list();
  62. if(perobident != null && !perobident.isEmpty()){
  63. //需要区分是管理层还是一线员工
  64. WagestrategyEntity wa = perobident.get(0);
  65. //uw.setDutiesid(wa.getId());
  66. if(wa != null){
  67. //管理层和一线员工统一
  68. //基本工时费 = 基本工资/(21.75*8)
  69. BigDecimal bwage = wa.getBasicWage().divide(new BigDecimal(21.75),3,BigDecimal.ROUND_HALF_UP)
  70. .divide(new BigDecimal(8),3,BigDecimal.ROUND_HALF_UP);
  71. return bwage;
  72. }
  73. }
  74. return BigDecimal.ZERO;
  75. }
  76. public void delete(UserWagestrategyEntity entity) throws Exception{
  77. super.delete(entity);
  78. //执行删除操作增强业务
  79. this.doDelBus(entity);
  80. }
  81. public Serializable save(UserWagestrategyEntity entity) throws Exception{
  82. Serializable t = super.save(entity);
  83. //执行新增操作增强业务
  84. this.doAddBus(entity);
  85. return t;
  86. }
  87. public void saveOrUpdate(UserWagestrategyEntity entity) throws Exception{
  88. super.saveOrUpdate(entity);
  89. //执行更新操作增强业务
  90. this.doUpdateBus(entity);
  91. }
  92. /**
  93. * 新增操作增强业务
  94. * @param t
  95. * @return
  96. */
  97. private void doAddBus(UserWagestrategyEntity t) throws Exception{
  98. //-----------------sql增强 start----------------------------
  99. //-----------------sql增强 end------------------------------
  100. //-----------------java增强 start---------------------------
  101. //-----------------java增强 end-----------------------------
  102. }
  103. /**
  104. * 更新操作增强业务
  105. * @param t
  106. * @return
  107. */
  108. private void doUpdateBus(UserWagestrategyEntity t) throws Exception{
  109. //-----------------sql增强 start----------------------------
  110. //-----------------sql增强 end------------------------------
  111. //-----------------java增强 start---------------------------
  112. //-----------------java增强 end-----------------------------
  113. }
  114. /**
  115. * 删除操作增强业务
  116. * @param id
  117. * @return
  118. */
  119. private void doDelBus(UserWagestrategyEntity t) throws Exception{
  120. //-----------------sql增强 start----------------------------
  121. //-----------------sql增强 end------------------------------
  122. //-----------------java增强 start---------------------------
  123. //-----------------java增强 end-----------------------------
  124. }
  125. // private Map<String,Object> populationMap(UserWagestrategyEntity t){
  126. // Map<String,Object> map = new HashMap<String,Object>();
  127. // map.put("id", t.getId());
  128. // map.put("create_name", t.getCreateName());
  129. // map.put("create_by", t.getCreateBy());
  130. // map.put("create_date", t.getCreateDate());
  131. // map.put("update_name", t.getUpdateName());
  132. // map.put("update_by", t.getUpdateBy());
  133. // map.put("update_date", t.getUpdateDate());
  134. // map.put("sys_org_code", t.getSysOrgCode());
  135. // map.put("sys_company_code", t.getSysCompanyCode());
  136. // map.put("bpm_status", t.getBpmStatus());
  137. // map.put("userid", t.getUserid());
  138. // map.put("belong_unitid", t.getBelongUnitid());
  139. // map.put("dutiesid", t.getDutiesid());
  140. // map.put("overtimepay_strategyid", t.getOvertimepayStrategyid());
  141. // map.put("duty_strategyid", t.getDutyStrategyid());
  142. // map.put("certificate_subsidyid", t.getCertificateSubsidyid());
  143. // map.put("traffic_subsidyid", t.getTrafficSubsidyid());
  144. // map.put("megathermal_subsidyid", t.getMegathermalSubsidyid());
  145. // map.put("nofixedmeals_subsidyid", t.getNofixedmealsSubsidyid());
  146. // map.put("fixedmeals_subsidyid", t.getFixedmealsSubsidyid());
  147. // map.put("other_subsidyid", t.getOtherSubsidyid());
  148. // map.put("social_security_strategyid", t.getSocialSecurityStrategyid());
  149. // map.put("provident_fund_strategyid", t.getProvidentFundStrategyid());
  150. // map.put("append_pay", t.getAppendPay());
  151. // map.put("deduct_pay", t.getDeductPay());
  152. // map.put("onlychild_pay", t.getOnlychildPay());
  153. // map.put("status", t.getStatus());
  154. // map.put("delete_flag", t.getDeleteFlag());
  155. // map.put("strategy_type", t.getStrategyType());
  156. // return map;
  157. // }
  158. /**
  159. * 替换sql中的变量
  160. * @param sql
  161. * @param t
  162. * @return
  163. */
  164. public String replaceVal(String sql,UserWagestrategyEntity t){
  165. sql = sql.replace("#{id}",String.valueOf(t.getId()));
  166. sql = sql.replace("#{create_name}",String.valueOf(t.getCreateName()));
  167. sql = sql.replace("#{create_by}",String.valueOf(t.getCreateBy()));
  168. sql = sql.replace("#{create_date}",String.valueOf(t.getCreateDate()));
  169. sql = sql.replace("#{update_name}",String.valueOf(t.getUpdateName()));
  170. sql = sql.replace("#{update_by}",String.valueOf(t.getUpdateBy()));
  171. sql = sql.replace("#{update_date}",String.valueOf(t.getUpdateDate()));
  172. sql = sql.replace("#{sys_org_code}",String.valueOf(t.getSysOrgCode()));
  173. sql = sql.replace("#{sys_company_code}",String.valueOf(t.getSysCompanyCode()));
  174. sql = sql.replace("#{bpm_status}",String.valueOf(t.getBpmStatus()));
  175. sql = sql.replace("#{userid}",String.valueOf(t.getUserid()));
  176. sql = sql.replace("#{belong_unitid}",String.valueOf(t.getBelongUnitid()));
  177. sql = sql.replace("#{dutiesid}",String.valueOf(t.getDutiesid()));
  178. sql = sql.replace("#{overtimepay_strategyid}",String.valueOf(t.getOvertimepayStrategyid()));
  179. sql = sql.replace("#{duty_strategyid}",String.valueOf(t.getDutyStrategyid()));
  180. sql = sql.replace("#{certificate_subsidyid}",String.valueOf(t.getCertificateSubsidyid()));
  181. sql = sql.replace("#{traffic_subsidyid}",String.valueOf(t.getTrafficSubsidyid()));
  182. sql = sql.replace("#{megathermal_subsidyid}",String.valueOf(t.getMegathermalSubsidyid()));
  183. //sql = sql.replace("#{meals_subsidyid}",String.valueOf(t.getMealsSubsidyid()));
  184. sql = sql.replace("#{nofixedmeals_subsidyid}", String.valueOf(t.getNofixedmealsSubsidyid()));
  185. sql = sql.replace("#{fixedmeals_subsidyid}", String.valueOf(t.getFixedmealsSubsidyid()));
  186. sql = sql.replace("#{other_subsidyid}",String.valueOf(t.getOtherSubsidyid()));
  187. sql = sql.replace("#{social_security_strategyid}",String.valueOf(t.getSocialSecurityStrategyid()));
  188. sql = sql.replace("#{provident_fund_strategyid}",String.valueOf(t.getProvidentFundStrategyid()));
  189. sql = sql.replace("#{append_pay}",String.valueOf(t.getAppendPay()));
  190. sql = sql.replace("#{deduct_pay}",String.valueOf(t.getDeductPay()));
  191. sql = sql.replace("#{daikou_fee}",String.valueOf(t.getDaikouFee()));
  192. sql = sql.replace("#{onlychild_pay}",String.valueOf(t.getOnlychildPay()));
  193. sql = sql.replace("#{jiaojin_subsidyid}",String.valueOf(t.getJiaojinSubsidyid()));
  194. sql = sql.replace("#{project_performance}",String.valueOf(t.getProjectPerformance()));
  195. sql = sql.replace("#{status}",String.valueOf(t.getStatus()));
  196. sql = sql.replace("#{delete_flag}",String.valueOf(t.getDeleteFlag()));
  197. sql = sql.replace("#{strategy_type}",String.valueOf(t.getStrategyType()));
  198. sql = sql.replace("#{UUID}",UUID.randomUUID().toString());
  199. return sql;
  200. }
  201. /**
  202. * 执行JAVA增强
  203. */
  204. private void executeJavaExtend(String cgJavaType,String cgJavaValue,Map<String,Object> data) throws Exception {
  205. if(StringUtil.isNotEmpty(cgJavaValue)){
  206. Object obj = null;
  207. try {
  208. if("class".equals(cgJavaType)){
  209. //因新增时已经校验了实例化是否可以成功,所以这块就不需要再做一次判断
  210. obj = MyClassLoader.getClassByScn(cgJavaValue).newInstance();
  211. }else if("spring".equals(cgJavaType)){
  212. obj = ApplicationContextUtil.getContext().getBean(cgJavaValue);
  213. }
  214. if(obj instanceof CgformEnhanceJavaInter){
  215. CgformEnhanceJavaInter javaInter = (CgformEnhanceJavaInter) obj;
  216. javaInter.execute("t_bus_user_wagestrategy",data);
  217. }
  218. } catch (Exception e) {
  219. e.printStackTrace();
  220. throw new Exception("执行JAVA增强出现异常!");
  221. }
  222. }
  223. }
  224. @Override
  225. public AjaxJson addOrEdit(List<UserWagestrategyEntity> demos) throws Exception {
  226. String message = "操作成功!";
  227. AjaxJson j = new AjaxJson();
  228. if(CollectionUtils.isNotEmpty(demos)){
  229. for(UserWagestrategyEntity jeecgDemo:demos){
  230. jeecgDemo.setDutiesid(jeecgDemo.getDutid());
  231. jeecgDemo.setUserid(jeecgDemo.getUserids());
  232. jeecgDemo.setBelongUnitid(jeecgDemo.getDepartid());
  233. jeecgDemo.setDepartid(jeecgDemo.getDutid());
  234. jeecgDemo.setDeleteFlag(Globals.Delete_Normal.toString());
  235. jeecgDemo.setPjtId(getBybelongId(jeecgDemo.getUserids()));
  236. TSBaseUser user = systemService.getEntity(TSBaseUser.class, jeecgDemo.getUserids());
  237. if(StringUtil.isEmpty(jeecgDemo.getDutiesid())) {
  238. j.setSuccess(false);
  239. j.setMsg("请完善人事信息后再设置工资策略:" +user.getRealName());
  240. return j;
  241. }
  242. // check用户id的数据是否已经在员工工资策略表中存在
  243. String userWagestrategyByUserIdHql = "from UserWagestrategyEntity where userid = ?";
  244. List<UserWagestrategyEntity> userWagestrategyEntityList = findHql(userWagestrategyByUserIdHql, jeecgDemo.getUserid());
  245. if(userWagestrategyEntityList.size() > 0) {
  246. jeecgDemo.setId(userWagestrategyEntityList.get(0).getId());
  247. }
  248. if (StringUtil.isNotEmpty(jeecgDemo.getId())) {
  249. UserWagestrategyEntity t =this.get(UserWagestrategyEntity.class, jeecgDemo.getId());
  250. try {
  251. j = this.isParmateNull(jeecgDemo,user);
  252. if(j.isSuccess()){
  253. boolean temp = false;
  254. if(oConvertUtils.isNotEmpty(jeecgDemo.getSocialSecurityStrategyid()) && oConvertUtils.isNotEmpty(t.getSocialSecurityStrategyid())){
  255. if(!jeecgDemo.getSocialSecurityStrategyid().equals(t.getSocialSecurityStrategyid())){
  256. temp = true;
  257. }
  258. }
  259. message = "员工工资基本策略: " + jeecgDemo.getBelongUnitid() + "被更新成功";
  260. MyBeanUtils.copyBeanNotNull2Bean(jeecgDemo, t);
  261. //缴金补贴为空时有特殊业务含义,所以允许空值修改
  262. if(jeecgDemo.getJiaojinSubsidyid() == null) {
  263. t.setJiaojinSubsidyid(null);
  264. }
  265. this.saveOrUpdate(t);
  266. if(temp){
  267. changUserChangesLogEntity(t);
  268. }
  269. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  270. }else{
  271. return j;
  272. }
  273. } catch (Exception e) {
  274. e.printStackTrace();
  275. }
  276. } else {
  277. try {
  278. j = this.isParmateNull(jeecgDemo,user);
  279. if(j.isSuccess()){
  280. message = "员工工资基本策略: " + jeecgDemo.getBelongUnitid() + "被添加成功";
  281. this.save(jeecgDemo);
  282. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  283. }else{
  284. return j;
  285. }
  286. } catch (Exception e) {
  287. e.printStackTrace();
  288. }
  289. }
  290. }
  291. }
  292. return j;
  293. }
  294. /**
  295. * 插入缴金记录
  296. * @param t
  297. */
  298. private void changUserChangesLogEntity(UserWagestrategyEntity t){
  299. UserChangesLogEntity ucle = new UserChangesLogEntity();
  300. ucle.setChangeTime(new Date());
  301. TSDepart ts = systemService.get(TSDepart.class, t.getBelongUnitid());
  302. if(ts != null){
  303. ucle.setBelongUnitid(ts.getId());
  304. }
  305. TSBaseUser tsBaseUser = systemService.get(TSBaseUser.class,t.getUserid());
  306. if(tsBaseUser != null){
  307. ucle.setUserCode(tsBaseUser.getUserName());
  308. ucle.setUserName(tsBaseUser.getRealName());
  309. }
  310. TSUser tSUser=ResourceUtil.getSessionUser();
  311. if(tSUser != null){
  312. ucle.setApplicant(tSUser.getRealName());
  313. }
  314. ucle.setChangeType(Globals.CHANGE_TYPE_JIAOJINBIANDONG);
  315. SocialSecurityStrategyEntity soc = get(SocialSecurityStrategyEntity.class,t.getSocialSecurityStrategyid());
  316. if(soc != null){
  317. ucle.setPayUnit(soc.getSocialSecurityUnit());
  318. ucle.setPayRemindStatus(Globals.PAY_REMIND_STATUS_0);
  319. }
  320. String message = "员工【"+tsBaseUser.getRealName()+"】的缴金方式发生了改变!";
  321. this.save(ucle);
  322. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  323. }
  324. /**
  325. * 通过人查询所属项目
  326. * @param userid
  327. * @return
  328. */
  329. private String getBybelongId(String userid){
  330. String temp = "";
  331. StringBuffer hql = new StringBuffer("from TSUserOrg where tsUser.id = :userid and ifpluralism = 0 and status=0");
  332. List<TSUserOrg> tsList = this.getSession().createQuery(hql.toString()).setParameter("userid", userid).list();
  333. if(!tsList.isEmpty()){
  334. TSUserOrg uo = tsList.get(0);
  335. TSDepart tsDepart = uo.getTsDepart();
  336. if("1".equals(tsDepart.getOrgType()) || "3".equals(tsDepart.getOrgType()) || "4".equals(tsDepart.getOrgType()) || "5".equals(tsDepart.getOrgType())){
  337. temp = tsDepart.getId();
  338. }else if("2".equals(tsDepart.getOrgType()) && "1".equals(tsDepart.getTSPDepart().getOrgType())){
  339. temp = tsDepart.getId();
  340. }else{
  341. temp = selectById(tsDepart.getId());
  342. }
  343. }
  344. return temp;
  345. }
  346. private String selectById(String id){
  347. String temp = "";
  348. TSDepart tsDepart = getEntity(TSDepart.class,id);
  349. if("3".equals(tsDepart.getOrgType()) || "5".equals(tsDepart.getOrgType())){
  350. temp = tsDepart.getId();
  351. }else{
  352. if(tsDepart.getTSPDepart() != null){
  353. selectById(tsDepart.getTSPDepart().getId());
  354. temp = tsDepart.getTSPDepart().getId();
  355. }
  356. }
  357. return temp;
  358. }
  359. /**
  360. * 判断员工工资策略设定添加选择
  361. * @param jeecgDemo
  362. * @param user
  363. * @return
  364. */
  365. private AjaxJson isParmateNull(UserWagestrategyEntity jeecgDemo,TSBaseUser user){
  366. AjaxJson j = new AjaxJson();
  367. String message = "操作成功!";
  368. j.setSuccess(true);
  369. j.setMsg(message);
  370. if(StringUtils.isNotEmpty(jeecgDemo.getOvertimepayStrategyid())){
  371. OvertimepayStrategyEntity overtime = systemService.getEntity(OvertimepayStrategyEntity.class,jeecgDemo.getOvertimepayStrategyid());
  372. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  373. j.setSuccess(false);
  374. message = "操作失败,原因:由于 用户姓名【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】加班费策略选项有误,请重新选择!";
  375. j.setMsg(message);
  376. return j;
  377. }
  378. }
  379. if(StringUtils.isNotEmpty(jeecgDemo.getDutyStrategyid())){
  380. DutyfeeStrategyEntity overtime = systemService.getEntity(DutyfeeStrategyEntity.class,jeecgDemo.getDutyStrategyid());
  381. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  382. j.setSuccess(false);
  383. message = "操作失败,原因:由于用户【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】值班费策略选项有误,请重新选择!";
  384. j.setMsg(message);
  385. return j;
  386. }
  387. }
  388. if(StringUtils.isNotEmpty(jeecgDemo.getTrafficSubsidyid())){
  389. TrafficSubsidyEntity overtime = systemService.getEntity(TrafficSubsidyEntity.class,jeecgDemo.getTrafficSubsidyid());
  390. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  391. j.setSuccess(false);
  392. message = "操作失败,原因:由于用户【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】交通费补贴选项有误,请重新选择!";
  393. j.setMsg(message);
  394. return j;
  395. }
  396. }
  397. if(StringUtils.isNotEmpty(jeecgDemo.getMegathermalSubsidyid())){
  398. MegathermalSubsidyEntity overtime = systemService.getEntity(MegathermalSubsidyEntity.class,jeecgDemo.getMegathermalSubsidyid());
  399. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  400. j.setSuccess(false);
  401. message = "操作失败,原因:由于用户【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】高温补贴选项有误,请重新选择!";
  402. j.setMsg(message);
  403. return j;
  404. }
  405. }
  406. if(StringUtils.isNotEmpty(jeecgDemo.getNofixedmealsSubsidyid())){
  407. MealsSubsidyEntity overtime = systemService.getEntity(MealsSubsidyEntity.class,jeecgDemo.getNofixedmealsSubsidyid());
  408. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  409. j.setSuccess(false);
  410. message = "操作失败,原因:由于用户【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】不固定餐费补贴选项有误,请重新选择!";
  411. j.setMsg(message);
  412. return j;
  413. }
  414. }
  415. if(StringUtils.isNotEmpty(jeecgDemo.getFixedmealsSubsidyid())){
  416. MealsSubsidyEntity overtime = systemService.getEntity(MealsSubsidyEntity.class,jeecgDemo.getFixedmealsSubsidyid());
  417. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  418. j.setSuccess(false);
  419. message = "操作失败,原因:由于用户【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】固定餐费补贴选项有误,请重新选择!";
  420. j.setMsg(message);
  421. return j;
  422. }
  423. }
  424. if(StringUtils.isNotEmpty(jeecgDemo.getOtherSubsidyid())){
  425. OtherSubsidyEntity overtime = systemService.getEntity(OtherSubsidyEntity.class,jeecgDemo.getOtherSubsidyid());
  426. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  427. j.setSuccess(false);
  428. message = "操作失败,原因:由于用户【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】其他补贴选项有误,请重新选择!";
  429. j.setMsg(message);
  430. return j;
  431. }
  432. }
  433. if(StringUtils.isNotEmpty(jeecgDemo.getSocialSecurityStrategyid())){
  434. SocialSecurityStrategyEntity overtime = systemService.getEntity(SocialSecurityStrategyEntity.class,jeecgDemo.getSocialSecurityStrategyid());
  435. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  436. j.setSuccess(false);
  437. message = "操作失败,原因:由于用户【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】社保策略选项有误,请重新选择!";
  438. j.setMsg(message);
  439. return j;
  440. }
  441. }
  442. if(StringUtils.isNotEmpty(jeecgDemo.getProvidentFundStrategyid())){
  443. ProvidentFundStrategyEntity overtime = systemService.getEntity(ProvidentFundStrategyEntity.class,jeecgDemo.getProvidentFundStrategyid());
  444. if(overtime == null || !Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) || !Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  445. j.setSuccess(false);
  446. message = "操作失败,原因:由于用户【"+user.getRealName()+"】,用户编号【"+user.getUserName()+"】公积金策略选项有误,请重新选择!";
  447. j.setMsg(message);
  448. return j;
  449. }
  450. }
  451. return j;
  452. }
  453. /**
  454. * 查询员工工资策略(Minidao方式)
  455. */
  456. @Override
  457. public MiniDaoPage<UserWagestrategyDto> getAllEntities(UserWagestrategyDto dto, List<String> useridList, int page, int rows, String sql) {
  458. return minidao.getAllEntities(dto, useridList, page, rows, sql);
  459. }
  460. public void businessAccounting(){
  461. /*List<UserWageEntity> list = null;
  462. List<UserWagestrategyEntity> entityList = systemService.findListbySql("select * from t_bus_user_wagestrategy w " +
  463. "where w.status = '0' and delete_flag = '0'");
  464. if(!entityList.isEmpty()){
  465. list = new ArrayList<UserWageEntity>();
  466. UserWageEntity uw = null;
  467. for (UserWagestrategyEntity uwe : entityList) {
  468. uw = new UserWageEntity();
  469. uw.setUserid(uwe.getId());
  470. uw.setBelongUnitid(uwe.getBelongUnitid());
  471. uw.setDutiesid(uwe.getDutid());
  472. }
  473. }*/
  474. }
  475. private BigDecimal isOvertimepayStrategy(String id){
  476. BigDecimal big = null;
  477. OvertimepayStrategyEntity overtime = systemService.getEntity(OvertimepayStrategyEntity.class,id);
  478. if(overtime != null && Globals.Delete_Normal.toString().equals(overtime.getDeleteFlag()) && Globals.Enabled_Status.toString().equals(overtime.getStatus())){
  479. }
  480. return big;
  481. }
  482. @Override
  483. public UserWagestrategyEntity getUserWagestrategyEntityByUserId(String userid)
  484. throws Exception {
  485. UserWagestrategyEntity userWagestrategyEntity = null;
  486. if (oConvertUtils.isEmpty(userid)) {
  487. return userWagestrategyEntity;
  488. }
  489. CriteriaQuery cq = new CriteriaQuery(UserWagestrategyEntity.class);
  490. cq.eq("userid", userid);
  491. cq.add();
  492. cq.eq("deleteFlag", "0");
  493. cq.add();
  494. List<UserWagestrategyEntity> resulEntities = getListByCriteriaQuery(cq, false);
  495. if (!ListUtils.isNullOrEmpty(resulEntities)) {
  496. userWagestrategyEntity = resulEntities.get(0);
  497. }
  498. return userWagestrategyEntity;
  499. }
  500. @Override
  501. public List<UserWagestrategyEntity> getByuserid(String userid) {
  502. return minidao.getByuserid(userid);
  503. }
  504. @Override
  505. public MiniDaoPage<UserWagestrategyDto> getExcelPutOut(UserWagestrategyDto dto, List<String> useridList, int page, int rows, String sql) {
  506. return minidao.getExcelPutOut(dto, useridList, page, rows, sql);
  507. }
  508. }