PrjAnnualbudgetController.java 30 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798
  1. package com.liang.controller;
  2. import com.github.pagehelper.PageHelper;
  3. import com.github.pagehelper.PageInfo;
  4. import com.liang.common.JsonTool;
  5. import com.liang.common.base.BaseController;
  6. import com.liang.common.base.BaseResult;
  7. import com.liang.common.utils.ExcelPoiUtil;
  8. import com.liang.entity.*;
  9. import com.liang.service.*;
  10. //import com.liang.vo.service.*;
  11. import io.swagger.annotations.ApiOperation;
  12. import org.springframework.data.domain.Page;
  13. import org.springframework.data.domain.PageRequest;
  14. import org.springframework.http.ResponseEntity;
  15. import org.springframework.stereotype.Controller;
  16. import org.springframework.ui.Model;
  17. import org.springframework.web.bind.annotation.*;
  18. import javax.annotation.Resource;
  19. import javax.servlet.http.HttpServletResponse;
  20. import java.util.*;
  21. /**
  22. * 年度预算(PrjAnnualbudget)表控制层
  23. *
  24. * @author makejava
  25. * @since 2023-05-17 08:56:49
  26. */
  27. @Controller
  28. @RequestMapping("prjAnnualbudget")
  29. public class PrjAnnualbudgetController extends BaseController {
  30. /**
  31. * 服务对象
  32. */
  33. @Resource
  34. private PrjAnnualbudgetService prjAnnualbudgetService;
  35. @Resource
  36. private SysDictInfoService sysDictInfoService;
  37. @Resource
  38. private BaseProjecttypeService projecttypeService;
  39. @Resource
  40. private PrjAnnualbudgetdetailService prjAnnualbudgetdetailService;
  41. @Resource
  42. private SysPostInfoService sysPostInfoService;
  43. @Resource
  44. private PrjApproverecordService prjApproverecordService;
  45. @Resource
  46. private PrjProjectService prjProjectService;
  47. @Resource
  48. private PrjFeeschemeService prjFeeschemeService;
  49. @Resource
  50. private StaBudgetapprovalService staBudgetapprovalService;
  51. @Resource
  52. private CyyService cyyService;
  53. @Resource
  54. private SysUserInfoService sysUserInfoService;
  55. @Resource
  56. private PrjCompletecompanyService prjCompletecompanyService;
  57. /**
  58. * 分页查询
  59. *
  60. * @param prjAnnualbudget 筛选条件
  61. * @param pageRequest 分页对象
  62. * @return 查询结果
  63. */
  64. @GetMapping
  65. public ResponseEntity<Page<PrjAnnualbudget>> queryByPage(PrjAnnualbudget prjAnnualbudget, PageRequest pageRequest) {
  66. return ResponseEntity.ok(this.prjAnnualbudgetService.queryByPage(prjAnnualbudget, pageRequest));
  67. }
  68. /**
  69. * 通过主键查询单条数据
  70. *
  71. * @param id 主键
  72. * @return 单条数据
  73. */
  74. @GetMapping("{id}")
  75. public ResponseEntity<PrjAnnualbudget> queryById(@PathVariable("id") Integer id) {
  76. return ResponseEntity.ok(this.prjAnnualbudgetService.queryById(id));
  77. }
  78. /**
  79. * 删除数据
  80. *
  81. * @param id 主键
  82. * @return 删除是否成功
  83. */
  84. @DeleteMapping
  85. public ResponseEntity<Boolean> deleteById(Integer id) {
  86. return ResponseEntity.ok(this.prjAnnualbudgetService.deleteById(id));
  87. }
  88. /**
  89. * 列表初始化
  90. * @param model
  91. * @return
  92. */
  93. @ApiOperation(value = "页面初始化", notes = "页面初始化")
  94. @RequestMapping(value = "/init", method = RequestMethod.GET)
  95. public String init(Model model) {
  96. //项目类型
  97. List<Map<String, String>> xmlxList = projecttypeService.getXMLX();
  98. model.addAttribute("xmlxList", xmlxList);
  99. //审批状态
  100. List<Map<String, String>> approveList = sysDictInfoService.queryByCode("xm_status");
  101. model.addAttribute("approveList", approveList);
  102. //年份
  103. List<String> yearList = prjAnnualbudgetService.getYearList();
  104. model.addAttribute("yearList", yearList);
  105. //当前用户ID
  106. model.addAttribute("userId", getSysUserId());
  107. return "annualbudget/list";
  108. }
  109. @ResponseBody
  110. @RequestMapping(value = "/list", method = RequestMethod.POST)
  111. public BaseResult list(@RequestParam("page") Integer pageNum,
  112. @RequestParam("limit") Integer pageSize,
  113. @RequestParam(required = false, defaultValue = "", value = "xmmc") String xmmc,
  114. @RequestParam(required = false, defaultValue = "", value = "erpbh") String erpbh,
  115. @RequestParam(required = false, defaultValue = "", value = "xmlx") String xmlx,
  116. @RequestParam(required = false, defaultValue = "", value = "ssbmmc") String ssbmmc,
  117. @RequestParam(required = false, defaultValue = "", value = "spzt") String spzt,
  118. @RequestParam(required = false, defaultValue = "", value = "rwsmc") String rwsmc,
  119. @RequestParam(required = false, defaultValue = "", value = "nf") String nf,
  120. @RequestParam(required = false, defaultValue = "", value = "sortName") String sortName,
  121. @RequestParam(required = false, defaultValue = "", value = "sortOrder") String sortOrder) {
  122. PageHelper.startPage(pageNum, pageSize);
  123. Map<String, String> paraMap = new HashMap<>();
  124. paraMap.put("sortName", sortName);
  125. paraMap.put("sortOrder", sortOrder);
  126. paraMap.put("xmmc", xmmc);
  127. paraMap.put("erpbh", erpbh);
  128. paraMap.put("xmlx", xmlx);
  129. paraMap.put("ssbmmc", ssbmmc);
  130. paraMap.put("spzt", spzt);
  131. paraMap.put("rwsmc", rwsmc);
  132. paraMap.put("nf", nf);
  133. List<PrjAnnualbudget> list = prjAnnualbudgetService.getNdysList(paraMap);
  134. PageInfo<PrjAnnualbudget> pageinfo = new PageInfo<>(list);
  135. //取出查询结果
  136. List<PrjAnnualbudget> rows = pageinfo.getList();
  137. int total = (int) pageinfo.getTotal();
  138. Map<String, Object> result = new HashMap<>();
  139. result.put(RESULT_ROWS, rows);
  140. result.put(RESULT_TOTAL, total);
  141. return BaseResult.success(result);
  142. }
  143. @ApiOperation(value = "页面初始化", notes = "页面初始化")
  144. @RequestMapping(value = "/init_mylist", method = RequestMethod.GET)
  145. public String init_mylist(Model model) {
  146. //项目类型
  147. List<Map<String, String>> xmlxList = projecttypeService.getXMLX();
  148. model.addAttribute("xmlxList", xmlxList);
  149. //审批状态
  150. List<Map<String, String>> approveList = sysDictInfoService.queryByCode("xm_status");
  151. model.addAttribute("approveList", approveList);
  152. //年份
  153. List<String> yearList = prjAnnualbudgetService.getYearList();
  154. model.addAttribute("yearList", yearList);
  155. return "annualbudget/mylist";
  156. }
  157. @ResponseBody
  158. @RequestMapping(value = "/mylist", method = RequestMethod.POST)
  159. public BaseResult mylist(@RequestParam("page") Integer pageNum,
  160. @RequestParam("limit") Integer pageSize,
  161. @RequestParam(required = false, defaultValue = "", value = "xmmc") String xmmc,
  162. @RequestParam(required = false, defaultValue = "", value = "erpbh") String erpbh,
  163. @RequestParam(required = false, defaultValue = "", value = "xmlx") String xmlx,
  164. @RequestParam(required = false, defaultValue = "", value = "ssbmmc") String ssbmmc,
  165. @RequestParam(required = false, defaultValue = "", value = "spzt") String spzt,
  166. @RequestParam(required = false, defaultValue = "", value = "rwsmc") String rwsmc,
  167. @RequestParam(required = false, defaultValue = "", value = "nf") String nf,
  168. @RequestParam(required = false, defaultValue = "", value = "sortName") String sortName,
  169. @RequestParam(required = false, defaultValue = "", value = "sortOrder") String sortOrder) {
  170. SysUserInfo userInfo = getSysUserInfo();
  171. List<String> postName = sysUserInfoService.getPostNameByUserId(userInfo.getUserId());
  172. String post="";
  173. if(postName.size()>0){
  174. for (int i = 0; i < postName.size(); i++) {
  175. if("科研专责".equals(postName.get(i))){
  176. post="过";
  177. }
  178. }
  179. }
  180. PageHelper.startPage(pageNum, pageSize);
  181. Map<String, String> paraMap = new HashMap<>();
  182. paraMap.put("sortName", sortName);
  183. paraMap.put("sortOrder", sortOrder);
  184. paraMap.put("xmmc", xmmc);
  185. paraMap.put("erpbh", erpbh);
  186. paraMap.put("xmlx", xmlx);
  187. paraMap.put("ssbmmc", ssbmmc);
  188. paraMap.put("spzt", spzt);
  189. paraMap.put("rwsmc", rwsmc);
  190. paraMap.put("nf", nf);
  191. if(!userInfo.getAccount().equals("admin")){
  192. if(!"过".equals(post)){
  193. paraMap.put("userId", userInfo.getUserId().toString());
  194. }
  195. }
  196. List<PrjAnnualbudget> list = prjAnnualbudgetService.getNdysList(paraMap);
  197. PageInfo<PrjAnnualbudget> pageinfo = new PageInfo<>(list);
  198. //取出查询结果
  199. List<PrjAnnualbudget> rows = pageinfo.getList();
  200. int total = (int) pageinfo.getTotal();
  201. Map<String, Object> result = new HashMap<>();
  202. result.put(RESULT_ROWS, rows);
  203. result.put(RESULT_TOTAL, total);
  204. return BaseResult.success(result);
  205. }
  206. /**
  207. * 新建数据
  208. *
  209. * @return
  210. */
  211. @RequestMapping(value = "/forAdd", method = RequestMethod.GET)
  212. public String forAdd(Model model)
  213. {
  214. SysUserInfo userInfo = getSysUserInfo();
  215. model.addAttribute("userInfo", userInfo);
  216. return "annualbudget/add_annualbudget";
  217. }
  218. @ApiOperation(value = "页面初始化", notes = "页面初始化")
  219. @RequestMapping(value = "/init_project", method = RequestMethod.GET)
  220. public String init_rws(Model model) {
  221. //项目类型
  222. List<Map<String, String>> xmlxList = projecttypeService.getXMLX();
  223. model.addAttribute("xmlxList", xmlxList);
  224. return "annualbudget/list_project";
  225. }
  226. /**
  227. * 获取项目预算列表
  228. * @return
  229. */
  230. @ResponseBody
  231. @RequestMapping(value = "/list/{nys}", method = RequestMethod.POST)
  232. public Object list(@PathVariable Integer nys) {
  233. List<PrjAnnualbudgetdetail> list = prjAnnualbudgetdetailService.getBudgetList(nys);
  234. Double xmzys=0.0;
  235. // for (PrjAnnualbudgetdetail prj:list) {
  236. // Double dw1 = prj.getDw1();
  237. // Double xmzys = prj.setXmzys(0.0);
  238. // if (dw1!=null){
  239. // prj.setXmzys(dw1);
  240. // }else{
  241. // prj.setXmzys(0.0);
  242. // }
  243. // }
  244. if (list.size()>0){
  245. int fy=0;
  246. int fy1=0;
  247. int fy2=0;
  248. int fy3=0;
  249. int zjfy=0;
  250. for(int i=0;i<list.size();i++){
  251. if("总计".equals(list.get(i).getFymc())){
  252. zjfy=i;
  253. list.get(i).setXmzys(list.get(i).getXmzys());
  254. }
  255. if((list.get(i).getFymc()).endsWith("外委支出费")&&!(list.get(i).getFymc()).startsWith("(1)")){
  256. fy1=i;
  257. }
  258. if("1.外委研究支出费".equals(list.get(i).getFymc())){
  259. fy=i;
  260. }
  261. if("2.仪器设备租赁费".equals(list.get(i).getFymc())){
  262. fy2=i;
  263. }
  264. if("3.外协测试试验与加工费".equals(list.get(i).getFymc())){
  265. fy3=i;
  266. }
  267. }
  268. double rwsys=0.0;
  269. double _xmzys=0.0;
  270. if(list.get(fy).getXmzys()!=null) {
  271. _xmzys=list.get(fy).getXmzys();
  272. }
  273. if(list.get(fy).getRwsys()!=null){
  274. rwsys=list.get(fy).getRwsys();
  275. }
  276. if (_xmzys < (rwsys-_xmzys)||rwsys==_xmzys) {
  277. PrjAnnualbudget prjAnnualbudget = prjAnnualbudgetService.queryById(nys);
  278. List<PrjCompletecompany> compList = prjCompletecompanyService.queryByXM(prjAnnualbudget.getRws());
  279. List flag=new ArrayList<>();
  280. if(compList.size()>0){
  281. for (int i = 0; i < compList.size(); i++) {
  282. if("国网陕西省电力公司".equals(compList.get(i).getDwqc())||"国网陕西省电力有限公司".equals(compList.get(i).getDwqc())||"国网陕西省电力公司电力科学研究院".equals(compList.get(i).getDwqc())||"国网陕西省电力有限公司电力科学研究院".equals(compList.get(i).getDwqc())){
  283. continue;
  284. }
  285. flag.add(i);
  286. }
  287. }
  288. if(flag.size()>0){
  289. for (int j = 0; j < flag.size(); j++) {
  290. switch (flag.get(j).toString()){
  291. case "0":
  292. if(list.get(zjfy).getDw1()!=null){
  293. xmzys=xmzys+list.get(zjfy).getDw1();
  294. }else{
  295. xmzys=xmzys+0.0;
  296. }
  297. break;
  298. case "1":
  299. if(list.get(zjfy).getDw2()!=null){
  300. xmzys=xmzys+list.get(zjfy).getDw2();
  301. }else{
  302. xmzys=xmzys+0.0;
  303. }
  304. break;
  305. case "2":
  306. if(list.get(zjfy).getDw3()!=null){
  307. xmzys=xmzys+list.get(zjfy).getDw3();
  308. }else{
  309. xmzys=xmzys+0.0;
  310. }
  311. break;
  312. case "3":
  313. if(list.get(zjfy).getDw4()!=null){
  314. xmzys=xmzys+list.get(zjfy).getDw4();
  315. }else{
  316. xmzys=xmzys+0.0;
  317. }
  318. break;
  319. case "4":
  320. if(list.get(zjfy).getDw5()!=null){
  321. xmzys=xmzys+list.get(zjfy).getDw5();
  322. }else{
  323. xmzys=xmzys+0.0;
  324. }
  325. break;
  326. case "5":
  327. if(list.get(zjfy).getDw6()!=null){
  328. xmzys=xmzys+list.get(zjfy).getDw6();
  329. }else{
  330. xmzys=xmzys+0.0;
  331. }
  332. break;
  333. case "6":
  334. if(list.get(zjfy).getDw7()!=null){
  335. xmzys=xmzys+list.get(zjfy).getDw7();
  336. }else{
  337. xmzys=xmzys+0.0;
  338. }
  339. break;
  340. case "7":
  341. if(list.get(zjfy).getDw8()!=null){
  342. xmzys=xmzys+list.get(zjfy).getDw8();
  343. }else{
  344. xmzys=xmzys+0.0;
  345. }
  346. break;
  347. case "8":
  348. if(list.get(zjfy).getDw9()!=null){
  349. xmzys=xmzys+list.get(zjfy).getDw9();
  350. }else{
  351. xmzys=xmzys+0.0;
  352. }
  353. break;
  354. case "9":
  355. if(list.get(zjfy).getDw10()!=null){
  356. xmzys=xmzys+list.get(zjfy).getDw10();
  357. }else{
  358. xmzys=xmzys+0.0;
  359. }
  360. break;
  361. default:
  362. System.out.println("flagflag:"+flag);
  363. break;
  364. }
  365. }
  366. }
  367. }
  368. Double xmzyswwje = list.get(fy).getXmzys();
  369. if(xmzyswwje!=null){
  370. xmzys=xmzys+xmzyswwje;
  371. }
  372. list.get(fy).setXmzys(xmzys);
  373. Double wwzc=0.0;
  374. if(list.get(fy).getXmzys()!=null&&fy!=0){
  375. wwzc=list.get(fy).getXmzys();
  376. }
  377. if(list.get(fy2).getXmzys()!=null&&fy2!=0){
  378. wwzc=wwzc+list.get(fy2).getXmzys();
  379. }
  380. if(list.get(fy3).getXmzys()!=null&&fy3!=0){
  381. wwzc=wwzc+list.get(fy3).getXmzys();
  382. }
  383. if(wwzc>0){
  384. list.get(fy1).setXmzys(wwzc);
  385. }
  386. // list.get(fy).setXmzys(xmzys);
  387. }
  388. String strData = JsonTool.toJsonString(list);
  389. return strData;
  390. }
  391. /**
  392. * 保存数据(我的年度预算:基本信息)
  393. *
  394. * @return
  395. */
  396. @ResponseBody
  397. @RequestMapping(value = "/doAdd", method = RequestMethod.POST)
  398. public BaseResult doAdd(PrjAnnualbudget annualbudget)
  399. {
  400. annualbudget.setSpzt("未提交");
  401. int num = prjAnnualbudgetService.insert(annualbudget);
  402. if (num > 0) {
  403. //经费预算项插入
  404. prjAnnualbudgetdetailService.insertBatchByXm(annualbudget.getRws(), annualbudget.getId());
  405. return BaseResult.success("保存成功!", annualbudget);
  406. } else if(num == -1) {
  407. return BaseResult.failure("该项目 " + annualbudget.getNf() + " 年度预算已存在!");
  408. } else {
  409. return BaseResult.failure("保存失败!");
  410. }
  411. }
  412. /**
  413. * 编辑数据(我的年度预算:基本信息)
  414. *
  415. * @return
  416. */
  417. @ResponseBody
  418. @RequestMapping(value = "/doUpdate", method = RequestMethod.POST)
  419. public BaseResult doUpdate(PrjAnnualbudget annualbudget)
  420. {
  421. int num = prjAnnualbudgetService.update(annualbudget);
  422. if (num > 0) {
  423. return BaseResult.success("保存成功!");
  424. } else if(num == -1) {
  425. return BaseResult.failure("该项目 " + annualbudget.getNf() + " 年度预算已存在!");
  426. } else {
  427. return BaseResult.failure("保存失败!");
  428. }
  429. }
  430. /**
  431. * 撤销数据(基本信息)
  432. *
  433. * @return
  434. */
  435. @ResponseBody
  436. @RequestMapping(value = "/TJrevokeApprove", method = RequestMethod.POST)
  437. public BaseResult TJrevokeApprove(@RequestBody String data) {
  438. //PrjProject rws = JsonTool.parseObject(data, PrjProject.class);
  439. PrjAnnualbudget ndys = JsonTool.parseObject(data, PrjAnnualbudget.class);
  440. int num;
  441. int temp;
  442. num = prjAnnualbudgetService.tjrevokeApprove(ndys);
  443. //修改审批列表里的状态为完成
  444. temp = prjApproverecordService.updateRevokeRecord(ndys.getId());
  445. //return BaseResult.success(num+"撤销成功!");
  446. if (num > 0 && temp > 0) {
  447. return BaseResult.success("撤销成功!");
  448. } else {
  449. return BaseResult.failure("撤销失败!");
  450. }
  451. }
  452. /**
  453. * 批量删除
  454. * @param data
  455. * @return
  456. */
  457. @RequestMapping(value = "/batchDelete", method = RequestMethod.POST)
  458. @ResponseBody
  459. public BaseResult batchDelete(@RequestBody String data)
  460. {
  461. List<PrjAnnualbudget> prjList = JsonTool.parseArray(data, PrjAnnualbudget.class);
  462. List<Integer> idList = new ArrayList<>();
  463. prjList.forEach(item -> {
  464. idList.add(item.getId());
  465. });
  466. int num = prjAnnualbudgetService.batchDelete(idList);
  467. if (num > 0) {
  468. return BaseResult.success("批量删除成功!");
  469. } else {
  470. return BaseResult.failure("批量删除失败!");
  471. }
  472. }
  473. // /**
  474. // * 编辑数据
  475. // *
  476. // * @return
  477. // */
  478. // @RequestMapping(value = "/forUpdate/{id}", method = RequestMethod.GET)
  479. // public String forUpdate(Model model, @PathVariable Integer id)
  480. // {
  481. // PrjAnnualbudget annualbudget = prjAnnualbudgetService.queryById(id);
  482. // model.addAttribute("annualbudget", annualbudget);
  483. //
  484. // String xmzxq = annualbudget.getXmzxq();
  485. // model.addAttribute("qs", xmzxq.substring(0, 4));
  486. // int index = xmzxq.trim().indexOf("至") + 2;
  487. // model.addAttribute("wc", xmzxq.substring(index, index + 4));
  488. //
  489. // PrjProject project = prjProjectService.queryById(annualbudget.getRws());
  490. // model.addAttribute("rwsys", project.getYsje());
  491. //
  492. // Map<String, String> paraMap = new HashMap<>();
  493. // paraMap.put("xm", annualbudget.getRws().toString());
  494. // paraMap.put("nf", annualbudget.getNf());
  495. // double ndczje = prjFeeschemeService.getNdFeeScheme(paraMap);
  496. // model.addAttribute("ndczje", ndczje);
  497. //
  498. //
  499. // return "annualbudget/update_annualbudget";
  500. // }
  501. /**
  502. * 编辑数据
  503. *
  504. * @return
  505. */
  506. @RequestMapping(value = "/forUpdate/{id}", method = RequestMethod.GET)
  507. public String forUpdate(Model model, @PathVariable Integer id)
  508. {
  509. PrjAnnualbudget annualbudget = prjAnnualbudgetService.queryById(id);
  510. model.addAttribute("annualbudget", annualbudget);
  511. String xmzxq = annualbudget.getXmzxq();
  512. model.addAttribute("qs", xmzxq.substring(0, 4));
  513. int index = xmzxq.trim().indexOf("至") + 2;
  514. model.addAttribute("wc", xmzxq.substring(index, index + 4));
  515. PrjProject project = prjProjectService.queryById(annualbudget.getRws());
  516. model.addAttribute("rwsys", project.getYsje());
  517. Map<String, String> paraMap = new HashMap<>();
  518. if("政府类项目".equals(annualbudget.getXmlxmc())) {
  519. List<Integer> nfList = prjFeeschemeService.getYearList(annualbudget.getRws());
  520. paraMap.put("xm", annualbudget.getRws().toString());
  521. paraMap.put("nf", nfList.get(nfList.size() - 1).toString());
  522. }else{
  523. paraMap.put("xm", annualbudget.getRws().toString());
  524. paraMap.put("nf", annualbudget.getNf());
  525. }
  526. Double ndczje;
  527. if("国网公司科技项目".equals((annualbudget.getXmlxmc()))){
  528. ndczje= prjFeeschemeService.getNdFeeSchemeofDKY(paraMap);
  529. }else {
  530. ndczje= prjFeeschemeService.getNdFeeScheme(paraMap);
  531. }
  532. model.addAttribute("ndczje", ndczje);
  533. return "annualbudget/update_annualbudget";
  534. }
  535. /**
  536. * 查看数据
  537. *
  538. * @return
  539. */
  540. @RequestMapping(value = "/forView/{id}", method = RequestMethod.GET)
  541. public String forView(Model model, @PathVariable Integer id)
  542. {
  543. PrjAnnualbudget annualbudget = prjAnnualbudgetService.queryById(id);
  544. model.addAttribute("annualbudget", annualbudget);
  545. PrjProject project = prjProjectService.queryById(annualbudget.getRws());
  546. model.addAttribute("rwsys", project.getYsje());
  547. Map<String, String> paraMap = new HashMap<>();
  548. if("政府类项目".equals(annualbudget.getXmlxmc())) {
  549. List<Integer> nfList = prjFeeschemeService.getYearList(annualbudget.getRws());
  550. paraMap.put("xm", annualbudget.getRws().toString());
  551. paraMap.put("nf", nfList.get(nfList.size() - 1).toString());
  552. }else{
  553. paraMap.put("xm", annualbudget.getRws().toString());
  554. paraMap.put("nf", annualbudget.getNf());
  555. }
  556. Double ndczje;
  557. if ("国网公司科技项目".equals(annualbudget.getXmlxmc())){
  558. ndczje = prjFeeschemeService.getNdFeeSchemeofDKY(paraMap);
  559. }else {
  560. ndczje = prjFeeschemeService.getNdFeeScheme(paraMap);
  561. }
  562. model.addAttribute("ndczje", ndczje);
  563. return "annualbudget/view_annualbudget";
  564. }
  565. /**
  566. * 查看数据(根据任务书ID)
  567. *
  568. * @return
  569. */
  570. @RequestMapping(value = "/forNdysView/{rws}", method = RequestMethod.GET)
  571. public String forNdysView(Model model, @PathVariable Integer rws)
  572. {
  573. PrjAnnualbudget annualbudget = prjAnnualbudgetService.queryByRws(rws);
  574. model.addAttribute("annualbudget", annualbudget);
  575. return "annualbudget/view_annualbudget";
  576. }
  577. /**
  578. * 新建数据(提交审批)
  579. *
  580. * @return
  581. */
  582. @RequestMapping(value = "/forApproveAdd", method = RequestMethod.GET)
  583. public String forApproveAdd(Model model)
  584. {
  585. //部门主任岗位
  586. Map<String, String> paraMap = new HashMap<>();
  587. // paraMap.put("postName", "部门主任");
  588. paraMap.put("postName", "科技项目管理专责");
  589. SysPostInfo postInfo = sysPostInfoService.getSysPostInfo(paraMap);
  590. if(postInfo == null)
  591. postInfo = new SysPostInfo();
  592. model.addAttribute("postInfo", postInfo);
  593. //系统当前用户
  594. SysUserInfo userInfo = getSysUserInfo();
  595. model.addAttribute("userInfo", userInfo);
  596. return "annualbudget/add_approve";
  597. }
  598. /**
  599. * 更新审批状态
  600. *
  601. * @return
  602. */
  603. @ResponseBody
  604. @RequestMapping(value = "/updateSpzt", method = RequestMethod.POST)
  605. public BaseResult updateSpzt(@RequestBody String strData)
  606. {
  607. PrjAnnualbudget annualbudget = JsonTool.parseObject(strData, PrjAnnualbudget.class);
  608. int num = prjAnnualbudgetService.updateSpzt(annualbudget);
  609. if (num > 0) {
  610. return BaseResult.success("保存成功!");
  611. }
  612. else {
  613. return BaseResult.failure("保存失败!");
  614. }
  615. }
  616. /**
  617. * 编辑数据(提交审批)
  618. *
  619. * @return
  620. */
  621. @RequestMapping(value = "/forApproveUpdate/{xmid}", method = RequestMethod.GET)
  622. public String forApproveUpdate(Model model, @PathVariable Integer xmid, @RequestParam String spzt)
  623. {
  624. //系统当前用户
  625. SysUserInfo userInfo = getSysUserInfo();
  626. model.addAttribute("userInfo", userInfo);
  627. Map<String, String> paraMap1 = new HashMap<>();
  628. paraMap1.put("xmid", xmid.toString());
  629. paraMap1.put("zt", spzt);
  630. paraMap1.put("wc", "0");
  631. List<PrjApproverecord> approveList = prjApproverecordService.getApproveByXmId(paraMap1);
  632. if(approveList.size() > 0)
  633. model.addAttribute("approveInfo", approveList.get(0));
  634. else {
  635. PrjAnnualbudget annualbudget = prjAnnualbudgetService.queryById(xmid);
  636. PrjApproverecord approveInfo = new PrjApproverecord();
  637. approveInfo.setXmid(xmid);
  638. approveInfo.setXm(annualbudget.getMc());
  639. approveInfo.setZt("数据不匹配");
  640. model.addAttribute("approveInfo", approveInfo);
  641. }
  642. // List<CyyEntriy> cyyList =cyyService.queryByAccount(String.valueOf(userInfo.getUserId()));
  643. // model.addAttribute("cyyList", cyyList);
  644. if(spzt.contains("未提交")) {
  645. Map<String, String> paraMap2 = new HashMap<>();
  646. paraMap2.put("postName", "科技项目管理专责");
  647. SysPostInfo postInfo = sysPostInfoService.getSysPostInfo(paraMap2);
  648. if(postInfo == null)
  649. postInfo = new SysPostInfo();
  650. model.addAttribute("postInfo", postInfo);
  651. return "annualbudget/back_approve";
  652. } else {
  653. return "annualbudget/finish_approve";
  654. }
  655. }
  656. //初始化下拉
  657. @RequestMapping(value = "/init_cyy/{userId}", method = RequestMethod.GET)
  658. @ResponseBody
  659. public List<CyyEntriy> init_cyy(Model model,@PathVariable Integer userId) {
  660. List<CyyEntriy> cyyList =cyyService.queryByAccount(String.valueOf(userId));
  661. return cyyList;
  662. }
  663. /**
  664. * 审批列表
  665. * @return
  666. */
  667. @RequestMapping(value = "/forApproveList", method = RequestMethod.GET)
  668. public String forApproveList() {
  669. return "annualbudget/list_approve";
  670. }
  671. /**
  672. * 新建数据
  673. *
  674. * @return
  675. */
  676. @RequestMapping(value = "/forApplyAdd/{id}", method = RequestMethod.GET)
  677. public String forApplyAdd(Model model, @PathVariable Integer id)
  678. {
  679. //登录用户
  680. SysUserInfo userInfo = getSysUserInfo();
  681. model.addAttribute("userInfo", userInfo);
  682. //当前预算
  683. PrjAnnualbudget annualbudget = this.prjAnnualbudgetService.queryById(id);
  684. model.addAttribute("annualbudget", annualbudget);
  685. //项目总体费用信息
  686. StaBudgetapproval xmFyInfo = staBudgetapprovalService.getXmFyInfo(id);
  687. if(xmFyInfo == null) {
  688. xmFyInfo = new StaBudgetapproval();
  689. xmFyInfo.setSqje(0.0);
  690. xmFyInfo.setBzje(0.0);
  691. } else {
  692. if(xmFyInfo.getSqje() == null){
  693. xmFyInfo.setSqje(0.0);
  694. }else if(xmFyInfo.getBzje()==null){
  695. xmFyInfo.setBzje(xmFyInfo.getSqje());
  696. }
  697. if(xmFyInfo.getBzje() == null)
  698. xmFyInfo.setBzje(0.0);
  699. }
  700. xmFyInfo.setYsje(annualbudget.getYsje());
  701. model.addAttribute("xmFyInfo", xmFyInfo);
  702. return "annualbudget/add_apply";
  703. }
  704. /**
  705. * 导出列表到excel
  706. * @param response
  707. */
  708. @ApiOperation(value = "导出全部数据到excel", notes = "导出全部数据到excel")
  709. @RequestMapping(value = "/exportExcel", method = RequestMethod.GET)
  710. @ResponseBody
  711. public void exportExcel(HttpServletResponse response) {
  712. List<PrjAnnualbudget> annualBudgets = prjAnnualbudgetService.getNdysList(new HashMap<>());
  713. List<String> listName = Arrays.asList("名称", "审批状态", "ERP编号", "项目类型", "可研报告", "任务书", "年份", "创建人", "创建时间", "说明");
  714. List<Map<String, String>> list = new ArrayList<>();
  715. for (PrjAnnualbudget budget : annualBudgets) {
  716. Map<String, String> map = new HashMap<>();
  717. map.put("名称", budget.getMc());
  718. map.put("审批状态", budget.getSpzt());
  719. map.put("ERP编号", budget.getErpbh());
  720. map.put("项目类型", budget.getXmlxmc());
  721. map.put("可研报告", budget.getXmmc());
  722. map.put("任务书", budget.getRwsmc());
  723. map.put("年份", budget.getNf());
  724. map.put("申请人", budget.getSqrxm());
  725. map.put("申请时间", budget.getSqsj().toString());
  726. map.put("说明", budget.getSm());
  727. list.add(map);
  728. }
  729. ExcelPoiUtil.excelPort("年度预算", listName, list, null, response);
  730. }
  731. }