From 13ff112e45a64378cdc91aa2f05916721945f08a Mon Sep 17 00:00:00 2001
From: k94314517 <8417338+k94314517@user.noreply.gitee.com>
Date: 星期四, 01 二月 2024 19:22:58 +0800
Subject: [PATCH] 111

---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java       |  105 ++++++-
 server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java                |    2 
 server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java              |    3 
 server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java      |   34 ++
 server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java             |   74 ++---
 server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java |   23 +
 server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java           |    7 
 server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java           |  106 ++-----
 server/platform/src/main/java/com/doumee/api/business/NoticesController.java                    |    2 
 server/service/src/main/java/com/doumee/service/business/ApplyChagneDetailService.java          |    2 
 server/company/src/main/java/com/doumee/api/business/NoticesController.java                     |    8 
 server/service/src/main/java/com/doumee/core/utils/Constants.java                               |  175 +++++++++++++
 server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java    |  118 ++++++++
 server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java      |   50 +++
 server/service/src/main/java/com/doumee/dao/business/model/Notices.java                         |   51 +++
 server/service/src/main/java/com/doumee/dao/business/join/NoticesJoinMapper.java                |   13 +
 16 files changed, 620 insertions(+), 153 deletions(-)

diff --git a/server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java b/server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
index 951ea62..5acdfe1 100644
--- a/server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
+++ b/server/company/src/main/java/com/doumee/api/business/ApplyChagneDetailController.java
@@ -75,6 +75,13 @@
         return ApiResponse.success(applyChagneDetailService.findPageForCompany(pageWrap));
     }
 
+    @ApiOperation("鍒楄〃鏌ヨ")
+    @PostMapping("/list")
+    @RequiresPermissions("business:applychagnedetail:query")
+    public ApiResponse<List<ApplyChagneDetail>> findList (@RequestBody ApplyDetailPageDTO applyDetailPageDTO) {
+        return ApiResponse.success(applyChagneDetailService.findListForCompany(applyDetailPageDTO));
+    }
+
     @ApiOperation("瀵煎嚭Excel")
     @PostMapping("/exportExcel")
     @RequiresPermissions("business:applychagnedetail:exportExcel")
diff --git a/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java b/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
index 201fd18..e5af4b1 100644
--- a/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
+++ b/server/company/src/main/java/com/doumee/api/business/DispatchUnitController.java
@@ -43,7 +43,7 @@
     }
 
     @PreventRepeat
-    @ApiOperation("娣诲姞宸ョ")
+    @ApiOperation("娣诲姞鏂规宸ョ")
     @PostMapping("/createSolution")
     @RequiresPermissions("business:dispatchunit:create")
     public ApiResponse createSolution(@RequestBody SaveDispatchUnitDTO saveDispatchUnitDTO) {
diff --git a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
index be8ece9..ef55325 100644
--- a/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
+++ b/server/company/src/main/java/com/doumee/api/business/InsuranceApplyController.java
@@ -113,7 +113,7 @@
     public ApiResponse<InsuranceApply> findById(@PathVariable Integer id) {
         return ApiResponse.success(insuranceApplyService.findDetail(id));
     }
-    @ApiOperation("鏍规嵁ID鏌ヨ")
+    @ApiOperation("浼佷笟绛剧讲淇濆崟")
     @GetMapping("/getSignLink/{id}")
     @RequiresPermissions("business:insuranceapply:query")
     public ApiResponse<String> getSignLink(@PathVariable Integer id) {
@@ -127,7 +127,6 @@
         insuranceApplyService.applyOpt(insuranceApplyOptDTO);
         return ApiResponse.success("鎿嶄綔鎴愬姛");
     }
-
 
     @ApiOperation("鑾峰彇淇濆崟姝㈡湡涓庡垵濮嬮噾棰�")
     @PostMapping("/getCountCyclePriceVO")
diff --git a/server/company/src/main/java/com/doumee/api/business/NoticesController.java b/server/company/src/main/java/com/doumee/api/business/NoticesController.java
index 5cd022a..42f845b 100644
--- a/server/company/src/main/java/com/doumee/api/business/NoticesController.java
+++ b/server/company/src/main/java/com/doumee/api/business/NoticesController.java
@@ -4,13 +4,16 @@
 import com.doumee.core.annotation.excel.ExcelExporter;
 import com.doumee.core.annotation.pr.PreventRepeat;
 import com.doumee.core.model.ApiResponse;
+import com.doumee.core.model.LoginUserInfo;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.Notices;
 import com.doumee.service.business.NoticesService;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
-import org.apache.shiro.authz.annotation.RequiresPermissions;    
+import org.apache.shiro.SecurityUtils;
+import org.apache.shiro.authz.annotation.RequiresPermissions;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
 import javax.servlet.http.HttpServletResponse;
@@ -71,6 +74,9 @@
     @PostMapping("/page")
     @RequiresPermissions("business:notices:query")
     public ApiResponse<PageData<Notices>> findPage (@RequestBody PageWrap<Notices> pageWrap) {
+        LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
+        pageWrap.getModel().setCompanyId(loginUserInfo.getCompanyId());
+        pageWrap.getModel().setPalt(Constants.ONE);
         return ApiResponse.success(noticesService.findPage(pageWrap));
     }
 
diff --git a/server/platform/src/main/java/com/doumee/api/business/NoticesController.java b/server/platform/src/main/java/com/doumee/api/business/NoticesController.java
index 5cd022a..d3110c5 100644
--- a/server/platform/src/main/java/com/doumee/api/business/NoticesController.java
+++ b/server/platform/src/main/java/com/doumee/api/business/NoticesController.java
@@ -6,6 +6,7 @@
 import com.doumee.core.model.ApiResponse;
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.model.PageData;
+import com.doumee.core.utils.Constants;
 import com.doumee.dao.business.model.Notices;
 import com.doumee.service.business.NoticesService;
 import io.swagger.annotations.Api;
@@ -71,6 +72,7 @@
     @PostMapping("/page")
     @RequiresPermissions("business:notices:query")
     public ApiResponse<PageData<Notices>> findPage (@RequestBody PageWrap<Notices> pageWrap) {
+        pageWrap.getModel().setPalt(Constants.ZERO);
         return ApiResponse.success(noticesService.findPage(pageWrap));
     }
 
diff --git a/server/service/src/main/java/com/doumee/core/utils/Constants.java b/server/service/src/main/java/com/doumee/core/utils/Constants.java
index 14fe22d..c6be2c9 100644
--- a/server/service/src/main/java/com/doumee/core/utils/Constants.java
+++ b/server/service/src/main/java/com/doumee/core/utils/Constants.java
@@ -910,6 +910,181 @@
         }
     }
 
+
+    public  enum NoticeObjectType {
+        INSURANCE_APPLY(0, "鎶曚繚鐢宠","淇濋櫓鏂规"),
+        APPLY_CHANGE(1, "鍔犲噺淇濈敵璇�","淇濋櫓鏂规"),
+        CHANGE_FACTORY(2, "鍛樺伐鎹㈠巶鐢宠","淇濋櫓鏂规"),
+        DISPATCH_UNIT(3, "娲鹃仯鍗曚綅鐢宠","娲鹃仯鍗曚綅"),
+        TAXES(4, "寮�绁ㄧ敵璇�","寮�绁ㄩ噾棰�"),
+        SETTLE_CLAIMS(5, "鎶ユ鐞嗚禂","鎶ユ浜�")
+        ;
+        // 鎴愬憳鍙橀噺
+        private int key;
+        private String name;
+        private String info;
+
+        // 鏋勯�犳柟娉�
+        NoticeObjectType(int key, String name,String info) {
+            this.name = name;
+            this.key = key;
+            this.info = info;
+        }
+
+        // 鏅�氭柟娉�
+        public static String getName(int index) {
+            for (NoticeObjectType c : NoticeObjectType.values()) {
+                if (c.getKey() == index) {
+                    return c.name;
+                }
+            }
+            return null;
+        }
+
+
+        // get set 鏂规硶
+        public String getName() {
+            return name;
+        }
+
+        public void setName(String name) {
+            this.name = name;
+        }
+
+        public int getKey() {
+            return key;
+        }
+
+        public void setKey(int key) {
+            this.key = key;
+        }
+
+        public String getInfo() {
+            return info;
+        }
+
+        public void setInfo(String info) {
+            this.info = info;
+        }
+
+    }
+
+
+    public  enum NoticeType {
+
+        ZERO(0, "寰呭鎵�","","","寰呭鏍�","宸茬敵璇�","寰呭彈鐞�"),
+        ONE(1, "浼佷笟寰呯缃�","","","宸ョ寰呭鏍�","","瀹屾垚鍙楃悊"),
+        TWO(2, "寰呭嚭鍗�","寰呭鎵�","寰呭鎵�","","",""),
+        THREE(3, "鐢宠閫�鍥�","鐢宠閫�鍥�","鐢宠閫�鍥�","","",""),
+        FOUR(4, "宸查��鍥�","宸查��鍥�","宸查��鍥�","","",""),
+        FIVE(5, "鐢宠椹冲洖","鐢宠椹冲洖","鐢宠椹冲洖","","","")
+        ;
+
+        // 鎴愬憳鍙橀噺
+        private int status;
+        private String insuranceApplyDetail;
+        private String applyChangeDetail;
+        private String changeFactoryDetail;
+        private String dispatchUnitDetail;
+        private String taxesDetail;
+        private String settleClaimsDetail;
+
+        // 鏋勯�犳柟娉�
+        NoticeType(int status, String insuranceApplyDetail,String applyChangeDetail
+                , String changeFactoryDetail,String dispatchUnitDetail
+                , String taxesDetail,String settleClaimsDetail) {
+            this.status = status;
+            this.insuranceApplyDetail = insuranceApplyDetail;
+            this.applyChangeDetail = applyChangeDetail;
+            this.changeFactoryDetail = changeFactoryDetail;
+            this.dispatchUnitDetail = dispatchUnitDetail;
+            this.taxesDetail = taxesDetail;
+            this.settleClaimsDetail = settleClaimsDetail;
+        }
+
+        // 鏅�氭柟娉�
+        public static String getDetail(int status,int type) {
+            for (NoticeType c : NoticeType.values()) {
+                if (c.getStatus() == status) {
+                    if(type==NoticeObjectType.INSURANCE_APPLY.getKey() ){
+                        return c.getInsuranceApplyDetail();
+                    }else if(type == NoticeObjectType.APPLY_CHANGE.getKey()){
+                        return c.getApplyChangeDetail();
+                    }else if(type == NoticeObjectType.CHANGE_FACTORY.getKey()){
+                        return c.getChangeFactoryDetail();
+                    }else if(type == NoticeObjectType.DISPATCH_UNIT.getKey()){
+                        return c.getDispatchUnitDetail();
+                    }else if(type == NoticeObjectType.TAXES.getKey()){
+                        return c.getTaxesDetail();
+                    }else if(type == NoticeObjectType.SETTLE_CLAIMS.getKey()){
+                        return c.getSettleClaimsDetail();
+                    }
+                }
+            }
+            return null;
+        }
+
+        // get set 鏂规硶
+        public int getStatus() {
+            return status;
+        }
+
+        public void setStatus(int status) {
+            this.status = status;
+        }
+
+        public String getInsuranceApplyDetail() {
+            return insuranceApplyDetail;
+        }
+
+        public void setInsuranceApplyDetail(String name) {
+            this.insuranceApplyDetail = insuranceApplyDetail;
+        }
+
+        public String getApplyChangeDetail() {
+            return applyChangeDetail;
+        }
+
+        public void setApplyChangeDetail(String info) {
+            this.applyChangeDetail = applyChangeDetail;
+        }
+
+        public String getChangeFactoryDetail() {
+            return changeFactoryDetail;
+        }
+
+        public void setChangeFactoryDetail(String info) {
+            this.changeFactoryDetail = changeFactoryDetail;
+        }
+
+        public String getDispatchUnitDetail() {
+            return dispatchUnitDetail;
+        }
+
+        public void setDispatchUnitDetail(String info) {
+            this.dispatchUnitDetail = dispatchUnitDetail;
+        }
+
+        public String getTaxesDetail() {
+            return taxesDetail;
+        }
+
+        public void setTaxesDetail(String info) {
+            this.taxesDetail = taxesDetail;
+        }
+
+        public String getSettleClaimsDetail() {
+            return settleClaimsDetail;
+        }
+
+        public void setSettleClaimsDetail(String info) {
+            this.settleClaimsDetail = settleClaimsDetail;
+        }
+
+
+    }
+
+
     public static BigDecimal countDetailFee(Solutions solutions,Date startDate, Date endDate){
         //鏌ヨ淇濋櫓瀹為檯鍛ㄦ湡
         Integer cycle = DateUtil.calculateBetween(endDate,startDate,solutions.getTimeUnit());
diff --git a/server/service/src/main/java/com/doumee/dao/business/join/NoticesJoinMapper.java b/server/service/src/main/java/com/doumee/dao/business/join/NoticesJoinMapper.java
new file mode 100644
index 0000000..22f760a
--- /dev/null
+++ b/server/service/src/main/java/com/doumee/dao/business/join/NoticesJoinMapper.java
@@ -0,0 +1,13 @@
+package com.doumee.dao.business.join;
+
+import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import com.doumee.dao.business.model.Notices;
+import com.github.yulichang.base.mapper.MPJJoinMapper;
+
+/**
+ * @author 姹熻箘韫�
+ * @date 2024/01/16 10:03
+ */
+public interface NoticesJoinMapper extends MPJJoinMapper<Notices> {
+
+}
diff --git a/server/service/src/main/java/com/doumee/dao/business/model/Notices.java b/server/service/src/main/java/com/doumee/dao/business/model/Notices.java
index c9dc43f..f19bab1 100644
--- a/server/service/src/main/java/com/doumee/dao/business/model/Notices.java
+++ b/server/service/src/main/java/com/doumee/dao/business/model/Notices.java
@@ -1,6 +1,9 @@
 package com.doumee.dao.business.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import com.doumee.core.annotation.excel.ExcelColumn;
+import com.doumee.core.model.LoginUserInfo;
+import com.doumee.core.utils.Constants;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -69,15 +72,20 @@
 
     @ApiModelProperty(value = "鍏宠仈瀵硅薄绫诲瀷")
     @ExcelColumn(name="鍏宠仈瀵硅薄绫诲瀷")
-    private String objType;
+    private Integer objType;
 
     @ApiModelProperty(value = "鍏宠仈瀵硅薄鍚嶇О")
     @ExcelColumn(name="鍏宠仈瀵硅薄鍚嶇О")
     private String objName;
 
-    @ApiModelProperty(value = "绫诲瀷 0骞冲彴娑堟伅 1浼佷笟娑堟伅")
-    @ExcelColumn(name="绫诲瀷 0骞冲彴娑堟伅 1浼佷笟娑堟伅")
-    private String type;
+    @ApiModelProperty(value = "绫诲瀷")
+    @ExcelColumn(name="绫诲瀷")
+    private Integer type;
+
+    @ApiModelProperty(value = "绫诲瀷鎻忚堪")
+    @TableField(exist = false)
+    private String typeDetail;
+
 
     @ApiModelProperty(value = "鍏宠仈鍙傛暟1")
     @ExcelColumn(name="鍏宠仈鍙傛暟1")
@@ -107,6 +115,10 @@
     @ExcelColumn(name="鍏宠仈浼佷笟缂栫爜(鍏宠仈company锛�")
     private Integer companyId;
 
+    @ApiModelProperty(value = "鍏宠仈浼佷笟鍚嶇О")
+    @TableField(exist = false)
+    private String companyName;
+
     @ApiModelProperty(value = "骞冲彴 0骞冲彴娑堟伅 1浼佷笟娑堟伅", example = "1")
     @ExcelColumn(name="骞冲彴 0骞冲彴娑堟伅 1浼佷笟娑堟伅")
     private Integer palt;
@@ -119,4 +131,35 @@
     @ExcelColumn(name="鏄惁宸茶 0鏈 1宸茶")
     private Integer readed;
 
+    public Notices(){
+
+    }
+
+    /**
+     *
+     * @param noticeType 娑堟伅绫诲瀷
+     * @param palt 鏁版嵁骞冲彴 0骞冲彴娑堟伅 1浼佷笟娑堟伅
+     * @param objId 鍏宠仈瀵硅薄涓婚敭
+     * @param content   鏂规鍚嶇О/鍗曚綅鍚嶇О/寮�绁ㄩ噾棰�/鎶ユ浜�
+     * @param companyId 浼佷笟涓婚敭
+     */
+    public Notices(Constants.NoticeObjectType noticeObjectType,Integer palt, Integer objId, String content, Integer companyId,Constants.NoticeType noticeType){
+        this.createDate = new Date();
+        this.creator = userId ;
+        this.isdeleted = Constants.ZERO ;
+        this.title = noticeObjectType.getName();
+        this.objType = noticeObjectType.getKey();
+        this.objId = objId;
+        this.info = noticeObjectType.getInfo();
+        this.content = content;
+        this.status = Constants.ZERO;
+        this.readed = Constants.ZERO;
+        this.type = noticeType.getStatus();
+        this.companyId = companyId;
+        this.palt = palt ;
+    }
+
+
+
+
 }
diff --git a/server/service/src/main/java/com/doumee/service/business/ApplyChagneDetailService.java b/server/service/src/main/java/com/doumee/service/business/ApplyChagneDetailService.java
index fd5eb99..5c2f247 100644
--- a/server/service/src/main/java/com/doumee/service/business/ApplyChagneDetailService.java
+++ b/server/service/src/main/java/com/doumee/service/business/ApplyChagneDetailService.java
@@ -90,7 +90,7 @@
 
     PageData<ApplyChagneDetail> findPageForCompany(PageWrap<ApplyDetailPageDTO> pageWrap);
 
-
+    List<ApplyChagneDetail> findListForCompany(ApplyDetailPageDTO applyDetailPageDTO);
     /**
      * 鏉′欢缁熻
      *
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
index a6e53bc..ef23ee2 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChagneDetailServiceImpl.java
@@ -232,6 +232,29 @@
         return pageData;
     }
 
+
+    @Override
+    public List<ApplyChagneDetail> findListForCompany(ApplyDetailPageDTO applyDetailPageDTO) {
+        MPJLambdaWrapper<ApplyChagneDetail> queryWrapper = new MPJLambdaWrapper<>();
+        queryWrapper.selectAll(ApplyChagneDetail.class);
+        queryWrapper.select("t2.name",ApplyChagneDetail::getWorkTypeName);
+        queryWrapper.select("t3.name",ApplyChagneDetail::getDuName);
+        queryWrapper.select("t4.name",ApplyChagneDetail::getOldWorkTypeName);
+        queryWrapper.select("t5.name",ApplyChagneDetail::getOldDuName);
+        queryWrapper.selectAs(Member::getName,ApplyChagneDetail::getMemberName);
+        queryWrapper.selectAs(Member::getSex,ApplyChagneDetail::getSex);
+        queryWrapper.selectAs(Member::getIdcardNo,ApplyChagneDetail::getMemberIdcardNo);
+        queryWrapper.leftJoin(Member.class,Member::getId,ApplyChagneDetail::getMemberId);
+        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getWorktypeId);
+        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getDuId);
+        queryWrapper.leftJoin(Worktype.class,Worktype::getId,ApplyChagneDetail::getOldWorktypeId);
+        queryWrapper.leftJoin(DispatchUnit.class,DispatchUnit::getId,ApplyChagneDetail::getOldDuId);
+        queryWrapper.in(CollectionUtils.isNotEmpty(applyDetailPageDTO.getTypes()),ApplyChagneDetail::getType,applyDetailPageDTO.getTypes());
+        queryWrapper.eq(!Objects.isNull(applyDetailPageDTO.getApplyChangId()),ApplyChagneDetail::getApplyChangeId,applyDetailPageDTO.getApplyChangId());
+        return applyChangeDetailJoinMapper.selectJoinList(ApplyChagneDetail.class, queryWrapper);
+    }
+
+
     @Override
     public long count(ApplyChagneDetail applyChagneDetail) {
         QueryWrapper<ApplyChagneDetail> wrapper = new QueryWrapper<>(applyChagneDetail);
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
index 0d06fbd..2a99876 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/ApplyChangeServiceImpl.java
@@ -101,6 +101,8 @@
     @Autowired
     private SolutionsMapper solutionsMapper;
 
+    @Autowired
+    private NoticesMapper noticesMapper;
     /**
      * 骞冲彴閫�鍥炴姇淇�
      * @param param
@@ -126,7 +128,7 @@
         ApplyChange update = new ApplyChange();
         update.setEditDate(new Date());
         update.setEditor(user.getId());
-        update.setStatus(Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS_NO.getKey());
+        update.setStatus(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey());
         update.setCheckDate(update.getEditDate());
         update.setCheckInfo(param.getCheckInfo());
         update.setCheckUserId(user.getId());
@@ -510,10 +512,23 @@
             throw  new BusinessException(ResponseStatus.DATA_EMPTY);
         }
 
+        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId());
+        if(Objects.isNull(insuranceApply)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY);
+        }
+        if(insuranceApply.getIsdeleted().equals(Constants.ONE)){
+            throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁宸插垹闄�,鏃犳硶杩涜璇ユ搷浣�");
+        }
+        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
+        }
+
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         Constants.ApplyLogType applyLogType = null;
         String info = "";
         ApplyChange update = new ApplyChange();
+        Constants.NoticeType noticeType = Constants.NoticeType.FOUR;
         if(param.getDealBackApply() ==1){
             //濡傛灉鏄┏鍥�,鍙兘鍙┏鍥炲凡绛剧珷鐘舵�佷笅鐨勯��鍥炵敵璇风姸鎬佽繘琛屾搷浣�
             if(!Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())){
@@ -522,12 +537,8 @@
             applyLogType = Constants.ApplyLogType.CA_PALTFORM_REFUSE_APPLY;
             info = applyLogType.getInfo();
             info = info.replace("${param}", param.getCheckInfo());
-//
-            if( Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())){
-                update.setStatus(Constants.ApplyChangeStatus.SIGNATURE.getKey());
-            }else if( Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_UPLOAD.getKey())){
-                update.setStatus(Constants.ApplyChangeStatus.UPLOAD.getKey());
-            }
+            update.setStatus(Constants.ApplyChangeStatus.SIGNATURE.getKey());
+            noticeType = Constants.NoticeType.FIVE;
         }else{
             //濡傛灉鏄悓鎰�,涓ょ鐢宠閫�鍥炵姸鎬侀兘鍙搷浣�
             if(!(Constants.equalsInteger(model.getStatus(),Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey())
@@ -537,6 +548,7 @@
             update.setStatus(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey());
             applyLogType = Constants.ApplyLogType.CA_PLATFORM_AGREE_BACK_APPLY;
         }
+
         update.setEditDate(new Date());
         update.setEditor(user.getId());
         //鍚屾剰閫�鍥烇紝鐩存帴鍥炲埌鏈�鍒濈姸鎬侊紝濡傛灉椹冲洖閫�鍥炵敵璇凤紝鍒欎繚鍗曠姸鎬佸洖鍒板緟涓婁紶淇濋櫓鍗�
@@ -545,6 +557,18 @@
         update.setCheckUserId(user.getId());
         update.setId(model.getId());
         applyChangeMapper.updateById(update);
+
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE;
+        if(model.getType().equals(Constants.ONE)){
+            noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY;
+        }
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),solutions.getName(),
+                model.getCompanyId(), noticeType);
+        noticesMapper.insert(notices);
 
         ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
         applyLogMapper.insert(log);
@@ -568,7 +592,6 @@
         if (!loginUserInfo.getType().equals(Constants.ONE)) {
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
         }
-        BigDecimal fee = BigDecimal.ZERO;
 
         InsuranceApply insuranceApply = insuranceApplyMapper.selectById(applyChange.getApplyId());
         if (Objects.isNull(insuranceApply)) {
@@ -606,12 +629,13 @@
         applyChange.setStatus(Constants.ZERO);
         applyChangeMapper.insert(applyChange);
 
-        this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
+        BigDecimal fee  = this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,BigDecimal.ZERO);
 
         ApplyChange applyChangeFee = new ApplyChange();
         applyChangeFee.setId(applyChange.getId());
         applyChangeFee.setFee(fee);
         applyChangeMapper.updateById(applyChangeFee);
+
 
         this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
         return applyChange.getId();
@@ -640,7 +664,9 @@
         if(Objects.isNull(dbApplyChange)){
             throw new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-        if(!dbApplyChange.getStatus().equals(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey())){
+        if(! (dbApplyChange.getStatus().equals(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey())
+        || dbApplyChange.getStatus().equals(Constants.ApplyChangeStatus.PALTFORM_CHECK_PASS_NO.getKey()) )
+        ){
             throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(), "涓氬姟淇濈敵璇峰崟鐘舵�侀敊璇�");
         }
 
@@ -676,12 +702,12 @@
 
         applyChange.setEditDate(new Date());
         applyChange.setEditor(loginUserInfo.getId());
+        applyChange.setApplyStartTime(applyChange.getValidTime());
         applyChange.setStatus(Constants.ZERO);
-        BigDecimal fee = BigDecimal.ZERO;
         //鍒犻櫎鍘嗗彶鏁版嵁
         applyChagneDetailJoinMapper.delete(new QueryWrapper<ApplyChagneDetail>().lambda().eq(ApplyChagneDetail::getApplyChangeId,applyChange.getId()));
 
-        this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,fee);
+        BigDecimal fee = this.dealApplyChangeData(applyChange,insuranceApply,companySolution,solutions,loginUserInfo,BigDecimal.ZERO);
         applyChange.setFee(fee);
         applyChangeMapper.updateById(applyChange);
         this.saveApplyLog(applyChange,Constants.ApplyChangeLogStatus.UPLOAD,null);
@@ -689,7 +715,7 @@
     }
 
 
-    public void dealApplyChangeData(ApplyChange applyChange,InsuranceApply insuranceApply,CompanySolution companySolution,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal fee){
+    public BigDecimal dealApplyChangeData(ApplyChange applyChange,InsuranceApply insuranceApply,CompanySolution companySolution,Solutions solutions,LoginUserInfo loginUserInfo,BigDecimal fee){
 
 
         //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣�
@@ -725,7 +751,7 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽姞淇�");
             }
             //鍔犱繚鏄庣粏鏁版嵁 璁$畻閲戦  鏍规嵁鎵瑰崟鏃堕棿 璁$畻
-            applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(insuranceApply.getStartTime(),1));
+            applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),1));
             CountCyclePriceVO countCyclePriceVO =  this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO);
             BigDecimal detailFee = countCyclePriceVO.getCyclePrice();
 
@@ -741,7 +767,7 @@
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(), "璇ヤ紒涓氬垎閰嶄繚闄╂柟妗堟棤娉曡繘琛屽噺淇�");
             }
             //鍑忎繚鏄庣粏鏁版嵁 璁$畻閲戦  鏍规嵁鎵瑰崟鏃堕棿 鍓嶄竴澶� 璁$畻
-            applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(insuranceApply.getStartTime(),3));
+            applyChangeCyclePriceDTO.setValidTime(DateUtil.getMontageDate(applyChange.getValidTime(),3));
             CountCyclePriceVO countCyclePriceVO =  this.getChangeCountCyclePriceVO(applyChangeCyclePriceDTO);
             BigDecimal detailFee = countCyclePriceVO.getCyclePrice();
             this.delChangeDetail(applyChange,delDetailList,insuranceApply,solutions,loginUserInfo,detailFee);
@@ -753,6 +779,7 @@
         if (CollectionUtils.isNotEmpty(changeDetailList)) {
             this.changeDetail(applyChange,changeDetailList,duWorktypeList,duSolutionList,loginUserInfo);
         }
+        return fee;
     }
 
 
@@ -798,6 +825,7 @@
             if (applyChagneDetailJoinMapper.selectJoinCount(
                     new MPJLambdaWrapper<ApplyChagneDetail>()
                             .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
+                            .eq(ApplyChange::getApplyId,applyChange.getApplyId())
                             .eq(ApplyChagneDetail::getMemberId, applyChagneDetail.getMemberId())
                             .in(ApplyChange::getStatus, Constants.ZERO, Constants.ONE)
             ) > Constants.ZERO) {
@@ -822,7 +850,7 @@
             applyChagneDetail.setType(Constants.ONE);
 
             applyChagneDetail.setStartTime(DateUtil.getMontageDate(applyDetail.getStartTime(),1));
-            applyChagneDetail.setEndTime(DateUtil.getMontageDate(applyChange.getStartTime(),3));
+            applyChagneDetail.setEndTime(DateUtil.getMontageDate(applyChange.getApplyStartTime(),3));
 
             applyChagneDetail.setFee( detailFee.multiply(new BigDecimal(-1)));
             applyChagneDetailJoinMapper.insert(applyChagneDetail);
@@ -891,6 +919,7 @@
                     new MPJLambdaWrapper<ApplyChagneDetail>()
                             .leftJoin(ApplyChange.class, ApplyChange::getId, ApplyChagneDetail::getApplyChangeId)
                             .eq(ApplyChagneDetail::getMemberId, applyChagneDetail.getMemberId())
+                            .eq(ApplyChange::getApplyId,applyChange.getApplyId())
                             .in(ApplyChange::getStatus, Constants.ZERO, Constants.ONE)
             ) > Constants.ZERO) {
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鍔犱繚浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戝瓨鍦ㄧ敵璇蜂腑鐨勫姞鍑忎繚/鎹㈠巶鍗曟嵁");
@@ -963,10 +992,11 @@
             List<ApplyDetail>  applyDetailList = applyDetailJoinMapper.selectList(new QueryWrapper<ApplyDetail>().lambda()
                     .eq(ApplyDetail::getApplyId, applyChange.getApplyId())
                     .eq(ApplyDetail::getMemberId, applyChagneDetail.getMemberId())
-                    .le(ApplyDetail::getStartTime, DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss"))
-                    .ge(ApplyDetail::getEndTime, DateUtil.getDate(new Date(),"yyyy-MM-dd HH:mm:ss")));
+                    .ge(ApplyDetail::getEndTime, new Date()));
             if(applyDetailList.size()>Constants.ONE){
                 throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戜繚鍗曚俊鎭紓甯革紝瀛樺湪澶氭潯鏁版嵁");
+            }else if(applyDetailList.size()==Constants.ZERO){
+                throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(), "鎹㈠巶浜哄憳銆�" + applyChagneDetail.getMemberName() + "銆戞湭鏌ヨ鍒版姇淇濊褰�");
             }
             ApplyDetail applyDetail = applyDetailList.get(Constants.ZERO);
             if(applyChange.getValidTime().compareTo( applyDetail.getEndTime())>0){
@@ -1128,7 +1158,7 @@
     public void changeOpt(ApplyChangeOptDTO applyChangeOptDTO){
         if(Objects.isNull(applyChangeOptDTO)
                 ||Objects.isNull(applyChangeOptDTO.getApplyId())
-                ||StringUtils.isBlank(applyChangeOptDTO.getOptIllustration())){
+        ){
             throw new BusinessException(ResponseStatus.BAD_REQUEST);
         }
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
@@ -1144,11 +1174,20 @@
         if(applyChange.getIsdeleted().equals(Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁宸插垹闄�,鏃犳硶杩涜璇ユ搷浣�");
         }
+        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
+
         Constants.ApplyChangeLogStatus applyChangeLogStatus = Constants.ApplyChangeLogStatus.RETURN_APPLY;
 
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE;
+        if(applyChange.getType().equals(Constants.ONE)){
+            noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY;
+        }
         if(applyChangeOptDTO.getOptType().equals(3)){
             //鍙戣捣閫�鍥炵敵璇�
-            if(loginUserInfo.getType().equals(Constants.ONE)){
+            if(!loginUserInfo.getType().equals(Constants.ONE)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氱鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
             }
             if(!(applyChange.getStatus().equals(Constants.ApplyChangeStatus.UPLOAD.getKey())
@@ -1161,6 +1200,14 @@
             }else{
                 applyChange.setStatus(Constants.ApplyChangeStatus.RETURN_APPLY_SIGNATURE.getKey());
             }
+
+            //瀛樺偍寰呭姙淇℃伅
+            //鍒犻櫎鍏朵粬寰呭姙
+            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,applyChange.getId()));
+            Notices notices = new Notices(noticeObjectType,Constants.ZERO,applyChange.getId(),solutions.getName(),
+                    applyChange.getCompanyId(), Constants.NoticeType.THREE);
+            noticesMapper.insert(notices);
+
 
         }else if(applyChangeOptDTO.getOptType().equals(4)){
             applyChangeLogStatus = Constants.ApplyChangeLogStatus.PLATFORM_AGREE;
@@ -1192,13 +1239,19 @@
         }else if(applyChangeOptDTO.getOptType().equals(6)){
             //浼佷笟鍏抽棴
             applyChangeLogStatus = Constants.ApplyChangeLogStatus.CLOSE;
-            if(loginUserInfo.getType().equals(Constants.ONE)){
+            if(!loginUserInfo.getType().equals(Constants.ONE)){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"闈炰紒涓氱鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
             }
             if(!applyChange.getStatus().equals(Constants.ApplyChangeStatus.PLATFORM_AGREE.getKey())){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀敊璇棤娉曡繘琛岃鎿嶄綔!");
             }
             applyChange.setStatus(Constants.ApplyChangeStatus.CLOSE.getKey());
+
+
+            //瀛樺偍寰呭姙淇℃伅
+            //鍒犻櫎鍏朵粬寰呭姙
+            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,applyChange.getId()));
+
         }else{
             throw new BusinessException(ResponseStatus.BAD_REQUEST  );
         }
@@ -1326,6 +1379,14 @@
         if(company== null || StringUtils.isBlank( company.getEmail()) || !Constants.equalsInteger(company.getSignStatus(),Constants.THREE)){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝浼佷笟灏氭湭鍏峰鍦ㄧ嚎绛剧珷鏉′欢锛岃鑱旂郴骞冲彴绠$悊鍛樼‘璁");
         }
+        InsuranceApply insuranceApply = insuranceApplyMapper.selectById(model.getApplyId());
+        if(Objects.isNull(insuranceApply)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇繚鍗曚俊鎭�");
+        }
+        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
         String fileUrl = null;
         if(Constants.equalsObject(model.getType(), Constants.ONE)){
               fileUrl = ExcelExporter.build(ApplyChange.class).exportChangeUnitExcelToPdf(model,"鎹㈠巶鐢宠琛�");
@@ -1349,6 +1410,8 @@
         update.setSignApplyNo(applyNo);
         applyChangeMapper.updateById(update);
 
+
+
         return  link;
     }
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
index 078c04e..bc2c5db 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/DispatchUnitServiceImpl.java
@@ -8,10 +8,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.DispatchUnitMapper;
-import com.doumee.dao.business.DuLogMapper;
-import com.doumee.dao.business.DuSolutionMapper;
-import com.doumee.dao.business.DuWorktypeMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.dto.*;
 import com.doumee.dao.business.join.DispatchUnitJoinMapper;
 import com.doumee.dao.business.join.DuLogJoinMapper;
@@ -71,6 +68,9 @@
     @Autowired
     private SystemDictDataBiz systemDictDataBiz;
 
+    @Autowired
+    private NoticesMapper noticesMapper;
+
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public Integer checkWorktype(DispatchUnit param) {
@@ -126,6 +126,13 @@
             //瀛樺偍鎿嶄綔鍘嗗彶
             this.saveDuLog(update,Constants.DispatchUnitLogType.WORK_TYPE_AUDIT_UN_PASS,update.getCheckInfo());
         }
+
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+
         return  1;
     }
 
@@ -263,6 +270,13 @@
             //瀛樺偍鎿嶄綔鍘嗗彶
             this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.AUDIT_UN_PASS,update.getCheckInfo());
         }
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
+
+
         return  1;
     }
     @Override
@@ -356,6 +370,16 @@
                 duWorktypeMapper.insert(duWorktype);
             }
         }
+
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(),
+                dispatchUnit.getCompanyId(), Constants.NoticeType.ZERO);
+        noticesMapper.insert(notices);
+
         return dispatchUnit.getId();
     }
 
@@ -402,6 +426,15 @@
 
 //        this.dealDuData(saveDispatchUnitDTO,loginUserInfo);
 
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(),
+                dispatchUnit.getCompanyId(), Constants.NoticeType.ZERO);
+        noticesMapper.insert(notices);
+
         return dispatchUnit.getId();
     }
 
@@ -433,6 +466,15 @@
         //瀛樺偍鎿嶄綔鍘嗗彶
         this.saveDuLog(dispatchUnit,Constants.DispatchUnitLogType.ADD_WORK_TYPE,null);
         this.dealDuData(saveDispatchUnitDTO,loginUserInfo);
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.DISPATCH_UNIT;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,dispatchUnit.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,dispatchUnit.getId(),dispatchUnit.getName(),
+                dispatchUnit.getCompanyId(), Constants.NoticeType.ONE);
+        noticesMapper.insert(notices);
+
         return dispatchUnit.getId();
     }
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
index c3e08a2..9da93db 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/InsuranceApplyServiceImpl.java
@@ -96,6 +96,9 @@
     @Autowired
     private DuWorktypeMapper duWorktypeMapper;
 
+    @Autowired
+    private NoticesMapper noticesMapper;
+
     @Override
     @Transactional(rollbackFor = {Exception.class,BusinessException.class})
     public Integer back(InsuranceApply insuranceApply) {
@@ -110,6 +113,12 @@
         if(Constants.equalsInteger(model.getStatus(),Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())){
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
         }
+
+        Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
+
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         InsuranceApply update = new InsuranceApply();
         update.setEditDate(new Date());
@@ -120,6 +129,15 @@
         update.setCheckUserId(user.getId());
         update.setId(model.getId());
         insuranceApplyMapper.updateById(update);
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
+                model.getCompanyId(), Constants.NoticeType.FOUR);
+        noticesMapper.insert(notices);
+
 
         Constants.ApplyLogType applyLogType = Constants.ApplyLogType.PLATFORM_RETURN;
         String info =applyLogType.getInfo();
@@ -344,7 +362,10 @@
         if(model == null ||!Constants.equalsInteger(model.getIsdeleted(),Constants.ZERO)){
             throw  new BusinessException(ResponseStatus.DATA_EMPTY);
         }
-
+        Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         Constants.ApplyLogType applyLogType = null;
         String info = "";
@@ -384,6 +405,7 @@
         update.setEditDate(new Date());
         update.setSignApplyNo(applyNo);
         insuranceApplyMapper.updateById(update);
+
         return  link;
     }
     public String uploadSignFile(String link){
@@ -418,6 +440,13 @@
         update.setId(model.getId());
         insuranceApplyMapper.updateById(update);
 
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,model.getId(),model.getSolutionsName(),model.getCompanyId(),Constants.NoticeType.TWO);
+        noticesMapper.insert(notices);
+
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
         f.setCreator(model.getCreator());
@@ -448,6 +477,17 @@
         update.setCheckUserId(model.getCreator());
         update.setId(model.getId());
         applyChangeMapper.updateById(update);
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.APPLY_CHANGE;
+        if(model.getType().equals(Constants.ONE)){
+            noticeObjectType = Constants.NoticeObjectType.CHANGE_FACTORY;
+        }
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),model.getSolutionsName(),
+                model.getCompanyId(), Constants.NoticeType.TWO);
+        noticesMapper.insert(notices);
 
         Multifile f = new Multifile();
         f.setIsdeleted(Constants.ZERO);
@@ -651,6 +691,11 @@
 //        info = info.replace("${param}", update.getCheckInfo());
         ApplyLog log = new ApplyLog(update,applyLogType.getName(),StringUtils.isNotBlank(update.getCheckInfo())?info:"",update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
         applyLogMapper.insert(log);
+
+        //鍒犻櫎鍏朵粬寰呭姙
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+
         return  1;
 
     }
@@ -675,6 +720,11 @@
             throw  new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"瀵逛笉璧凤紝璇ョ敵璇风姸鎬佸凡娴佽浆锛屽綋鍓嶄笉鏀寔璇ユ搷浣渵");
         }
 
+        Solutions solutions = solutionsMapper.selectById(model.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"鏈煡璇㈡柟妗堜俊鎭�");
+        }
+
         Constants.ApplyLogType applyLogType = null;
         LoginUserInfo user = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         InsuranceApply update = new InsuranceApply();
@@ -684,15 +734,26 @@
         update.setCheckInfo(insuranceApply.getCheckInfo());
         update.setCheckUserId(user.getId());
         update.setId(model.getId());
+        Constants.NoticeType noticeType = Constants.NoticeType.ONE;
         if(insuranceApply.getDealBackApply() ==1){
             //濡傛灉鏄笉閫氳繃
             applyLogType = Constants.ApplyLogType.PLATFORM_RETURN ;
             update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_RETURN.getKey());
+
+            noticeType = Constants.NoticeType.FOUR;
         }else{
             applyLogType = Constants.ApplyLogType.PLATFORM_CHECK_PASS;
             update.setStatus(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey());
         }
         insuranceApplyMapper.updateById(update);
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),solutions.getName(),model.getCompanyId(),noticeType);
+        noticesMapper.insert(notices);
+
         String info =applyLogType.getInfo();
         info = info.replace("${param}", update.getCheckInfo());
         ApplyLog log = new ApplyLog(update,applyLogType.getName(),info,update.getId(),applyLogType.getKey(),JSONObject.toJSONString(model), JSONObject.toJSONString(update));
@@ -716,6 +777,10 @@
         LoginUserInfo loginUserInfo = (LoginUserInfo) SecurityUtils.getSubject().getPrincipal();
         if(!loginUserInfo.getType().equals(Constants.ONE)){
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鐢ㄦ埛绫诲瀷閿欒锛氶潪浼佷笟鐢ㄦ埛鏃犳硶杩涜璇ユ搷浣�");
+        }
+        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
         }
         List<ApplyDetail> applyDetailList = insuranceApply.getApplyDetailList();
         //鍒ゆ柇鏄惁瀛樺湪閲嶅淇℃伅
@@ -746,13 +811,22 @@
 
 
         //澶勭悊涓嬬骇鏁版嵁
-        this.dealApplyDetailData(insuranceApply,applyDetailList,loginUserInfo,countCyclePriceVO);
+        this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO);
         InsuranceApply updBean = new InsuranceApply();
         updBean.setId(insuranceApply.getId());
         updBean.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
         insuranceApplyMapper.updateById(updBean);
         //瀛樺偍鏃ュ織鏁版嵁
         this.saveApplyLog(insuranceApply,insuranceApplyStatus,null);
+        //鍙戦�佸緟鍔炰笟鍔�
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO);
+        noticesMapper.insert(notices);
+
         return insuranceApply.getId();
     }
 
@@ -811,22 +885,33 @@
         insuranceApply.setEndTime(countCyclePriceVO.getEndDate());
 
         applyDetailMapper.delete(new QueryWrapper<ApplyDetail>().lambda().eq(ApplyDetail::getApplyId,insuranceApply.getId()));
+
+        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
+        }
+
         //澶勭悊涓嬬骇鏁版嵁
-        this.dealApplyDetailData(insuranceApply,applyDetailList,loginUserInfo,countCyclePriceVO);
+        this.dealApplyDetailData(insuranceApply,solutions,applyDetailList,loginUserInfo,countCyclePriceVO);
         insuranceApply.setFee(applyDetailList.stream().map(ApplyDetail::getFee).reduce(BigDecimal.ZERO,BigDecimal::add));
         insuranceApplyMapper.updateById(insuranceApply);
         //瀛樺偍鏃ュ織鏁版嵁
         this.saveApplyLog(insuranceApply,insuranceApplyStatus,null);
+
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,insuranceApply.getId(),solutions.getName(),insuranceApply.getCompanyId(),Constants.NoticeType.ZERO);
+        noticesMapper.insert(notices);
+
         return insuranceApply.getId();
     }
 
 
 
-    public void dealApplyDetailData(InsuranceApply insuranceApply,List<ApplyDetail> applyDetailList,LoginUserInfo loginUserInfo,CountCyclePriceVO  countCyclePriceVO){
-        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
-        if(Objects.isNull(solutions)){
-            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
-        }
+    public void dealApplyDetailData(InsuranceApply insuranceApply,Solutions solutions,List<ApplyDetail> applyDetailList,LoginUserInfo loginUserInfo,CountCyclePriceVO  countCyclePriceVO){
         //鏌ヨ淇濋櫓鏂规涓嬬殑鎵�鏈夋淳閬e崟浣�
         List<DuSolution>  duSolutionList = duSolutionJoinMapper.selectJoinList(DuSolution.class,new MPJLambdaWrapper<DuSolution>()
                 .selectAll(DuSolution.class)
@@ -1331,8 +1416,14 @@
         if(insuranceApply.getIsdeleted().equals(Constants.ONE)){
             throw new BusinessException(ResponseStatus.DATA_ERRO.getCode(),"鏁版嵁宸插垹闄�,鏃犳硶杩涜璇ユ搷浣�");
         }
+        Solutions solutions = solutionsMapper.selectById(insuranceApply.getSolutionId());
+        if(Objects.isNull(solutions)){
+            throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"鏈煡璇㈠埌鏂规淇℃伅");
+        }
+
         //-----TODU-------RJ-------瀹屽杽閫�鍥炵姸鎬佸垎寮�鏍囪------------------
         Constants.InsuranceApplyStatus insuranceApplyStatus =  Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE;
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.INSURANCE_APPLY;
         if(insuranceApplyOptDTO.getOptType().equals(Constants.ONE)){
             if(!(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.UPLOAD.getKey())
                     ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.WAIT_SIGNATURE.getKey())
@@ -1346,6 +1437,15 @@
             }else  if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.SIGNATURE.getKey())){
                 insuranceApplyStatus =  Constants.InsuranceApplyStatus.COMPANY_BACK_APPLY_SIGNATURE;
             }
+
+            //瀛樺偍寰呭姙淇℃伅
+            //鍒犻櫎鍏朵粬寰呭姙
+            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
+            Notices notices = new Notices(noticeObjectType,Constants.ONE,insuranceApply.getId(),solutions.getName(),
+                    insuranceApply.getCompanyId(), Constants.NoticeType.THREE);
+            noticesMapper.insert(notices);
+
+
         }else if(insuranceApplyOptDTO.getOptType().equals(Constants.TWO)){
             insuranceApplyStatus =  Constants.InsuranceApplyStatus.CLOSE;
             if(insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.CLOSE.getKey())){
@@ -1356,6 +1456,8 @@
                     ||insuranceApply.getStatus().equals(Constants.InsuranceApplyStatus.PLATFORM_CHECK_PASS.getKey()))){
                 throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏁版嵁鐘舵�侀潪鍙敵璇烽��鍥�!");
             }
+            //鍒犻櫎鍏朵粬寰呭姙
+            noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,insuranceApply.getId()));
         }
         insuranceApply.setStatus(insuranceApplyStatus.getKey());
         insuranceApply.setCheckDate(new Date());
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java
index 56982c7..23965eb 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/NoticesServiceImpl.java
@@ -2,18 +2,23 @@
 
 import com.doumee.core.model.PageData;
 import com.doumee.core.model.PageWrap;
+import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
 import com.doumee.dao.business.NoticesMapper;
+import com.doumee.dao.business.join.NoticesJoinMapper;
+import com.doumee.dao.business.model.ApplyChagneDetail;
+import com.doumee.dao.business.model.Company;
+import com.doumee.dao.business.model.InsuranceApply;
 import com.doumee.dao.business.model.Notices;
 import com.doumee.service.business.NoticesService;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.github.xiaoymin.knife4j.core.util.CollectionUtils;
+import com.github.yulichang.wrapper.MPJLambdaWrapper;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
-import org.springframework.util.CollectionUtils;
-
 import java.util.List;
 
 /**
@@ -25,7 +30,7 @@
 public class NoticesServiceImpl implements NoticesService {
 
     @Autowired
-    private NoticesMapper noticesMapper;
+    private NoticesJoinMapper noticesMapper;
 
     @Override
     public Integer create(Notices notices) {
@@ -87,90 +92,51 @@
     @Override
     public PageData<Notices> findPage(PageWrap<Notices> pageWrap) {
         IPage<Notices> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity());
-        QueryWrapper<Notices> queryWrapper = new QueryWrapper<>();
+        MPJLambdaWrapper<Notices> queryWrapper = new MPJLambdaWrapper<>();
         Utils.MP.blankToNull(pageWrap.getModel());
-        if (pageWrap.getModel().getId() != null) {
-            queryWrapper.lambda().eq(Notices::getId, pageWrap.getModel().getId());
-        }
-        if (pageWrap.getModel().getCreator() != null) {
-            queryWrapper.lambda().eq(Notices::getCreator, pageWrap.getModel().getCreator());
-        }
-        if (pageWrap.getModel().getCreateDate() != null) {
-            queryWrapper.lambda().ge(Notices::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate()));
-            queryWrapper.lambda().le(Notices::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate()));
-        }
-        if (pageWrap.getModel().getEditor() != null) {
-            queryWrapper.lambda().eq(Notices::getEditor, pageWrap.getModel().getEditor());
-        }
-        if (pageWrap.getModel().getEditDate() != null) {
-            queryWrapper.lambda().ge(Notices::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate()));
-            queryWrapper.lambda().le(Notices::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate()));
-        }
+        queryWrapper.selectAll(Notices.class);
+        queryWrapper.selectAs(Company::getName,Notices::getCompanyName);
+        queryWrapper.leftJoin(Company.class,Company::getId,Notices::getCompanyId);
         if (pageWrap.getModel().getIsdeleted() != null) {
-            queryWrapper.lambda().eq(Notices::getIsdeleted, pageWrap.getModel().getIsdeleted());
-        }
-        if (pageWrap.getModel().getRemark() != null) {
-            queryWrapper.lambda().eq(Notices::getRemark, pageWrap.getModel().getRemark());
-        }
-        if (pageWrap.getModel().getTitle() != null) {
-            queryWrapper.lambda().eq(Notices::getTitle, pageWrap.getModel().getTitle());
-        }
-        if (pageWrap.getModel().getInfo() != null) {
-            queryWrapper.lambda().eq(Notices::getInfo, pageWrap.getModel().getInfo());
-        }
-        if (pageWrap.getModel().getContent() != null) {
-            queryWrapper.lambda().eq(Notices::getContent, pageWrap.getModel().getContent());
-        }
-        if (pageWrap.getModel().getObjId() != null) {
-            queryWrapper.lambda().eq(Notices::getObjId, pageWrap.getModel().getObjId());
+            queryWrapper.eq(Notices::getIsdeleted, pageWrap.getModel().getIsdeleted());
         }
         if (pageWrap.getModel().getObjType() != null) {
-            queryWrapper.lambda().eq(Notices::getObjType, pageWrap.getModel().getObjType());
-        }
-        if (pageWrap.getModel().getObjName() != null) {
-            queryWrapper.lambda().eq(Notices::getObjName, pageWrap.getModel().getObjName());
+            queryWrapper.eq(Notices::getObjType, pageWrap.getModel().getObjType());
         }
         if (pageWrap.getModel().getType() != null) {
-            queryWrapper.lambda().eq(Notices::getType, pageWrap.getModel().getType());
-        }
-        if (pageWrap.getModel().getParam1() != null) {
-            queryWrapper.lambda().eq(Notices::getParam1, pageWrap.getModel().getParam1());
-        }
-        if (pageWrap.getModel().getParam2() != null) {
-            queryWrapper.lambda().eq(Notices::getParam2, pageWrap.getModel().getParam2());
-        }
-        if (pageWrap.getModel().getParam3() != null) {
-            queryWrapper.lambda().eq(Notices::getParam3, pageWrap.getModel().getParam3());
-        }
-        if (pageWrap.getModel().getParam4() != null) {
-            queryWrapper.lambda().eq(Notices::getParam4, pageWrap.getModel().getParam4());
-        }
-        if (pageWrap.getModel().getParam5() != null) {
-            queryWrapper.lambda().eq(Notices::getParam5, pageWrap.getModel().getParam5());
-        }
-        if (pageWrap.getModel().getUserId() != null) {
-            queryWrapper.lambda().eq(Notices::getUserId, pageWrap.getModel().getUserId());
+            queryWrapper.eq(Notices::getType, pageWrap.getModel().getType());
         }
         if (pageWrap.getModel().getCompanyId() != null) {
-            queryWrapper.lambda().eq(Notices::getCompanyId, pageWrap.getModel().getCompanyId());
+            queryWrapper.eq(Notices::getCompanyId, pageWrap.getModel().getCompanyId());
         }
         if (pageWrap.getModel().getPalt() != null) {
-            queryWrapper.lambda().eq(Notices::getPalt, pageWrap.getModel().getPalt());
+            queryWrapper.eq(Notices::getPalt, pageWrap.getModel().getPalt());
         }
         if (pageWrap.getModel().getStatus() != null) {
-            queryWrapper.lambda().eq(Notices::getStatus, pageWrap.getModel().getStatus());
+            queryWrapper.eq(Notices::getStatus, pageWrap.getModel().getStatus());
         }
         if (pageWrap.getModel().getReaded() != null) {
-            queryWrapper.lambda().eq(Notices::getReaded, pageWrap.getModel().getReaded());
+            queryWrapper.eq(Notices::getReaded, pageWrap.getModel().getReaded());
         }
-        for(PageWrap.SortData sortData: pageWrap.getSorts()) {
-            if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
-                queryWrapper.orderByDesc(sortData.getProperty());
-            } else {
-                queryWrapper.orderByAsc(sortData.getProperty());
+        if(CollectionUtils.isNotEmpty(pageWrap.getSorts())){
+            for(PageWrap.SortData sortData: pageWrap.getSorts()) {
+                if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) {
+                    queryWrapper.orderByDesc(sortData.getProperty());
+                } else {
+                    queryWrapper.orderByAsc(sortData.getProperty());
+                }
             }
+        }else{
+            queryWrapper.orderByDesc(Notices::getCreateDate);
         }
-        return PageData.from(noticesMapper.selectPage(page, queryWrapper));
+
+        PageData<Notices> pageData = PageData.from(noticesMapper.selectJoinPage(page,Notices.class, queryWrapper));
+        pageData.getRecords().forEach(i->{
+            i.setTypeDetail(
+                    Constants.NoticeType.getDetail(i.getObjType(),i.getType())
+            );
+        });
+        return pageData;
     }
 
     @Override
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
index d9e8421..ff07c1b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/SettleClaimsServiceImpl.java
@@ -10,6 +10,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
+import com.doumee.dao.business.NoticesMapper;
 import com.doumee.dao.business.SettleClaimsLogMapper;
 import com.doumee.dao.business.SettleClaimsMapper;
 import com.doumee.dao.business.dto.SCSupplementDTO;
@@ -67,6 +68,8 @@
     @Autowired
     private SettleClaimsLogJoinMapper settleClaimsLogJoinMapper;
 
+    @Autowired
+    private NoticesMapper noticesMapper;
     /**
      * 鍒犻櫎闄勪欢
      * @return
@@ -117,6 +120,12 @@
         update.setStatus(Constants.SettleClaimsStatus.RETURN_ACCEPTANCE.getKey());
         settleClaimsMapper.updateById(update);
 
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+
         Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_RETURN;
         String info =applyLogType.getInfo();
         info = info.replace("${param}", update.getCheckInfo());
@@ -155,6 +164,12 @@
         update.setId(model.getId());
         update.setStatus(Constants.SettleClaimsStatus.CONFIRM_INFORMATION.getKey());
         settleClaimsMapper.updateById(update);
+
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
 
         Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_CONFIRM_INFORMATION;
         String info =applyLogType.getInfo();
@@ -239,6 +254,14 @@
         update.setScClaimAccount(Constants.formatBigdecimal(param.getScClaimAccount()));
         update.setClaimAccount(update.getYlClaimAccount().add(update.getSwClaimAccount()).add(update.getScClaimAccount()).add(update.getWgClaimAccount()));
         settleClaimsMapper.updateById(update);
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ONE,model.getId(),model.getInformantName(),
+                model.getCompanyId(), Constants.NoticeType.ONE);
+        noticesMapper.insert(notices);
 
         Constants.SettleClaimsLogType applyLogType = Constants.SettleClaimsLogType.PLATFORM_FINISH;
         String info =applyLogType.getInfo();
@@ -385,6 +408,17 @@
         }
         //璁板綍鏃ュ織
         this.saveSettleClaimsLog(settleClaims,Constants.SettleClaimsLogType.UPLOAD,null);
+
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.SETTLE_CLAIMS;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,settleClaims.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,settleClaims.getId(),settleClaims.getInformantName(),
+                settleClaims.getCompanyId(), Constants.NoticeType.ZERO);
+        noticesMapper.insert(notices);
+
+
         return settleClaims.getId();
     }
 
diff --git a/server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java b/server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java
index c47c44b..f3fa62b 100644
--- a/server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java
+++ b/server/service/src/main/java/com/doumee/service/business/impl/TaxesServiceImpl.java
@@ -8,10 +8,7 @@
 import com.doumee.core.model.PageWrap;
 import com.doumee.core.utils.Constants;
 import com.doumee.core.utils.Utils;
-import com.doumee.dao.business.CompanyMapper;
-import com.doumee.dao.business.SolutionsMapper;
-import com.doumee.dao.business.TaxDetialMapper;
-import com.doumee.dao.business.TaxesMapper;
+import com.doumee.dao.business.*;
 import com.doumee.dao.business.dto.DirectInvoicingDTO;
 import com.doumee.dao.business.dto.DirectInvoicingDetailDTO;
 import com.doumee.dao.business.dto.EntrustInvoicingDTO;
@@ -67,7 +64,8 @@
     private ApplyChangeJoinMapper applyChangeJoinMapper;
     @Autowired
     private SolutionsMapper solutionsMapper;
-
+    @Autowired
+    private NoticesMapper noticesMapper;
     @Override
     public Integer create(Taxes taxes) {
         taxesMapper.insert(taxes);
@@ -118,6 +116,10 @@
                 }
             }
         }
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.TAXES;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,model.getId()));
     }
 
     private List<TaxDetial> getDetailListById(Integer id) {
@@ -147,6 +149,8 @@
         queryWrapper.leftJoin(ApplyChange.class,ApplyChange::getId,TaxDetial::getApplyChangeId);
         queryWrapper.leftJoin(Taxes.class,Taxes::getId,TaxDetial::getDelTaxId);
         List<TaxDetial> detialList =  taxDetailJoinMapper.selectJoinList(TaxDetial.class,queryWrapper.orderByAsc(TaxDetial::getType));
+
+
         return detialList;
     }
 
@@ -181,6 +185,12 @@
         update.setDoneDate(update.getEditDate());
         update.setImgurl(taxes.getImgurl());
         taxesMapper.updateById(update);
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.TAXES;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,taxes.getId()));
+
     }
 
     @Override
@@ -426,6 +436,17 @@
             taxDetial.setType(Constants.ZERO);
         }
         taxDetailJoinMapper.insertBatchSomeColumn(taxDetialList);
+
+
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.TAXES;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,taxes.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,taxes.getId(),taxes.getPrice().toString(),
+                taxes.getCompanyId(), Constants.NoticeType.ZERO);
+        noticesMapper.insert(notices);
+
+
     }
 
 
@@ -618,43 +639,14 @@
             throw new BusinessException(ResponseStatus.NOT_ALLOWED.getCode(),"鏃犲彲寮�绁ㄦ暟鎹紝鎿嶄綔澶辫触");
         }
 
+        //瀛樺偍寰呭姙淇℃伅
+        Constants.NoticeObjectType noticeObjectType = Constants.NoticeObjectType.TAXES;
+        //鍒犻櫎鍏朵粬寰呭姙
+        noticesMapper.delete(new QueryWrapper<Notices>().lambda().eq(Notices::getObjType,noticeObjectType.getKey()).eq(Notices::getObjId,taxes.getId()));
+        Notices notices = new Notices(noticeObjectType,Constants.ZERO,taxes.getId(),taxes.getPrice().toString(),
+                taxes.getCompanyId(), Constants.NoticeType.ZERO);
+        noticesMapper.insert(notices);
 
-//        List<DirectInvoicingDetailDTO> directInvoicingDetailDTOList = directInvoicingDTO.getDirectInvoicingDetailDTOList();
-//        for (DirectInvoicingDetailDTO directInvoicingDetailDTO:directInvoicingDetailDTOList) {
-//            if(Objects.isNull(directInvoicingDetailDTO)
-//                    || Objects.isNull(directInvoicingDetailDTO.getId())
-//                    || Objects.isNull(directInvoicingDetailDTO.getType())
-//                    || Objects.isNull(directInvoicingDetailDTO.getFee())
-//            ){
-//                throw new BusinessException(ResponseStatus.BAD_REQUEST);
-//            }
-//
-//            if(directInvoicingDetailDTO.getType().equals(Constants.ZERO)){
-//                //淇濆崟
-//                InsuranceApply insuranceApply =  insuranceApplyJoinMapper.selectJoinOne(InsuranceApply.class,
-//                        new MPJLambdaWrapper<InsuranceApply>()
-//                                .selectAll(InsuranceApply.class)
-//                                .selectAs(Solutions::getName,InsuranceApply::getSolutionsName)
-//                                .select(" ( select count(1) from apply_detail ad  where ad.apply_id = t.id ) as insureNum")
-//                                .notExists(" select 1 from taxes t1 inner join tax_detial t2 on t1.id  = t2.tax_id where t2.type = 0 and t1.status != 2 and t.id = t2.INSURANCE_APPLY_ID  ")
-//                                .eq(InsuranceApply::getStatus,Constants.InsuranceApplyStatus.UPLOAD_INSURANCE.getKey())
-//                                .eq(InsuranceApply::getId,directInvoicingDetailDTO.getId())
-//                );
-//                if(Objects.isNull(insuranceApply)){
-//                    throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"淇濆崟鍙枫��"+insuranceApply.getCode()+"銆戞湭鏌ヨ鍒颁繚鍗曚俊鎭�");
-//                }
-//
-//
-//
-//            }else if(directInvoicingDetailDTO.getType().equals(Constants.ZERO)){
-//                //鍔犲噺淇�
-//            }else{
-//                //鍐茬孩鍗�
-//            }
-//
-//
-//        }
-//        taxDetailJoinMapper.insertBatchSomeColumn(taxDetialList);
     }
 
 

--
Gitblit v1.9.3