Răsfoiți Sursa

调整审核费用订单

785834757 2 ani în urmă
părinte
comite
74533734aa

+ 1 - 1
src/main/java/com/ydtech/modules/fnc/service/impl/InsFeeAuditServiceImpl.java

@@ -136,7 +136,7 @@ public class InsFeeAuditServiceImpl extends ServiceImpl<InsFeeAuditMapper, InsFe
         //bigdecimal为null时设置为0
 //        handleBigdecimal(insFeeOrder);
         //生成保司费用(应收费用)
-        gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
+//        gene_orderIncome( order, insFeeOrderNew,insAreaCompany);
         //生成机构费用
         gene_deptfee( order, insFeeOrderNew,insAreaCompany);
         //生成分销费用

+ 1 - 1
src/main/java/com/ydtech/modules/order/dao/InsAreaCompanyMapper.java

@@ -50,7 +50,7 @@ public interface InsAreaCompanyMapper extends BaseMapper<InsAreaCompany> {
     /**
      * 获取待审核的订单
      */
-    Page<InsOrders> getPendingAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
+    Page<InsOrders> getAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
 
     Page<InsOrders> getAlreadyAuditOrders(Page page, @Param("params") OrderQueryVo orderQueryVo);
 

+ 4 - 3
src/main/java/com/ydtech/modules/order/dao/InsOrdersMapper.java

@@ -22,9 +22,10 @@ public interface InsOrdersMapper extends BaseMapper<InsOrders> {
 
     InsOrders getByUseridAndLicenseNo(VerifyOrdersVo verifyOrdersVo);
 
-    Long queryPageOrderCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo);
-
-    Page<InsOrders> queryPageOrder(@Param("page") Page page,@Param("orderQueryVo") OrderQueryVo orderQueryVo);
+    Long queryPageOrderCount(@Param("orderQueryVo") OrderQueryVo orderQueryVo,
+                             @Param("isTeamLeader") Boolean isTeamLeader,@Param("isCdy")Boolean isCdy);
+    Page<InsOrders> queryPageOrder(@Param("page") Page page,@Param("orderQueryVo") OrderQueryVo orderQueryVo,
+                                   @Param("isTeamLeader") Boolean isTeamLeader,@Param("isCdy")Boolean isCdy);
 
     List<InsOrdersExcel> queryOrderList(InsOrdersExcelVo insOrdersExcelVo);
 

+ 11 - 0
src/main/java/com/ydtech/modules/order/entity/vo/OrderQueryVo.java

@@ -36,6 +36,7 @@ public class OrderQueryVo {
     @ApiModelProperty("费用审核状态0未审核 1审核通过")
     private String auditStatus;
 
+
     @ApiModelProperty(value = "开始时间")
     @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8")
     private LocalDate startDate;
@@ -79,6 +80,11 @@ public class OrderQueryVo {
     private String agreeId;
 
 
+    @ApiModelProperty(value = "协议Id")
+    private String agreementId;
+
+
+
     @ApiModelProperty(value = "车牌号")
     private String licenseNo;
 
@@ -100,6 +106,11 @@ public class OrderQueryVo {
     @ApiModelProperty(value = "受理人工号")
     private String auditId;
 
+    @ApiModelProperty(value = "投保险种")
+    private String productId;
+
+
+
     @ApiModelProperty(value = "投保人姓名")
     private String insuredName;
 

+ 1 - 1
src/main/java/com/ydtech/modules/order/service/InsAreaCompanyService.java

@@ -87,7 +87,7 @@ public interface InsAreaCompanyService extends IService<InsAreaCompany> {
      * 查询待审核的订单
      * @return
      */
-    Page<InsOrders> getPendingAuditOrders(Page page, OrderQueryVo orderQueryVo);
+    Page<InsOrders> getAuditOrders(Page page, OrderQueryVo orderQueryVo);
 
     /**
      * 查询已审核得订单

+ 5 - 3
src/main/java/com/ydtech/modules/order/service/impl/InsAreaCompanyServiceImpl.java

@@ -140,14 +140,16 @@ public class InsAreaCompanyServiceImpl extends ServiceImpl<InsAreaCompanyMapper,
     }
 
     @Override
-    public Page<InsOrders> getPendingAuditOrders(Page page, OrderQueryVo orderQueryVo) {
+    public Page<InsOrders> getAuditOrders(Page page, OrderQueryVo orderQueryVo) {
         if(orderQueryVo.getStartDate() != null && orderQueryVo.getEndDate() != null){
             orderQueryVo.setStartDateStr(orderQueryVo.getStartDate().toString());
             orderQueryVo.setEndDateStr(orderQueryVo.getEndDate().toString());
         }
-        Page<InsOrders> pendingAuditOrders = baseMapper.getPendingAuditOrders(page, orderQueryVo);
+        Page<InsOrders> pendingAuditOrders = baseMapper.getAuditOrders(page, orderQueryVo);
         pendingAuditOrders.getRecords().forEach(item->{
-            item.setAuditStatus("0");
+            if(item.getAuditStatus() == null){
+                item.setAuditStatus("0");
+            }
         });
         return pendingAuditOrders;
     }

+ 27 - 23
src/main/java/com/ydtech/modules/order/service/impl/InsOrdersServiceImpl.java

@@ -324,24 +324,24 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     public BasePageResult<InsOrders> newQueryPageOrder(OrderQueryVo orderQueryVo) {
         Page<InsOrders> page = new Page<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize());
         page.setSearchCount(false).setOptimizeCountSql(false);//关闭count查询
-//        // 领导标志
-//        boolean isTeamLeader = false;
-//        //是否出单员标志
-//        boolean isCdy = false;
-//        if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
-//            SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
-//            if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) {
-//                //团队长可查询下面所有人员订单
-//                isTeamLeader = true;
-//            }
-//            if (19 == userRole.getRoleId()) {
-//                isCdy = true;
-//            }
-//        }
+        // 领导标志
+        boolean isTeamLeader = false;
+        //是否出单员标志
+        boolean isCdy = false;
+        if (StringUtils.isNotEmpty(orderQueryVo.getUserId())) {
+            SysUserRole userRole = sysUserRoleService.selectByUserId(orderQueryVo.getUserId());
+            if (Arrays.asList(SystemConstant.getSysRoleTeamLeader()).contains(userRole.getRoleId().toString())) {
+                //团队长可查询下面所有人员订单
+                isTeamLeader = true;
+            }
+            if (19 == userRole.getRoleId()) {
+                isCdy = true;
+            }
+        }
         orderQueryVo.setEndDate(orderQueryVo.getEndDatePlusOneDay());
 
-        Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page, orderQueryVo);
-        Long total = baseMapper.queryPageOrderCount(orderQueryVo);
+        Page<InsOrders> orderVoPage = baseMapper.queryPageOrder(page, orderQueryVo, isTeamLeader, isCdy);
+        Long total = baseMapper.queryPageOrderCount(orderQueryVo, isTeamLeader, isCdy);
         orderVoPage.setTotal(total);
         return new BasePageResult<>(orderQueryVo.getPageNum(), orderQueryVo.getPageSize(), orderVoPage.getTotal(),
                 orderVoPage.getPages()
@@ -375,17 +375,13 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
         //查询未审核
         if(orderQueryVo.getAuditStatus() == null)
             orderQueryVo.setAuditStatus("0"); //默认查询未审核
-        if (orderQueryVo.getAuditStatus().equals("0")) {
-            resultOrders = insAreaCompanyService.getPendingAuditOrders(page, orderQueryVo);
-        } else{
-            //已审核
-            resultOrders = insAreaCompanyService.getAlreadyAuditOrders(page, orderQueryVo);
-        }
+        resultOrders = insAreaCompanyService.getAuditOrders(page, orderQueryVo);
+
         //查找机构来源字典 遍历
         Map<String, DictionaryManagement> m = DictEnumConfig.getDmMap();
         DictionaryManagement organizationSource = m.get("organizationSource");
         resultOrders.getRecords().forEach(item->{
-            DictionaryData dictionaryData = organizationSource.getDdList().stream().filter(x -> x.getDictValue().equals(item.getManagementSource())).findFirst().get();
+            DictionaryData dictionaryData = organizationSource.getDdList().stream().filter(x -> x.getDictValue().equals(item.getManagementSource())).findFirst().orElse(null);
             if(dictionaryData != null){
                 item.setManagementSource(dictionaryData.getDictTag());
             }
@@ -618,6 +614,14 @@ public class InsOrdersServiceImpl extends ServiceImpl<InsOrdersMapper, InsOrders
     public HttpResult<OrderVo> getByCompanyId(@NotBlank(message = "子订单不能为空") String companyId, String userId) {
         OrderVo orderAndAreaCompany = baseMapper.getOrderAndAreaCompany(companyId);
 
+        //计算今年应缴税
+        JSONArray vehicleAndVesselTaxs = orderAndAreaCompany.getTaxArrears();
+        if(vehicleAndVesselTaxs != null && !vehicleAndVesselTaxs.isEmpty()) {
+            JSONObject vehicleAndVesselTax = vehicleAndVesselTaxs.getJSONObject(0);
+            vehicleAndVesselTax.put("dayYearTax", orderAndAreaCompany.getTaxamount().subtract(vehicleAndVesselTax.getBigDecimal("taxDefault")
+                    .subtract(vehicleAndVesselTax.getBigDecimal("lateFee"))));
+        }
+
         YaExtendInfoDto yaExtendInfoDto = new YaExtendInfoDto();
         // 永安财险
         if (InsuranceEnum.YAIC.getCode().equals(orderAndAreaCompany.getCompanyId().substring(0, 4))) {

+ 68 - 65
src/main/resources/mapper/modules/order/InsAreaCompanyMapper.xml

@@ -103,12 +103,12 @@
         SELECT iac.*, pa.agreement_name
         FROM ins_area_company as iac
                  left join ptl_agreement as pa on pa.id = iac.agreement_id
-        WHERE iac.orderstatus = 3 and orderno = #{orderNo};
+        WHERE iac.orderstatus = 3
+          and orderno = #{orderNo};
     </select>
 
 
-
-    <select id="queryLatestStatus"  resultType="java.lang.String">
+    <select id="queryLatestStatus" resultType="java.lang.String">
         SELECT iac.orderstatus
         FROM ins_area_company as iac
                  INNER JOIN (SELECT company_id, max(createtime) AS max_createtime
@@ -120,51 +120,42 @@
         ORDER BY orderstatus DESC
         LIMIT 1
     </select>
-    <select id="getorDerIds"    resultType="com.ydtech.modules.order.entity.InsAreaCompany">
-        SELECT
-            a.id  as  "id" ,
-            a.orderno as  "orderno"
-        FROM
-            ins_area_company a
-                LEFT JOIN ins_fee_order_new b ON  a.id =b.ins_order_no
-        WHERE
-            a.orderstatus = '3' or a.orderstatus = '2'
-            and  b.id is not  null
+    <select id="getorDerIds" resultType="com.ydtech.modules.order.entity.InsAreaCompany">
+        SELECT a.id      as "id",
+               a.orderno as "orderno"
+        FROM ins_area_company a
+                 LEFT JOIN ins_fee_order_new b ON a.id = b.ins_order_no
+        WHERE a.orderstatus = '3'
+           or a.orderstatus = '2'
+            and b.id is not null
     </select>
 
-    <select id="getPendingAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
+    <select id="getAuditOrders" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
         io.*,
         sd.management_source,
         su2.name AS auditUser,
-        ifa.audittime as auditTime
+        ifa.audittime as auditTime,
+        ifa.auditstatus as auditStatus
         FROM
         ins_orders io
         LEFT JOIN ins_fee_audit ifa ON ifa.orderno = io.orderno
         LEFT JOIN sys_user su ON su.id = io.userid
         LEFT JOIN sys_dept sd ON sd.id = su.dept_id
-        LEFT JOIN sys_user su2 on ifa.audituser = su2.id
-        WHERE
-        io.orderno IN (
-        SELECT
-        orderno
-        FROM
-        ins_area_company
-        WHERE
-        id IN (
-        SELECT
-        ifon.ins_order_no
-        FROM
-        ins_fee_order_new ifon
-        RIGHT JOIN ins_fee_audit ifa ON ifon.ins_order_no = ifa.ins_order_no
+        LEFT JOIN sys_user su2 ON ifa.audituser = su2.id
+        LEFT JOIN ins_area_company iac ON iac.orderno = io.orderno and iac.orderstatus = 3
         WHERE
-        ifa.auditstatus = #{params.auditStatus}
-        )
-        )
-        AND orderstatus = 3
-<!--        <if test="params.orderNo != null and params.orderNo != ''">-->
-<!--            AND orderno = #{params.orderNo}-->
-<!--        </if>-->
+        io.orderno IN ( SELECT orderno FROM ins_area_company WHERE id IN (
+        SELECT ins_order_no FROM ins_fee_order_new
+        WHERE ins_order_no
+        <if test="params.auditStatus != null and params.auditStatus == 0">
+            NOT
+        </if>
+        IN ( SELECT ins_order_no FROM ins_fee_audit) ) AND orderstatus = 3 )
+        AND io.orderstatus = 3
+        <if test="params.orderNo != null and params.orderNo != ''">
+            AND io.orderno = #{params.orderNo}
+        </if>
         <if test="params.licenseNo != null and params.licenseNo != ''">
             AND licenseno = #{params.licenseNo}
         </if>
@@ -177,6 +168,18 @@
         <if test="params.companyId != null and params.companyId != ''">
             AND company_id = #{params.companyId}
         </if>
+        <if test="params.engineNo != null and params.engineNo != ''">
+            AND engineno = #{params.engineNo}
+        </if>
+        <if test="params.productId != null and params.productId != ''">
+            AND product_id = #{params.productId}
+        </if>
+        <if test="params.quoteStartDateStr != null and params.quoteStartDateStr != ''">
+            AND iac.createtime BETWEEN #{params.quoteStartDateStr} and #{params.quoteEndDateStr}
+        </if>
+        <if test="params.attachStartDateStr != null and params.attachStartDateStr != ''">
+            AND iac.signing_time BETWEEN #{params.attachStartDateStr} and #{params.attachEndDateStr}
+        </if>
         <if test="params.startDateStr != null and params.startDateStr != ''">
             AND createtime BETWEEN #{params.startDateStr} and #{params.endDateStr}
         </if>
@@ -199,7 +202,7 @@
         AND orderstatus = 3
         )
         AND
-        orderstatus= 3
+        io.orderstatus= 3
         <if test="orderNo != null and orderNo != ''">
             AND orderno = #{orderNo}
         </if>
@@ -225,10 +228,10 @@
 
     <select id="selectFirstPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-        sum(a.first_detail_premiums) as  "willFirstPremiums"
+        sum(a.first_detail_premiums) as "willFirstPremiums"
         FROM
-        ins_fee_order_new  a
-        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
         WHERE
         a.id NOT IN (
         SELECT
@@ -236,28 +239,28 @@
         FROM
         ins_fee_audit
         )
-        AND   iac.orderstatus =3
+        AND iac.orderstatus =3
         <if test="firstUserId != null and firstUserId != ''">
-             AND  a.first_level_user_id = #{firstUserId}
+            AND a.first_level_user_id = #{firstUserId}
         </if>
         <if test="secondUserId != null and secondUserId != ''">
-             AND  a.two_level_user_id = #{secondUserId}
+            AND a.two_level_user_id = #{secondUserId}
         </if>
 
         <if test="thirdUserId != null and thirdUserId != ''">
-             AND  a.three_level_user_id = #{thirdUserId}
+            AND a.three_level_user_id = #{thirdUserId}
         </if>
 
-         <if test="id != null and id != ''">
-             AND  a.id = #{id}
+        <if test="id != null and id != ''">
+            AND a.id = #{id}
         </if>
     </select>
     <select id="selectSecondPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-        sum(a.second_detail_premiums) as  "willSecondPremiums"
+        sum(a.second_detail_premiums) as "willSecondPremiums"
         FROM
-        ins_fee_order_new  a
-        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
         WHERE
         a.id NOT IN (
         SELECT
@@ -265,29 +268,29 @@
         FROM
         ins_fee_audit
         )
-        AND   iac.orderstatus =3
+        AND iac.orderstatus =3
         <if test="firstUserId != null and firstUserId != ''">
-             AND  a.first_level_user_id = #{firstUserId}
+            AND a.first_level_user_id = #{firstUserId}
         </if>
         <if test="secondUserId != null and secondUserId != ''">
-             AND  a.two_level_user_id = #{secondUserId}
+            AND a.two_level_user_id = #{secondUserId}
         </if>
 
         <if test="thirdUserId != null and thirdUserId != ''">
-             AND  a.three_level_user_id = #{thirdUserId}
+            AND a.three_level_user_id = #{thirdUserId}
         </if>
         <if test="id != null and id != ''">
-            AND  a.id = #{id}
+            AND a.id = #{id}
         </if>
 
     </select>
     <select id="selectThirdPromotionBy" resultType="com.ydtech.modules.order.entity.InsOrders">
         SELECT
-        sum(a.third_detail_premiums) as  "willThreePremiums"
+        sum(a.third_detail_premiums) as "willThreePremiums"
 
         FROM
-        ins_fee_order_new  a
-        LEFT JOIN  ins_area_company  iac  on  iac.id=a.ins_order_no
+        ins_fee_order_new a
+        LEFT JOIN ins_area_company iac on iac.id=a.ins_order_no
         WHERE
         a.id NOT IN (
         SELECT
@@ -295,19 +298,19 @@
         FROM
         ins_fee_audit
         )
-        AND   iac.orderstatus =3
+        AND iac.orderstatus =3
         <if test="firstUserId != null and firstUserId != ''">
-             AND  a.first_level_user_id = #{firstUserId}
+            AND a.first_level_user_id = #{firstUserId}
         </if>
         <if test="secondUserId != null and secondUserId != ''">
-             AND  a.two_level_user_id = #{secondUserId}
+            AND a.two_level_user_id = #{secondUserId}
         </if>
 
         <if test="thirdUserId != null and thirdUserId != ''">
-             AND  a.three_level_user_id = #{thirdUserId}
+            AND a.three_level_user_id = #{thirdUserId}
         </if>
         <if test="id != null and id != ''">
-            AND  a.id = #{id}
+            AND a.id = #{id}
         </if>
 
     </select>
@@ -343,9 +346,9 @@
         )
         )
         AND orderstatus = 3
-<!--        <if test="params.orderNo != null and params.orderNo != ''">-->
-<!--            AND orderno = #{params.orderNo}-->
-<!--        </if>-->
+        <!--        <if test="params.orderNo != null and params.orderNo != ''">-->
+        <!--            AND orderno = #{params.orderNo}-->
+        <!--        </if>-->
         <if test="params.licenseNo != null and params.licenseNo != ''">
             AND licenseno = #{params.licenseNo}
         </if>