package com.goafanti.admin.controller; import java.math.BigDecimal; import java.text.ParseException; import java.util.ArrayList; import java.util.Arrays; import java.util.Calendar; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.TreeMap; import java.util.UUID; import javax.annotation.Resource; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; 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.bind.annotation.RequestParam; import com.goafanti.admin.bo.AdminDetail; import com.goafanti.admin.bo.InputAdmin; import com.goafanti.admin.service.AdminService; 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.InputOrgHumanResource; 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.bo.LatelyCogRecord; import com.goafanti.cognizance.bo.OrgIntellectualPropertyDetailBo; 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.OrgCognizanceProportionService; 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.AdminFields; import com.goafanti.common.enums.AttachmentType; import com.goafanti.common.enums.CognizanceApplyFields; import com.goafanti.common.enums.FinanceRatepayFields; import com.goafanti.common.enums.IdentityAuditStatus; import com.goafanti.common.enums.IdentityProcess; import com.goafanti.common.enums.IntellectualPropertyType; 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.OrgHumanResourceFields; 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.enums.OrganizationIdentityFields; import com.goafanti.common.enums.ProportionStatus; import com.goafanti.common.enums.ProprotionFields; import com.goafanti.common.enums.UserAbilityFields; import com.goafanti.common.enums.UserFields; import com.goafanti.common.enums.UserIdentityFields; import com.goafanti.common.model.Admin; 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.OrgCognizanceProportion; import com.goafanti.common.model.OrgFinance; import com.goafanti.common.model.OrgHonorDatum; import com.goafanti.common.model.OrgHumanResource; 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.OrganizationIdentity; import com.goafanti.common.model.PatentInfo; import com.goafanti.common.model.User; import com.goafanti.common.model.UserAbility; import com.goafanti.common.model.UserIdentity; import com.goafanti.common.utils.DateUtils; import com.goafanti.common.utils.PasswordUtil; import com.goafanti.common.utils.StringUtils; import com.goafanti.common.utils.TimeUtils; import com.goafanti.copyright.bo.CopyrightInfoDetail; import com.goafanti.copyright.service.CopyrightInfoService; import com.goafanti.core.mybatis.page.Pagination; import com.goafanti.core.shiro.token.TokenManager; import com.goafanti.patent.service.PatentInfoService; import com.goafanti.user.bo.InputOrganizationIdentity; import com.goafanti.user.bo.InputUser; import com.goafanti.user.bo.InputUserAbility; import com.goafanti.user.bo.InputUserIdentity; import com.goafanti.user.bo.OrgListBo; import com.goafanti.user.bo.UserListBo; import com.goafanti.user.service.OrgHumanResourceService; import com.goafanti.user.service.OrganizationIdentityService; import com.goafanti.user.service.UserAbilityService; import com.goafanti.user.service.UserIdentityService; import com.goafanti.user.service.UserService; @Controller @RequestMapping(value = "/api/admin") public class AdminApiController extends CertifyApiController { @Resource private UserService userService; @Resource private UserIdentityService userIdentityService; @Resource private OrganizationIdentityService organizationIdentityService; @Resource private OrgHumanResourceService orgHumanResourceService; @Resource private OrgStandardService orgStandardService; @Resource private OrgIntellectualPropertyService orgIntellectualPropertyService; @Resource private OrgTechProductService orgTechProductService; @Resource private OrgRatepayService orgRatepayService; @Resource private OrgFinanceService orgFinanceService; @Resource private OrgActivityService orgActivityService; @Resource private OrgActivityCostService orgActivityCostService; @Resource private OrgTechAchievementService orgTechAchievementService; @Resource private OrgHonorDatumService orgHonorDatumService; @Resource private OrgTechCenterService orgTechCenterService; @Resource private OrgCognizanceService orgCognizanceService; @Resource private OrgCognizanceLogService orgCognizanceLogService; @Resource private UserAbilityService userAbilityService; @Resource private OrgAnnualReportService orgAnnualReportService; @Resource(name = "passwordUtil") private PasswordUtil passwordUtil; @Resource private AdminService adminService; @Resource private OrgTechCenterDetailService orgTechCenterDetailService; @Resource private PatentInfoService patentInfoService; @Resource private CopyrightInfoService copyrightInfoService; @Resource private OrgCognizanceProportionService orgCognizanceProportionService; /** * 更改资料填写完成状态 * * @param id * @return */ @RequestMapping(value = "/confirmProportion", method = RequestMethod.POST) public Result confirmProportion(String id, String uid, String sign, Integer status) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户ID")); return res; } if (StringUtils.isBlank(sign)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到类别标记", "类别标记")); return res; } if (null == status) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到资料完成状态", "资料完成状态")); return res; } if (ProportionStatus.FINISHED.getCode() != status && ProportionStatus.UNFINISHED.getCode() != status) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "资料完成状态")); return res; } if (null == id){ OrgCognizanceProportion cp = new OrgCognizanceProportion(); cp.setId(UUID.randomUUID().toString()); cp.setUid(uid); res.setData(orgCognizanceProportionService.insert(disposeProportionStatus(sign, status, cp))); return res; } OrgCognizanceProportion ocp = orgCognizanceProportionService.selectByPrimaryKey(id); if (null == ocp) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "比重ID")); return res; } res.setData(orgCognizanceProportionService.updateByPrimaryKeySelective(disposeProportionStatus(sign, status, ocp))); return res; } /** * 高企培育资料完成情况(比重) * * @param uid * @return */ @RequestMapping(value = "/proportion", method = RequestMethod.GET) public Result proportion(String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户ID")); return res; } res.setData(orgCognizanceProportionService.selectByUid(uid)); return res; } /** * 管理员角色 */ @RequestMapping(value = "/role", method = RequestMethod.GET) public Result getRole(String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "管理员ID")); return res; } res.setData(adminService.selectRoleByPrimaryKey(uid)); return res; } /** * 管理员"我的客户"列表 * * @return */ @RequestMapping(value = "/customer", method = RequestMethod.GET) public Result getCustomer() { Result res = new Result(); res.setData(userService.selectUserByAid(TokenManager.getAdminId())); return res; } /** * 管理员本人信息详情 * * @param id * @return */ @RequestMapping(value = "/adminInfo", method = RequestMethod.GET) public Result adminInfo() { Result res = new Result(); if (TokenManager.hasRole(AFTConstants.SUPERADMIN)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "超级管理员")); return res; } res.setData(adminService.selectByPrimaryKey(TokenManager.getAdminId())); return res; } /** * 管理员修改本人信息 * * @param admin * @param bindingResult * @return */ @RequestMapping(value = "/updateAdminInfo", method = RequestMethod.POST) public Result updateAdminInfo(@Valid InputAdmin admin, String pwd, BindingResult bindingResult) { Result res = new Result(); if (TokenManager.hasRole(AFTConstants.SUPERADMIN)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "超级管理员")); return res; } if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), AdminFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(admin.getId())) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id")); return res; } if (StringUtils.isBlank(admin.getMobile())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "登录帐号为空", "登录帐号")); return res; } if (StringUtils.isBlank(admin.getName())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "用户名为空", "用户名")); return res; } Admin a = adminService.selectByMobile(admin.getMobile().trim()); if (!TokenManager.getAdminId().equals(a.getId())) { res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "当前用户已注册!")); return res; } Admin ad = new Admin(); BeanUtils.copyProperties(admin, ad); Admin aa = adminService.selectByPrimaryKey(TokenManager.getAdminId()); ad.setMobile(ad.getMobile().trim()); ad.setCreateTime(aa.getCreateTime()); if (!StringUtils.isBlank(ad.getPassword())) { if (StringUtils.isBlank(pwd)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "原密码")); return res; } if (!aa.getPassword().equals(passwordUtil.getEncryptPwd(pwd, aa.getCreateTime()))) { res.getError().add(buildError(ErrorConstants.PWD_NOT_MATCH_ERROR, "", "原密码")); return res; } } else { ad.setPassword(aa.getPassword()); } ad.setPassword(passwordUtil.getEncryptPwd(ad)); res.setData(adminService.updateByPrimaryKey(ad)); return res; } /** * 管理员列表 * * @param province * @param number * @param mobile * @param name * @param pageNo * @param pageSize * @return */ @RequestMapping(value = "/adminList", method = RequestMethod.GET) public Result adminList(String province, Integer number, String mobile, String name, String pageNo, String pageSize) { Result res = new Result(); Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(adminService.listAdmin(province, number, mobile, name, pNo, pSize)); return res; } /** * 新增管理员 * * @param admin * @param bindingResult * @return */ @RequestMapping(value = "/insertAdmin", method = RequestMethod.POST) public Result insertAdmin(@Valid InputAdmin admin, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), AdminFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(admin.getMobile())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "登录帐号为空", "登录帐号")); return res; } if (StringUtils.isBlank(admin.getName())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "用户名为空", "用户名")); return res; } Admin a = adminService.selectByMobile(admin.getMobile().trim()); if (null != a) { res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "当前用户已注册!")); return res; } Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); Admin ad = new Admin(); BeanUtils.copyProperties(admin, ad); ad.setId(UUID.randomUUID().toString()); ad.setCreateTime(now.getTime()); if (StringUtils.isBlank(ad.getPassword())) { ad.setPassword("123456"); } ad.setPassword(passwordUtil.getEncryptPwd(ad)); adminService.insert(ad); return res; } /** * 管理员详情 * * @param id * @return */ @RequestMapping(value = "/adminDetail", method = RequestMethod.GET) public Result adminDetail(String id) { Result res = new Result(); if (StringUtils.isBlank(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id")); return res; } AdminDetail ad = adminService.selectAdminDetail(id); res.setData(ad); return res; } /** * 修改管理员信息 * * @param admin * @param bindingResult * @return */ @RequestMapping(value = "/updateAdmin", method = RequestMethod.POST) public Result updateAdmin(@RequestParam(value = "roles[]", required = false) String[] roleIds, @Valid InputAdmin admin, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), AdminFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (null == admin.getId()) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id")); return res; } if (null == admin.getMobile()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "登录帐号为空", "登录帐号")); return res; } if (null == admin.getName()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "用户名为空", "用户名")); return res; } Admin aa = adminService.selectByMobile(admin.getMobile().trim()); if (null != aa && !admin.getId().equals(aa.getId())) { res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "当前用户已注册!")); return res; } Admin a = adminService.selectByPrimaryKey(admin.getId()); if (null == a) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id")); return res; } Admin ad = new Admin(); BeanUtils.copyProperties(admin, ad); List roles = new ArrayList(); if (roleIds != null && roleIds.length > 0) { for (String role : roleIds) { roles.add(role); } } res.setData(adminService.updateByPrimaryKeySelective(ad, roles)); return res; } /** * 重置管理员密码 * * @param id * @return */ @RequestMapping(value = "/resetPwd", method = RequestMethod.POST) public Result resetPwd(String id) { Result res = new Result(); if (StringUtils.isBlank(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id")); return res; } Admin admin = adminService.selectByPrimaryKey(id); if (null == admin) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "用户id")); return res; } Admin a = new Admin(); a.setId(admin.getId()); a.setCreateTime(admin.getCreateTime()); a.setPassword("123456"); a.setPassword(passwordUtil.getEncryptPwd(a)); res.setData(adminService.updateByPrimaryKey(a)); return res; } /** * 新增用户 * * @param mobile * @param type * @param unitName * @return */ @RequestMapping(value = "/addNewUser", method = RequestMethod.POST) public Result addNewUser(@Valid InputUser inputUser, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), UserFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(inputUser.getMobile())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "mobile", "mobile")); return res; } if (null == inputUser.getType()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "type", "type")); return res; } User user = userService.selectByMobieAndType(inputUser.getMobile().trim(), inputUser.getType()); if (null != user) { res.getError().add(buildError(ErrorConstants.USER_ALREADY_EXIST, "当前用户已注册!")); return res; } User u = new User(); u.setId(UUID.randomUUID().toString()); u.setMobile(inputUser.getMobile().trim()); u.setPassword(inputUser.getMobile().trim()); u.setType(inputUser.getType()); Calendar now = Calendar.getInstance(); now.set(Calendar.MILLISECOND, 0); u.setCreateTime(now.getTime()); u.setPassword(passwordUtil.getEncryptPwd(u)); u.setLvl(0); u.setAid(TokenManager.getAdminId()); userService.insertRegister(u, "", inputUser.getUnitName()); return res; } /** * 个人用户列表 * * @param mobile * @param email * @param createTime * @param number * @param auditStatus * @param pageNo * @param pageSize * @return * @throws ParseException */ @RequestMapping(value = "/userList", method = RequestMethod.POST) public Result userList(String mobile, String email, @RequestParam(name = "createTime[]", required = false) String[] createTime, Integer number, String aftUsername, Integer auditStatus, String pageNo, String pageSize) throws ParseException { Result res = new Result(); Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(getUserList(mobile, email, createTime, number, aftUsername, auditStatus, pNo, pSize)); return res; } /** * 个人用户信息明细 * * @param uid * @return */ @RequestMapping(value = "/userDetail", method = RequestMethod.POST) public Result userDetail(String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } res.setData(userIdentityService.selectUserIdentityByUserId(uid)); return res; } /** * 修改个人用户信息 * * @return * @throws ParseException */ @RequestMapping(value = "/updateUserDetail", method = RequestMethod.POST) public Result updateUserDetail(@Valid InputUserIdentity userIdentity, BindingResult bindingResult, String paymentDateFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), UserIdentityFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (null == userIdentity.getUid()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!StringUtils.isBlank(paymentDateFormattedDate)) { try { userIdentity.setPaymentDate(DateUtils.parseDate(paymentDateFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } UserIdentity ui = new UserIdentity(); BeanUtils.copyProperties(userIdentity, ui); if (StringUtils.isBlank(ui.getId())) { ui.setId(UUID.randomUUID().toString()); ui.setAuditStatus(null == ui.getAuditStatus() ? 0 : ui.getAuditStatus()); if (IdentityAuditStatus.UNCOMMITTED.getCode() == ui.getAuditStatus()) { ui.setProcess(IdentityProcess.UNCOMMITTED.getCode()); } else if (IdentityAuditStatus.COMMITTED.getCode() == ui.getAuditStatus() || IdentityAuditStatus.UNPAID.getCode() == ui.getAuditStatus()) { ui.setProcess(IdentityProcess.COMMITTED.getCode()); } else if (IdentityAuditStatus.PAID.getCode() == ui.getAuditStatus()) { ui.setProcess(IdentityProcess.FILLIN.getCode()); } else if (IdentityAuditStatus.NOTPASSED.getCode() == ui.getAuditStatus() || IdentityAuditStatus.PASSED.getCode() == ui.getAuditStatus()) { ui.setProcess(IdentityProcess.RESULTS.getCode()); } res.setData(userIdentityService.insert(ui)); } else { ui.setAuditStatus(null == ui.getAuditStatus() ? 0 : ui.getAuditStatus()); if (IdentityAuditStatus.UNCOMMITTED.getCode() == ui.getAuditStatus()) { ui.setProcess(IdentityProcess.UNCOMMITTED.getCode()); } else if (IdentityAuditStatus.COMMITTED.getCode() == ui.getAuditStatus() || IdentityAuditStatus.UNPAID.getCode() == ui.getAuditStatus()) { ui.setProcess(IdentityProcess.COMMITTED.getCode()); } else if (IdentityAuditStatus.PAID.getCode() == ui.getAuditStatus()) { ui.setProcess(IdentityProcess.FILLIN.getCode()); } else if (IdentityAuditStatus.NOTPASSED.getCode() == ui.getAuditStatus() || IdentityAuditStatus.PASSED.getCode() == ui.getAuditStatus()) { ui.setProcess(IdentityProcess.RESULTS.getCode()); } res.setData(userIdentityService.updateUserDetail(ui)); } return res; } /** * 团体用户列表 * * @param mobile * @param email * @param createTime * @param number * @param auditStatus * @param pageNo * @param pageSize * @return * @throws ParseException */ @RequestMapping(value = "/orgList", method = RequestMethod.POST) public Result orgList(String uid, String mobile, String email, @RequestParam(name = "createTime[]", required = false) String[] createTime, Integer number, String unitName, Integer auditStatus, String pageNo, String pageSize) throws ParseException { Result res = new Result(); Integer pNo = 1; Integer pSize = 10; if (StringUtils.isNumeric(pageSize)) { pSize = Integer.parseInt(pageSize); } if (StringUtils.isNumeric(pageNo)) { pNo = Integer.parseInt(pageNo); } res.setData(getOrgList(uid, mobile, email, createTime, number, unitName, auditStatus, pNo, pSize)); return res; } /** * 团体用户明细 * * @param uid * @return */ @RequestMapping(value = "/orgDetail", method = RequestMethod.POST) public Result orgDetail(String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } res.setData(organizationIdentityService.selectOrgIdentityByUserId(uid)); return res; } /** * 修改团体用户信息 * * @param orgIdentity * @return * @throws ParseException */ @RequestMapping(value = "/updateOrgDetail", method = RequestMethod.POST) public Result updateOrgDetail(@Valid InputOrganizationIdentity orgIdentity, BindingResult bindingResult, String paymentDateFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrganizationIdentityFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (null == orgIdentity.getUid()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!StringUtils.isBlank(paymentDateFormattedDate)) { try { orgIdentity.setPaymentDate(DateUtils.parseDate(paymentDateFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { } } OrganizationIdentity oi = new OrganizationIdentity(); BeanUtils.copyProperties(orgIdentity, oi); if (StringUtils.isBlank(oi.getId())) { oi.setId(UUID.randomUUID().toString()); oi.setIdentityType(null == oi.getIdentityType() ? 0 : oi.getIdentityType()); oi.setAuditStatus(null == oi.getAuditStatus() ? 0 : oi.getAuditStatus()); if (IdentityAuditStatus.UNCOMMITTED.getCode() == oi.getAuditStatus()) { oi.setProcess(IdentityProcess.UNCOMMITTED.getCode()); } else if (IdentityAuditStatus.COMMITTED.getCode() == oi.getAuditStatus() || IdentityAuditStatus.UNPAID.getCode() == oi.getAuditStatus()) { oi.setProcess(IdentityProcess.COMMITTED.getCode()); } else if (IdentityAuditStatus.PAID.getCode() == oi.getAuditStatus()) { oi.setProcess(IdentityProcess.FILLIN.getCode()); } else if (IdentityAuditStatus.NOTPASSED.getCode() == oi.getAuditStatus() || IdentityAuditStatus.PASSED.getCode() == oi.getAuditStatus()) { oi.setProcess(IdentityProcess.RESULTS.getCode()); } oi.setListed(null == oi.getListed() ? 0 : oi.getListed()); oi.setListedType(null == oi.getListedType() ? 0 : oi.getListedType()); res.setData(organizationIdentityService.insert(oi)); } else { oi.setAuditStatus(null == oi.getAuditStatus() ? 0 : oi.getAuditStatus()); if (IdentityAuditStatus.UNCOMMITTED.getCode() == oi.getAuditStatus()) { oi.setProcess(IdentityProcess.UNCOMMITTED.getCode()); } else if (IdentityAuditStatus.COMMITTED.getCode() == oi.getAuditStatus() || IdentityAuditStatus.UNPAID.getCode() == oi.getAuditStatus()) { oi.setProcess(IdentityProcess.COMMITTED.getCode()); } else if (IdentityAuditStatus.PAID.getCode() == oi.getAuditStatus()) { oi.setProcess(IdentityProcess.FILLIN.getCode()); } else if (IdentityAuditStatus.NOTPASSED.getCode() == oi.getAuditStatus() || IdentityAuditStatus.PASSED.getCode() == oi.getAuditStatus()) { oi.setProcess(IdentityProcess.RESULTS.getCode()); } res.setData(organizationIdentityService.updateOrgDetail(oi)); } return res; } /** * 团体用户人力资源情况列表 * * @param uid * 用户ID * @return */ @RequestMapping(value = "/orgHumanResource", method = RequestMethod.POST) public Result orgHumanResource(Integer year, String pageNo, String pageSize, String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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(orgHumanResourceService.listOrgHumanResource(year, pNo, pSize, uid)); return res; } /** * 新增及修改团体用户人力资源情况 * * @param orgHumanResource * @return */ @RequestMapping(value = "/updateOrgHumanResource", method = RequestMethod.POST) public Result updateOrgHumanResource(@Valid InputOrgHumanResource orgHumanResource, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgHumanResourceFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(orgHumanResource.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == orgHumanResource.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份")); return res; } if (!checkCertify(res, orgHumanResource.getUid()).getError().isEmpty()) { return res; } OrgHumanResource ohr = new OrgHumanResource(); BeanUtils.copyProperties(orgHumanResource, ohr); if (StringUtils.isBlank(ohr.getId())) { if (null != orgHumanResourceService.selectOrgHumanResourceByUidAndYear(ohr.getYear(), ohr.getUid())) { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度人力资源情况已录入!")); return res; } ohr.setId(UUID.randomUUID().toString()); ohr.setDeletedSign(0); orgHumanResourceService.insert(ohr); } else { orgHumanResourceService.updateByPrimaryKeySelective(ohr); } return res; } /** * 企业花名册上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadRoster", method = RequestMethod.POST) public Result uploadRoster(HttpServletRequest req, String sign, String uid, String year) { Result res = new Result(); if (StringUtils.isBlank(year)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示年份")); return res; } User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.ROSTER) { sign = sign + "_" + year; res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 企业社保情况表上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadSocialSecurity", method = RequestMethod.POST) public Result uploadSocialSecurity(HttpServletRequest req, String sign, String uid, String year) { Result res = new Result(); if (StringUtils.isBlank(year)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示年份")); return res; } User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.SOCIAL_SECURITY) { sign = sign + "_" + year; res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 企业花名册及社保情况表下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadHumanResource", method = RequestMethod.GET) public Result downloadHumanResource(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "企业人员情况id")); return res; } OrgHumanResource ohr = orgHumanResourceService.selectByPrimaryKey(id); if (ohr == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "企业人员情况id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.ROSTER) { downloadFile(response, ohr.getRosterDownloadFileName(), ohr.getRosterUrl()); } else if (attachmentType == AttachmentType.SOCIAL_SECURITY) { downloadFile(response, ohr.getSocialSecurityDownloadFileName(), ohr.getSocialSecurityUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 企业参与国家标准或行业标准制定情况明细列表 * * @param uid * 用户id * @return */ @RequestMapping(value = "/standard", method = RequestMethod.POST) public Result standard(String uid, String standardName, String standardNumber, Integer standardLevel, Integer participateWay, String pageNo, String pageSize) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid)); return res; } /** * 企业参与国家标准或行业标准制定情况明细新增及修改 * * @param orgStandard * @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 (StringUtils.isBlank(orgStandard.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == orgStandard.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份")); return res; } if (!checkCertify(res, orgStandard.getUid()).getError().isEmpty()) { return res; } OrgStandard os = new OrgStandard(); BeanUtils.copyProperties(orgStandard, os); if (StringUtils.isBlank(os.getId())) { os.setId(UUID.randomUUID().toString()); 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; } /** * 上传标准制定附件 * * @param req * @param sign * @param uid * @param year * @return */ @RequestMapping(value = "/uploadStandard", method = RequestMethod.POST) public Result uploadStandard(HttpServletRequest req, String sign, String uid) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.STANDARD) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 下载标准制定附件 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadStandard", method = RequestMethod.GET) public Result downloadStandard(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "标准制定id")); return res; } OrgStandard os = orgStandardService.selectByPrimaryKey(id); if (os == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "标准指定id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.STANDARD) { downloadFile(response, os.getStandardDownloadFileName(), os.getEnclosureUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除标准制定情况记录 * * @param id * 记录id * @return */ @RequestMapping(value = "/deleteStandard", method = RequestMethod.POST) public Result deleteStandard(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgStandardService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 知识产权列表 * * @param pageNo * @param pageSize * @return */ @RequestMapping(value = "/intellectualList", method = RequestMethod.POST) public Result intellectualList(String pageNo, String pageSize, String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid)); return res; } /** * 知识产权详情 * * @return */ @RequestMapping(value = "/intellectualDetail", method = RequestMethod.GET) public Result intellectualDetail(String id, Integer type) { Result res = new Result(); if (StringUtils.isBlank(id)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "知识产权ID")); return res; } if (null == type) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "知识产权TYPE")); return res; } OrgIntellectualProperty oip = orgIntellectualPropertyService.selectByPrimaryKey(id); if (null == oip) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "知识产权ID")); return res; } if (IntellectualPropertyType.PATENT.getCode() == type) { res.setData(orgIntellectualPropertyService.selectPatentTypeDetail(id)); } else if (IntellectualPropertyType.COPYRIGHT.getCode() == type) { res.setData(orgIntellectualPropertyService.selectCopyrightTypeDetail(id)); } else if (IntellectualPropertyType.COMMON.getCode() == type) { OrgIntellectualPropertyDetailBo oipdb = new OrgIntellectualPropertyDetailBo(); BeanUtils.copyProperties(oip, oipdb); res.setData(oipdb); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "知识产权TYPE")); } 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 (StringUtils.isBlank(orgIntellectualProperty.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, orgIntellectualProperty.getUid()).getError().isEmpty()) { 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.setEvaluationCategory((oip.getCatagory() >= 2 && oip.getCatagory() <= 4) ? 1 : 0); oip.setDeletedSign(0); oip.setType(IntellectualPropertyType.COMMON.getCode()); res.setData(orgIntellectualPropertyService.insert(oip)); } else { oip.setEvaluationCategory(orgIntellectualProperty.getCatagory() <= 2 ? 1 : 0); res.setData(orgIntellectualPropertyService.updateByPrimaryKeySelective(oip)); } return res; } /** * 知识产权证书上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadPropertyRight", method = RequestMethod.POST) public Result uploadPropertyRight(HttpServletRequest req, String sign, String uid) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.PROPERTY_RIGHT) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 知识产权证书下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadPropertyRight", method = RequestMethod.GET) public Result downloadPropertyRight(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "知识产权id")); return res; } OrgIntellectualProperty olp = orgIntellectualPropertyService.selectByPrimaryKey(id); if (olp == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "知识产权id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.PROPERTY_RIGHT) { downloadFile(response, olp.getPropertyRightDownloadFileName(), olp.getPropertyRightUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 知识产权稿件下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadManuscript", method = RequestMethod.GET) public Result downloadManuscript(HttpServletResponse response, String sign, String id, Integer type) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "知识产权id")); return res; } if (null == type) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "知识产权TYPE")); return res; } OrgIntellectualProperty olp = orgIntellectualPropertyService.selectByPrimaryKey(id); if (olp == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "知识产权ID")); return res; } String fileName = null; String downloadUrl = null; if (IntellectualPropertyType.PATENT.getCode() == type) { PatentInfo pi = patentInfoService.selectByPrimaryKey(olp.getPid()); if (null == pi) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "知识产权ID及TYPE")); return res; } fileName = pi.getPatentWritingDownloadFileName(); downloadUrl = pi.getPatentWritingUrl(); } else if (IntellectualPropertyType.COPYRIGHT.getCode() == type) { CopyrightInfoDetail ci = copyrightInfoService.findByPrimaryKey(olp.getPid()); if (null == ci) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "知识产权ID及TYPE")); return res; } fileName = ci.getApplicationUrlDownloadFileName(); downloadUrl = ci.getApplicationUrl(); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "知识产权TYPE")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.MANUSCRIPT) { downloadFile(response, fileName, downloadUrl); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除知识产权记录 * * @param id * @return */ @RequestMapping(value = "/deleteIntellectual", method = RequestMethod.POST) public Result deleteIntellectual(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgIntellectualPropertyService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 上年度高新技术产品(服务)情况列表 * * @param pageNo * @param pageSize * @return */ @RequestMapping(value = "/techProductList", method = RequestMethod.POST) public Result techProductList(String pageNo, String pageSize, String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid)); 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 (StringUtils.isBlank(orgTechProduct.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, orgTechProduct.getUid()).getError().isEmpty()) { return res; } OrgTechProduct otp = new OrgTechProduct(); BeanUtils.copyProperties(orgTechProduct, otp); if (StringUtils.isBlank(otp.getId())) { otp.setId(UUID.randomUUID().toString()); 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(orgTechProduct); return res; } /** * 高新技术产品台帐上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadTecProduct", method = RequestMethod.POST) public Result uploadTecProduct(HttpServletRequest req, String sign, String uid) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.TECH_PRODUCT) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 高新技术产品台帐下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadTecProduct", method = RequestMethod.GET) public Result downloadTecProduct(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "高新技术产品id")); return res; } OrgTechProduct otp = orgTechProductService.selectByPrimaryKey(id); if (otp == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "高新技术产品id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.TECH_PRODUCT) { downloadFile(response, otp.getAccountDownloadFileName(), otp.getAccountUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除上年度高新技术产品(服务)情况记录 * * @param ids * @return */ @RequestMapping(value = "/deleteTechProduct", method = RequestMethod.POST) public Result deleteTechProduct(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgTechProductService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 企业研究开发活动情况表入口 * * @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, String uid) throws ParseException { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid)); 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) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgActivityFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(orgActivity.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, orgActivity.getUid()).getError().isEmpty()) { 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()); orgActivityService.insert(oa); } else { orgActivityService.updateOrgActivity(oa); } res.setData(orgActivity); return res; } /** * 研发活动立项证明材料上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadProof", method = RequestMethod.POST) public Result uploadProof(HttpServletRequest req, String sign, String uid) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.PROOF) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 研发活动立项证明材料下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadProof", method = RequestMethod.GET) public Result downloadProof(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "研发活动id")); return res; } OrgActivity oa = orgActivityService.selectOrgActivityByPrimaryKey(id); if (oa == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "研发活动id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.PROOF) { downloadFile(response, oa.getProofDownloadFileName(), oa.getProofUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除企业研究开发活动情况 * * @param ids * @return */ @RequestMapping(value = "/deleteActivity", method = RequestMethod.POST) public Result deleteActivity(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgActivityService.deleteByPrimaryKey(Arrays.asList(ids))); orgActivityCostService.deleteByAid(Arrays.asList(ids)); } return res; } /** * 企业年度研究开发费用结构明细表列表 * * @return * @throws ParseException */ @RequestMapping(value = "/activityCostList", method = RequestMethod.POST) public Result activityCostList(String activityNumber, String startDateFormattedDate, String endDateFormattedDate, String pageNo, String pageSize, String uid, Integer year) throws ParseException { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid, year)); return res; } /** * 企业年度研究开发费用结构明细表(新增+修改) * * @return * @throws ParseException */ @RequestMapping(value = "/activityCost", method = RequestMethod.POST) public Result activityCost(@Valid InputOrgActivityCost orgActivityCost, BindingResult bindingResult, String signDateFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgActivityFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(orgActivityCost.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (StringUtils.isBlank(orgActivityCost.getAid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到研发活动", "研发活动ID")); return res; } if (null == orgActivityCost.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份")); return res; } if (!checkCertify(res, orgActivityCost.getUid()).getError().isEmpty()) { return res; } if (StringUtils.isBlank(signDateFormattedDate)) { try { orgActivityCost.setSignDate(DateUtils.parseDate(signDateFormattedDate, AFTConstants.YYYYMMDD)); } catch (ParseException e) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "企业填报人签字日期")); return res; } } OrgActivityCost oac = new OrgActivityCost(); BeanUtils.copyProperties(orgActivityCost, oac); if (StringUtils.isBlank(oac.getId())) { if (null != orgActivityCostService.selectOrgActivityCostByAidAndYear(oac.getAid(), oac.getYear())) { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "该研究项目当前年份费用详情已录入!")); return res; } OrgActivity ac = orgActivityService.selectOrgActivityByPrimaryKey(oac.getAid()); if (null != ac) { Calendar c = Calendar.getInstance(); c.setTime(ac.getStartDate()); Integer s = c.get(Calendar.YEAR); c.setTime(ac.getEndDate()); Integer e = c.get(Calendar.YEAR); if (oac.getYear() < s || oac.getYear() > e) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "年份")); return res; } oac.setStartDate(null == ac.getStartDate() ? null : ac.getStartDate()); oac.setEndDate(null == ac.getEndDate() ? null : ac.getEndDate()); oac.setId(UUID.randomUUID().toString()); oac.setDeletedSign(0); orgActivityCostService.insert(oac); } else { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到研发活动", "研发活动ID")); return res; } } else { orgActivityCostService.updateByPrimaryKeySelective(oac); } return res; } /** * 研发活动费用台帐上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadActivityCost", method = RequestMethod.POST) public Result uploadActivityCost(HttpServletRequest req, String sign, String uid) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.ACTIVITY_COST_ACCOUNT) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 研发活动费用台帐下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadActivityCost", method = RequestMethod.GET) public Result downloadActivityCost(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", " 研发活动费用id")); return res; } OrgActivityCost oac = orgActivityCostService.selectByPrimaryKey(id); if (oac == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", " 研发活动费用id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.ACTIVITY_COST_ACCOUNT) { downloadFile(response, oac.getAccountDownloadFileName(), oac.getAccountUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除企业年度研究开发费用结构明细记录 * * @param ids * @return */ @RequestMapping(value = "/deleteActivityCost", method = RequestMethod.POST) public Result deleteActivityCost(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgActivityCostService.batchDeleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 获取当前用户已录入项目标号列表 * * @param uid * @return */ @RequestMapping(value = "/activityNumber", method = RequestMethod.POST) public Result listActivityNumber(String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } List activityNumberBo = orgActivityService.selectOrgActivityNumberBoByUid(uid); res.setData(activityNumberBo); return res; } /** * 企业纳税申报信息列表 * * @return */ @RequestMapping(value = "/ratepay", method = RequestMethod.POST) public Result ratepay(Integer year, String pageNo, String pageSize, String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid)); return res; } /** * 企业纳税信息详情(获取同年度财务报表重复数据) * * @param uid * @param year * @return */ @RequestMapping(value = "/ratepayDetail", method = RequestMethod.GET) public Result ratepayDetail(String uid, Integer year) { Result res = new Result(); if (null == uid) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == year) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份")); return res; } OrgFinance of = orgFinanceService.selectFinanceByUidAndYear(uid, year); if (null != of) { Map map = new HashMap(); map.put(FinanceRatepayFields.GROSSPROFIT.getCode(), of.getGrossProfit()); map.put(FinanceRatepayFields.MANAGEMENTCOST.getCode(), of.getManagementCost()); map.put(FinanceRatepayFields.OPERATINGPROFIT.getCode(), of.getOperatingProfit()); map.put(FinanceRatepayFields.RESEARCHCOST.getCode(), of.getResearchCost()); res.setData(map); } 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 (StringUtils.isBlank(orgRatepay.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == orgRatepay.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份")); return res; } if (!checkCertify(res, orgRatepay.getUid()).getError().isEmpty()) { return res; } OrgRatepay rate = new OrgRatepay(); BeanUtils.copyProperties(orgRatepay, rate); if (StringUtils.isBlank(rate.getId())) { if (null == orgRatepayService.selectRatepayByUidAndYear(rate.getUid(), rate.getYear())) { rate.setId(UUID.randomUUID().toString()); rate.setDeletedSign(0); orgRatepayService.insert(rate); } else { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度纳税申报表已录入!")); return res; } } else { orgRatepayService.updateByPrimaryKeySelective(rate); } return res; } /** * 企业纳税申报表上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadRatepay", method = RequestMethod.POST) public Result uploadRatepay(HttpServletRequest req, String sign, String uid, String year) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } if (StringUtils.isBlank(year)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示年份")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.RATEPAY) { sign = sign + "_" + year; res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 企业纳税申报表下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadRatepay", method = RequestMethod.GET) public Result downloadRatepay(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "企业纳税申报id")); return res; } OrgRatepay ratepay = orgRatepayService.selectByPrimaryKey(id); if (ratepay == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "企业纳税申报id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.RATEPAY) { downloadFile(response, ratepay.getTaxReturnDownloadFileName(), ratepay.getTaxReturnUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 刪除企业纳税申报信息 * * @param ids * @return */ @RequestMapping(value = "/deleteRatepay", method = RequestMethod.POST) public Result deleteRatepay(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgRatepayService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 财务报表信息列表 * * @return */ @RequestMapping(value = "/finance", method = RequestMethod.POST) public Result finance(Integer year, String pageNo, String pageSize, String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid)); return res; } /** * 财务报表详情(获取同年度纳税申报表重复数据) * * @return */ @RequestMapping(value = "/financeDetail", method = RequestMethod.GET) public Result financeDetail(String uid, Integer year) { Result res = new Result(); if (null == uid) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == year) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份")); return res; } OrgRatepay ratepay = orgRatepayService.selectRatepayByUidAndYear(uid, year); if (null != ratepay) { Map map = new HashMap(); map.put(FinanceRatepayFields.GROSSPROFIT.getCode(), ratepay.getGrossProfit()); map.put(FinanceRatepayFields.MANAGEMENTCOST.getCode(), ratepay.getManagementCost()); map.put(FinanceRatepayFields.OPERATINGPROFIT.getCode(), ratepay.getOperatingProfit()); map.put(FinanceRatepayFields.RESEARCHCOST.getCode(), ratepay.getResearchCost()); res.setData(map); } 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 (StringUtils.isBlank(orgFinance.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == orgFinance.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到年份", "年份")); return res; } if (!checkCertify(res, orgFinance.getUid()).getError().isEmpty()) { return res; } OrgFinance of = new OrgFinance(); BeanUtils.copyProperties(orgFinance, of); if (StringUtils.isBlank(of.getId())) { if (null == orgFinanceService.selectFinanceByUidAndYear(of.getUid(), of.getYear())) { of.setId(UUID.randomUUID().toString()); of.setDeletedSign(0); orgFinanceService.insert(of); } else { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年度财务报表已录入!")); return res; } } else { orgFinanceService.updateByPrimaryKeySelective(of); } return res; } /** * 企业财务报表上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadFinance", method = RequestMethod.POST) public Result uploadFinance(HttpServletRequest req, String sign, String uid, String year) { Result res = new Result(); if (StringUtils.isBlank(year)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示年份")); return res; } User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.FINANCE) { sign = sign + "_" + year; res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 企业财务报表下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadFinance", method = RequestMethod.GET) public Result downloadFinance(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "企业财务报表id")); return res; } OrgFinance of = orgFinanceService.selectByPrimaryKey(id); if (of == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "企业财务报表id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.FINANCE) { downloadFile(response, of.getFinanceDownloadFileName(), of.getFinanceUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除财务报表 * * @param ids * @return */ @RequestMapping(value = "/deleteFinance", method = RequestMethod.POST) public Result deleteFinance(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgFinanceService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 科技成果转化情况列表 * * @param pageNo * @param pageSize * @return */ @RequestMapping(value = "/achievementList", method = RequestMethod.POST) public Result achievementList(String pageNo, String pageSize, String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid)); 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 (StringUtils.isBlank(achievement.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, achievement.getUid()).getError().isEmpty()) { return res; } OrgTechAchievement ota = new OrgTechAchievement(); BeanUtils.copyProperties(achievement, ota); if (StringUtils.isBlank(ota.getId())) { ota.setId(UUID.randomUUID().toString()); ota.setDeletedSign(0); orgTechAchievementService.insert(ota); } else { orgTechAchievementService.updateByPrimaryKeySelective(ota); } return res; } /** * 科技成果附件上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadAchievement", method = RequestMethod.POST) public Result uploadAchievement(HttpServletRequest req, String sign, String uid) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.ACHIEVEMENT) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 科技成果附件下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadAchievement", method = RequestMethod.GET) public Result downloadAchievement(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果id")); return res; } OrgTechAchievement ota = orgTechAchievementService.selectByPrimaryKey(id); if (ota == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "科技成果id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.ACHIEVEMENT) { downloadFile(response, ota.getEnclosureDownloadFileName(), ota.getEnclosureUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除科技成果转化情况 * * @param ids * @return */ @RequestMapping(value = "/deleteAchievement", method = RequestMethod.POST) public Result deleteAchievement(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgTechAchievementService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 企业荣誉及其他证明材料列表 * * @return */ @RequestMapping(value = "/honorList", method = RequestMethod.POST) public Result honorList(String pageNo, String pageSize, String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { 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, uid)); 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 (StringUtils.isBlank(honor.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == honor.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份")); return res; } if (!checkCertify(res, honor.getUid()).getError().isEmpty()) { 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.setDeletedSign(0); orgHonorDatumService.insert(ohd); } else { orgHonorDatumService.updateByPrimaryKeySelective(ohd); } return res; } /** * 荣誉及其他证明材料上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadHonor", method = RequestMethod.POST) public Result uploadHonor(HttpServletRequest req, String sign, String uid) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.HONOR) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 荣誉及其他证明材料下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadHonor", method = RequestMethod.GET) public Result downloadHonor(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "荣誉及其他证明材料id")); return res; } OrgHonorDatum ohd = orgHonorDatumService.selectByPrimaryKey(id); if (ohd == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "荣誉及其他证明材料id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.HONOR) { downloadFile(response, ohd.getEnclosureDownloadFileName(), ohd.getEnclosureUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除企业荣誉及其他证明材料 * * @param ids * @return */ @RequestMapping(value = "/deleteHonor", method = RequestMethod.POST) public Result deleteHonor(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgHonorDatumService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 技术中心入口 * * @return */ @RequestMapping(value = "/center", method = RequestMethod.POST) public Result center(String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { return res; } res.setData(orgTechCenterService.selectOrgTechCenterByUid(uid)); 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 (StringUtils.isBlank(orgTechCenter.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, orgTechCenter.getUid()).getError().isEmpty()) { 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.setDeletedSign(0); orgTechCenterService.insert(otc); } else { orgTechCenterService.updateByPrimaryKeySelective(otc); } return res; } /** * 研发部门制度上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadInstitution", method = RequestMethod.POST) public Result uploadInstitution(HttpServletRequest req, String sign, String uid) { Result res = new Result(); User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.INSTITUTION) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 研发部门制度下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadInstitution", method = RequestMethod.GET) public Result downloadInstitution(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "研发部门id")); return res; } OrgTechCenter otc = orgTechCenterService.selectByPrimaryKey(id); if (otc == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "研发部门id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.INSTITUTION) { downloadFile(response, otc.getSystemDownloadFileName(), otc.getSystemUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 产学研情况列表 * * @return */ @RequestMapping(value = "/centerDetail", method = RequestMethod.GET) public Result centerDetail(String pageNo, String pageSize, String cid) { Result res = new Result(); if (StringUtils.isBlank(cid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "技术中心ID")); 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 (!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; } /** * 产学研技术中心协议上传 * * @param req * @param sign * @param uid * @return */ @RequestMapping(value = "/uploadProtocol", method = RequestMethod.POST) public Result uploadProtocol(HttpServletRequest req, String sign, String uid) { Result res = new Result(); if (null == uid) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "用户ID")); return res; } User curUser = userService.selectByPrimaryKey(uid); if (!checkCertify(res, curUser)) { return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.PROTOCOL) { res.setData(handleFiles(res, "/cognizance/", true, req, sign, uid)); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 产学研技术中心协议下载 * * @param response * @param sign * @param id * @return */ @RequestMapping(value = "/downloadProtocol", method = RequestMethod.GET) public Result downloadProtocol(HttpServletResponse response, String sign, String id) { Result res = new Result(); if (StringUtils.isEmpty(id)) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "产学研技术中心id")); return res; } OrgTechCenterDetail otcd = orgTechCenterDetailService.selectByPrimaryKey(id); if (otcd == null) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "产学研技术中心id")); return res; } AttachmentType attachmentType = AttachmentType.getField(sign); if (attachmentType == AttachmentType.PROTOCOL) { downloadFile(response, otcd.getProtocolDownloadFileName(), otcd.getProtocolUrl()); } else { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "附件标示")); } return res; } /** * 删除技术中心明细 * * @param ids * @return */ @RequestMapping(value = "/deleteOrgTechCenterDetail", method = RequestMethod.POST) public Result deleteOrgTechCenterDetail(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgTechCenterDetailService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 获取公司联系人 * * @return */ @RequestMapping(value = "/getContacts", method = RequestMethod.GET) public Result getContacts(String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } res.setData(organizationIdentityService.selectContactsByUserId(uid)); return res; } /** * 获取公司 */ @RequestMapping(value = "/getUnitNames", method = RequestMethod.GET) public Result getUnitNames() { Result res = new Result(); List list = organizationIdentityService.selectAllOrgIndentity(); Map map = new TreeMap(); for (OrganizationIdentity o : list) { map.put(o.getUid(), o.getUnitName()); } res.setData(map); return res; } /** * 高企认定列表 * * @param locationProvince * @param unitName * @return */ @RequestMapping(value = "/listCognizance", method = RequestMethod.POST) public Result listCognizance(String uid, String unitName, String locationProvince, String pageNo, String pageSize) { Result res = new Result(); 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(uid, unitName, locationProvince, pNo, pSize)); return res; } /** * 高企认定咨询师下拉列表 * * @return */ @RequestMapping(value = "/getConsultant", method = RequestMethod.GET) public Result getConsultant() { Result res = new Result(); List list = adminService.selectCognizanceConsultant(); Map map = new TreeMap(); for (Admin o : list) { map.put(o.getId(), o.getName()); } res.setData(map); return res; } /** * 高企负责人下拉 * * @return */ @RequestMapping(value = "/getPrincipal", method = RequestMethod.GET) public Result getPrincipal() { Result res = new Result(); List list = adminService.selectCognizancePrincipal(); Map map = new TreeMap(); for (Admin o : list) { map.put(o.getId(), o.getName()); } res.setData(map); 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 (StringUtils.isBlank(cog.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == cog.getYear()) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份")); return res; } if (!checkCertify(res, cog.getUid()).getError().isEmpty()) { return res; } LatelyCogRecord lcr = orgCognizanceService.selectLatelyRecord(cog.getUid()); if (null != lcr && null != lcr.getState() && OrgCognizanceStatus.SETTLEMENT.getCode() != lcr.getState() && OrgCognizanceStatus.FOSTER.getCode() != lcr.getState() && OrgCognizanceStatus.CALLBACK.getCode() != lcr.getState()) { res.getError().add(buildError(ErrorConstants.STATUS_ERROR, "", "高企申请中!无法提交新申请!")); return res; } if (null != lcr && null != lcr.getState() && OrgCognizanceStatus.SETTLEMENT.getCode() == lcr.getState()) { if (null == lcr.getIssuingDate()) { res.getError().add(buildError(ErrorConstants.STATUS_ERROR, "", "高企申请中!无法提交新申请!")); return res; } try { if (Boolean.FALSE == TimeUtils.checkCogExpire(lcr.getIssuingDate())) { res.getError().add(buildError(ErrorConstants.STATUS_ERROR, "", "高企认定未过期,无法提交新申请!")); return res; } } catch (ParseException e) { } } OrgCognizance oc = new OrgCognizance(); BeanUtils.copyProperties(cog, oc); orgCognizanceService.insertCognizance(oc, TokenManager.getAdminId()); return res; } /** * 高企认定详情入口 * * @param uid * @param cid * @return */ @RequestMapping(value = "/cognizanceDetail", method = RequestMethod.POST) public Result cognizanceDetail(String uid, String cid, Integer year) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); 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; } if (!checkCertify(res, uid).getError().isEmpty()) { return res; } res.setData(handleCognizanceDetail(uid, cid, year)); return res; } /** * 高企认定流转状态下拉 * * @return */ @RequestMapping(value = "/cognizanceStatus", method = RequestMethod.GET) public Result cognizanceStatus() { Result res = new Result(); res.setData(disposeCognizanceStatus()); return res; } /** * 高企认定流转状态 * * @param cid * @return */ @RequestMapping(value = "/cognizanceLog", method = RequestMethod.POST) public Result cognizanceLog(String cid) { Result res = new Result(); if (StringUtils.isBlank(cid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "高企ID")); return res; } res.setData(orgCognizanceLogService.selectOrgCognizanceLogByCid(cid)); return res; } /** * 保存高企认定详情 * * @throws ParseException */ @RequestMapping(value = "/disposeCognizanceDetail", method = RequestMethod.POST) public Result disposeCognizanceDetail(@Valid InputOrgCognizance cog, BindingResult bindingResult, String recordTimeFormattedDate) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), OrgCognizanceFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(cog.getId())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到", "高企认定")); return res; } OrgCognizance o = orgCognizanceService.selectByPrimaryKey(cog.getId()); if (null == o) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到", "高企认定")); return res; } if (OrgCognizanceStatus.CALLBACK.getCode() == o.getState()) { res.getError().add(buildError(ErrorConstants.RECORD_CALLBACK, "当前记录已退单,无法修改!")); return res; } if (OrgCognizanceStatus.SETTLEMENT.getCode() == o.getState()) { res.getError().add(buildError(ErrorConstants.RECORD_SETTLEMENT, "当前记录已结款,无法修改!")); return res; } if (!checkCertify(res, cog.getUid()).getError().isEmpty()) { return res; } Date recordTime = null; if (!StringUtils.isBlank(recordTimeFormattedDate)) { try { recordTime = DateUtils.parseDate(recordTimeFormattedDate, AFTConstants.YYYYMMDDHHMMSS); } catch (ParseException e) { } } OrgCognizance oc = new OrgCognizance(); OrgCognizanceLog ocl = new OrgCognizanceLog(); BeanUtils.copyProperties(cog, oc); BeanUtils.copyProperties(cog, ocl); orgCognizanceService.updateCognizance(oc, ocl, recordTime, TokenManager.getAdminId()); return res; } /** * 刪除高企认定 * * @param ids * @return */ @RequestMapping(value = "/deleteCognizance", method = RequestMethod.POST) public Result deleteCognizance(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgCognizanceService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 企业创新能力入口 * * @param uid * @return */ @RequestMapping(value = "/able", method = RequestMethod.POST) public Result able(String uid) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } res.setData(userAbilityService.selectUserAbilityByUserId(uid)); return res; } /** * 企业创新能力新增+保存 * * @param u * @return */ @RequestMapping(value = "/disposeAble", method = RequestMethod.POST) public Result disposeAble(@Valid InputUserAbility u, BindingResult bindingResult) { Result res = new Result(); if (bindingResult.hasErrors()) { res.getError().add(buildErrorByMsg(bindingResult.getFieldError().getDefaultMessage(), UserAbilityFields.getFieldDesc(bindingResult.getFieldError().getField()))); return res; } if (StringUtils.isBlank(u.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } UserAbility user = new UserAbility(); BeanUtils.copyProperties(u, user); if (StringUtils.isBlank(user.getId())) { user.setId(UUID.randomUUID().toString()); userAbilityService.insert(user); } else { userAbilityService.updateByPrimaryKeySelective(user); } return res; } /** * 年报列表 * * @return */ @RequestMapping(value = "/annualReport", method = RequestMethod.POST) public Result annualReport(String uid, Integer year, Integer state, String pageSize, String pageNo) { Result res = new Result(); res = checkCertify(res, uid); if (res.getError().isEmpty()) { 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, uid)); } return res; } /** * 企业年报详情 * * @param uid * @param year * @return */ @RequestMapping(value = "/annualReportDetail", method = RequestMethod.POST) public Result annualReportDetail(String uid, Integer year) { Result res = new Result(); if (StringUtils.isBlank(uid)) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (null == year) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "", "年份")); return res; } if (!checkCertify(res, uid).getError().isEmpty()) { return res; } res.setData(handleAnnualReport(uid, 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 (StringUtils.isBlank(orgAnnualReport.getUid())) { res.getError().add(buildError(ErrorConstants.PARAM_EMPTY_ERROR, "找不到用户", "用户")); return res; } if (!checkCertify(res, orgAnnualReport.getUid()).getError().isEmpty()) { res.getError().add(buildError(ErrorConstants.NON_CERTIFIED, "未通过实名认证,无法操作!")); return res; } OrgAnnualReport oar = new OrgAnnualReport(); BeanUtils.copyProperties(orgAnnualReport, oar); if (StringUtils.isBlank(oar.getId())) { if (null != orgAnnualReportService.selectAnnualReportByYearAndUid(oar.getYear(), oar.getUid())) { res.getError().add(buildError(ErrorConstants.DUPLICATE_DATA_ERROR, "当年企业年报已录入!")); return res; } else { oar.setId(UUID.randomUUID().toString()); 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; } /** * 删除企业年报记录 * * @param ids * @return */ @RequestMapping(value = "/deleteAnnualReport", method = RequestMethod.POST) public Result deleteAnnualReport(@RequestParam(name = "ids[]", required = false) String[] ids) { Result res = new Result(); if (ids == null || ids.length < 1) { res.getError().add(buildError(ErrorConstants.PARAM_ERROR, "", "")); } else { res.setData(orgAnnualReportService.deleteByPrimaryKey(Arrays.asList(ids))); } return res; } /** * 高企培育列表 * * @param pageNo * @param pageSize * @return */ @RequestMapping(value = "/cultivate", method = RequestMethod.POST) public Result cultivationList(String uid, String province, String unitName, String pageNo, String pageSize) { Result res = new Result(); 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.listCultivation(uid, province, unitName, pNo, pSize)); return res; } // 判断用户是否通过认证 private Result checkCertify(Result res, String uid) { OrganizationIdentity o = organizationIdentityService.selectOrgIdentityByUserId(uid); if (null == o || 5 != o.getAuditStatus()) { res.getError().add(buildError(ErrorConstants.NON_CERTIFIED, "未通过实名认证,无法操作!")); } return res; } // org团体列表 private Pagination getOrgList(String uid, String mobile, String email, String[] createTime, Integer number, String unitName, Integer auditStatus, Integer pNo, Integer pSize) throws ParseException { return userService.listOrg(uid, mobile, email, createTime, number, unitName, auditStatus, pNo, pSize); } // user个人列表 private Pagination getUserList(String mobile, String email, String[] createTime, Integer number, String aftUsername, Integer auditStatus, Integer pNo, Integer pSize) throws ParseException { return userService.listUser(mobile, email, createTime, number, aftUsername, auditStatus, pNo, pSize); } // 高企详情 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); } private Map disposeCognizanceStatus() { Map status = new TreeMap(); if (TokenManager.hasRole(AFTConstants.SUPERADMIN)) { for (OrgCognizanceStatus p : OrgCognizanceStatus.values()) { status.put(p.getCode().toString(), p.getDesc()); status.remove(OrgCognizanceStatus.OTHER.getCode().toString()); } } else { if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.CREATE.getCode())) { status.put(OrgCognizanceStatus.CREATE.getCode().toString(), OrgCognizanceStatus.CREATE.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.SIGN.getCode())) { status.put(OrgCognizanceStatus.SIGN.getCode().toString(), OrgCognizanceStatus.SIGN.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.DELIVERD.getCode())) { status.put(OrgCognizanceStatus.DELIVERD.getCode().toString(), OrgCognizanceStatus.DELIVERD.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.CIRCULATION.getCode())) { status.put(OrgCognizanceStatus.CIRCULATION.getCode().toString(), OrgCognizanceStatus.CIRCULATION.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.PREPARE.getCode())) { status.put(OrgCognizanceStatus.PREPARE.getCode().toString(), OrgCognizanceStatus.PREPARE.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.SUBMIT.getCode())) { status.put(OrgCognizanceStatus.SUBMIT.getCode().toString(), OrgCognizanceStatus.SUBMIT.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.ACCEPT.getCode())) { status.put(OrgCognizanceStatus.ACCEPT.getCode().toString(), OrgCognizanceStatus.ACCEPT.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.APPRVOVED.getCode())) { status.put(OrgCognizanceStatus.APPRVOVED.getCode().toString(), OrgCognizanceStatus.APPRVOVED.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.REJECT.getCode())) { status.put(OrgCognizanceStatus.REJECT.getCode().toString(), OrgCognizanceStatus.REJECT.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.ISSUING.getCode())) { status.put(OrgCognizanceStatus.ISSUING.getCode().toString(), OrgCognizanceStatus.ISSUING.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.EXPIRED.getCode())) { status.put(OrgCognizanceStatus.EXPIRED.getCode().toString(), OrgCognizanceStatus.EXPIRED.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.FOSTER.getCode())) { status.put(OrgCognizanceStatus.FOSTER.getCode().toString(), OrgCognizanceStatus.FOSTER.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.SETTLEMENT.getCode())) { status.put(OrgCognizanceStatus.SETTLEMENT.getCode().toString(), OrgCognizanceStatus.SETTLEMENT.getDesc()); } if (TokenManager.hasPermission("CognizanceStatus" + OrgCognizanceStatus.CALLBACK.getCode())) { status.put(OrgCognizanceStatus.CALLBACK.getCode().toString(), OrgCognizanceStatus.CALLBACK.getDesc()); } } return status; } private OrgCognizanceProportion disposeProportionStatus(String sign, Integer status, OrgCognizanceProportion ocp) { if (ProprotionFields.INSTITUTION.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setInstitution(ProportionStatus.FINISHED.getCode()); } else { ocp.setInstitution(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.ACTIVITY.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setActivity(ProportionStatus.FINISHED.getCode()); } else { ocp.setActivity(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.ACTIVITYCOST.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setActivityCost(ProportionStatus.FINISHED.getCode()); } else { ocp.setActivityCost(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.TECHPROJECT.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setTechProject(ProportionStatus.FINISHED.getCode()); } else { ocp.setTechProject(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.INTELLECTUALPROPERTY.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setIntellectualProperty(ProportionStatus.FINISHED.getCode()); } else { ocp.setIntellectualProperty(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.ACHIEVEMENT.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setAchievement(ProportionStatus.FINISHED.getCode()); } else { ocp.setAchievement(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.RATEPAY.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setRatepay(ProportionStatus.FINISHED.getCode()); } else { ocp.setRatepay(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.FINANCE.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setFinance(ProportionStatus.FINISHED.getCode()); } else { ocp.setFinance(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.HUMANRESOURCE.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setHumanResource(ProportionStatus.FINISHED.getCode()); } else { ocp.setHumanResource(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.HONORDATUM.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setHonorDatum(ProportionStatus.FINISHED.getCode()); } else { ocp.setHonorDatum(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.STANDARD.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setStandard(ProportionStatus.FINISHED.getCode()); } else { ocp.setStandard(ProportionStatus.UNFINISHED.getCode()); } } else if (ProprotionFields.ABILITY.getCode().equals(sign)) { if (ProportionStatus.FINISHED.getCode() == status) { ocp.setAbility(ProportionStatus.FINISHED.getCode()); } else { ocp.setAbility(ProportionStatus.UNFINISHED.getCode()); } } return ocp; } /* * @Test public void test () throws IllegalArgumentException, * IllegalAccessException{ Admin a = new Admin(); import * java.lang.reflect.Field; boolean flag = Boolean.FALSE; for(Field f : * a.getClass().getDeclaredFields()){ f.setAccessible(true); if(f.get(a) == * null){ flag = true; } } } */ }