| | |
| | | package com.zy.crm.manager.controller; |
| | | |
| | | import com.baomidou.mybatisplus.mapper.EntityWrapper; |
| | | import com.core.annotations.ManagerAuth; |
| | | import com.core.common.Cools; |
| | | import com.core.common.R; |
| | | import com.zy.crm.common.web.BaseController; |
| | | import com.zy.crm.manager.entity.CompanyTarget; |
| | | import com.zy.crm.manager.entity.Order; |
| | | import com.zy.crm.manager.service.CompanyTargetService; |
| | | import com.zy.crm.manager.service.OrderService; |
| | | import com.zy.crm.manager.utils.WordUtils; |
| | | import com.zy.crm.manager.entity.*; |
| | | import com.zy.crm.manager.service.*; |
| | | import com.zy.crm.system.entity.Role; |
| | | import com.zy.crm.system.entity.User; |
| | | import org.springframework.beans.factory.annotation.Autowired; |
| | | import org.springframework.web.bind.annotation.RequestMapping; |
| | |
| | | @RestController |
| | | public class DashboardController extends BaseController { |
| | | |
| | | Integer PBN = 6; |
| | | |
| | | @Autowired |
| | | private CompanyTargetService companyTargetService; |
| | | @Autowired |
| | | private OrderService orderService; |
| | | @Autowired |
| | | private PlanService planService; |
| | | @Autowired |
| | | private PriOnline2Service priOnline2Service; |
| | | @Autowired |
| | | private PriQuoteService priQuoteService; |
| | | @Autowired |
| | | private BusinessTripService businessTripService; |
| | | @Autowired |
| | | private BusinessTripOtherService businessTripOtherService; |
| | | @Autowired |
| | | private ReimburseOnlineService reimburseOnlineService; |
| | | @Autowired |
| | | private CompanyMoneyService companyMoneyService; |
| | | @Autowired |
| | | private ProcessPermissionsService processPermissionsService; |
| | | @Autowired |
| | | private PlanTypeService planTypeService; |
| | | |
| | | //获取团队数据 |
| | | @RequestMapping(value = "/dashboard/companyData/auth") |
| | |
| | | if (companyTarget == null) { |
| | | return R.error(); |
| | | } |
| | | map.put("yearTarget", formatter.format(Double.parseDouble(companyTarget.getTarget())));//全年交易目标 |
| | | double whole = Double.parseDouble(companyTarget.getTarget()); |
| | | map.put("yearTarget", formatter.format(whole));//全年交易目标 |
| | | |
| | | //获取全年交易成功金额 |
| | | Double successMoney = orderService.selectMoneyByYearAndStatus(year, 1); |
| | | //获取全年未交易成功金额 |
| | | Double progressMoney = orderService.selectMoneyByYearAndStatus(year, 0); |
| | | // double v = whole - orderService.selectMoneyByYearAndStatus(year, 0); |
| | | double v = whole - orderService.selectMoneyByYearAndStatus(year, 1); |
| | | Double progressMoney = v > 0? v : 0D; |
| | | //获取全年交易失败金额 |
| | | Double failedMoney = orderService.selectMoneyByYearAndStatus(year, 2); |
| | | //全年交易率 |
| | | double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / (successMoney + progressMoney + failedMoney)) * 100; |
| | | //全年完成率 |
| | | // double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / (successMoney + progressMoney + failedMoney)) * 100; |
| | | double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / Double.parseDouble(companyTarget.getTarget())) * 100; |
| | | |
| | | Double successMoney1 = companyMoneyService.selectMoneyReceivablesAll(null, year); |
| | | |
| | | Double successMoney2 = companyMoneyService.selectMoneyActualReceiptsAll(null, year); |
| | | |
| | | map.put("successMoney", formatter.format(successMoney));//全年交易成功金额 |
| | | map.put("progressMoney", formatter.format(progressMoney));//全年未交易成功金额 |
| | | map.put("yearTransactionRate", String.format("%.2f", yearTransactionRate));//全年交易率 |
| | | map.put("receivablesMoney", successMoney1/10000);//应收款 |
| | | map.put("actualReceiptsMoney",successMoney2/10000);//实际收款 |
| | | return R.ok().add(map); |
| | | } |
| | | |
| | |
| | | SimpleDateFormat format = new SimpleDateFormat("yyyy"); |
| | | String year = format.format(date); |
| | | |
| | | User user = getUser(); |
| | | String yearTarget = "0";//获取个人全年目标数据 |
| | | if (user.getTarget() != null) { |
| | | yearTarget = formatter.format(Double.parseDouble(user.getTarget())); |
| | | Double yearTarget = 0D;//获取个人全年目标数据 |
| | | CompanyTarget person = companyTargetService.selectPersonByYear(year, getUserId()); |
| | | if (person != null) { |
| | | yearTarget = Double.parseDouble(person.getTarget()); |
| | | } |
| | | map.put("yearTarget", yearTarget);//全年交易目标 |
| | | map.put("yearTarget", formatter.format(yearTarget));//全年交易目标 |
| | | |
| | | //获取全年交易成功金额 |
| | | Double successMoney = orderService.selectMoneyByUserAndYearAndStatus(user.getId(), year, 1); |
| | | Double successMoney = orderService.selectMoneyByUserAndYearAndStatus(getUserId(), year, 1); |
| | | //获取全年未交易成功金额 |
| | | Double progressMoney = orderService.selectMoneyByUserAndYearAndStatus(user.getId(), year, 0); |
| | | double v = yearTarget - orderService.selectMoneyByUserAndYearAndStatus(getUserId(), year, 1); |
| | | Double progressMoney = v > 0? v : 0D; |
| | | Double progressMoney2 = orderService.selectMoneyByUserAndYearAndStatus(getUserId(), year, 0); |
| | | //获取全年交易失败金额 |
| | | Double failedMoney = orderService.selectMoneyByUserAndYearAndStatus(user.getId(), year, 2); |
| | | //全年交易率 |
| | | double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / (successMoney + progressMoney + failedMoney)) * 100; |
| | | Double failedMoney = orderService.selectMoneyByUserAndYearAndStatus(getUserId(), year, 2); |
| | | //全年完成率 |
| | | // double yearTransactionRate = successMoney == 0 ? successMoney : (successMoney / (successMoney + progressMoney + failedMoney)) * 100; |
| | | double yearTransactionRate = yearTarget==0? 0 : successMoney == 0 ? successMoney : (successMoney / yearTarget) * 100; |
| | | |
| | | map.put("successMoney", formatter.format(successMoney));//全年交易成功金额 |
| | | map.put("progressMoney", formatter.format(progressMoney));//全年未交易成功金额 |
| | | map.put("progressMoney2", formatter.format(progressMoney2));//跟踪项目金额 |
| | | map.put("yearTransactionRate", String.format("%.2f", yearTransactionRate));//全年交易率 |
| | | |
| | | //获取全年跟踪数量 |
| | | Integer progressCount = orderService.selectCountByUserYearAndStatus(user.getId(), year, 0); |
| | | Integer progressCount = orderService.selectCountByUserYearAndStatus(getUserId(), year, 0); |
| | | //获取全年成交数量 |
| | | Integer successCount = orderService.selectCountByUserYearAndStatus(user.getId(), year, 1); |
| | | Integer successCount = orderService.selectCountByUserYearAndStatus(getUserId(), year, 1); |
| | | map.put("progressCount", progressCount); |
| | | map.put("successCount", successCount); |
| | | |
| | | //获取待处理任务数量 |
| | | int planPendingTaskCount = planService.selectPendingTaskCount(getUserId()); |
| | | map.put("planPendingTaskCount", planPendingTaskCount); |
| | | int priOnlinePendingTaskCount = priOnline2Service.selectCount(new EntityWrapper<PriOnline2>().eq("member_id", getUserId()).lt("settle",2)); |
| | | map.put("priOnlinePendingTaskCount", priOnlinePendingTaskCount); |
| | | int priQuotePendingTaskCount = priQuoteService.selectCount(new EntityWrapper<PriQuote>().eq("member_id", getUserId()).lt("settle",4)); |
| | | map.put("priQuotePendingTaskCount", priQuotePendingTaskCount); |
| | | int businessTripCount = businessTripService.selectCount(new EntityWrapper<BusinessTrip>().eq("member_id", getUserId()).lt("settle", 2)); |
| | | int businessTripOtherCount = businessTripOtherService.selectCount(new EntityWrapper<BusinessTripOther>().eq("member_id", getUserId()).lt("settle",2)); |
| | | int businessTripPendingTaskCount = businessTripCount+businessTripOtherCount; |
| | | map.put("businessTripPendingTaskCount", businessTripPendingTaskCount); |
| | | int reimburseOnlinePendingTaskCount = reimburseOnlineService.selectCount(new EntityWrapper<ReimburseOnline>().eq("member_id", getUserId()).lt("settle",6)); |
| | | map.put("reimburseOnlinePendingTaskCount", reimburseOnlinePendingTaskCount); |
| | | int planPriOnlinePendingTaskCount = 0; |
| | | List<ProcessPermissions> processPermissionsList = processPermissionsService.selectList(new EntityWrapper<ProcessPermissions>().eq("process_memo", 4).or().eq("process_memo", 5));//2:核价流程 |
| | | int type =0; |
| | | for (ProcessPermissions processPermissions:processPermissionsList){ |
| | | if (getUserId().equals(processPermissions.getUserId())){ |
| | | type=PBN-processPermissions.getProcessMemo(); |
| | | break; |
| | | } |
| | | } |
| | | if (type!=0){ |
| | | EntityWrapper<Plan> wrapper = new EntityWrapper<>(); |
| | | wrapper.eq("status",1); |
| | | wrapper.eq("assistant_host_sign",0); |
| | | List<Long> typeList = new ArrayList<>(); |
| | | List<PlanType> planTypes = planTypeService.selectList(new EntityWrapper<PlanType>().eq("type", type)); |
| | | for (PlanType planType : planTypes){ |
| | | typeList.add(planType.getId()); |
| | | } |
| | | wrapper.in("plan_type",typeList); |
| | | List<Plan> plans = planService.selectList(wrapper); |
| | | planPriOnlinePendingTaskCount=plans.size(); |
| | | } |
| | | map.put("planPriOnlinePendingTaskCount", planPriOnlinePendingTaskCount); |
| | | |
| | | Double successMoney1 = companyMoneyService.selectMoneyReceivablesAll(getUserId(), year); |
| | | map.put("successMoney1", successMoney1==null? 0:successMoney1); |
| | | |
| | | Double successMoney2 = companyMoneyService.selectMoneyActualReceiptsAll(getUserId(), year); |
| | | map.put("successMoney2", successMoney2==null? 0:successMoney2); |
| | | |
| | | |
| | | return R.ok().add(map); |
| | | } |
| | |
| | | @ManagerAuth |
| | | public R getCurrentMonthData() { |
| | | List<Double> list = orderService.selectCurrentYearMonthSuccess(); |
| | | return R.ok().add(list); |
| | | List<Double> lists = new ArrayList<>(); |
| | | int i = 0; |
| | | Double[] money=new Double[]{0.0,0.0,0.0,0.0}; |
| | | for (Double d : list){ |
| | | if (i<3){ |
| | | money[0] = money[0]+d; |
| | | }else if (i<6){ |
| | | money[1] = money[1]+d; |
| | | }else if (i<9){ |
| | | money[2] = money[2]+d; |
| | | }else if (i<12){ |
| | | money[3] = money[3]+d; |
| | | } |
| | | i++; |
| | | } |
| | | for (Double d : money){ |
| | | double d1=d/3; |
| | | lists.add(d1); |
| | | lists.add(d1); |
| | | lists.add(d1); |
| | | } |
| | | return R.ok().add(lists); |
| | | } |
| | | |
| | | @RequestMapping("/dashboard/popup/auth") |
| | | public R popup(String token) { |
| | | String item = "false"; |
| | | if (Cools.isEmpty(token)){ |
| | | return R.ok(item); |
| | | } |
| | | try{ |
| | | User user = getUser(token); |
| | | if (Cools.isEmpty(user) || Cools.isEmpty(user.getRoleId())){ |
| | | return R.ok(item); |
| | | } |
| | | if (user.getRoleId()<2){ |
| | | item="true"; |
| | | }else if (user.getRoleId()<3){ |
| | | item="true2"; |
| | | } |
| | | }catch (Exception ignored){ } |
| | | return R.ok(item); |
| | | } |
| | | |
| | | @RequestMapping("/dashboard/user/id/popup/auth") |
| | | public R popupUserId(String token) { |
| | | Long item = 0L; |
| | | if (Cools.isEmpty(token)){ |
| | | return R.ok(item); |
| | | } |
| | | try{ |
| | | User user = getUser(token); |
| | | if (Cools.isEmpty(user) || Cools.isEmpty(user.getId())){ |
| | | return R.ok(item); |
| | | } |
| | | item = user.getId(); |
| | | }catch (Exception ignored){ } |
| | | return R.ok(item); |
| | | } |
| | | |
| | | } |