Browse Source

项目提成业务代码

wucl 2 năm trước cách đây
mục cha
commit
93fae6b56e
29 tập tin đã thay đổi với 304 bổ sung77 xóa
  1. 9 0
      biz-base/src/main/java/com/dayou/controller/DictDataController.java
  2. 3 2
      biz-base/src/main/java/com/dayou/controller/ItemBrokerageGeneralController.java
  3. 8 0
      biz-base/src/main/java/com/dayou/controller/ItemEvaluateController.java
  4. 10 0
      biz-base/src/test/java/BrokerageTest.java
  5. 1 1
      common/src/main/java/com/dayou/exception/ErrorCode.java
  6. 3 0
      dao/src/main/java/com/dayou/mapper/ItemBrokerageGeneralMapper.java
  7. 6 0
      dao/src/main/java/com/dayou/mapper/ItemStageUserMapper.java
  8. 31 0
      dao/src/main/resources/mapper/ItemBrokerageGeneralMapper.xml
  9. 11 7
      dao/src/main/resources/mapper/ItemMapper.xml
  10. 4 0
      dao/src/main/resources/mapper/ItemStageUserMapper.xml
  11. 0 28
      domain/src/main/java/com/dayou/entity/Item.java
  12. 0 22
      domain/src/main/java/com/dayou/entity/ItemBrokerageGeneral.java
  13. 2 0
      domain/src/main/java/com/dayou/enums/OperationTypeEnum.java
  14. 100 0
      domain/src/main/java/com/dayou/vo/BrokerageGeneralVO.java
  15. 3 1
      domain/src/main/java/com/dayou/vo/ItemStageVO.java
  16. 10 0
      domain/src/main/java/com/dayou/vo/ItemVO.java
  17. 3 3
      service/src/main/java/com/dayou/brokerage/interceptor/BrokerageInterceptor.java
  18. 6 0
      service/src/main/java/com/dayou/service/IDictDataService.java
  19. 2 1
      service/src/main/java/com/dayou/service/IItemBrokerageGeneralService.java
  20. 1 0
      service/src/main/java/com/dayou/service/IItemEvaluateService.java
  21. 1 0
      service/src/main/java/com/dayou/service/IItemService.java
  22. 7 0
      service/src/main/java/com/dayou/service/IItemStageUserService.java
  23. 20 0
      service/src/main/java/com/dayou/service/impl/DictDataServiceImpl.java
  24. 8 3
      service/src/main/java/com/dayou/service/impl/ItemBrokerageGeneralServiceImpl.java
  25. 31 5
      service/src/main/java/com/dayou/service/impl/ItemEvaluateServiceImpl.java
  26. 2 1
      service/src/main/java/com/dayou/service/impl/ItemServiceImpl.java
  27. 9 2
      service/src/main/java/com/dayou/service/impl/ItemStageServiceImpl.java
  28. 12 0
      service/src/main/java/com/dayou/service/impl/ItemStageUserServiceImpl.java
  29. 1 1
      service/src/main/java/com/dayou/service/impl/PaymentCollectionServiceImpl.java

+ 9 - 0
biz-base/src/main/java/com/dayou/controller/DictDataController.java

@@ -88,6 +88,15 @@ public class DictDataController extends BaseController {
         List<PullDownModel> ret=ConvertUtil.copyList(list, PullDownModel.class);
         return RestResponse.data(ret);
     }
+
+    /**
+     * 字典数据下拉列表
+     */
+    @GetMapping("/simple/{type}")
+    public RestResponse<List<PullDownModel>> simpleType(@PathVariable("type") String type){
+        List<PullDownModel> result = dictDataService.simpleType(type);
+        return RestResponse.data(result);
+    }
     /**
      * 字典数据模板下载
      */

+ 3 - 2
biz-base/src/main/java/com/dayou/controller/ItemBrokerageGeneralController.java

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.vo.BrokerageGeneralVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -37,8 +38,8 @@ public class ItemBrokerageGeneralController extends BaseController {
     * 项目提成总表列表
     */
     @GetMapping("")
-    public RestResponse<Page<ItemBrokerageGeneral>> page(ItemBrokerageGeneral itemBrokerageGeneral, Page page){
-        Page<ItemBrokerageGeneral> pages=itemBrokerageGeneralService.selectPage(page,itemBrokerageGeneral);
+    public RestResponse<Page<BrokerageGeneralVO>> page(BrokerageGeneralVO brokerageGeneralVO, Page page){
+        Page<BrokerageGeneralVO> pages=itemBrokerageGeneralService.selectPage(page,brokerageGeneralVO);
         return RestResponse.data(pages);
     }
 

+ 8 - 0
biz-base/src/main/java/com/dayou/controller/ItemEvaluateController.java

@@ -52,6 +52,14 @@ public class ItemEvaluateController extends BaseController {
      }
 
     /**
+     * 根据项目id查询项目完结评价表详情
+     */
+    @GetMapping("/itemId/{itemId}")
+    public RestResponse<ItemEvaluate> detailByItemId(@PathVariable Long itemId){
+        ItemEvaluate xItemEvaluate =itemEvaluateService.detailByItemId(itemId);
+        return RestResponse.data(xItemEvaluate);
+    }
+    /**
      * 项目完结评价表新增
      */
     @PostMapping("")

+ 10 - 0
biz-base/src/test/java/BrokerageTest.java

@@ -6,6 +6,7 @@ import com.dayou.dto.ItemDTO;
 import com.dayou.entity.BrokerageMarketerRatio;
 import com.dayou.entity.ItemBrokerageGeneral;
 import com.dayou.service.*;
+import com.dayou.service.impl.ItemBrokerageSequenceServiceImpl;
 import com.google.common.cache.Cache;
 import com.google.common.cache.LoadingCache;
 import lombok.extern.slf4j.Slf4j;
@@ -44,6 +45,9 @@ public class BrokerageTest {
     @Autowired
     private IBrokerageMarketerRatioService marketerRatioService;
 
+    @Autowired
+    private IItemBrokerageSequenceService itemBrokerageSequenceService;
+
 
 
 
@@ -53,4 +57,10 @@ public class BrokerageTest {
         BigDecimal ifPresent = marketerRatioCache.get("2&3");
         System.out.println(marketerRatioCache.size());
     }
+    @Test
+    public void settle() {
+        itemBrokerageSequenceService.doNonMarketerAheadSettle();
+        itemBrokerageSequenceService.doAbleItemBrokerageSettle();
+    }
+
 }

+ 1 - 1
common/src/main/java/com/dayou/exception/ErrorCode.java

@@ -45,7 +45,7 @@ public class ErrorCode {
 
     public static final ErrorCode BROKERAGE_SETTLE_FAILED = ErrorCode("10020", "项目结算失败,请检查项目排期或提成权重。");
 
-    public static final ErrorCode ITEM_EVALUATE_ERROR = ErrorCode("10021", "当前项目仍有未确认是否逾期的阶段,请先确认后再评价。");
+    public static final ErrorCode ITEM_EVALUATE_ERROR = ErrorCode("10021", "抱歉!当前项目还未完成,暂时无法评价。");
 
 
 

+ 3 - 0
dao/src/main/java/com/dayou/mapper/ItemBrokerageGeneralMapper.java

@@ -1,7 +1,9 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.entity.ItemBrokerageGeneral;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.BrokerageGeneralVO;
 import org.apache.ibatis.annotations.Param;
 
 /**
@@ -14,4 +16,5 @@ import org.apache.ibatis.annotations.Param;
  */
 public interface ItemBrokerageGeneralMapper extends CustomBaseMapper<ItemBrokerageGeneral> {
 
+    Page<BrokerageGeneralVO> aheadPage(Page page, @Param("itemBrokerageGeneral") BrokerageGeneralVO itemBrokerageGeneral);
 }

+ 6 - 0
dao/src/main/java/com/dayou/mapper/ItemStageUserMapper.java

@@ -2,6 +2,11 @@ package com.dayou.mapper;
 
 import com.dayou.entity.ItemStageUser;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.ItemStageUserVO;
+import org.apache.ibatis.annotations.Param;
+
+import java.util.List;
+import java.util.Set;
 
 /**
  * <p>
@@ -13,4 +18,5 @@ import com.dayou.dao.CustomBaseMapper;
  */
 public interface ItemStageUserMapper extends CustomBaseMapper<ItemStageUser> {
 
+    Set<ItemStageUserVO> getList(@Param("stageId") Long stageId);
 }

+ 31 - 0
dao/src/main/resources/mapper/ItemBrokerageGeneralMapper.xml

@@ -31,4 +31,35 @@
         item_id, marketer_brokerage_amount, marketer_advance_brokerage_able, marketer_advance_brokerage_done, participant_predict_brokerage_amount, participant_actual_brokerage_amount, participant_advance_status, brokerage_predict_amount, brokerage_actual_amount, brokerage_rate,
             participant_status,marketer_status
     </sql>
+
+    <select id="aheadPage" parameterType="com.dayou.vo.BrokerageGeneralVO" resultType="com.dayou.vo.BrokerageGeneralVO">
+        SELECT
+            ibg.marketer_brokerage_amount,
+            ibg.marketer_advance_brokerage_able,
+            ibg.brokerage_rate,
+            dd1.name AS cateName,
+            dd2.name AS businessSourceName,
+            i.id,
+            i.deleted,
+            i.business_no,
+            i.oa_no,
+            i.name,
+            i.client_unit,
+            i.client_name,
+            i.client_manager,
+            i.amount
+        FROM
+            item_brokerage_general ibg
+                LEFT JOIN item i ON i.id = ibg.item_id
+                LEFT JOIN dict_data dd1 ON i.cate = dd1.id
+                LEFT JOIN dict_data dd2 ON i.business_source = dd2.id
+        WHERE
+            ibg.marketer_advance_brokerage_able = 1
+          AND i.deleted = 0
+          AND ibg.deleted = 0
+          AND dd1.deleted = 0
+          AND dd2.deleted = 0
+        ORDER BY
+            ibg.id DESC
+    </select>
 </mapper>

+ 11 - 7
dao/src/main/resources/mapper/ItemMapper.xml

@@ -61,13 +61,14 @@
 
     <select id="getPage" resultType="com.dayou.vo.ItemVO">
         SELECT
-            <include refid="Base_Column_List"/> , d.name as departmentName,
+            <include refid="Base_Column_List"/> , d.name as departmentName,dd1.name as cateName,dd2.name as businessSourceName,
         (select name from item_stage s where curDate() &gt;= s.start_date and curDate() &lt;= s.end_date and s.item_id = i.id) as stageName,
         (select id from item_stage s where curDate() &gt;= s.start_date and curDate() &lt;= s.end_date and s.item_id  and s.item_id = i.id) as stageId
         FROM
-            item i left join department d on i.department_id = d.id
+            item i left join department d on i.department_id = d.id  left join dict_data dd1 on i.cate = dd1.id
+        left join dict_data dd2 on i.business_source = dd2.id
         WHERE
-        i.deleted = 0
+        i.deleted = 0 and dd1.deleted =0 and dd2.deleted = 0
         <if test="item!=null and item.name!=null and item.name!='' ">
             and i.name like concat ('%',#{item.name},'%')
         </if>
@@ -94,13 +95,15 @@
 
     <select id="getXPage" resultType="com.dayou.vo.ItemVO">
         SELECT
-        <include refid="Base_Column_List"/> , d.name as departmentName,
+        <include refid="Base_Column_List"/> , d.name as departmentName,dd1.name as cateName,dd2.name as businessSourceName,
         (select name from item_stage s where curDate() &gt;= s.start_date and curDate() &lt;= s.end_date and s.item_id = i.id) as stageName,
         (select id from item_stage s where curDate() &gt;= s.start_date and curDate() &lt;= s.end_date and s.item_id  and s.item_id = i.id) as stageId
         FROM
         item i left join department d on i.department_id = d.id
+                                      left join dict_data dd1 on i.cate = dd1.id
+                                      left join dict_data dd2 on i.business_source = dd2.id
         WHERE
-        i.deleted = 0
+        i.deleted = 0 and dd1.deleted =0 and dd2.deleted = 0
         <if test="item!=null and item.name!=null and item.name!='' ">
             and i.name like concat ('%',#{item.name},'%')
         </if>
@@ -147,8 +150,9 @@
     </select>
 
     <select id="xSelectList" parameterType="com.dayou.vo.ItemStageVO" resultType="com.dayou.entity.Item">
-        select <include refid="Base_Column_List"/> from item i
-        where i.deleted = 0
+        select <include refid="Base_Column_List"/> ,dd1.name as cateName,dd2.name as businessSourceName from item i  left join dict_data dd1 on i.cate = dd1.id
+        left join dict_data dd2 on i.business_source = dd2.id
+        where i.deleted = 0 and dd1.deleted =0 and dd2.deleted = 0
         <if test="item!=null and item.userIds!=null and item.userIds.size!=0 and item!=null and item.departmentIds!=null and item.departmentIds.size==0">
             <if test="item!=null and item.userIds!=null and item.userIds.size!=0">
                 and EXISTS ( SELECT item_id FROM item_user iu WHERE iu.item_id = i.id AND iu.user_id in

+ 4 - 0
dao/src/main/resources/mapper/ItemStageUserMapper.xml

@@ -17,4 +17,8 @@
         user_id, item_id, stage_id, weight
     </sql>
 
+    <select id="getList" parameterType="java.lang.Long" resultType="com.dayou.vo.ItemStageUserVO">
+        select isu.weight,u.name as userName,isu.id from item_stage_user isu left join user u on u.id = isu.user_id
+where u.deleted = 0 and isu.stage_id = #{stageId}
+    </select>
 </mapper>

+ 0 - 28
domain/src/main/java/com/dayou/entity/Item.java

@@ -31,101 +31,73 @@ public class Item extends BaseEntity {
     /**
      * 事业部流水号
      */
-    @ImportCell
-    @ExportCell(columnName = "事业部流水号")
     private String businessNo;
 
     /**
      * 公司OA流水号(项目编号)
      */
-    @ImportCell
-    @ExportCell(columnName = "公司OA流水号")
     private String oaNo;
 
     /**
      * 项目名称
      */
-    @ImportCell
-    @ExportCell(columnName = "项目名称")
     private String name;
 
     /**
      * 项目类型
      */
     @AbcValidate(required = true,message = "项目类型不能为空",fun = Check.NotNull)
-    @ImportCell
-    @ExportCell(columnName = "项目类型")
     private Long cate;
 
     /**
      * 业务来源
      */
     @AbcValidate(required = true,message = "业务来源不能为空",fun = Check.NotNull)
-    @ImportCell
-    @ExportCell(columnName = "业务来源")
     private Long businessSource;
 
     /**
      * 归属单位
      */
-    @ImportCell
-    @ExportCell(columnName = "归属单位")
     private String belongTo;
 
     /**
      * 委托单位
      */
-    @ImportCell
-    @ExportCell(columnName = "委托单位")
     private String clientUnit;
 
     /**
      * 委托人
      */
-    @ImportCell
-    @ExportCell(columnName = "客户名字")
     private String clientName;
 
     /**
      * 联系方式
      */
-    @ImportCell
-    @ExportCell(columnName = "联系方式")
     private String mobile;
 
     /**
      * 客户经理
      */
-    @ImportCell
-    @ExportCell(columnName = "客户经理")
     private String clientManager;
 
     /**
      * 技术负责人
      */
-    @ImportCell
-    @ExportCell(columnName = "技术负责人")
     private String skiller;
 
     /**
      * 合同签订时间
      */
-    @ImportCell
-    @ExportCell(columnName = "合同签订时间")
     private LocalDate signDate;
 
     /**
      * 合同支付方式
      */
-    @ImportCell
-    @ExportCell(columnName = "合同支付方式")
     private String paymentMethod;
 
     /**
      * 合同金额
      */
-    @ImportCell
-    @ExportCell(columnName = "合同金额")
     @TableField(value = "amount", fill = FieldFill.UPDATE)
     private BigDecimal amount;
 

+ 0 - 22
domain/src/main/java/com/dayou/entity/ItemBrokerageGeneral.java

@@ -33,80 +33,58 @@ public class ItemBrokerageGeneral extends BaseEntity {
     /**
      * 客户经理提成金额
      */
-    @ImportCell
-    @ExportCell(columnName = "客户经理提成金额")
     private BigDecimal marketerBrokerageAmount;
 
     /**
      * 客户经理预提
      */
-    @ImportCell
-    @ExportCell(columnName = "客户经理预提")
     private Boolean marketerAdvanceBrokerageAble;
 
     /**
      * 客户经理已预提
      */
-    @ImportCell
-    @ExportCell(columnName = "客户经理已预提")
     private Boolean marketerAdvanceBrokerageDone;
 
     /**
      * 参与人预计提成总金额
      */
-    @ImportCell
-    @ExportCell(columnName = "参与人预计提成总金额")
     @TableField("participant_predict_brokerage_amount")
     private BigDecimal participantPredictBrokerageAmount;
 
     /**
      * 参与人实际提成总金额
      */
-    @ImportCell
-    @ExportCell(columnName = "参与人实际提成总金额")
     @TableField("participant_actual_brokerage_amount")
     private BigDecimal participantActualBrokerageAmount;
 
     /**
      * 参与人预提中
      */
-    @ImportCell
-    @ExportCell(columnName = "参与人预提中")
     private Boolean participantAdvanceStatus;
 
     /**
      * 预计提成总金额
      */
-    @ImportCell
-    @ExportCell(columnName = "预计提成总金额")
     private BigDecimal brokeragePredictAmount;
 
     /**
      * 已提成总金额
      */
-    @ImportCell
-    @ExportCell(columnName = "已提成总金额")
     private BigDecimal brokerageActualAmount;
 
     /**
      * 提成率
      */
-    @ImportCell
-    @ExportCell(columnName = "提成率")
     private BigDecimal brokerageRate;
 
     /**
      * 参与人提成状态
      */
-    @ImportCell
-    @ExportCell(columnName = "参与人提成状态")
     private String participantStatus;
 
     /**
      * 客户经理提成状态
      */
-    @ImportCell
-    @ExportCell(columnName = "客户经理提成状态")
     private String marketerStatus;
 
 }

+ 2 - 0
domain/src/main/java/com/dayou/enums/OperationTypeEnum.java

@@ -13,6 +13,8 @@ public enum OperationTypeEnum implements CodeMsgEnumInterface<String,String> {
     SET("设置",null),
     GENERATE("生成",null),
     RESET("重置",null),
+
+    SETTLE("结算",null)
     ;
 
     OperationTypeEnum(String code, String msg) {

+ 100 - 0
domain/src/main/java/com/dayou/vo/BrokerageGeneralVO.java

@@ -0,0 +1,100 @@
+package com.dayou.vo;
+
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.dayou.entity.ItemBrokerageGeneral;
+import com.fasterxml.jackson.annotation.JsonIgnore;
+import lombok.Data;
+
+
+import java.math.BigDecimal;
+import java.util.Date;
+
+/**
+ * 类说明:
+ *
+ * @author: wucl
+ * @since: 2023/3/17
+ * created with IntelliJ IDEA.
+ */
+@Data
+public class BrokerageGeneralVO {
+    /**
+     * 项目id
+     */
+    private Long itemId;
+
+    /**
+     * 客户经理提成金额
+     */
+    private BigDecimal marketerBrokerageAmount;
+
+    /**
+     * 客户经理 是否可预提
+     */
+    private Boolean marketerAdvanceBrokerageAble;
+
+    /**
+     * 提成率
+     */
+    private BigDecimal brokerageRate;
+
+    /**
+     * 客户经理提成状态
+     */
+    private String marketerStatus;
+    /**
+     * 项目类型
+     */
+    private String cateName;
+
+    /**
+     * 业务来源
+     */
+    private String businessSourceName;
+
+    /**
+     * 事业部流水号
+     */
+    private String businessNo;
+
+    /**
+     * 公司OA流水号(项目编号)
+     */
+    private String oaNo;
+
+    /**
+     * 项目名称
+     */
+    private String name;
+
+    /**
+     * 委托单位
+     */
+    private String clientUnit;
+
+    /**
+     * 委托人
+     */
+    private String clientName;
+
+    /**
+     * 客户经理
+     */
+    private String clientManager;
+
+    /**
+     * 合同金额
+     */
+    private BigDecimal amount;
+
+    private Long id;
+
+
+    /**
+     * 标志位
+     *
+     * @ignore
+     */
+    @JsonIgnore
+    private Boolean deleted;
+}

+ 3 - 1
domain/src/main/java/com/dayou/vo/ItemStageVO.java

@@ -33,7 +33,7 @@ public class ItemStageVO extends ItemStage {
 
     private List<Long> departmentIds;
 
-
+    private Set<ItemStageUserVO> participated;
 
     @Data
     public static class ParticipatorWeight{
@@ -41,6 +41,8 @@ public class ItemStageVO extends ItemStage {
         private Long userId;
 
         private BigDecimal weight;
+
+        private String userName;
     }
 
 }

+ 10 - 0
domain/src/main/java/com/dayou/vo/ItemVO.java

@@ -31,4 +31,14 @@ public class ItemVO extends Item {
      * 阶段id
      */
     private Long stageId;
+
+    /**
+     * 项目类型
+     */
+    private String cateName;
+
+    /**
+     * 业务来源
+     */
+    private String businessSourceName;
 }

+ 3 - 3
service/src/main/java/com/dayou/brokerage/interceptor/BrokerageInterceptor.java

@@ -4,6 +4,7 @@ import com.dayou.brokerage.annotation.DoBrokerage;
 import com.dayou.dto.ItemDTO;
 import com.dayou.entity.ItemEvaluate;
 import com.dayou.entity.PaymentCollection;
+import com.dayou.enums.OperationTypeEnum;
 import com.dayou.service.IItemBrokerageGeneralService;
 import com.dayou.vo.ItemStageVO;
 import lombok.extern.slf4j.Slf4j;
@@ -14,7 +15,6 @@ import org.springframework.stereotype.Component;
 
 import java.lang.reflect.Method;
 
-import static com.dayou.brokerage.constants.BrokerageBusiness.ITEM_SETTLE;
 import static com.dayou.brokerage.constants.BrokerageRule.LAND_MARKETER_RULE;
 import static com.dayou.brokerage.constants.BrokerageRule.LAND_OTHER_RULE;
 import static com.dayou.enums.OperationTypeEnum.*;
@@ -77,14 +77,14 @@ public class BrokerageInterceptor implements MethodInterceptor {
                 log.info("deleted non-marketer detail,itemId[{}]", itemStageId);
             }
         }
-        if (doBrokerageAnnotation!=null && doBrokerageAnnotation.rule() == LAND_OTHER_RULE && doBrokerageAnnotation.business() == ITEM_SETTLE){
+        if (doBrokerageAnnotation!=null && doBrokerageAnnotation.rule() == LAND_OTHER_RULE &&doBrokerageAnnotation.operation() == SETTLE){
             if (result instanceof Boolean && (Boolean) result){
                 ItemEvaluate evaluate = (ItemEvaluate) methodInvocation.getArguments()[0];
                 iItemBrokerageGeneralService.settleParticipatorBrokerage(evaluate.getItemId());
                 log.info("settle non-marketer detail,itemId[{}]", evaluate.getItemId());
             }
         }
-        if (doBrokerageAnnotation!=null && doBrokerageAnnotation.rule() == LAND_MARKETER_RULE && doBrokerageAnnotation.business() == ITEM_SETTLE){
+        if (doBrokerageAnnotation!=null && doBrokerageAnnotation.rule() == LAND_MARKETER_RULE && doBrokerageAnnotation.operation() == SETTLE){
             if (result instanceof Boolean && (Boolean) result){
                 PaymentCollection payment = (PaymentCollection) methodInvocation.getArguments()[0];
                 iItemBrokerageGeneralService.settleMarketerBrokerage(payment);

+ 6 - 0
service/src/main/java/com/dayou/service/IDictDataService.java

@@ -1,10 +1,14 @@
 package com.dayou.service;
+import com.dayou.common.PullDownModel;
 import com.dayou.entity.DictData;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+
 /**
  * <p>
  * 字典数据 服务类
@@ -30,4 +34,6 @@ public interface IDictDataService extends IService<DictData> {
         void importExcel(MultipartFile file);
 
         XSSFWorkbook exportExcel(DictData dictData);
+
+    List<PullDownModel> simpleType(String type);
 }

+ 2 - 1
service/src/main/java/com/dayou/service/IItemBrokerageGeneralService.java

@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.dayou.entity.PaymentCollection;
+import com.dayou.vo.BrokerageGeneralVO;
 import com.dayou.vo.ItemStageVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
@@ -22,7 +23,7 @@ import java.util.List;
  */
 public interface IItemBrokerageGeneralService extends IService<ItemBrokerageGeneral> {
 
-    Page<ItemBrokerageGeneral> selectPage(Page page,ItemBrokerageGeneral itemBrokerageGeneral);
+    Page<BrokerageGeneralVO> selectPage(Page page, BrokerageGeneralVO itemBrokerageGeneral);
 
     ItemBrokerageGeneral detail(Long id);
 

+ 1 - 0
service/src/main/java/com/dayou/service/IItemEvaluateService.java

@@ -25,4 +25,5 @@ public interface IItemEvaluateService extends IService<ItemEvaluate> {
 
         Boolean delete(Long id);
 
+        ItemEvaluate detailByItemId(Long itemId);
 }

+ 1 - 0
service/src/main/java/com/dayou/service/IItemService.java

@@ -40,5 +40,6 @@ public interface IItemService extends IService<Item> {
 
         Page<ItemVO> xSelectPage(Page page, ItemDTO item);
 
+        String getItemState(Long id);
 
 }

+ 7 - 0
service/src/main/java/com/dayou/service/IItemStageUserService.java

@@ -3,8 +3,13 @@ import com.dayou.entity.ItemStageUser;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayou.vo.ItemStageUserVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
+
+import java.util.List;
+import java.util.Set;
+
 /**
  * <p>
  * 项目人员阶段参与表 服务类
@@ -25,4 +30,6 @@ public interface IItemStageUserService extends IService<ItemStageUser> {
 
         Boolean delete(Long id);
 
+        Set<ItemStageUserVO> getList(Long stageId);
+
 }

+ 20 - 0
service/src/main/java/com/dayou/service/impl/DictDataServiceImpl.java

@@ -1,9 +1,14 @@
 package com.dayou.service.impl;
 
+import com.dayou.common.PullDownModel;
 import com.dayou.entity.DictData;
+import com.dayou.entity.DictType;
 import com.dayou.mapper.DictDataMapper;
 import com.dayou.service.IDictDataService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.service.IDictTypeService;
+import com.dayou.utils.ConvertUtil;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -37,6 +42,9 @@ public class DictDataServiceImpl extends ServiceImpl<DictDataMapper, DictData> i
 
     private static final List<String> dictDataExcelTitles= new ArrayList();
 
+    @Autowired
+    private IDictTypeService dictTypeService;
+
     static{
             dictDataExcelTitles.add("字典排序");
             dictDataExcelTitles.add("字典值");
@@ -117,4 +125,16 @@ public class DictDataServiceImpl extends ServiceImpl<DictDataMapper, DictData> i
         return wb;
     }
 
+    @Override
+    public List<PullDownModel> simpleType(String type) {
+        DictType dictType = dictTypeService.getOne(new LambdaQueryWrapper<DictType>().eq(DictType::getName, type));
+        LambdaQueryWrapper<DictData> lambdaQueryWrapper = new LambdaQueryWrapper<DictData>()
+                .select(DictData::getId,DictData::getName)
+                .eq(DictData::getDictTypeId,dictType.getId())
+                .eq(DictData::getDeleted,false);
+        List<DictData> list= this.list(lambdaQueryWrapper);
+        List<PullDownModel> ret= ConvertUtil.copyList(list, PullDownModel.class);
+        return ret;
+    }
+
 }

+ 8 - 3
service/src/main/java/com/dayou/service/impl/ItemBrokerageGeneralServiceImpl.java

@@ -17,6 +17,7 @@ import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.*;
 import com.dayou.service.*;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.vo.BrokerageGeneralVO;
 import com.dayou.vo.ItemStageVO;
 import com.google.common.collect.Sets;
 import lombok.extern.slf4j.Slf4j;
@@ -74,10 +75,14 @@ public class ItemBrokerageGeneralServiceImpl extends ServiceImpl<ItemBrokerageGe
     @Autowired
     private PaymentCollectionMapper paymentCollectionMapper;
 
+    @Autowired
+    private ItemBrokerageGeneralMapper brokerageGeneralMapper;
+
     @Override
     @SuppressWarnings("unchecked")
-    public Page<ItemBrokerageGeneral> selectPage(Page page,ItemBrokerageGeneral itemBrokerageGeneral){
-        return this.page(page, new QueryWrapper<ItemBrokerageGeneral>(itemBrokerageGeneral));
+    public Page<BrokerageGeneralVO> selectPage(Page page, BrokerageGeneralVO itemBrokerageGeneral){
+        Page<BrokerageGeneralVO> xPage = brokerageGeneralMapper.aheadPage(page,itemBrokerageGeneral);
+        return xPage;
     }
 
 
@@ -215,7 +220,7 @@ public class ItemBrokerageGeneralServiceImpl extends ServiceImpl<ItemBrokerageGe
                 return;
             }
             Set<ItemStageVO.ParticipatorWeight> participators = itemStageVO.getParticipators();
-            Set<ItemBrokerageDetail> participatorBrokerageDetails = participators.stream().map(x -> {
+            Set<ItemBrokerageDetail> participatorBrokerageDetails = participators.stream().filter(s->s.getWeight()!=null).map(x -> {
                 BrokerageDetailBO brokerageDetailBO = BrokerageDetailBO.builder().build();
                 brokerageDetailBO.setBrokerageRule(BrokerageRule.LAND_OTHER_RULE.getCode());
                 brokerageDetailBO.setBrokerageMode(BrokerageMode.PERSONAL.getCode());

+ 31 - 5
service/src/main/java/com/dayou/service/impl/ItemEvaluateServiceImpl.java

@@ -4,13 +4,19 @@ import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.dayou.brokerage.annotation.DoBrokerage;
 import com.dayou.brokerage.constants.BrokerageBusiness;
 import com.dayou.brokerage.constants.BrokerageRule;
+import com.dayou.brokerage.constants.BrokerageState;
+import com.dayou.common.BaseEntity;
+import com.dayou.entity.ItemBrokerageGeneral;
 import com.dayou.entity.ItemEvaluate;
 import com.dayou.entity.ItemStage;
+import com.dayou.enums.ItemStateEnum;
 import com.dayou.enums.OperationTypeEnum;
 import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.ItemEvaluateMapper;
+import com.dayou.service.IItemBrokerageGeneralService;
 import com.dayou.service.IItemEvaluateService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.service.IItemService;
 import com.dayou.service.IItemStageService;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -46,9 +52,11 @@ import static com.dayou.exception.ErrorCode.ITEM_EVALUATE_ERROR;
 @Service
 public class ItemEvaluateServiceImpl extends ServiceImpl<ItemEvaluateMapper, ItemEvaluate> implements IItemEvaluateService {
 
+    @Autowired
+    private IItemService iItemService;
 
     @Autowired
-    private IItemStageService itemStageService;
+    private IItemBrokerageGeneralService iItemBrokerageGeneralService;
 
     @Override
     @SuppressWarnings("unchecked")
@@ -62,18 +70,30 @@ public class ItemEvaluateServiceImpl extends ServiceImpl<ItemEvaluateMapper, Ite
         return this.getById(id);
     }
 
-    @DoBrokerage(operation = OperationTypeEnum.EDIT,rule = BrokerageRule.LAND_OTHER_RULE ,business = BrokerageBusiness.SETTLE)
+    @Transactional
+    //@DoBrokerage(operation = OperationTypeEnum.SETTLE,rule = BrokerageRule.LAND_OTHER_RULE ,business = BrokerageBusiness.ITEM_SETTLE)
     @Override
     public Boolean add(ItemEvaluate itemEvaluate){
-        List<ItemStage> stages = itemStageService.list(new LambdaQueryWrapper<ItemStage>().eq(ItemStage::getItemId, itemEvaluate.getItemId()).isNull(ItemStage::getOverdue));
-        if (CollectionUtils.isNotEmpty(stages)){
+        String itemState = iItemService.getItemState(itemEvaluate.getItemId());
+        //List<ItemStage> stages = itemStageService.list(new LambdaQueryWrapper<ItemStage>().eq(ItemStage::getItemId, itemEvaluate.getItemId()).isNull(ItemStage::getOverdue));
+        if (!ItemStateEnum.COMPLETED.getName().equals(itemState)){
             ErrorCode.throwBusinessException(ITEM_EVALUATE_ERROR);
         }
-        return  this.save(itemEvaluate);
+        this.save(itemEvaluate);
+        boolean update = iItemBrokerageGeneralService.update(new LambdaUpdateWrapper<ItemBrokerageGeneral>()
+                .eq(ItemBrokerageGeneral::getItemId, itemEvaluate.getItemId()).eq(BaseEntity::getDeleted, Boolean.FALSE)
+                .set(ItemBrokerageGeneral::getParticipantStatus, BrokerageState.NOT_SETTLE.getCode()));
+        return  update;
     }
 
+    //@DoBrokerage(operation = OperationTypeEnum.SETTLE,rule = BrokerageRule.LAND_OTHER_RULE ,business = BrokerageBusiness.ITEM_SETTLE)
     @Override
     public Boolean update(ItemEvaluate itemEvaluate){
+        String itemState = iItemService.getItemState(itemEvaluate.getItemId());
+        //List<ItemStage> stages = itemStageService.list(new LambdaQueryWrapper<ItemStage>().eq(ItemStage::getItemId, itemEvaluate.getItemId()).isNull(ItemStage::getOverdue));
+        if (!ItemStateEnum.COMPLETED.getName().equals(itemState)){
+            ErrorCode.throwBusinessException(ITEM_EVALUATE_ERROR);
+        }
         return  this.updateById(itemEvaluate);
     }
 
@@ -82,4 +102,10 @@ public class ItemEvaluateServiceImpl extends ServiceImpl<ItemEvaluateMapper, Ite
         //逻辑删除
         return this.removeById(id);
     }
+
+    @Override
+    public ItemEvaluate detailByItemId(Long itemId) {
+        ItemEvaluate itemEvaluate = this.getOne(new LambdaQueryWrapper<ItemEvaluate>().eq(ItemEvaluate::getItemId, itemId));
+        return itemEvaluate;
+    }
 }

+ 2 - 1
service/src/main/java/com/dayou/service/impl/ItemServiceImpl.java

@@ -164,7 +164,8 @@ public class ItemServiceImpl extends ServiceImpl<ItemMapper, Item> implements II
      * @param id 项目id
      * @return
      */
-    private String getItemState(Long id){
+    @Override
+    public String getItemState(Long id){
         List<ItemStageVO> itemStageVOS = itemStageService.listByItemId(id);
         if (CollectionUtils.isNotEmpty(itemStageVOS)){
             LocalDate startDate = itemStageVOS.get(0).getStartDate();

+ 9 - 2
service/src/main/java/com/dayou/service/impl/ItemStageServiceImpl.java

@@ -1,5 +1,6 @@
 package com.dayou.service.impl;
 
+import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.lang.UUID;
 import cn.hutool.core.util.StrUtil;
 import com.dayou.brokerage.annotation.DoBrokerage;
@@ -14,7 +15,9 @@ import com.dayou.mapper.ItemStageMapper;
 import com.dayou.service.IItemStageService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.service.IItemStageUserService;
+import com.dayou.vo.ItemStageUserVO;
 import com.dayou.vo.ItemStageVO;
+import org.apache.commons.beanutils.BeanUtils;
 import org.apache.commons.collections4.CollectionUtils;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
@@ -94,7 +97,7 @@ public class ItemStageServiceImpl extends ServiceImpl<ItemStageMapper, ItemStage
         }
         this.save(itemStageVO);
         Set<ItemStageVO.ParticipatorWeight> participators = itemStageVO.getParticipators();
-        Set<ItemStageUser> itemStageUsers = participators.stream().map(x -> {
+        Set<ItemStageUser> itemStageUsers = participators.stream().filter(s->s.getWeight()!=null).map(x -> {
             return ItemStageUser.builder().itemId(itemStageVO.getItemId()).stageId(itemStageVO.getId()).userId(x.getUserId()).weight(x.getWeight()).build();
         }).collect(Collectors.toSet());
         iItemStageUserService.saveBatch(itemStageUsers);
@@ -137,7 +140,7 @@ public class ItemStageServiceImpl extends ServiceImpl<ItemStageMapper, ItemStage
         iItemStageUserService.remove(new LambdaQueryWrapper<ItemStageUser>().eq(ItemStageUser::getStageId,itemStageVO.getId()));
         Set<ItemStageVO.ParticipatorWeight> participators = itemStageVO.getParticipators();
         if (CollectionUtils.isNotEmpty(participators)){
-            Set<ItemStageUser> itemStageUsers = participators.stream().map(x -> {
+            Set<ItemStageUser> itemStageUsers = participators.stream().filter(s->s.getWeight()!=null).map(x -> {
                 return ItemStageUser.builder().itemId(itemStageVO.getItemId()).stageId(itemStageVO.getId()).userId(x.getUserId()).weight(x.getWeight()).build();
             }).collect(Collectors.toSet());
             return iItemStageUserService.saveBatch(itemStageUsers);
@@ -169,6 +172,10 @@ public class ItemStageServiceImpl extends ServiceImpl<ItemStageMapper, ItemStage
     @Override
     public List<ItemStageVO> listByItemId(Long itemId) {
         List<ItemStageVO> stages = itemStageMapper.listByItemId(itemId);
+        stages.stream().forEach(x->{
+            Set<ItemStageUserVO> list = iItemStageUserService.getList(x.getId());
+            x.setParticipated(list);
+        });
         return toSort(stages,new LinkedList<>(),null);
     }
 

+ 12 - 0
service/src/main/java/com/dayou/service/impl/ItemStageUserServiceImpl.java

@@ -4,6 +4,8 @@ import com.dayou.entity.ItemStageUser;
 import com.dayou.mapper.ItemStageUserMapper;
 import com.dayou.service.IItemStageUserService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.dayou.vo.ItemStageUserVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
@@ -21,6 +23,8 @@ import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 import java.util.List;
 import java.util.ArrayList;
+import java.util.Set;
+
 import org.springframework.transaction.annotation.Transactional;
 import com.dayou.enums.BatchTaskTypeEnum;
 
@@ -35,6 +39,8 @@ import com.dayou.enums.BatchTaskTypeEnum;
 @Service
 public class ItemStageUserServiceImpl extends ServiceImpl<ItemStageUserMapper, ItemStageUser> implements IItemStageUserService {
 
+    @Autowired
+    private ItemStageUserMapper stageUserMapper;
 
     @Override
     @SuppressWarnings("unchecked")
@@ -63,4 +69,10 @@ public class ItemStageUserServiceImpl extends ServiceImpl<ItemStageUserMapper, I
         //逻辑删除
         return this.removeById(id);
     }
+
+    @Override
+    public Set<ItemStageUserVO> getList(Long stageId) {
+        Set<ItemStageUserVO> list = stageUserMapper.getList(stageId);
+        return list;
+    }
 }

+ 1 - 1
service/src/main/java/com/dayou/service/impl/PaymentCollectionServiceImpl.java

@@ -68,7 +68,7 @@ public class PaymentCollectionServiceImpl extends ServiceImpl<PaymentCollectionM
         return this.getById(id);
     }
 
-    @DoBrokerage(operation = OperationTypeEnum.EDIT,rule = BrokerageRule.LAND_MARKETER_RULE,business = BrokerageBusiness.SETTLE)
+    @DoBrokerage(operation = OperationTypeEnum.EDIT,rule = BrokerageRule.LAND_MARKETER_RULE,business = BrokerageBusiness.ITEM_SETTLE)
     @Override
     public Boolean add(PaymentCollection paymentCollection){
         BigDecimal totalAmount = iItemService.getById(paymentCollection.getItemId()).getAmount();