ArrangeDutyController.java 70 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343134413451346134713481349135013511352135313541355135613571358135913601361136213631364136513661367136813691370137113721373137413751376137713781379138013811382138313841385138613871388138913901391139213931394139513961397139813991400140114021403140414051406140714081409141014111412141314141415141614171418141914201421142214231424142514261427142814291430143114321433143414351436143714381439144014411442144314441445144614471448144914501451145214531454145514561457145814591460146114621463146414651466146714681469147014711472147314741475147614771478147914801481148214831484148514861487148814891490149114921493149414951496149714981499150015011502150315041505150615071508150915101511151215131514151515161517151815191520152115221523152415251526152715281529153015311532153315341535153615371538153915401541154215431544154515461547154815491550155115521553155415551556155715581559156015611562156315641565156615671568156915701571157215731574157515761577157815791580158115821583158415851586158715881589159015911592159315941595159615971598159916001601160216031604160516061607160816091610161116121613161416151616161716181619162016211622162316241625162616271628162916301631163216331634163516361637163816391640164116421643164416451646164716481649165016511652165316541655165616571658165916601661166216631664166516661667166816691670167116721673167416751676167716781679168016811682168316841685168616871688168916901691169216931694169516961697169816991700170117021703170417051706170717081709171017111712171317141715171617171718171917201721172217231724172517261727172817291730173117321733173417351736173717381739174017411742174317441745174617471748174917501751175217531754175517561757175817591760176117621763176417651766176717681769177017711772177317741775177617771778177917801781178217831784178517861787178817891790179117921793179417951796179717981799180018011802180318041805180618071808180918101811181218131814181518161817181818191820182118221823182418251826182718281829
  1. package cn.com.lzt.arrangeduty.controller;
  2. import java.io.IOException;
  3. import java.net.URI;
  4. import java.util.ArrayList;
  5. import java.util.Calendar;
  6. import java.util.HashMap;
  7. import java.util.List;
  8. import java.util.Map;
  9. import java.util.Set;
  10. import javax.servlet.http.HttpServletRequest;
  11. import javax.servlet.http.HttpServletResponse;
  12. import javax.servlet.http.HttpSession;
  13. import javax.validation.ConstraintViolation;
  14. import javax.validation.Validator;
  15. import org.apache.commons.lang.StringUtils;
  16. import org.apache.log4j.Logger;
  17. import org.apache.poi.ss.usermodel.Workbook;
  18. import org.jeecgframework.core.beanvalidator.BeanValidators;
  19. import org.jeecgframework.core.common.controller.BaseController;
  20. import org.jeecgframework.core.common.exception.BusinessException;
  21. import org.jeecgframework.core.common.model.json.AjaxJson;
  22. import org.jeecgframework.core.common.model.json.DataGrid;
  23. import org.jeecgframework.core.constant.Globals;
  24. import org.jeecgframework.core.util.ContextHolderUtils;
  25. import org.jeecgframework.core.util.DataUtils;
  26. import org.jeecgframework.core.util.ExceptionUtil;
  27. import org.jeecgframework.core.util.JeecgDataAutorUtils;
  28. import org.jeecgframework.core.util.MyBeanUtils;
  29. import org.jeecgframework.core.util.ResourceUtil;
  30. import org.jeecgframework.core.util.StringUtil;
  31. import org.jeecgframework.core.util.oConvertUtils;
  32. import org.jeecgframework.minidao.pojo.MiniDaoPage;
  33. import org.jeecgframework.poi.excel.ExcelExportUtil;
  34. import org.jeecgframework.poi.excel.ExcelImportUtil;
  35. import org.jeecgframework.poi.excel.entity.ExportParams;
  36. import org.jeecgframework.poi.excel.entity.ImportParams;
  37. import org.jeecgframework.poi.excel.entity.params.ExcelExportEntity;
  38. import org.jeecgframework.poi.excel.entity.vo.MapExcelConstants;
  39. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  40. import org.jeecgframework.tag.core.easyui.TagUtil;
  41. import org.jeecgframework.web.system.pojo.base.DictEntity;
  42. import org.jeecgframework.web.system.pojo.base.TSDepart;
  43. import org.jeecgframework.web.system.pojo.base.TSUser;
  44. import org.jeecgframework.web.system.service.SystemService;
  45. import org.springframework.beans.factory.annotation.Autowired;
  46. import org.springframework.http.HttpHeaders;
  47. import org.springframework.http.HttpStatus;
  48. import org.springframework.http.MediaType;
  49. import org.springframework.http.ResponseEntity;
  50. import org.springframework.stereotype.Controller;
  51. import org.springframework.ui.ModelMap;
  52. import org.springframework.web.bind.annotation.PathVariable;
  53. import org.springframework.web.bind.annotation.RequestBody;
  54. import org.springframework.web.bind.annotation.RequestMapping;
  55. import org.springframework.web.bind.annotation.RequestMethod;
  56. import org.springframework.web.bind.annotation.ResponseBody;
  57. import org.springframework.web.bind.annotation.ResponseStatus;
  58. import org.springframework.web.multipart.MultipartFile;
  59. import org.springframework.web.multipart.MultipartHttpServletRequest;
  60. import org.springframework.web.servlet.ModelAndView;
  61. import org.springframework.web.util.UriComponentsBuilder;
  62. import cn.com.lzt.arrangeduty.dao.ArrangeDutyMinidao;
  63. import cn.com.lzt.arrangeduty.dto.ArrangeDutyDto;
  64. import cn.com.lzt.arrangeduty.dto.MealsSubsidyDto;
  65. import cn.com.lzt.arrangeduty.dto.ProjectDepartDto;
  66. import cn.com.lzt.arrangeduty.entity.ArrangeDutyEntity;
  67. import cn.com.lzt.arrangeduty.service.ArrangeDutyServiceI;
  68. import cn.com.lzt.dialogDeal.service.DialogDealServiceI;
  69. import cn.com.lzt.mealssubsidy.entity.MealsSubsidyEntity;
  70. import cn.com.lzt.mealssubsidy.service.MealsSubsidyServiceI;
  71. import cn.com.lzt.projarrangedetail.projectarrangecommonmethod.ProjectArrangeCommonMethod;
  72. import cn.com.lzt.projarrangegeneral.service.ProjArrangeGeneralServiceI;
  73. import cn.com.lzt.projectpostdetail.service.ProjectPostDetailServiceI;
  74. import cn.com.lzt.useroptions.entity.TBusUserOptionsEntity;
  75. import cn.com.lzt.useroptions.service.TBusUserOptionsServiceI;
  76. /**
  77. * @Title: Controller
  78. * @Description: 班次表
  79. * @author onlineGenerator
  80. * @date 2017-10-20 17:44:12
  81. * @version V1.0
  82. *
  83. */
  84. @Controller
  85. @RequestMapping("/arrangeDutyController")
  86. public class ArrangeDutyController extends BaseController {
  87. /**
  88. * Logger for this class
  89. */
  90. private static final Logger logger = Logger.getLogger(ArrangeDutyController.class);
  91. @Autowired
  92. private ArrangeDutyServiceI arrangeDutyService;
  93. @Autowired
  94. private ProjArrangeGeneralServiceI projArrangeGeneralService;
  95. @Autowired
  96. private SystemService systemService;
  97. @Autowired
  98. private Validator validator;
  99. @Autowired
  100. private ArrangeDutyMinidao arrangeDutyMinidao;
  101. @Autowired
  102. private ProjectPostDetailServiceI projectPostDetailService;
  103. @Autowired
  104. private TBusUserOptionsServiceI userOptionsService;
  105. //餐费补贴
  106. @Autowired
  107. private MealsSubsidyServiceI mealsSubsidyService;
  108. /**
  109. * 项目信息获取
  110. */
  111. @Autowired
  112. DialogDealServiceI dialogDealServiceI;
  113. /**
  114. * 班次表列表 页面跳转
  115. *
  116. * @return
  117. */
  118. @RequestMapping(params = "list")
  119. public ModelAndView list(HttpServletRequest request) {
  120. HttpSession session = ContextHolderUtils.getSession();
  121. TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
  122. String departid = "";
  123. String departname = "";
  124. try {
  125. TBusUserOptionsEntity options = userOptionsService.getOptionsByUserID(tuser.getId(), Globals.USER_OPTIONS_TYPE_PROJECT, false);
  126. if(options != null) {
  127. departid = options.getOptionId();
  128. departname = options.getOptionName();
  129. }
  130. } catch (Exception e) {
  131. e.printStackTrace();
  132. org.jeecgframework.core.util.LogUtil.error(e.getMessage());
  133. }
  134. Calendar calendar = DataUtils.getCalendar();
  135. calendar.add(Calendar.MONTH, -1);
  136. String yearmonth = DataUtils.formatDate(calendar, "yyyy-MM-dd");
  137. request.setAttribute("maxdate", yearmonth);
  138. if (oConvertUtils.isNotEmpty(departid)) {
  139. request.setAttribute("departid", departid);
  140. request.setAttribute("departname", departname);
  141. }
  142. return new ModelAndView("cn/com/lzt/arrangeduty/arrangeDutyList");
  143. }
  144. /**
  145. * 班次表列表 页面跳转 公司
  146. *
  147. * @return
  148. */
  149. @RequestMapping(params = "listAll")
  150. public ModelAndView listAll(HttpServletRequest request) {
  151. String departid = oConvertUtils.getString(request.getParameter("departid"));
  152. Calendar calendar = DataUtils.getCalendar();
  153. calendar.add(Calendar.MONTH, -1);
  154. String yearmonth = DataUtils.formatDate(calendar, "yyyy-MM-dd");
  155. request.setAttribute("maxdate", yearmonth);
  156. request.setAttribute("departid", departid);
  157. TSDepart depart = systemService.get(TSDepart.class, departid);
  158. if(depart != null) {
  159. request.setAttribute("departname", depart.getDepartname());
  160. }
  161. return new ModelAndView("cn/com/lzt/arrangeduty/arrangeDutyAllList");
  162. }
  163. /**
  164. * easyui AJAX请求数据
  165. *
  166. * @param request
  167. * @param response
  168. * @param dataGrid
  169. * @param user
  170. */
  171. @RequestMapping(params = "datagrid")
  172. public void datagrid(ArrangeDutyDto arrangeDutyDto,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  173. String myPId=arrangeDutyDto.getPid();
  174. if(myPId!=null&&myPId.length()>0){
  175. if(myPId.indexOf(",") == myPId.length()-1) {
  176. arrangeDutyDto.setPid(myPId.split(",")[0]);
  177. }else if(myPId.indexOf(",") < myPId.length()-1 && myPId.indexOf(",") >= 0) {
  178. arrangeDutyDto.setPid(myPId.split(",")[1]);
  179. }else {
  180. arrangeDutyDto.setPid(myPId);
  181. }
  182. }else {
  183. String queryParams = oConvertUtils.getString(request.getParameter("departid"));
  184. arrangeDutyDto.setPid(queryParams);
  185. }
  186. HttpSession session = ContextHolderUtils.getSession();
  187. TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
  188. try {
  189. if(arrangeDutyDto.getPid()!=null){
  190. userOptionsService.saveUserOptions(tuser.getId(), arrangeDutyDto.getPid(), Globals.USER_OPTIONS_TYPE_PROJECT);
  191. }else {
  192. TBusUserOptionsEntity options = userOptionsService.getOptionsByUserID(tuser.getId(), Globals.USER_OPTIONS_TYPE_PROJECT, true);
  193. if(options != null) {
  194. arrangeDutyDto.setPid(options.getOptionId());
  195. }
  196. }
  197. } catch (Exception e) {
  198. e.printStackTrace();
  199. org.jeecgframework.core.util.LogUtil.error(e.getMessage());
  200. }
  201. //根据当前登录用户id查询项目信息
  202. List<ProjectDepartDto> projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId();
  203. List<String> pidList=new ArrayList<String>();
  204. for (int i = 0; i < projectDepartDtoList.size(); i++) {
  205. pidList.add(projectDepartDtoList.get(i).getId());
  206. }
  207. //根据用户所属项目和兼职项目查询,如果有查询条件,则只用条件查询
  208. if(arrangeDutyDto.getPid()!=null&&arrangeDutyDto.getPid().length()>0){
  209. List<String> tempList=new ArrayList<String>();
  210. tempList.add(arrangeDutyDto.getPid());
  211. pidList.retainAll(tempList);
  212. }
  213. arrangeDutyDto.setPidList(pidList);
  214. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  215. MiniDaoPage<ArrangeDutyDto> list = arrangeDutyService.getArrangeDutyDtoPage(arrangeDutyDto, dataGrid.getPage(), dataGrid.getRows(),authSql);
  216. for (int i = 0; i < list.getResults().size(); i++) {
  217. if(list.getResults().get(i)!=null){
  218. if(list.getResults().get(i).getNormalworkStime()!=null
  219. &&list.getResults().get(i).getNormalworkStime().length()!=0
  220. &&list.getResults().get(i).getNormalworkEtime()!=null
  221. &&list.getResults().get(i).getNormalworkEtime().length()!=0){
  222. String normalWorkStime=list.getResults().get(i).getNormalworkStime()+"-"+list.getResults().get(i).getNormalworkEtime();
  223. list.getResults().get(i).setNormalworkStime(normalWorkStime);
  224. }
  225. if(list.getResults().get(i).getOndutyStime()!=null
  226. &&list.getResults().get(i).getOndutyStime().length()!=0
  227. &&list.getResults().get(i).getOndutyEtime()!=null
  228. &&list.getResults().get(i).getOndutyEtime().length()!=0){
  229. String ondutyStime=list.getResults().get(i).getOndutyStime()+"-"+list.getResults().get(i).getOndutyEtime();
  230. list.getResults().get(i).setOndutyStime(ondutyStime);
  231. }
  232. if(list.getResults().get(i).getTimeOutOvertimeStime()!=null
  233. &&list.getResults().get(i).getTimeOutOvertimeStime().length()!=0
  234. &&list.getResults().get(i).getTimeOutOvertimeEtime()!=null
  235. &&list.getResults().get(i).getTimeOutOvertimeEtime().length()!=0){
  236. String Overtime=list.getResults().get(i).getTimeOutOvertimeStime()+"-"+list.getResults().get(i).getTimeOutOvertimeEtime();
  237. list.getResults().get(i).setTimeOutOvertimeStime(Overtime);
  238. }
  239. }
  240. }
  241. dataGrid.setTotal(list.getTotal());
  242. dataGrid.setResults(list.getResults());
  243. TagUtil.datagrid(response, dataGrid);
  244. }
  245. /**
  246. * easyui AJAX请求数据
  247. *
  248. * @param request
  249. * @param response
  250. * @param dataGrid
  251. * @param user
  252. */
  253. @RequestMapping(params = "datagridAll")
  254. public void datagridAll(ArrangeDutyDto arrangeDutyDto,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  255. String departid = oConvertUtils.getString(request.getParameter("departid"));
  256. String myPId=arrangeDutyDto.getPid();
  257. if(myPId!=null&&myPId.length()>0){
  258. if(myPId.indexOf(",") == myPId.length()-1) {
  259. arrangeDutyDto.setPid(myPId.split(",")[0]);
  260. }else if(myPId.indexOf(",") < myPId.length()-1 && myPId.indexOf(",") >= 0) {
  261. arrangeDutyDto.setPid(myPId.split(",")[1]);
  262. }else {
  263. arrangeDutyDto.setPid(myPId);
  264. }
  265. }else {
  266. arrangeDutyDto.setPid(departid);
  267. }
  268. String departname = oConvertUtils.getString(request.getParameter("departname"));
  269. // HttpSession session = ContextHolderUtils.getSession();
  270. // TSUser tuser = (TSUser)session.getAttribute("LOCAL_CLINET_USER");
  271. // try {
  272. // if(arrangeDutyDto.getPid()!=null){
  273. // userOptionsService.saveUserOptions(tuser.getId(), arrangeDutyDto.getPid(), Globals.USER_OPTIONS_TYPE_PROJECT);
  274. // }else {
  275. // TBusUserOptionsEntity options = userOptionsService.getOptionsByUserID(tuser.getId(), Globals.USER_OPTIONS_TYPE_PROJECT, true);
  276. // if(options != null) {
  277. // arrangeDutyDto.setPid(options.getOptionId());
  278. // }
  279. // }
  280. // } catch (Exception e) {
  281. // e.printStackTrace();
  282. // org.jeecgframework.core.util.LogUtil.error(e.getMessage());
  283. // }
  284. //根据当前登录用户id查询项目信息
  285. // List<ProjectDepartDto> projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId();
  286. List<String> pidList=new ArrayList<String>();
  287. // for (int i = 0; i < projectDepartDtoList.size(); i++) {
  288. // pidList.add(projectDepartDtoList.get(i).getId());
  289. // }
  290. pidList.add(arrangeDutyDto.getPid());
  291. //根据用户所属项目和兼职项目查询,如果有查询条件,则只用条件查询
  292. if(arrangeDutyDto.getPid()!=null&&arrangeDutyDto.getPid().length()>0){
  293. List<String> tempList=new ArrayList<String>();
  294. tempList.add(arrangeDutyDto.getPid());
  295. pidList.retainAll(tempList);
  296. }
  297. arrangeDutyDto.setPidList(pidList);
  298. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  299. MiniDaoPage<ArrangeDutyDto> list = arrangeDutyService.getArrangeDutyDtoPage(arrangeDutyDto, dataGrid.getPage(), dataGrid.getRows(),authSql);
  300. for (int i = 0; i < list.getResults().size(); i++) {
  301. if(list.getResults().get(i)!=null){
  302. if(list.getResults().get(i).getNormalworkStime()!=null
  303. &&list.getResults().get(i).getNormalworkStime().length()!=0
  304. &&list.getResults().get(i).getNormalworkEtime()!=null
  305. &&list.getResults().get(i).getNormalworkEtime().length()!=0){
  306. String normalWorkStime=list.getResults().get(i).getNormalworkStime()+"-"+list.getResults().get(i).getNormalworkEtime();
  307. list.getResults().get(i).setNormalworkStime(normalWorkStime);
  308. }
  309. if(list.getResults().get(i).getOndutyStime()!=null
  310. &&list.getResults().get(i).getOndutyStime().length()!=0
  311. &&list.getResults().get(i).getOndutyEtime()!=null
  312. &&list.getResults().get(i).getOndutyEtime().length()!=0){
  313. String ondutyStime=list.getResults().get(i).getOndutyStime()+"-"+list.getResults().get(i).getOndutyEtime();
  314. list.getResults().get(i).setOndutyStime(ondutyStime);
  315. }
  316. if(list.getResults().get(i).getTimeOutOvertimeStime()!=null
  317. &&list.getResults().get(i).getTimeOutOvertimeStime().length()!=0
  318. &&list.getResults().get(i).getTimeOutOvertimeEtime()!=null
  319. &&list.getResults().get(i).getTimeOutOvertimeEtime().length()!=0){
  320. String Overtime=list.getResults().get(i).getTimeOutOvertimeStime()+"-"+list.getResults().get(i).getTimeOutOvertimeEtime();
  321. list.getResults().get(i).setTimeOutOvertimeStime(Overtime);
  322. }
  323. }
  324. }
  325. request.setAttribute("departid", departid);
  326. request.setAttribute("departname", departname);
  327. dataGrid.setTotal(list.getTotal());
  328. dataGrid.setResults(list.getResults());
  329. TagUtil.datagrid(response, dataGrid);
  330. }
  331. /**
  332. * 删除班次表
  333. *
  334. * @return
  335. */
  336. @RequestMapping(params = "doDel")
  337. @ResponseBody
  338. public AjaxJson doDel(ArrangeDutyEntity arrangeDuty, HttpServletRequest request) {
  339. String message = null;
  340. AjaxJson j = new AjaxJson();
  341. arrangeDuty = systemService.getEntity(ArrangeDutyEntity.class, arrangeDuty.getId());
  342. message = "班次删除成功";
  343. try{
  344. arrangeDutyService.delete(arrangeDuty);
  345. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  346. }catch(Exception e){
  347. e.printStackTrace();
  348. message = "班次删除失败";
  349. throw new BusinessException(e.getMessage());
  350. }
  351. j.setMsg(message);
  352. return j;
  353. }
  354. /**
  355. * 批量删除班次表
  356. *
  357. * @return
  358. */
  359. @RequestMapping(params = "doBatchDel")
  360. @ResponseBody
  361. public AjaxJson doBatchDel(String ids,HttpServletRequest request){
  362. String message = null;
  363. AjaxJson j = new AjaxJson();
  364. message = "班次删除成功";
  365. try{
  366. for(String id:ids.split(",")){
  367. ArrangeDutyEntity arrangeDuty = systemService.getEntity(ArrangeDutyEntity.class,
  368. id
  369. );
  370. arrangeDutyService.delete(arrangeDuty);
  371. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  372. }
  373. }catch(Exception e){
  374. e.printStackTrace();
  375. message = "班次删除失败";
  376. throw new BusinessException(e.getMessage());
  377. }
  378. j.setMsg(message);
  379. return j;
  380. }
  381. /**
  382. * 添加班次表
  383. *
  384. * @param ids
  385. * @return
  386. */
  387. @RequestMapping(params = "doAdd")
  388. @ResponseBody
  389. public AjaxJson doAdd(ArrangeDutyEntity arrangeDuty, HttpServletRequest request) {
  390. // String strIp=request.getRemoteAddr();
  391. // ProjectArrangeCommonMethod.writeVisitorIp("添加班次表"+strIp);
  392. String message = null;
  393. AjaxJson j = new AjaxJson();
  394. message = "班次添加成功";
  395. /*String myPId=arrangeDuty.getPid();
  396. if(myPId!=null&&myPId.length()>0){
  397. String[] pIdList=myPId.split(",");
  398. arrangeDuty.setPid(pIdList[0]);
  399. }*/
  400. if(arrangeDuty.getPid()!=null&&arrangeDuty.getPid().length()>0){
  401. arrangeDuty.setPid(arrangeDuty.getPid().split(",")[0]);
  402. }
  403. try{
  404. arrangeDuty.setDeleteFlag(Globals.Delete_Normal.toString());
  405. arrangeDuty.setStatus(Globals.Enabled_Status.toString());
  406. if(arrangeDuty.getOndutyEtime()!=null&&arrangeDuty.getOndutyEtime().length()!=0
  407. &&arrangeDuty.getOndutyStime()!=null&&arrangeDuty.getOndutyStime().length()!=0){
  408. arrangeDuty.setOndutyWorkhours(ProjectArrangeCommonMethod.dealMinuteToHourFormat(arrangeDuty.getOndutyStime(),arrangeDuty.getOndutyEtime()));
  409. }
  410. arrangeDutyService.save(arrangeDuty);
  411. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  412. }catch(Exception e){
  413. e.printStackTrace();
  414. message = "班次添加失败";
  415. throw new BusinessException(e.getMessage());
  416. }
  417. j.setMsg(message);
  418. return j;
  419. }
  420. /**
  421. * 更新班次表
  422. *
  423. * @param ids
  424. * @return
  425. */
  426. @RequestMapping(params = "doUpdate")
  427. @ResponseBody
  428. public AjaxJson doUpdate(ArrangeDutyEntity arrangeDuty, HttpServletRequest request) {
  429. String message = null;
  430. AjaxJson j = new AjaxJson();
  431. message = "班次更新成功";
  432. if(arrangeDuty.getPid()!=null&&arrangeDuty.getPid().length()>0){
  433. arrangeDuty.setPid(arrangeDuty.getPid().split(",")[0]);
  434. }
  435. ArrangeDutyEntity t = arrangeDutyService.get(ArrangeDutyEntity.class, arrangeDuty.getId());
  436. try {
  437. if(arrangeDuty.getOndutyEtime()!=null&&arrangeDuty.getOndutyEtime().length()!=0
  438. &&arrangeDuty.getOndutyStime()!=null&&arrangeDuty.getOndutyStime().length()!=0){
  439. arrangeDuty.setOndutyWorkhours(ProjectArrangeCommonMethod.dealMinuteToHourFormat(arrangeDuty.getOndutyStime(),arrangeDuty.getOndutyEtime()));
  440. }
  441. if(arrangeDuty.getNormalworkStime()==null){
  442. t.setNormalworkStime(null);
  443. }
  444. if(arrangeDuty.getNormalworkEtime()==null){
  445. t.setNormalworkEtime(null);
  446. }
  447. if(arrangeDuty.getDatumWorkhours()==null){
  448. t.setDatumWorkhours(null);
  449. }
  450. if(arrangeDuty.getShiftWorkhours()==null){
  451. t.setShiftWorkhours(null);
  452. }
  453. if(arrangeDuty.getTimeOutOvertimeHours()==null){
  454. t.setTimeOutOvertimeHours(null);
  455. }
  456. if(arrangeDuty.getSpunchMinute()==null){
  457. t.setSpunchMinute(null);
  458. }
  459. if(arrangeDuty.getEpunchMinute()==null){
  460. t.setEpunchMinute(null);
  461. }
  462. MyBeanUtils.copyBeanNotNull2Bean(arrangeDuty, t);
  463. arrangeDutyService.saveOrUpdate(t);
  464. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  465. } catch (Exception e) {
  466. e.printStackTrace();
  467. message = "班次更新失败";
  468. throw new BusinessException(e.getMessage());
  469. }
  470. j.setMsg(message);
  471. return j;
  472. }
  473. /**
  474. * 班次表新增页面跳转
  475. *
  476. * @return
  477. */
  478. @RequestMapping(params = "goAdd")
  479. public ModelAndView goAdd(ArrangeDutyEntity arrangeDuty, HttpServletRequest req) {
  480. if (StringUtil.isNotEmpty(arrangeDuty.getId())) {
  481. arrangeDuty = arrangeDutyService.getEntity(ArrangeDutyEntity.class, arrangeDuty.getId());
  482. req.setAttribute("arrangeDutyPage", arrangeDuty);
  483. }
  484. return new ModelAndView("cn/com/lzt/arrangeduty/arrangeDuty-add");
  485. }
  486. /**
  487. * 班次表编辑页面跳转
  488. *
  489. * @return
  490. */
  491. @RequestMapping(params = "goUpdate")
  492. public ModelAndView goUpdate(ArrangeDutyEntity arrangeDuty, HttpServletRequest req) {
  493. if (StringUtil.isNotEmpty(arrangeDuty.getId())) {
  494. arrangeDuty = arrangeDutyService.getEntity(ArrangeDutyEntity.class, arrangeDuty.getId());
  495. /*if(arrangeDuty.getPid().length()>0&&arrangeDuty.getPid().indexOf(",")==-1){
  496. arrangeDuty.setPid(arrangeDuty.getPid()+",");
  497. }*/
  498. String pid = arrangeDuty.getPid();
  499. if(pid != null) {
  500. TSDepart depart = systemService.get(TSDepart.class, pid);
  501. if(depart != null) {
  502. arrangeDuty.setDepartname(depart.getDepartname());
  503. }
  504. }
  505. String mealid = arrangeDuty.getDutyMealid();
  506. if(mealid != null) {
  507. MealsSubsidyEntity meal = systemService.get(MealsSubsidyEntity.class, mealid);
  508. if(meal != null) {
  509. arrangeDuty.setDutyMealName(meal.getSubsidyName());
  510. }
  511. }
  512. req.setAttribute("arrangeDutyPage", arrangeDuty);
  513. }
  514. return new ModelAndView("cn/com/lzt/arrangeduty/arrangeDuty-update");
  515. }
  516. /**
  517. * 班次表编辑页面跳转
  518. *
  519. * @return
  520. */
  521. @RequestMapping(params = "goUpdateAll")
  522. public ModelAndView goUpdateAll(ArrangeDutyEntity arrangeDuty, HttpServletRequest req) {
  523. if (StringUtil.isNotEmpty(arrangeDuty.getId())) {
  524. arrangeDuty = arrangeDutyService.getEntity(ArrangeDutyEntity.class, arrangeDuty.getId());
  525. /*if(arrangeDuty.getPid().length()>0&&arrangeDuty.getPid().indexOf(",")==-1){
  526. arrangeDuty.setPid(arrangeDuty.getPid()+",");
  527. }*/
  528. String pid = arrangeDuty.getPid();
  529. if(pid != null) {
  530. TSDepart depart = systemService.get(TSDepart.class, pid);
  531. if(depart != null) {
  532. arrangeDuty.setDepartname(depart.getDepartname());
  533. }
  534. }
  535. String mealid = arrangeDuty.getDutyMealid();
  536. if(mealid != null) {
  537. MealsSubsidyEntity meal = systemService.get(MealsSubsidyEntity.class, mealid);
  538. if(meal != null) {
  539. arrangeDuty.setDutyMealName(meal.getSubsidyName());
  540. }
  541. }
  542. req.setAttribute("arrangeDutyPage", arrangeDuty);
  543. }
  544. return new ModelAndView("cn/com/lzt/arrangeduty/arrangeDutyAll-update");
  545. }
  546. /**
  547. * 导入功能跳转
  548. *
  549. * @return
  550. */
  551. @RequestMapping(params = "upload")
  552. public ModelAndView upload(HttpServletRequest req) {
  553. req.setAttribute("controller_name","arrangeDutyController");
  554. return new ModelAndView("common/upload/pub_excel_upload");
  555. }
  556. /**
  557. * 导出excel
  558. *
  559. * @param request
  560. * @param response
  561. */
  562. @RequestMapping(params = "exportXls")
  563. public String exportXls(ArrangeDutyDto arrangeDutyDto,HttpServletRequest request,HttpServletResponse response
  564. , DataGrid dataGrid,ModelMap modelMap) {
  565. //获取餐补名称
  566. List<DictEntity> mealsSubsidyList=systemService.queryDict("t_bus_meals_subsidy", "id", "subsidy_name");
  567. Map<String, String> mealsSubsidyMap=new HashMap<String, String>();
  568. for (int i = 0; i < mealsSubsidyList.size(); i++) {
  569. mealsSubsidyMap.put(mealsSubsidyList.get(i).getTypecode(), mealsSubsidyList.get(i).getTypename());
  570. }
  571. /*//获取餐补名称
  572. List<DictEntity> mealsSubsidyList=systemService.queryDict("t_bus_meals_subsidy", "id", "subsidy_name");
  573. Map<String, String> mealsSubsidyMap=new HashMap<String, String>();
  574. for (int i = 0; i < mealsSubsidyList.size(); i++) {
  575. mealsSubsidyMap.put(mealsSubsidyList.get(i).getTypecode(), mealsSubsidyList.get(i).getTypename());
  576. }
  577. //获取项目名称
  578. List<DictEntity> departList=systemService.queryDict("t_s_depart", "id", "departname");
  579. Map<String, String> departMap=new HashMap<String, String>();
  580. for (int i = 0; i < departList.size(); i++) {
  581. departMap.put(departList.get(i).getTypecode(), departList.get(i).getTypename());
  582. }
  583. //获取班次类型
  584. List<DictEntity> dutyTypeList=systemService.queryDict(null, "dutyType", null);
  585. Map<String, String> dutyTypeMap=new HashMap<String, String>();
  586. for (int i = 0; i < dutyTypeList.size(); i++) {
  587. dutyTypeMap.put(dutyTypeList.get(i).getTypecode(), dutyTypeList.get(i).getTypename());
  588. }
  589. //标题 该list中用于存储标题的信息,每一个ExcelExportEntity 表示一列,根据List 的入栈顺序,由左至右,一次排序
  590. List<ExcelExportEntity> entityList = new ArrayList<ExcelExportEntity>();
  591. ExcelExportEntity head1=new ExcelExportEntity("班次名称", "dutyName", 15);
  592. entityList.add(head1);
  593. ExcelExportEntity head2=new ExcelExportEntity("班次类型", "dutyType", 15);
  594. entityList.add(head2);
  595. ExcelExportEntity head3=new ExcelExportEntity("项目", "pid", 15);
  596. entityList.add(head3);
  597. ExcelExportEntity head4=new ExcelExportEntity("正常工作时间", "normalworkStime", 15);
  598. entityList.add(head4);
  599. ExcelExportEntity head5=new ExcelExportEntity("开始打卡分钟数", "spunchMinute", 15);
  600. entityList.add(head5);
  601. ExcelExportEntity head6=new ExcelExportEntity("结束打卡分钟数", "epunchMinute", 15);
  602. entityList.add(head6);
  603. ExcelExportEntity head7=new ExcelExportEntity("基准工时(小时)", "datumWorkhours", 15);
  604. entityList.add(head7);
  605. ExcelExportEntity head8=new ExcelExportEntity("班次工时(小时)", "shiftWorkhours", 15);
  606. entityList.add(head8);
  607. ExcelExportEntity head9=new ExcelExportEntity("值班时间", "ondutyStime", 15);
  608. entityList.add(head9);
  609. ExcelExportEntity head10=new ExcelExportEntity("超时加班时间", "timeOutOvertimeStime", 15);
  610. entityList.add(head10);
  611. ExcelExportEntity head11=new ExcelExportEntity("超时加班时长(小时)", "timeOutOvertimeHours", 15);
  612. entityList.add(head11);
  613. ExcelExportEntity head12=new ExcelExportEntity("班次餐补", "dutyMealid", 15);
  614. entityList.add(head12);
  615. ExcelExportEntity head13=new ExcelExportEntity("备注", "remark", 15);
  616. entityList.add(head13);
  617. //组建数据集
  618. List<Map<String,Object>> dataResult = new ArrayList<Map<String,Object>>();
  619. //根据当前登录用户id查询项目信息
  620. List<ProjectDepartDto> projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId();
  621. List<String> pidList=new ArrayList<String>();
  622. for (int i = 0; i < projectDepartDtoList.size(); i++) {
  623. pidList.add(projectDepartDtoList.get(i).getId());
  624. }
  625. //根据用户所属项目和兼职项目查询,如果有查询条件,则只用条件查询
  626. if(arrangeDutyDto.getPid()!=null&&arrangeDutyDto.getPid().length()>0){
  627. List<String> tempList=new ArrayList<String>();
  628. tempList.add(arrangeDutyDto.getPid());
  629. pidList.retainAll(tempList);
  630. }
  631. arrangeDutyDto.setPidList(pidList);
  632. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  633. List<ArrangeDutyDto> arrangeDutyDtoList = arrangeDutyService.getArrangeDutyDtoNoPage(arrangeDutyDto,authSql);
  634. for (int i = 0; i < arrangeDutyDtoList.size(); i++) {
  635. Map<String, Object> map = new HashMap<String, Object>();
  636. map.put("dutyName", arrangeDutyDtoList.get(i).getDutyName());
  637. map.put("dutyType", arrangeDutyDtoList.get(i).getDutyType());
  638. map.put("pid", departMap.get(arrangeDutyDtoList.get(i).getPid()));
  639. String normalWorkStime="";
  640. if(arrangeDutyDtoList.get(i).getNormalworkStime()!=null
  641. &&arrangeDutyDtoList.get(i).getNormalworkStime().length()!=0
  642. &&arrangeDutyDtoList.get(i).getNormalworkEtime()!=null
  643. &&arrangeDutyDtoList.get(i).getNormalworkEtime().length()!=0){
  644. normalWorkStime=arrangeDutyDtoList.get(i).getNormalworkStime()+"-"+arrangeDutyDtoList.get(i).getNormalworkEtime();
  645. }
  646. map.put("normalworkStime", normalWorkStime);
  647. map.put("spunchMinute", arrangeDutyDtoList.get(i).getSpunchMinute());
  648. map.put("epunchMinute", arrangeDutyDtoList.get(i).getEpunchMinute());
  649. map.put("datumWorkhours", arrangeDutyDtoList.get(i).getDatumWorkhours());
  650. map.put("shiftWorkhours", arrangeDutyDtoList.get(i).getShiftWorkhours());
  651. String ondutyStime="";
  652. if(arrangeDutyDtoList.get(i).getOndutyStime()!=null
  653. &&arrangeDutyDtoList.get(i).getOndutyStime().length()!=0
  654. &&arrangeDutyDtoList.get(i).getOndutyEtime()!=null
  655. &&arrangeDutyDtoList.get(i).getOndutyEtime().length()!=0){
  656. ondutyStime=arrangeDutyDtoList.get(i).getOndutyStime()+"-"+arrangeDutyDtoList.get(i).getOndutyEtime();
  657. }
  658. map.put("ondutyStime", ondutyStime);
  659. String timeOutOvertimeStime="";
  660. if(arrangeDutyDtoList.get(i).getTimeOutOvertimeStime()!=null
  661. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeStime().length()!=0
  662. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime()!=null
  663. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime().length()!=0){
  664. timeOutOvertimeStime=arrangeDutyDtoList.get(i).getTimeOutOvertimeStime()+"-"+arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime();
  665. }
  666. map.put("timeOutOvertimeStime", timeOutOvertimeStime);
  667. map.put("timeOutOvertimeHours", arrangeDutyDtoList.get(i).getTimeOutOvertimeHours());
  668. List<String> dutyMealidList=extractIdListByComma(arrangeDutyDtoList.get(i).getDutyMealid());
  669. String dutyMealid="";
  670. for (int k = 0; k < dutyMealidList.size(); k++) {
  671. for (int j = 0; j < mealsSubsidyList.size(); j++) {
  672. if(dutyMealidList.get(k).equals(mealsSubsidyList.get(j).getTypecode())){
  673. if(dutyMealid.length()!=0){
  674. dutyMealid+=","+mealsSubsidyList.get(j).getTypename();
  675. }else{
  676. dutyMealid=mealsSubsidyList.get(j).getTypename();
  677. }
  678. break;
  679. }
  680. }
  681. }
  682. map.put("dutyMealid", dutyMealid);
  683. map.put("remark", arrangeDutyDtoList.get(i).getRemark());
  684. dataResult.add(map);
  685. }
  686. modelMap.put(MapExcelConstants.ENTITY_LIST, entityList);
  687. modelMap.put(MapExcelConstants.MAP_LIST, dataResult);
  688. modelMap.put(NormalExcelConstants.FILE_NAME,"班次");
  689. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("班次列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  690. "导出信息"));
  691. return MapExcelConstants.JEECG_MAP_EXCEL_VIEW; */
  692. /*CriteriaQuery cq = new CriteriaQuery(ArrangeDutyEntity.class, dataGrid);
  693. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, arrangeDuty, request.getParameterMap());
  694. List<ArrangeDutyEntity> arrangeDutys = this.arrangeDutyService.getListByCriteriaQuery(cq,false);
  695. modelMap.put(NormalExcelConstants.FILE_NAME,"班次表");
  696. modelMap.put(NormalExcelConstants.CLASS,ArrangeDutyEntity.class);
  697. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("班次表列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  698. "导出信息"));
  699. modelMap.put(NormalExcelConstants.DATA_LIST,arrangeDutys);
  700. return NormalExcelConstants.JEECG_EXCEL_VIEW;*/
  701. // CriteriaQuery cq = new CriteriaQuery(ArrangeDutyEntity.class, dataGrid);
  702. // org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, arrangeDuty, request.getParameterMap());
  703. // List<ArrangeDutyEntity> arrangeDutys = this.arrangeDutyService.getListByCriteriaQuery(cq,false);
  704. //根据当前登录用户id查询项目信息
  705. List<ProjectDepartDto> projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId();
  706. List<String> pidList=new ArrayList<String>();
  707. for (int i = 0; i < projectDepartDtoList.size(); i++) {
  708. pidList.add(projectDepartDtoList.get(i).getId());
  709. }
  710. //根据用户所属项目和兼职项目查询,如果有查询条件,则只用条件查询
  711. if(arrangeDutyDto.getPid()!=null&&arrangeDutyDto.getPid().length()>0){
  712. List<String> tempList=new ArrayList<String>();
  713. String myPId = arrangeDutyDto.getPid();
  714. if(myPId!=null&&myPId.length()>0){
  715. if(myPId.indexOf(",") == myPId.length()-1) {
  716. tempList.add(myPId.split(",")[0]);
  717. }else if(myPId.indexOf(",") < myPId.length()-1 && myPId.indexOf(",") >= 0) {
  718. tempList.add(myPId.split(",")[1]);
  719. }else {
  720. tempList.add(myPId);
  721. }
  722. pidList.retainAll(tempList);
  723. }
  724. }
  725. arrangeDutyDto.setPidList(pidList);
  726. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  727. List<ArrangeDutyDto> arrangeDutyDtoList = arrangeDutyService.getArrangeDutyDtoExport(arrangeDutyDto,authSql);
  728. for (int i = 0; i < arrangeDutyDtoList.size(); i++) {
  729. // Map<String, Object> map = new HashMap<String, Object>();
  730. // map.put("dutyName", arrangeDutyDtoList.get(i).getDutyName());
  731. // map.put("dutyType", arrangeDutyDtoList.get(i).getDutyType());
  732. // map.put("pid", departMap.get(arrangeDutyDtoList.get(i).getPid()));
  733. String normalWorkStime="";
  734. if(arrangeDutyDtoList.get(i).getNormalworkStime()!=null
  735. &&arrangeDutyDtoList.get(i).getNormalworkStime().length()!=0
  736. &&arrangeDutyDtoList.get(i).getNormalworkEtime()!=null
  737. &&arrangeDutyDtoList.get(i).getNormalworkEtime().length()!=0){
  738. normalWorkStime=arrangeDutyDtoList.get(i).getNormalworkStime()+"-"+arrangeDutyDtoList.get(i).getNormalworkEtime();
  739. arrangeDutyDtoList.get(i).setNormalworkStime(normalWorkStime);
  740. }
  741. // map.put("normalworkStime", normalWorkStime);
  742. //
  743. // map.put("spunchMinute", arrangeDutyDtoList.get(i).getSpunchMinute());
  744. // map.put("epunchMinute", arrangeDutyDtoList.get(i).getEpunchMinute());
  745. // map.put("datumWorkhours", arrangeDutyDtoList.get(i).getDatumWorkhours());
  746. // map.put("shiftWorkhours", arrangeDutyDtoList.get(i).getShiftWorkhours());
  747. String ondutyStime="";
  748. if(arrangeDutyDtoList.get(i).getOndutyStime()!=null
  749. &&arrangeDutyDtoList.get(i).getOndutyStime().length()!=0
  750. &&arrangeDutyDtoList.get(i).getOndutyEtime()!=null
  751. &&arrangeDutyDtoList.get(i).getOndutyEtime().length()!=0){
  752. ondutyStime=arrangeDutyDtoList.get(i).getOndutyStime()+"-"+arrangeDutyDtoList.get(i).getOndutyEtime();
  753. arrangeDutyDtoList.get(i).setOndutyStime(ondutyStime);
  754. }
  755. // map.put("ondutyStime", ondutyStime);
  756. String timeOutOvertimeStime="";
  757. if(arrangeDutyDtoList.get(i).getTimeOutOvertimeStime()!=null
  758. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeStime().length()!=0
  759. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime()!=null
  760. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime().length()!=0){
  761. timeOutOvertimeStime=arrangeDutyDtoList.get(i).getTimeOutOvertimeStime()+"-"+arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime();
  762. arrangeDutyDtoList.get(i).setTimeOutOvertimeStime(timeOutOvertimeStime);
  763. }
  764. // map.put("timeOutOvertimeStime", timeOutOvertimeStime);
  765. //
  766. // map.put("timeOutOvertimeHours", arrangeDutyDtoList.get(i).getTimeOutOvertimeHours());
  767. List<String> dutyMealIdList=extractIdListByComma(arrangeDutyDtoList.get(i).getDutyMealid());
  768. String dutyMealid="";
  769. for (int k = 0; k < dutyMealIdList.size(); k++) {
  770. for (int j = 0; j < mealsSubsidyList.size(); j++) {
  771. if(dutyMealIdList.get(k).equals(mealsSubsidyList.get(j).getTypecode())){
  772. if(dutyMealid.length()!=0){
  773. dutyMealid+=","+mealsSubsidyList.get(j).getTypename();
  774. }else{
  775. dutyMealid=mealsSubsidyList.get(j).getTypename();
  776. }
  777. break;
  778. }
  779. }
  780. }
  781. arrangeDutyDtoList.get(i).setDutyMealid(dutyMealid);
  782. // map.put("dutyMealid", dutyMealid);
  783. // map.put("remark", arrangeDutyDtoList.get(i).getRemark());
  784. //
  785. // dataResult.add(map);
  786. }
  787. modelMap.put(NormalExcelConstants.FILE_NAME,"班次设定");
  788. modelMap.put(NormalExcelConstants.CLASS,ArrangeDutyDto.class);
  789. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("班次设定列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  790. "导出信息"));
  791. modelMap.put(NormalExcelConstants.DATA_LIST,arrangeDutyDtoList);
  792. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  793. }
  794. /**
  795. * 导出excel
  796. *
  797. * @param request
  798. * @param response
  799. */
  800. /*@RequestMapping(params = "exportXls")
  801. public void exportXls(ArrangeDutyDto arrangeDutyDto,HttpServletRequest request,HttpServletResponse response
  802. , DataGrid dataGrid ) {
  803. //获取餐补名称
  804. List<DictEntity> mealsSubsidyList=systemService.queryDict("t_bus_meals_subsidy", "id", "subsidy_name");
  805. Map<String, String> mealsSubsidyMap=new HashMap<String, String>();
  806. for (int i = 0; i < mealsSubsidyList.size(); i++) {
  807. mealsSubsidyMap.put(mealsSubsidyList.get(i).getTypecode(), mealsSubsidyList.get(i).getTypename());
  808. }
  809. //获取项目名称
  810. List<DictEntity> departList=systemService.queryDict("t_s_depart", "id", "departname");
  811. Map<String, String> departMap=new HashMap<String, String>();
  812. for (int i = 0; i < departList.size(); i++) {
  813. departMap.put(departList.get(i).getTypecode(), departList.get(i).getTypename());
  814. }
  815. //获取班次类型
  816. List<DictEntity> dutyTypeList=systemService.queryDict(null, "dutyType", null);
  817. Map<String, String> dutyTypeMap=new HashMap<String, String>();
  818. for (int i = 0; i < dutyTypeList.size(); i++) {
  819. dutyTypeMap.put(dutyTypeList.get(i).getTypecode(), dutyTypeList.get(i).getTypename());
  820. }
  821. //标题 该list中用于存储标题的信息,每一个ExcelExportEntity 表示一列,根据List 的入栈顺序,由左至右,一次排序
  822. List<ExcelExportEntity> entityList = new ArrayList<ExcelExportEntity>();
  823. ExcelExportEntity head1=new ExcelExportEntity("班次名称", "dutyName", 15);
  824. entityList.add(head1);
  825. ExcelExportEntity head2=new ExcelExportEntity("班次类型", "dutyType", 15);
  826. entityList.add(head2);
  827. ExcelExportEntity head3=new ExcelExportEntity("项目", "pid", 15);
  828. entityList.add(head3);
  829. ExcelExportEntity head4=new ExcelExportEntity("正常工作时间", "normalworkStime", 15);
  830. entityList.add(head4);
  831. ExcelExportEntity head5=new ExcelExportEntity("开始打卡分钟数", "spunchMinute", 15);
  832. entityList.add(head5);
  833. ExcelExportEntity head6=new ExcelExportEntity("结束打卡分钟数", "epunchMinute", 15);
  834. entityList.add(head6);
  835. ExcelExportEntity head7=new ExcelExportEntity("基准工时(小时)", "datumWorkhours", 15);
  836. entityList.add(head7);
  837. ExcelExportEntity head8=new ExcelExportEntity("班次工时(小时)", "shiftWorkhours", 15);
  838. entityList.add(head8);
  839. ExcelExportEntity head9=new ExcelExportEntity("值班时间", "ondutyStime", 15);
  840. entityList.add(head9);
  841. ExcelExportEntity head10=new ExcelExportEntity("超时加班时间", "timeOutOvertimeStime", 15);
  842. entityList.add(head10);
  843. ExcelExportEntity head11=new ExcelExportEntity("超时加班时长(小时)", "timeOutOvertimeHours", 15);
  844. entityList.add(head11);
  845. ExcelExportEntity head12=new ExcelExportEntity("班次餐补", "dutyMealid", 15);
  846. entityList.add(head12);
  847. ExcelExportEntity head13=new ExcelExportEntity("备注", "remark", 15);
  848. entityList.add(head13);
  849. //组建数据集
  850. List<Map<String,Object>> dataResult = new ArrayList<Map<String,Object>>();
  851. //根据当前登录用户id查询项目信息
  852. List<ProjectDepartDto> projectDepartDtoList=dialogDealServiceI.getProjectDepartByUserId();
  853. List<String> pidList=new ArrayList<String>();
  854. for (int i = 0; i < projectDepartDtoList.size(); i++) {
  855. pidList.add(projectDepartDtoList.get(i).getId());
  856. }
  857. //根据用户所属项目和兼职项目查询,如果有查询条件,则只用条件查询
  858. if(arrangeDutyDto.getPid()!=null&&arrangeDutyDto.getPid().length()>0){
  859. List<String> tempList=new ArrayList<String>();
  860. tempList.add(arrangeDutyDto.getPid());
  861. pidList.retainAll(tempList);
  862. }
  863. arrangeDutyDto.setPidList(pidList);
  864. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  865. List<ArrangeDutyDto> arrangeDutyDtoList = arrangeDutyService.getArrangeDutyDtoNoPage(arrangeDutyDto,authSql);
  866. for (int i = 0; i < arrangeDutyDtoList.size(); i++) {
  867. Map<String, Object> map = new HashMap<String, Object>();
  868. map.put("dutyName", arrangeDutyDtoList.get(i).getDutyName());
  869. map.put("dutyType", arrangeDutyDtoList.get(i).getDutyType());
  870. map.put("pid", departMap.get(arrangeDutyDtoList.get(i).getPid()));
  871. String normalWorkStime="";
  872. if(arrangeDutyDtoList.get(i).getNormalworkStime()!=null
  873. &&arrangeDutyDtoList.get(i).getNormalworkStime().length()!=0
  874. &&arrangeDutyDtoList.get(i).getNormalworkEtime()!=null
  875. &&arrangeDutyDtoList.get(i).getNormalworkEtime().length()!=0){
  876. normalWorkStime=arrangeDutyDtoList.get(i).getNormalworkStime()+"-"+arrangeDutyDtoList.get(i).getNormalworkEtime();
  877. }
  878. map.put("normalworkStime", normalWorkStime);
  879. map.put("spunchMinute", arrangeDutyDtoList.get(i).getSpunchMinute());
  880. map.put("epunchMinute", arrangeDutyDtoList.get(i).getEpunchMinute());
  881. map.put("datumWorkhours", arrangeDutyDtoList.get(i).getDatumWorkhours());
  882. map.put("shiftWorkhours", arrangeDutyDtoList.get(i).getShiftWorkhours());
  883. String ondutyStime="";
  884. if(arrangeDutyDtoList.get(i).getOndutyStime()!=null
  885. &&arrangeDutyDtoList.get(i).getOndutyStime().length()!=0
  886. &&arrangeDutyDtoList.get(i).getOndutyEtime()!=null
  887. &&arrangeDutyDtoList.get(i).getOndutyEtime().length()!=0){
  888. ondutyStime=arrangeDutyDtoList.get(i).getOndutyStime()+"-"+arrangeDutyDtoList.get(i).getOndutyEtime();
  889. }
  890. map.put("ondutyStime", ondutyStime);
  891. String timeOutOvertimeStime="";
  892. if(arrangeDutyDtoList.get(i).getTimeOutOvertimeStime()!=null
  893. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeStime().length()!=0
  894. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime()!=null
  895. &&arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime().length()!=0){
  896. timeOutOvertimeStime=arrangeDutyDtoList.get(i).getTimeOutOvertimeStime()+"-"+arrangeDutyDtoList.get(i).getTimeOutOvertimeEtime();
  897. }
  898. map.put("timeOutOvertimeStime", timeOutOvertimeStime);
  899. map.put("timeOutOvertimeHours", arrangeDutyDtoList.get(i).getTimeOutOvertimeHours());
  900. List<String> dutyMealidList=extractIdListByComma(arrangeDutyDtoList.get(i).getDutyMealid());
  901. String dutyMealid="";
  902. for (int k = 0; k < dutyMealidList.size(); k++) {
  903. for (int j = 0; j < mealsSubsidyList.size(); j++) {
  904. if(dutyMealidList.get(k).equals(mealsSubsidyList.get(j).getTypecode())){
  905. if(dutyMealid.length()!=0){
  906. dutyMealid+=","+mealsSubsidyList.get(j).getTypename();
  907. }else{
  908. dutyMealid=mealsSubsidyList.get(j).getTypename();
  909. }
  910. break;
  911. }
  912. }
  913. }
  914. map.put("dutyMealid", dutyMealid);
  915. map.put("remark", arrangeDutyDtoList.get(i).getRemark());
  916. dataResult.add(map);
  917. }
  918. //************
  919. //获取项目名称
  920. List<DictEntity> departList1=systemService.queryDict("t_s_depart", "id", "departname");
  921. Map<String, String> departMap1=new HashMap<String, String>();
  922. for (int i = 0; i < departList1.size(); i++) {
  923. departMap1.put(departList1.get(i).getTypecode(), departList1.get(i).getTypename());
  924. }
  925. //获取用户名称
  926. List<DictEntity> baseUserList=systemService.queryDict("t_s_base_user", "id", "realname");
  927. Map<String, String> baseUserMap=new HashMap<String, String>();
  928. for (int i = 0; i < baseUserList.size(); i++) {
  929. baseUserMap.put(baseUserList.get(i).getTypecode(), baseUserList.get(i).getTypename());
  930. }
  931. //获取确认状态
  932. List<DictEntity> arrangeDutyStatusList=systemService.queryDict(null, "arrangeStatus", null);
  933. Map<String, String> arrangeDutyStatusMap=new HashMap<String, String>();
  934. for (int i = 0; i < arrangeDutyStatusList.size(); i++) {
  935. arrangeDutyStatusMap.put(arrangeDutyStatusList.get(i).getTypecode(), arrangeDutyStatusList.get(i).getTypename());
  936. }
  937. //标题 该list中用于存储标题的信息,每一个ExcelExportEntity 表示一列,根据List 的入栈顺序,由左至右,一次排序
  938. List<ExcelExportEntity> entityList1 = new ArrayList<ExcelExportEntity>();
  939. ExcelExportEntity head111=new ExcelExportEntity("月度", "yearmonth", 15);
  940. entityList1.add(head111);
  941. ExcelExportEntity head21=new ExcelExportEntity("项目名称", "pid", 15);
  942. entityList1.add(head21);
  943. ExcelExportEntity head31=new ExcelExportEntity("人数", "peopleQuantity", 15);
  944. entityList1.add(head31);
  945. ExcelExportEntity head41=new ExcelExportEntity("排班状态", "arrangeDutyStatus", 15);
  946. entityList1.add(head41);
  947. ExcelExportEntity head51=new ExcelExportEntity("上报人", "reporterId", 15);
  948. entityList1.add(head51);
  949. //组建数据集
  950. List<Map<String,Object>> dataResult1 = new ArrayList<Map<String,Object>>();
  951. String authSql1 = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  952. //查询项目排班详细表数据
  953. List<ProjArrangeGeneralDto> projArrangeGeneralDtolist = null;
  954. ProjArrangeGeneralDto projArrangeGeneralDto=new ProjArrangeGeneralDto();
  955. try {
  956. projArrangeGeneralDtolist = projArrangeGeneralService.getProjArrangeGeneralDtoNoPage(projArrangeGeneralDto, authSql1);
  957. } catch (Exception e) {
  958. // TODO Auto-generated catch block
  959. e.printStackTrace();
  960. logger.error(ExceptionUtil.getExceptionMessage(e));
  961. }
  962. for (int i = 0; i < projArrangeGeneralDtolist.size(); i++) {
  963. Map<String, Object> map = new HashMap<String, Object>();
  964. map.put("yearmonth", projArrangeGeneralDtolist.get(i).getYearmonth());
  965. map.put("pid", departMap1.get(projArrangeGeneralDtolist.get(i).getBelongUnitid()));
  966. map.put("peopleQuantity", projArrangeGeneralDtolist.get(i).getPeopleQuantity());
  967. map.put("arrangeDutyStatus", arrangeDutyStatusMap.get(projArrangeGeneralDtolist.get(i).getArrangeDutyStatus()));
  968. map.put("reporterId", baseUserMap.get(projArrangeGeneralDtolist.get(i).getReporterId()));
  969. dataResult1.add(map);
  970. }
  971. //************
  972. List<Map<String,Object>> dataResult2 =dataResult;
  973. List<Map<String, Object>> modelMapList=new ArrayList<>();
  974. Map modelMap1= new HashMap<>();
  975. modelMap1.put(MapExcelConstants.ENTITY_LIST, entityList);
  976. modelMap1.put(MapExcelConstants.MAP_LIST, dataResult);
  977. modelMap1.put(NormalExcelConstants.FILE_NAME,"班次");
  978. modelMap1.put(NormalExcelConstants.PARAMS,new ExportParams("1班次列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(), "导出信息"));
  979. modelMapList.add(modelMap1);
  980. Map modelMap2 = new HashMap();
  981. modelMap2.put(MapExcelConstants.ENTITY_LIST, entityList1);
  982. modelMap2.put(MapExcelConstants.MAP_LIST, dataResult1);
  983. modelMap2.put(NormalExcelConstants.FILE_NAME,"班次asd");
  984. modelMap2.put(NormalExcelConstants.PARAMS,new ExportParams("2班次列ddd表2", "导出cc人:"+ResourceUtil.getSessionUser().getRealName(), "导出信c息2"));
  985. modelMapList.add(modelMap2);
  986. Map modelMap3 = new HashMap();
  987. modelMap3.put(MapExcelConstants.ENTITY_LIST, entityList1);
  988. modelMap3.put(MapExcelConstants.MAP_LIST, dataResult1);
  989. modelMap3.put(NormalExcelConstants.FILE_NAME,"班次asd");
  990. modelMap3.put(NormalExcelConstants.PARAMS,new ExportParams("3班次列ddd表2", "导出cc人:"+ResourceUtil.getSessionUser().getRealName(), "导xxx出信c息2"));
  991. modelMapList.add(modelMap3);
  992. Map modelMap4= new HashMap<>();
  993. modelMap4.put(MapExcelConstants.ENTITY_LIST, entityList);
  994. modelMap4.put(MapExcelConstants.MAP_LIST, dataResult);
  995. modelMap4.put(NormalExcelConstants.FILE_NAME,"班次");
  996. modelMap4.put(NormalExcelConstants.PARAMS,new ExportParams("4班次列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(), "导dcasdf出信息"));
  997. modelMapList.add(modelMap4);
  998. String codedFileName = "临时文件"+System.currentTimeMillis();
  999. Workbook workbook = getWorkBook(modelMapList);
  1000. if (workbook instanceof HSSFWorkbook) {
  1001. codedFileName +=".xls";
  1002. } else {
  1003. codedFileName +=".xlsx";
  1004. }
  1005. try {
  1006. if (isIE(request)) {
  1007. codedFileName = java.net.URLEncoder.encode(codedFileName, "UTF8");
  1008. } else {
  1009. codedFileName = new String(codedFileName.getBytes("UTF-8"), "ISO-8859-1");
  1010. }
  1011. response.setHeader("content-disposition", "attachment;filename=" + codedFileName);
  1012. ServletOutputStream out = response.getOutputStream();
  1013. workbook.write(out);
  1014. out.flush();
  1015. } catch (UnsupportedEncodingException e) {
  1016. // TODO Auto-generated catch block
  1017. e.printStackTrace();
  1018. } catch (IOException e) {
  1019. // TODO Auto-generated catch block
  1020. e.printStackTrace();
  1021. }
  1022. }*/
  1023. public static Workbook getWorkBook(List<Map<String, Object>> list ) {
  1024. Workbook workbook = null;
  1025. for (int i = 0; i < list.size(); i++) {
  1026. Map<String, Object> map = list.get(i);
  1027. ExportParams exportParams = (ExportParams) map.get(MapExcelConstants.PARAMS);
  1028. List<ExcelExportEntity> entityList = (List<ExcelExportEntity>) map.get(MapExcelConstants.ENTITY_LIST);
  1029. List<Map<String,Object>> resultData = (List<Map<String, Object>>) map.get(MapExcelConstants.MAP_LIST);
  1030. }
  1031. for (int i = 0; i < list.size(); i++) {
  1032. Map<String, Object> map = list.get(i);
  1033. ExportParams exportParams = (ExportParams) map.get(MapExcelConstants.PARAMS);
  1034. List<ExcelExportEntity> entityList = (List<ExcelExportEntity>) map.get(MapExcelConstants.ENTITY_LIST);
  1035. List<Map<String,Object>> resultData =(List<Map<String, Object>>) map.get(MapExcelConstants.MAP_LIST);
  1036. workbook = ExcelExportUtil.exportExcel(
  1037. workbook,
  1038. exportParams,
  1039. entityList,
  1040. resultData);
  1041. }
  1042. return workbook;
  1043. }
  1044. boolean isIE(HttpServletRequest request) {
  1045. return (request.getHeader("USER-AGENT").toLowerCase().indexOf("msie") > 0 || request.getHeader("USER-AGENT").toLowerCase().indexOf("rv:11.0") > 0) ? true : false;
  1046. }
  1047. /**
  1048. * 导出excel 使模板
  1049. *
  1050. * @param request
  1051. * @param response
  1052. */
  1053. @RequestMapping(params = "exportXlsByT")
  1054. public String exportXlsByT(ArrangeDutyEntity arrangeDuty,HttpServletRequest request,HttpServletResponse response
  1055. , DataGrid dataGrid,ModelMap modelMap) {
  1056. modelMap.put(NormalExcelConstants.FILE_NAME,"班次");
  1057. modelMap.put(NormalExcelConstants.CLASS,ArrangeDutyEntity.class);
  1058. modelMap.put(NormalExcelConstants.PARAMS,new ExportParams("班次列表", "导出人:"+ResourceUtil.getSessionUser().getRealName(),
  1059. "导出信息"));
  1060. modelMap.put(NormalExcelConstants.DATA_LIST,new ArrayList());
  1061. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  1062. }
  1063. @SuppressWarnings("unchecked")
  1064. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  1065. @ResponseBody
  1066. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  1067. AjaxJson j = new AjaxJson();
  1068. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  1069. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  1070. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  1071. MultipartFile file = entity.getValue();// 获取上传文件对象
  1072. ImportParams params = new ImportParams();
  1073. params.setTitleRows(2);
  1074. params.setHeadRows(1);
  1075. params.setNeedSave(true);
  1076. try {
  1077. List<ArrangeDutyEntity> listArrangeDutyEntitys = ExcelImportUtil.importExcel(file.getInputStream(),ArrangeDutyEntity.class,params);
  1078. for (ArrangeDutyEntity arrangeDuty : listArrangeDutyEntitys) {
  1079. arrangeDutyService.save(arrangeDuty);
  1080. }
  1081. j.setMsg("文件导入成功!");
  1082. } catch (Exception e) {
  1083. j.setMsg("文件导入失败!");
  1084. logger.error(ExceptionUtil.getExceptionMessage(e));
  1085. }finally{
  1086. try {
  1087. file.getInputStream().close();
  1088. } catch (IOException e) {
  1089. e.printStackTrace();
  1090. }
  1091. }
  1092. }
  1093. return j;
  1094. }
  1095. @RequestMapping(method = RequestMethod.GET)
  1096. @ResponseBody
  1097. public List<ArrangeDutyEntity> list() {
  1098. List<ArrangeDutyEntity> listArrangeDutys=arrangeDutyService.getList(ArrangeDutyEntity.class);
  1099. return listArrangeDutys;
  1100. }
  1101. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  1102. @ResponseBody
  1103. public ResponseEntity<?> get(@PathVariable("id") String id) {
  1104. ArrangeDutyEntity task = arrangeDutyService.get(ArrangeDutyEntity.class, id);
  1105. if (task == null) {
  1106. return new ResponseEntity(HttpStatus.NOT_FOUND);
  1107. }
  1108. return new ResponseEntity(task, HttpStatus.OK);
  1109. }
  1110. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  1111. @ResponseBody
  1112. public ResponseEntity<?> create(@RequestBody ArrangeDutyEntity arrangeDuty, UriComponentsBuilder uriBuilder) {
  1113. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  1114. Set<ConstraintViolation<ArrangeDutyEntity>> failures = validator.validate(arrangeDuty);
  1115. if (!failures.isEmpty()) {
  1116. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  1117. }
  1118. //保存
  1119. try{
  1120. arrangeDutyService.save(arrangeDuty);
  1121. } catch (Exception e) {
  1122. e.printStackTrace();
  1123. return new ResponseEntity(HttpStatus.NO_CONTENT);
  1124. }
  1125. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  1126. String id = arrangeDuty.getId();
  1127. URI uri = uriBuilder.path("/rest/arrangeDutyController/" + id).build().toUri();
  1128. HttpHeaders headers = new HttpHeaders();
  1129. headers.setLocation(uri);
  1130. return new ResponseEntity(headers, HttpStatus.CREATED);
  1131. }
  1132. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  1133. public ResponseEntity<?> update(@RequestBody ArrangeDutyEntity arrangeDuty) {
  1134. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  1135. Set<ConstraintViolation<ArrangeDutyEntity>> failures = validator.validate(arrangeDuty);
  1136. if (!failures.isEmpty()) {
  1137. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  1138. }
  1139. //保存
  1140. try{
  1141. arrangeDutyService.saveOrUpdate(arrangeDuty);
  1142. } catch (Exception e) {
  1143. e.printStackTrace();
  1144. return new ResponseEntity(HttpStatus.NO_CONTENT);
  1145. }
  1146. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  1147. return new ResponseEntity(HttpStatus.NO_CONTENT);
  1148. }
  1149. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  1150. @ResponseStatus(HttpStatus.NO_CONTENT)
  1151. public void delete(@PathVariable("id") String id) {
  1152. arrangeDutyService.deleteEntityById(ArrangeDutyEntity.class, id);
  1153. }
  1154. /**
  1155. * 逻辑删除班次表
  1156. * @author zbw
  1157. * 2017-10-20
  1158. * @param wagestrategy
  1159. * @param request
  1160. * @return
  1161. */
  1162. @RequestMapping(params = "logicDel")
  1163. @ResponseBody
  1164. public AjaxJson logicDel(ArrangeDutyEntity arrangeDutyEntity, HttpServletRequest request) {
  1165. String message = null;
  1166. AjaxJson j = new AjaxJson();
  1167. arrangeDutyEntity = systemService.getEntity(ArrangeDutyEntity.class, arrangeDutyEntity.getId());
  1168. message = "班次删除成功";
  1169. try{
  1170. arrangeDutyEntity.setDeleteFlag(Globals.Delete_Forbidden.toString());
  1171. arrangeDutyService.logicDel(arrangeDutyEntity);
  1172. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  1173. // wagestrategyService.delete(wagestrategy);
  1174. // systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  1175. }catch(Exception e){
  1176. j.setSuccess(false);
  1177. e.printStackTrace();
  1178. message = "班次删除失败";
  1179. }
  1180. j.setMsg(message);
  1181. return j;
  1182. }
  1183. /**
  1184. * 班次状态启用
  1185. * @author zbw
  1186. * 2017-10-20
  1187. * @param id
  1188. * @param request
  1189. * @return
  1190. */
  1191. @RequestMapping(params = "enable")
  1192. @ResponseBody
  1193. public AjaxJson enable(String id, HttpServletRequest request) {
  1194. String message = null;
  1195. AjaxJson j = new AjaxJson();
  1196. message = "班次启用成功";
  1197. try{
  1198. ArrangeDutyEntity arrangeDutyEntity = arrangeDutyService.getEntity(ArrangeDutyEntity.class, id);
  1199. arrangeDutyEntity.setStatus(Globals.Enabled_Status.toString());
  1200. arrangeDutyService.saveOrUpdate(arrangeDutyEntity);
  1201. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1202. }catch(Exception e){
  1203. j.setSuccess(false);
  1204. e.printStackTrace();
  1205. message = "班次启用失败";
  1206. }
  1207. j.setMsg(message);
  1208. return j;
  1209. }
  1210. /**
  1211. * 班次状态停用
  1212. * @author zbw
  1213. * 2017-10-20
  1214. * @param id
  1215. * @param request
  1216. * @return
  1217. */
  1218. @RequestMapping(params = "disable")
  1219. @ResponseBody
  1220. public AjaxJson disable(String id, HttpServletRequest request) {
  1221. String message = null;
  1222. AjaxJson j = new AjaxJson();
  1223. message = "班次停用成功";
  1224. try{
  1225. ArrangeDutyEntity arrangeDutyEntity = arrangeDutyService.getEntity(ArrangeDutyEntity.class, id);
  1226. arrangeDutyEntity.setStatus(Globals.Disabled_Status.toString());
  1227. arrangeDutyService.saveOrUpdate(arrangeDutyEntity);
  1228. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1229. }catch(Exception e){
  1230. j.setSuccess(false);
  1231. e.printStackTrace();
  1232. message = "班次停用失败";
  1233. }
  1234. j.setMsg(message);
  1235. return j;
  1236. }
  1237. /**
  1238. * 异步获取班次餐补名称
  1239. * @author zbw
  1240. * 2017-10-31
  1241. * @param request
  1242. * @param response
  1243. * @return
  1244. */
  1245. @RequestMapping(params = "getSubsidyName")
  1246. @ResponseBody
  1247. public AjaxJson getSubsidyName(HttpServletRequest request, HttpServletResponse response) {
  1248. AjaxJson j = new AjaxJson();
  1249. String dutyMealid = request.getParameter("id");
  1250. if(dutyMealid.length()==0){
  1251. j.setMsg("");
  1252. return j;
  1253. }
  1254. //获取餐补名称
  1255. List<DictEntity> mealsSubsidyList=systemService.queryDict("t_bus_meals_subsidy", "id", "subsidy_name");
  1256. List<String> dutyMealidList=extractIdListByComma(dutyMealid);
  1257. Map<String, String> mealsSubsidyMap=new HashMap<String, String>();
  1258. for (int i = 0; i < mealsSubsidyList.size(); i++) {
  1259. mealsSubsidyMap.put(mealsSubsidyList.get(i).getTypecode(), mealsSubsidyList.get(i).getTypename());
  1260. }
  1261. String subsidyName="";
  1262. for (int k = 0; k < dutyMealidList.size(); k++) {
  1263. for (int l = 0; l < mealsSubsidyList.size(); l++) {
  1264. if(dutyMealidList.get(k).equals(mealsSubsidyList.get(l).getTypecode())){
  1265. if(subsidyName.length()!=0){
  1266. subsidyName+=","+mealsSubsidyList.get(l).getTypename();
  1267. }else{
  1268. subsidyName=mealsSubsidyList.get(l).getTypename();
  1269. }
  1270. break;
  1271. }
  1272. }
  1273. }
  1274. try {
  1275. j.setMsg(subsidyName);
  1276. } catch (Exception e) {
  1277. e.printStackTrace();
  1278. throw new BusinessException(e.getMessage());
  1279. }
  1280. return j;
  1281. }
  1282. /**
  1283. * 异步获取项目名称
  1284. * @author zbw
  1285. * 2017-10-20
  1286. * @param request
  1287. * @param response
  1288. * @return
  1289. */
  1290. @RequestMapping(params = "getDName")
  1291. @ResponseBody
  1292. public AjaxJson getDName(HttpServletRequest request, HttpServletResponse response) {
  1293. AjaxJson j = new AjaxJson();
  1294. String myPId = request.getParameter("id");
  1295. if(myPId!=null&&myPId.length()>0&&myPId.indexOf(",")!=-1){
  1296. String[] pIdList=myPId.split(",");
  1297. myPId=pIdList[0];
  1298. }
  1299. TSDepart tSDepart = systemService.getEntity(TSDepart.class, myPId);
  1300. try {
  1301. j.setMsg(tSDepart.getDepartname());
  1302. //systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  1303. } catch (Exception e) {
  1304. e.printStackTrace();
  1305. throw new BusinessException(e.getMessage());
  1306. }
  1307. return j;
  1308. }
  1309. /**
  1310. * 不用
  1311. * 异步获取项目名称
  1312. * @author zbw
  1313. * 2017-10-20
  1314. * @param request
  1315. * @param response
  1316. * @return
  1317. */
  1318. /*@RequestMapping(params = "getProjectPostName")
  1319. @ResponseBody
  1320. public AjaxJson getProjectPostName(HttpServletRequest request, HttpServletResponse response) {
  1321. AjaxJson j = new AjaxJson();
  1322. String myPId = request.getParameter("id");
  1323. if(myPId!=null&&myPId.length()>0&&myPId.indexOf(",")!=-1){
  1324. String[] pIdList=myPId.split(",");
  1325. myPId=pIdList[0];
  1326. }
  1327. ProjectPostDetailDto projectPostDetailMiniDaoEntity=new ProjectPostDetailDto();
  1328. projectPostDetailMiniDaoEntity.setPid(myPId);
  1329. DataGrid dataGrid=new DataGrid();
  1330. dataGrid.setField("id,ptjPostName,postid,ptjPostGeneralid,needNumber,remark,createName,createBy,createDate,updateName,updateBy,updateDate,sysOrgCode,sysCompanyCode,deleteFlag,");
  1331. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  1332. MiniDaoPage<ProjectPostDetailDto> list = arrangeDutyService.getProjectPostDetail(projectPostDetailMiniDaoEntity, dataGrid.getPage(), dataGrid.getRows(),authSql);
  1333. Map<String, Object> myMap=new HashMap<String, Object>();
  1334. myMap.put("0", list);
  1335. j.setAttributes(myMap);
  1336. return j;
  1337. }*/
  1338. /**
  1339. * 异步验证班次名称;
  1340. * @author zbw
  1341. * 2018-1-10
  1342. * @param arrangeDutyEntity
  1343. * @param request
  1344. * @return
  1345. */
  1346. @RequestMapping(params = "ajaxCheckShiftName")
  1347. @ResponseBody
  1348. public AjaxJson ajaxCheckShiftName(ArrangeDutyEntity arrangeDutyEntity, HttpServletRequest request) {
  1349. String message = null;
  1350. AjaxJson j = new AjaxJson();
  1351. message = "";
  1352. StringBuffer hql = new StringBuffer(" from ArrangeDutyEntity t where t.deleteFlag = '0' and t.pid=? and t.dutyName=? ");
  1353. List<ArrangeDutyEntity> arrangeDutyEntityList = systemService.findHql(hql.toString(), arrangeDutyEntity.getPid().split(",")[0],arrangeDutyEntity.getDutyName());
  1354. if(arrangeDutyEntityList.size()!=0){
  1355. if(arrangeDutyEntity.getId()!=null&&arrangeDutyEntity.getId().length()!=0){
  1356. for (int i = 0; i < arrangeDutyEntityList.size(); i++) {
  1357. if(!arrangeDutyEntityList.get(i).getId().equals(arrangeDutyEntity.getId())){
  1358. j.setSuccess(false);
  1359. message="班次名称已存在";
  1360. break;
  1361. }
  1362. }
  1363. }else{
  1364. j.setSuccess(false);
  1365. message="班次名称已存在";
  1366. }
  1367. }
  1368. j.setMsg(message);
  1369. return j;
  1370. }
  1371. /**
  1372. * 班次餐补选择弹窗页面跳转路径
  1373. * @author zbw
  1374. * 2017-10-31
  1375. * @param request
  1376. * @return
  1377. */
  1378. @RequestMapping(params = "dutyMealTable")
  1379. public ModelAndView dutyMealTable(HttpServletRequest request) {
  1380. //return new ModelAndView("cn/com/lzt/arrangeduty/dutyMealTable");
  1381. ModelAndView mv = new ModelAndView("cn/com/lzt/arrangeduty/dutyMealTable");
  1382. String ids = oConvertUtils.getString(request.getParameter("ids"));
  1383. mv.addObject("ids", ids);
  1384. String dutyType = oConvertUtils.getString(request.getParameter("dutyType"));
  1385. mv.addObject("dutyType", dutyType);
  1386. return mv;
  1387. }
  1388. /**
  1389. * 班次餐补选择弹窗页面
  1390. * @author zbw
  1391. * 2017-10-31
  1392. * @param mealsSubsidy
  1393. * @param request
  1394. * @param response
  1395. * @param dataGrid
  1396. */
  1397. @RequestMapping(params = "dutyMealdatagrid")
  1398. public void dutyMealdatagrid(MealsSubsidyDto mealsSubsidyDto, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  1399. String dutyType = oConvertUtils.getString(request.getParameter("dutyType"));
  1400. mealsSubsidyDto.getSubsidyTypeList().add(Globals.SUBSIDY_TYPE_BCCB);
  1401. // mealsSubsidyDto.getSubsidyTypeList().add(Globals.SUBSIDY_TYPE_ACGD);
  1402. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  1403. if(StringUtils.isEmpty(authSql)) {
  1404. authSql = "";
  1405. }
  1406. if(StringUtils.isNotEmpty(dutyType)) {
  1407. if(dutyType.equals("riban11h")) {
  1408. authSql +=" and shift_subsidy_type = 'riban' ";
  1409. }else if(dutyType.equals("changban8h")){
  1410. authSql +=" and shift_subsidy_type = 'changban' ";
  1411. }else if(dutyType.equals("zhiban")){
  1412. authSql +=" and shift_subsidy_type = 'zhiban' ";
  1413. }else if(dutyType.equals("yeban11.5")){
  1414. authSql +=" and shift_subsidy_type in ('baibanjintiezao' ,'yebanjintiewan')";
  1415. }else if(dutyType.equals("jiaban")){
  1416. authSql +=" and shift_subsidy_type = '1' ";
  1417. }else {
  1418. authSql +=" and shift_subsidy_type = '"+dutyType+"' ";
  1419. }
  1420. }else {
  1421. //不返回结果
  1422. authSql +=" and shift_subsidy_type = '1' ";
  1423. }
  1424. List<MealsSubsidyDto> mealsSubsidyDtoList = arrangeDutyService.getMealsSubsidySelect(mealsSubsidyDto, authSql);
  1425. for (int i = 0; i < mealsSubsidyDtoList.size(); i++) {
  1426. String strUnit="";
  1427. if(mealsSubsidyDtoList.get(i).getCalcuUnit().equals(Globals.CALCU_UNIT_dun)){
  1428. strUnit="元/顿";
  1429. }else if(mealsSubsidyDtoList.get(i).getCalcuUnit().equals(Globals.CALCU_UNIT_yue)){
  1430. strUnit="元/月";
  1431. }else if(mealsSubsidyDtoList.get(i).getCalcuUnit().equals(Globals.CALCU_UNIT_ci)){
  1432. strUnit="元/次";
  1433. }
  1434. if(strUnit.length()!=0){
  1435. mealsSubsidyDtoList.get(i).setSubsidyMoneyAndUnit(mealsSubsidyDtoList.get(i).getSubsidyMoney().toString()+strUnit);
  1436. }else{
  1437. mealsSubsidyDtoList.get(i).setSubsidyMoneyAndUnit(mealsSubsidyDtoList.get(i).getSubsidyMoney().toString());
  1438. }
  1439. }
  1440. dataGrid.setResults(mealsSubsidyDtoList);
  1441. TagUtil.datagrid(response, dataGrid);
  1442. //手动拼接班次餐补
  1443. /*if(arrangeDutyMinidaoDtoList.get(i).getDutyMealid()!=null&&arrangeDutyMinidaoDtoList.get(i).getDutyMealid().length()!=0){
  1444. String dutyMealid = arrangeDutyMinidaoDtoList.get(i).getDutyMealid();
  1445. List<MealsSubsidyDto> mealsSubsidyDtolist=getSubsidyInfo(dutyMealid);
  1446. if(mealsSubsidyDtolist.size()>0){
  1447. String subsidyMoneyAndUnit="";
  1448. for (int j = 0; j < mealsSubsidyDtolist.size(); j++) {
  1449. String strUnit="";
  1450. if(mealsSubsidyDtolist.get(j).getCalcuUnit().equals(Globals.CALCU_UNIT_dun)){
  1451. strUnit="元/顿";
  1452. }else if(mealsSubsidyDtolist.get(j).getCalcuUnit().equals(Globals.CALCU_UNIT_yue)){
  1453. strUnit="元/月";
  1454. }else if(mealsSubsidyDtolist.get(j).getCalcuUnit().equals(Globals.CALCU_UNIT_ci)){
  1455. strUnit="元/次";
  1456. }
  1457. if(subsidyMoneyAndUnit.length()>0){
  1458. subsidyMoneyAndUnit+=","+mealsSubsidyDtolist.get(j).getSubsidyMoney()+strUnit;
  1459. }else{
  1460. subsidyMoneyAndUnit=mealsSubsidyDtolist.get(j).getSubsidyMoney()+strUnit;
  1461. }
  1462. }
  1463. arrangeDutyMinidaoDtoList.get(i).setSubsidyMoneyAndUnit(subsidyMoneyAndUnit);
  1464. }
  1465. }*/
  1466. /*String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  1467. List<MealsSubsidyDto> MealsSubsidyDtolist = arrangeDutyService.getMealsSubsidyByIdList(
  1468. mealsSubsidyDto,authSql);*/
  1469. /*CriteriaQuery cq = new CriteriaQuery(MealsSubsidyEntity.class, dataGrid);
  1470. //查询条件组装器
  1471. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, mealsSubsidy, request.getParameterMap());
  1472. try{
  1473. //自定义追加查询条件
  1474. //班次设定页面添加根据班次餐补类型添加数据
  1475. cq.eq("subsidyType", "bancicanbu");
  1476. //cq.eq("subsidyName", "日班");
  1477. String[] status = new String[]{Globals.Enabled_Status.toString(), Globals.Disabled_Status.toString()};
  1478. cq.in("status", status);
  1479. cq.eq("deleteFlag", Globals.Delete_Normal.toString());
  1480. }catch (Exception e) {
  1481. throw new BusinessException(e.getMessage());
  1482. }
  1483. cq.add();
  1484. this.mealsSubsidyService.getDataGridReturn(cq, true);*/
  1485. // TagUtil.datagrid(response, dataGrid);
  1486. }
  1487. /**
  1488. * 项目选择弹窗页面跳转路径
  1489. * @author zbw
  1490. * 2017-10-31
  1491. * @param request
  1492. * @return
  1493. */
  1494. /* @RequestMapping(params = "projectDepartTable")
  1495. public ModelAndView projectDepartTable(HttpServletRequest request) {
  1496. //return new ModelAndView("cn/com/lzt/arrangeduty/dutyMealTable");
  1497. ModelAndView mv = new ModelAndView("cn/com/lzt/arrangeduty/projectDepartTable");
  1498. String ids = oConvertUtils.getString(request.getParameter("ids"));
  1499. mv.addObject("ids", ids);
  1500. return mv;
  1501. }*/
  1502. /**
  1503. * 项目选择弹窗列表数据
  1504. * @author zbw
  1505. * 2017-11-15
  1506. * @param projectDepartDto
  1507. * @param request
  1508. * @param response
  1509. * @param dataGrid
  1510. */
  1511. /* @RequestMapping(params = "projectDepartDatagrid")
  1512. public void projectDepartDatagrid(ProjectDepartDto projectDepartDto, HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  1513. TSUser tSUser=ResourceUtil.getSessionUser();
  1514. UserOrgDto userOrgDto=new UserOrgDto();
  1515. userOrgDto.setUserId(tSUser.getId());
  1516. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  1517. List<UserOrgDto> userOrgDtoList = arrangeDutyService.getUserOrgDtoByUserId(userOrgDto, authSql);
  1518. List<Map<String, Object>> listMap=new ArrayList<Map<String, Object>>();
  1519. List<String> projectDepartIdList=new ArrayList<String>();
  1520. for (int i = 0; i < userOrgDtoList.size(); i++) {
  1521. String projectDepartId=getProjectDepartId(userOrgDtoList.get(i).getOrgId());
  1522. if(projectDepartId!=null&&projectDepartId.length()>0){
  1523. Map<String, Object> myMap=new HashMap<String, Object>();
  1524. myMap.put("projectDepartId", projectDepartId);
  1525. myMap.put("ifpluralism", userOrgDtoList.get(i).getIfpluralism());
  1526. myMap.put("status", userOrgDtoList.get(i).getStatus());
  1527. projectDepartIdList.add(projectDepartId);
  1528. listMap.add(myMap);
  1529. }
  1530. }
  1531. projectDepartDto.getDepartIdList().addAll(projectDepartIdList);
  1532. authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  1533. List<ProjectDepartDto> projectDepartDtoList = arrangeDutyService.getProjectDepartByListId(projectDepartDto, authSql);
  1534. for (int i = 0; i < projectDepartDtoList.size(); i++) {
  1535. for (int j = 0; j < listMap.size(); j++) {
  1536. if(projectDepartDtoList.get(i).getId().equals(listMap.get(j).get("projectDepartId"))){
  1537. projectDepartDtoList.get(i).setIfpluralism(listMap.get(j).get("ifpluralism").toString());
  1538. projectDepartDtoList.get(i).setStatus(listMap.get(j).get("status").toString());
  1539. break;
  1540. }
  1541. // for(Entry<String, Object> entryParam : listMap.get(j).entrySet()){
  1542. // //System.out.println("key="+entryParam.getKey()+",value="+entryParam.getValue());
  1543. // if(projectDepartDtoList.get(i).getId().equals(entryParam.getValue())){}
  1544. // }
  1545. }
  1546. }
  1547. dataGrid.setResults(projectDepartDtoList);
  1548. TagUtil.datagrid(response, dataGrid);
  1549. }*/
  1550. /**
  1551. * 根据用户与组织机构关系表中的组织id查询项目id;
  1552. * 业务逻辑
  1553. * 任意层节点的zTree,每一层有一个父id,顶级节点父节点为null,一个组织类型orgType,随机给一层的主键id,找到项目id,特征是orgType=3;
  1554. * 根据是否是顶级父id判断是自上而下还是自下而上查找,当自下而上找到null时,再进行自下而上;
  1555. * @author zbw
  1556. * 2017-11-15
  1557. * @param projectDepartId
  1558. * @return
  1559. */
  1560. /* public String getProjectDepartId(String projectDepartId){
  1561. String newProjectDepartId="";
  1562. ProjectDepartDto projectDepartDto=new ProjectDepartDto();
  1563. projectDepartDto.getDepartIdList().add(projectDepartId);
  1564. String authSql = JeecgDataAutorUtils.loadDataSearchConditonSQLString();
  1565. List<ProjectDepartDto> projectDepartDtoList = arrangeDutyService.getProjectDepartByListId(projectDepartDto, authSql);
  1566. if(projectDepartDtoList.get(0).getParentdepartid()!=null){
  1567. if(!projectDepartDtoList.get(0).getOrgType().equals(Globals.org_type_3)){
  1568. //获取某个父节点下面的所有子节点
  1569. List<ProjectDepartDto> childList = arrangeDutyService.getAllChildrenList(projectDepartId, null, null);
  1570. for (int i = 0; i < childList.size(); i++) {
  1571. if(childList.get(i).getOrgType().equals(Globals.org_type_3)){
  1572. newProjectDepartId=childList.get(i).getId();
  1573. break;
  1574. }
  1575. }
  1576. if(newProjectDepartId.length()==0){
  1577. //获取某个子节点上面的所有父节点
  1578. List<ProjectDepartDto> parentList = arrangeDutyService.getAllParentList(projectDepartDtoList.get(0).getParentdepartid(), null, null);
  1579. for (int i = 0; i < parentList.size(); i++) {
  1580. if(parentList.get(i).getOrgType().equals(Globals.org_type_3)){
  1581. newProjectDepartId=parentList.get(i).getId();
  1582. break;
  1583. }
  1584. }
  1585. }
  1586. }else{
  1587. newProjectDepartId=projectDepartDtoList.get(0).getId();
  1588. }
  1589. }else{
  1590. newProjectDepartId=null;
  1591. }
  1592. // List<PostEntity> childList = getAllChildrenList(post.getId(), null, null);
  1593. // List<PostEntity> childList = getAllParentList(post.getParentPostid(), null, null);
  1594. return newProjectDepartId;
  1595. }*/
  1596. @RequestMapping(params = "changeStatus")
  1597. @ResponseBody
  1598. public AjaxJson changeStatus(ArrangeDutyEntity arrangeDuty, HttpServletRequest request) {
  1599. String message = null;
  1600. AjaxJson j = new AjaxJson();
  1601. message = "更新班次状态成功";
  1602. ArrangeDutyEntity t = arrangeDutyService.get(ArrangeDutyEntity.class, arrangeDuty.getId());
  1603. try{
  1604. MyBeanUtils.copyBeanNotNull2Bean(arrangeDuty, t);
  1605. arrangeDutyService.saveOrUpdate(t);
  1606. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  1607. }catch(Exception e){
  1608. e.printStackTrace();
  1609. message = "更新班次状态";
  1610. throw new BusinessException(e.getMessage());
  1611. }
  1612. j.setMsg(message);
  1613. return j;
  1614. }
  1615. }