From aa0161bf05195ccb00bc1d8da4b1b8218f93f4d3 Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期六, 04 十一月 2023 16:14:18 +0800
Subject: [PATCH] #

---
 src/main/java/com/zy/crm/manager/controller/OrderController.java |  219 +++++++++++++++++++++++++++++++++++++++++++++++++++---
 1 files changed, 207 insertions(+), 12 deletions(-)

diff --git a/src/main/java/com/zy/crm/manager/controller/OrderController.java b/src/main/java/com/zy/crm/manager/controller/OrderController.java
index 4120445..5b2bebd 100644
--- a/src/main/java/com/zy/crm/manager/controller/OrderController.java
+++ b/src/main/java/com/zy/crm/manager/controller/OrderController.java
@@ -1,22 +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.CstmrFoll;
-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;
@@ -40,6 +37,14 @@
 
     @Autowired
     private OrderService orderService;
+    @Autowired
+    private PlanService planService;
+    @Autowired
+    private PriOnline2Service priOnline2Service;
+    @Autowired
+    private PriQuoteService priQuoteService;
+    @Autowired
+    private FollowUpService followUpService;
 
     @RequestMapping(value = "/order/{id}/auth")
     @ManagerAuth
@@ -59,10 +64,23 @@
         if (param.get("status") != null) {
             status = Integer.parseInt(param.get("status").toString());
         }
+
+        Long director = null;
+        if (deptId==null && userId == null){
+            if (getRole().getId()==3){
+                userId = getUserId();
+            }else if (getRole().getId()==2){
+                deptId = getDeptId();
+                userId = null;
+            }
+            director = getUserId();
+        }
+
         return R.ok(orderService.getPage(new Page<>(curr, limit)
                 , getHostId()
                 , deptId == null ? null : String.valueOf(deptId)
-                , userId == null ? getUserId() : userId
+                , userId
+                , director
                 , condition
                 , status)
         );
@@ -91,25 +109,201 @@
         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();
+
+        if (order.getStatus()!=0){
+            if (Cools.isEmpty(order.getMemoExperience())){
+                return R.error("璇疯緭鍏ュ績寰椾綋浼�");
+            }else {
+                FollowUp followUp = new FollowUp();
+                followUp.setWorkMsg(order.getMemoExperience());
+                followUp.setOrderId(order.getId());
+                followUp.setUserId(getUserId());
+                followUp.setCreateBy(getUserId());
+                followUp.setUpdateBy(getUserId());
+                followUp.setDirector(getUserId());
+                followUp.setDeptId(getDeptId());
+                followUp.setCreateTime(now);
+                followUp.setUpdateTime(now);
+                followUpService.insert(followUp);
+            }
+        }
+
+        order.setMemoExperience(null);
         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){
+                boolean signPlan = false;
+                List<PriOnline2> priOnline2s = priOnline2Service.selectList(new EntityWrapper<PriOnline2>().eq("item_id", plan.getId()));
+                if (!Cools.isEmpty(priOnline2s)){
+                    for (PriOnline2 priOnline2:priOnline2s){
+                        boolean signPriOnline2 = false;
+                        List<PriQuote> priQuotes = priQuoteService.selectList(new EntityWrapper<PriQuote>().eq("pri_online_id", priOnline2.getId()));
+                        if (!Cools.isEmpty(priQuotes)){
+                            for (PriQuote priQuote:priQuotes){
+                                if (priQuote.getSettle()>=4){
+                                    continue;
+                                }
+                                signPriOnline2 = true;
+                                priQuote.setUserId(user.getId());
+                                priQuote.setDeptId(user.getDeptId());
+                                priQuote.setHostId(user.getHostId());
+                                priQuote.setUpdateUserId(getUserId());
+                                priQuote.setUpdateTime(now);
+
+                                List<SettleDto> priQuoteDtos = JSON.parseArray(priQuote.getSettleMsg(), SettleDto.class);
+                                List<SettleDto> priQuoteDtoList = new ArrayList<>();
+                                for (SettleDto dto : priQuoteDtos) {
+                                    switch (dto.getStep()) {
+                                        case 1:
+                                            dto.setMsg(dto.getMsg()+" 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� "+DateUtils.convert(now)+" 璺熻釜椤圭洰淇敼璐熻矗浜轰负锛�"+priQuote.getUserId$());
+                                            dto.setUserId(priQuote.getUserId());
+                                            dto.setUsername(priQuote.getUserId$());
+                                            break;
+                                        case 4:
+                                            dto.setUserId(priQuote.getUserId());
+                                            dto.setUsername(priQuote.getUserId$());
+                                            break;
+                                        default:
+                                            break;
+                                    }
+                                    priQuoteDtoList.add(dto);
+                                }
+                                priQuote.setSettleMsg(JSON.toJSONString(priQuoteDtoList));
+
+                                priQuoteService.updateById(priQuote);
+                            }
+                        }else {
+                            signPriOnline2=true;
+                        }
+                        if (!signPriOnline2){
+                            continue;
+                        }
+                        signPlan = true;
+
+                        priOnline2.setUserId(user.getId());
+                        priOnline2.setDeptId(user.getDeptId());
+                        priOnline2.setHostId(user.getHostId());
+                        priOnline2.setUpdateUserId(getUserId());
+                        priOnline2.setUpdateTime(now);
+                        List<SettleDto> priOnline2Dtos = JSON.parseArray(priOnline2.getSettleMsg(), SettleDto.class);
+                        List<SettleDto> priOnline2DtoList = new ArrayList<>();
+                        for (SettleDto dto : priOnline2Dtos) {
+                            switch (dto.getStep()) {
+                                case 0:
+                                    dto.setMsg(dto.getMsg()+" 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� "+DateUtils.convert(now)+" 璺熻釜椤圭洰淇敼璐熻矗浜轰负锛�"+priOnline2.getUser$());
+                                    break;
+                                case 2:
+                                    dto.setUserId(priOnline2.getUserId());
+                                    dto.setUsername(priOnline2.getUser$());
+                                    break;
+                                default:
+                                    break;
+                            }
+                            priOnline2DtoList.add(dto);
+                        }
+                        priOnline2.setSettleMsg(JSON.toJSONString(priOnline2DtoList));
+
+                        priOnline2Service.updateById(priOnline2);
+                    }
+
+                }else {
+                    signPlan=true;
+                }
+
+                if (!signPlan){
+                    continue;
+                }
+
+                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")
@@ -173,8 +367,9 @@
                 , getHostId()
                 , role.judgeLeader() ? String.valueOf(user.getDeptId()) : null
                 , user.getId()
+                , null
                 , 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);

--
Gitblit v1.9.1