中扬CRM客户关系管理系统
LSH
2023-10-09 26ebf71529e5ee4f70c4ad3ed52ea5e59c1b46e5
src/main/java/com/zy/crm/manager/controller/OrderController.java
@@ -1,21 +1,19 @@
package com.zy.crm.manager.controller;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.core.annotations.ManagerAuth;
import com.core.common.BaseRes;
import com.core.common.Cools;
import com.core.common.R;
import com.core.common.*;
import com.core.domain.KeyValueVo;
import com.core.exception.CoolException;
import com.zy.crm.common.model.SettleDto;
import com.zy.crm.common.web.BaseController;
import com.zy.crm.manager.controller.result.FollowerTableVo;
import com.zy.crm.manager.entity.Order;
import com.zy.crm.manager.entity.OrderFoll;
import com.zy.crm.manager.service.OrderFollService;
import com.zy.crm.manager.service.OrderService;
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 com.zy.crm.system.service.UserService;
@@ -39,6 +37,12 @@
    @Autowired
    private OrderService orderService;
    @Autowired
    private PlanService planService;
    @Autowired
    private PriOnline2Service priOnline2Service;
    @Autowired
    private PriSalesService priSalesService;
    @RequestMapping(value = "/order/{id}/auth")
    @ManagerAuth
@@ -90,25 +94,140 @@
        return R.ok();
    }
    @RequestMapping(value = "/order/userName/userId/auth")
    @ManagerAuth(memo = "添加跟踪项目获取当前登录账号信息")
    public R userNameAndUserId() {
        KeyValueVo keyValueVo = new KeyValueVo(getUser().getNickname(),getUserId());
        return R.ok().add(keyValueVo);
    }
   @RequestMapping(value = "/order/update/auth")
   @ManagerAuth(memo = "更新跟踪项目")
    @Transactional
    public R update(Order order){
        if (Cools.isEmpty(order) || null==order.getId()){
            return R.error();
        }
        Date now = new Date();
        order.setUpdateBy(getUserId());
        order.setUpdateTime(new Date());
        order.setUpdateTime(now);
        Order orderOld = orderService.selectById(order.getId());
        if (Cools.isEmpty(orderOld) || null==orderOld.getId()){
            return R.error();
        }
        if (!orderOld.getDirector().equals(order.getDirector())){
            User user = userService.selectById(order.getDirector());
            order.setUserId(user.getId());
            order.setDeptId(user.getDeptId());
            order.setHostId(user.getHostId());
            updateDirector(order.getId(),user,now);
        }
        orderService.updateById(order);
        return R.ok();
    }
    public void updateDirector(Long orderId, User user , Date now){
        try{
            List<Plan> plans = planService.selectList(new EntityWrapper<Plan>().eq("order_id", orderId));
            for (Plan plan:plans){
                if (plan.getSettle$().equals("审批通过")){
                    continue;
                }
                List<PriOnline2> priOnline2s = priOnline2Service.selectList(new EntityWrapper<PriOnline2>().eq("item_id", plan.getId()));
                for (PriOnline2 priOnline2:priOnline2s){
                    List<PriSales> priSalesList = priSalesService.selectList(new EntityWrapper<PriSales>().eq("pri_online2_id", priOnline2.getId()));
                    for (PriSales priSales:priSalesList){
                        priSales.setUserId(user.getId());
                        priSales.setDeptId(user.getDeptId());
                        priSales.setHostId(user.getHostId());
                        priSalesService.updateById(priSales);
                    }
                    priOnline2.setUserId(user.getId());
                    priOnline2.setDeptId(user.getDeptId());
                    priOnline2.setHostId(user.getHostId());
                    priOnline2.setUpdateUserId(getUserId());
                    priOnline2.setUpdateTime(now);
//                    List<SettleDto> priOnline2Dtos = JSON.parseArray(plan.getSettleMsg(), SettleDto.class);
//                    List<SettleDto> priOnline2DtoList = new ArrayList<>();
//                    for (SettleDto dto : priOnline2Dtos) {
//                        switch (dto.getStep()) {
//                            case 1:
//                                dto.setMsg(dto.getMsg()+" —————— "+DateUtils.convert(now)+" 跟踪项目修改负责人为:"+plan.getUserId$());
//                                dto.setUserId(plan.getUserId());
//                                dto.setUsername(plan.getUserId$());
//                                break;
//                            case 4:
//                                dto.setUserId(plan.getUserId());
//                                dto.setUsername(plan.getUserId$());
//                                break;
//                            default:
//                                break;
//                        }
//                        priOnline2DtoList.add(dto);
//                    }
//                    plan.setSettleMsg(JSON.toJSONString(priOnline2DtoList));
                    priOnline2Service.updateById(priOnline2);
                }
                plan.setUserId(user.getId());
                plan.setDeptId(user.getDeptId());
                plan.setHostId(user.getHostId());
                plan.setUpdateBy(getUserId());
                plan.setUpdateTime(now);
                List<SettleDto> planDtos = JSON.parseArray(plan.getSettleMsg(), SettleDto.class);
                List<SettleDto> planDtoList = new ArrayList<>();
                for (SettleDto dto : planDtos) {
                    switch (dto.getStep()) {
                        case 1:
                            dto.setMsg(dto.getMsg()+" ——————————————— "+DateUtils.convert(now)+" 跟踪项目修改负责人为:"+plan.getUserId$());
                            dto.setUserId(plan.getUserId());
                            dto.setUsername(plan.getUserId$());
                            break;
                        case 4:
                            dto.setUserId(plan.getUserId());
                            dto.setUsername(plan.getUserId$());
                            break;
                        default:
                            break;
                    }
                    planDtoList.add(dto);
                }
                plan.setSettleMsg(JSON.toJSONString(planDtoList));
                planService.updateById(plan);
            }
        }catch (Exception e){
            R.error();
            return;
        }
        R.ok();
    }
    @RequestMapping(value = "/order/delete/auth")
    @ManagerAuth(memo = "删除跟踪项目")
    public R delete(@RequestParam(value="ids[]") Long[] ids){
         for (Long id : ids){
             int plan = planService.selectCount(new EntityWrapper<Plan>().eq("order_id", id));
             if (plan!=0){
                 return R.error("存在关联的规划单,禁止删除!!!");
             }
            orderService.deleteById(id);
        }
         }
        return R.ok();
    }
    @PostMapping(value = "/order/business/list/auth")
    @ManagerAuth
    public R orderBusiness(@RequestParam Long orderId){
        List<KeyValueVo> vos = new ArrayList<>();
        vos.add(new KeyValueVo("出差申请", 1L));
        vos.add(new KeyValueVo("其它出差", 2L));
        return R.ok().add(vos);
    }
    @RequestMapping(value = "/orderQuery/auth")
@@ -122,6 +241,7 @@
            Map<String, Object> map = new HashMap<>();
            map.put("id", order.getId());
            map.put("value", order.getId());
            map.put("name", order.getName());
            result.add(map);
        }
        return R.ok(result);
@@ -172,7 +292,7 @@
                , role.judgeLeader() ? String.valueOf(user.getDeptId()) : null
                , user.getId()
                , condition
                , null);
                , 0);
        List<KeyValueVo> vos = new ArrayList<>();
        page.getRecords().forEach(item -> vos.add(new KeyValueVo(item.getName(), item.getId())));
        return R.ok().add(vos);
@@ -264,6 +384,24 @@
        return R.ok("添加成功");
    }
    @RequestMapping(value = "/order/followers/add/json")
    @ManagerAuth
    @Transactional
    public R cstmrFollowersAddJson(@RequestBody() Map map) {
        long cstmrId = Long.valueOf(String.valueOf(map.get("orderId")));
        long followerIds = Long.valueOf(String.valueOf(map.get("followerIds")));
        if (Cools.isEmpty(cstmrId, followerIds)) {
            return R.parse(BaseRes.PARAM);
        }
        OrderFoll orderFoll = new OrderFoll();
        orderFoll.setOrderId(cstmrId);
        orderFoll.setUserId(followerIds);
        if (!orderFollService.insert(orderFoll)) {
            throw new CoolException("添加失败,请联系管理员");
        }
        return R.ok("添加成功");
    }
    @RequestMapping(value = "/order/followers/remove/auth")
    @ManagerAuth
    public R orderFollowersRemove(@RequestParam("orderId") Long orderId,