BudgetAdjustController.java 21 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562
  1. package cn.com.lzt.budget.adjust.controller;
  2. import cn.com.lzt.budget.adjust.entity.BudgetAdjustDetailEntity;
  3. import cn.com.lzt.budget.adjust.entity.BudgetAdjustEntity;
  4. import cn.com.lzt.budget.adjust.page.BudgetAdjustPage;
  5. import cn.com.lzt.budget.adjust.service.BudgetAdjustServiceI;
  6. import cn.com.lzt.budget.data.service.BudgetDataService;
  7. import cn.com.lzt.budget.perioddetail.entity.BudgetPeriodDetailEntity;
  8. import cn.com.lzt.budget.perioddetail.service.BudgetPeriodDetailServiceI;
  9. import cn.com.lzt.common.util.LztUtil;
  10. import cn.com.lzt.common.view.JsonDataModelAndView;
  11. import cn.com.lzt.useractiviti.data.util.ActivitiPdfExport;
  12. import cn.com.lzt.useractiviti.data.util.ActivitiTools;
  13. import com.lowagie.text.pdf.PdfPTable;
  14. import com.jeecg.qianbao.util.FormProcUtil;
  15. import com.xcgl.utils.OrderNumTools;
  16. import com.xcgl.weixin.entity.WXAjaxJson;
  17. import org.apache.commons.lang3.StringUtils;
  18. import org.apache.log4j.Logger;
  19. import org.hibernate.criterion.Restrictions;
  20. import org.jeecgframework.core.beanvalidator.BeanValidators;
  21. import org.jeecgframework.core.common.controller.BaseController;
  22. import org.jeecgframework.core.common.exception.BusinessException;
  23. import org.jeecgframework.core.common.hibernate.qbc.CriteriaQuery;
  24. import org.jeecgframework.core.common.model.json.AjaxJson;
  25. import org.jeecgframework.core.common.model.json.DataGrid;
  26. import org.jeecgframework.core.constant.Globals;
  27. import org.jeecgframework.core.util.*;
  28. import org.jeecgframework.poi.excel.ExcelImportUtil;
  29. import org.jeecgframework.poi.excel.entity.ExportParams;
  30. import org.jeecgframework.poi.excel.entity.ImportParams;
  31. import org.jeecgframework.poi.excel.entity.vo.NormalExcelConstants;
  32. import org.jeecgframework.tag.core.easyui.TagUtil;
  33. import org.jeecgframework.web.system.pojo.base.TSUser;
  34. import org.jeecgframework.web.system.service.SystemService;
  35. import org.springframework.beans.factory.annotation.Autowired;
  36. import org.springframework.http.HttpHeaders;
  37. import org.springframework.http.HttpStatus;
  38. import org.springframework.http.MediaType;
  39. import org.springframework.http.ResponseEntity;
  40. import org.springframework.stereotype.Controller;
  41. import org.springframework.ui.ModelMap;
  42. import org.springframework.web.bind.annotation.*;
  43. import org.springframework.web.multipart.MultipartFile;
  44. import org.springframework.web.multipart.MultipartHttpServletRequest;
  45. import org.springframework.web.servlet.ModelAndView;
  46. import org.springframework.web.util.UriComponentsBuilder;
  47. import javax.servlet.http.HttpServletRequest;
  48. import javax.servlet.http.HttpServletResponse;
  49. import javax.validation.ConstraintViolation;
  50. import javax.validation.Validator;
  51. import java.io.IOException;
  52. import java.math.BigDecimal;
  53. import java.net.URI;
  54. import java.util.*;
  55. /**
  56. * @Title: Controller
  57. * @Description: 预算调整
  58. * @author onlineGenerator
  59. * @date 2021-02-14 13:29:34
  60. * @version V1.0
  61. *
  62. */
  63. @Controller
  64. @RequestMapping("/budgetAdjustController")
  65. public class BudgetAdjustController extends BaseController {
  66. /**
  67. * Logger for this class
  68. */
  69. private static final Logger logger = Logger.getLogger(BudgetAdjustController.class);
  70. @Autowired
  71. private BudgetAdjustServiceI budgetAdjustService;
  72. @Autowired
  73. private SystemService systemService;
  74. @Autowired
  75. private Validator validator;
  76. @Autowired
  77. private BudgetPeriodDetailServiceI budgetPeriodDetailService;
  78. @Autowired
  79. private BudgetDataService budgetDataService;
  80. /**
  81. * 预算调整列表 页面跳转
  82. *
  83. * @return
  84. */
  85. @RequestMapping(params = "list")
  86. public ModelAndView list(HttpServletRequest request) {
  87. return new ModelAndView("cn/com/lzt/budget/adjust/budgetAdjustList");
  88. }
  89. /**
  90. * easyui AJAX请求数据
  91. *
  92. * @param request
  93. * @param response
  94. * @param dataGrid
  95. */
  96. @RequestMapping(params = "datagrid")
  97. public void datagrid(BudgetAdjustEntity budgetAdjust,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid) {
  98. CriteriaQuery cq = new CriteriaQuery(BudgetAdjustEntity.class, dataGrid);
  99. Date createDate = budgetAdjust.getCreateDate();
  100. if(createDate!=null){
  101. cq.gt("createDate", createDate);
  102. Calendar c = Calendar.getInstance();
  103. c.setTime(createDate);
  104. c.add(Calendar.DAY_OF_MONTH, 1);
  105. c.add(Calendar.MILLISECOND,-1 );
  106. cq.lt("createDate", c.getTime());
  107. budgetAdjust.setCreateDate(null);
  108. }
  109. String entityIds = budgetAdjust.getEntityIds();
  110. if(StringUtils.isNotBlank(entityIds)){
  111. cq.like("entityIds", "%"+entityIds+"%");
  112. budgetAdjust.setEntityIds(null);
  113. }
  114. //查询条件组装器
  115. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, budgetAdjust);
  116. try{
  117. TSUser user = ResourceUtil.getSessionUser();
  118. cq.add(Restrictions.eq("createBy",user.getUserName()));
  119. //自定义追加查询条件
  120. }catch (Exception e) {
  121. throw new BusinessException(e.getMessage());
  122. }
  123. cq.add();
  124. this.budgetAdjustService.getDataGridReturn(cq, true);
  125. TagUtil.datagrid(response, dataGrid);
  126. }
  127. /**
  128. * 删除预算调整
  129. *
  130. * @return
  131. */
  132. @RequestMapping(params = "doDel")
  133. @ResponseBody
  134. public AjaxJson doDel(BudgetAdjustEntity budgetAdjust, HttpServletRequest request) {
  135. AjaxJson j = new AjaxJson();
  136. budgetAdjust = systemService.getEntity(BudgetAdjustEntity.class, budgetAdjust.getId());
  137. String message = "预算调整删除成功";
  138. try{
  139. budgetAdjustService.delMain(budgetAdjust);
  140. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  141. }catch(Exception e){
  142. e.printStackTrace();
  143. message = "预算调整删除失败";
  144. throw new BusinessException(e.getMessage());
  145. }
  146. j.setMsg(message);
  147. return j;
  148. }
  149. /**
  150. * 批量删除预算调整
  151. *
  152. * @return
  153. */
  154. @RequestMapping(params = "doBatchDel")
  155. @ResponseBody
  156. public AjaxJson doBatchDel(String ids,HttpServletRequest request){
  157. AjaxJson j = new AjaxJson();
  158. String message = "预算调整删除成功";
  159. try{
  160. for(String id:ids.split(",")){
  161. BudgetAdjustEntity budgetAdjust = systemService.getEntity(BudgetAdjustEntity.class,
  162. id
  163. );
  164. budgetAdjustService.delMain(budgetAdjust);
  165. systemService.addLog(message, Globals.Log_Type_DEL, Globals.Log_Leavel_INFO);
  166. }
  167. }catch(Exception e){
  168. e.printStackTrace();
  169. message = "预算调整删除失败";
  170. throw new BusinessException(e.getMessage());
  171. }
  172. j.setMsg(message);
  173. return j;
  174. }
  175. /**
  176. * 添加预算调整
  177. *
  178. * @return
  179. */
  180. @RequestMapping(params = "doAdd")
  181. @ResponseBody
  182. public AjaxJson doAdd(BudgetAdjustEntity budgetAdjust,BudgetAdjustPage budgetAdjustPage, HttpServletRequest request) {
  183. if(StringUtils.isNotBlank(budgetAdjust.getId())){
  184. return doUpdate(budgetAdjust,budgetAdjustPage,request);
  185. }
  186. List<BudgetAdjustDetailEntity> budgetAdjustDetailList = budgetAdjustPage.getBudgetAdjustDetailList();
  187. AjaxJson j = new AjaxJson();
  188. String message = "添加成功";
  189. try{
  190. String code = OrderNumTools.generateNextBillCode(Globals.CODE_PREFIX_BUDGET_ADJUST,"t_b_budget_adjust","code",4);
  191. budgetAdjust.setCode(code);
  192. budgetAdjustService.addMain(budgetAdjust, budgetAdjustDetailList);
  193. systemService.addLog(message, Globals.Log_Type_INSERT, Globals.Log_Leavel_INFO);
  194. }catch(Exception e){
  195. e.printStackTrace();
  196. message = "预算调整添加失败";
  197. throw new BusinessException(e.getMessage());
  198. }
  199. j.setMsg(message);
  200. return j;
  201. }
  202. /**
  203. * 更新预算调整
  204. *
  205. * @return
  206. */
  207. @RequestMapping(params = "doUpdate")
  208. @ResponseBody
  209. public AjaxJson doUpdate(BudgetAdjustEntity budgetAdjust,BudgetAdjustPage budgetAdjustPage, HttpServletRequest request) {
  210. List<BudgetAdjustDetailEntity> budgetAdjustDetailList = budgetAdjustPage.getBudgetAdjustDetailList();
  211. AjaxJson j = new AjaxJson();
  212. String message = "更新成功";
  213. try{
  214. budgetAdjustService.updateMain(budgetAdjust, budgetAdjustDetailList);
  215. systemService.addLog(message, Globals.Log_Type_UPDATE, Globals.Log_Leavel_INFO);
  216. }catch(Exception e){
  217. e.printStackTrace();
  218. message = "更新预算调整失败";
  219. throw new BusinessException(e.getMessage());
  220. }
  221. j.setMsg(message);
  222. return j;
  223. }
  224. /**
  225. * 预算调整新增页面跳转
  226. *
  227. * @return
  228. */
  229. @RequestMapping(params = "goAdd")
  230. public ModelAndView goAdd(BudgetAdjustEntity budgetAdjust, HttpServletRequest req) {
  231. if (StringUtil.isNotEmpty(budgetAdjust.getId())) {
  232. budgetAdjust = budgetAdjustService.getEntity(BudgetAdjustEntity.class, budgetAdjust.getId());
  233. req.setAttribute("entity", budgetAdjust);
  234. }
  235. BudgetPeriodDetailEntity currentYearPeriodDetail = budgetPeriodDetailService.findMaxDataDetail(null);
  236. req.setAttribute("currentYearPeriodDetail",currentYearPeriodDetail );
  237. return new ModelAndView("cn/com/lzt/budget/adjust/budgetAdjust-add");
  238. }
  239. /**
  240. * 预算调整编辑页面跳转
  241. *
  242. * @return
  243. */
  244. @RequestMapping(params = "goUpdate")
  245. public ModelAndView goUpdate(BudgetAdjustEntity budgetAdjust, HttpServletRequest req) {
  246. if (StringUtil.isNotEmpty(budgetAdjust.getId())) {
  247. budgetAdjust = budgetAdjustService.getEntity(BudgetAdjustEntity.class, budgetAdjust.getId());
  248. req.setAttribute("entity", budgetAdjust);
  249. reCalcExpectValue(budgetAdjust);
  250. }
  251. return new ModelAndView("cn/com/lzt/budget/adjust/budgetAdjust-add");
  252. }
  253. //重新计算已配置预算
  254. private void reCalcExpectValue(BudgetAdjustEntity budgetAdjust) {
  255. if(StringUtils.equals(budgetAdjust.getBpmStatus(),String.valueOf(Globals.BPM_STATUS_FINISHED))){//审批结束的 不能更新
  256. return ;
  257. }
  258. String hql0 = "from BudgetAdjustDetailEntity where 1 = 1 AND fK_ID =? ";
  259. List<BudgetAdjustDetailEntity> budgetAdjustDetailEntityList = systemService.findHql(hql0,budgetAdjust.getId());
  260. for(BudgetAdjustDetailEntity adjustDetailEntity:budgetAdjustDetailEntityList){
  261. BigDecimal newValue = budgetDataService.getExpectValue(budgetAdjust.getPeriodDetailId(),adjustDetailEntity.getEntityId()
  262. ,adjustDetailEntity.getMeasureId() ,null );
  263. adjustDetailEntity.setMeasureValue(newValue);
  264. adjustDetailEntity.setAfterSuggestValue(newValue.add(adjustDetailEntity.getSuggestMoney()));
  265. }
  266. }
  267. /**
  268. * 加载明细列表[预算调整详情]
  269. *
  270. * @return
  271. */
  272. @RequestMapping(params = "budgetAdjustDetailList")
  273. public ModelAndView budgetAdjustDetailList(BudgetAdjustEntity budgetAdjust, HttpServletRequest req) {
  274. //===================================================================================
  275. //获取参数
  276. Object id0 = budgetAdjust.getId();
  277. //===================================================================================
  278. //查询-预算调整详情
  279. String hql0 = "from BudgetAdjustDetailEntity where 1 = 1 AND fK_ID =? ";
  280. try{
  281. List<BudgetAdjustDetailEntity> budgetAdjustDetailEntityList = systemService.findHql(hql0,id0);
  282. req.setAttribute("budgetAdjustDetailList", budgetAdjustDetailEntityList);
  283. }catch(Exception e){
  284. logger.info(e.getMessage());
  285. }
  286. return new ModelAndView("cn/com/lzt/budget/adjust/budgetAdjustDetailList");
  287. }
  288. /**
  289. * 导出excel
  290. *
  291. * @param request
  292. * @param response
  293. */
  294. @RequestMapping(params = "exportXls")
  295. public String exportXls(BudgetAdjustEntity budgetAdjust,HttpServletRequest request, HttpServletResponse response, DataGrid dataGrid,ModelMap map) {
  296. CriteriaQuery cq = new CriteriaQuery(BudgetAdjustEntity.class, dataGrid);
  297. //查询条件组装器
  298. org.jeecgframework.core.extend.hqlsearch.HqlGenerateUtil.installHql(cq, budgetAdjust);
  299. try{
  300. //自定义追加查询条件
  301. }catch (Exception e) {
  302. throw new BusinessException(e.getMessage());
  303. }
  304. cq.add();
  305. List<BudgetAdjustEntity> list=this.budgetAdjustService.getListByCriteriaQuery(cq, false);
  306. List<BudgetAdjustPage> pageList=new ArrayList<BudgetAdjustPage>();
  307. if(list!=null&&list.size()>0){
  308. for(BudgetAdjustEntity entity:list){
  309. try{
  310. BudgetAdjustPage page=new BudgetAdjustPage();
  311. MyBeanUtils.copyBeanNotNull2Bean(entity,page);
  312. Object id0 = entity.getId();
  313. String hql0 = "from BudgetAdjustDetailEntity where 1 = 1 AND fK_ID =? ";
  314. List<BudgetAdjustDetailEntity> budgetAdjustDetailEntityList = systemService.findHql(hql0,id0);
  315. page.setBudgetAdjustDetailList(budgetAdjustDetailEntityList);
  316. pageList.add(page);
  317. }catch(Exception e){
  318. logger.info(e.getMessage());
  319. }
  320. }
  321. }
  322. map.put(NormalExcelConstants.FILE_NAME,"预算调整");
  323. map.put(NormalExcelConstants.CLASS,BudgetAdjustPage.class);
  324. map.put(NormalExcelConstants.PARAMS,new ExportParams("预算调整列表", "导出人:Jeecg",
  325. "导出信息"));
  326. map.put(NormalExcelConstants.DATA_LIST,pageList);
  327. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  328. }
  329. /**
  330. * 通过excel导入数据
  331. * @param request
  332. * @param
  333. * @return
  334. */
  335. @RequestMapping(params = "importExcel", method = RequestMethod.POST)
  336. @ResponseBody
  337. public AjaxJson importExcel(HttpServletRequest request, HttpServletResponse response) {
  338. AjaxJson j = new AjaxJson();
  339. MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
  340. Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
  341. for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()) {
  342. MultipartFile file = entity.getValue();// 获取上传文件对象
  343. ImportParams params = new ImportParams();
  344. params.setTitleRows(2);
  345. params.setHeadRows(2);
  346. params.setNeedSave(true);
  347. try {
  348. List<BudgetAdjustPage> list = ExcelImportUtil.importExcel(file.getInputStream(), BudgetAdjustPage.class, params);
  349. BudgetAdjustEntity entity1=null;
  350. for (BudgetAdjustPage page : list) {
  351. entity1=new BudgetAdjustEntity();
  352. MyBeanUtils.copyBeanNotNull2Bean(page,entity1);
  353. budgetAdjustService.addMain(entity1, page.getBudgetAdjustDetailList());
  354. }
  355. j.setMsg("文件导入成功!");
  356. } catch (Exception e) {
  357. j.setMsg("文件导入失败!");
  358. logger.error(ExceptionUtil.getExceptionMessage(e));
  359. }finally{
  360. try {
  361. file.getInputStream().close();
  362. } catch (IOException e) {
  363. e.printStackTrace();
  364. }
  365. }
  366. }
  367. return j;
  368. }
  369. /**
  370. * 导出excel 使模板
  371. */
  372. @RequestMapping(params = "exportXlsByT")
  373. public String exportXlsByT(ModelMap map) {
  374. map.put(NormalExcelConstants.FILE_NAME,"预算调整");
  375. map.put(NormalExcelConstants.CLASS,BudgetAdjustPage.class);
  376. map.put(NormalExcelConstants.PARAMS,new ExportParams("预算调整列表", "导出人:"+ ResourceUtil.getSessionUser().getRealName(),
  377. "导出信息"));
  378. map.put(NormalExcelConstants.DATA_LIST,new ArrayList());
  379. return NormalExcelConstants.JEECG_EXCEL_VIEW;
  380. }
  381. /**
  382. * 导入功能跳转
  383. *
  384. * @return
  385. */
  386. @RequestMapping(params = "upload")
  387. public ModelAndView upload(HttpServletRequest req) {
  388. req.setAttribute("controller_name", "budgetAdjustController");
  389. return new ModelAndView("common/upload/pub_excel_upload");
  390. }
  391. @RequestMapping(method = RequestMethod.GET)
  392. @ResponseBody
  393. public List<BudgetAdjustEntity> list() {
  394. List<BudgetAdjustEntity> listBudgetAdjusts=budgetAdjustService.getList(BudgetAdjustEntity.class);
  395. return listBudgetAdjusts;
  396. }
  397. @RequestMapping(value = "/{id}", method = RequestMethod.GET)
  398. @ResponseBody
  399. public ResponseEntity<?> get(@PathVariable("id") String id) {
  400. BudgetAdjustEntity task = budgetAdjustService.get(BudgetAdjustEntity.class, id);
  401. if (task == null) {
  402. return new ResponseEntity(HttpStatus.NOT_FOUND);
  403. }
  404. return new ResponseEntity(task, HttpStatus.OK);
  405. }
  406. @RequestMapping(method = RequestMethod.POST, consumes = MediaType.APPLICATION_JSON_VALUE)
  407. @ResponseBody
  408. public ResponseEntity<?> create(@RequestBody BudgetAdjustPage budgetAdjustPage, UriComponentsBuilder uriBuilder) {
  409. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  410. Set<ConstraintViolation<BudgetAdjustPage>> failures = validator.validate(budgetAdjustPage);
  411. if (!failures.isEmpty()) {
  412. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  413. }
  414. //保存
  415. List<BudgetAdjustDetailEntity> budgetAdjustDetailList = budgetAdjustPage.getBudgetAdjustDetailList();
  416. BudgetAdjustEntity budgetAdjust = new BudgetAdjustEntity();
  417. try{
  418. MyBeanUtils.copyBeanNotNull2Bean(budgetAdjust,budgetAdjustPage);
  419. }catch(Exception e){
  420. logger.info(e.getMessage());
  421. }
  422. budgetAdjustService.addMain(budgetAdjust, budgetAdjustDetailList);
  423. //按照Restful风格约定,创建指向新任务的url, 也可以直接返回id或对象.
  424. String id = budgetAdjustPage.getId();
  425. URI uri = uriBuilder.path("/rest/budgetAdjustController/" + id).build().toUri();
  426. HttpHeaders headers = new HttpHeaders();
  427. headers.setLocation(uri);
  428. return new ResponseEntity(headers, HttpStatus.CREATED);
  429. }
  430. @RequestMapping(value = "/{id}", method = RequestMethod.PUT, consumes = MediaType.APPLICATION_JSON_VALUE)
  431. public ResponseEntity<?> update(@RequestBody BudgetAdjustPage budgetAdjustPage) {
  432. //调用JSR303 Bean Validator进行校验,如果出错返回含400错误码及json格式的错误信息.
  433. Set<ConstraintViolation<BudgetAdjustPage>> failures = validator.validate(budgetAdjustPage);
  434. if (!failures.isEmpty()) {
  435. return new ResponseEntity(BeanValidators.extractPropertyAndMessage(failures), HttpStatus.BAD_REQUEST);
  436. }
  437. //保存
  438. List<BudgetAdjustDetailEntity> budgetAdjustDetailList = budgetAdjustPage.getBudgetAdjustDetailList();
  439. BudgetAdjustEntity budgetAdjust = new BudgetAdjustEntity();
  440. try{
  441. MyBeanUtils.copyBeanNotNull2Bean(budgetAdjust,budgetAdjustPage);
  442. }catch(Exception e){
  443. logger.info(e.getMessage());
  444. }
  445. budgetAdjustService.updateMain(budgetAdjust, budgetAdjustDetailList);
  446. //按Restful约定,返回204状态码, 无内容. 也可以返回200状态码.
  447. return new ResponseEntity(HttpStatus.NO_CONTENT);
  448. }
  449. @RequestMapping(value = "/{id}", method = RequestMethod.DELETE)
  450. @ResponseStatus(HttpStatus.NO_CONTENT)
  451. public void delete(@PathVariable("id") String id) {
  452. BudgetAdjustEntity budgetAdjust = budgetAdjustService.get(BudgetAdjustEntity.class, id);
  453. budgetAdjustService.delMain(budgetAdjust);
  454. }
  455. @RequestMapping(params = "goView")
  456. public ModelAndView goView(BudgetAdjustEntity entity, HttpServletRequest req) {
  457. String userid = "";
  458. if (StringUtil.isNotEmpty(entity.getId())) {
  459. entity = systemService.getEntity(BudgetAdjustEntity.class, entity.getId());
  460. req.setAttribute("entity", entity);
  461. reCalcExpectValue(entity);
  462. }
  463. String taskId = oConvertUtils.getString(req.getParameter("taskId"));
  464. if(oConvertUtils.isNotEmpty(taskId)){
  465. FormProcUtil.initWorkflowParam(req);
  466. req.setAttribute("taskId",taskId);
  467. }
  468. req.setAttribute("in_process",true);
  469. return new ModelAndView("cn/com/lzt/budget/adjust/budgetAdjust-add");
  470. }
  471. //手机审批
  472. @RequestMapping(params = "goViewMobile")
  473. public ModelAndView goViewMobile(BudgetAdjustEntity entity, HttpServletRequest req) {
  474. goView(entity,req);
  475. if(LztUtil.isApiRequest()) {
  476. Map<String, Object> data = LztUtil.copyReqAttributes(new String[]{"entity", "taskId"});
  477. String flag = req.getParameter("flag");
  478. data.put("flag",flag==null?-1:Integer.valueOf(flag));
  479. return new JsonDataModelAndView(WXAjaxJson.success(data));
  480. }
  481. return null;
  482. }
  483. @RequestMapping(params="exportDetailPdf4Mobile")
  484. public void exportDetailPdf4Mobile(@RequestParam("procInstId") String procInstId, HttpServletResponse response){
  485. ActivitiTools tools = ActivitiTools.getInstance(procInstId,true);
  486. ActivitiPdfExport pdfExport = tools.getPdfExport();
  487. String busId = tools.getBusId();
  488. BudgetAdjustEntity budgetAdjustEntity = systemService.get(BudgetAdjustEntity.class,busId );
  489. pdfExport.table();
  490. pdfExport.cell("编码",budgetAdjustEntity.getCode() );
  491. pdfExport.cell("预算主体",budgetAdjustEntity.getEntityNames() );
  492. pdfExport.cell("申请日期",DataUtils.formatDate( budgetAdjustEntity.getCreateDate() ,"yyyy-MM-dd") );
  493. pdfExport.cell("申请人:",budgetAdjustEntity.getCreateName() );
  494. pdfExport.cell("");
  495. PdfPTable detailTableHeader = pdfExport.createTable(6);
  496. detailTableHeader.setWidthPercentage(100);
  497. pdfExport.cell(detailTableHeader, "预算主体", true);
  498. pdfExport.cell(detailTableHeader, "预算指标", true);
  499. pdfExport.cell(detailTableHeader, "已配置预算", true);
  500. pdfExport.cell(detailTableHeader, "建议增加金额", true);
  501. pdfExport.cell(detailTableHeader, "调整后预算", true);
  502. pdfExport.cell(detailTableHeader, "调整理由", true);
  503. pdfExport.cell(detailTableHeader);
  504. String hql0 = "from BudgetAdjustDetailEntity where 1 = 1 AND fK_ID =? ";
  505. List<BudgetAdjustDetailEntity> budgetAdjustDetailEntityList = systemService.findHql(hql0,busId);
  506. int i=1;
  507. for(BudgetAdjustDetailEntity adjustDetailEntity:budgetAdjustDetailEntityList) {
  508. PdfPTable detailTable = pdfExport.createTable(6);
  509. pdfExport.cell(detailTable,adjustDetailEntity.getEntityName(),false);
  510. pdfExport.cell(detailTable,adjustDetailEntity.getMeasureName(),false);
  511. pdfExport.cell(detailTable,adjustDetailEntity.getMeasureValue().toPlainString(),false);
  512. pdfExport.cell(detailTable,adjustDetailEntity.getSuggestMoney().toPlainString(),false);
  513. pdfExport.cell(detailTable,adjustDetailEntity.getSuggestMoney().add(adjustDetailEntity.getMeasureValue()).toPlainString(),false);
  514. pdfExport.cell(detailTable,adjustDetailEntity.getReason(),false);
  515. pdfExport.cell("明细"+i,true);
  516. pdfExport.cell(detailTable);
  517. i++;
  518. }
  519. tools.getPdfExport().procInstId(null);
  520. tools.exportToResponse(response);
  521. }
  522. }