CognizanceApiController.java 39 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332
  1. package com.goafanti.cognizance.controller;
  2. import java.io.IOException;
  3. import java.text.ParseException;
  4. import java.util.Calendar;
  5. import java.util.List;
  6. import java.util.UUID;
  7. import javax.annotation.Resource;
  8. import javax.servlet.http.HttpServletRequest;
  9. import javax.validation.Valid;
  10. import org.springframework.beans.BeanUtils;
  11. import org.springframework.stereotype.Controller;
  12. import org.springframework.validation.BindingResult;
  13. import org.springframework.web.bind.annotation.RequestMapping;
  14. import org.springframework.web.bind.annotation.RequestMethod;
  15. import org.springframework.web.multipart.MultipartFile;
  16. import com.goafanti.cognizance.bo.ActivityNumberBo;
  17. import com.goafanti.cognizance.bo.AnnualReportBo;
  18. import com.goafanti.cognizance.bo.CognizanceDetailBo;
  19. import com.goafanti.cognizance.bo.InputApplyCognizance;
  20. import com.goafanti.cognizance.bo.InputOrgActivity;
  21. import com.goafanti.cognizance.bo.InputOrgActivityCost;
  22. import com.goafanti.cognizance.bo.InputOrgAnnualReport;
  23. import com.goafanti.cognizance.bo.InputOrgCognizance;
  24. import com.goafanti.cognizance.bo.InputOrgFinance;
  25. import com.goafanti.cognizance.bo.InputOrgHonorDatum;
  26. import com.goafanti.cognizance.bo.InputOrgIntellectualProperty;
  27. import com.goafanti.cognizance.bo.InputOrgRatepay;
  28. import com.goafanti.cognizance.bo.InputOrgStandard;
  29. import com.goafanti.cognizance.bo.InputOrgTechAchievement;
  30. import com.goafanti.cognizance.bo.InputOrgTechCenter;
  31. import com.goafanti.cognizance.bo.InputOrgTechCenterDetail;
  32. import com.goafanti.cognizance.bo.InputOrgTechProduct;
  33. import com.goafanti.cognizance.service.OrgActivityCostService;
  34. import com.goafanti.cognizance.service.OrgActivityService;
  35. import com.goafanti.cognizance.service.OrgAnnualReportService;
  36. import com.goafanti.cognizance.service.OrgCognizanceLogService;
  37. import com.goafanti.cognizance.service.OrgCognizanceService;
  38. import com.goafanti.cognizance.service.OrgFinanceService;
  39. import com.goafanti.cognizance.service.OrgHonorDatumService;
  40. import com.goafanti.cognizance.service.OrgIntellectualPropertyService;
  41. import com.goafanti.cognizance.service.OrgRatepayService;
  42. import com.goafanti.cognizance.service.OrgStandardService;
  43. import com.goafanti.cognizance.service.OrgTechAchievementService;
  44. import com.goafanti.cognizance.service.OrgTechCenterDetailService;
  45. import com.goafanti.cognizance.service.OrgTechCenterService;
  46. import com.goafanti.cognizance.service.OrgTechProductService;
  47. import com.goafanti.common.bo.Result;
  48. import com.goafanti.common.constant.AFTConstants;
  49. import com.goafanti.common.constant.ErrorConstants;
  50. import com.goafanti.common.controller.CertifyApiController;
  51. import com.goafanti.common.enums.CognizanceApplyFields;
  52. import com.goafanti.common.enums.OrgActivityFields;
  53. import com.goafanti.common.enums.OrgAnnualReportFields;
  54. import com.goafanti.common.enums.OrgCognizanceFields;
  55. import com.goafanti.common.enums.OrgCognizanceStatus;
  56. import com.goafanti.common.enums.OrgFinanceFields;
  57. import com.goafanti.common.enums.OrgHonorDatumFields;
  58. import com.goafanti.common.enums.OrgIntellectualPropertyFields;
  59. import com.goafanti.common.enums.OrgRatepayFields;
  60. import com.goafanti.common.enums.OrgStandardFields;
  61. import com.goafanti.common.enums.OrgTechAchievementFields;
  62. import com.goafanti.common.enums.OrgTechCenterDetailFields;
  63. import com.goafanti.common.enums.OrgTechCenterFields;
  64. import com.goafanti.common.enums.OrgTechProductFields;
  65. import com.goafanti.common.model.OrgActivity;
  66. import com.goafanti.common.model.OrgActivityCost;
  67. import com.goafanti.common.model.OrgAnnualReport;
  68. import com.goafanti.common.model.OrgCognizance;
  69. import com.goafanti.common.model.OrgCognizanceLog;
  70. import com.goafanti.common.model.OrgFinance;
  71. import com.goafanti.common.model.OrgHonorDatum;
  72. import com.goafanti.common.model.OrgIntellectualProperty;
  73. import com.goafanti.common.model.OrgRatepay;
  74. import com.goafanti.common.model.OrgStandard;
  75. import com.goafanti.common.model.OrgTechAchievement;
  76. import com.goafanti.common.model.OrgTechCenter;
  77. import com.goafanti.common.model.OrgTechCenterDetail;
  78. import com.goafanti.common.model.OrgTechProduct;
  79. import com.goafanti.common.model.User;
  80. import com.goafanti.common.utils.DateUtils;
  81. import com.goafanti.common.utils.FileUtils;
  82. import com.goafanti.common.utils.LoggerUtils;
  83. import com.goafanti.common.utils.StringUtils;
  84. import com.goafanti.core.shiro.token.TokenManager;
  85. import com.goafanti.user.service.OrganizationIdentityService;
  86. import com.goafanti.user.service.UserService;
  87. @Controller
  88. @RequestMapping(value = "/api/user/cognizance")
  89. public class CognizanceApiController extends CertifyApiController {
  90. @Resource
  91. private UserService userService;
  92. @Resource
  93. private OrgStandardService orgStandardService;
  94. @Resource
  95. private OrgActivityService orgActivityService;
  96. @Resource
  97. private OrgIntellectualPropertyService orgIntellectualPropertyService;
  98. @Resource
  99. private OrganizationIdentityService organizationIdentityService;
  100. @Resource
  101. private OrgTechProductService orgTechProductService;
  102. @Resource
  103. private OrgActivityCostService orgActivityCostService;
  104. @Resource
  105. private OrgRatepayService orgRatepayService;
  106. @Resource
  107. private OrgFinanceService orgFinanceService;
  108. @Resource
  109. private OrgTechAchievementService orgTechAchievementService;
  110. @Resource
  111. private OrgHonorDatumService orgHonorDatumService;
  112. @Resource
  113. private OrgTechCenterService orgTechCenterService;
  114. @Resource
  115. private OrgTechCenterDetailService orgTechCenterDetailService;
  116. @Resource
  117. private OrgCognizanceService orgCognizanceService;
  118. @Resource
  119. private OrgAnnualReportService orgAnnualReportService;
  120. @Resource
  121. private OrgCognizanceLogService orgCognizanceLogService;
  122. /**
  123. * 企业研究开发活动情况表入口
  124. *
  125. * @param activityNumber
  126. * @param activityName
  127. * @param startDate
  128. * @param endDate
  129. * @param pageNo
  130. * @param pageSize
  131. * @return
  132. * @throws ParseException
  133. */
  134. @RequestMapping(value = "/activityList", method = RequestMethod.POST)
  135. public Result activityList(String activityNumber, String activityName, String startDateFormattedDate,
  136. String endDateFormattedDate, String pageNo, String pageSize) throws ParseException {
  137. Result res = new Result();
  138. if (!checkUserLogin(res)) {
  139. return res;
  140. }
  141. Integer pNo = 1;
  142. Integer pSize = 10;
  143. if (StringUtils.isNumeric(pageSize)) {
  144. pSize = Integer.parseInt(pageSize);
  145. }
  146. if (StringUtils.isNumeric(pageNo)) {
  147. pNo = Integer.parseInt(pageNo);
  148. }
  149. res.setData(orgActivityService.listOrgActivity(activityNumber, activityName, startDateFormattedDate,
  150. endDateFormattedDate, pNo, pSize, TokenManager.getUserId()));
  151. return res;
  152. }
  153. /**
  154. * 企业研究开发活动情况新增、修改
  155. *
  156. * @param orgActivity
  157. * @return
  158. * @throws ParseException
  159. */
  160. @RequestMapping(value = "/activity", method = RequestMethod.POST)
  161. public Result activity(@Valid InputOrgActivity orgActivity, BindingResult bindingResult,
  162. String startDateFormattedDate, String endDateFormattedDate) throws ParseException {
  163. Result res = new Result();
  164. if (bindingResult.hasErrors()) {
  165. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  166. OrgActivityFields.getFieldDesc(bindingResult.getFieldError().getField())));
  167. return res;
  168. }
  169. if (!checkUserLogin(res)) {
  170. return res;
  171. }
  172. User curUser = TokenManager.getUserToken();
  173. if (!checkCertify(res, curUser)) {
  174. return res;
  175. }
  176. if (!StringUtils.isBlank(startDateFormattedDate)) {
  177. try {
  178. orgActivity.setStartDate(DateUtils.parseDate(startDateFormattedDate, AFTConstants.YYYYMMDD));
  179. } catch (ParseException e) {
  180. }
  181. }
  182. if (StringUtils.isBlank(endDateFormattedDate)) {
  183. try {
  184. orgActivity.setEndDate(DateUtils.parseDate(endDateFormattedDate, AFTConstants.YYYYMMDD));
  185. } catch (ParseException e) {
  186. }
  187. }
  188. OrgActivity oa = new OrgActivity();
  189. BeanUtils.copyProperties(orgActivity, oa);
  190. oa.setDeletedSign(0);
  191. if (StringUtils.isBlank(oa.getId())) {
  192. oa.setId(UUID.randomUUID().toString());
  193. oa.setUid(TokenManager.getUserId());
  194. orgActivityService.insert(oa);
  195. } else {
  196. orgActivityService.updateOrgActivity(oa);
  197. }
  198. res.setData(oa);
  199. return res;
  200. }
  201. /**
  202. * 企业年度研究开发费用结构明细表列表入口
  203. *
  204. * @return
  205. * @throws ParseException
  206. */
  207. @RequestMapping(value = "/activityCostList", method = RequestMethod.POST)
  208. public Result activityCostList(String activityNumber, String startDateFormattedDate, String endDateFormattedDate,
  209. String pageNo, String pageSize) throws ParseException {
  210. Result res = new Result();
  211. if (!checkUserLogin(res)) {
  212. return res;
  213. }
  214. Integer pNo = 1;
  215. Integer pSize = 10;
  216. if (StringUtils.isNumeric(pageSize)) {
  217. pSize = Integer.parseInt(pageSize);
  218. }
  219. if (StringUtils.isNumeric(pageNo)) {
  220. pNo = Integer.parseInt(pageNo);
  221. }
  222. res.setData(orgActivityCostService.listOrgActivityCost(activityNumber, startDateFormattedDate,
  223. endDateFormattedDate, pNo, pSize, TokenManager.getUserId()));
  224. return res;
  225. }
  226. /**
  227. * 企业年度研究开发费用结构明细表(新增+修改)
  228. *
  229. * @return
  230. * @throws ParseException
  231. */
  232. @RequestMapping(value = "/activityCost", method = RequestMethod.POST)
  233. public Result activityCost(@Valid InputOrgActivityCost orgActivityCost, BindingResult bindingResult,
  234. String signDateFormattedDate) throws ParseException {
  235. Result res = new Result();
  236. if (bindingResult.hasErrors()) {
  237. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  238. OrgActivityFields.getFieldDesc(bindingResult.getFieldError().getField())));
  239. return res;
  240. }
  241. if (!checkUserLogin(res)) {
  242. return res;
  243. }
  244. User curUser = TokenManager.getUserToken();
  245. if (!checkCertify(res, curUser)) {
  246. return res;
  247. }
  248. if (!StringUtils.isBlank(signDateFormattedDate)) {
  249. orgActivityCost.setSignDate(DateUtils.parseDate(signDateFormattedDate, AFTConstants.YYYYMMDD));
  250. }
  251. OrgActivityCost oac = new OrgActivityCost();
  252. BeanUtils.copyProperties(orgActivityCost, oac);
  253. if (StringUtils.isBlank(oac.getId())) {
  254. if (null != orgActivityCostService.selectOrgActivityCostByUidAndAid(oac.getAid(),
  255. TokenManager.getUserId())) {
  256. res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "该研究项目费用详情已录入!"));
  257. return res;
  258. }
  259. OrgActivity ac = orgActivityService.selectOrgActivityByPrimaryKey(orgActivityCost.getAid());
  260. oac.setStartDate(ac.getStartDate());
  261. oac.setEndDate(ac.getEndDate());
  262. oac.setId(UUID.randomUUID().toString());
  263. oac.setUid(TokenManager.getUserId());
  264. oac.setDeletedSign(0);
  265. orgActivityCostService.insert(oac);
  266. } else {
  267. orgActivityCostService.updateByPrimaryKeySelective(oac);
  268. }
  269. return res;
  270. }
  271. /**
  272. * 企业参与国家标准或行业标准制定情况明细入口
  273. *
  274. * @return
  275. */
  276. @RequestMapping(value = "/standard", method = RequestMethod.POST)
  277. public Result standard(String standardName, String standardNumber, Integer standardLevel, Integer participateWay,
  278. String pageNo, String pageSize) {
  279. Result res = new Result();
  280. if (!checkUserLogin(res)) {
  281. return res;
  282. }
  283. Integer pNo = 1;
  284. Integer pSize = 10;
  285. if (StringUtils.isNumeric(pageSize)) {
  286. pSize = Integer.parseInt(pageSize);
  287. }
  288. if (StringUtils.isNumeric(pageNo)) {
  289. pNo = Integer.parseInt(pageNo);
  290. }
  291. res.setData(orgStandardService.listOrgStandard(standardName, standardNumber, standardLevel, participateWay, pNo,
  292. pSize, TokenManager.getUserId()));
  293. return res;
  294. }
  295. /**
  296. * 企业参与国家标准或行业标准制定情况明细修改保存
  297. *
  298. * @return
  299. */
  300. @RequestMapping(value = "/developStandard", method = RequestMethod.POST)
  301. public Result developStandard(@Valid InputOrgStandard orgStandard, BindingResult bindingResult) {
  302. Result res = new Result();
  303. if (bindingResult.hasErrors()) {
  304. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  305. OrgStandardFields.getFieldDesc(bindingResult.getFieldError().getField())));
  306. return res;
  307. }
  308. if (!checkUserLogin(res)) {
  309. return res;
  310. }
  311. User curUser = TokenManager.getUserToken();
  312. if (!checkCertify(res, curUser)) {
  313. return res;
  314. }
  315. OrgStandard os = new OrgStandard();
  316. BeanUtils.copyProperties(orgStandard, os);
  317. if (StringUtils.isBlank(os.getId())) {
  318. os.setId(UUID.randomUUID().toString());
  319. os.setUid(TokenManager.getUserId());
  320. os.setDeletedSign(0);
  321. Calendar now = Calendar.getInstance();
  322. now.set(Calendar.MILLISECOND, 0);
  323. os.setCreateTime(now.getTime());
  324. orgStandardService.insert(os);
  325. } else {
  326. orgStandardService.updateByPrimaryKeySelective(os);
  327. }
  328. res.setData(orgStandard);
  329. return res;
  330. }
  331. /**
  332. * 用户端录入+修改知识产权信息(专利+软著)
  333. *
  334. * @return
  335. * @throws ParseException
  336. */
  337. @RequestMapping(value = "/intellectual", method = RequestMethod.POST)
  338. public Result intellectual(@Valid InputOrgIntellectualProperty orgIntellectualProperty, BindingResult bindingResult,
  339. String authorizationDateFormattedDate) {
  340. Result res = new Result();
  341. if (bindingResult.hasErrors()) {
  342. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  343. OrgIntellectualPropertyFields.getFieldDesc(bindingResult.getFieldError().getField())));
  344. return res;
  345. }
  346. if (!checkUserLogin(res)) {
  347. return res;
  348. }
  349. User curUser = TokenManager.getUserToken();
  350. if (!checkCertify(res, curUser)) {
  351. return res;
  352. }
  353. if (!StringUtils.isBlank(authorizationDateFormattedDate)) {
  354. try {
  355. orgIntellectualProperty
  356. .setAuthorizationDate(DateUtils.parseDate(authorizationDateFormattedDate, AFTConstants.YYYYMMDD));
  357. } catch (ParseException e) {
  358. }
  359. }
  360. OrgIntellectualProperty oip = new OrgIntellectualProperty();
  361. BeanUtils.copyProperties(orgIntellectualProperty, oip);
  362. if (StringUtils.isBlank(oip.getId())) {
  363. oip.setId(UUID.randomUUID().toString());
  364. oip.setUid(TokenManager.getUserId());
  365. oip.setEvaluationCategory((oip.getCatagory() >= 2 && oip.getCatagory() <= 4) ? 1 : 0);
  366. oip.setDeletedSign(0);
  367. res.setData(orgIntellectualPropertyService.insert(oip));
  368. } else {
  369. oip.setEvaluationCategory(oip.getCatagory() <= 2 ? 1 : 0);
  370. res.setData(orgIntellectualPropertyService.updateByPrimaryKeySelective(oip));
  371. }
  372. return res;
  373. }
  374. /**
  375. * 用户知识产权列表
  376. *
  377. * @param pageNo
  378. * @param pageSize
  379. * @return
  380. */
  381. @RequestMapping(value = "/intellectualList", method = RequestMethod.GET)
  382. public Result intellectualList(String pageNo, String pageSize) {
  383. Result res = new Result();
  384. if (!checkUserLogin(res)) {
  385. return res;
  386. }
  387. Integer pNo = 1;
  388. Integer pSize = 10;
  389. if (StringUtils.isNumeric(pageSize)) {
  390. pSize = Integer.parseInt(pageSize);
  391. }
  392. if (StringUtils.isNumeric(pageNo)) {
  393. pNo = Integer.parseInt(pageNo);
  394. }
  395. res.setData(orgIntellectualPropertyService.listIntellectual(pNo, pSize, TokenManager.getUserId()));
  396. return res;
  397. }
  398. /**
  399. * 上年度高新技术产品(服务)情况列表
  400. *
  401. * @param pageNo
  402. * @param pageSize
  403. * @return
  404. */
  405. @RequestMapping(value = "/techProductList", method = RequestMethod.GET)
  406. public Result techProductList(String pageNo, String pageSize) {
  407. Result res = new Result();
  408. if (!checkUserLogin(res)) {
  409. return res;
  410. }
  411. Integer pNo = 1;
  412. Integer pSize = 10;
  413. if (StringUtils.isNumeric(pageSize)) {
  414. pSize = Integer.parseInt(pageSize);
  415. }
  416. if (StringUtils.isNumeric(pageNo)) {
  417. pNo = Integer.parseInt(pageNo);
  418. }
  419. res.setData(orgTechProductService.listTechProduct(pNo, pSize, TokenManager.getUserId()));
  420. return res;
  421. }
  422. /**
  423. * 上年度高新技术产品(服务)情况(新增+修改)
  424. *
  425. * @param orgTechProduct
  426. * @return
  427. */
  428. @RequestMapping(value = "/techProduct", method = RequestMethod.POST)
  429. public Result techProduct(@Valid InputOrgTechProduct orgTechProduct, BindingResult bindingResult) {
  430. Result res = new Result();
  431. if (bindingResult.hasErrors()) {
  432. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  433. OrgTechProductFields.getFieldDesc(bindingResult.getFieldError().getField())));
  434. return res;
  435. }
  436. if (!checkUserLogin(res)) {
  437. return res;
  438. }
  439. User curUser = TokenManager.getUserToken();
  440. if (!checkCertify(res, curUser)) {
  441. return res;
  442. }
  443. OrgTechProduct otp = new OrgTechProduct();
  444. BeanUtils.copyProperties(orgTechProduct, otp);
  445. if (StringUtils.isBlank(otp.getId())) {
  446. otp.setId(UUID.randomUUID().toString());
  447. otp.setUid(TokenManager.getUserId());
  448. otp.setDeletedSign(0);
  449. Calendar now = Calendar.getInstance();
  450. now.set(Calendar.MILLISECOND, 0);
  451. otp.setCreateTime(now.getTime());
  452. otp.setYear(Calendar.getInstance().get(Calendar.YEAR) - 1);
  453. orgTechProductService.insert(otp);
  454. } else {
  455. orgTechProductService.updateByPrimaryKeySelective(otp);
  456. }
  457. res.setData(otp);
  458. return res;
  459. }
  460. /**
  461. * 企业纳税申报信息入口
  462. *
  463. * @return
  464. */
  465. @RequestMapping(value = "/ratepay", method = RequestMethod.GET)
  466. public Result ratepay(Integer year, String pageNo, String pageSize) {
  467. Result res = new Result();
  468. if (!checkUserLogin(res)) {
  469. return res;
  470. }
  471. Integer pNo = 1;
  472. Integer pSize = 10;
  473. if (StringUtils.isNumeric(pageSize)) {
  474. pSize = Integer.parseInt(pageSize);
  475. }
  476. if (StringUtils.isNumeric(pageNo)) {
  477. pNo = Integer.parseInt(pageNo);
  478. }
  479. res.setData(orgRatepayService.listOrgRatepay(year, pNo, pSize, TokenManager.getUserId()));
  480. return res;
  481. }
  482. /**
  483. * 企业纳税申报信息录入+修改
  484. */
  485. @RequestMapping(value = "/disposeRatepay", method = RequestMethod.POST)
  486. public Result disposeRatepay(@Valid InputOrgRatepay orgRatepay, BindingResult bindingResult) {
  487. Result res = new Result();
  488. if (bindingResult.hasErrors()) {
  489. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  490. OrgRatepayFields.getFieldDesc(bindingResult.getFieldError().getField())));
  491. return res;
  492. }
  493. if (!checkUserLogin(res)) {
  494. return res;
  495. }
  496. User curUser = TokenManager.getUserToken();
  497. if (!checkCertify(res, curUser)) {
  498. return res;
  499. }
  500. if (null == orgRatepay.getYear()) {
  501. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份"));
  502. return res;
  503. }
  504. OrgRatepay rate = new OrgRatepay();
  505. BeanUtils.copyProperties(orgRatepay, rate);
  506. if (StringUtils.isBlank(rate.getId())) {
  507. if (null == orgRatepayService.selectRatepayByUidAndYear(TokenManager.getUserId(), rate.getYear())) {
  508. rate.setId(UUID.randomUUID().toString());
  509. rate.setUid(TokenManager.getUserId());
  510. rate.setDeletedSign(0);
  511. orgRatepayService.insert(rate);
  512. } else {
  513. res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度纳税申报表已录入!"));
  514. return res;
  515. }
  516. } else {
  517. orgRatepayService.updateByPrimaryKeySelective(rate);
  518. }
  519. return res;
  520. }
  521. /**
  522. * 财务报表信息入口
  523. *
  524. * @return
  525. */
  526. @RequestMapping(value = "/finance", method = RequestMethod.GET)
  527. public Result finance(Integer year, String pageNo, String pageSize) {
  528. Result res = new Result();
  529. if (!checkUserLogin(res)) {
  530. return res;
  531. }
  532. Integer pNo = 1;
  533. Integer pSize = 10;
  534. if (StringUtils.isNumeric(pageSize)) {
  535. pSize = Integer.parseInt(pageSize);
  536. }
  537. if (StringUtils.isNumeric(pageNo)) {
  538. pNo = Integer.parseInt(pageNo);
  539. }
  540. res.setData(orgFinanceService.listFinance(year, pNo, pSize, TokenManager.getUserId()));
  541. return res;
  542. }
  543. /**
  544. * 财务报表录入+修改
  545. *
  546. * @param orgFinance
  547. * @return
  548. */
  549. @RequestMapping(value = "/disposeFinance", method = RequestMethod.POST)
  550. public Result disposeFinance(@Valid InputOrgFinance orgFinance, BindingResult bindingResult) {
  551. Result res = new Result();
  552. if (bindingResult.hasErrors()) {
  553. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  554. OrgFinanceFields.getFieldDesc(bindingResult.getFieldError().getField())));
  555. return res;
  556. }
  557. if (!checkUserLogin(res)) {
  558. return res;
  559. }
  560. User curUser = TokenManager.getUserToken();
  561. if (!checkCertify(res, curUser)) {
  562. return res;
  563. }
  564. if (null == orgFinance.getYear()) {
  565. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份"));
  566. return res;
  567. }
  568. OrgFinance of = new OrgFinance();
  569. BeanUtils.copyProperties(orgFinance, of);
  570. if (StringUtils.isBlank(of.getId())) {
  571. if (null == orgFinanceService.selectFinanceByUidAndYear(TokenManager.getUserId(), of.getYear())) {
  572. of.setId(UUID.randomUUID().toString());
  573. of.setUid(TokenManager.getUserId());
  574. of.setDeletedSign(0);
  575. orgFinanceService.insert(of);
  576. } else {
  577. res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度财务报表已录入!"));
  578. return res;
  579. }
  580. } else {
  581. orgFinanceService.updateByPrimaryKeySelective(of);
  582. }
  583. return res;
  584. }
  585. /**
  586. * 获取当前用户已录入项目标号列表
  587. *
  588. * @param uid
  589. * @return
  590. */
  591. @RequestMapping(value = "/activityNumber", method = RequestMethod.GET)
  592. public Result listActivityNumber() {
  593. Result res = new Result();
  594. if (!checkUserLogin(res)) {
  595. return res;
  596. }
  597. List<ActivityNumberBo> activityNumberBo = orgActivityService
  598. .selectOrgActivityNumberBoByUid(TokenManager.getUserId());
  599. res.setData(activityNumberBo);
  600. return res;
  601. }
  602. /**
  603. * 高企相关材料上传
  604. *
  605. * @param req
  606. * @param sign
  607. * @return
  608. */
  609. @RequestMapping(value = "/upload", method = RequestMethod.POST)
  610. public Result cognizanceFile(HttpServletRequest req, String sign, String uid) {
  611. Result res = new Result();
  612. if (!checkAdminLogin(res)) {
  613. return res;
  614. }
  615. res.setData(handleFile(res, "/cognizance/", true, req, sign, uid));
  616. return res;
  617. }
  618. /**
  619. * 科技成果转化情况列表入口
  620. *
  621. * @param pageNo
  622. * @param pageSize
  623. * @return
  624. */
  625. @RequestMapping(value = "/achievementList", method = RequestMethod.GET)
  626. public Result achievementList(String pageNo, String pageSize) {
  627. Result res = new Result();
  628. if (!checkUserLogin(res)) {
  629. return res;
  630. }
  631. Integer pNo = 1;
  632. Integer pSize = 10;
  633. if (StringUtils.isNumeric(pageSize)) {
  634. pSize = Integer.parseInt(pageSize);
  635. }
  636. if (StringUtils.isNumeric(pageNo)) {
  637. pNo = Integer.parseInt(pageNo);
  638. }
  639. res.setData(orgTechAchievementService.listOrgTechAchievement(pNo, pSize, TokenManager.getUserId()));
  640. return res;
  641. }
  642. /**
  643. * 科技成果转化情况新增+修改
  644. *
  645. * @param achievement
  646. * @return
  647. * @throws ParseException
  648. */
  649. @RequestMapping(value = "/disposeAchievement", method = RequestMethod.POST)
  650. public Result disposeAchievement(@Valid InputOrgTechAchievement achievement, BindingResult bindingResult) {
  651. Result res = new Result();
  652. if (bindingResult.hasErrors()) {
  653. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  654. OrgTechAchievementFields.getFieldDesc(bindingResult.getFieldError().getField())));
  655. return res;
  656. }
  657. if (!checkUserLogin(res)) {
  658. return res;
  659. }
  660. User curUser = TokenManager.getUserToken();
  661. if (!checkCertify(res, curUser)) {
  662. return res;
  663. }
  664. OrgTechAchievement ota = new OrgTechAchievement();
  665. BeanUtils.copyProperties(achievement, ota);
  666. if (StringUtils.isBlank(ota.getId())) {
  667. ota.setId(UUID.randomUUID().toString());
  668. ota.setUid(TokenManager.getUserId());
  669. ota.setDeletedSign(0);
  670. orgTechAchievementService.insert(ota);
  671. } else {
  672. orgTechAchievementService.updateByPrimaryKeySelective(ota);
  673. }
  674. return res;
  675. }
  676. /**
  677. * 企业荣誉及其他证明材料列表入口
  678. *
  679. * @return
  680. */
  681. @RequestMapping(value = "/honorList", method = RequestMethod.GET)
  682. public Result honorList(String pageNo, String pageSize) {
  683. Result res = new Result();
  684. if (!checkUserLogin(res)) {
  685. return res;
  686. }
  687. Integer pNo = 1;
  688. Integer pSize = 10;
  689. if (StringUtils.isNumeric(pageSize)) {
  690. pSize = Integer.parseInt(pageSize);
  691. }
  692. if (StringUtils.isNumeric(pageNo)) {
  693. pNo = Integer.parseInt(pageNo);
  694. }
  695. res.setData(orgHonorDatumService.listOrgHonorDatum(pNo, pSize, TokenManager.getUserId()));
  696. return res;
  697. }
  698. /**
  699. * 企业荣誉及其他证明材料新增+修改
  700. *
  701. * @param achievement
  702. * @return
  703. * @throws ParseException
  704. */
  705. @RequestMapping(value = "/disposeHonor", method = RequestMethod.POST)
  706. public Result disposeHonor(@Valid InputOrgHonorDatum honor, BindingResult bindingResult,
  707. String issuingTimeFormattedDate) {
  708. Result res = new Result();
  709. if (bindingResult.hasErrors()) {
  710. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  711. OrgHonorDatumFields.getFieldDesc(bindingResult.getFieldError().getField())));
  712. return res;
  713. }
  714. if (!checkUserLogin(res)) {
  715. return res;
  716. }
  717. User curUser = TokenManager.getUserToken();
  718. if (!checkCertify(res, curUser)) {
  719. return res;
  720. }
  721. if (!StringUtils.isBlank(issuingTimeFormattedDate)) {
  722. try {
  723. honor.setIssuingTime(DateUtils.parseDate(issuingTimeFormattedDate, AFTConstants.YYYYMMDD));
  724. } catch (ParseException e) {
  725. }
  726. }
  727. OrgHonorDatum ohd = new OrgHonorDatum();
  728. BeanUtils.copyProperties(honor, ohd);
  729. if (StringUtils.isBlank(ohd.getId())) {
  730. ohd.setId(UUID.randomUUID().toString());
  731. ohd.setUid(TokenManager.getUserId());
  732. ohd.setDeletedSign(0);
  733. orgHonorDatumService.insert(ohd);
  734. } else {
  735. orgHonorDatumService.updateByPrimaryKeySelective(ohd);
  736. }
  737. return res;
  738. }
  739. /**
  740. * 技术中心入口
  741. *
  742. * @return
  743. */
  744. @RequestMapping(value = "/center", method = RequestMethod.GET)
  745. public Result center() {
  746. Result res = new Result();
  747. if (!checkUserLogin(res)) {
  748. return res;
  749. }
  750. User curUser = TokenManager.getUserToken();
  751. if (!checkCertify(res, curUser)) {
  752. return res;
  753. }
  754. res.setData(orgTechCenterService.selectOrgTechCenterByUid(TokenManager.getUserId()));
  755. return res;
  756. }
  757. /**
  758. * 技术中心新增+修改
  759. *
  760. * @return
  761. * @throws ParseException
  762. */
  763. @RequestMapping(value = "/disposeCenter", method = RequestMethod.POST)
  764. public Result disposeCenter(@Valid InputOrgTechCenter orgTechCenter, BindingResult bindingResult,
  765. String foundingTimeFormattedDate) {
  766. Result res = new Result();
  767. if (bindingResult.hasErrors()) {
  768. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  769. OrgTechCenterFields.getFieldDesc(bindingResult.getFieldError().getField())));
  770. return res;
  771. }
  772. if (!checkUserLogin(res)) {
  773. return res;
  774. }
  775. User curUser = TokenManager.getUserToken();
  776. if (!checkCertify(res, curUser)) {
  777. return res;
  778. }
  779. if (!StringUtils.isBlank(foundingTimeFormattedDate)) {
  780. try {
  781. orgTechCenter.setFoundingTime(DateUtils.parseDate(foundingTimeFormattedDate, AFTConstants.YYYYMMDD));
  782. } catch (ParseException e) {
  783. }
  784. }
  785. OrgTechCenter otc = new OrgTechCenter();
  786. BeanUtils.copyProperties(orgTechCenter, otc);
  787. if (StringUtils.isBlank(otc.getId())) {
  788. otc.setId(UUID.randomUUID().toString());
  789. otc.setUid(TokenManager.getUserId());
  790. otc.setDeletedSign(0);
  791. orgTechCenterService.insert(otc);
  792. } else {
  793. orgTechCenterService.updateByPrimaryKeySelective(otc);
  794. }
  795. return res;
  796. }
  797. /**
  798. * 技术中心明细列表入口
  799. *
  800. * @return
  801. */
  802. @RequestMapping(value = "/centerDetail", method = RequestMethod.POST)
  803. public Result centerDetail(String pageNo, String pageSize, String cid) {
  804. Result res = new Result();
  805. if (!checkUserLogin(res)) {
  806. return res;
  807. }
  808. User curUser = TokenManager.getUserToken();
  809. if (!checkCertify(res, curUser)) {
  810. return res;
  811. }
  812. Integer pNo = 1;
  813. Integer pSize = 10;
  814. if (StringUtils.isNumeric(pageSize)) {
  815. pSize = Integer.parseInt(pageSize);
  816. }
  817. if (StringUtils.isNumeric(pageNo)) {
  818. pNo = Integer.parseInt(pageNo);
  819. }
  820. res.setData(orgTechCenterDetailService.listOrgTechCenterDetail(pNo, pSize, cid));
  821. return res;
  822. }
  823. /**
  824. * 技术中心明细新增+修改
  825. *
  826. * @param orgTechCenterDetail
  827. * @param projectTimeFormattedDate
  828. * @param termTimeFormattedDate
  829. * @return
  830. * @throws ParseException
  831. */
  832. @RequestMapping(value = "/disposeCenterDetail", method = RequestMethod.POST)
  833. public Result disposeCenterDetail(@Valid InputOrgTechCenterDetail orgTechCenterDetail, BindingResult bindingResult, String projectTimeFormattedDate,
  834. String termStartTimeFormattedDate, String termEndTimeFormattedDate) {
  835. Result res = new Result();
  836. if (bindingResult.hasErrors()) {
  837. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  838. OrgTechCenterDetailFields.getFieldDesc(bindingResult.getFieldError().getField())));
  839. return res;
  840. }
  841. if (!checkUserLogin(res)) {
  842. return res;
  843. }
  844. User curUser = TokenManager.getUserToken();
  845. if (!checkCertify(res, curUser)) {
  846. return res;
  847. }
  848. if (!StringUtils.isBlank(projectTimeFormattedDate)) {
  849. try {
  850. orgTechCenterDetail.setProjectTime(DateUtils.parseDate(projectTimeFormattedDate, AFTConstants.YYYYMMDD));
  851. } catch (ParseException e) {
  852. }
  853. }
  854. if (!StringUtils.isBlank(termStartTimeFormattedDate)) {
  855. try {
  856. orgTechCenterDetail.setTermStartTime(DateUtils.parseDate(termStartTimeFormattedDate, AFTConstants.YYYYMMDD));
  857. } catch (ParseException e) {
  858. }
  859. }
  860. if (!StringUtils.isBlank(termEndTimeFormattedDate)) {
  861. try {
  862. orgTechCenterDetail.setTermEndTime(DateUtils.parseDate(termEndTimeFormattedDate, AFTConstants.YYYYMMDD));
  863. } catch (ParseException e) {
  864. }
  865. }
  866. OrgTechCenterDetail otcd = new OrgTechCenterDetail();
  867. BeanUtils.copyProperties(orgTechCenterDetail, otcd);
  868. if (StringUtils.isBlank(otcd.getId())) {
  869. otcd.setId(UUID.randomUUID().toString());
  870. otcd.setDeletedSign(0);
  871. orgTechCenterDetailService.insert(otcd);
  872. } else {
  873. orgTechCenterDetailService.updateByPrimaryKeySelective(otcd);
  874. }
  875. return res;
  876. }
  877. /**
  878. * 获取公司联系人
  879. *
  880. * @return
  881. */
  882. @RequestMapping(value = "/getContacts", method = RequestMethod.GET)
  883. public Result getContacts() {
  884. Result res = new Result();
  885. res.setData(organizationIdentityService.selectContactsByUserId(TokenManager.getUserId()));
  886. return res;
  887. }
  888. /**
  889. * 高企认定列表入口
  890. *
  891. * @param locationProvince
  892. * @param unitName
  893. * @return
  894. */
  895. @RequestMapping(value = "/listCognizance", method = RequestMethod.POST)
  896. public Result listCognizance(String locationProvince, String pageNo, String pageSize) {
  897. Result res = new Result();
  898. if (!checkUserLogin(res)) {
  899. return res;
  900. }
  901. User curUser = TokenManager.getUserToken();
  902. if (!checkCertify(res, curUser)) {
  903. return res;
  904. }
  905. Integer pNo = 1;
  906. Integer pSize = 10;
  907. if (StringUtils.isNumeric(pageSize)) {
  908. pSize = Integer.parseInt(pageSize);
  909. }
  910. if (StringUtils.isNumeric(pageNo)) {
  911. pNo = Integer.parseInt(pageNo);
  912. }
  913. res.setData(orgCognizanceService.listCognizance(TokenManager.getUserId(), null, locationProvince, pNo, pSize));
  914. return res;
  915. }
  916. /**
  917. * 申请高企认定
  918. *
  919. * @return
  920. */
  921. @RequestMapping(value = "/applyCognizance", method = RequestMethod.POST)
  922. public Result applyCognizance(@Valid InputApplyCognizance cog, BindingResult bindingResult) {
  923. Result res = new Result();
  924. if (bindingResult.hasErrors()) {
  925. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  926. CognizanceApplyFields.getFieldDesc(bindingResult.getFieldError().getField())));
  927. return res;
  928. }
  929. if (!checkUserLogin(res)) {
  930. return res;
  931. }
  932. User curUser = TokenManager.getUserToken();
  933. if (!checkCertify(res, curUser)) {
  934. return res;
  935. }
  936. if (null == cog.getYear()){
  937. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份"));
  938. return res;
  939. }
  940. if (null != orgCognizanceService.selectCognizanceByUidAndYear(cog.getYear(), TokenManager.getUserId())) {
  941. res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度高企认定已申请!"));
  942. return res;
  943. }
  944. String aid = TokenManager.getToken().getAid();
  945. OrgCognizance oc = new OrgCognizance();
  946. BeanUtils.copyProperties(cog, oc);
  947. oc.setUid(TokenManager.getUserId());
  948. orgCognizanceService.insertCognizance(oc, aid);
  949. return res;
  950. }
  951. /**
  952. * 高企认定详情入口
  953. *
  954. * @param uid
  955. * @param cid
  956. * @return
  957. */
  958. @RequestMapping(value = "/cognizanceDetail", method = RequestMethod.POST)
  959. public Result cognizanceDetail(String cid, Integer year) {
  960. Result res = new Result();
  961. if (!checkUserLogin(res)) {
  962. return res;
  963. }
  964. User curUser = TokenManager.getUserToken();
  965. if (!checkCertify(res, curUser)) {
  966. return res;
  967. }
  968. if (StringUtils.isBlank(cid)) {
  969. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "高企ID"));
  970. return res;
  971. }
  972. if (null == year) {
  973. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份"));
  974. return res;
  975. }
  976. res.setData(handleCognizanceDetail(TokenManager.getUserId(), cid, year));
  977. return res;
  978. }
  979. /**
  980. * 高企认定流转状态
  981. *
  982. * @param cid
  983. * @return
  984. */
  985. @RequestMapping(value = "/cognizanceLog", method = RequestMethod.POST)
  986. public Result cognizanceLog(String cid) {
  987. Result res = new Result();
  988. if (!checkUserLogin(res)) {
  989. return res;
  990. }
  991. if (StringUtils.isBlank(cid)) {
  992. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "高企ID"));
  993. return res;
  994. }
  995. List<OrgCognizanceLog> list = orgCognizanceLogService.selectOrgCognizanceLogByCid(cid);
  996. for (OrgCognizanceLog log : list) {
  997. if (OrgCognizanceStatus.getStatus(log.getState()) == OrgCognizanceStatus.SIGN
  998. || OrgCognizanceStatus.getStatus(log.getState()) == OrgCognizanceStatus.CIRCULATION
  999. || OrgCognizanceStatus.getStatus(log.getState()) == OrgCognizanceStatus.SETTLEMENT) {
  1000. list.remove(log);
  1001. }
  1002. }
  1003. res.setData(list);
  1004. return res;
  1005. }
  1006. /**
  1007. * 保存高企认定详情
  1008. */
  1009. @RequestMapping(value = "/disposeCognizanceDetail", method = RequestMethod.POST)
  1010. public Result disposeCognizanceDetail(@Valid InputOrgCognizance cog, BindingResult bindingResult) {
  1011. Result res = new Result();
  1012. if (bindingResult.hasErrors()) {
  1013. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  1014. OrgCognizanceFields.getFieldDesc(bindingResult.getFieldError().getField())));
  1015. return res;
  1016. }
  1017. if (!checkUserLogin(res)) {
  1018. return res;
  1019. }
  1020. User curUser = TokenManager.getUserToken();
  1021. if (!checkCertify(res, curUser)) {
  1022. return res;
  1023. }
  1024. OrgCognizance oc = new OrgCognizance();
  1025. BeanUtils.copyProperties(cog, oc);
  1026. orgCognizanceService.updateByPrimaryKeySelective(oc);
  1027. return res;
  1028. }
  1029. /**
  1030. * 年报列表
  1031. *
  1032. * @return
  1033. */
  1034. @RequestMapping(value = "/annualReport", method = RequestMethod.POST)
  1035. public Result annualReport(Integer year, Integer state, String pageSize, String pageNo) {
  1036. Result res = new Result();
  1037. if (!checkUserLogin(res)) {
  1038. return res;
  1039. }
  1040. User curUser = TokenManager.getUserToken();
  1041. if (!checkCertify(res, curUser)) {
  1042. return res;
  1043. }
  1044. Integer pNo = 1;
  1045. Integer pSize = 10;
  1046. if (StringUtils.isNumeric(pageSize)) {
  1047. pSize = Integer.parseInt(pageSize);
  1048. }
  1049. if (StringUtils.isNumeric(pageNo)) {
  1050. pNo = Integer.parseInt(pageNo);
  1051. }
  1052. res.setData(orgAnnualReportService.listOrgAnnualReport(year, state, pNo, pSize, TokenManager.getUserId()));
  1053. return res;
  1054. }
  1055. /**
  1056. * 企业年报详情
  1057. *
  1058. * @param uid
  1059. * @param year
  1060. * @return
  1061. */
  1062. @RequestMapping(value = "/annualReportDetail", method = RequestMethod.POST)
  1063. public Result annualReportDetail(Integer year) {
  1064. Result res = new Result();
  1065. if (!checkUserLogin(res)) {
  1066. return res;
  1067. }
  1068. User curUser = TokenManager.getUserToken();
  1069. if (!checkCertify(res, curUser)) {
  1070. return res;
  1071. }
  1072. if (null == year) {
  1073. res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份"));
  1074. return res;
  1075. }
  1076. res.setData(handleAnnualReport(TokenManager.getUserId(), year));
  1077. return res;
  1078. }
  1079. /**
  1080. * 高企年报新增+修改
  1081. *
  1082. * @param orgAnnualReport
  1083. * @return
  1084. */
  1085. @RequestMapping(value = "/disposeAnnualReport", method = RequestMethod.POST)
  1086. public Result disposeAnnualReport(@Valid InputOrgAnnualReport orgAnnualReport, BindingResult bindingResult) {
  1087. Result res = new Result();
  1088. if (bindingResult.hasErrors()) {
  1089. res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(),
  1090. OrgAnnualReportFields.getFieldDesc(bindingResult.getFieldError().getField())));
  1091. return res;
  1092. }
  1093. if (!checkUserLogin(res)) {
  1094. return res;
  1095. }
  1096. User curUser = TokenManager.getUserToken();
  1097. if (!checkCertify(res, curUser)) {
  1098. return res;
  1099. }
  1100. OrgAnnualReport oar = new OrgAnnualReport();
  1101. BeanUtils.copyProperties(orgAnnualReport, oar);
  1102. if (StringUtils.isBlank(oar.getId())) {
  1103. if (null != orgAnnualReportService.selectAnnualReportByYearAndUid(oar.getYear(),
  1104. TokenManager.getUserId())) {
  1105. res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年企业年报已录入!"));
  1106. return res;
  1107. }
  1108. oar.setId(UUID.randomUUID().toString());
  1109. oar.setUid(TokenManager.getUserId());
  1110. Calendar now = Calendar.getInstance();
  1111. now.set(Calendar.MILLISECOND, 0);
  1112. oar.setCreateTime(now.getTime());
  1113. oar.setLastUpdateTime(oar.getCreateTime());
  1114. oar.setDeletedSign(0);
  1115. orgAnnualReportService.insert(oar);
  1116. } else {
  1117. Calendar now = Calendar.getInstance();
  1118. now.set(Calendar.MILLISECOND, 0);
  1119. oar.setLastUpdateTime(now.getTime());
  1120. orgAnnualReportService.updateByPrimaryKeySelective(oar);
  1121. }
  1122. return res;
  1123. }
  1124. private String handleFile(Result res, String path, boolean isPrivate, HttpServletRequest req, String sign,
  1125. String uid) {
  1126. List<MultipartFile> files = getFiles(req);
  1127. MultipartFile mf = files.get(0);
  1128. String fileName = FileUtils.mosaicFileName(mf, isPrivate, sign, path,
  1129. StringUtils.isBlank(uid) ? TokenManager.getUserId() : uid);
  1130. if (!files.isEmpty()) {
  1131. try {
  1132. mf.transferTo(toPrivateFile(fileName));
  1133. LoggerUtils.debug(getClass(), fileName + " 文件上传成功");
  1134. } catch (IllegalStateException | IOException e) {
  1135. LoggerUtils.error(getClass(), "文件上传失败", e);
  1136. res.getError().add(buildError("", "文件上传失败!"));
  1137. return "";
  1138. }
  1139. } else {
  1140. res.getError().add(buildError("", "文件上传失败!"));
  1141. return "";
  1142. }
  1143. return fileName;
  1144. }
  1145. // 判断用户是否通过认证
  1146. /*
  1147. * private Result checkCertify(Result res) { OrganizationIdentity o =
  1148. * organizationIdentityService.selectOrgIdentityByUserId(TokenManager.
  1149. * getUserId()); if (null == o || 5 != o.getAuditStatus()) {
  1150. * res.getError().add(buildError(ErrorConstants.NON_CERTIFIED,
  1151. * "未通过实名认证,无法操作!")); } return res; }
  1152. */
  1153. // 高企认定
  1154. private CognizanceDetailBo handleCognizanceDetail(String uid, String cid, Integer year) {
  1155. return orgCognizanceService.selectCognizanceDetailBo(uid, cid, year);
  1156. }
  1157. // 年报详情
  1158. private AnnualReportBo handleAnnualReport(String uid, Integer year) {
  1159. return orgAnnualReportService.selectAnnualReportBo(uid, year);
  1160. }
  1161. }