‘linchangsheng’ 3 ay önce
ebeveyn
işleme
635096d7ab
18 değiştirilmiş dosya ile 783 ekleme ve 25 silme
  1. 20 0
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/apply/WorkerApplyCount.java
  2. 21 0
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/apply/WorkerInvolveApplyDetail.java
  3. 56 0
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/apply/WorkerInvolveApplyVO.java
  4. 8 0
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/commonmapper/workorder/OrderBaseCMapper.java
  5. 89 0
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/apply/WorkerApplyController.java
  6. 117 0
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/apply/WorkerApplyLogic.java
  7. 1 1
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/common/CommonLogic.java
  8. 1 1
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/PayOrderLogic.java
  9. 1 1
      mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/policy/WorkerLogic.java
  10. 61 22
      mall-miniapp-service/src/main/resources/mapper/workorder/OrderBaseCMapper.xml
  11. 58 0
      mall-server-api/src/main/java/com/gree/mall/manager/bean/apply/WorkerInvolveApplyVO.java
  12. 16 0
      mall-server-api/src/main/java/com/gree/mall/manager/bean/apply/WorkerInvolvePrincipalDetail.java
  13. 55 0
      mall-server-api/src/main/java/com/gree/mall/manager/bean/apply/WorkerInvolvePrincipalVO.java
  14. 4 0
      mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/CommonMapper.java
  15. 91 0
      mall-server-api/src/main/java/com/gree/mall/manager/controller/apply/PrincipalController.java
  16. 74 0
      mall-server-api/src/main/java/com/gree/mall/manager/controller/apply/WorkerInvolveController.java
  17. 92 0
      mall-server-api/src/main/java/com/gree/mall/manager/logic/apply/WorkerInvolveLogic.java
  18. 18 0
      mall-server-api/src/main/resources/mapper/CommonMapper.xml

+ 20 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/apply/WorkerApplyCount.java

@@ -0,0 +1,20 @@
+package com.gree.mall.miniapp.bean.apply;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+@ApiModel
+@Data
+public class WorkerApplyCount {
+
+    @ApiModelProperty(value = "待审批")
+    private Integer dsp;
+
+
+    @ApiModelProperty(value = "已通过")
+    private Integer ytg;
+
+    @ApiModelProperty(value = "已驳回")
+    private Integer ybh;
+}

+ 21 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/apply/WorkerInvolveApplyDetail.java

@@ -0,0 +1,21 @@
+package com.gree.mall.miniapp.bean.apply;
+
+import com.gree.mall.miniapp.plus.entity.PgOrderBase;
+import com.gree.mall.miniapp.plus.entity.WorkerInvolveApply;
+import com.gree.mall.miniapp.plus.entity.WorkerInvolveApplyItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+
+@ApiModel
+@Data
+public class WorkerInvolveApplyDetail extends WorkerInvolveApply {
+
+    @ApiModelProperty(value = "工单详情")
+    private PgOrderBase pgOrderBase;
+
+    @ApiModelProperty(value = "结果")
+    private List<WorkerInvolveApplyItem> workerInvolveApplyItems;
+}

+ 56 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/bean/apply/WorkerInvolveApplyVO.java

@@ -0,0 +1,56 @@
+package com.gree.mall.miniapp.bean.apply;
+
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class WorkerInvolveApplyVO {
+
+    @ApiModelProperty(value = "工单编号")
+    private String orderBaseId;
+
+    @ApiModelProperty(value = "客户名称")
+    private String linkName;
+
+    @ApiModelProperty(value = "客户电话")
+    private String userMobile;
+
+    @ApiModelProperty(value = "提交时间")
+    private String createTime;
+
+
+    @ApiModelProperty(value = "申请费用")
+    private BigDecimal maintenancePricePass;
+
+
+    @ApiModelProperty(value = "省")
+    private String province;
+
+    @ApiModelProperty(value = "省id")
+    private String provinceId;
+
+    @ApiModelProperty(value = "市")
+    private String city;
+
+    @ApiModelProperty(value = "市id")
+    private String cityId;
+
+    @ApiModelProperty(value = "区")
+    private String area;
+
+    @ApiModelProperty(value = "区id")
+    private String areaId;
+
+    @ApiModelProperty(value = "街道")
+    private String street;
+
+    @ApiModelProperty(value = "街道id")
+    private String streetId;
+
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+}

+ 8 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/commonmapper/workorder/OrderBaseCMapper.java

@@ -1,10 +1,15 @@
 package com.gree.mall.miniapp.commonmapper.workorder;
 
 import com.baomidou.mybatisplus.annotation.InterceptorIgnore;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.miniapp.bean.apply.WorkerInvolveApplyVO;
 import com.gree.mall.miniapp.bean.workorder.CountOrderStatusBean;
 import org.apache.ibatis.annotations.Mapper;
 import org.apache.ibatis.annotations.Param;
 
+import java.util.List;
+
 @Mapper
 public interface OrderBaseCMapper {
 
@@ -23,4 +28,7 @@ public interface OrderBaseCMapper {
     );
 
     CountOrderStatusBean countPartsApply(@Param("userId") String userId);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    IPage<WorkerInvolveApplyVO> list(Page page, @Param("status") List<String> status, @Param("userId") String userId, @Param("value") String value);
 }

+ 89 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/controller/apply/WorkerApplyController.java

@@ -0,0 +1,89 @@
+package com.gree.mall.miniapp.controller.apply;
+
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.miniapp.bean.apply.WorkerApplyCount;
+import com.gree.mall.miniapp.bean.apply.WorkerInvolveApplyDetail;
+import com.gree.mall.miniapp.bean.apply.WorkerInvolveApplyVO;
+import com.gree.mall.miniapp.helper.ResponseHelper;
+import com.gree.mall.miniapp.logic.apply.WorkerApplyLogic;
+import com.gree.mall.miniapp.plus.entity.*;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.servlet.http.HttpServletRequest;
+import java.util.List;
+
+@Slf4j
+@RestController
+@Api(value = "难度费用申请", tags = {"难度费用申请"})
+@RequestMapping(value = "/workerApply", produces = "application/json; charset=utf-8")
+public class WorkerApplyController {
+
+    @Autowired
+    WorkerApplyLogic workerApplyLogic;
+
+    @PostMapping("/add")
+    @ApiOperation(value = "申请难度费")
+    public ResponseHelper add(
+            @RequestBody WorkerInvolveApply workerInvolveApply,
+            HttpServletRequest request
+    ) throws Exception {
+
+        workerApplyLogic.add(workerInvolveApply);
+        return ResponseHelper.success();
+    }
+
+
+    @PostMapping("/update")
+    @ApiOperation(value = "驳回重新申请难度费")
+    public ResponseHelper update(
+            @RequestBody WorkerInvolveApply workerInvolveApply,
+            HttpServletRequest request
+    ) throws Exception {
+
+        workerApplyLogic.update(workerInvolveApply);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/detail")
+    @ApiOperation(value = "难度费详情")
+    public ResponseHelper<WorkerInvolveApplyDetail> detail(
+            @ApiParam("id") @RequestParam String orderBaseId,
+            HttpServletRequest request
+    ) throws Exception {
+
+        WorkerInvolveApplyDetail workerInvolveApplyDetail = workerApplyLogic.detail(orderBaseId);
+        return ResponseHelper.success(workerInvolveApplyDetail);
+    }
+
+
+    @ApiOperation("难度费列表")
+    @PostMapping("/list")
+    public ResponseHelper<IPage<WorkerInvolveApplyVO>> list(
+            @ApiParam(required = true, value = "1 待网点审核 2驳回重申 3待中心审核 4驳回禁止申诉 5通过审核 ") @RequestParam(required = true) List<String> status,
+            @ApiParam(required = true, value = "查询") @RequestParam(required = true) String value,
+            @ApiParam(required = true, value = "页大小") @RequestParam(required = true) Integer pageSize,
+            @ApiParam(required = true, value = "页数") @RequestParam(required = true) Integer pageNum,
+            HttpServletRequest request
+    ){
+        IPage<WorkerInvolveApplyVO> list = workerApplyLogic.list(pageNum, pageSize, status,value);
+        return ResponseHelper.success(list);
+    }
+
+
+    @ApiOperation("统计数量")
+    @PostMapping("/count")
+    public ResponseHelper<WorkerApplyCount> count(
+
+    ){
+        WorkerApplyCount workerApplyCount = workerApplyLogic.count();
+        return ResponseHelper.success(workerApplyCount);
+    }
+
+
+
+}

+ 117 - 0
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/apply/WorkerApplyLogic.java

@@ -0,0 +1,117 @@
+package com.gree.mall.miniapp.logic.apply;
+
+import cn.hutool.core.bean.BeanUtil;
+import cn.hutool.core.collection.CollectionUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.miniapp.bean.apply.WorkerApplyCount;
+import com.gree.mall.miniapp.bean.apply.WorkerInvolveApplyDetail;
+import com.gree.mall.miniapp.bean.apply.WorkerInvolveApplyVO;
+import com.gree.mall.miniapp.bean.user.CurrentCompanyWechat;
+import com.gree.mall.miniapp.commonmapper.workorder.OrderBaseCMapper;
+import com.gree.mall.miniapp.exception.RemoteServiceException;
+import com.gree.mall.miniapp.logic.common.CommonLogic;
+import com.gree.mall.miniapp.plus.entity.PgOrderBase;
+import com.gree.mall.miniapp.plus.entity.WorkerInvolveApply;
+import com.gree.mall.miniapp.plus.entity.WorkerInvolveApplyItem;
+import com.gree.mall.miniapp.plus.service.PgOrderBaseService;
+import com.gree.mall.miniapp.plus.service.WorkerInvolveApplyItemService;
+import com.gree.mall.miniapp.plus.service.WorkerInvolveApplyService;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Service
+@Slf4j
+@RequiredArgsConstructor
+public class WorkerApplyLogic {
+
+    private final WorkerInvolveApplyService workerInvolveApplyService;
+    private final WorkerInvolveApplyItemService workerInvolveApplyItemService;
+    private final PgOrderBaseService pgOrderBaseService;
+    private final OrderBaseCMapper orderBaseCMapper;
+    private final CommonLogic commonLogic;
+
+    public void add(WorkerInvolveApply workerInvolveApply) {
+
+        workerInvolveApply.insert();
+
+    }
+
+    public void update(WorkerInvolveApply workerInvolveApply) {
+
+        List<WorkerInvolveApplyItem> workerInvolveApplyItems = workerInvolveApplyItemService.lambdaQuery()
+                .eq(WorkerInvolveApplyItem::getInvolveApplyId, workerInvolveApply.getId())
+                .orderByDesc(WorkerInvolveApplyItem::getCreateTime).list();
+
+        if (CollectionUtil.isEmpty(workerInvolveApplyItems))
+            throw new RemoteServiceException("无法重新申请");
+
+
+        WorkerInvolveApply workerInvolveApplyServiceById = workerInvolveApplyService.getById(workerInvolveApply.getId());
+
+        if (!workerInvolveApplyServiceById.getStatus().equals(2))
+            throw new RemoteServiceException("无法重新申请");
+
+
+        workerInvolveApply.updateById();
+    }
+
+    public WorkerInvolveApplyDetail detail(String id) {
+        WorkerInvolveApply workerInvolveApply = workerInvolveApplyService.lambdaQuery()
+                .eq(WorkerInvolveApply::getOrderBaseId,id)
+                .last("limit 1").one();
+
+        if (workerInvolveApply == null)
+            return null;
+
+        WorkerInvolveApplyDetail workerInvolveApplyDetail = BeanUtil.toBean(workerInvolveApply, WorkerInvolveApplyDetail.class);
+
+        List<WorkerInvolveApplyItem> workerInvolveApplyItemList = workerInvolveApplyItemService.lambdaQuery().eq(WorkerInvolveApplyItem::getInvolveApplyId, id).list();
+
+        workerInvolveApplyDetail.setWorkerInvolveApplyItems(workerInvolveApplyItemList);
+
+
+        PgOrderBase pgOrderBase = pgOrderBaseService.getById(workerInvolveApply.getOrderBaseId());
+
+        workerInvolveApplyDetail.setPgOrderBase(pgOrderBase);
+        return workerInvolveApplyDetail;
+    }
+
+    public IPage<WorkerInvolveApplyVO> list(Integer pageNum, Integer pageSize, List<String> status, String value) {
+
+        CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
+        IPage<WorkerInvolveApplyVO> workerInvolveApplyVOIPage = orderBaseCMapper
+                .list(new Page(pageNum, pageSize),status,currentCompanyWechat.getUserId(),
+                        value);
+
+
+        return workerInvolveApplyVOIPage;
+
+
+    }
+
+    public WorkerApplyCount count() {
+        CurrentCompanyWechat currentCompanyWechat = commonLogic.getCurrentCompanyWechat();
+        Integer dsp = workerInvolveApplyService.lambdaQuery()
+                .eq(WorkerInvolveApply::getUserId, currentCompanyWechat.getUserId())
+                .in(WorkerInvolveApply::getStatus, 1, 3).count();
+
+        Integer ytg = workerInvolveApplyService.lambdaQuery()
+                .eq(WorkerInvolveApply::getUserId, currentCompanyWechat.getUserId())
+                .in(WorkerInvolveApply::getStatus, 5).count();
+
+        Integer ybh = workerInvolveApplyService.lambdaQuery()
+                .eq(WorkerInvolveApply::getUserId, currentCompanyWechat.getUserId())
+                .in(WorkerInvolveApply::getStatus,  2, 4).count();
+
+        WorkerApplyCount workerApplyCount = new WorkerApplyCount();
+        workerApplyCount.setDsp(dsp);
+        workerApplyCount.setYbh(ybh);
+        workerApplyCount.setYtg(ytg);
+        return workerApplyCount;
+
+    }
+}

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/common/CommonLogic.java

@@ -88,7 +88,7 @@ public class CommonLogic {
             token = request.getParameter("x-token");
         }
 
-        log.info("打印token:"+token);
+    //    log.info("打印token:"+token);
         AdminCompanyWechat adminCompanyWechat;
         User user = null;
 

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/order/PayOrderLogic.java

@@ -884,7 +884,7 @@ public class PayOrderLogic {
                 .eq(!StringUtil.isEmpty(payStatus) && payStatus.equals(MaterialExamineStatusEnum.PAID.getKey()),WorkerOrder::getRefundStatus, IsYesNoEnum.NO.getKey())
 
                 .and(item -> item.eq(WorkerOrder::getUserId,currentCompanyWechat.getUser().getUserId())
-                    .or().eq(WorkerOrder::getWorkerNumber,currentCompanyWechat.getUser().getWorkerNumber())
+                    .or(!StringUtil.isEmpty(currentCompanyWechat.getUser().getWorkerNumber())).eq(!StringUtil.isEmpty(currentCompanyWechat.getUser().getWorkerNumber()),WorkerOrder::getWorkerNumber,currentCompanyWechat.getUser().getWorkerNumber())
                 )
                 .between(!StringUtil.isEmpty(startTime),WorkerOrder::getCreateTime,startTime,endTime)
                 .in(WorkerOrder::getCompanyWechatId,currentCompanyWechat.getCompanyWechatId())

+ 1 - 1
mall-miniapp-service/src/main/java/com/gree/mall/miniapp/logic/policy/WorkerLogic.java

@@ -447,7 +447,7 @@ public class WorkerLogic {
 
         policyOrder.setWebsitUserId(websiUser.getId());
         if (startTime.after(policy.getEndTime()))
-            throw new RemoteServiceException("已拥有对应时间保险");
+            throw new RemoteServiceException("已拥有对应时间保险");
 
         int month = DateUtil.month(startTime);
         int month2 = DateUtil.month(policy.getEndTime());

+ 61 - 22
mall-miniapp-service/src/main/resources/mapper/workorder/OrderBaseCMapper.xml

@@ -3,30 +3,35 @@
 <mapper namespace="com.gree.mall.miniapp.commonmapper.workorder.OrderBaseCMapper">
 
     <select id="countOrderStatus" resultType="com.gree.mall.miniapp.bean.workorder.CountOrderStatusBean">
-         select
-            count(DISTINCT if((is_import_excel = false and a.order_status='DJD') or (is_import_excel = true and a.is_meet = false) ,a.id,null)) 'djd',
-            count(DISTINCT if(a.order_status in ('FWZ','GCSZT','BFWG','DSM','YZP','XSBH','TJXSBH','ZBBH','FZXBH','WDBH'),a.id,null)) 'fwz',
-            count(DISTINCT if(a.is_exception=1,a.id,null)) 'ycd',
-            count(DISTINCT if(a.order_status='DQD',a.id,null)) 'dqd',
-            count(DISTINCT if(a.order_status in ('YWG','YJS','GCSZX','YWGO','WDWG') ,a.id,null)) 'ywg',
-            count(DISTINCT if(a.over_time between CONCAT(CURDATE(), ' 00:00:00') and CONCAT(CURDATE(), ' 23:59:59'),a.id,null)) 'jrwg',
-            count(DISTINCT if(a.order_status in ('YWG','YJS','GCSZX','YWGO','WDWG') and a.over_time > CONCAT(DATE_SUB(CURDATE(), INTERVAL 6 MONTH) , ' 00:00:00') ,a.id,null)) 'jbnwg',
-            count(DISTINCT if(a.order_status not in ('YWG','YJS','GCSZX','YWGO','WDWG','DQD'),a.id,null)) 'WWG',
-            COUNT(DISTINCT a.id) AS 'all'
+        select
+        count(DISTINCT if((is_import_excel = false and a.order_status='DJD') or (is_import_excel = true and a.is_meet =
+        false) ,a.id,null)) 'djd',
+        count(DISTINCT if(a.order_status in
+        ('FWZ','GCSZT','BFWG','DSM','YZP','XSBH','TJXSBH','ZBBH','FZXBH','WDBH'),a.id,null)) 'fwz',
+        count(DISTINCT if(a.is_exception=1,a.id,null)) 'ycd',
+        count(DISTINCT if(a.order_status='DQD',a.id,null)) 'dqd',
+        count(DISTINCT if(a.order_status in ('YWG','YJS','GCSZX','YWGO','WDWG') ,a.id,null)) 'ywg',
+        count(DISTINCT if(a.over_time between CONCAT(CURDATE(), ' 00:00:00') and CONCAT(CURDATE(), '
+        23:59:59'),a.id,null)) 'jrwg',
+        count(DISTINCT if(a.order_status in ('YWG','YJS','GCSZX','YWGO','WDWG') and a.over_time >
+        CONCAT(DATE_SUB(CURDATE(), INTERVAL 6 MONTH) , ' 00:00:00') ,a.id,null)) 'jbnwg',
+        count(DISTINCT if(a.order_status not in ('YWG','YJS','GCSZX','YWGO','WDWG','DQD'),a.id,null)) 'WWG',
+        COUNT(DISTINCT a.id) AS 'all'
         from pg_order_base a
         left join pg_order_worker b on a.id = b.order_base_id
-    where ((b.worker_id=#{workerId} or b.worker_number=#{workerNumber}) or a.order_status = 'DQD') and a.order_status not in ('YQX','FWQX','FL','FWZT','YCGB')
-    and b.websit_id = a.websit_id
-    <if test="isYb != null and isYb == true">
-        and a.pg_incre_order_id != ''
-    </if>
-    <if test="isWb != null and isWb == true">
-        and a.rp_project_repair_id !=''
-    </if>
-    <if test="pgIncreOrderId != null and pgIncreOrderId !=''">
-        and a.pg_incre_order_id = #{pgIncreOrderId}
-    </if>
-    and a.company_wechat_id = #{companyWechatId}
+        where ((b.worker_id=#{workerId} or b.worker_number=#{workerNumber}) or a.order_status = 'DQD') and
+        a.order_status not in ('YQX','FWQX','FL','FWZT','YCGB')
+        and b.websit_id = a.websit_id
+        <if test="isYb != null and isYb == true">
+            and a.pg_incre_order_id != ''
+        </if>
+        <if test="isWb != null and isWb == true">
+            and a.rp_project_repair_id !=''
+        </if>
+        <if test="pgIncreOrderId != null and pgIncreOrderId !=''">
+            and a.pg_incre_order_id = #{pgIncreOrderId}
+        </if>
+        and a.company_wechat_id = #{companyWechatId}
 
     </select>
 
@@ -40,5 +45,39 @@
             a.create_by_id = #{userId}
             AND a.status IN ('ING', 'END')
     </select>
+    <select id="list" resultType="com.gree.mall.manager.bean.apply.WorkerInvolveApplyVO">
+        SELECT
+	    a.order_base_id,
+	    a.maintenance_price_pass,
+	    b.link_name,
+	    b.user_mobile,
+	    a.create_time,
+	    b.province,
+	    b.province_id,
+	    b.city,
+	    b.city_id,
+	    b.area,
+	    b.area_id,
+	    b.street,
+	    b.street_id,
+	    b.address
+        FROM
+	    worker_involve_apply a
+	    JOIN pg_order_base b ON a.order_base_id = b.id
+	    where 1=1
+        <if test="status != null and status.size > 0">
+            AND a.status  IN
+            <foreach item="item" index="index" collection="status" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="userId != null and userId !=''">
+            and a.user_id = #{userId}
+        </if>
+
+        <if test="value != null and value !=''">
+            and (b.user_name like concat('%',#{value},'%') or a.order_base_id like concat('%',#{value},'%') or a.address like concat('%',#{address},'%'))
+        </if>
+    </select>
 
 </mapper>

+ 58 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/apply/WorkerInvolveApplyVO.java

@@ -0,0 +1,58 @@
+package com.gree.mall.manager.bean.apply;
+
+import com.gree.mall.miniapp.plus.entity.PgOrderBase;
+import com.gree.mall.miniapp.plus.entity.WorkerInvolveApply;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.math.BigDecimal;
+
+@ApiModel
+@Data
+public class WorkerInvolveApplyVO   {
+
+    @ApiModelProperty(value = "工单编号")
+    private String orderBaseId;
+
+    @ApiModelProperty(value = "客户名称")
+    private String linkName;
+
+    @ApiModelProperty(value = "客户电话")
+    private String userMobile;
+
+    @ApiModelProperty(value = "提交时间")
+    private String createTime;
+
+
+    @ApiModelProperty(value = "申请费用")
+    private BigDecimal maintenancePricePass;
+
+
+    @ApiModelProperty(value = "省")
+    private String province;
+
+    @ApiModelProperty(value = "省id")
+    private String provinceId;
+
+    @ApiModelProperty(value = "市")
+    private String city;
+
+    @ApiModelProperty(value = "市id")
+    private String cityId;
+
+    @ApiModelProperty(value = "区")
+    private String area;
+
+    @ApiModelProperty(value = "区id")
+    private String areaId;
+
+    @ApiModelProperty(value = "街道")
+    private String street;
+
+    @ApiModelProperty(value = "街道id")
+    private String streetId;
+
+    @ApiModelProperty(value = "详细地址")
+    private String address;
+}

+ 16 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/apply/WorkerInvolvePrincipalDetail.java

@@ -0,0 +1,16 @@
+package com.gree.mall.manager.bean.apply;
+
+import com.gree.mall.manager.plus.entity.WorkerInvolvePrincipal;
+import com.gree.mall.manager.plus.entity.WorkerInvolvePrincipalItem;
+import io.swagger.annotations.ApiModel;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.List;
+@ApiModel
+@Data
+public class WorkerInvolvePrincipalDetail extends WorkerInvolvePrincipal{
+
+    @ApiModelProperty(value = "网点")
+    private List<WorkerInvolvePrincipalItem> workerInvolvePrincipalItems;
+}

+ 55 - 0
mall-server-api/src/main/java/com/gree/mall/manager/bean/apply/WorkerInvolvePrincipalVO.java

@@ -0,0 +1,55 @@
+package com.gree.mall.manager.bean.apply;
+
+import com.baomidou.mybatisplus.annotation.FieldFill;
+import com.baomidou.mybatisplus.annotation.IdType;
+import com.baomidou.mybatisplus.annotation.TableField;
+import com.baomidou.mybatisplus.annotation.TableId;
+import com.gree.mall.manager.annotation.ZfireField;
+import com.gree.mall.manager.plus.entity.WorkerInvolvePrincipal;
+import com.gree.mall.manager.plus.entity.WorkerInvolvePrincipalItem;
+import io.swagger.annotations.ApiModelProperty;
+import lombok.Data;
+
+import java.util.Date;
+
+@Data
+@ZfireField(tbName = "a")
+public class WorkerInvolvePrincipalVO   {
+
+    @ZfireField(hide = true)
+    @TableId(value = "id", type = IdType.AUTO)
+    private Integer id;
+
+    @ApiModelProperty(value = "审核负责人")
+    private String principal;
+
+    @ZfireField(tbName = "b")
+    @ApiModelProperty(value = "网点编号")
+    private String websitNumber;
+    @ZfireField(tbName = "b")
+    @ApiModelProperty(value = "网点名称")
+    private String websitName;
+    @ZfireField(tbName = "b")
+    @ApiModelProperty(value = "所属公司编号")
+    private String belongCompanyId;
+    @ZfireField(tbName = "b")
+    @ApiModelProperty(value = "所属销售公司")
+    private String belongCompany;
+
+
+    @ApiModelProperty(value = "创建人")
+    @TableField(fill = FieldFill.INSERT)
+    private String createBy;
+
+    @ApiModelProperty(value = "创建时间")
+    @TableField(fill = FieldFill.INSERT)
+    private Date createTime;
+
+    @ApiModelProperty(value = "修改时间")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private Date updateTime;
+
+    @ApiModelProperty(value = "更新人")
+    @TableField(fill = FieldFill.INSERT_UPDATE)
+    private String updateBy;
+}

+ 4 - 0
mall-server-api/src/main/java/com/gree/mall/manager/commonmapper/CommonMapper.java

@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.gree.mall.manager.bean.activity.PromotionActivityVO;
 import com.gree.mall.manager.bean.admin.AdminCompanyPayConfigVO;
+import com.gree.mall.manager.bean.apply.WorkerInvolvePrincipalVO;
 import com.gree.mall.manager.bean.charging.ChargingStandardBean;
 import com.gree.mall.manager.bean.common.AmityUrlVO;
 import com.gree.mall.manager.bean.common.CallRecordOrderVo;
@@ -761,4 +762,7 @@ public interface CommonMapper {
     IPage<WorkerElecConfirmManualVO> workerSignConfirmManualPage(Page page, @Param("ex") ZfireParamBean zfireParamBean);
 
     IPage<QualityFeedbackVO> qualityFeedbackPage(Page page, @Param("ex") ZfireParamBean zfireParamBean);
+
+    @InterceptorIgnore(tenantLine = "1", blockAttack = "1", illegalSql = "1")
+    IPage<WorkerInvolvePrincipalVO> principalPage(Page page, @Param("ex")ZfireParamBean zfireParamBean);
 }

+ 91 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/apply/PrincipalController.java

@@ -0,0 +1,91 @@
+package com.gree.mall.manager.controller.apply;
+
+import cn.hutool.core.lang.TypeReference;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.manager.annotation.ZfireList;
+import com.gree.mall.manager.bean.ExcelData;
+import com.gree.mall.manager.bean.activity.PromotionActivityBatchBean;
+import com.gree.mall.manager.bean.activity.PromotionActivityBean;
+import com.gree.mall.manager.bean.activity.PromotionActivityVO;
+import com.gree.mall.manager.bean.apply.WorkerInvolvePrincipalDetail;
+import com.gree.mall.manager.bean.apply.WorkerInvolvePrincipalVO;
+import com.gree.mall.manager.bean.es.ESGoodsVO;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.helper.ResponseHelper;
+import com.gree.mall.manager.logic.activity.PromotionActivityLogic;
+import com.gree.mall.manager.logic.apply.WorkerInvolveLogic;
+import com.gree.mall.manager.utils.excel.ExcelUtils;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
+import com.gree.mall.manager.zfire.util.FieldUtils;
+import io.swagger.annotations.Api;
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+import java.util.Date;
+
+@Slf4j
+@RestController
+@Api(value = "难度费用审批人设置", tags ={"难度费用审批人设置"} )
+@RequestMapping(value = "/principal", produces = "application/json; charset=utf-8")
+public class PrincipalController {
+
+    @Resource
+    WorkerInvolveLogic workerInvolveLogic;
+
+    @ZfireList
+    @PostMapping("/list")
+    @ApiOperation(value = "难度费用审批人设置-列表")
+    public ResponseHelper<IPage<WorkerInvolvePrincipalVO>> list(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) {
+        IPage<WorkerInvolvePrincipalVO> page = workerInvolveLogic.list(zfireParamBean);
+        return ResponseHelper.success(page, new TypeReference<WorkerInvolvePrincipalVO>() {});
+    }
+
+    @PostMapping("/list/export")
+    @ApiOperation("难度费用审批人设置-导出")
+    public void listExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        //2.查询要导出的内容
+        IPage<WorkerInvolvePrincipalVO> baseVOIPage = workerInvolveLogic.list(zfireParamBean);
+        //3.导出
+        FieldUtils.exportData(baseVOIPage.getRecords(), zfireParamBean.getExportFields(), request, response);
+    }
+
+
+    @PostMapping("/detail")
+    @ApiOperation(value = "难度费用审批人设置-详情")
+    public ResponseHelper<WorkerInvolvePrincipalDetail> detail(
+            @ApiParam(value = "id", required = true) @RequestParam String id
+    ) throws RemoteServiceException {
+        WorkerInvolvePrincipalDetail bean = workerInvolveLogic.detail(id);
+        return ResponseHelper.success(bean);
+    }
+
+    @PostMapping("/add")
+    @ApiOperation(value = "难度费用审批人设置-新增")
+    public ResponseHelper add(
+            HttpServletRequest request,
+            @RequestBody WorkerInvolvePrincipalDetail bean
+    ) throws Exception {
+        workerInvolveLogic.add(bean);
+        return ResponseHelper.success();
+    }
+
+    @PostMapping("/update")
+    @ApiOperation(value = "难度费用审批人设置-修改")
+    public ResponseHelper update(
+            @RequestBody WorkerInvolvePrincipalDetail bean
+    ) throws Exception {
+        workerInvolveLogic.update(bean);
+        return ResponseHelper.success();
+    }
+}

+ 74 - 0
mall-server-api/src/main/java/com/gree/mall/manager/controller/apply/WorkerInvolveController.java

@@ -0,0 +1,74 @@
+package com.gree.mall.manager.controller.apply;
+
+
+
+import cn.hutool.core.lang.TypeReference;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.gree.mall.manager.annotation.ZfireList;
+import com.gree.mall.manager.bean.apply.WorkerInvolveApplyVO;
+import com.gree.mall.manager.bean.apply.WorkerInvolvePrincipalDetail;
+import com.gree.mall.manager.bean.apply.WorkerInvolvePrincipalVO;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.helper.ResponseHelper;
+import com.gree.mall.manager.logic.apply.WorkerInvolveLogic;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
+import com.gree.mall.manager.zfire.util.FieldUtils;
+import io.swagger.annotations.Api;
+
+import io.swagger.annotations.ApiOperation;
+import io.swagger.annotations.ApiParam;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.web.bind.annotation.*;
+
+import javax.annotation.Resource;
+import javax.servlet.http.HttpServletRequest;
+import javax.servlet.http.HttpServletResponse;
+
+
+@Slf4j
+@RestController
+@Api(value = "难度费用申请", tags = {"难度费用申请"})
+@RequestMapping(value = "/workerApply", produces = "application/json; charset=utf-8")
+public class WorkerInvolveController {
+
+    @Resource
+    WorkerInvolveLogic workerInvolveLogic;
+
+
+
+    @ZfireList
+    @PostMapping("/list")
+    @ApiOperation(value = "难度费用申请-列表")
+    public ResponseHelper<IPage<WorkerInvolveApplyVO>> listApply(
+            @RequestBody ZfireParamBean zfireParamBean
+    ) {
+        IPage<WorkerInvolveApplyVO> page = workerInvolveLogic.listApply(zfireParamBean);
+        return ResponseHelper.success(page, new TypeReference<WorkerInvolveApplyVO>() {});
+    }
+
+    @PostMapping("/list/export")
+    @ApiOperation("难度费用申请-导出")
+    public void listExport(
+            @RequestBody ZfireParamBean zfireParamBean,
+            HttpServletRequest request,
+            HttpServletResponse response
+    ) throws Exception {
+        //2.查询要导出的内容
+        IPage<WorkerInvolveApplyVO> baseVOIPage = workerInvolveLogic.listApply(zfireParamBean);
+        //3.导出
+        FieldUtils.exportData(baseVOIPage.getRecords(), zfireParamBean.getExportFields(), request, response);
+    }
+
+
+    @PostMapping("/detail")
+    @ApiOperation(value = "难度费用审批人设置-详情")
+    public ResponseHelper<WorkerInvolvePrincipalDetail> detail(
+            @ApiParam(value = "id", required = true) @RequestParam String id
+    ) throws RemoteServiceException {
+        WorkerInvolvePrincipalDetail bean = workerInvolveLogic.detail(id);
+        return ResponseHelper.success(bean);
+    }
+
+
+}

+ 92 - 0
mall-server-api/src/main/java/com/gree/mall/manager/logic/apply/WorkerInvolveLogic.java

@@ -0,0 +1,92 @@
+package com.gree.mall.manager.logic.apply;
+
+import cn.hutool.core.bean.BeanUtil;
+import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
+import com.gree.mall.manager.bean.activity.PromotionActivityBatchBean;
+import com.gree.mall.manager.bean.admin.AdminUserCom;
+import com.gree.mall.manager.bean.apply.WorkerInvolvePrincipalDetail;
+import com.gree.mall.manager.bean.apply.WorkerInvolvePrincipalVO;
+import com.gree.mall.manager.bean.es.ESGoodsVO;
+import com.gree.mall.manager.commonmapper.CommonMapper;
+import com.gree.mall.manager.exception.RemoteServiceException;
+import com.gree.mall.manager.logic.common.CommonLogic;
+import com.gree.mall.manager.plus.entity.WorkerInvolvePrincipal;
+import com.gree.mall.manager.plus.entity.WorkerInvolvePrincipalItem;
+import com.gree.mall.manager.plus.service.WorkerInvolvePrincipalItemService;
+import com.gree.mall.manager.plus.service.WorkerInvolvePrincipalService;
+import com.gree.mall.manager.zfire.bean.ZfireParamBean;
+import com.gree.mall.manager.zfire.util.FieldUtils;
+import lombok.RequiredArgsConstructor;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.stereotype.Service;
+
+import java.util.List;
+
+@Slf4j
+@Service
+@RequiredArgsConstructor
+public class WorkerInvolveLogic {
+
+    private final CommonLogic commonLogic;
+    private final CommonMapper commonMapper;
+    private final WorkerInvolvePrincipalService workerInvolvePrincipalService;
+    private final WorkerInvolvePrincipalItemService workerInvolvePrincipalItemService;
+
+    public IPage<WorkerInvolvePrincipalVO> list(ZfireParamBean zfireParamBean) {
+
+        AdminUserCom adminUser = commonLogic.getAdminUser();
+        FieldUtils.supplyParam(zfireParamBean, WorkerInvolvePrincipalVO.class, adminUser);
+        IPage<WorkerInvolvePrincipalVO> page = commonMapper.principalPage(new Page(zfireParamBean.getPageNum(), zfireParamBean.getPageSize()), zfireParamBean);
+
+        return page;
+    }
+
+    public WorkerInvolvePrincipalDetail detail(String id) {
+        WorkerInvolvePrincipal workerInvolvePrincipal = workerInvolvePrincipalService.getById(id);
+
+        WorkerInvolvePrincipalDetail workerInvolvePrincipalDetail = BeanUtil.toBean(workerInvolvePrincipal, WorkerInvolvePrincipalDetail.class);
+
+        List<WorkerInvolvePrincipalItem> workerInvolve = workerInvolvePrincipalItemService.lambdaQuery().eq(WorkerInvolvePrincipalItem::getPrincipalId, id).list();
+
+        workerInvolvePrincipalDetail.setWorkerInvolvePrincipalItems(workerInvolve);
+
+        return workerInvolvePrincipalDetail;
+    }
+
+    public void add(WorkerInvolvePrincipalDetail bean) {
+
+        if (workerInvolvePrincipalService.lambdaQuery().eq(WorkerInvolvePrincipal::getPrincipal,bean.getId())
+        .count() > 0)
+            throw new RemoteServiceException("存在相同审批人名称");
+
+        bean.insert();
+
+        for (WorkerInvolvePrincipalItem workerInvolvePrincipalItem : bean.getWorkerInvolvePrincipalItems()) {
+            workerInvolvePrincipalItem.setPrincipalId(bean.getId());
+        }
+
+        workerInvolvePrincipalItemService.saveBatch(bean.getWorkerInvolvePrincipalItems());
+    }
+
+    public void update(WorkerInvolvePrincipalDetail bean) {
+
+
+        if (workerInvolvePrincipalService.lambdaQuery().eq(WorkerInvolvePrincipal::getPrincipal,bean.getId())
+                .ne(WorkerInvolvePrincipal::getId,bean.getId())
+                .count() > 0)
+            throw new RemoteServiceException("存在相同审批人名称");
+
+        bean.updateById();
+
+        workerInvolvePrincipalItemService.lambdaUpdate()
+                .eq(WorkerInvolvePrincipalItem::getPrincipalId,bean.getId())
+                .remove();
+
+        for (WorkerInvolvePrincipalItem workerInvolvePrincipalItem : bean.getWorkerInvolvePrincipalItems()) {
+            workerInvolvePrincipalItem.setPrincipalId(bean.getId());
+        }
+
+        workerInvolvePrincipalItemService.saveBatch(bean.getWorkerInvolvePrincipalItems());
+    }
+}

+ 18 - 0
mall-server-api/src/main/resources/mapper/CommonMapper.xml

@@ -1732,6 +1732,24 @@
         </if>
         ${ex.orderBy}
     </select>
+    <select id="principalPage" resultType="com.gree.mall.manager.bean.apply.WorkerInvolvePrincipalVO">
+        SELECT
+        ${ex.selected}
+        FROM
+        worker_involve_principal a
+        join worker_involve_principal_item b on a.id = b.principal_id
+        ${ex.query}
+        <if test="ex.adminWebsitIds != null and ex.adminWebsitIds.size > 0">
+            AND b.websit_id IN
+            <foreach item="item" index="index" collection="ex.adminWebsitIds" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
+        <if test="ex.orderBy == null or ex.orderBy ==''">
+            ORDER BY a.create_time DESC
+        </if>
+        ${ex.orderBy}
+    </select>
 
 
 </mapper>