package com.goafanti.cognizance.controller; import java.io.IOException; import java.text.ParseException; import java.util.Calendar; import java.util.List; import java.util.UUID; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.validation.Valid; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Controller; import org.springframework.validation.BindingResult; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RequestMethod; import org.springframework.web.multipart.MultipartFile; import com.goafanti.cognizance.bo.ActivityNumberBo; import com.goafanti.cognizance.bo.AnnualReportBo; import com.goafanti.cognizance.bo.CognizanceDetailBo; import com.goafanti.cognizance.bo.InputApplyCognizance; import com.goafanti.cognizance.bo.InputOrgActivity; import com.goafanti.cognizance.bo.InputOrgActivityCost; import com.goafanti.cognizance.bo.InputOrgAnnualReport; import com.goafanti.cognizance.bo.InputOrgCognizance; import com.goafanti.cognizance.bo.InputOrgFinance; import com.goafanti.cognizance.bo.InputOrgHonorDatum; import com.goafanti.cognizance.bo.InputOrgIntellectualProperty; import com.goafanti.cognizance.bo.InputOrgRatepay; import com.goafanti.cognizance.bo.InputOrgStandard; import com.goafanti.cognizance.bo.InputOrgTechAchievement; import com.goafanti.cognizance.bo.InputOrgTechCenter; import com.goafanti.cognizance.bo.InputOrgTechCenterDetail; import com.goafanti.cognizance.bo.InputOrgTechProduct; import com.goafanti.cognizance.service.OrgActivityCostService; import com.goafanti.cognizance.service.OrgActivityService; import com.goafanti.cognizance.service.OrgAnnualReportService; import com.goafanti.cognizance.service.OrgCognizanceLogService; import com.goafanti.cognizance.service.OrgCognizanceService; import com.goafanti.cognizance.service.OrgFinanceService; import com.goafanti.cognizance.service.OrgHonorDatumService; import com.goafanti.cognizance.service.OrgIntellectualPropertyService; import com.goafanti.cognizance.service.OrgRatepayService; import com.goafanti.cognizance.service.OrgStandardService; import com.goafanti.cognizance.service.OrgTechAchievementService; import com.goafanti.cognizance.service.OrgTechCenterDetailService; import com.goafanti.cognizance.service.OrgTechCenterService; import com.goafanti.cognizance.service.OrgTechProductService; import com.goafanti.common.bo.Result; import com.goafanti.common.constant.AFTConstants; import com.goafanti.common.constant.ErrorConstants; import com.goafanti.common.controller.CertifyApiController; import com.goafanti.common.enums.CognizanceApplyFields; import com.goafanti.common.enums.OrgActivityFields; import com.goafanti.common.enums.OrgAnnualReportFields; import com.goafanti.common.enums.OrgCognizanceFields; import com.goafanti.common.enums.OrgCognizanceStatus; import com.goafanti.common.enums.OrgFinanceFields; import com.goafanti.common.enums.OrgHonorDatumFields; import com.goafanti.common.enums.OrgIntellectualPropertyFields; import com.goafanti.common.enums.OrgRatepayFields; import com.goafanti.common.enums.OrgStandardFields; import com.goafanti.common.enums.OrgTechAchievementFields; import com.goafanti.common.enums.OrgTechCenterDetailFields; import com.goafanti.common.enums.OrgTechCenterFields; import com.goafanti.common.enums.OrgTechProductFields; import com.goafanti.common.model.OrgActivity; import com.goafanti.common.model.OrgActivityCost; import com.goafanti.common.model.OrgAnnualReport; import com.goafanti.common.model.OrgCognizance; import com.goafanti.common.model.OrgCognizanceLog; import com.goafanti.common.model.OrgFinance; import com.goafanti.common.model.OrgHonorDatum; import com.goafanti.common.model.OrgIntellectualProperty; import com.goafanti.common.model.OrgRatepay; import com.goafanti.common.model.OrgStandard; import com.goafanti.common.model.OrgTechAchievement; import com.goafanti.common.model.OrgTechCenter; import com.goafanti.common.model.OrgTechCenterDetail; import com.goafanti.common.model.OrgTechProduct; import com.goafanti.common.model.User; import com.goafanti.common.utils.DateUtils; import com.goafanti.common.utils.FileUtils; import com.goafanti.common.utils.LoggerUtils; import com.goafanti.common.utils.StringUtils; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.user.service.OrganizationIdentityService; import com.goafanti.user.service.UserService; @Controller @RequestMapping(value = "/api/user/cognizance") public class CognizanceApiController extends CertifyApiController { @Resource private UserService userService; @Resource private OrgStandardService orgStandardService; @Resource private OrgActivityService orgActivityService; @Resource private OrgIntellectualPropertyService orgIntellectualPropertyService; @Resource private OrganizationIdentityService organizationIdentityService; @Resource private OrgTechProductService orgTechProductService; @Resource private OrgActivityCostService orgActivityCostService; @Resource private OrgRatepayService orgRatepayService; @Resource private OrgFinanceService orgFinanceService; @Resource private OrgTechAchievementService orgTechAchievementService; @Resource private OrgHonorDatumService orgHonorDatumService; @Resource private OrgTechCenterService orgTechCenterService; @Resource private OrgTechCenterDetailService orgTechCenterDetailService; @Resource private OrgCognizanceService orgCognizanceService; @Resource private OrgAnnualReportService orgAnnualReportService; @Resource private OrgCognizanceLogService orgCognizanceLogService; /** * 企业研究开发活动情况表入口 * * @param activityNumber * @param activityName * @param startDate * @param endDate * @param pageNo * @param pageSize * @return * @throws ParseException */ @RequestMapping(value = "/activityList", method = RequestMethod.POST) public Result activityList(String activityNumber, String activityName, String startDateFormattedDate, String endDateFormattedDate, String pageNo, String pageSize) throws ParseException { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgActivityService.listOrgActivity(activityNumber, activityName, startDateFormattedDate, endDateFormattedDate, pNo, pSize, TokenManager.getUserId())); return res; } /** * 企业研究开发活动情况新增、修改 * * @param orgActivity * @return * @throws ParseException */ @RequestMapping(value = "/activity", method = RequestMethod.POST) public Result activity(@Valid InputOrgActivity orgActivity, BindingResult bindingResult, String startDateFormattedDate, String endDateFormattedDate) throws ParseException { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgActivityFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (!StringUtils.isBlank(startDateFormattedDate)) { try { orgActivity.setStartDate(DateUtils.parseDate(startDateFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } if (StringUtils.isBlank(endDateFormattedDate)) { try { orgActivity.setEndDate(DateUtils.parseDate(endDateFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } OrgActivity oa = new OrgActivity(); BeanUtils.copyProperties(orgActivity, oa); oa.setDeletedSign(0); if (StringUtils.isBlank(oa.getId())) { oa.setId(UUID.randomUUID().toString()); oa.setUid(TokenManager.getUserId()); orgActivityService.insert(oa); } else { orgActivityService.updateOrgActivity(oa); } res.setData(oa); return res; } /** * 企业年度研究开发费用结构明细表列表入口 * * @return * @throws ParseException */ @RequestMapping(value = "/activityCostList", method = RequestMethod.POST) public Result activityCostList(String activityNumber, String startDateFormattedDate, String endDateFormattedDate, String pageNo, String pageSize) throws ParseException { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgActivityCostService.listOrgActivityCost(activityNumber, startDateFormattedDate, endDateFormattedDate, pNo, pSize, TokenManager.getUserId())); return res; } /** * 企业年度研究开发费用结构明细表(新增+修改) * * @return * @throws ParseException */ @RequestMapping(value = "/activityCost", method = RequestMethod.POST) public Result activityCost(@Valid InputOrgActivityCost orgActivityCost, BindingResult bindingResult, String signDateFormattedDate) throws ParseException { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgActivityFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (!StringUtils.isBlank(signDateFormattedDate)) { orgActivityCost.setSignDate(DateUtils.parseDate(signDateFormattedDate, AFTConstants.YYYYMMDD)); } OrgActivityCost oac = new OrgActivityCost(); BeanUtils.copyProperties(orgActivityCost, oac); if (StringUtils.isBlank(oac.getId())) { if (null != orgActivityCostService.selectOrgActivityCostByUidAndAid(oac.getAid(), TokenManager.getUserId())) { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "该研究项目费用详情已录入!")); return res; } OrgActivity ac = orgActivityService.selectOrgActivityByPrimaryKey(orgActivityCost.getAid()); oac.setStartDate(ac.getStartDate()); oac.setEndDate(ac.getEndDate()); oac.setId(UUID.randomUUID().toString()); oac.setUid(TokenManager.getUserId()); oac.setDeletedSign(0); orgActivityCostService.insert(oac); } else { orgActivityCostService.updateByPrimaryKeySelective(oac); } return res; } /** * 企业参与国家标准或行业标准制定情况明细入口 * * @return */ @RequestMapping(value = "/standard", method = RequestMethod.POST) public Result standard(String standardName, String standardNumber, Integer standardLevel, Integer participateWay, String pageNo, String pageSize) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgStandardService.listOrgStandard(standardName, standardNumber, standardLevel, participateWay, pNo, pSize, TokenManager.getUserId())); return res; } /** * 企业参与国家标准或行业标准制定情况明细修改保存 * * @return */ @RequestMapping(value = "/developStandard", method = RequestMethod.POST) public Result developStandard(@Valid InputOrgStandard orgStandard, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgStandardFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } OrgStandard os = new OrgStandard(); BeanUtils.copyProperties(orgStandard, os); if (StringUtils.isBlank(os.getId())) { os.setId(UUID.randomUUID().toString()); os.setUid(TokenManager.getUserId()); os.setDeletedSign(0); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); os.setCreateTime(now.getTime()); orgStandardService.insert(os); } else { orgStandardService.updateByPrimaryKeySelective(os); } res.setData(orgStandard); return res; } /** * 用户端录入+修改知识产权信息(专利+软著) * * @return * @throws ParseException */ @RequestMapping(value = "/intellectual", method = RequestMethod.POST) public Result intellectual(@Valid InputOrgIntellectualProperty orgIntellectualProperty, BindingResult bindingResult, String authorizationDateFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgIntellectualPropertyFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (!StringUtils.isBlank(authorizationDateFormattedDate)) { try { orgIntellectualProperty .setAuthorizationDate(DateUtils.parseDate(authorizationDateFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } OrgIntellectualProperty oip = new OrgIntellectualProperty(); BeanUtils.copyProperties(orgIntellectualProperty, oip); if (StringUtils.isBlank(oip.getId())) { oip.setId(UUID.randomUUID().toString()); oip.setUid(TokenManager.getUserId()); oip.setEvaluationCategory((oip.getCatagory() >= 2 && oip.getCatagory() <= 4) ? 1 : 0); oip.setDeletedSign(0); res.setData(orgIntellectualPropertyService.insert(oip)); } else { oip.setEvaluationCategory(oip.getCatagory() <= 2 ? 1 : 0); res.setData(orgIntellectualPropertyService.updateByPrimaryKeySelective(oip)); } return res; } /** * 用户知识产权列表 * * @param pageNo * @param pageSize * @return */ @RequestMapping(value = "/intellectualList", method = RequestMethod.GET) public Result intellectualList(String pageNo, String pageSize) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgIntellectualPropertyService.listIntellectual(pNo, pSize, TokenManager.getUserId())); return res; } /** * 上年度高新技术产品(服务)情况列表 * * @param pageNo * @param pageSize * @return */ @RequestMapping(value = "/techProductList", method = RequestMethod.GET) public Result techProductList(String pageNo, String pageSize) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgTechProductService.listTechProduct(pNo, pSize, TokenManager.getUserId())); return res; } /** * 上年度高新技术产品(服务)情况(新增+修改) * * @param orgTechProduct * @return */ @RequestMapping(value = "/techProduct", method = RequestMethod.POST) public Result techProduct(@Valid InputOrgTechProduct orgTechProduct, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgTechProductFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } OrgTechProduct otp = new OrgTechProduct(); BeanUtils.copyProperties(orgTechProduct, otp); if (StringUtils.isBlank(otp.getId())) { otp.setId(UUID.randomUUID().toString()); otp.setUid(TokenManager.getUserId()); otp.setDeletedSign(0); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); otp.setCreateTime(now.getTime()); otp.setYear(Calendar.getInstance().get(Calendar.YEAR) - 1); orgTechProductService.insert(otp); } else { orgTechProductService.updateByPrimaryKeySelective(otp); } res.setData(otp); return res; } /** * 企业纳税申报信息入口 * * @return */ @RequestMapping(value = "/ratepay", method = RequestMethod.GET) public Result ratepay(Integer year, String pageNo, String pageSize) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgRatepayService.listOrgRatepay(year, pNo, pSize, TokenManager.getUserId())); return res; } /** * 企业纳税申报信息录入+修改 */ @RequestMapping(value = "/disposeRatepay", method = RequestMethod.POST) public Result disposeRatepay(@Valid InputOrgRatepay orgRatepay, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgRatepayFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (null == orgRatepay.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份")); return res; } OrgRatepay rate = new OrgRatepay(); BeanUtils.copyProperties(orgRatepay, rate); if (StringUtils.isBlank(rate.getId())) { if (null == orgRatepayService.selectRatepayByUidAndYear(TokenManager.getUserId(), rate.getYear())) { rate.setId(UUID.randomUUID().toString()); rate.setUid(TokenManager.getUserId()); rate.setDeletedSign(0); orgRatepayService.insert(rate); } else { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度纳税申报表已录入!")); return res; } } else { orgRatepayService.updateByPrimaryKeySelective(rate); } return res; } /** * 财务报表信息入口 * * @return */ @RequestMapping(value = "/finance", method = RequestMethod.GET) public Result finance(Integer year, String pageNo, String pageSize) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgFinanceService.listFinance(year, pNo, pSize, TokenManager.getUserId())); return res; } /** * 财务报表录入+修改 * * @param orgFinance * @return */ @RequestMapping(value = "/disposeFinance", method = RequestMethod.POST) public Result disposeFinance(@Valid InputOrgFinance orgFinance, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgFinanceFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (null == orgFinance.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份")); return res; } OrgFinance of = new OrgFinance(); BeanUtils.copyProperties(orgFinance, of); if (StringUtils.isBlank(of.getId())) { if (null == orgFinanceService.selectFinanceByUidAndYear(TokenManager.getUserId(), of.getYear())) { of.setId(UUID.randomUUID().toString()); of.setUid(TokenManager.getUserId()); of.setDeletedSign(0); orgFinanceService.insert(of); } else { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度财务报表已录入!")); return res; } } else { orgFinanceService.updateByPrimaryKeySelective(of); } return res; } /** * 获取当前用户已录入项目标号列表 * * @param uid * @return */ @RequestMapping(value = "/activityNumber", method = RequestMethod.GET) public Result listActivityNumber() { Result res = new Result(); if (!checkUserLogin(res)) { return res; } List activityNumberBo = orgActivityService .selectOrgActivityNumberBoByUid(TokenManager.getUserId()); res.setData(activityNumberBo); return res; } /** * 高企相关材料上传 * * @param req * @param sign * @return */ @RequestMapping(value = "/upload", method = RequestMethod.POST) public Result cognizanceFile(HttpServletRequest req, String sign, String uid) { Result res = new Result(); if (!checkAdminLogin(res)) { return res; } res.setData(handleFile(res, "/cognizance/", true, req, sign, uid)); return res; } /** * 科技成果转化情况列表入口 * * @param pageNo * @param pageSize * @return */ @RequestMapping(value = "/achievementList", method = RequestMethod.GET) public Result achievementList(String pageNo, String pageSize) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgTechAchievementService.listOrgTechAchievement(pNo, pSize, TokenManager.getUserId())); return res; } /** * 科技成果转化情况新增+修改 * * @param achievement * @return * @throws ParseException */ @RequestMapping(value = "/disposeAchievement", method = RequestMethod.POST) public Result disposeAchievement(@Valid InputOrgTechAchievement achievement, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgTechAchievementFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } OrgTechAchievement ota = new OrgTechAchievement(); BeanUtils.copyProperties(achievement, ota); if (StringUtils.isBlank(ota.getId())) { ota.setId(UUID.randomUUID().toString()); ota.setUid(TokenManager.getUserId()); ota.setDeletedSign(0); orgTechAchievementService.insert(ota); } else { orgTechAchievementService.updateByPrimaryKeySelective(ota); } return res; } /** * 企业荣誉及其他证明材料列表入口 * * @return */ @RequestMapping(value = "/honorList", method = RequestMethod.GET) public Result honorList(String pageNo, String pageSize) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgHonorDatumService.listOrgHonorDatum(pNo, pSize, TokenManager.getUserId())); return res; } /** * 企业荣誉及其他证明材料新增+修改 * * @param achievement * @return * @throws ParseException */ @RequestMapping(value = "/disposeHonor", method = RequestMethod.POST) public Result disposeHonor(@Valid InputOrgHonorDatum honor, BindingResult bindingResult, String issuingTimeFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgHonorDatumFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (!StringUtils.isBlank(issuingTimeFormattedDate)) { try { honor.setIssuingTime(DateUtils.parseDate(issuingTimeFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } OrgHonorDatum ohd = new OrgHonorDatum(); BeanUtils.copyProperties(honor, ohd); if (StringUtils.isBlank(ohd.getId())) { ohd.setId(UUID.randomUUID().toString()); ohd.setUid(TokenManager.getUserId()); ohd.setDeletedSign(0); orgHonorDatumService.insert(ohd); } else { orgHonorDatumService.updateByPrimaryKeySelective(ohd); } return res; } /** * 技术中心入口 * * @return */ @RequestMapping(value = "/center", method = RequestMethod.GET) public Result center() { Result res = new Result(); if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } res.setData(orgTechCenterService.selectOrgTechCenterByUid(TokenManager.getUserId())); return res; } /** * 技术中心新增+修改 * * @return * @throws ParseException */ @RequestMapping(value = "/disposeCenter", method = RequestMethod.POST) public Result disposeCenter(@Valid InputOrgTechCenter orgTechCenter, BindingResult bindingResult, String foundingTimeFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgTechCenterFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (!StringUtils.isBlank(foundingTimeFormattedDate)) { try { orgTechCenter.setFoundingTime(DateUtils.parseDate(foundingTimeFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } OrgTechCenter otc = new OrgTechCenter(); BeanUtils.copyProperties(orgTechCenter, otc); if (StringUtils.isBlank(otc.getId())) { otc.setId(UUID.randomUUID().toString()); otc.setUid(TokenManager.getUserId()); otc.setDeletedSign(0); orgTechCenterService.insert(otc); } else { orgTechCenterService.updateByPrimaryKeySelective(otc); } return res; } /** * 技术中心明细列表入口 * * @return */ @RequestMapping(value = "/centerDetail", method = RequestMethod.POST) public Result centerDetail(String pageNo, String pageSize, String cid) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgTechCenterDetailService.listOrgTechCenterDetail(pNo, pSize, cid)); return res; } /** * 技术中心明细新增+修改 * * @param orgTechCenterDetail * @param projectTimeFormattedDate * @param termTimeFormattedDate * @return * @throws ParseException */ @RequestMapping(value = "/disposeCenterDetail", method = RequestMethod.POST) public Result disposeCenterDetail(@Valid InputOrgTechCenterDetail orgTechCenterDetail, BindingResult bindingResult, String projectTimeFormattedDate, String termStartTimeFormattedDate, String termEndTimeFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgTechCenterDetailFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (!StringUtils.isBlank(projectTimeFormattedDate)) { try { orgTechCenterDetail.setProjectTime(DateUtils.parseDate(projectTimeFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } if (!StringUtils.isBlank(termStartTimeFormattedDate)) { try { orgTechCenterDetail.setTermStartTime(DateUtils.parseDate(termStartTimeFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } if (!StringUtils.isBlank(termEndTimeFormattedDate)) { try { orgTechCenterDetail.setTermEndTime(DateUtils.parseDate(termEndTimeFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } OrgTechCenterDetail otcd = new OrgTechCenterDetail(); BeanUtils.copyProperties(orgTechCenterDetail, otcd); if (StringUtils.isBlank(otcd.getId())) { otcd.setId(UUID.randomUUID().toString()); otcd.setDeletedSign(0); orgTechCenterDetailService.insert(otcd); } else { orgTechCenterDetailService.updateByPrimaryKeySelective(otcd); } return res; } /** * 获取公司联系人 * * @return */ @RequestMapping(value = "/getContacts", method = RequestMethod.GET) public Result getContacts() { Result res = new Result(); res.setData(organizationIdentityService.selectContactsByUserId(TokenManager.getUserId())); return res; } /** * 高企认定列表入口 * * @param locationProvince * @param unitName * @return */ @RequestMapping(value = "/listCognizance", method = RequestMethod.POST) public Result listCognizance(String locationProvince, String pageNo, String pageSize) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgCognizanceService.listCognizance(TokenManager.getUserId(), null, locationProvince, pNo, pSize)); return res; } /** * 申请高企认定 * * @return */ @RequestMapping(value = "/applyCognizance", method = RequestMethod.POST) public Result applyCognizance(@Valid InputApplyCognizance cog, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), CognizanceApplyFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (null == cog.getYear()){ res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份")); return res; } if (null != orgCognizanceService.selectCognizanceByUidAndYear(cog.getYear(), TokenManager.getUserId())) { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度高企认定已申请!")); return res; } String aid = TokenManager.getToken().getAid(); OrgCognizance oc = new OrgCognizance(); BeanUtils.copyProperties(cog, oc); oc.setUid(TokenManager.getUserId()); orgCognizanceService.insertCognizance(oc, aid); return res; } /** * 高企认定详情入口 * * @param uid * @param cid * @return */ @RequestMapping(value = "/cognizanceDetail", method = RequestMethod.POST) public Result cognizanceDetail(String cid, Integer year) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (StringUtils.isBlank(cid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "高企ID")); return res; } if (null == year) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份")); return res; } res.setData(handleCognizanceDetail(TokenManager.getUserId(), cid, year)); return res; } /** * 高企认定流转状态 * * @param cid * @return */ @RequestMapping(value = "/cognizanceLog", method = RequestMethod.POST) public Result cognizanceLog(String cid) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } if (StringUtils.isBlank(cid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "高企ID")); return res; } List list = orgCognizanceLogService.selectOrgCognizanceLogByCid(cid); for (OrgCognizanceLog log : list) { if (OrgCognizanceStatus.getStatus(log.getState()) == OrgCognizanceStatus.SIGN || OrgCognizanceStatus.getStatus(log.getState()) == OrgCognizanceStatus.CIRCULATION || OrgCognizanceStatus.getStatus(log.getState()) == OrgCognizanceStatus.SETTLEMENT) { list.remove(log); } } res.setData(list); return res; } /** * 保存高企认定详情 */ @RequestMapping(value = "/disposeCognizanceDetail", method = RequestMethod.POST) public Result disposeCognizanceDetail(@Valid InputOrgCognizance cog, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgCognizanceFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } OrgCognizance oc = new OrgCognizance(); BeanUtils.copyProperties(cog, oc); orgCognizanceService.updateByPrimaryKeySelective(oc); return res; } /** * 年报列表 * * @return */ @RequestMapping(value = "/annualReport", method = RequestMethod.POST) public Result annualReport(Integer year, Integer state, String pageSize, String pageNo) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(orgAnnualReportService.listOrgAnnualReport(year, state, pNo, pSize, TokenManager.getUserId())); return res; } /** * 企业年报详情 * * @param uid * @param year * @return */ @RequestMapping(value = "/annualReportDetail", method = RequestMethod.POST) public Result annualReportDetail(Integer year) { Result res = new Result(); if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } if (null == year) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份")); return res; } res.setData(handleAnnualReport(TokenManager.getUserId(), year)); return res; } /** * 高企年报新增+修改 * * @param orgAnnualReport * @return */ @RequestMapping(value = "/disposeAnnualReport", method = RequestMethod.POST) public Result disposeAnnualReport(@Valid InputOrgAnnualReport orgAnnualReport, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgAnnualReportFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (!checkUserLogin(res)) { return res; } User curUser = TokenManager.getUserToken(); if (!checkCertify(res, curUser)) { return res; } OrgAnnualReport oar = new OrgAnnualReport(); BeanUtils.copyProperties(orgAnnualReport, oar); if (StringUtils.isBlank(oar.getId())) { if (null != orgAnnualReportService.selectAnnualReportByYearAndUid(oar.getYear(), TokenManager.getUserId())) { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年企业年报已录入!")); return res; } oar.setId(UUID.randomUUID().toString()); oar.setUid(TokenManager.getUserId()); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); oar.setCreateTime(now.getTime()); oar.setLastUpdateTime(oar.getCreateTime()); oar.setDeletedSign(0); orgAnnualReportService.insert(oar); } else { Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); oar.setLastUpdateTime(now.getTime()); orgAnnualReportService.updateByPrimaryKeySelective(oar); } return res; } private String handleFile(Result res, String path, boolean isPrivate, HttpServletRequest req, String sign, String uid) { List files = getFiles(req); MultipartFile mf = files.get(0); String fileName = FileUtils.mosaicFileName(mf, isPrivate, sign, path, StringUtils.isBlank(uid) ? TokenManager.getUserId() : uid); if (!files.isEmpty()) { try { mf.transferTo(toPrivateFile(fileName)); LoggerUtils.debug(getClass(), fileName + " 文件上传成功"); } catch (IllegalStateException | IOException e) { LoggerUtils.error(getClass(), "文件上传失败", e); res.getError().add(buildError("", "文件上传失败!")); return ""; } } else { res.getError().add(buildError("", "文件上传失败!")); return ""; } return fileName; } // 判断用户是否通过认证 /* * private Result checkCertify(Result res) { OrganizationIdentity o = * organizationIdentityService.selectOrgIdentityByUserId(TokenManager. * getUserId()); if (null == o || 5 != o.getAuditStatus()) { * res.getError().add(buildError(ErrorConstants.NON_CERTIFIED, * "未通过实名认证,无法操作!")); } return res; } */ // 高企认定 private CognizanceDetailBo handleCognizanceDetail(String uid, String cid, Integer year) { return orgCognizanceService.selectCognizanceDetailBo(uid, cid, year); } // 年报详情 private AnnualReportBo handleAnnualReport(String uid, Integer year) { return orgAnnualReportService.selectAnnualReportBo(uid, year); } }