ApplyAddWorkController.java 29 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623
  1. package com.idea.oa.apply.controller;
  2. import com.alibaba.fastjson.JSONArray;
  3. import com.alibaba.fastjson.JSONObject;
  4. import com.idea.oa.activiti.exception.FlowException;
  5. import com.idea.oa.apply.model.ApplyAddWorkTime;
  6. import com.idea.oa.apply.model.ApplyAddWorkTimeExample;
  7. import com.idea.oa.apply.model.inout.AddConfirmResult;
  8. import com.idea.oa.apply.model.inout.ApplyAddWorkIn;
  9. import com.idea.oa.apply.service.ApplyAddWorkService;
  10. import com.idea.oa.apply.service.ApplyAddWorkTimeService;
  11. import com.idea.oa.apply.util.constant.ConstantFlowType;
  12. import com.idea.oa.flow2.model.FlowMain;
  13. import com.idea.oa.flow2.model.FlowMainPush;
  14. import com.idea.oa.flow2.model.in.FlowMainCcVo;
  15. import com.idea.oa.flow2.service.FlowMainCcService;
  16. import com.idea.oa.flow2.service.FlowMainPushService;
  17. import com.idea.oa.flow2.service.FlowMainService;
  18. import com.rockstar.common.base.BaseController;
  19. import com.rockstar.common.domain.AjaxResult;
  20. import com.rockstar.frame.model.FrameUser;
  21. import com.rockstar.frame.service.FrameUserService;
  22. import com.rockstar.shiro.util.ShiroUtils;
  23. import com.rockstar.util.UUIDUtils;
  24. import io.swagger.annotations.Api;
  25. import org.springframework.beans.factory.annotation.Autowired;
  26. import org.springframework.stereotype.Controller;
  27. import org.springframework.transaction.annotation.Transactional;
  28. import org.springframework.util.StringUtils;
  29. import org.springframework.web.bind.annotation.PostMapping;
  30. import org.springframework.web.bind.annotation.RequestMapping;
  31. import org.springframework.web.bind.annotation.ResponseBody;
  32. import java.math.BigDecimal;
  33. import java.math.MathContext;
  34. import java.util.Date;
  35. import java.util.HashMap;
  36. import java.util.List;
  37. import java.util.Map;
  38. /**
  39. * Created by zt on 2023
  40. */
  41. @Controller
  42. @RequestMapping(value = "/ApplyAddWorkController")
  43. @Api(value = "分表_加班申请")
  44. public class ApplyAddWorkController extends BaseController {
  45. // @Autowired
  46. // private WorkAttendanceLogService workAttendanceLogService;
  47. // @Autowired
  48. // private HolidayManagementService holidayManagementService;
  49. //主表
  50. @Autowired
  51. private ApplyAddWorkService modelService;
  52. @Autowired
  53. private ApplyAddWorkTimeService applyAddWorkTimeService;
  54. @Autowired
  55. private FlowMainCcService flowMainCcService;
  56. @Autowired
  57. private FlowMainPushService flowMainPushService;
  58. @Autowired
  59. private FlowMainService flowMainService;
  60. @Autowired
  61. private FrameUserService frameUserService;
  62. /**
  63. * 添加审核结果
  64. * 根据不同的状态值confirmResult判断是 1:审核通过,转下一步;2:退回发起人;3:退回上节点;4:结束流程;
  65. *
  66. * @param addConfirmResult
  67. * @return
  68. */
  69. @PostMapping(value = "AddConfirmResultAddWork", produces = {"application/json;charset=UTF-8"})
  70. @ResponseBody
  71. @Transactional
  72. public AjaxResult AddConfirmResultAddWork(AddConfirmResult addConfirmResult) throws com.rockstar.flow.exception.FlowException {
  73. System.out.println("AddConfirmResultAddWork");
  74. System.out.println(addConfirmResult);
  75. if (addConfirmResult.getConfirmResult() == null) {
  76. return result(-1);
  77. }
  78. // String deploymentid = ConstantFlowType.USE_MONEY_DEPLOYMENTID;
  79. // String constantFlowType = ConstantFlowType.USE_MONEY;
  80. FlowMainPush flowMainPush = flowMainPushService.selectByPrimaryKey(addConfirmResult.getFlowMainPushId());
  81. ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
  82. example.createCriteria().andAddWorkIdEqualTo(flowMainPush.getFormId());
  83. List<ApplyAddWorkTime> applyAddWorkTimes = applyAddWorkTimeService.selectByExample(example);
  84. BigDecimal totalAddTime = new BigDecimal(0);//所有加班小时
  85. String isOkString = null;
  86. {//进行审核判断
  87. {
  88. // ApplyOffWork applyOffWork = modelService.selectByPrimaryKey(flowMainPush.getFormId());
  89. for (ApplyAddWorkTime applyAddWorkTime : applyAddWorkTimes) {
  90. {//修改请假表,将请假表的对应数据添加冻结时间,并减去可用时间
  91. totalAddTime= totalAddTime.add(new BigDecimal(applyAddWorkTime.getUseTime().toString()), MathContext.DECIMAL32);
  92. }
  93. }
  94. }
  95. //添加判断条件
  96. HashMap<String, Object> feeMoneyTotalMap = null;//new HashMap<>();
  97. // if (totalTiaoXiu.doubleValue() > 0 && totalNianJia.doubleValue() <= 0 && totalShiJia.doubleValue() <= 0) {
  98. // //假别仅有调休假
  99. //// String isExchangeOnly = conditionMap.get("isExchangeOnly").toString();
  100. //// Integer applyDay = Integer.valueOf(conditionMap.get("applyDay").toString());
  101. // feeMoneyTotalMap.put("isExchangeOnly", "yes");
  102. // feeMoneyTotalMap.put("applyDay", 0);
  103. // } else if (totalTiaoXiu.add(totalNianJia).add(totalShiJia).doubleValue() > 3) {
  104. //// 假期天数合计>3天
  105. // feeMoneyTotalMap.put("isExchangeOnly", "no");
  106. // feeMoneyTotalMap.put("applyDay", 4);
  107. // } else {
  108. // feeMoneyTotalMap.put("isExchangeOnly", "no");
  109. // feeMoneyTotalMap.put("applyDay", 0);
  110. // }
  111. isOkString = flowMainService.doConfirmResult(addConfirmResult, ConstantFlowType.ADD_WORK_DEPLOYMENTID, ConstantFlowType.ADD_WORK, flowMainPush, feeMoneyTotalMap);
  112. if (!"ok_end".equals(isOkString) && !"ok_noEnd".equals(isOkString)) {
  113. return AjaxResult.error(isOkString);
  114. }
  115. }
  116. Boolean isEnd = false;//是否结束
  117. Boolean isAgree = false;//是否同意
  118. if (addConfirmResult.getConfirmResult().equals("4")) {//结束流程
  119. isEnd = true;
  120. isAgree = false;
  121. } else if (addConfirmResult.getConfirmResult().equals("1")) {//1:审核通过,转下一步
  122. if ("ok_end".equals(isOkString)) {
  123. isEnd = true;
  124. isAgree = true;
  125. }
  126. }
  127. //添加业务信息(将请假信息中的修改掉,剩余年假,剩余调休,冻结年假,冻结调休都修改掉)
  128. if (isEnd) {
  129. // String createdById = applyAddWorkTimes.get(0).getCreatedBy();
  130. // HolidayManagementExample holidayManagementExample = new HolidayManagementExample();
  131. // holidayManagementExample.createCriteria().andUserIdEqualTo(createdById);
  132. // List<HolidayManagement> holidayManagements = holidayManagementService.selectByExample(holidayManagementExample);
  133. // if (holidayManagements.isEmpty()) {
  134. // FrameUser frameUser = frameUserService.selectByPrimaryKey(createdById);
  135. // // 添加holidayManagements信息
  136. // HolidayManagement entity = new HolidayManagement();
  137. // entity.setId(UUIDUtils.middleUUID());
  138. //
  139. // entity.setUserId(createdById);
  140. // entity.setJoinDay(frameUser.getCreatedat());
  141. //
  142. // entity.setStatus(0);//状态0正常,1删除,2禁用
  143. // entity.setIsFirst(1);//是否是第一次录入管理1是,0不是
  144. // entity.setCreatedAt(new Date());
  145. // entity.setUpdatedAt(entity.getCreatedAt());
  146. // entity.setCreatedBy(ShiroUtils.getUser().getId());
  147. // entity.setUpdatedBy(entity.getCreatedBy());
  148. //
  149. // int insert = holidayManagementService.insertWithoutId(entity);
  150. // holidayManagements.add(entity);
  151. // }
  152. if (isAgree) {//如果是最后 并且同意了,就进行下面的操作,或者不同意就进行另一种操作,
  153. // this.booleanIsAgree(totalAddTime,holidayManagements,applyAddWorkTimes,createdById);
  154. {//移动到booleanIsAgree方法中去了
  155. // //如果是同意了
  156. // {
  157. // HolidayManagement holidayManagement = holidayManagements.get(0);
  158. // if (totalAddTime.doubleValue() > 0) {//存在加班修改
  159. // Double restExchangeTime = holidayManagement.getRestExchangeTime();
  160. //// Double restHolidayTime = holidayManagement.getRestHolidayTime();
  161. // double v = new BigDecimal(restExchangeTime).add(totalAddTime, MathContext.DECIMAL32).doubleValue();
  162. // holidayManagement.setRestExchangeTime(v);
  163. // }
  164. //
  165. //
  166. // holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId());
  167. // holidayManagement.setUpdatedAt(new Date());
  168. //
  169. // holidayManagementService.updateByPrimaryKeySelective(holidayManagement);
  170. // }
  171. //
  172. // {//审核通过后 在oa_work_attendance_log表中添加记录
  173. // for (ApplyAddWorkTime applyAddWorkTime : applyAddWorkTimes) {
  174. // WorkAttendanceLog workAttendanceLog = new WorkAttendanceLog();
  175. //
  176. //
  177. //// //=========================下面是重要的数据
  178. //// user_id varchar (64) DEFAULT NULL COMMENT '用户id 姓名/部门/岗位',
  179. //// `do_day`date DEFAULT NULL COMMENT '发生的日期',
  180. //// `happen_type` int(4) DEFAULT NULL COMMENT
  181. //// '1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差',
  182. //// //=========================上面是重要的数据
  183. //// do_start_time datetime DEFAULT NULL COMMENT '发生开始时间',
  184. //// do_end_time datetime DEFAULT NULL COMMENT '发生结束时间',
  185. //// `use_time`decimal(5, 2) DEFAULT NULL COMMENT '消耗时间(比如加班/调休时间小时)',
  186. //// from_table_id varchar(64) DEFAULT NULL COMMENT '来源表id',
  187. //// from_table_name varchar(64) DEFAULT NULL COMMENT '来源表名称',
  188. //
  189. // workAttendanceLog.setUserId(createdById);
  190. // workAttendanceLog.setDoDay(applyAddWorkTime.getStartDay());
  191. // workAttendanceLog.setHappenType(9);//'1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差',
  192. // workAttendanceLog.setDoStartTime(applyAddWorkTime.getStartTime());
  193. // workAttendanceLog.setDoEndTime(applyAddWorkTime.getEndTime());
  194. // workAttendanceLog.setUseTime(applyAddWorkTime.getUseTime());
  195. // workAttendanceLog.setFromTableId(applyAddWorkTime.getId());
  196. // workAttendanceLog.setFromTableName("apply_add_work_time");
  197. //
  198. //
  199. // workAttendanceLog.setCreatedBy(ShiroUtils.getUser().getId());
  200. // workAttendanceLog.setCreatedAt(new Date());
  201. // workAttendanceLog.setStatus(0);
  202. // workAttendanceLog.setUpdatedAt(workAttendanceLog.getCreatedAt());
  203. // workAttendanceLog.setUpdatedBy(workAttendanceLog.getCreatedBy());
  204. // int result = workAttendanceLogService.insert(workAttendanceLog);
  205. // }
  206. //
  207. // }
  208. }
  209. } else {
  210. //如果是不同意
  211. {
  212. // 不需要做什么
  213. }
  214. }
  215. }
  216. return result(1);
  217. }
  218. /**
  219. * 发起付款申请流程
  220. *
  221. * @param record
  222. * @return
  223. */
  224. @PostMapping(value = "addApplyAddWork", produces = {"application/json;charset=UTF-8"})
  225. @ResponseBody
  226. @Transactional
  227. public AjaxResult addApplyAddWork(ApplyAddWorkIn record) throws com.rockstar.flow.exception.FlowException {
  228. System.out.println("addApplyAddWork");
  229. System.out.println(record);
  230. if (false) {
  231. return AjaxResult.error("这是一个错误测试信息");
  232. }
  233. return myaddApplyPayment(record,null);
  234. }
  235. /**
  236. * 申请人重新发起申请
  237. *
  238. * @param record
  239. * @return
  240. */
  241. @PostMapping(value = "addApplyAddWorkAgain", produces = {"application/json;charset=UTF-8"})
  242. @ResponseBody
  243. @Transactional
  244. public AjaxResult addApplyAddWorkAgain(ApplyAddWorkIn record) throws com.rockstar.flow.exception.FlowException {
  245. System.out.println("addApplyAddWorkAgain");
  246. if (StringUtils.isEmpty(record.getFlowMainId())) {
  247. return AjaxResult.error("没有传入flowMainId的值");
  248. }
  249. System.out.println(record);
  250. // record.setRemark("重新发起申请[" + record.getFlowMainId() + "],");
  251. {//修改重新发起前的表状态
  252. FlowMain flowMain1 = new FlowMain();
  253. flowMain1.setId(record.getFlowMainId());
  254. flowMain1.setReturnStatus(1);//0/null无状态,1已撤回并且已重新发起
  255. flowMain1.setUpdatedAt(new Date());
  256. flowMain1.setUpdatedBy(ShiroUtils.getUser().getId());
  257. flowMainService.updateByPrimaryKeySelective(flowMain1);
  258. }
  259. return myaddApplyPayment(record,"重新发起申请[" + record.getFlowMainId() + "],");
  260. }
  261. /**
  262. * 发起请假申请流程
  263. *
  264. * @param record
  265. * @return
  266. */
  267. public AjaxResult myaddApplyPayment(ApplyAddWorkIn record,String addSystemRemark) throws com.rockstar.flow.exception.FlowException {
  268. if (StringUtils.isEmpty(record.getApplyAddWorkTimeString())) {
  269. return AjaxResult.error("没有获取到请假详细信息,请重新确认");
  270. }
  271. BigDecimal totalAddTime = new BigDecimal(0);//所有加班小时
  272. {
  273. record.setUpdatedAt(new Date());
  274. record.setCreatedAt(record.getUpdatedAt());
  275. record.setCreatedBy(ShiroUtils.getUser().getId());
  276. record.setUpdatedBy(record.getCreatedBy());
  277. record.setStatus(0);
  278. modelService.insert(record);
  279. String applyAddWorkTimeString = record.getApplyAddWorkTimeString();
  280. JSONArray jsonArray = JSONArray.parseArray(applyAddWorkTimeString);
  281. for (int i = 0; i < jsonArray.size(); i++) {
  282. JSONObject object = jsonArray.getJSONObject(i);
  283. ApplyAddWorkTime applyAddWorkTime = JSONObject.parseObject(object.toJSONString(), ApplyAddWorkTime.class);// 将string类型直接封装成对象
  284. applyAddWorkTime.setAddWorkId(record.getId());
  285. applyAddWorkTime.setUpdatedAt(new Date());
  286. applyAddWorkTime.setCreatedAt(applyAddWorkTime.getUpdatedAt());
  287. applyAddWorkTime.setCreatedBy(ShiroUtils.getUser().getId());
  288. applyAddWorkTime.setUpdatedBy(applyAddWorkTime.getCreatedBy());
  289. applyAddWorkTime.setStatus(0);
  290. // 做一个方法,计算加班时间
  291. // BigDecimal addTime=null;
  292. // applyAddWorkTime.setUseTime(addTime);
  293. applyAddWorkTimeService.insert(applyAddWorkTime);
  294. {//修改请假表,将请假表的对应数据添加冻结时间,并减去可用时间
  295. totalAddTime = totalAddTime.add(new BigDecimal(applyAddWorkTime.getUseTime().toString()), MathContext.DECIMAL32);
  296. }
  297. }
  298. if (totalAddTime.doubleValue() > 0) {
  299. /**
  300. * 做一个方法,修改年假表的数据
  301. */
  302. //这里没有要做的事情
  303. }
  304. }
  305. HashMap<String, Object> feeMoneyTotalMap = null;//new HashMap<>();
  306. // if (totalTiaoXiu.doubleValue() > 0 && totalNianJia.doubleValue() <= 0 && totalShiJia.doubleValue() <= 0) {
  307. // //假别仅有调休假
  308. //// String isExchangeOnly = conditionMap.get("isExchangeOnly").toString();
  309. //// Integer applyDay = Integer.valueOf(conditionMap.get("applyDay").toString());
  310. // feeMoneyTotalMap.put("isExchangeOnly", "yes");
  311. // feeMoneyTotalMap.put("applyDay", 0);
  312. // } else if (totalTiaoXiu.add(totalNianJia).add(totalShiJia).doubleValue() > 3) {
  313. //// 假期天数合计>3天
  314. // feeMoneyTotalMap.put("isExchangeOnly", "no");
  315. // feeMoneyTotalMap.put("applyDay", 4);
  316. // } else {
  317. // feeMoneyTotalMap.put("isExchangeOnly", "no");
  318. // feeMoneyTotalMap.put("applyDay", 0);
  319. // }
  320. // feeMoneyTotalMap.put("billMoney", feeMoneyTotalDouble);
  321. String applyTheme = "" + ShiroUtils.getUser().getTruename() + "的加班申请单";
  322. AjaxResult ajaxResult = flowMainService.doFlowMain(applyTheme, record.getId(), addSystemRemark, record.getCcList(),
  323. ConstantFlowType.ADD_WORK_PROCESSDEFINE, ConstantFlowType.ADD_WORK_DEPLOYMENTID,
  324. feeMoneyTotalMap, ConstantFlowType.ADD_WORK_NAME, ConstantFlowType.ADD_WORK,ShiroUtils.getUser());
  325. if (ajaxResult.get("code").equals(1688)) {
  326. //表成功了 且已经审核完成
  327. // 需要进行后续的处理
  328. Boolean isEnd = true;//是否结束
  329. Boolean isAgree = true;//是否同意
  330. //添加业务信息(将请假信息中的修改掉,剩余年假,剩余调休,冻结年假,冻结调休都修改掉)
  331. if (isEnd) {
  332. /*String createdById = record.getCreatedBy();
  333. HolidayManagementExample holidayManagementExample = new HolidayManagementExample();
  334. holidayManagementExample.createCriteria().andUserIdEqualTo(createdById);
  335. List<HolidayManagement> holidayManagements = holidayManagementService.selectByExample(holidayManagementExample);
  336. if (holidayManagements.isEmpty()) {
  337. // 添加holidayManagements信息
  338. FrameUser frameUser = frameUserService.selectByPrimaryKey(createdById);
  339. HolidayManagement entity = new HolidayManagement();
  340. entity.setId(UUIDUtils.middleUUID());
  341. entity.setUserId(createdById);
  342. entity.setJoinDay(frameUser.getCreatedat());
  343. entity.setStatus(0);//状态0正常,1删除,2禁用
  344. entity.setIsFirst(1);//是否是第一次录入管理1是,0不是
  345. entity.setCreatedAt(new Date());
  346. entity.setUpdatedAt(entity.getCreatedAt());
  347. entity.setCreatedBy(ShiroUtils.getUser().getId());
  348. entity.setUpdatedBy(entity.getCreatedBy());
  349. int insert = holidayManagementService.insertWithoutId(entity);
  350. holidayManagements.add(entity);
  351. }
  352. if (isAgree) {//如果是最后 并且同意了,就进行下面的操作,或者不同意就进行另一种操作,
  353. ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
  354. example.createCriteria().andAddWorkIdEqualTo(record.getId());
  355. List<ApplyAddWorkTime> applyAddWorkTimes = applyAddWorkTimeService.selectByExample(example);
  356. this.booleanIsAgree(totalAddTime,holidayManagements,applyAddWorkTimes,createdById);
  357. } else {
  358. //如果是不同意
  359. {
  360. // 不需要做什么
  361. }
  362. }*/
  363. }
  364. return AjaxResult.success();
  365. } else {
  366. return ajaxResult;
  367. }
  368. }
  369. /**
  370. * 审核或申请结束且同意的情况下进行的处理
  371. */
  372. /* public void booleanIsAgree(BigDecimal totalAddTime,List<HolidayManagement> holidayManagements,List<ApplyAddWorkTime> applyAddWorkTimes,String createdById){
  373. //如果是同意了
  374. {
  375. HolidayManagement holidayManagement = holidayManagements.get(0);
  376. if (totalAddTime.doubleValue() > 0) {//存在加班修改
  377. Double restExchangeTime = holidayManagement.getRestExchangeTime();
  378. // Double restHolidayTime = holidayManagement.getRestHolidayTime();
  379. double v = new BigDecimal(restExchangeTime).add(totalAddTime, MathContext.DECIMAL32).doubleValue();
  380. holidayManagement.setRestExchangeTime(v);
  381. }
  382. holidayManagement.setUpdatedBy(ShiroUtils.getUser().getId());
  383. holidayManagement.setUpdatedAt(new Date());
  384. holidayManagementService.updateByPrimaryKeySelective(holidayManagement);
  385. }
  386. {//审核通过后 在oa_work_attendance_log表中添加记录
  387. for (ApplyAddWorkTime applyAddWorkTime : applyAddWorkTimes) {
  388. WorkAttendanceLog workAttendanceLog = new WorkAttendanceLog();
  389. // //=========================下面是重要的数据
  390. // user_id varchar (64) DEFAULT NULL COMMENT '用户id 姓名/部门/岗位',
  391. // `do_day`date DEFAULT NULL COMMENT '发生的日期',
  392. // `happen_type` int(4) DEFAULT NULL COMMENT
  393. // '1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差',
  394. // //=========================上面是重要的数据
  395. // do_start_time datetime DEFAULT NULL COMMENT '发生开始时间',
  396. // do_end_time datetime DEFAULT NULL COMMENT '发生结束时间',
  397. // `use_time`decimal(5, 2) DEFAULT NULL COMMENT '消耗时间(比如加班/调休时间小时)',
  398. // from_table_id varchar(64) DEFAULT NULL COMMENT '来源表id',
  399. // from_table_name varchar(64) DEFAULT NULL COMMENT '来源表名称',
  400. workAttendanceLog.setUserId(createdById);
  401. workAttendanceLog.setDoDay(applyAddWorkTime.getStartDay());
  402. workAttendanceLog.setHappenType(9);//'1年假,2调休,3事假,4病假,5婚假,6产假,7陪产假,8丧假,9加班,10迟到,11早退,12旷工,13外出,14居家,15出差',
  403. workAttendanceLog.setDoStartTime(applyAddWorkTime.getStartTime());
  404. workAttendanceLog.setDoEndTime(applyAddWorkTime.getEndTime());
  405. workAttendanceLog.setUseTime(applyAddWorkTime.getUseTime());
  406. workAttendanceLog.setFromTableId(applyAddWorkTime.getId());
  407. workAttendanceLog.setFromTableName("apply_add_work_time");
  408. workAttendanceLog.setCreatedBy(ShiroUtils.getUser().getId());
  409. workAttendanceLog.setCreatedAt(new Date());
  410. workAttendanceLog.setStatus(0);
  411. workAttendanceLog.setUpdatedAt(workAttendanceLog.getCreatedAt());
  412. workAttendanceLog.setUpdatedBy(workAttendanceLog.getCreatedBy());
  413. int result = workAttendanceLogService.insert(workAttendanceLog);
  414. }
  415. }
  416. }*/
  417. /**
  418. * 根据推送表的FlowMainPushId获取信息
  419. *
  420. * @param flowMainPushId
  421. * @return
  422. */
  423. @PostMapping(value = "getInfoByFlowMainPushId", produces = {"application/json;charset=UTF-8"})
  424. @ResponseBody
  425. public ApplyAddWorkIn getInfoByFlowMainPushId(String flowMainPushId) {
  426. ApplyAddWorkIn myApplyAddWorkIn = modelService.getInfoByFlowMainPushId(flowMainPushId);
  427. if (myApplyAddWorkIn != null) {
  428. {//获取抄送人
  429. // FlowMainCcExample example = new FlowMainCcExample();
  430. // example.createCriteria().andFlowMainIdEqualTo(myApplyUseMoneyIn.getFlowMainId());
  431. // List<FlowMainCc> flowMainCcList = flowMainCcService.selectByExample(example);
  432. List<FlowMainCcVo> flowMainCcList = flowMainCcService.selectVoByFlowMainId(myApplyAddWorkIn.getFlowMainId());
  433. // HashSet<String> set = new HashSet<>();
  434. // for (FlowMainCc flowMainCc : flowMainCcList) {
  435. // set.add(flowMainCc.getCcUser());
  436. // }
  437. // StringBuilder stringBuilder = new StringBuilder();
  438. // if (!set.isEmpty()) {
  439. // for (String s : set) {
  440. // stringBuilder.append(s + ",");
  441. // }
  442. // }
  443. // myApplyUseMoneyIn.setCcList(stringBuilder.toString());
  444. myApplyAddWorkIn.setFlowMainCcList(flowMainCcList);
  445. }
  446. {//获取apply_use_money_detail数据
  447. ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
  448. example.createCriteria().andAddWorkIdEqualTo(myApplyAddWorkIn.getId());
  449. List<ApplyAddWorkTime> ApplyAddWorkTimes = applyAddWorkTimeService.selectByExample(example);
  450. myApplyAddWorkIn.setApplyAddWorkTimeList(ApplyAddWorkTimes);
  451. }
  452. }
  453. return myApplyAddWorkIn;
  454. }
  455. /**
  456. * 根据主表的FlowMainId获取信息
  457. *
  458. * @param flowMainId
  459. * @return
  460. */
  461. @PostMapping(value = "getInfoByFlowMainId", produces = {"application/json;charset=UTF-8"})
  462. @ResponseBody
  463. public ApplyAddWorkIn getInfoByFlowMainId(String flowMainId) {
  464. ApplyAddWorkIn myApplyAddWorkIn = modelService.getInfoByFlowMainId(flowMainId);
  465. if (myApplyAddWorkIn != null) {
  466. {//获取抄送人
  467. // FlowMainCcExample example = new FlowMainCcExample();
  468. // example.createCriteria().andFlowMainIdEqualTo(myApplyUseMoneyIn.getFlowMainId());
  469. // List<FlowMainCc> flowMainCcList = flowMainCcService.selectByExample(example);
  470. List<FlowMainCcVo> flowMainCcList = flowMainCcService.selectVoByFlowMainId(myApplyAddWorkIn.getFlowMainId());
  471. // HashSet<String> set = new HashSet<>();
  472. // for (FlowMainCc flowMainCc : flowMainCcList) {
  473. // set.add(flowMainCc.getCcUser());
  474. // }
  475. // StringBuilder stringBuilder = new StringBuilder();
  476. // if (!set.isEmpty()) {
  477. // for (String s : set) {
  478. // stringBuilder.append(s + ",");
  479. // }
  480. // }
  481. // myApplyUseMoneyIn.setCcList(stringBuilder.toString());
  482. myApplyAddWorkIn.setFlowMainCcList(flowMainCcList);
  483. }
  484. {//获取apply_use_money_detail数据
  485. ApplyAddWorkTimeExample example = new ApplyAddWorkTimeExample();
  486. example.createCriteria().andAddWorkIdEqualTo(myApplyAddWorkIn.getId());
  487. List<ApplyAddWorkTime> ApplyOffWorkTimes = applyAddWorkTimeService.selectByExample(example);
  488. myApplyAddWorkIn.setApplyAddWorkTimeList(ApplyOffWorkTimes);
  489. }
  490. }
  491. return myApplyAddWorkIn;
  492. }
  493. /**
  494. * 根据用户id获取用户姓名和部门名称,岗位信息
  495. *
  496. * @param userId
  497. * @return
  498. */
  499. @PostMapping(value = "getUserInfoByUserId", produces = {"application/json;charset=UTF-8"})
  500. @ResponseBody
  501. public Map<String, Object> getUserInfoByUserId(String userId) {
  502. if (StringUtils.isEmpty(userId)) {
  503. userId = ShiroUtils.getUser().getId();
  504. }
  505. return modelService.getUserInfoByUserId(userId);
  506. }
  507. //=====下面原生的=============================================================================================================
  508. // @PostMapping(value = "list",produces = {"application/json;charset=UTF-8"})
  509. // @ResponseBody
  510. // public Object list(Tablepar tablepar, ApplyAddWork model, DateTrans dt){
  511. // PageInfo<ApplyAddWork> page= modelService.list(tablepar,model,dt);
  512. // TableSplitResult<ApplyAddWork> result=new TableSplitResult<ApplyAddWork>(page.getPageNum(), page.getTotal(), page.getList());
  513. // return result;
  514. // }
  515. //
  516. // @PostMapping(value = "listAll",produces = {"application/json;charset=UTF-8"})
  517. // @ResponseBody
  518. // public Object listAll(ApplyAddWork model, DateTrans dt){
  519. // return modelService.listAll(model,dt);
  520. // }
  521. //
  522. // @PostMapping(value = "add",produces = {"application/json;charset=UTF-8"})
  523. // @ResponseBody
  524. // public AjaxResult add(ApplyAddWork record){
  525. // record.setCreatedAt(new Date());
  526. // int result = modelService.insert(record);
  527. // return result(result);
  528. // }
  529. //
  530. // @PostMapping(value = "remove/{id}",produces = {"application/json;charset=UTF-8"})
  531. // @ResponseBody
  532. // public AjaxResult remove(@PathVariable("id") String id){
  533. // int result = -1;//modelService.deleteByPrimaryKey(id);
  534. // return result(result);
  535. // }
  536. //
  537. // @PostMapping(value = "edit",produces = {"application/json;charset=UTF-8"})
  538. // @ResponseBody
  539. // public AjaxResult editSave(ApplyAddWork model){
  540. // int result = modelService.updateByPrimaryKeySelective(model);
  541. // return result(result);
  542. // }
  543. //
  544. // @PostMapping(value = "getById",produces = {"application/json;charset=UTF-8"})
  545. // @ResponseBody
  546. // public ApplyAddWork getById(String id) {
  547. // return modelService.selectByPrimaryKey(id);
  548. // }
  549. }