| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395139613971398139914001401140214031404140514061407140814091410141114121413141414151416141714181419142014211422142314241425142614271428142914301431143214331434143514361437143814391440144114421443144414451446144714481449145014511452145314541455145614571458145914601461146214631464146514661467146814691470147114721473147414751476147714781479148014811482148314841485148614871488148914901491149214931494149514961497149814991500150115021503150415051506150715081509151015111512151315141515151615171518151915201521152215231524152515261527152815291530153115321533153415351536153715381539154015411542154315441545154615471548154915501551155215531554155515561557155815591560156115621563156415651566156715681569157015711572157315741575157615771578157915801581158215831584158515861587158815891590159115921593159415951596159715981599160016011602160316041605160616071608160916101611161216131614161516161617161816191620162116221623162416251626162716281629163016311632163316341635163616371638163916401641164216431644164516461647164816491650165116521653165416551656165716581659166016611662166316641665166616671668166916701671167216731674167516761677167816791680168116821683168416851686168716881689169016911692169316941695169616971698169917001701170217031704170517061707170817091710171117121713171417151716171717181719172017211722172317241725172617271728172917301731173217331734173517361737173817391740174117421743174417451746174717481749175017511752175317541755175617571758175917601761176217631764176517661767176817691770177117721773177417751776177717781779178017811782178317841785178617871788178917901791179217931794179517961797179817991800180118021803180418051806180718081809181018111812181318141815181618171818181918201821182218231824182518261827182818291830183118321833183418351836183718381839184018411842184318441845184618471848184918501851185218531854185518561857185818591860186118621863186418651866186718681869187018711872187318741875187618771878187918801881188218831884188518861887188818891890189118921893189418951896189718981899190019011902190319041905190619071908190919101911191219131914191519161917191819191920192119221923192419251926192719281929193019311932193319341935193619371938193919401941194219431944194519461947194819491950195119521953195419551956195719581959196019611962196319641965196619671968196919701971197219731974197519761977197819791980198119821983198419851986198719881989199019911992199319941995199619971998199920002001200220032004200520062007 |
- package cn.com.lzt.userwage.controller;
- import cn.com.lzt.arrangeduty.dto.ProjectDepartDto;
- import cn.com.lzt.common.dto.VisibleUserDto;
- import cn.com.lzt.common.service.DataPermissionServiceI;
- import cn.com.lzt.dialogDeal.service.UserDepartOrgDealServiceI;
- import cn.com.lzt.dingattendanceinfo.entity.DingAttendanceinfoEntity;
- import cn.com.lzt.project.entity.ProjectEntity;
- import cn.com.lzt.useroptions.entity.TBusUserOptionsEntity;
- import cn.com.lzt.useroptions.service.TBusUserOptionsServiceI;
- import cn.com.lzt.userwage.dto.UserNewWageDetaillsDto;
- import cn.com.lzt.userwage.dto.UserNewWageDto;
- import cn.com.lzt.userwage.dto.UserWagePaperDto;
- import cn.com.lzt.userwage.dto.UserWageViewDto;
- import cn.com.lzt.userwage.entity.UserNewWageEntity;
- import cn.com.lzt.userwage.entity.UserNewwagePage;
- import cn.com.lzt.userwage.service.UserNewWagePayrollServiceI;
- import cn.com.lzt.userwage.service.UserNewWageServiceI;
- import cn.com.lzt.userwagestrategyhistory.entity.UserWagestrategyHistoryEntity;
- import org.apache.commons.collections.CollectionUtils;
- import org.apache.commons.lang.StringUtils;
- import org.apache.ibatis.annotations.Param;
- import org.apache.log4j.Logger;
- import org.apache.poi.hssf.usermodel.HSSFWorkbook;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.jeecgframework.core.beanvalidator.BeanValidators;
- import org.jeecgframework.core.common.controller.BaseController;
- import org.jeecgframework.core.common.exception.BusinessException;
- import org.jeecgframework.core.common.model.json.AjaxJson;
- import org.jeecgframework.core.common.model.json.DataGrid;
- import org.jeecgframework.core.constant.Globals;
- import org.jeecgframework.core.util.*;
- import org.jeecgframework.minidao.pojo.MiniDaoPage;
- import org.jeecgframework.poi.excel.ExcelExportUtil;
- import org.jeecgframework.poi.excel.ExcelImportUtil;
- import org.jeecgframework.poi.excel.annotation.Excel;
- import org.jeecgframework.poi.excel.entity.ExportParams;
- import org.jeecgframework.poi.excel.entity.ImportParams;
- import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
- import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
- import org.jeecgframework.tag.core.easyui.TagUtil;
- import org.jeecgframework.web.system.pojo.base.TSBaseUser;
- import org.jeecgframework.web.system.pojo.base.TSDepart;
- import org.jeecgframework.web.system.pojo.base.TSUser;
- import org.jeecgframework.web.system.pojo.base.TSUserOrg;
- import org.jeecgframework.web.system.service.SystemService;
- import org.springframework.beans.factory.annotation.Autowired;
- import org.springframework.http.HttpHeaders;
- import org.springframework.http.HttpStatus;
- import org.springframework.http.MediaType;
- import org.springframework.http.ResponseEntity;
- import org.springframework.stereotype.Controller;
- import org.springframework.ui.ModelMap;
- import org.springframework.web.bind.annotation.*;
- import org.springframework.web.multipart.MultipartFile;
- import org.springframework.web.multipart.MultipartHttpServletRequest;
- import org.springframework.web.servlet.ModelAndView;
- import org.springframework.web.util.UriComponentsBuilder;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.http.HttpServletRequest;
- import javax.servlet.http.HttpServletResponse;
- import javax.servlet.http.HttpSession;
- import javax.validation.ConstraintViolation;
- import javax.validation.Validator;
- import java.beans.PropertyDescriptor;
- import java.io.IOException;
- import java.io.UnsupportedEncodingException;
- import java.lang.reflect.Field;
- import java.lang.reflect.InvocationTargetException;
- import java.lang.reflect.Method;
- import java.math.BigDecimal;
- import java.net.URI;
- import java.text.ParseException;
- import java.util.*;
- /**
- * @Title: Controller
- * @Description: 员工工资核算表
- * @author onlineGenerator
- * @date 2017-10-26 18:36:30
- * @version V1.0
- *
- */
- @Controller
- @RequestMapping("/userNewWageController")
- public class UserNewWageController extends BaseController {
- /**
- * Logger for this class
- */
- private static final Logger logger = Logger.getLogger(UserNewWageController.class);
- @Autowired
- private UserNewWagePayrollServiceI userPayrollService;
- @Autowired
- private UserNewWageServiceI userWageService;
- @Autowired
- private SystemService systemService;
- @Autowired
- private Validator validator;
-
- @Autowired
- private DataPermissionServiceI dataPermissionService;
-
- @Autowired
- private UserDepartOrgDealServiceI userDepartOrgDealService;
-
- @Autowired
- private TBusUserOptionsServiceI userOptionsService;
- /**
- * 得到上个月的年月
- * @return
- */
- private String getMonthlys(){
- Calendar cal = Calendar.getInstance();
- int year = cal.get(Calendar.YEAR);
- int month = cal.get(Calendar.MONTH);
- if(month < 10){
- if(month == 0){
- year = year - 1;
- month = 12;
- }else{
- // month = Integer.valueOf(0+""+month);
- return year + "-" + 0 + "" + month;
- }
- }
- return year+"-"+month;
- }
- /**
- * 员工工资核算表列表 页面跳转
- *
- * @return
- */
- @RequestMapping(params = "list")
- public ModelAndView list(HttpServletRequest request) {
- HttpSession session = ContextHolderUtils.getSession();
- TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- String departid = "";
- String departname = "";
-
- try {
- TBusUserOptionsEntity options = userOptionsService.getOptionsByUserID(tuser.getId(), Globals.USER_OPTIONS_TYPE_PROJECT, false);
- if(options != null) {
- departid = options.getOptionId();
- departname = options.getOptionName();
- }
- } catch (Exception e) {
- e.printStackTrace();
- org.jeecgframework.core.util.LogUtil.error(e.getMessage());
- }
-
- if (oConvertUtils.isNotEmpty(departid)) {
- request.setAttribute("departid", departid);
- request.setAttribute("departname", departname);
- }
- request.setAttribute("monthlys", getMonthlys());
- return new ModelAndView("cn/com/lzt/userwage/userWageList");
- }
-
- /**
- * 员工工资核算表列表 页面跳转
- *
- * @return
- */
- @RequestMapping(params = "listView")
- public ModelAndView listView(HttpServletRequest request) {
- String orgid = request.getParameter("orgid");
- String monthly = request.getParameter("monthly");
- if(oConvertUtils.isNotEmpty(monthly)){
- request.setAttribute("monthlys", monthly);
- request.setAttribute("orgid", orgid);
- }else{
- request.setAttribute("monthlys", getMonthlys());
- }
- return new ModelAndView("cn/com/lzt/userwage/userWageViewList");
- }
- @RequestMapping(params = "logrp")
- public ModelAndView logrp(@Param("id") String id,HttpServletRequest request){
- if(StringUtils.isNotEmpty(id)){
- UserNewWageEntity userWage = systemService.get(UserNewWageEntity.class, id);
- TSBaseUser tsBaseUser = systemService.get(TSBaseUser.class, userWage.getUserid());
- request.setAttribute("realname", tsBaseUser.getRealName());
- if(userWage != null){
- //systemService.get
- StringBuffer hql = new StringBuffer("from UserWagestrategyHistoryEntity where userid =? and strategyMonth = ? ");
- List<UserWagestrategyHistoryEntity> userList = systemService.findHql(hql.toString(),userWage.getUserid(),userWage.getMonthly());
- //List<UserWagestrategyHistoryEntity> userList = systemService.findListbySql("select * from t_bus_user_wagestrategy_history where userid = '"+userWage.getUserid()+"' and strategy_month = '"+userWage.getMonthly()+"'");
- if(!userList.isEmpty() && userList.size() > 0){
- // System.out.println(JSONObject.toJSONString(userList.get(0)));
- request.setAttribute("userwh", userList.get(0));
- }else{
- request.setAttribute("userwh",new UserWagestrategyHistoryEntity());
- }
- }
- }
- return new ModelAndView("cn/com/lzt/userwage/userwagestrategy-view");
- }
-
- @RequestMapping(params = "goview")
- public ModelAndView goView(@Param("belongUnitname") String belongUnitname,@Param("id") String id,@Param("monthly")String monthly,@Param("type")String type, HttpServletRequest request){
- request.setAttribute("id", id);
- TSDepart depart = systemService.get(TSDepart.class, id);
- if(depart != null) {
- request.setAttribute("belongUnitname",depart.getDepartname());
- }
- request.setAttribute("monthly", monthly);
- request.setAttribute("monthlys",monthly);
- request.setAttribute("type",type);
- return new ModelAndView("cn/com/lzt/userwage/userWageEditList");
- }
-
- /**
- * 直接打开工资编辑
- * @param belongUnitname
- * @param id
- * @param monthly
- * @param type
- * @param request
- * @return
- */
- @RequestMapping(params = "editList")
- public ModelAndView editList(@Param("belongUnitname") String belongUnitname,@Param("id") String id,@Param("monthly")String monthly,@Param("type")String type, HttpServletRequest request){
- // request.setAttribute("id", id);
- // TSDepart depart = systemService.get(TSDepart.class, id);
- // if(depart != null) {
- // request.setAttribute("belongUnitname",depart.getDepartname());
- // }
- // request.setAttribute("monthly", monthly);
- // request.setAttribute("monthlys",monthly);
- // request.setAttribute("type",type);
- return new ModelAndView("cn/com/lzt/userwage/userWageEditList");
- }
-
- /**
- * 所有项目(部门)选择弹窗页面跳转路径
- * 列表页弹窗
- * @author liujie
- * 2017-12-13
- * @param request
- * @return
- */
- @RequestMapping(params = "projectDepartTableAll")
- public ModelAndView projectDepartTableAll(HttpServletRequest request) {
- //return new ModelAndView("cn/com/lzt/arrangeduty/dutyMealTable");
- ModelAndView mv = new ModelAndView("cn/com/lzt/userwage/projectDepartTableAll");
- String ids = oConvertUtils.getString(request.getParameter("ids"));
- mv.addObject("ids", ids);
- return mv;
-
- }
-
- /**
- * 项目(部门)选择弹窗列表数据
- * @author liujie
- * 2017-11-15
- * @param projectDepartDto
- * @param request
- * @param response
- * @param dataGrid
- */
- @RequestMapping(params = "projectDepartDatagridAll")
- public void projectDepartDatagridAll(ProjectDepartDto projectDepartDto, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
- TSUser tSUser=ResourceUtil.getSessionUser();
- List<ProjectDepartDto> projectDepartDtoList=userWageService.getProjectDepartAll(projectDepartDto,tSUser.getId());
- dataGrid.setResults(projectDepartDtoList);
- TagUtil.datagrid(response, dataGrid);
- }
-
- /**
- * 员工工资核算表列表 页面跳转
- *
- * @return
- */
- @RequestMapping(params = "listNewWageDetails")
- public ModelAndView listNewWageDetails(@Param("realname") String realname,@Param("belongBank") String belongBank,@Param("pid") String pid,@Param("monthly")String monthly,HttpServletRequest request) {
- request.setAttribute("monthlys", getMonthlys());
- request.setAttribute("monthly", monthly);
- request.setAttribute("orgid", pid);
- request.setAttribute("realname", realname);
- request.setAttribute("belongBank", belongBank);
-
- return new ModelAndView("cn/com/lzt/userwage/userNewWageDetailsList");
- }
-
- /**
- * 员工月度工资明细表格
- *
- * @param request
- * @param response
- * @param dataGrid
- * @param user
- * @throws ParseException
- */
- @RequestMapping(params = "datagrid_detail")
- public void datagrid_detail(UserNewWageDto userWage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) throws ParseException {
- String monthlys = request.getParameter("monthlys");
- String monthly = request.getParameter("monthly");
- String realname = request.getParameter("realname");
- String belongBank = request.getParameter("belongBank");
- String orgIds = request.getParameter("orgIds");
- String orgId = request.getParameter("orgid");
- String type = request.getParameter("type");
- if(oConvertUtils.isEmpty(monthlys) && oConvertUtils.isEmpty(monthly)){
- dataGrid.setResults(new ArrayList<UserNewWageDto>());
- dataGrid.setFooter("");
- TagUtil.datagrid(response, dataGrid);
- return;
- }
- if(realname != null) {
- userWage.setRealname(realname);
- }
- if(belongBank != null) {
- userWage.setBelongBank(belongBank);
- }
- MiniDaoPage<UserNewWageDto> list = null;
- if(oConvertUtils.isNotEmpty(monthlys) || oConvertUtils.isNotEmpty(monthly)){
- if(StringUtils.isEmpty(orgIds)&&StringUtils.isNotEmpty(orgId)){
- List<String> orgIdList = extractIdListByComma(orgId);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- if(oConvertUtils.isNotEmpty(type) && "1".equals(type)){
- userWage.setOrgIdList(orgIdList);
- }else{
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }else{
- if(StringUtils.isNotEmpty(orgIds)){
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }
-
- if(StringUtils.isNotEmpty(monthlys)){
- userWage.setMonthly(monthlys);
- }else{
- if(StringUtils.isNotEmpty(monthly)){
- request.setAttribute("monthlys", monthly);
- userWage.setMonthly(monthly);
- }else{
- request.setAttribute("monthlys", getMonthlys());
- userWage.setMonthly(getMonthlys());
- }
- //userWage.setMonthly(sim.format(sim.parse("2017-10")));
- }
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- VisibleUserDto dto = dataPermissionService.getVisibleUserList();// 获取当前用户可见的userid列表
- if(dto != null){
- if(dto.getFlag().value().equalsIgnoreCase("ALL")){
- list = userWageService.getPagedEntities(userWage,null,null,dataGrid.getPage(), dataGrid.getRows(), authSql);
- // map = userWageService.getMoneySUM(userWage,null,moth);
- }else if(dto.getFlag().value().equalsIgnoreCase("NONE")){
- // 获取当前登录用户
- HttpSession session = ContextHolderUtils.getSession();
- TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- List<String> uidList = new ArrayList<String>();
- uidList.add(user.getId());
- list = userWageService.getPagedEntities(userWage,uidList,null,dataGrid.getPage(), dataGrid.getRows(), authSql);
- // map = userWageService.getMoneySUM(userWage,uidList,moth);
- }else if(dto.getFlag().value().equalsIgnoreCase("PART")){
- List<String> useridList = dto.getUseridList();
- if(useridList != null && useridList.size() > 0){
- list = userWageService.getPagedEntities(userWage,useridList,null,dataGrid.getPage(), dataGrid.getRows(), authSql);
- // map = userWageService.getMoneySUM(userWage,useridList,moth);
- }
- }
- }
- // 为了提高效率,人事部门不做工资权限限制. 20170628 xzx
-
- // UserNewWageDto> list = userWageService.getAll(userWage,authSql);
- if(list != null && !list.getResults().isEmpty()){
- for (Iterator iterator = list.getResults().iterator(); iterator.hasNext();) {
- UserNewWageDto userWageDto = (UserNewWageDto) iterator.next();
- if (oConvertUtils.isEmpty(userWageDto.getId())) {
- userWageDto.setId("temp"+UUIDGenerator.generate());
- }
- if(StringUtils.isNotEmpty(userWage.getStatus())){
- if(StringUtils.isEmpty(userWageDto.getMonthly())){
- iterator.remove();
- }
- }
- if(StringUtils.isEmpty(userWageDto.getMonthly())){
- userWageDto.setBelongUnitName(getBybelongId(userWageDto.getUserids()));
- }
- }
- Collections.sort(list.getResults());
- dataGrid.setResults(list.getResults());
- dataGrid.setTotal(list.getTotal());
- }
- }
- if(list == null || list.getResults() == null || list.getResults().size() == 0){
- dataGrid.setResults(new ArrayList<UserNewWageDto>());
- dataGrid.setFooter("");
- }
- TagUtil.datagrid(response, dataGrid);
- }
-
-
- /**
- * 员工工资核算表列表 页面跳转
- *
- * @return
- */
- @RequestMapping(params = "listManagerWageDetails")
- public ModelAndView listManagerWageDetails(@Param("realname") String realname,@Param("belongBank") String belongBank,@Param("pid") String pid,@Param("monthly")String monthly,HttpServletRequest request) {
- request.setAttribute("monthlys", getMonthlys());
- request.setAttribute("monthly", monthly);
- request.setAttribute("orgid", pid);
- request.setAttribute("realname", realname);
- request.setAttribute("belongBank", belongBank);
-
- return new ModelAndView("cn/com/lzt/userwage/managerWageDetailsList");
- }
-
- /**
- * 员工月度工资明细表格
- *
- * @param request
- * @param response
- * @param dataGrid
- * @param user
- * @throws ParseException
- */
- @RequestMapping(params = "datagrid_manager_detail")
- public void datagrid_manager_detail(UserNewWageDto userWage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) throws ParseException {
- String monthlys = request.getParameter("monthlys");
- String monthly = request.getParameter("monthly");
- String realname = request.getParameter("realname");
- String belongBank = request.getParameter("belongBank");
- String orgIds = request.getParameter("orgIds");
- String orgId = request.getParameter("orgid");
- String type = request.getParameter("type");
- if(oConvertUtils.isEmpty(monthlys) && oConvertUtils.isEmpty(monthly)){
- dataGrid.setResults(new ArrayList<UserNewWageDto>());
- dataGrid.setFooter("");
- TagUtil.datagrid(response, dataGrid);
- return;
- }
- if(realname != null) {
- userWage.setRealname(realname);
- }
- if(belongBank != null) {
- userWage.setBelongBank(belongBank);
- }
- MiniDaoPage<UserNewWageDto> list = null;
- if(oConvertUtils.isNotEmpty(monthlys) || oConvertUtils.isNotEmpty(monthly)){
- if(StringUtils.isEmpty(orgIds)&&StringUtils.isNotEmpty(orgId)){
- List<String> orgIdList = extractIdListByComma(orgId);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- if(oConvertUtils.isNotEmpty(type) && "1".equals(type)){
- userWage.setOrgIdList(orgIdList);
- }else{
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }else{
- if(StringUtils.isNotEmpty(orgIds)){
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }
-
- if(StringUtils.isNotEmpty(monthlys)){
- userWage.setMonthly(monthlys);
- }else{
- if(StringUtils.isNotEmpty(monthly)){
- request.setAttribute("monthlys", monthly);
- userWage.setMonthly(monthly);
- }else{
- request.setAttribute("monthlys", getMonthlys());
- userWage.setMonthly(getMonthlys());
- }
- //userWage.setMonthly(sim.format(sim.parse("2017-10")));
- }
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- StringBuffer projecthql = new StringBuffer("from ProjectEntity where 1=1");
- List<ProjectEntity> projectlist = systemService.getSession().createQuery(projecthql.toString()).list();
-
- List<String> idList = new ArrayList<String>();
- for(ProjectEntity pentity : projectlist) {
- if(pentity.getJianguanLeader() != null && !idList.contains(pentity.getJianguanLeader())) {
- AjaxJson s = isDuties(pentity.getJianguanLeader());
- if(s.isSuccess()){
- idList.add(pentity.getJianguanLeader());
- }
- }
- if(pentity.getXianchangLeader() != null && !idList.contains(pentity.getXianchangLeader())) {
- AjaxJson s = isDuties(pentity.getXianchangLeader());
- if(s.isSuccess()){
- idList.add(pentity.getXianchangLeader());
- }
- }
- }
- if(!idList.isEmpty() && idList.size() > 0){
- list = userWageService.getManagerWagePagedEntities(userWage,idList,null,dataGrid.getPage(), dataGrid.getRows(), authSql);
- }
- // 为了提高效率,人事部门不做工资权限限制. 20170628 xzx
- if(list != null && !list.getResults().isEmpty()){
- for (Iterator iterator = list.getResults().iterator(); iterator.hasNext();) {
- UserNewWageDto userWageDto = (UserNewWageDto) iterator.next();
- if (oConvertUtils.isEmpty(userWageDto.getId())) {
- userWageDto.setId("temp"+UUIDGenerator.generate());
- }
- if(StringUtils.isNotEmpty(userWage.getStatus())){
- if(StringUtils.isEmpty(userWageDto.getMonthly())){
- iterator.remove();
- }
- }
- if(StringUtils.isEmpty(userWageDto.getMonthly())){
- userWageDto.setBelongUnitName(getBybelongId(userWageDto.getUserids()));
- }
- }
- Collections.sort(list.getResults());
- dataGrid.setResults(list.getResults());
- dataGrid.setTotal(list.getTotal());
- }
-
- }
- if(list == null || list.getResults() == null || list.getResults().size() == 0){
- dataGrid.setResults(new ArrayList<UserNewWageDto>());
- dataGrid.setFooter("");
- }
- TagUtil.datagrid(response, dataGrid);
- }
-
- /**
- * 判断员工是否有职务和工资策略
- * @param userid
- * @return
- */
- private AjaxJson isDuties(String userid){
- AjaxJson j = new AjaxJson();
- j.setSuccess(true);
- if(oConvertUtils.isNotEmpty(userid)){
- TSBaseUser user = systemService.get(TSBaseUser.class, userid);
- if(!"admin".equals(user.getUserName()) && !"110".equals(user.getUserName())){
- Map<String,String> map = userPayrollService.isDuties(userid);
- if(map.isEmpty() || oConvertUtils.isEmpty(map.get("basicWage"))){
- j.setSuccess(false);
- j.setMsg("员工【"+user.getRealName()+"】没有职务或没有给职务设置基本工资,请设置!");
- }
- }
- }
- return j;
- }
- /**
- * 月度工资一览的表格数据
- *
- * @param request
- * @param response
- * @param dataGrid
- * @param user
- */
- @RequestMapping(params = "datagrid1")
- public void datagrid1(UserWageViewDto userWage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
- String monthlys = request.getParameter("monthlys");
- if(oConvertUtils.isNotEmpty(monthlys)){
- String orgIds = request.getParameter("orgIds");
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
-
- userWage.setMonthly(monthlys);
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- VisibleUserDto dto = dataPermissionService.getVisibleUserList();// 获取当前用户可见的userid列表
- if(dto != null){
- MiniDaoPage<UserWageViewDto> list = new MiniDaoPage<UserWageViewDto>();
- Map<String,Integer> map = new HashMap<String,Integer>();
- list = userWageService.getViewEntities(userWage,null,dataGrid.getPage(), dataGrid.getRows(), authSql);
- map = userWageService.getMoneyViewSUM(userWage,null);
- // if(dto.getFlag().value().equalsIgnoreCase("ALL")){
- // list = userWageService.getViewEntities(userWage,null,dataGrid.getPage(), dataGrid.getRows(), authSql);
- // map = userWageService.getMoneyViewSUM(userWage,null);
- // }else if(dto.getFlag().value().equalsIgnoreCase("NONE")){
- // // 获取当前登录用户
- // HttpSession session = ContextHolderUtils.getSession();
- // TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- // List<String> uidList = new ArrayList<String>();
- // uidList.add(user.getId());
- // list = userWageService.getViewEntities(userWage,uidList,dataGrid.getPage(), dataGrid.getRows(), authSql);
- // map = userWageService.getMoneyViewSUM(userWage,uidList);
- // }else if(dto.getFlag().value().equalsIgnoreCase("PART")){
- // List<String> useridList = dto.getUseridList();
- // if(useridList != null && useridList.size() > 0){
- // list = userWageService.getViewEntities(userWage,useridList,dataGrid.getPage(), dataGrid.getRows(), authSql);
- // map = userWageService.getMoneyViewSUM(userWage,useridList);
- // }
- // }
- //MiniDaoPage<UserWageViewDto> list = userWageService.getViewEntities(userWage, dataGrid.getPage(), dataGrid.getRows(), authSql);
- dataGrid.setResults(list.getResults());
- //Map<String,Integer> map = userWageService.getMoneyViewSUM(userWage);
-
- StringBuffer str = new StringBuffer();
- str.append("sumcount:"+(String.valueOf(map.get("sumcount")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("sumcount")))+",");
- str.append("basicWage:"+(String.valueOf(map.get("basic_wage")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("basic_wage")))+",");
- str.append("dutiesAllowance:"+(String.valueOf(map.get("duties_allowance")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("duties_allowance")))+",");
- str.append("certificateSubsidy:"+(String.valueOf(map.get("certificate_subsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("certificate_subsidy")))+",");
- str.append("projectPerformance:"+(String.valueOf(map.get("project_performance")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("project_performance")))+",");
- str.append("mealsSubsidy:"+(String.valueOf(map.get("meals_subsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("meals_subsidy")))+",");
- str.append("specialOvertime:"+(String.valueOf(map.get("special_overtime")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("special_overtime")))+",");
- str.append("absenceDebit:"+(String.valueOf(map.get("absence_debit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("absence_debit")))+",");
- str.append("paymentSubsidy:"+(String.valueOf(map.get("payment_subsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("payment_subsidy")))+",");
- str.append("deductions:"+(String.valueOf(map.get("deductions")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("deductions")))+",");
- str.append("comDeductions:"+(String.valueOf(map.get("comDeductions")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("comDeductions")))+",");
- str.append("comCost:"+(String.valueOf(map.get("comCost")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("comCost")))+",");
-
- str.append("preTaxMone:"+(String.valueOf(map.get("pre_tax_mone")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("pre_tax_mone")))+",");
- str.append("daikouDebit:"+(String.valueOf(map.get("daikouDebit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("daikouDebit")))+",");
- str.append("otherDebit:"+(String.valueOf(map.get("other_debit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("other_debit")))+",");
- str.append("reissue:"+(String.valueOf(map.get("reissue")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("reissue")))+",");
- str.append("taxMoney:"+(String.valueOf(map.get("tax_money")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("tax_money")))+",");
- str.append("actualMoney:"+(String.valueOf(map.get("actual_money")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("actual_money"))));
- dataGrid.setFooter(str.toString());
- }
- }else{
- dataGrid.setResults(new ArrayList<UserWageViewDto>());
- dataGrid.setFooter("");
- }
- TagUtil.datagrid(response, dataGrid);
- }
-
- /**
- * easyui AJAX请求数据
- *
- * @param request
- * @param response
- * @param dataGrid
- * @param user
- * @throws ParseException
- */
- @RequestMapping(params = "datagrid2")
- public void datagrid2(UserNewWageDto userWage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) throws ParseException {
- String monthlys = request.getParameter("monthlys");
- if(StringUtils.isNotEmpty(monthlys)){
- String orgIds = request.getParameter("orgIds");
- if(StringUtils.isNotEmpty(orgIds)){
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- if(!ChildIdList.isEmpty()){
- List<String> ch = new ArrayList<String>();
- for (String str : ChildIdList) {
- ch.add(str);
- }
- ChildIdList = ch;
- }
- userWage.setOrgIdList(ChildIdList);
- }
- if(orgIdList != null && orgIdList.size()>0 && orgIdList.get(0)!=null &&orgIdList.get(0).length()>0) {
-
- }
- HttpSession session = ContextHolderUtils.getSession();
- TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- try {
- userOptionsService.saveUserOptions(tuser.getId(), orgIdList.get(0), Globals.USER_OPTIONS_TYPE_PROJECT);
- } catch (Exception e) {
- e.printStackTrace();
- org.jeecgframework.core.util.LogUtil.error(e.getMessage());
- }
-
- }/*else{
- TSUser tSUser=ResourceUtil.getSessionUser();
- StringBuffer hql = new StringBuffer("from TSUserOrg where tsUser.id = :userid and status=0");
- List<TSUserOrg> tsList = systemService.getSession().createQuery(hql.toString()).setParameter("userid", tSUser.getId()).list();
- if(!tsList.isEmpty()){
- for (TSUserOrg tsUserOrg : tsList) {
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(tsUserOrg.getTsDepart().getId());
- if(!ChildIdList.isEmpty()){
- List<String> ch = new ArrayList<String>();
- for (String str : ChildIdList) {
- if(!str.equals(tsUserOrg.getTsDepart().getId())){
- ch.add(str);
- }
- }
- ChildIdList = ch;
- }
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }*/
- String moth = "";
-
- String [] mothl = monthlys.split("-");
- if("01".equals(mothl[1])){
- moth = Integer.valueOf(mothl[0])-1+"-12-01 00:00:00";
- }else{
- //moth = mothl[0]+"-"+(Integer.valueOf(mothl[1])-1)+"-01 00:00:00";
- moth = mothl[0] + "-" + "0" + (Integer.valueOf(mothl[1]) - 1) + "-01 00:00:00";
- }
-
- if(StringUtils.isNotEmpty(monthlys)){
- userWage.setMonthly(monthlys);
- }/*else{
- Calendar cal = Calendar.getInstance();
- int year = cal.get(Calendar.YEAR);
- int month = cal.get(Calendar.MONTH );
- if(month < 10){
- month = Integer.valueOf(0+""+month);
- }
- monthlys = year+"-"+month;
- request.setAttribute("monthlys", year+"-"+month);
- userWage.setMonthly(year+"-"+month);
- }*/
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
- VisibleUserDto dto = dataPermissionService.getVisibleUserList();// 获取当前用户可见的userid列表
- if(dto != null){
- List<UserNewWageDto> list = new ArrayList<UserNewWageDto>();
- Map<String,BigDecimal> map = new HashMap<String,BigDecimal>();
- if(dto.getFlag().value().equalsIgnoreCase("ALL")){
- list = userWageService.getAllEntities(userWage,null,moth,authSql);
- // map = userWageService.getMoneySUM(userWage,null,moth);
- }else if(dto.getFlag().value().equalsIgnoreCase("NONE")){
- // 获取当前登录用户
- HttpSession session = ContextHolderUtils.getSession();
- TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- List<String> uidList = new ArrayList<String>();
- uidList.add(user.getId());
- list = userWageService.getAllEntities(userWage,uidList,moth,authSql);
- // map = userWageService.getMoneySUM(userWage,uidList,moth);
- }else if(dto.getFlag().value().equalsIgnoreCase("PART")){
- List<String> useridList = dto.getUseridList();
- if(useridList != null && useridList.size() > 0){
- list = userWageService.getAllEntities(userWage,useridList,moth,authSql);
- // map = userWageService.getMoneySUM(userWage,useridList,moth);
- }
- }
-
- //List<UserNewWageDto> list = userWageService.getAll(userWage,authSql);
- if(!list.isEmpty()){
- for (Iterator iterator = list.iterator(); iterator.hasNext();) {
- UserNewWageDto userWageDto = (UserNewWageDto) iterator.next();
- if (oConvertUtils.isEmpty(userWageDto.getId())) {
- userWageDto.setId("temp"+UUIDGenerator.generate());
- }
- if(StringUtils.isNotEmpty(userWage.getStatus())){
- if(StringUtils.isEmpty(userWageDto.getMonthly())){
- iterator.remove();
- }
- }
- if(StringUtils.isEmpty(userWageDto.getMonthly())){
- userWageDto.setBelongUnitName(getBybelongId(userWageDto.getUserids()));
- }
- }
- /*for (UserNewWageDto us : list) {
- }*/
- }
- Collections.sort(list);
- dataGrid.setResults(list);
- //代码层计算合计,不通过sql计算
- try {
- calcuSumMap(map,list);
- } catch (Exception e) {
- e.printStackTrace();
- }
- StringBuffer str = new StringBuffer();
-
- for(String key : map.keySet()) {
- String value = map.get(key) == null ? "0.00" : map.get(key).toString();
- str.append(key).append(":").append(value).append(",");
- }
-
- // str.append("basicWage:"+(String.valueOf(map.get("basicWage")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("basicWage")))+",");
- // str.append("dutiesAllowance:"+(String.valueOf(map.get("dutiesAllowance")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("dutiesAllowance")))+",");
- // str.append("certificateSubsidy:"+(String.valueOf(map.get("certificateSubsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("certificateSubsidy")))+",");
- // str.append("trafficSubsidy:"+(String.valueOf(map.get("trafficSubsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("trafficSubsidy")))+",");
- // str.append("megathermalSubsidy:"+(String.valueOf(map.get("megathermalSubsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("megathermalSubsidy")))+",");
- // str.append("onlyChildCost:"+(String.valueOf(map.get("onlyChildCost")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("onlyChildCost")))+",");
- // str.append("otherSubsidy:"+(String.valueOf(map.get("otherSubsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("otherSubsidy")))+",");
- // str.append("bonus:"+(String.valueOf(map.get("bonus")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("bonus")))+",");
- // str.append("projectPerformance:"+(String.valueOf(map.get("projectPerformance")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("projectPerformance")))+",");
- // str.append("mealsSubsidyDay:"+(String.valueOf(map.get("mealsSubsidyDay")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("mealsSubsidyDay")))+",");
- // str.append("mealsSubsidyNight:"+(String.valueOf(map.get("mealsSubsidyNight")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("mealsSubsidyNight")))+",");
- // str.append("mealsSubsidy:"+(String.valueOf(map.get("mealsSubsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("mealsSubsidy")))+",");
- // str.append("overtimepayTimeout:"+(String.valueOf(map.get("overtimepayTimeout")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("overtimepayTimeout")))+",");
- // str.append("overtimepayFixed:"+(String.valueOf(map.get("overtimepayFixed")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("overtimepayFixed")))+",");
- // str.append("duty:"+(String.valueOf(map.get("duty")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("duty")))+",");
- // str.append("specialOvertime:"+(String.valueOf(map.get("specialOvertime")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("specialOvertime")))+",");
- // str.append("sickLeaveDebit:"+(String.valueOf(map.get("sickLeaveDebit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("sickLeaveDebit")))+",");
- // str.append("thingLeaveDebit:"+(String.valueOf(map.get("thingLeaveDebit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("thingLeaveDebit")))+",");
- // str.append("absenceDebit:"+(String.valueOf(map.get("absenceDebit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("absenceDebit")))+",");
- // str.append("paymentSubsidy:"+(String.valueOf(map.get("paymentSubsidy")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("paymentSubsidy")))+",");
- // str.append("socialSecurityDebit:"+(String.valueOf(map.get("socialSecurityDebit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("socialSecurityDebit")))+",");
- // str.append("providentFundDebit:"+(String.valueOf(map.get("providentFundDebit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("providentFundDebit")))+",");
- // str.append("preTaxMone:"+(String.valueOf(map.get("preTaxMone")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("preTaxMone")))+",");
- // str.append("otherDebit:"+(String.valueOf(map.get("otherDebit")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("otherDebit")))+",");
- // str.append("reissue:"+(String.valueOf(map.get("reissue")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("reissue")))+",");
- // str.append("taxMoney:"+(String.valueOf(map.get("taxMoney")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("taxMoney")))+",");
- // str.append("actualMoney:"+(String.valueOf(map.get("actualMoney")).equalsIgnoreCase("null")?"0.00":String.valueOf(map.get("actualMoney"))));
- dataGrid.setFooter(str.toString());
- }
- }else{
- dataGrid.setResults(new ArrayList<UserNewWageDto>());
- dataGrid.setFooter("");
- }
- TagUtil.datagrid(response, dataGrid);
-
- }
-
- private void calcuSumMap(Map<String, BigDecimal> map, List<UserNewWageDto> list) throws Exception {
- if(map == null || list == null || list.isEmpty()) {
- return;
- }
- for(UserNewWageDto dto : list) {
- for(Field field : dto.getClass().getDeclaredFields()) {
- sumMapItem(dto,map, field);
- }
- }
- }
-
- private Method getGetMethod (UserNewWageDto dto, Field field) throws NoSuchMethodException, SecurityException {
- byte[] meth = field.getName().getBytes();
- meth[0] = (byte)((char)meth[0]-'a'+'A');
- return (Method)dto.getClass().getMethod("get" + new String(meth));
-
- }
- private void sumMapItem(UserNewWageDto dto, Map<String, BigDecimal> map, Field field)throws Exception {
- if(dto == null || map == null) {
- return;
- }
- BigDecimal mapValue = map.get(field.getName());
- BigDecimal dtoValue = null;
- if("class java.math.BigDecimal".equals(field.getGenericType().toString())){
- dtoValue = (BigDecimal)getGetMethod(dto, field).invoke(dto);
- }else if("class java.lang.Integer".equals(field.getGenericType().toString())){
- dtoValue = new BigDecimal((Integer)getGetMethod(dto, field).invoke(dto));
- }else if("class java.lang.Double".equals(field.getGenericType().toString())){
- dtoValue = new BigDecimal((Double)getGetMethod(dto, field).invoke(dto));
- }
-
- if(dtoValue == null) {
- dtoValue = BigDecimal.ZERO;
- }
-
- if(mapValue == null) {
- map.put(field.getName(), dtoValue);
- }else {
- mapValue = mapValue.add(dtoValue);
- map.put(field.getName(), mapValue);
- }
-
- }
- /**
- * 通过人查询所属项目
- * @param userid
- * @return
- */
- private String getBybelongId(String userid){
- String temp = "";
- StringBuffer hql = new StringBuffer("from TSUserOrg where tsUser.id = :userid and ifpluralism = 0 and status=0");
- List<TSUserOrg> tsList = systemService.getSession().createQuery(hql.toString()).setParameter("userid", userid).list();
- if(!tsList.isEmpty()){
- TSUserOrg uo = tsList.get(0);
- TSDepart tsDepart = uo.getTsDepart();
- if("1".equals(tsDepart.getOrgType()) || "3".equals(tsDepart.getOrgType()) || "4".equals(tsDepart.getOrgType()) || "5".equals(tsDepart.getOrgType())){
- temp = tsDepart.getId();
- }else if("2".equals(tsDepart.getOrgType()) && "1".equals(tsDepart.getTSPDepart().getOrgType())){
- temp = tsDepart.getId();
- }else{
- temp = selectById(tsDepart.getId());
- }
-
- temp = systemService.get(TSDepart.class, temp).getDepartname();
- }
- return temp;
- }
-
- private String selectById(String id){
- String temp = "";
-
- TSDepart tsDepart =systemService.getEntity(TSDepart.class,id);
- if("3".equals(tsDepart.getOrgType()) || "5".equals(tsDepart.getOrgType())){
- temp = tsDepart.getId();
- }else{
- if(tsDepart.getTSPDepart() != null){
- selectById(tsDepart.getTSPDepart().getId());
- temp = tsDepart.getTSPDepart().getId();
- }
- }
- return temp;
- }
-
- /**
- * 删除员工工资核算表
- *
- * @return
- */
- @RequestMapping(params = "doDel")
- @ResponseBody
- public AjaxJson doDel(UserNewWageEntity userWage, HttpServletRequest request) {
- String message = null;
- AjaxJson j = new AjaxJson();
- userWage = systemService.getEntity(UserNewWageEntity.class, userWage.getId());
- message = "员工工资核算表删除成功";
- try{
- userWageService.delete(userWage);
- systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
- }catch(Exception e){
- e.printStackTrace();
- message = "员工工资核算表删除失败";
- throw new BusinessException(e.getMessage());
- }
- j.setMsg(message);
- return j;
- }
-
- /**
- * 批量删除员工工资核算表
- *
- * @return
- */
- @RequestMapping(params = "doBatchDel")
- @ResponseBody
- public AjaxJson doBatchDel(String ids,HttpServletRequest request){
- String message = null;
- AjaxJson j = new AjaxJson();
- message = "员工工资核算表删除成功";
- try{
- for(String id:ids.split(",")){
- UserNewWageEntity userWage = systemService.getEntity(UserNewWageEntity.class,
- id
- );
- userWageService.delete(userWage);
- systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
- }
- }catch(Exception e){
- e.printStackTrace();
- message = "员工工资核算表删除失败";
- throw new BusinessException(e.getMessage());
- }
- j.setMsg(message);
- return j;
- }
- /**
- * 添加员工工资核算表
- *
- * @param ids
- * @return
- */
- @RequestMapping(params = "doAdd")
- @ResponseBody
- public AjaxJson doAdd(UserNewWageEntity userWage, HttpServletRequest request) {
- String message = null;
- AjaxJson j = new AjaxJson();
- message = "员工工资核算表添加成功";
- try{
- userWageService.save(userWage);
- systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
- }catch(Exception e){
- e.printStackTrace();
- message = "员工工资核算表添加失败";
- throw new BusinessException(e.getMessage());
- }
- j.setMsg(message);
- return j;
- }
-
- /**
- * 更新员工工资核算表
- *
- * @param ids
- * @return
- */
- @RequestMapping(params = "doUpdate")
- @ResponseBody
- public AjaxJson doUpdate(UserNewWageEntity userWage, HttpServletRequest request) {
- String message = null;
- AjaxJson j = new AjaxJson();
- message = "员工工资核算表更新成功";
- UserNewWageEntity t = userWageService.get(UserNewWageEntity.class, userWage.getId());
- try {
- MyBeanUtils.copyBeanNotNull2Bean(userWage, t);
- userWageService.saveOrUpdate(t);
- systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
- } catch (Exception e) {
- e.printStackTrace();
- message = "员工工资核算表更新失败";
- throw new BusinessException(e.getMessage());
- }
- j.setMsg(message);
- return j;
- }
-
- /**
- * 员工工资核算表新增页面跳转
- *
- * @return
- */
- @RequestMapping(params = "goAdd")
- public ModelAndView goAdd(UserNewWageEntity userWage, HttpServletRequest req) {
- if (StringUtil.isNotEmpty(userWage.getId())) {
- userWage = userWageService.getEntity(UserNewWageEntity.class, userWage.getId());
- req.setAttribute("userWagePage", userWage);
- }
- return new ModelAndView("cn/com/lzt/userwage/userWage-add");
- }
- /**
- * 员工工资核算表编辑页面跳转
- *
- * @return
- */
- @RequestMapping(params = "goUpdate")
- public ModelAndView goUpdate(UserNewWageEntity userWage, HttpServletRequest req) {
- if (StringUtil.isNotEmpty(userWage.getId())) {
- userWage = userWageService.getEntity(UserNewWageEntity.class, userWage.getId());
- req.setAttribute("userWagePage", userWage);
- }
- return new ModelAndView("cn/com/lzt/userwage/userWage-update");
- }
-
- /**
- * 导入功能跳转
- *
- * @return
- */
- @RequestMapping(params = "upload")
- public ModelAndView upload(HttpServletRequest req) {
- req.setAttribute("controller_name","userWageController");
- return new ModelAndView("common/upload/pub_excel_upload");
- }
-
- /**
- * 员工工资条
- * 导出excel
- *
- * @param request
- * @param response
- */
- @RequestMapping(params = "exportWagePaperXls")
- public String exportWagePaperXls(UserNewWageDto userWage,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
- String filename = "员工工资条";
- List<UserNewWageDto> list = new ArrayList<UserNewWageDto>();
- String orgIds = request.getParameter("orgIds");
- String monthlys = request.getParameter("monthlys");
- TSDepart depart = systemService.get(TSDepart.class, orgIds);
- if(depart != null) {
- filename = depart.getDepartname();
- }
- // String departname = request.getParameter("departname");
- // if(departname != null && departname.length()>0) {
- // filename = departname;
- // }
- if(monthlys != null && monthlys.length()>0) {
- filename = filename + "(" + monthlys + ")";
- }
- if(StringUtils.isNotEmpty(orgIds) && StringUtils.isNotEmpty(monthlys)){
- String monthly = request.getParameter("monthly");
-
- String orgId = request.getParameter("orgid");
- String type = request.getParameter("type");
- if(StringUtils.isEmpty(orgIds)&&StringUtils.isNotEmpty(orgId)){
- List<String> orgIdList = extractIdListByComma(orgId);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- if(oConvertUtils.isNotEmpty(type) && "1".equals(type)){
- userWage.setOrgIdList(orgIdList);
- }else{
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }else{
- if(StringUtils.isNotEmpty(orgIds)){
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }
-
- String moth = "";
-
- String [] mothl = monthlys.split("-");
- if("01".equals(mothl[1])){
- moth = Integer.valueOf(mothl[0])-1+"-12-01";
- }else{
- moth = monthlys+"-01 00:00:00";
- }
-
- if(StringUtils.isNotEmpty(monthlys)){
- userWage.setMonthly(monthlys);
- }else{
- if(StringUtils.isNotEmpty(monthly)){
- request.setAttribute("monthlys", monthly);
- userWage.setMonthly(monthly);
- }else{
- request.setAttribute("monthlys", getMonthlys());
- userWage.setMonthly(getMonthlys());
- }
- }
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- VisibleUserDto dto = dataPermissionService.getVisibleUserList();// 获取当前用户可见的userid列表
- if(dto != null){
- if(dto.getFlag().value().equalsIgnoreCase("ALL")){
- list = userWageService.getAllEntities(userWage,null,moth,authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("NONE")){
- // 获取当前登录用户
- HttpSession session = ContextHolderUtils.getSession();
- TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- List<String> uidList = new ArrayList<String>();
- uidList.add(user.getId());
- list = userWageService.getAllEntities(userWage,uidList,moth,authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("PART")){
- List<String> uidList = dto.getUseridList();
- if(uidList != null && uidList.size() > 0){
- list = userWageService.getAllEntities(userWage,uidList,moth,authSql);
- }
- }
- }
- }
- // long s = System.currentTimeMillis();
- // getDingAttendanceinfoEntitiesWithCache();
- // long e = System.currentTimeMillis();
- // System.out.println("ding: " + (e-s)/1000 +"s");
- //
- // getDingAttendanceinfoEntitiesWithJDBC();
- //
- // long e2 = System.currentTimeMillis();
- // System.out.println("jdbc: " +(e2-e)/1000 + " s");
- Collections.sort(list);
- List<UserWagePaperDto> paperList = new ArrayList<>();
- try {
- creatWagePaper(list, paperList);
- } catch (Exception e) {
- org.jeecgframework.core.util.LogUtil.error(e.getMessage());
- }
- modelMap.put(NormalExcelConstants.FILE_NAME,filename);
- modelMap.put(NormalExcelConstants.CLASS,UserWagePaperDto.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工工资核算列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- modelMap.put(NormalExcelConstants.DATA_LIST,paperList);
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
-
- private void getDingAttendanceinfoEntitiesWithJDBC() {
- // HashMap<String, Object> hm = hm_cache.get("getDingAttendanceinfoEntitiesWithCache");
- // Date curdate = dto.getYmdDate();
- // String strDateFormat = "yyyy-MM";
- // SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
- // Calendar calendar = Calendar.getInstance();
- // calendar.setTime(curdate);
- // calendar.add(Calendar.DATE, 2);
- // Date tomdate = calendar.getTime();
- // if(hm == null) {
- HashMap<String, Object> hm = new HashMap<>();
- // hm_cache.put("getDingAttendanceinfoEntitiesWithCache", hm);
- //
- // CriteriaQuery cq = new CriteriaQuery(DingAttendanceinfoEntity.class);
- // cq.like("attendanceTime", sdf.format(curdate)+"%");
- // cq.add();
- // cq.between("attendanceTime", curdate, tomdate);
- // cq.add();
- // cq.addOrder("attendanceTime", SortDirection.asc);
- String hql = "select id,user_id, attendance_time from t_bus_ding_attendanceinfo "
- + "where attendance_time like '2019-08%'";
-
- List<Map<String, Object>> mapList=new ArrayList<Map<String, Object>>();
-
- mapList = systemService.findForJdbc(hql, null);
- //getListByCriteriaQuery(cq, false);
- for(Map<String, Object> map : mapList) {
- DingAttendanceinfoEntity entity = new DingAttendanceinfoEntity();
- entity.setId(map.get("id").toString());
- entity.setUserId(map.get("user_id").toString());
- entity.setAttendanceTime((Date)map.get("attendance_time"));
- String userInEntity = entity.getUserId();
- if(hm.containsKey(userInEntity)) {
- List<DingAttendanceinfoEntity> entitylist = (List<DingAttendanceinfoEntity>)hm.get(userInEntity);
- entitylist.add(entity);
- }else {
- List<DingAttendanceinfoEntity> newlist = new ArrayList<>();
- newlist.add(entity);
- hm.put(userInEntity, newlist);
- }
- }
- // }
- //
- // List<DingAttendanceinfoEntity> allList = (List<DingAttendanceinfoEntity>)hm.get(dto.getUserid());
- // if(allList == null) {
- // return new ArrayList<DingAttendanceinfoEntity>();
- // }
- // List<DingAttendanceinfoEntity> selectList = new ArrayList<>();
- // for(DingAttendanceinfoEntity attInAll : allList) {
- // Date attendanceTime = attInAll.getAttendanceTime();
- // if(attendanceTime.after(curdate) && attendanceTime.before(tomdate)) {
- // selectList.add(attInAll);
- // }
- // }
- // return selectList;
- }
-
- /**
- * @param dto
- * @return
- */
- private void getDingAttendanceinfoEntitiesWithCache() {
- // HashMap<String, Object> hm = hm_cache.get("getDingAttendanceinfoEntitiesWithCache");
- // Date curdate = dto.getYmdDate();
- // String strDateFormat = "yyyy-MM";
- // SimpleDateFormat sdf = new SimpleDateFormat(strDateFormat);
- // Calendar calendar = Calendar.getInstance();
- // calendar.setTime(curdate);
- // calendar.add(Calendar.DATE, 2);
- // Date tomdate = calendar.getTime();
- // if(hm == null) {
- HashMap<String, Object> hm = new HashMap<>();
- // hm_cache.put("getDingAttendanceinfoEntitiesWithCache", hm);
- //
- // CriteriaQuery cq = new CriteriaQuery(DingAttendanceinfoEntity.class);
- // cq.like("attendanceTime", sdf.format(curdate)+"%");
- // cq.add();
- // cq.between("attendanceTime", curdate, tomdate);
- // cq.add();
- // cq.addOrder("attendanceTime", SortDirection.asc);
- String hql = "from DingAttendanceinfoEntity where attendanceTime like '2019-08%'";
-
- List<DingAttendanceinfoEntity> entitiesFromDB = systemService.findHql(hql);
- //getListByCriteriaQuery(cq, false);
- for(DingAttendanceinfoEntity entity : entitiesFromDB) {
- String userInEntity = entity.getUserId();
- if(hm.containsKey(userInEntity)) {
- List<DingAttendanceinfoEntity> entitylist = (List<DingAttendanceinfoEntity>)hm.get(userInEntity);
- entitylist.add(entity);
- }else {
- List<DingAttendanceinfoEntity> newlist = new ArrayList<>();
- newlist.add(entity);
- hm.put(userInEntity, newlist);
- }
- }
- // }
- //
- // List<DingAttendanceinfoEntity> allList = (List<DingAttendanceinfoEntity>)hm.get(dto.getUserid());
- // if(allList == null) {
- // return new ArrayList<DingAttendanceinfoEntity>();
- // }
- // List<DingAttendanceinfoEntity> selectList = new ArrayList<>();
- // for(DingAttendanceinfoEntity attInAll : allList) {
- // Date attendanceTime = attInAll.getAttendanceTime();
- // if(attendanceTime.after(curdate) && attendanceTime.before(tomdate)) {
- // selectList.add(attInAll);
- // }
- // }
- // return selectList;
- }
- /**
- * @param list
- * @param paperList
- * @throws InvocationTargetException
- * @throws IllegalArgumentException
- * @throws IllegalAccessException
- */
- private void creatWagePaper(List<UserNewWageDto> list, List<UserWagePaperDto> paperList) throws Exception {
- for(int i=0 ; i < list.size() ; i++) {
- UserNewWageDto dto = list.get(i);
- UserWagePaperDto papertitle = new UserWagePaperDto();
- UserWagePaperDto paperitem = new UserWagePaperDto();
- Field[] fields = UserWagePaperDto.class.getDeclaredFields();
- for(int j=0 ; j<fields.length ; j++) {
- Field f = fields[j];
- Excel ann = f.getAnnotation(Excel.class);
- if(ann != null) {
- PropertyDescriptor paperpd = new PropertyDescriptor(f.getName(), UserWagePaperDto.class);
- Method wM = paperpd.getWriteMethod();//获得写方法
- wM.invoke(papertitle, ann.name());
-
- PropertyDescriptor dtopd = new PropertyDescriptor(f.getName(), UserNewWageDto.class);
- Method rM = dtopd.getReadMethod();//读方法
- Object v = rM.invoke(dto);
- String str = "";
- if(v != null) {
- str = v.toString();
- }
-
- wM.invoke(paperitem, str);
- }
- }
- if(i>0) {
- paperList.add(papertitle);
- }
- paperList.add(paperitem);
- }
- }
- /**
- * 员工工资核算
- * 导出excel
- *
- * @param request
- * @param response
- */
- @RequestMapping(params = "exportXls")
- public String exportXls(UserNewWageDto userWage,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
- String filename = "员工工资核算";
- List<UserNewWageDto> list = new ArrayList<UserNewWageDto>();
- String orgIds = request.getParameter("orgIds");
- String monthlys = request.getParameter("monthlys");
- TSDepart depart = systemService.get(TSDepart.class, orgIds);
- if(depart != null) {
- filename = depart.getDepartname();
- }
- // String departname = request.getParameter("departname");
- // if(departname != null && departname.length()>0) {
- // filename = departname;
- // }
- if(monthlys != null && monthlys.length()>0) {
- filename = filename + "(" + monthlys + ")";
- }
- if(StringUtils.isNotEmpty(orgIds) && StringUtils.isNotEmpty(monthlys)){
- String monthly = request.getParameter("monthly");
-
- String orgId = request.getParameter("orgid");
- String type = request.getParameter("type");
- if(StringUtils.isEmpty(orgIds)&&StringUtils.isNotEmpty(orgId)){
- List<String> orgIdList = extractIdListByComma(orgId);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- if(oConvertUtils.isNotEmpty(type) && "1".equals(type)){
- userWage.setOrgIdList(orgIdList);
- }else{
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }else{
- if(StringUtils.isNotEmpty(orgIds)){
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }
-
- String moth = "";
-
- String [] mothl = monthlys.split("-");
- if("01".equals(mothl[1])){
- moth = Integer.valueOf(mothl[0])-1+"-12-01";
- }else{
- moth = monthlys+"-01 00:00:00";
- }
-
- if(StringUtils.isNotEmpty(monthlys)){
- userWage.setMonthly(monthlys);
- }else{
- if(StringUtils.isNotEmpty(monthly)){
- request.setAttribute("monthlys", monthly);
- userWage.setMonthly(monthly);
- }else{
- request.setAttribute("monthlys", getMonthlys());
- userWage.setMonthly(getMonthlys());
- }
- }
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- VisibleUserDto dto = dataPermissionService.getVisibleUserList();// 获取当前用户可见的userid列表
- if(dto != null){
- if(dto.getFlag().value().equalsIgnoreCase("ALL")){
- list = userWageService.getAllEntities(userWage,null,moth,authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("NONE")){
- // 获取当前登录用户
- HttpSession session = ContextHolderUtils.getSession();
- TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- List<String> uidList = new ArrayList<String>();
- uidList.add(user.getId());
- list = userWageService.getAllEntities(userWage,uidList,moth,authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("PART")){
- List<String> uidList = dto.getUseridList();
- if(uidList != null && uidList.size() > 0){
- list = userWageService.getAllEntities(userWage,uidList,moth,authSql);
- }
- }
- }
- }
- Collections.sort(list);
- modelMap.put(NormalExcelConstants.FILE_NAME,filename);
- modelMap.put(NormalExcelConstants.CLASS,UserNewWageDto.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工工资核算列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- modelMap.put(NormalExcelConstants.DATA_LIST,list);
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
-
- /**
- * 月度工资一览导出
- *
- * @param request
- * @param response
- */
- @RequestMapping(params = "exportXls1")
- public String exportXls1(UserWageViewDto userWage,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
- MiniDaoPage<UserWageViewDto> list = new MiniDaoPage<UserWageViewDto>();
- String monthlys = request.getParameter("monthlys");
- // String departname = request.getParameter("departname");
- String orgIds = request.getParameter("orgIds");
- String filename = "员工月度工资一览";
- TSDepart depart = systemService.get(TSDepart.class, orgIds);
- if(depart != null) {
- filename = depart.getDepartname();
- }
- if(monthlys != null && monthlys.length()>0) {
- filename = filename + "(" + monthlys + ")";
- }
- if(StringUtils.isNotEmpty(monthlys)){
-
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
-
- userWage.setMonthly(monthlys);
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- VisibleUserDto dto = dataPermissionService.getVisibleUserList();// 获取当前用户可见的userid列表
- if(dto != null){
- if(dto.getFlag().value().equalsIgnoreCase("ALL")){
- list = userWageService.getViewEntities(userWage,null,dataGrid.getPage(), dataGrid.getRows(), authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("NONE")){
- // 获取当前登录用户
- HttpSession session = ContextHolderUtils.getSession();
- TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- List<String> uidList = new ArrayList<String>();
- uidList.add(user.getId());
- list = userWageService.getViewEntities(userWage,uidList,dataGrid.getPage(), dataGrid.getRows(), authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("PART")){
- List<String> useridList = dto.getUseridList();
- if(useridList != null && useridList.size() > 0){
- list = userWageService.getViewEntities(userWage,useridList,dataGrid.getPage(), dataGrid.getRows(), authSql);
- }
- }
- //MiniDaoPage<UserWageViewDto> list = userWageService.getViewEntities(userWage, dataGrid.getPage(), dataGrid.getRows(), authSql);
- //List<UserNewWageDto> list = userWageService.getAllEntities(userWage,authSql);
- }
- }
- modelMap.put(NormalExcelConstants.FILE_NAME,filename);
- modelMap.put(NormalExcelConstants.CLASS,UserWageViewDto.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工月度工资一览列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- if(list.getResults() == null){
- modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList<>());
- }else{
- modelMap.put(NormalExcelConstants.DATA_LIST,list.getResults());
- }
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
-
-
-
- /**
- * 月度工资详细
- *
- * @param request
- * @param response
- */
- @RequestMapping(params = "exportXlsDetailByProject")
- public String exportXlsDetailByProject(@Param("orgId") String orgId
- ,@Param("monthly")String monthly,@Param("type")String type,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
- String filename = "美都环卫全体员工工资详细";
- UserNewWageDto userWage = new UserNewWageDto();
- if(StringUtils.isNotEmpty(orgId)){
- TSDepart depart = systemService.get(TSDepart.class, orgId);
- if(depart != null) {
- filename = depart.getDepartname();
- }
- }
-
- // if(StringUtils.isNotEmpty(orgId) && departname != null && departname.length()>0) {
- // filename = departname;
- // }
- filename = filename.replaceAll(",", "");
- if(monthly != null && monthly.length()>0) {
- filename = filename + "(" + monthly + ")";
- }
- if(StringUtils.isNotEmpty(orgId)){
- List<String> orgIdList = extractIdListByComma(orgId);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- if(oConvertUtils.isNotEmpty(type) && "1".equals(type)){
- userWage.setOrgIdList(orgIdList);
- }else{
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }
-
- if(StringUtils.isNotEmpty(monthly)){
- userWage.setMonthly(monthly);
- }
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- VisibleUserDto dto = dataPermissionService.getVisibleUserList();// 获取当前用户可见的userid列表
- if(dto != null){
- List<UserNewWageDto> list = new ArrayList<UserNewWageDto>();
- if(dto.getFlag().value().equalsIgnoreCase("ALL")){
- list = userWageService.getAllEntities(userWage,null,null,authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("NONE")){
- // 获取当前登录用户
- HttpSession session = ContextHolderUtils.getSession();
- TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- List<String> uidList = new ArrayList<String>();
- uidList.add(user.getId());
- list = userWageService.getAllEntities(userWage,uidList,null,authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("PART")){
- List<String> useridList = dto.getUseridList();
- if(useridList != null && useridList.size() > 0){
- list = userWageService.getAllEntities(userWage,useridList,null,authSql);
- }
- }
- Collections.sort(list);
- modelMap.put(NormalExcelConstants.FILE_NAME,filename);
- modelMap.put(NormalExcelConstants.CLASS,UserNewWageDto.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工工资详细列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- modelMap.put(NormalExcelConstants.DATA_LIST,list);
- }
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
-
- /**
- * 月度工资详细
- *
- * @param request
- * @param response
- */
- @RequestMapping(params = "exportXls2")
- public String exportXls2(UserNewWageDto userWage,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
-
- String monthlys = request.getParameter("monthlys");
- String monthly = request.getParameter("monthly");
- String orgIds = request.getParameter("orgIds");
- String orgId = request.getParameter("orgid");
- String type = request.getParameter("type");
- // String departname = request.getParameter("departname");
- String filename = "员工工资详细";
- // if(departname != null && departname.length()>0) {
- // filename = departname;
- // }
- if(monthlys != null && monthlys.length()>0) {
- filename = filename + "(" + monthlys + ")";
- }
- if(StringUtils.isEmpty(orgIds)&&StringUtils.isNotEmpty(orgId)){
- List<String> orgIdList = extractIdListByComma(orgId);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- if(oConvertUtils.isNotEmpty(type) && "1".equals(type)){
- userWage.setOrgIdList(orgIdList);
- }else{
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }else{
- if(StringUtils.isNotEmpty(orgIds)){
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }
-
- if(StringUtils.isNotEmpty(monthlys)){
- userWage.setMonthly(monthlys);
- }else{
- if(StringUtils.isNotEmpty(monthly)){
- request.setAttribute("monthlys", monthly);
- userWage.setMonthly(monthly);
- }else{
- request.setAttribute("monthlys", getMonthlys());
- userWage.setMonthly(getMonthlys());
- }
- //userWage.setMonthly(sim.format(sim.parse("2017-10")));
- }
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- VisibleUserDto dto = dataPermissionService.getVisibleUserList();// 获取当前用户可见的userid列表
- if(dto != null){
- List<UserNewWageDto> list = new ArrayList<UserNewWageDto>();
- if(dto.getFlag().value().equalsIgnoreCase("ALL")){
- list = userWageService.getAllEntities(userWage,null,null,authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("NONE")){
- // 获取当前登录用户
- HttpSession session = ContextHolderUtils.getSession();
- TSUser user = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
- List<String> uidList = new ArrayList<String>();
- uidList.add(user.getId());
- list = userWageService.getAllEntities(userWage,uidList,null,authSql);
- }else if(dto.getFlag().value().equalsIgnoreCase("PART")){
- List<String> useridList = dto.getUseridList();
- if(useridList != null && useridList.size() > 0){
- list = userWageService.getAllEntities(userWage,useridList,null,authSql);
- }
- }
- Collections.sort(list);
- modelMap.put(NormalExcelConstants.FILE_NAME,filename);
- modelMap.put(NormalExcelConstants.CLASS,UserNewWageDto.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工工资详细列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- modelMap.put(NormalExcelConstants.DATA_LIST,list);
- }
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
-
- /**
- * 月度工资明细
- * 人事使用
- *
- * @param request
- * @param response
- * @throws Exception
- */
- @RequestMapping(params = "exportManagerNewWageDetailXls")
- public String exportManagerNewWageDetailXls(UserNewWageDto userWage,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) throws Exception {
-
- String monthlys = request.getParameter("monthlys");
- String monthly = request.getParameter("monthly");
- String orgIds = request.getParameter("orgIds");
- String orgId = request.getParameter("orgid");
- String type = request.getParameter("type");
- String departname = request.getParameter("departname");
- String filename = "项目经理工资明细";
- if(departname != null && departname.length()>0) {
- filename = departname;
- }
- if(monthlys != null && monthlys.length()>0) {
- filename = filename + "(" + monthlys + ")";
- }
- if(StringUtils.isEmpty(orgIds)&&StringUtils.isNotEmpty(orgId)){
- List<String> orgIdList = extractIdListByComma(orgId);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- if(oConvertUtils.isNotEmpty(type) && "1".equals(type)){
- userWage.setOrgIdList(orgIdList);
- }else{
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }else{
- if(StringUtils.isNotEmpty(orgIds)){
- List<String> orgIdList = extractIdListByComma(orgIds);
- // 获取 当前组织机构的用户信息
- if (!CollectionUtils.isEmpty(orgIdList)) {
- String or = orgIdList.get(0);
- List<String> ChildIdList = userDepartOrgDealService.getChildIdByProjectDepartId(or);
- userWage.setOrgIdList(ChildIdList);
- }
- }
- }
-
- if(StringUtils.isNotEmpty(monthlys)){
- userWage.setMonthly(monthlys);
- }else{
- if(StringUtils.isNotEmpty(monthly)){
- request.setAttribute("monthlys", monthly);
- userWage.setMonthly(monthly);
- }else{
- request.setAttribute("monthlys", getMonthlys());
- userWage.setMonthly(getMonthlys());
- }
- }
-
- String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
-
- List<UserNewWageDto> list = new ArrayList<UserNewWageDto>();
- List<UserNewWageDetaillsDto> listDetail = new ArrayList<UserNewWageDetaillsDto>();
- // 取得所有的数据,然后在业务层过滤,效率会提高一些
- list = userWageService.getAllManagerNewWageEntities(userWage,null,null,authSql);
- UserNewWageDetaillsDto dto2 = null;
- for (UserNewWageDto userWageDto : list) {
- dto2 = new UserNewWageDetaillsDto();
- MyBeanUtils.copyBeanNotNull2Bean(userWageDto,dto2);
- listDetail.add(dto2);
- }
- Collections.sort(listDetail);
- modelMap.put(NormalExcelConstants.FILE_NAME,filename);
- modelMap.put(NormalExcelConstants.CLASS,UserNewWageDetaillsDto.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("项目经理工资明细列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- modelMap.put(NormalExcelConstants.DATA_LIST,listDetail);
- // }
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
- /**
- * 导出excel 使模板
- *
- * @param request
- * @param response
- */
- @RequestMapping(params = "exportXlsByT")
- public String exportXlsByT(UserNewWageEntity userWage,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
- modelMap.put(NormalExcelConstants.FILE_NAME,"员工工资核算表");
- modelMap.put(NormalExcelConstants.CLASS,UserNewWageEntity.class);
- modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("员工工资核算表列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
- "导出信息"));
- modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList());
- return NormalExcelConstants.JEECG_EXCEL_VIEW;
- }
-
- @SuppressWarnings("unchecked")
- @RequestMapping(params = "importExcel", method = RequestMethod.POST)
- @ResponseBody
- public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
- AjaxJson j = new AjaxJson();
-
- MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
- Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
- for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
- MultipartFile file = entity.getValue();// 获取上传文件对象
- ImportParams params = new ImportParams();
- params.setTitleRows(2);
- params.setHeadRows(1);
- params.setNeedSave(true);
- try {
- List<UserNewWageEntity> listUserNewWageEntitys = ExcelImportUtil.importExcel(file.getInputStream(),UserNewWageEntity.class,params);
- for (UserNewWageEntity userWage : listUserNewWageEntitys) {
- userWageService.save(userWage);
- }
- j.setMsg("文件导入成功!");
- } catch (Exception e) {
- j.setMsg("文件导入失败!");
- logger.error(ExceptionUtil.getExceptionMessage(e));
- }finally{
- try {
- file.getInputStream().close();
- } catch (IOException e) {
- e.printStackTrace();
- }
- }
- }
- return j;
- }
-
- @RequestMapping(method = RequestMethod.GET)
- @ResponseBody
- public List<UserNewWageEntity> list() {
- List<UserNewWageEntity> listUserWages=userWageService.getList(UserNewWageEntity.class);
- return listUserWages;
- }
-
- @RequestMapping(value = "/{id}", method = RequestMethod.GET)
- @ResponseBody
- public ResponseEntity<?> get(@PathVariable("id") String id) {
- UserNewWageEntity task = userWageService.get(UserNewWageEntity.class, id);
- if (task == null) {
- return new ResponseEntity(HttpStatus.NOT_FOUND);
- }
- return new ResponseEntity(task, HttpStatus.OK);
- }
- @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
- @ResponseBody
- public ResponseEntity<?> create(@RequestBody UserNewWageEntity userWage, UriComponentsBuilder uriBuilder) {
- //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
- Set<ConstraintViolation<UserNewWageEntity>> failures = validator.validate(userWage);
- if (!failures.isEmpty()) {
- return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
- }
- //保存
- try{
- userWageService.save(userWage);
- } catch (Exception e) {
- e.printStackTrace();
- return new ResponseEntity(HttpStatus.NO_CONTENT);
- }
- //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
- String id = userWage.getId();
- URI uri = uriBuilder.path("/rest/userWageController/" + id).build().toUri();
- HttpHeaders headers = new HttpHeaders();
- headers.setLocation(uri);
- return new ResponseEntity(headers, HttpStatus.CREATED);
- }
- @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
- public ResponseEntity<?> update(@RequestBody UserNewWageEntity userWage) {
- //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
- Set<ConstraintViolation<UserNewWageEntity>> failures = validator.validate(userWage);
- if (!failures.isEmpty()) {
- return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
- }
- //保存
- try{
- userWageService.saveOrUpdate(userWage);
- } catch (Exception e) {
- e.printStackTrace();
- return new ResponseEntity(HttpStatus.NO_CONTENT);
- }
- //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
- return new ResponseEntity(HttpStatus.NO_CONTENT);
- }
- @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
- @ResponseStatus(HttpStatus.NO_CONTENT)
- public void delete(@PathVariable("id") String id) {
- userWageService.deleteEntityById(UserNewWageEntity.class, id);
- }
-
- /**
- * 保存新增/更新的行数据
- * @param page
- * @return
- * @throws Exception
- */
- @RequestMapping(params = "saveRows")
- @ResponseBody
- public AjaxJson saveRows(UserNewwagePage page) throws Exception{
- List<UserNewWageEntity> demos=page.getUserWageList();
- AjaxJson j = userWageService.addOrEdit(demos);
- return j;
- }
-
- /**
- * 工资进行上报
- * @param request
- * @param status
- * @return
- */
- @RequestMapping(params="updateStatus")
- @ResponseBody
- public AjaxJson updateStatus(HttpServletRequest request,boolean status){
- String ids = request.getParameter("ids");
- List<String> idList = extractIdListByComma(ids);
- AjaxJson j = userWageService.updateStatus(idList, status);
- return j;
- }
- @RequestMapping(params = "budgetlist")
- public ModelAndView budgetlist(HttpServletRequest request) {
- // String orgid = request.getParameter("orgid");
- // String monthly = request.getParameter("monthly");
- // if(oConvertUtils.isNotEmpty(monthly)){
- // request.setAttribute("monthlys", monthly);
- // request.setAttribute("orgid", orgid);
- // }else{
- // request.setAttribute("monthlys", getMonthlys());
- // }
- return new ModelAndView("cn/com/lzt/userwage/userWageViewBudgetList");
- }
- @RequestMapping(params = "datagridbudget")
- public void datagridbudget(UserWageViewDto userWage,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
- List<Map<String,Object>> retList = getWageAndBudgetList(userWage);
- dataGrid.setResults(retList);
- TagUtil.datagrid(response, dataGrid);
- }
- private List<Map<String,Object>> getWageAndBudgetList(UserWageViewDto userWage) {
- List<Map<String,Object>> retList = new ArrayList<Map<String,Object>>();
- String year = userWage.getMonthly().substring(0,4);
- int monthInt = Integer.valueOf(userWage.getMonthly().substring(5));
- String month = "month"+monthInt;
- String qrySql = "select '"+userWage.getMonthly()+"' as yearmonth, \n" +
- " wage.*,\n" +
- " IFNULL(budget.projovertimebudget,0) as projovertimebudget,\n" +
- " IFNULL(budget.govovertimebudget,0) as govovertimebudget,\n" +
- " IFNULL(budget.ondutybudget,0) as ondutybudget\n" +
- "from (\n" +
- " SELECT \n" +
- " sum(c.overtimepay_timeout) as projovertime, \n" +
- " sum(c.duty) as onduty, \n" +
- " sum(c.overtimepay_Fixed) as govovertime, \n" +
- " d.id as departid,\n" +
- " d.departname AS departname\n" +
- " FROM\n" +
- " t_bus_user_wage c\n" +
- " LEFT JOIN t_s_base_user u ON c.userid = u.id\n" +
- " LEFT JOIN t_s_depart d ON d.id = c.pjt_id\n" +
- " WHERE u.delete_flag = '0' \n" +
- " and monthly =? \n" +
- " group BY\n" +
- " d.id) wage\n" +
- "left join (\n" +
- " select \n" +
- " depart_id as departid,\n" +
- " dep_name as departname ,\n" +
- " sum(case when budget_type = 'code1' then "+month+" else 0 end) as projovertimebudget ,\n" +
- " sum(case when budget_type = 'code2' then "+month+" else 0 end ) as govovertimebudget ,\n" +
- " sum(case when budget_type = 'code3' or budget_type = 'code4' then "+month+" else 0 end ) as ondutybudget \n" +
- " from t_b_overtime_budget\n" +
- " where years =? \n" +
- " group by depart_id ) budget on budget.departid = wage.departid "
- + "left join t_s_depart t on t.id = wage.departid "
- + "where t.org_type in ('3','5') ";
- if(StringUtils.isNotEmpty(userWage.getPjtId())) {
- qrySql +=" and wage.departid = '"+userWage.getPjtId()+"' order by CONVERT(wage.departname using gbk)";
- }else {
- qrySql +=" order by CONVERT(wage.departname using gbk)";
- }
- retList = systemService.findForJdbc(qrySql, userWage.getMonthly(),year);
- return retList;
- }
-
- @RequestMapping(params = "exportXlsBudget")
- public void exportXlsBudget(UserWageViewDto userWage,HttpServletRequest request,HttpServletResponse response
- , DataGrid dataGrid,ModelMap modelMap) {
- List<Map<String,Object>> retList = getWageAndBudgetList(userWage);
- String codedFileName = "加班预算执行表";
- Workbook workbook = null;
- List<ExcelExportEntity> entityList = new ArrayList<ExcelExportEntity>();
- ExcelExportEntity head1 = new ExcelExportEntity("项目管理处", "departname", 30);
- entityList.add(head1);
- ExcelExportEntity head2 = new ExcelExportEntity("工资月度", "yearmonth", 15);
- entityList.add(head2);
- ExcelExportEntity head3 = new ExcelExportEntity("项目加班费预算", "projovertimebudget", 15);
- entityList.add(head3);
- ExcelExportEntity head4 = new ExcelExportEntity("项目加班费发生额", "projovertime", 15);
- entityList.add(head4);
- ExcelExportEntity head5 = new ExcelExportEntity("国定加班费预算", "govovertimebudget", 15);
- entityList.add(head5);
- ExcelExportEntity head6 = new ExcelExportEntity("国定加班费发生额", "govovertime", 15);
- entityList.add(head6);
- ExcelExportEntity head7 = new ExcelExportEntity("值班费预算", "ondutybudget", 15);
- entityList.add(head7);
- ExcelExportEntity head8 = new ExcelExportEntity("值班费发生额", "onduty", 15);
- entityList.add(head8);
- List<Map<String, Object>> resultData = retList;
- workbook = ExcelExportUtil.exportExcel(workbook,
- new ExportParams("加班预算执行表", "导出人:" + ResourceUtil.getSessionUser().getRealName(), "加班预算执行表"),
- entityList, resultData);
-
- if (workbook instanceof HSSFWorkbook) {
- codedFileName +=".xls";
- } else {
- codedFileName +=".xlsx";
- }
- try {
- //IE
- if (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0
- || request.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0){
- codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8");
- } else {
- codedFileName = new String(codedFileName.getBytes("UTF-8"), "ISO-8859-1");
- }
- response.setHeader("content-disposition", "attachment;filename=" + codedFileName);
- ServletOutputStream out = response.getOutputStream();
- workbook.write(out);
- out.flush();
- } catch (UnsupportedEncodingException e) {
- logger.error(e.getMessage());
- } catch (IOException e) {
- logger.error(e.getMessage());
- }
- }
- }
|