From 92459e3e326488acae77e068c37eb4b96eae5ebf Mon Sep 17 00:00:00 2001
From: LSH
Date: 星期三, 27 三月 2024 12:41:48 +0800
Subject: [PATCH] #周计划

---
 src/main/java/com/zy/crm/manager/controller/OrderController.java |  180 ++++++++++++++++++++++++++++++++++++++++++-----------------
 1 files changed, 128 insertions(+), 52 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 006bf7f..0f17ce7 100644
--- a/src/main/java/com/zy/crm/manager/controller/OrderController.java
+++ b/src/main/java/com/zy/crm/manager/controller/OrderController.java
@@ -42,7 +42,9 @@
     @Autowired
     private PriOnline2Service priOnline2Service;
     @Autowired
-    private PriSalesService priSalesService;
+    private PriQuoteService priQuoteService;
+    @Autowired
+    private FollowUpService followUpService;
 
     @RequestMapping(value = "/order/{id}/auth")
     @ManagerAuth
@@ -62,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)
         );
@@ -110,7 +125,29 @@
         }
         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);
+            }
+        }else {
+            if (Cools.isEmpty(order.getMemoExperience())) {
+                order.setMemoExperience(null);
+            }
+        }
 
+        order.setMemoExperience(null);
         order.setUpdateBy(getUserId());
         order.setUpdateTime(now);
         Order orderOld = orderService.selectById(order.getId());
@@ -132,48 +169,91 @@
     }
 
     public void updateDirector(Long orderId, User user , Date now){
+        User manager = new User();
+        try{
+            manager = userService.getDeptManager(getHostId(), user.getDeptId());        // 鑾峰彇閮ㄩ棬棰嗗
+        }catch (Exception e){
+            manager = user;
+        }
         try{
             List<Plan> plans = planService.selectList(new EntityWrapper<Plan>().eq("order_id", orderId));
             for (Plan plan:plans){
-                if (plan.getSettle$().equals("瀹℃壒閫氳繃")){
+                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) {
+                                    if (priQuoteDtos.indexOf(dto) == 0) {
+                                        dto.setMsg(dto.getMsg() + " 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� " + DateUtils.convert(now) + " 璺熻釜椤圭洰淇敼璐熻矗浜轰负锛�" + priQuote.getUserId$());
+                                        dto.setUserId(priQuote.getUserId());
+                                        dto.setUsername(priQuote.getUserId$());
+                                    } else if (dto.getStep() == 2) {
+                                        dto.setMsg(dto.getMsg() + " 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� " + DateUtils.convert(now) + " 璺熻釜椤圭洰淇敼璐熻矗浜烘椂鍚屾淇敼璐熻矗浜虹粡鐞嗕负锛�" + manager.getNickname());
+                                        dto.setUserId(manager.getId());
+                                        dto.setUsername(manager.getNickname());
+                                    } else if (dto.getStep() == 4) {
+                                        dto.setUserId(priQuote.getUserId());
+                                        dto.setUsername(priQuote.getUserId$());
+                                    }
+                                    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) {
+                            if (priOnline2Dtos.indexOf(dto) == 0) {
+                                dto.setMsg(dto.getMsg() + " 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� " + DateUtils.convert(now) + " 璺熻釜椤圭洰淇敼璐熻矗浜轰负锛�" + priOnline2.getUser$());
+                            } else if (priOnline2Dtos.indexOf(dto) == priOnline2Dtos.size()-1) {
+                                dto.setUserId(priOnline2.getUserId());
+                                dto.setUsername(priOnline2.getUser$());
+                            }
+                            priOnline2DtoList.add(dto);
+                        }
+                        priOnline2.setSettleMsg(JSON.toJSONString(priOnline2DtoList));
+
+                        priOnline2Service.updateById(priOnline2);
+                    }
+
+                }else {
+                    signPlan=true;
+                }
+
+                if (!signPlan){
                     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());
@@ -183,18 +263,13 @@
                 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;
+                    if (planDtos.indexOf(dto) == 0) {
+                        dto.setMsg(dto.getMsg() + " 鈥斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�斺�� " + DateUtils.convert(now) + " 璺熻釜椤圭洰淇敼璐熻矗浜轰负锛�" + plan.getUserId$());
+                        dto.setUserId(plan.getUserId());
+                        dto.setUsername(plan.getUserId$());
+                    } else if (dto.getStep().equals(plan.getSettleSize())) {
+                        dto.setUserId(plan.getUserId());
+                        dto.setUsername(plan.getUserId$());
                     }
                     planDtoList.add(dto);
                 }
@@ -254,7 +329,7 @@
         wrapper.like("name", condition);
         Long id = getRole().getId();
         if (id.equals(1L)) {
-            wrapper.eq("host_id", 1);
+            wrapper.eq("host_id", getHostId());
         } else if (id.equals(2L)) {
             wrapper.eq("dept_id", getDeptId());
         } else {
@@ -291,6 +366,7 @@
                 , getHostId()
                 , role.judgeLeader() ? String.valueOf(user.getDeptId()) : null
                 , user.getId()
+                , null
                 , condition
                 , 0);
         List<KeyValueVo> vos = new ArrayList<>();
@@ -304,7 +380,7 @@
      * excel瀵煎叆
      */
     @PostMapping(value = "/order/excel/import/auth")
-    @ManagerAuth(memo = "鐢叉柟鍗曚綅Excel瀵煎叆")
+    @ManagerAuth(memo = "瀹㈡埛淇℃伅Excel瀵煎叆")
 //    @Transactional
     public R orderExcelImport(MultipartFile file) throws IOException {
         InputStream inStream = file.getInputStream();

--
Gitblit v1.9.1