From 7b4211d813e06b810c99bed7552d732dd31b4041 Mon Sep 17 00:00:00 2001
From: maven <2163098428@qq.com>
Date: 星期二, 03 三月 2026 17:56:36 +0800
Subject: [PATCH] yys  商机管理优化

---
 src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java |   49 +++++++++++++++++++++++++++++++++++++++++++------
 1 files changed, 43 insertions(+), 6 deletions(-)

diff --git a/src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java b/src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java
index 8b32f21..ff320d0 100644
--- a/src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java
+++ b/src/main/java/com/ruoyi/sales/controller/BusinessOpportunityController.java
@@ -3,10 +3,13 @@
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.ruoyi.common.utils.SecurityUtils;
 import com.ruoyi.framework.aspectj.lang.annotation.Log;
 import com.ruoyi.framework.aspectj.lang.enums.BusinessType;
 import com.ruoyi.framework.web.controller.BaseController;
 import com.ruoyi.framework.web.domain.AjaxResult;
+import com.ruoyi.project.system.domain.SysNotice;
+import com.ruoyi.project.system.service.impl.UnipushService;
 import com.ruoyi.sales.mapper.BusinessDescriptionMapper;
 import com.ruoyi.sales.pojo.BusinessDescription;
 import com.ruoyi.sales.pojo.BusinessOpportunity;
@@ -20,6 +23,7 @@
 import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 
+import java.util.ArrayList;
 import java.util.List;
 
 /**
@@ -35,10 +39,13 @@
     private BusinessOpportunityService businessOpportunityService;
 
     @Autowired
-    private BusinessDescriptionMapper BusinessDescriptionMapper;
+    private BusinessDescriptionMapper businessDescriptionMapper;
 
     @Autowired
     private CommonFileServiceImpl commonFileService;
+
+    @Autowired
+    private UnipushService unipushService;
 
     @ApiOperation("鑾峰彇鐪佺骇鍒楄〃")
     @GetMapping("/getProvinceList")
@@ -58,8 +65,9 @@
         IPage<BusinessOpportunity> businessOpportunityIPage = businessOpportunityService.listPage(page, businessOpportunity);
         businessOpportunityIPage.getRecords().forEach(item -> {
             item.setBusinessCommonFiles(commonFileService.getFileList(item.getId(),9));
-            item.setBusinessDescription(BusinessDescriptionMapper.selectList(Wrappers.lambdaQuery(BusinessDescription.class)
-                    .eq(BusinessDescription::getBusinessOpportunityId, item.getId())));
+            item.setBusinessDescription(businessDescriptionMapper.selectList(Wrappers.lambdaQuery(BusinessDescription.class)
+                    .eq(BusinessDescription::getBusinessOpportunityId, item.getId())
+                    .orderByDesc(BusinessDescription::getCreateTime)));
         });
         return AjaxResult.success(businessOpportunityIPage);
     }
@@ -68,28 +76,57 @@
     @ApiOperation("娣诲姞鍟嗘満")
     @Log(title = "鍟嗘満绠$悊-娣诲姞鍟嗘満", businessType = BusinessType.INSERT)
     @Transactional(rollbackFor = Exception.class)
-    public AjaxResult add(@RequestBody BusinessOpportunity businessOpportunity) throws  Exception{
+    public AjaxResult add(@RequestBody BusinessOpportunity businessOpportunity) throws Exception{
         businessOpportunityService.save(businessOpportunity);
         BusinessDescription businessDescription = new BusinessDescription();
         BeanUtils.copyProperties(businessOpportunity, businessDescription);
         businessDescription.setBusinessOpportunityId(businessOpportunity.getId());
         // 杩佺Щ涓存椂鏂囦欢鍒版寮忔枃浠�
         commonFileService.migrateTempFilesToFormal(businessOpportunity.getId(), businessOpportunity.getTempFileIds());
-        return BusinessDescriptionMapper.insert(businessDescription) > 0 ? success() : error();
+        // 鎺ㄩ�佹秷鎭�
+        List<SysNotice> sysNoticeList = new ArrayList<>();
+        SysNotice sysNotice = new SysNotice();
+        sysNotice.setNoticeTitle("涓氬姟鍛� "+ businessOpportunity.getEntryPerson());
+        sysNotice.setNoticeContent("鏂板瀹㈡埛 " + businessOpportunity.getCustomerName() + " 閲戦 "+ businessOpportunity.getContractAmount());
+        sysNotice.setNoticeType("1");
+        sysNotice.setStatus("0");
+        sysNotice.setSenderId(SecurityUtils.getUserId());
+        sysNotice.setConsigneeId(SecurityUtils.getUserId());
+        sysNotice.setAppJumpPath("pages/opportunityManagement/index");
+        unipushService.sendClientMessage(sysNoticeList);
+        return businessDescriptionMapper.insert(businessDescription) > 0 ? success() : error();
     }
 
     @PostMapping("/addDescription")
     @ApiOperation("娣诲姞鍟嗘満鎻忚堪")
     @Log(title = "鍟嗘満绠$悊-娣诲姞鍟嗘満鎻忚堪", businessType = BusinessType.INSERT)
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult addDescription(@RequestBody BusinessDescription businessDescription) throws  Exception{
         // 杩佺Щ涓存椂鏂囦欢鍒版寮忔枃浠�
         commonFileService.migrateTempFilesToFormal(businessDescription.getBusinessOpportunityId(), businessDescription.getTempFileIds());
-        return BusinessDescriptionMapper.insert(businessDescription) > 0 ? success() : error();
+        BusinessOpportunity byId = businessOpportunityService.getById(businessDescription.getBusinessOpportunityId());
+        if(byId != null){
+            byId.setStatus(businessDescription.getStatus());
+            businessOpportunityService.updateById(byId);
+            // 鎺ㄩ�佹秷鎭�
+            List<SysNotice> sysNoticeList = new ArrayList<>();
+            SysNotice sysNotice = new SysNotice();
+            sysNotice.setNoticeTitle("涓氬姟鍛� "+ businessDescription.getEntryPerson());
+            sysNotice.setNoticeContent("瀹㈡埛 " + byId.getCustomerName() + " 閲戦 "+ byId.getContractAmount() + " 鐘舵�� " + businessDescription.getStatus());
+            sysNotice.setNoticeType("1");
+            sysNotice.setStatus("0");
+            sysNotice.setSenderId(SecurityUtils.getUserId());
+            sysNotice.setConsigneeId(SecurityUtils.getUserId());
+            sysNotice.setAppJumpPath("pages/opportunityManagement/index");
+            unipushService.sendClientMessage(sysNoticeList);
+        }
+        return businessDescriptionMapper.insert(businessDescription) > 0 ? success() : error();
     }
 
     @PostMapping("/update")
     @ApiOperation("淇敼鍟嗘満")
     @Log(title = "鍟嗘満绠$悊-淇敼鍟嗘満", businessType = BusinessType.UPDATE)
+    @Transactional(rollbackFor = Exception.class)
     public AjaxResult update(@RequestBody BusinessOpportunity businessOpportunity) throws  Exception{
         // 杩佺Щ涓存椂鏂囦欢鍒版寮忔枃浠�
         commonFileService.migrateTempFilesToFormal(businessOpportunity.getId(), businessOpportunity.getTempFileIds());

--
Gitblit v1.9.3