| | |
| | | import com.highdatas.srs.entity.*; |
| | | import com.highdatas.srs.pojo.CodeMsg; |
| | | import com.highdatas.srs.pojo.Result; |
| | | import com.highdatas.srs.service.IProjectDealService; |
| | | import com.highdatas.srs.service.ISchemeDetailService; |
| | | import com.highdatas.srs.service.ISchemeService; |
| | | import com.highdatas.srs.service.ISysUserService; |
| | | import com.highdatas.srs.service.*; |
| | | import com.highdatas.srs.util.DbUtils; |
| | | import com.highdatas.srs.util.FileUtils; |
| | | import org.apache.commons.lang3.StringUtils; |
| | |
| | | import java.io.UnsupportedEncodingException; |
| | | import java.math.BigDecimal; |
| | | import java.text.DecimalFormat; |
| | | import java.text.MessageFormat; |
| | | import java.text.ParseException; |
| | | import java.text.SimpleDateFormat; |
| | | import java.util.*; |
| | | import java.util.function.IntFunction; |
| | | |
| | | /** |
| | | * <p> |
| | |
| | | ISchemeDetailService iSchemeDetailService; |
| | | @Autowired |
| | | IProjectDealService projectDealService; |
| | | |
| | | @Autowired |
| | | ISysRoleMappingService roleMappingService; |
| | | @Autowired |
| | | ISysRoleService roleService; |
| | | @Autowired |
| | | ISchemeDetailParttimeService detailParttimeService; |
| | | @Autowired |
| | | ISysTargetService targetService; |
| | | @Value("${base.file.path}") |
| | | String basePath; |
| | | |
| | | @RequestMapping(value = "/achieve", method = RequestMethod.GET) |
| | | public Result getAcheve(@RequestParam String type, HttpServletRequest request) throws ParseException { |
| | | EntityWrapper<Scheme> schemeEntityWrapper = new EntityWrapper<>(); |
| | | //编辑 取消 不计入 |
| | | schemeEntityWrapper.notIn("status", "edit"); |
| | | List<Scheme> schemes = schemeService.selectList(schemeEntityWrapper); |
| | | |
| | | List<SchemeDetail> detailList = new ArrayList<>(); |
| | | for (Scheme scheme : schemes) { |
| | | String id = scheme.getId(); |
| | | EntityWrapper<SchemeDetail> schemeDetailEntityWrapper = new EntityWrapper<>(); |
| | | schemeDetailEntityWrapper.eq("parent_id", id); |
| | | List<SchemeDetail> schemeDetails = iSchemeDetailService.selectList(schemeDetailEntityWrapper); |
| | | detailList.addAll(schemeDetails); |
| | | } |
| | | |
| | | if (type.equalsIgnoreCase("total")) { |
| | | Result result = getTotalOptions(detailList); |
| | | }else if (type.equalsIgnoreCase("per")) { |
| | | Result result = getPerOptions(detailList); |
| | | }else if (type.equalsIgnoreCase("after")) { |
| | | Result result = getAfterOptions(detailList); |
| | | }else if(type.equalsIgnoreCase("month")) { |
| | | Result result = getMonthOptions(detailList); |
| | | }else if(type.equalsIgnoreCase("team")) { |
| | | Result result = getTeamOptions(detailList); |
| | | }else if(type.equalsIgnoreCase("member")) { |
| | | Result result = getTeamOptions(detailList); |
| | | } |
| | | return Result.success(null); |
| | | } |
| | | |
| | | private Result getTeamOptions(List<SchemeDetail> detailList) { |
| | | return null; |
| | | } |
| | | |
| | | private Result getMonthOptions(List<SchemeDetail> detailList) throws ParseException { |
| | | Date now = new Date(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(now); |
| | | JSONObject resultData = new JSONObject(); |
| | | List<String> months = new ArrayList<>(); |
| | | List<String> types = new ArrayList<>(); |
| | | types.add("指标"); |
| | | types.add("完成"); |
| | | types.add("达成率"); |
| | | List<JSONObject> datas = new ArrayList<>(); |
| | | JSONObject targetDataObject = new JSONObject(); |
| | | targetDataObject.put("name", "指标"); |
| | | targetDataObject.put("type", "bar"); |
| | | datas.add(targetDataObject); |
| | | JSONObject amountDataObject = new JSONObject(); |
| | | amountDataObject.put("name", "完成"); |
| | | amountDataObject.put("type", "bar"); |
| | | datas.add(amountDataObject); |
| | | JSONObject achieveDataObject = new JSONObject(); |
| | | achieveDataObject.put("name", "达成率"); |
| | | achieveDataObject.put("type", "line"); |
| | | datas.add(achieveDataObject); |
| | | |
| | | List<JSONObject> entityset = new ArrayList<>(); |
| | | |
| | | JSONObject targetEntityObject = new JSONObject(); |
| | | targetEntityObject.put("type", "指标"); |
| | | entityset.add(targetEntityObject); |
| | | JSONObject amountEntityObject = new JSONObject(); |
| | | amountEntityObject.put("type", "完成"); |
| | | entityset.add(amountEntityObject); |
| | | JSONObject achieveEntityObject = new JSONObject(); |
| | | achieveEntityObject.put("type", "达成率"); |
| | | entityset.add(achieveEntityObject); |
| | | |
| | | for (int i = 0; i < 12; i++) { |
| | | |
| | | calendar.set(calendar.get(Calendar.YEAR),calendar.get(Calendar.MONTH),1,0,0,0); |
| | | Date yearStart = calendar.getTime(); |
| | | calendar.add(Calendar.MONTH, 1); |
| | | calendar.add(Calendar.DAY_OF_MONTH, -1); |
| | | Date yearEnd = calendar.getTime(); |
| | | int year = calendar.get(Calendar.YEAR); |
| | | int month = calendar.get(Calendar.MONTH) + 1; |
| | | String oneMonth = MessageFormat.format("{0}{1}", year, month); |
| | | |
| | | BigDecimal totalBudget = BigDecimal.ZERO; |
| | | |
| | | for (SchemeDetail schemeDetail : detailList) { |
| | | BigDecimal rangeBudget = getRangeBudget(schemeDetail, yearStart, yearEnd); |
| | | totalBudget = totalBudget.add(rangeBudget); |
| | | } |
| | | //2 target |
| | | |
| | | EntityWrapper<SysTarget> sysTargetEntityWrapper = new EntityWrapper<>(); |
| | | sysTargetEntityWrapper.eq("amt_type", "pro") |
| | | .eq("year", year); |
| | | List<SysTarget> sysTargets = targetService.selectList(sysTargetEntityWrapper); |
| | | BigDecimal totalTarget = BigDecimal.ZERO; |
| | | |
| | | for (SysTarget sysTarget : sysTargets) { |
| | | BigDecimal one = sysTarget.getTarget(); |
| | | totalTarget = totalTarget.add(one); |
| | | } |
| | | BigDecimal achieve; |
| | | if(totalTarget.compareTo(BigDecimal.ZERO) == 0) { |
| | | achieve = BigDecimal.ZERO; |
| | | }else { |
| | | achieve = totalBudget.multiply(BigDecimal.valueOf(100)).divide(totalTarget, 1, BigDecimal.ROUND_HALF_UP); |
| | | } |
| | | ArrayList<BigDecimal> targetData = (ArrayList<BigDecimal>) targetDataObject.get("data"); |
| | | if (targetData == null) { |
| | | targetData = new ArrayList<BigDecimal>(); |
| | | } |
| | | targetData.add(i, totalTarget); |
| | | |
| | | ArrayList<BigDecimal> amountData = (ArrayList<BigDecimal>) amountDataObject.get("data"); |
| | | if (amountData == null) { |
| | | amountData = new ArrayList<BigDecimal>(); |
| | | } |
| | | amountData.add(i, totalBudget); |
| | | |
| | | ArrayList<BigDecimal> achieveData = (ArrayList<BigDecimal>) achieveDataObject.get("data"); |
| | | if (achieveData == null) { |
| | | achieveData = new ArrayList<BigDecimal>(); |
| | | } |
| | | achieveData.add(i, achieve); |
| | | |
| | | targetEntityObject.put(oneMonth, totalTarget); |
| | | amountEntityObject.put(oneMonth, totalBudget); |
| | | achieveEntityObject.put(oneMonth, achieve); |
| | | |
| | | months.add(oneMonth); |
| | | calendar.add(Calendar.MONTH , -1); |
| | | } |
| | | resultData.put("months",months); |
| | | resultData.put("types",types); |
| | | resultData.put("datas",datas); |
| | | resultData.put("entityset",entityset); |
| | | |
| | | return Result.success(resultData); |
| | | } |
| | | |
| | | private Result getAfterOptions(List<SchemeDetail> detailList) throws ParseException { |
| | | //0 |
| | | Date now = new Date(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(now); |
| | | calendar.set(calendar.get(Calendar.YEAR),5,1,0,0,0); |
| | | Date yearStart = calendar.getTime(); |
| | | calendar.add(Calendar.MONTH, 7); |
| | | calendar.add(Calendar.DAY_OF_MONTH, -1); |
| | | |
| | | Date yearEnd = calendar.getTime(); |
| | | |
| | | //1 amount |
| | | BigDecimal totalBudget = BigDecimal.ZERO; |
| | | for (SchemeDetail schemeDetail : detailList) { |
| | | BigDecimal rangeBudget = getRangeBudget(schemeDetail, yearStart, yearEnd); |
| | | totalBudget = totalBudget.add(rangeBudget); |
| | | } |
| | | //2 target |
| | | int year = calendar.get(Calendar.YEAR); |
| | | EntityWrapper<SysTarget> sysTargetEntityWrapper = new EntityWrapper<>(); |
| | | sysTargetEntityWrapper.eq("amt_type", "pro") |
| | | .eq("year", year).eq("tgt_type","per"); |
| | | List<SysTarget> sysTargets = targetService.selectList(sysTargetEntityWrapper); |
| | | BigDecimal totalTarget = BigDecimal.ZERO; |
| | | |
| | | for (SysTarget sysTarget : sysTargets) { |
| | | BigDecimal one = sysTarget.getTarget(); |
| | | totalTarget = totalTarget.add(one); |
| | | } |
| | | if(totalTarget.compareTo(BigDecimal.ZERO) == 0) { |
| | | return Result.success(0); |
| | | }else { |
| | | BigDecimal achieve = totalBudget.multiply(BigDecimal.valueOf(100)).divide(totalTarget, 1, BigDecimal.ROUND_HALF_UP); |
| | | return Result.success(achieve); |
| | | } |
| | | } |
| | | |
| | | private Result getPerOptions(List<SchemeDetail> detailList) throws ParseException { |
| | | //0 |
| | | Date now = new Date(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(now); |
| | | calendar.set(calendar.get(Calendar.YEAR),0,1,0,0,0); |
| | | Date yearStart = calendar.getTime(); |
| | | calendar.add(Calendar.MONTH, 7); |
| | | calendar.add(Calendar.DAY_OF_MONTH, -1); |
| | | |
| | | Date yearEnd = calendar.getTime(); |
| | | |
| | | //1 amount |
| | | BigDecimal totalBudget = BigDecimal.ZERO; |
| | | for (SchemeDetail schemeDetail : detailList) { |
| | | BigDecimal rangeBudget = getRangeBudget(schemeDetail, yearStart, yearEnd); |
| | | totalBudget = totalBudget.add(rangeBudget); |
| | | } |
| | | //2 target |
| | | int year = calendar.get(Calendar.YEAR); |
| | | EntityWrapper<SysTarget> sysTargetEntityWrapper = new EntityWrapper<>(); |
| | | sysTargetEntityWrapper.eq("amt_type", "pro") |
| | | .eq("year", year).eq("tgt_type","per"); |
| | | List<SysTarget> sysTargets = targetService.selectList(sysTargetEntityWrapper); |
| | | BigDecimal totalTarget = BigDecimal.ZERO; |
| | | |
| | | for (SysTarget sysTarget : sysTargets) { |
| | | BigDecimal one = sysTarget.getTarget(); |
| | | totalTarget = totalTarget.add(one); |
| | | } |
| | | if(totalTarget.compareTo(BigDecimal.ZERO) == 0) { |
| | | return Result.success(0); |
| | | }else { |
| | | BigDecimal achieve = totalBudget.multiply(BigDecimal.valueOf(100)).divide(totalTarget, 1, BigDecimal.ROUND_HALF_UP); |
| | | return Result.success(achieve); |
| | | } |
| | | } |
| | | |
| | | private Result getTotalOptions(List<SchemeDetail> detailList) throws ParseException { |
| | | //0 |
| | | Date now = new Date(); |
| | | Calendar calendar = Calendar.getInstance(); |
| | | calendar.setTime(now); |
| | | calendar.set(calendar.get(Calendar.YEAR),0,1,0,0,0); |
| | | Date yearStart = calendar.getTime(); |
| | | calendar.add(Calendar.YEAR, 1); |
| | | calendar.add(Calendar.DAY_OF_MONTH, -1); |
| | | Date yearEnd = calendar.getTime(); |
| | | |
| | | //1 amount |
| | | BigDecimal totalBudget = BigDecimal.ZERO; |
| | | for (SchemeDetail schemeDetail : detailList) { |
| | | BigDecimal rangeBudget = getRangeBudget(schemeDetail, yearStart, yearEnd); |
| | | totalBudget = totalBudget.add(rangeBudget); |
| | | } |
| | | //2 target |
| | | int year = calendar.get(Calendar.YEAR); |
| | | EntityWrapper<SysTarget> sysTargetEntityWrapper = new EntityWrapper<>(); |
| | | sysTargetEntityWrapper.eq("amt_type", "pro").eq("year", year); |
| | | List<SysTarget> sysTargets = targetService.selectList(sysTargetEntityWrapper); |
| | | BigDecimal totalTarget = BigDecimal.ZERO; |
| | | |
| | | for (SysTarget sysTarget : sysTargets) { |
| | | BigDecimal one = sysTarget.getTarget(); |
| | | totalTarget = totalTarget.add(one); |
| | | } |
| | | if(totalTarget.compareTo(BigDecimal.ZERO) == 0) { |
| | | return Result.success(0); |
| | | }else { |
| | | BigDecimal achieve = totalBudget.multiply(BigDecimal.valueOf(100)).divide(totalTarget, 1, BigDecimal.ROUND_HALF_UP); |
| | | return Result.success(achieve); |
| | | } |
| | | } |
| | | |
| | | |
| | | |
| | | private BigDecimal getRangeBudget(SchemeDetail schemeDetail, Date yearStart, Date yearEnd) throws ParseException { |
| | | BigDecimal average = BigDecimal.ZERO; |
| | | BigDecimal rangeBudget = BigDecimal.ZERO; |
| | | Integer rangeDays; |
| | | BigDecimal budget = schemeDetail.getBudget(); |
| | | Boolean finish = schemeDetail.getFinish(); |
| | | Boolean edit = schemeDetail.getEdit(); |
| | | Boolean delay = schemeDetail.getDelay(); |
| | | if (edit) { |
| | | return BigDecimal.ZERO; |
| | | } |
| | | if (finish) { |
| | | int dayDiffer = DbUtils.getDayDiffer(schemeDetail.getStartTime(), schemeDetail.getFinishTime()); |
| | | dayDiffer = Math.abs(dayDiffer); |
| | | average = budget.divide(BigDecimal.valueOf(dayDiffer), 10, BigDecimal.ROUND_HALF_UP); |
| | | rangeDays = DbUtils.getRangeDays(schemeDetail.getStartTime(), schemeDetail.getFinishTime(), yearStart, yearEnd); |
| | | rangeDays = Math.abs(rangeDays); |
| | | } |
| | | if (delay) { |
| | | Date endTime = schemeDetail.getEndTime(); |
| | | Integer dayDiffer = null; |
| | | Date now = new Date(); |
| | | if (endTime.before(now)) { |
| | | dayDiffer = DbUtils.getDayDiffer(schemeDetail.getStartTime(), now); |
| | | dayDiffer = Math.abs(dayDiffer); |
| | | rangeDays = DbUtils.getRangeDays(schemeDetail.getStartTime(), now, yearStart, yearEnd); |
| | | rangeDays = Math.abs(rangeDays); |
| | | }else { |
| | | dayDiffer = DbUtils.getDayDiffer(schemeDetail.getStartTime(), schemeDetail.getEndTime()); |
| | | dayDiffer = Math.abs(dayDiffer); |
| | | rangeDays = DbUtils.getRangeDays(schemeDetail.getStartTime(), schemeDetail.getEndTime(), yearStart, yearEnd); |
| | | |
| | | } |
| | | average = budget.divide(BigDecimal.valueOf(dayDiffer), 10, BigDecimal.ROUND_HALF_UP); |
| | | rangeBudget = average.multiply(BigDecimal.valueOf(rangeDays)); |
| | | } |
| | | |
| | | return rangeBudget; |
| | | } |
| | | |
| | | @RequestMapping(value = "/daywork/{id}", method = RequestMethod.GET) |
| | | public Result dayByUser(@PathVariable String id, HttpServletRequest request) { |
| | |
| | | @RequestMapping(value = "/get/{id}", method = RequestMethod.GET) |
| | | public Result get(@PathVariable String id) { |
| | | Scheme scheme = schemeService.selectById(id); |
| | | String leadUserId = scheme.getLeadUserId(); |
| | | if (!StringUtils.isEmpty(leadUserId)) { |
| | | String[] split = leadUserId.split(";"); |
| | | ArrayList<List<String>> lists = new ArrayList<>(); |
| | | for (String one : split) { |
| | | if (StringUtils.isEmpty(one)) { |
| | | continue; |
| | | } |
| | | SysRoleMapping mapping = roleMappingService.selectOne(new EntityWrapper<SysRoleMapping>().eq("user_id", one)); |
| | | if (mapping == null) { |
| | | continue; |
| | | } |
| | | SysRole sysRole = roleService.selectById(mapping.getRoleId()); |
| | | ArrayList<String> sysRoleMappings = new ArrayList<>(); |
| | | sysRoleMappings.add(sysRole.getName()); |
| | | sysRoleMappings.add(mapping.getUserId()); |
| | | lists.add(sysRoleMappings); |
| | | } |
| | | scheme.setLeadUserList(lists); |
| | | } |
| | | |
| | | return Result.success(scheme); |
| | | } |
| | | |
| | |
| | | detail.setEdit(false); |
| | | detail.updateById(); |
| | | } |
| | | scheme.setStatus("working"); |
| | | if (scheme.getStatus().equalsIgnoreCase("edit")) { |
| | | scheme.setStatus("working"); |
| | | } |
| | | |
| | | boolean b = scheme.updateById(); |
| | | if (b) { |
| | | return Result.success(CodeMsg.UPDATE_SUCCESS); |
| | |
| | | return Result.success(schemes); |
| | | } |
| | | |
| | | @RequestMapping(value = "/save/{id}", method = RequestMethod.GET) |
| | | public Result save(@PathVariable String id, @RequestParam BigDecimal budget) { |
| | | Scheme scheme = schemeService.selectById(id); |
| | | if (scheme == null) { |
| | | return Result.error(CodeMsg.ERROR_PARAMS_NOT_MATHED); |
| | | } |
| | | scheme.setBudget(budget).updateById(); |
| | | return Result.success(scheme); |
| | | } |
| | | |
| | | @RequestMapping(value = "/page/{pageNo}", method = RequestMethod.GET) |
| | | public Result get(@PathVariable Integer pageNo, HttpServletRequest request) { |
| | | String pageSize = request.getParameter("pageSize"); |
| | |
| | | String status = request.getParameter("status"); |
| | | String type = request.getParameter("type"); |
| | | String userId = request.getParameter("userId"); |
| | | String isRun = request.getParameter("isRun"); |
| | | String orderBy = request.getParameter("orderBy"); |
| | | |
| | | EntityWrapper<Scheme> schemeEntityWrapper = new EntityWrapper<>(); |
| | | |
| | | if (!StringUtils.isEmpty(name)) { |
| | | schemeEntityWrapper.like("name", name); |
| | | } |
| | | if (!StringUtils.isEmpty(orderBy)) { |
| | | schemeEntityWrapper.orderBy(orderBy); |
| | | } |
| | | if (!StringUtils.isEmpty(userId)) { |
| | | schemeEntityWrapper.eq("user_id", userId); |
| | | } |
| | | if (!StringUtils.isEmpty(type)) { |
| | | schemeEntityWrapper.eq("reseach_type", type); |
| | | schemeEntityWrapper.like("type", type); |
| | | } |
| | | if (!StringUtils.isEmpty(status)) { |
| | | schemeEntityWrapper.eq("status", status); |
| | | } |
| | | if (!StringUtils.isEmpty(isRun) && Boolean.valueOf(isRun)) { |
| | | schemeEntityWrapper.ne("status", "edit"); |
| | | } |
| | | |
| | | Page<Scheme> schemePage; |
| | |
| | | } |
| | | |
| | | Page<Scheme> page = schemeService.selectPage(schemePage, schemeEntityWrapper); |
| | | List<Scheme> schemes = schemeService.selectList(schemeEntityWrapper); |
| | | JSONObject resultObj = new JSONObject(); |
| | | BigDecimal decimal = new BigDecimal(0); |
| | | BigDecimal moneydecimal = new BigDecimal(0); |
| | | for (Scheme scheme : schemes) { |
| | | if (scheme.getBudget() != null) { |
| | | decimal = decimal.add(scheme.getBudget()); |
| | | } |
| | | if (scheme.getPayMoney() != null) { |
| | | moneydecimal = moneydecimal.add(scheme.getPayMoney()); |
| | | } |
| | | } |
| | | resultObj.fluentPut("budget", decimal); |
| | | resultObj.fluentPut("payMoney", moneydecimal); |
| | | List<Scheme> records = page.getRecords(); |
| | | Page<JSONObject> jsonObjectPage = new Page<>(); |
| | | jsonObjectPage.setTotal(page.getTotal()); |
| | | jsonObjectPage.setCurrent(page.getCurrent()); |
| | | jsonObjectPage.setSize(page.getSize()); |
| | | List<JSONObject> result = new ArrayList<>(); |
| | | |
| | | for (Scheme scheme : records) { |
| | | JSONObject json = (JSONObject) JSON.toJSON(scheme); |
| | | Wrapper<SchemeDetail> delayWrapper = new EntityWrapper<SchemeDetail>().eq("parent_id", scheme.getId()); |
| | | Wrapper<SchemeDetail> finishWrapper = new EntityWrapper<SchemeDetail>().eq("parent_id", scheme.getId()); |
| | | int total = iSchemeDetailService.selectCount(delayWrapper); |
| | | List<SchemeDetail> detailList = iSchemeDetailService.selectList(delayWrapper); |
| | | BigDecimal totalBudget = new BigDecimal(0); |
| | | for (SchemeDetail detail : detailList) { |
| | | BigDecimal budget = detail.getBudget(); |
| | | totalBudget = totalBudget.add(budget); |
| | | } |
| | | int total =detailList.size(); |
| | | int delayInt = iSchemeDetailService.selectCount(delayWrapper.eq("delay", true)); |
| | | |
| | | int finishInt = iSchemeDetailService.selectCount(finishWrapper.eq("finish", true)); |
| | | json.fluentPut("totalCnt", total); |
| | | json.fluentPut("delayCnt", delayInt); |
| | | json.fluentPut("finishCnt", finishInt); |
| | | json.fluentPut("totalBudget", totalBudget); |
| | | |
| | | // |
| | | List<SchemeDetail> schemeDetailList = iSchemeDetailService.selectList(new EntityWrapper<SchemeDetail>().eq("parent_id", scheme.getId()).eq("finish", true)); |
| | |
| | | if (endDate == null) { |
| | | endDate = detail.getFinishTime(); |
| | | }else { |
| | | int i = DbUtils.compareDate(endDate, detail.getFinishTime()); |
| | | if(i == 1) { |
| | | endDate = detail.getFinishTime(); |
| | | if (detail.getFinish() && detail.getFinishTime() != null) { |
| | | |
| | | int i = DbUtils.compareDate(endDate, detail.getFinishTime()); |
| | | if(i == 1) { |
| | | endDate = detail.getFinishTime(); |
| | | } |
| | | } |
| | | |
| | | } |
| | | } |
| | | json.fluentPut("beginDate", beginDate); |
| | |
| | | result.add(json); |
| | | } |
| | | jsonObjectPage.setRecords(result); |
| | | return Result.success(jsonObjectPage); |
| | | resultObj.fluentPut("datas", jsonObjectPage); |
| | | return Result.success(resultObj); |
| | | } |
| | | @RequestMapping(value = "/checkCode/{code}", method = RequestMethod.GET) |
| | | public Result add(@RequestParam String code) { |
| | | int cnt = schemeService.selectCount(new EntityWrapper<Scheme>().eq("code", code)); |
| | | if (cnt == 0) { |
| | | return Result.success(true); |
| | | } |
| | | return Result.success(false); |
| | | } |
| | | |
| | | @RequestMapping(value = "/addOrUpdate", method = RequestMethod.GET) |
| | | public Result add(@RequestParam String reseachType, @RequestParam String name, @RequestParam Date startTime, @RequestParam Date endTime, HttpServletRequest request) { |
| | | String id = request.getParameter("id"); |
| | | String desp = request.getParameter("desp"); |
| | | String userId = request.getParameter("userId"); |
| | | Scheme scheme; |
| | | if (StringUtils.isEmpty(id)) { |
| | | scheme = new Scheme(); |
| | | }else{ |
| | | scheme = schemeService.selectById(id); |
| | | @RequestMapping(value = "/addOrUpdate", method = RequestMethod.POST) |
| | | public Result add( @RequestBody Scheme scheme) { |
| | | |
| | | String code = scheme.getCode(); |
| | | Wrapper<Scheme> codeWrapper = new EntityWrapper<Scheme>().eq("code", code); |
| | | if (!StringUtils.isEmpty(scheme.getId())) { |
| | | codeWrapper.ne("id", scheme.getId()); |
| | | } |
| | | if (scheme == null) { |
| | | return Result.error(CodeMsg.SELECT_ERROR_NOTFOUND); |
| | | int i = schemeService.selectCount(codeWrapper); |
| | | if (i > 0) { |
| | | return Result.error(CodeMsg.EXISTSCODE_ERROR); |
| | | } |
| | | // reseachType to enum |
| | | |
| | | if (StringUtils.isEmpty(scheme.getId())) { |
| | | scheme.setId(DbUtils.getUUID()); |
| | | scheme.setId(DbUtils.getUUID()).setCreateTime(new Date()); |
| | | } |
| | | scheme.setUserId(userId).setCreateTime(new Date()).setName(name).setStartTime(startTime).setEndTime(endTime) |
| | | .setDesp(desp).setReseachType(reseachType); |
| | | |
| | | Date startTime = scheme.getStartTime(); |
| | | Date endTime = scheme.getEndTime(); |
| | | |
| | | List<SchemeDetail> schemeDetailList = iSchemeDetailService.selectList(new EntityWrapper<SchemeDetail>().eq("parent_id", scheme.getId())); |
| | | for (SchemeDetail detail : schemeDetailList) { |
| | |
| | | detail.setEndTime(endTime); |
| | | } |
| | | } |
| | | |
| | | |
| | | boolean updated = detail.updateById(); |
| | | |
| | | } |
| | |
| | | @RequestMapping(value = "/del/{id}", method = RequestMethod.GET) |
| | | public Result del(@PathVariable String id, HttpServletRequest request) throws JsonProcessingException { |
| | | Scheme scheme = schemeService.selectById(id); |
| | | List<SchemeDetail> schemeDetailList = iSchemeDetailService.selectList(new EntityWrapper<SchemeDetail>().eq("parent_id", scheme.getId())); |
| | | for (SchemeDetail detail : schemeDetailList) { |
| | | detailParttimeService.delete(new EntityWrapper<SchemeDetailParttime>().eq("parent_id", detail.getId())); |
| | | detail.deleteById(); |
| | | } |
| | | |
| | | boolean delete = scheme.deleteById(); |
| | | |
| | | if (delete) { |