修改提交
This commit is contained in:
parent
e4b52e8ba1
commit
8a843904e0
|
|
@ -74,7 +74,6 @@ public class CarBalanceController {
|
||||||
public PageInfo<CarBalancePlanVo> getPayCarPlanList(EncryptedReq<CarBalancePlanVo> dto) {
|
public PageInfo<CarBalancePlanVo> getPayCarPlanList(EncryptedReq<CarBalancePlanVo> dto) {
|
||||||
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
|
PageHelper.startPage(dto.getPageNum(), dto.getPageSize());
|
||||||
List<CarBalancePlanVo> list = service.getPayCarPlanList(dto.getData());
|
List<CarBalancePlanVo> list = service.getPayCarPlanList(dto.getData());
|
||||||
;
|
|
||||||
return new PageInfo<>(list);
|
return new PageInfo<>(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -39,9 +39,12 @@
|
||||||
<!--查询 供应商集合-->
|
<!--查询 供应商集合-->
|
||||||
<select id="getSupPageList" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
<select id="getSupPageList" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
||||||
select
|
select
|
||||||
cpo.id,cpo.apply_id applyId ,cpo.sup_id supId,count(1) num ,cs.name supName ,slt.money payMoney,
|
cpo.id,cpo.apply_id applyId ,cpo.sup_id supId,count(1) num ,cs.name supName ,
|
||||||
SUM(cpo.money)-slt.money noPayMoney,
|
IFNULL(CAST(slt.money AS DECIMAL(18,2)), 0) payMoney,
|
||||||
plan.planNum,pro.proNum,SUM(cpo.money) money,sum(cpo.dispatch_num) carNum,
|
CAST(SUM(CAST(cpo.money AS DECIMAL(18,2))) AS DECIMAL(18,2)) - IFNULL(CAST(slt.money AS DECIMAL(18,2)), 0) noPayMoney,
|
||||||
|
plan.planNum,pro.proNum,
|
||||||
|
CAST(SUM(CAST(cpo.money AS DECIMAL(18,2))) AS DECIMAL(18,2)) money,
|
||||||
|
sum(cpo.dispatch_num) carNum,
|
||||||
if(CURRENT_DATE() BETWEEN cc.start_time and cc.end_time,'已生效', if(CURRENT_DATE() < cc.start_time,'未生效','已失效')) status
|
if(CURRENT_DATE() BETWEEN cc.start_time and cc.end_time,'已生效', if(CURRENT_DATE() < cc.start_time,'未生效','已失效')) status
|
||||||
from
|
from
|
||||||
car_plan_out cpo
|
car_plan_out cpo
|
||||||
|
|
@ -54,7 +57,7 @@
|
||||||
left join(
|
left join(
|
||||||
SELECT count(distinct cpa.pro_id ) proNum ,cpas.sup_id from car_plan_apply_sup cpas left join car_plan_apply cpa on cpa.id = cpas.apply_id GROUP BY cpas.sup_id ) pro on pro.sup_id=cpo.sup_id
|
SELECT count(distinct cpa.pro_id ) proNum ,cpas.sup_id from car_plan_apply_sup cpas left join car_plan_apply cpa on cpa.id = cpas.apply_id GROUP BY cpas.sup_id ) pro on pro.sup_id=cpo.sup_id
|
||||||
where
|
where
|
||||||
cpo.`status` = 1
|
cpo.`status` = 2
|
||||||
<if test="keyWord!=null and keyWord!=''">
|
<if test="keyWord!=null and keyWord!=''">
|
||||||
and cs.name like concat('%',#{keyWord},'%')
|
and cs.name like concat('%',#{keyWord},'%')
|
||||||
</if>
|
</if>
|
||||||
|
|
@ -64,11 +67,13 @@
|
||||||
|
|
||||||
<select id="getPayCarPlanList" resultType="com.bonus.gzcar.business.backstage.entity.CarBalancePlanVo">
|
<select id="getPayCarPlanList" resultType="com.bonus.gzcar.business.backstage.entity.CarBalancePlanVo">
|
||||||
select cpa.id,cpa.`code`,cpa.pro_id proId,pro.`name` proName ,cpa.dispatch_num dispatchNum,
|
select cpa.id,cpa.`code`,cpa.pro_id proId,pro.`name` proName ,cpa.dispatch_num dispatchNum,
|
||||||
cpa.need_num needNum ,cpa.type ,cs.`name` supName ,sum(cpo.money) money,cpa.remark,
|
cpa.need_num needNum ,cpa.type ,cs.`name` supName ,
|
||||||
|
CAST(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) money,
|
||||||
|
cpa.remark,
|
||||||
cpa.dispatch_day lastDay,cpa.user_name userName
|
cpa.dispatch_day lastDay,cpa.user_name userName
|
||||||
FROM car_plan_apply cpa
|
FROM car_plan_apply cpa
|
||||||
LEFT JOIN car_slt_plan csp on csp.plan_id=cpa.id
|
LEFT JOIN car_slt_plan csp on csp.plan_id=cpa.id
|
||||||
left join car_plan_out cpo on cpa.id=cpo.apply_id AND cpo.status=1
|
left join car_plan_out cpo on cpa.id=cpo.apply_id AND cpo.status=2
|
||||||
left join car_plan_apply_sup cpas on cpas.apply_id=cpa.id
|
left join car_plan_apply_sup cpas on cpas.apply_id=cpa.id
|
||||||
left join car_supplier cs on cpas.sup_id=cs.id
|
left join car_supplier cs on cpas.sup_id=cs.id
|
||||||
left join bm_project pro on pro.id=cpa.pro_id
|
left join bm_project pro on pro.id=cpa.pro_id
|
||||||
|
|
@ -121,7 +126,7 @@
|
||||||
left join car_plan_apply cpa on cpo.apply_id=cpa.id
|
left join car_plan_apply cpa on cpo.apply_id=cpa.id
|
||||||
LEFT JOIN car_supplier cs on cpo.sup_id=cs.id
|
LEFT JOIN car_supplier cs on cpo.sup_id=cs.id
|
||||||
left join bm_project pro on pro.id=cpa.pro_id
|
left join bm_project pro on pro.id=cpa.pro_id
|
||||||
where cpo.sup_id=#{supId} and cpo.status=1
|
where cpo.sup_id=#{supId} and cpo.status=2
|
||||||
<if test="keyWord!=null and keyWord!=''">
|
<if test="keyWord!=null and keyWord!=''">
|
||||||
and (
|
and (
|
||||||
cpa.`code` like concat('%',#{keyWord},'%') or
|
cpa.`code` like concat('%',#{keyWord},'%') or
|
||||||
|
|
@ -164,7 +169,7 @@
|
||||||
<select id="getOutIdByPlanId" resultType="java.lang.String">
|
<select id="getOutIdByPlanId" resultType="java.lang.String">
|
||||||
SELECT id
|
SELECT id
|
||||||
from car_plan_out
|
from car_plan_out
|
||||||
where apply_id=#{planId} AND status=1
|
where apply_id=#{planId} AND status=2
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -4,38 +4,59 @@
|
||||||
<mapper namespace="com.bonus.gzcar.business.backstage.mapper.CarStatisticsMapper">
|
<mapper namespace="com.bonus.gzcar.business.backstage.mapper.CarStatisticsMapper">
|
||||||
|
|
||||||
<select id="getSltPageListBySupId" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
<select id="getSltPageListBySupId" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
||||||
SELECT cpo.id, cpa.`code` ,cpo.sup_id supId ,cpo.apply_id planId ,sum(cpo.dispatch_num) carNum ,sum(cpo.money) money ,sum(IFNULL(csp.money,0)) payMoney ,
|
SELECT
|
||||||
if(csp.id is null,'未付','已付') status,pro.name proName ,cs.name supName ,cpo.type,
|
cpo.id,
|
||||||
sum(cpo.money)-sum(IFNULL(csp.money,0)) noPayMoney,cpo.manager ,cpo.create_time jbTime ,csa.create_time fkTime
|
cpa.`code`,
|
||||||
from car_plan_out cpo
|
cpo.sup_id supId,
|
||||||
|
cpo.apply_id planId,
|
||||||
|
SUM(cpo.dispatch_num) carNum,
|
||||||
|
-- 金额转DECIMAL保证精度,处理NULL值
|
||||||
|
CAST(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) money,
|
||||||
|
CAST(SUM(IFNULL(CAST(csp.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) payMoney,
|
||||||
|
IF(csp.id IS NULL,'未付','已付') status,
|
||||||
|
pro.name proName,
|
||||||
|
IFNULL(cs.name, '-') supName,
|
||||||
|
cpo.type,
|
||||||
|
-- 基于DECIMAL做减法,避免精度丢失
|
||||||
|
CAST(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)) - SUM(IFNULL(CAST(csp.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) noPayMoney,
|
||||||
|
cpo.manager,
|
||||||
|
cpo.create_time jbTime,
|
||||||
|
csa.create_time fkTime
|
||||||
|
FROM car_plan_out cpo
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT sum(money) money,csd.out_id id,csd.slt_id
|
SELECT
|
||||||
from car_slt_details csd
|
CAST(SUM(CAST(money AS DECIMAL(18,2))) AS DECIMAL(18,2)) money,
|
||||||
|
csd.out_id id,
|
||||||
|
csd.slt_id
|
||||||
|
FROM car_slt_details csd
|
||||||
GROUP BY csd.out_id
|
GROUP BY csd.out_id
|
||||||
) csp on csp.id=cpo.id
|
) csp ON csp.id = cpo.id
|
||||||
left join car_slt_apply csa on csa.id=csp.slt_id
|
LEFT JOIN car_slt_apply csa ON csa.id = csp.slt_id
|
||||||
left join car_plan_apply cpa on cpo.apply_id=cpa.id
|
LEFT JOIN car_plan_apply cpa ON cpo.apply_id = cpa.id
|
||||||
LEFT JOIN car_supplier cs on cpo.sup_id=cs.id
|
LEFT JOIN car_supplier cs ON cpo.sup_id = cs.id
|
||||||
left join bm_project pro on pro.id=cpa.pro_id
|
LEFT JOIN bm_project pro ON pro.id = cpa.pro_id
|
||||||
where 1=1 and cpo.status=2 and cpo.file_status=1
|
WHERE 1=1 AND cpo.status=2 AND cpo.file_status=1
|
||||||
<if test="supName!=null and supName!=''">
|
<if test="supName!=null and supName!=''">
|
||||||
and cs.name like concat('%',#{supName},'%')
|
AND cs.name LIKE concat('%',#{supName},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="code!=null and code!=''">
|
<if test="code!=null and code!=''">
|
||||||
and cpa.`code` like concat('%',#{code},'%')
|
AND cpa.`code` LIKE concat('%',#{code},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="proName!=null and proName!=''">
|
<if test="proName!=null and proName!=''">
|
||||||
and pro.name like concat('%',#{proName},'%')
|
AND pro.name LIKE concat('%',#{proName},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="status!=null and status!=''">
|
<if test="status!=null and status!=''">
|
||||||
<if test='status=="1"'>
|
<if test='status=="1"'>
|
||||||
and csp.id is not null
|
AND csp.id IS NOT NULL
|
||||||
</if>
|
</if>
|
||||||
<if test='status=="0"'>
|
<if test='status=="0"'>
|
||||||
and csp.id is null
|
AND csp.id IS NULL
|
||||||
</if>
|
</if>
|
||||||
</if>
|
</if>
|
||||||
GROUP BY cpo.apply_id
|
GROUP BY
|
||||||
|
cpo.apply_id, cpo.id, cpa.`code`, cpo.sup_id,
|
||||||
|
csp.id, pro.name, cs.name, cpo.type,
|
||||||
|
cpo.manager, cpo.create_time, csa.create_time
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
<select id="getProNum" resultType="java.lang.Integer">
|
<select id="getProNum" resultType="java.lang.Integer">
|
||||||
|
|
@ -57,70 +78,101 @@
|
||||||
<select id="getMoney" resultType="java.lang.String">
|
<select id="getMoney" resultType="java.lang.String">
|
||||||
SELECT IFNULL(SUM(money),0) money
|
SELECT IFNULL(SUM(money),0) money
|
||||||
FROM car_plan_out
|
FROM car_plan_out
|
||||||
where status=1
|
where status=2
|
||||||
UNION all
|
UNION all
|
||||||
SELECT IFNULL(SUM(money),0)
|
SELECT IFNULL(SUM(money),0)
|
||||||
FROM car_slt_plan csp
|
FROM car_slt_plan csp
|
||||||
</select>
|
</select>
|
||||||
<select id="getSltPageListByCompany" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
<select id="getSltPageListByCompany" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
||||||
SELECT count(1) porNum ,pro.bmname ,IFNULL(info.planNum,0) planNum,
|
SELECT
|
||||||
IFNULL(info.carnum,0) carNum,IFNULL(info.needNum ,0) needNum,IFNULL(info.payMoney,0) payMoney
|
COUNT(1) porNum,
|
||||||
,IFNULL(info.money,0) money,IFNULL(info.noPayMoney,0) noPayMoney,
|
bc.NAME bmname,
|
||||||
IFNULL(info.needNum ,0)- IFNULL(info.carnum,0) dpcNum
|
IFNULL(info.planNum, 0) planNum,
|
||||||
|
IFNULL(info.carnum, 0) carNum,
|
||||||
|
IFNULL(info.needNum, 0) needNum,
|
||||||
|
-- 金额字段转DECIMAL并处理NULL
|
||||||
|
IFNULL(CAST(info.payMoney AS DECIMAL(18,2)), 0) payMoney,
|
||||||
|
IFNULL(CAST(info.money AS DECIMAL(18,2)), 0) money,
|
||||||
|
IFNULL(CAST(info.noPayMoney AS DECIMAL(18,2)), 0) noPayMoney,
|
||||||
|
-- 数量差值保留原始类型,金额单独处理精度
|
||||||
|
IFNULL(info.dpcNum,0) dpcNum
|
||||||
FROM bm_project pro
|
FROM bm_project pro
|
||||||
left join(
|
LEFT JOIN bm_company bc ON bc.id = pro.COMPANY_ID
|
||||||
select count(1) planNum ,pro.bmname,sum(cpa.dispatch_num)carnum ,sum(cpa.need_num) needNum,sum(IFNULL( csp.money,0)) payMoney,
|
LEFT JOIN (
|
||||||
sum(IFNULL( cpo.money,0)) money,sum(IFNULL( cpo.money,0)) - sum(IFNULL( csp.money,0)) noPayMoney
|
SELECT
|
||||||
|
COUNT(1) planNum,
|
||||||
|
pro.COMPANY_ID,
|
||||||
|
SUM(cpa.dispatch_num) carnum,
|
||||||
|
SUM(cpa.need_num) needNum,
|
||||||
|
SUM(IF(cpa.need_num < cpa.dispatch_num,0,cpa.need_num-cpa.dispatch_num)) dpcNum,
|
||||||
|
-- 子查询内先转DECIMAL再SUM,处理NULL为0
|
||||||
|
CAST(SUM(IFNULL(CAST(csp.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) payMoney,
|
||||||
|
CAST(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) money,
|
||||||
|
-- 减法运算基于DECIMAL类型,避免精度丢失
|
||||||
|
CAST(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)) - SUM(IFNULL(CAST(csp.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) noPayMoney
|
||||||
FROM car_plan_apply cpa
|
FROM car_plan_apply cpa
|
||||||
left join car_plan_apply_sup cpas on cpas.apply_id=cpa.id
|
LEFT JOIN car_plan_apply_sup cpas ON cpas.apply_id = cpa.id
|
||||||
left join(
|
LEFT JOIN (
|
||||||
SELECT sum(money) money, cpo.apply_id
|
-- 内层子查询同样处理金额精度
|
||||||
from car_plan_out cpo
|
SELECT
|
||||||
where cpo.status=1
|
CAST(SUM(CAST(money AS DECIMAL(18,2))) AS DECIMAL(18,2)) money,
|
||||||
|
cpo.apply_id
|
||||||
|
FROM car_plan_out cpo
|
||||||
|
WHERE cpo.status = 2
|
||||||
GROUP BY cpo.apply_id
|
GROUP BY cpo.apply_id
|
||||||
) cpo on cpo.apply_id=cpas.apply_id
|
) cpo ON cpo.apply_id = cpas.apply_id
|
||||||
left join car_slt_plan csp on csp.plan_id=cpas.apply_id
|
LEFT JOIN car_slt_plan csp ON csp.plan_id = cpas.apply_id
|
||||||
left join bm_project pro on pro.id=cpa.pro_id
|
LEFT JOIN bm_project pro ON pro.id = cpa.pro_id
|
||||||
where cpa.status_type=1
|
WHERE cpa.status_type = 1
|
||||||
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!=''">
|
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!=''">
|
||||||
and DATE_FORMAT(cpa.create_time,'%Y-%m-%d')
|
AND DATE_FORMAT(cpa.create_time,'%Y-%m-%d')
|
||||||
between DATE_FORMAT(#{startTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d')
|
BETWEEN DATE_FORMAT(#{startTime},'%Y-%m-%d') AND DATE_FORMAT(#{endTime},'%Y-%m-%d')
|
||||||
</if>
|
</if>
|
||||||
GROUP BY pro.bmname
|
GROUP BY pro.COMPANY_ID
|
||||||
) info on pro.bmname=info.bmname
|
) info ON pro.COMPANY_ID = info.COMPANY_ID
|
||||||
left join(
|
LEFT JOIN (
|
||||||
SELECT distinct pro_id
|
SELECT DISTINCT pro_id
|
||||||
FROM car_plan_apply cpa
|
FROM car_plan_apply cpa
|
||||||
WHERE status_type = 1
|
WHERE status_type = 1
|
||||||
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!=''">
|
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!=''">
|
||||||
and DATE_FORMAT(cpa.create_time,'%Y-%m-%d')
|
AND DATE_FORMAT(cpa.create_time,'%Y-%m-%d')
|
||||||
between DATE_FORMAT(#{startTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d')
|
BETWEEN DATE_FORMAT(#{startTime},'%Y-%m-%d') AND DATE_FORMAT(#{endTime},'%Y-%m-%d')
|
||||||
</if>
|
</if>
|
||||||
) cp on cp.pro_id=pro.bid_id
|
) cp ON cp.pro_id = pro.bid_id
|
||||||
where cp.pro_id is not null
|
WHERE cp.pro_id IS NOT NULL
|
||||||
|
GROUP BY pro.COMPANY_ID, bc.NAME
|
||||||
|
|
||||||
|
|
||||||
GROUP BY pro.bmname
|
|
||||||
</select>
|
</select>
|
||||||
<select id="getSltPageListByBmName" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
<select id="getSltPageListByBmName" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
||||||
SELECT pro.name proName,count(cpa.id) planNum ,sum(cpa.need_num) needNum ,sum(cpa.dispatch_num) carNum ,cpa.pro_id proId,
|
SELECT
|
||||||
sum(cpa.need_num)-sum(cpa.dispatch_num) dpcNum ,IFNULL(sum(cpo.money),0) money ,IFNULL(sum(csp.money),0) payMoney ,
|
pro.name proName,
|
||||||
IFNULL(sum(cpo.money),0)-IFNULL(sum(csp.money),0) noPayMoney
|
COUNT(cpa.id) planNum,
|
||||||
from car_plan_apply cpa
|
SUM(cpa.need_num) needNum,
|
||||||
|
SUM(cpa.dispatch_num) carNum,
|
||||||
|
cpa.pro_id proId,
|
||||||
|
SUM(IF(cpa.need_num < cpa.dispatch_num,0,cpa.need_num-cpa.dispatch_num)) dpcNum,
|
||||||
|
IFNULL(CAST(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)), 0) money,
|
||||||
|
IFNULL(CAST(SUM(IFNULL(CAST(csp.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)), 0) payMoney,
|
||||||
|
CAST(IFNULL(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)), 0) - IFNULL(SUM(IFNULL(CAST(csp.money AS DECIMAL(18,2)), 0)), 0) AS DECIMAL(18,2)) noPayMoney
|
||||||
|
FROM car_plan_apply cpa
|
||||||
LEFT JOIN(
|
LEFT JOIN(
|
||||||
SELECT sum(money) money,apply_id
|
SELECT
|
||||||
from car_plan_out cpo
|
CAST(SUM(CAST(money AS DECIMAL(18,2))) AS DECIMAL(18,2)) money,
|
||||||
where cpo.status=1
|
apply_id
|
||||||
|
FROM car_plan_out cpo
|
||||||
|
WHERE cpo.status=2
|
||||||
GROUP BY apply_id
|
GROUP BY apply_id
|
||||||
) cpo on cpo.apply_id=cpa.id
|
) cpo on cpo.apply_id=cpa.id
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT sum(money) money,csd.plan_id id,csd.slt_id
|
SELECT
|
||||||
from car_slt_details csd
|
CAST(SUM(CAST(money AS DECIMAL(18,2))) AS DECIMAL(18,2)) money,
|
||||||
|
csd.plan_id id,
|
||||||
|
csd.slt_id
|
||||||
|
FROM car_slt_details csd
|
||||||
GROUP BY csd.plan_id
|
GROUP BY csd.plan_id
|
||||||
) csp on csp.id=cpa.id
|
) csp on csp.id=cpa.id
|
||||||
left join bm_project pro on pro.id=cpa.pro_id
|
LEFT JOIN bm_project pro on pro.id=cpa.pro_id
|
||||||
WHERE pro.bmname=#{bmname} and cpa.status_type=1
|
LEFT JOIN bm_company bc on bc.id=pro.COMPANY_ID
|
||||||
|
WHERE bc.NAME=#{bmname} and cpa.status_type=1
|
||||||
<if test="proName!=null and proName!=''">
|
<if test="proName!=null and proName!=''">
|
||||||
and pro.name like concat('%',#{proName},'%')
|
and pro.name like concat('%',#{proName},'%')
|
||||||
</if>
|
</if>
|
||||||
|
|
@ -128,39 +180,55 @@
|
||||||
and DATE_FORMAT(cpa.create_time,'%Y-%m-%d')
|
and DATE_FORMAT(cpa.create_time,'%Y-%m-%d')
|
||||||
between DATE_FORMAT(#{startTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d')
|
between DATE_FORMAT(#{startTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d')
|
||||||
</if>
|
</if>
|
||||||
GROUP BY cpa.pro_id
|
GROUP BY cpa.pro_id, pro.name
|
||||||
</select>
|
</select>
|
||||||
<select id="getSltPageListByPro" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
<select id="getSltPageListByPro" resultType="com.bonus.gzcar.business.backstage.entity.CarBalanceVo">
|
||||||
SELECT cpa.`code` ,cpo.sup_id supId ,cpa.id planId ,IFNULL(sum(cpo.dispatch_num),0) carNum ,IFNULL(sum(cpo.money) ,0)money ,
|
SELECT
|
||||||
sum(IFNULL(csp.money,0)) payMoney ,IF(cpa.apply_type=0,'需求计划审批','紧急及内部用车') typeName ,
|
cpa.`code`,
|
||||||
if(csp.id is null,'未付','已付') status,pro.name proName ,IFNULL(cs.name,'-') supName ,cpa.type,
|
cpo.sup_id supId,
|
||||||
IFNULL( sum(cpo.money)-sum(IFNULL(csp.money,0)),0) noPayMoney,cpa.need_num needNum,
|
cpa.id planId,
|
||||||
cpa.need_num- IFNULL(sum(cpo.dispatch_num),0) dpcNum
|
IFNULL(SUM(cpo.dispatch_num), 0) carNum,
|
||||||
from car_plan_apply cpa
|
-- 金额字段转DECIMAL并处理NULL,保证精度
|
||||||
left join car_plan_out cpo on cpo.apply_id=cpa.id AND cpo.status=1
|
IFNULL(CAST(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)), 0) money,
|
||||||
|
CAST(SUM(IFNULL(CAST(csp.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) payMoney,
|
||||||
|
IF(cpa.apply_type=0,'需求计划审批','紧急及内部用车') typeName,
|
||||||
|
IF(csp.id IS NULL,'未付','已付') status,
|
||||||
|
pro.name proName,
|
||||||
|
IFNULL(cs.name,'-') supName,
|
||||||
|
cpa.type,
|
||||||
|
-- 基于DECIMAL类型做减法,避免精度丢失
|
||||||
|
CAST(IFNULL(SUM(IFNULL(CAST(cpo.money AS DECIMAL(18,2)), 0)), 0) - SUM(IFNULL(CAST(csp.money AS DECIMAL(18,2)), 0)) AS DECIMAL(18,2)) noPayMoney,
|
||||||
|
cpa.need_num needNum,
|
||||||
|
cpa.need_num - IFNULL(SUM(cpo.dispatch_num), 0) dpcNum
|
||||||
|
FROM car_plan_apply cpa
|
||||||
|
LEFT JOIN car_plan_out cpo ON cpo.apply_id = cpa.id AND cpo.status = 2
|
||||||
LEFT JOIN (
|
LEFT JOIN (
|
||||||
SELECT sum(money) money,csd.out_id id,csd.slt_id
|
SELECT
|
||||||
from car_slt_details csd
|
CAST(SUM(CAST(money AS DECIMAL(18,2))) AS DECIMAL(18,2)) money,
|
||||||
|
csd.out_id id,
|
||||||
|
csd.slt_id
|
||||||
|
FROM car_slt_details csd
|
||||||
GROUP BY csd.out_id
|
GROUP BY csd.out_id
|
||||||
) csp on csp.id=cpo.id
|
) csp ON csp.id = cpo.id
|
||||||
LEFT JOIN car_supplier cs on cpo.sup_id=cs.id
|
LEFT JOIN car_supplier cs ON cpo.sup_id = cs.id
|
||||||
left join bm_project pro on pro.id=cpa.pro_id
|
LEFT JOIN bm_project pro ON pro.id = cpa.pro_id
|
||||||
where cpa.pro_id=#{proId} and cpa.status_type=1
|
WHERE cpa.pro_id = #{proId} AND cpa.status_type = 1
|
||||||
<if test="code!=null and code!=''">
|
<if test="code!=null and code!=''">
|
||||||
and cpa.`code` like concat('%',#{code},'%')
|
AND cpa.`code` LIKE concat('%',#{code},'%')
|
||||||
</if>
|
</if>
|
||||||
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!=''">
|
<if test="startTime!=null and startTime!='' and endTime!=null and endTime!=''">
|
||||||
and DATE_FORMAT(cpa.create_time,'%Y-%m-%d')
|
AND DATE_FORMAT(cpa.create_time,'%Y-%m-%d')
|
||||||
between DATE_FORMAT(#{startTime},'%Y-%m-%d') and DATE_FORMAT(#{endTime},'%Y-%m-%d')
|
BETWEEN DATE_FORMAT(#{startTime},'%Y-%m-%d') AND DATE_FORMAT(#{endTime},'%Y-%m-%d')
|
||||||
</if>
|
</if>
|
||||||
GROUP BY cpa.id
|
GROUP BY cpa.id, cpa.`code`, cpo.sup_id, pro.name, cs.name, cpa.apply_type, cpa.type, cpa.need_num
|
||||||
order by cpa.create_time desc
|
ORDER BY cpa.create_time DESC
|
||||||
</select>
|
</select>
|
||||||
<select id="getComNum" resultType="java.lang.Integer">
|
<select id="getComNum" resultType="java.lang.Integer">
|
||||||
select count(distinct pro.bmname)
|
select count(distinct bc.id)
|
||||||
from car_plan_apply cpa
|
from car_plan_apply cpa
|
||||||
left join bm_project pro on pro.id=cpa.pro_id
|
left join bm_project pro on pro.id=cpa.pro_id
|
||||||
where cpa.status_type=1
|
LEFT JOIN bm_company bc on bc.id=pro.COMPANY_ID
|
||||||
|
where cpa.status_type=1 AND bc.ID is not NULL
|
||||||
</select>
|
</select>
|
||||||
<select id="getProNumById" resultType="java.lang.Integer">
|
<select id="getProNumById" resultType="java.lang.Integer">
|
||||||
select count(distinct cpa.pro_id )
|
select count(distinct cpa.pro_id )
|
||||||
|
|
@ -182,7 +250,7 @@
|
||||||
select IFNULL(SUM(money),0)
|
select IFNULL(SUM(money),0)
|
||||||
from car_plan_out cpo
|
from car_plan_out cpo
|
||||||
left join car_plan_apply cpa on cpa.id=cpo.apply_id
|
left join car_plan_apply cpa on cpa.id=cpo.apply_id
|
||||||
where 1=1 AND cpo.status=1
|
where 1=1 AND cpo.status=2
|
||||||
<if test="year!=null and year!=''">
|
<if test="year!=null and year!=''">
|
||||||
and DATE_FORMAT(cpa.create_time,'%Y')=YEAR(CURDATE())
|
and DATE_FORMAT(cpa.create_time,'%Y')=YEAR(CURDATE())
|
||||||
</if>
|
</if>
|
||||||
|
|
|
||||||
|
|
@ -87,7 +87,7 @@
|
||||||
<select id="getUserCheckList" resultType="com.bonus.gzcar.business.backstage.entity.CarUserVo">
|
<select id="getUserCheckList" resultType="com.bonus.gzcar.business.backstage.entity.CarUserVo">
|
||||||
select pu.id,pu.`LOGIN_NAME` title,pu.`NAME` as nikeName,concat('org-', pu.COMPANY_ID) parentId
|
select pu.id,pu.`LOGIN_NAME` title,pu.`NAME` as nikeName,concat('org-', pu.COMPANY_ID) parentId
|
||||||
from car_supplier_user csu
|
from car_supplier_user csu
|
||||||
left join pm_user pu on csu.user_id=.pu.id
|
left join pm_user pu on csu.user_id=pu.id
|
||||||
where pu.IS_ACTIVE=1 and csu.sup_id=#{supId}
|
where pu.IS_ACTIVE=1 and csu.sup_id=#{supId}
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -121,7 +121,7 @@
|
||||||
|
|
||||||
<!--查询 需要量-->
|
<!--查询 需要量-->
|
||||||
<select id="getNeedPlanList" resultType="com.bonus.gzcar.business.backstage.entity.CarNeedPlanVo">
|
<select id="getNeedPlanList" resultType="com.bonus.gzcar.business.backstage.entity.CarNeedPlanVo">
|
||||||
select
|
select DISTINCT
|
||||||
cpa.id, cpa.code, cpa.type, cpa.pro_id proId, cpa.project_part projectPart, cpa.project_content projectContent,
|
cpa.id, cpa.code, cpa.type, cpa.pro_id proId, cpa.project_part projectPart, cpa.project_content projectContent,
|
||||||
cpa.need_time needTime, cpa.creator, DATE_FORMAT(cpa.create_time,'%Y-%m-%d') appLyTime, pro.name proName,
|
cpa.need_time needTime, cpa.creator, DATE_FORMAT(cpa.create_time,'%Y-%m-%d') appLyTime, pro.name proName,
|
||||||
cpa.remark, cpa.updater, cpa.update_time updateTime,cpa.dispatch_day dispatchDay,
|
cpa.remark, cpa.updater, cpa.update_time updateTime,cpa.dispatch_day dispatchDay,
|
||||||
|
|
@ -129,7 +129,7 @@
|
||||||
need_num needNum, dispatch_num dispatchNum, need_num-dispatch_num noDispatchNum,
|
need_num needNum, dispatch_num dispatchNum, need_num-dispatch_num noDispatchNum,
|
||||||
cpa.apply_type applyType, cpa.status_type statusType, cpa.user_name userName,
|
cpa.apply_type applyType, cpa.status_type statusType, cpa.user_name userName,
|
||||||
if(cpa.dispatch_status=0,'待审核',if(dispatch_num>0,'已派车','待派车')) statusName,
|
if(cpa.dispatch_status=0,'待审核',if(dispatch_num>0,'已派车','待派车')) statusName,
|
||||||
cpod.remark as outRemark, cpod.car_num as outCarNo, cmt.`name` as outCarModel
|
cmt.`name` as outCarModel
|
||||||
from
|
from
|
||||||
car_plan_apply cpa
|
car_plan_apply cpa
|
||||||
left join bm_project pro on pro.id = cpa.pro_id
|
left join bm_project pro on pro.id = cpa.pro_id
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue