问题修改
This commit is contained in:
parent
30276847ae
commit
ffaf9d938a
|
|
@ -243,8 +243,10 @@ public class DevMergeServiceImpl implements DevMergeService {
|
|||
public AjaxResult interDevice(MaDevInfo maDevInfo) {
|
||||
try {
|
||||
Long thisLoginUserDeptId = SecurityUtils.getLoginUser().getSysUser().getDeptId();
|
||||
String province = SecurityUtils.getLoginUser().getSysUser().getDept().getProvince();
|
||||
maDevInfo.setPropertyUnitId(Math.toIntExact(thisLoginUserDeptId));
|
||||
maDevInfo.setCode(getString());
|
||||
maDevInfo.setProvince(province);
|
||||
Integer i = devMergeMapper.interDevice(maDevInfo);
|
||||
if (i > 0) {
|
||||
devInfoMapper.deleteDevInfoProperties(Long.valueOf(maDevInfo.getMaId()));
|
||||
|
|
|
|||
|
|
@ -21,9 +21,9 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
select bca.id, bca.company_id, bca.province_code, bca.city_code, bca.area_code, bca.address, bca.create_time, bca.update_time,
|
||||
b.name as area_name, b1.name as province_name, b2.name as city_name
|
||||
from bm_company_address bca
|
||||
LEFT JOIN base_address b ON b.code = bca.area_code
|
||||
LEFT JOIN base_address b1 on bca.province_code = b1.code
|
||||
LEFT JOIN base_address b2 on bca.city_code = b2.code
|
||||
LEFT JOIN sys_cnarea b ON b.area_code = bca.area_code
|
||||
LEFT JOIN sys_cnarea b1 on bca.province_code = b1.area_code
|
||||
LEFT JOIN sys_cnarea b2 on bca.city_code = b2.area_code
|
||||
</sql>
|
||||
|
||||
<select id="selectBmCompanyAddressList" parameterType="com.bonus.material.basic.domain.BmCompanyAddress" resultMap="BmCompanyAddressResult">
|
||||
|
|
|
|||
|
|
@ -624,11 +624,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
</select>
|
||||
|
||||
<select id="getBaseAddress" resultType="com.bonus.common.biz.domain.BaseAddress">
|
||||
select id,name,code from base_address
|
||||
select id,name,area_code from sys_cnarea
|
||||
</select>
|
||||
|
||||
<select id="getBaseAddressById" resultType="String">
|
||||
select name from base_address where id = #{id}
|
||||
select name from sys_cnarea where id = #{id}
|
||||
</select>
|
||||
|
||||
<select id="selectDevInfoLists" resultType="com.bonus.material.device.domain.vo.DevInfoVo">
|
||||
|
|
@ -1768,7 +1768,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
0.0 AS valueC
|
||||
FROM sys_dept sd
|
||||
-- 左连接设备表(过滤有效数据)
|
||||
LEFT JOIN base_address ba ON ba.code = sd.city
|
||||
LEFT JOIN sys_cnarea ba ON ba.area_code = sd.city
|
||||
LEFT JOIN ma_dev_info mdi
|
||||
ON mdi.on_company = sd.dept_id
|
||||
AND mdi.change_status != '4'
|
||||
|
|
|
|||
|
|
@ -123,7 +123,7 @@
|
|||
#{manageType},
|
||||
#{code},
|
||||
'0',
|
||||
'340000000000',
|
||||
#{province},
|
||||
#{propertyUnitId},
|
||||
<!-- 非必填字段对应值 -->
|
||||
<if test="originalCode != null and originalCode != ''">#{originalCode},</if>
|
||||
|
|
@ -193,7 +193,7 @@
|
|||
#{manageType},
|
||||
#{code},
|
||||
'0',
|
||||
'340000000000',
|
||||
#{province},
|
||||
#{propertyUnitId},
|
||||
<!-- 非必填字段对应值 -->
|
||||
<if test="originalCode != null and originalCode != ''">#{originalCode},</if>
|
||||
|
|
|
|||
|
|
@ -373,7 +373,7 @@
|
|||
|
||||
<select id="getCityName" resultType="java.lang.String">
|
||||
select name
|
||||
from base_address where code = #{city}
|
||||
from sys_cnarea where area_code = #{city}
|
||||
</select>
|
||||
|
||||
</mapper>
|
||||
|
|
|
|||
|
|
@ -82,10 +82,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
<select id="getArea" resultType="com.bonus.common.biz.domain.vo.AreaVo">
|
||||
select
|
||||
id as areaId,
|
||||
`code` as areaCode,
|
||||
area_code as areaCode,
|
||||
parent_code as areaParentCode,
|
||||
name as areaName
|
||||
from base_address
|
||||
from sys_cnarea
|
||||
where 1 = 1
|
||||
<if test="areaCode == 0">
|
||||
and parent_code = 0
|
||||
|
|
|
|||
|
|
@ -9,9 +9,9 @@
|
|||
IFNULL(totalSum,0) AS totalSum,
|
||||
IFNULL(ROUND((toolNum / totalSum) * 100, 2),0) AS toolPercent,
|
||||
IFNULL(ROUND((maNum / totalSum) * 100, 2),0) AS maPercent
|
||||
FROM (SELECT ROUND(t1.toolNum) AS toolNum,
|
||||
ROUND(t2.maNum) AS maNum,
|
||||
ROUND(t1.toolNum) + ROUND(t2.maNum) AS totalSum
|
||||
FROM (SELECT ROUND(IFNULL(t1.toolNum,0)) AS toolNum,
|
||||
ROUND(IFNULL(t2.maNum,0)) AS maNum,
|
||||
ROUND(IFNULL(t1.toolNum,0)) + ROUND(IFNULL(t2.maNum,0)) AS totalSum
|
||||
FROM (SELECT SUM(total_num - scrap_num) AS toolNum FROM tool_ledger
|
||||
<where>
|
||||
<if test="companyId != null">
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
and mdi.on_company = #{companyId}
|
||||
</if>
|
||||
</where>
|
||||
) t2) AS temp;
|
||||
) t2) AS temp
|
||||
</select>
|
||||
<select id="getUseDeviceNum" resultType="java.util.Map">
|
||||
SELECT ROUND(IFNULL(t1.available_num, 0) + IFNULL(t2.available_num, 0)) AS availableNum,
|
||||
|
|
@ -249,32 +249,54 @@
|
|||
</select>
|
||||
<select id="getDeviceNumByMonth" resultType="java.util.Map">
|
||||
SELECT
|
||||
-- 退库申请数量(类型1:原始退库申请)
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '1' THEN cdcd.num ELSE 0 END),0) AS returnApplyNum,
|
||||
-- 自用申请数量(类型2:自用申请)
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '2' THEN cdcd.num ELSE 0 END),0) AS selfUseApplyNum,
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '2' AND cdc.review_status = 2 THEN cdcd.real_num ELSE 0 END),0) AS
|
||||
selfUseApplyNum,
|
||||
-- 自用出库数量(类型2的实际出库数)
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '2' AND cdcd.dev_type ='1' THEN cdcd.real_num ELSE 0 END),0) AS selfUseOutNum,
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '2' AND cdc.review_status = 2 AND cdcd.dev_type ='1' THEN cdcd.real_num ELSE 0
|
||||
END),0) AS selfUseOutNum,
|
||||
-- 自用审核数量(类型2+审核通过状态2的申请数)
|
||||
IFNULL(SUM(CASE WHEN cdc.review_status = 2 AND cdc.type = '2' AND cdcd.dev_type ='2' THEN cdcd.real_num ELSE 0
|
||||
END),0) AS selfUseAuditNum,
|
||||
|
||||
-- 退库申请数量(类型1:原始退库申请)
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '1' AND cdc.review_status = 2 THEN cdcd.num ELSE 0 END),0) AS returnApplyNum,
|
||||
-- 退库审核数量(类型1+审核通过状态2的申请数)
|
||||
IFNULL(SUM(CASE WHEN cdc.review_status = 2 AND cdc.type = '1' THEN cdcd.num ELSE 0 END),0) AS
|
||||
IFNULL(SUM(CASE WHEN cdc.review_status = 2 AND cdc.type = '1' AND cdcd.dev_type ='1' THEN cdcd.num ELSE 0
|
||||
END),0) AS
|
||||
returnAuditApplyNum,
|
||||
-- 退库维修数量(类型1+审核通过状态2的实际维修数)
|
||||
IFNULL(SUM(CASE WHEN cdc.review_status = 2 AND cdc.type = '1' THEN cdcd.real_num ELSE 0 END),0) AS
|
||||
IFNULL(SUM(CASE WHEN cdc.review_status = 2 AND cdc.type = '1' AND cdcd.dev_type ='2' THEN cdcd.num ELSE 0
|
||||
END),0) AS
|
||||
returnAuditRepairNum,
|
||||
|
||||
|
||||
-- 退库入库数量(类型1+审核通过状态2的申请数-实际维修数,即可入库数量)
|
||||
IFNULL(SUM(CASE WHEN cdc.review_status = 2 AND cdc.type = '1' THEN (cdcd.num - cdcd.real_num) ELSE 0 END),0) AS
|
||||
returnAuditStoreNum,
|
||||
|
||||
|
||||
-- 类型4:待维修数量(未审核通过/审核中 + 申请数)
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '4' AND cdc.review_status != 2 THEN cdcd.num ELSE 0 END),0) AS repairPendingNum,
|
||||
-- 类型4:维修退役数量(审核通过 + 实际退役数)
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '4' AND cdcd.is_scrap = '1' THEN cdcd.real_num ELSE 0 END),0) AS
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '4' AND cdc.review_status = 2 AND cdcd.is_scrap = '1' THEN cdcd.real_num ELSE 0
|
||||
END),0) + IFNULL(SUM(CASE WHEN cdc.type = '3' AND cdc.review_status = 2 THEN cdcd.real_num ELSE 0
|
||||
END),0) AS
|
||||
repairRetireNum,
|
||||
-- 类型4:维修合格数量(审核通过 + 申请数-实际退役数,即可入库/复用数量)
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '4' AND cdcd.is_scrap = '0' THEN (cdcd.real_num) ELSE 0 END),0) AS
|
||||
repairQualifiedNum
|
||||
IFNULL(SUM(CASE WHEN cdc.type = '4' AND cdc.review_status = 2 AND cdcd.is_scrap = '0' THEN (cdcd.real_num) ELSE
|
||||
0 END),0) AS
|
||||
repairQualifiedNum,
|
||||
IFNULL((SELECT-- 替换子查询为LEFT JOIN,避免逐行子查询的性能损耗
|
||||
COALESCE ( ma_detail.maNum, 0 ) + COALESCE ( tool_detail.toolNum, 0 ) AS maNum
|
||||
FROM
|
||||
bm_warehousing bw
|
||||
LEFT JOIN ( SELECT cs_id, COUNT( 1 ) AS maNum FROM ma_apply_details GROUP BY cs_id ) ma_detail ON
|
||||
ma_detail.cs_id = bw.order_id -- 预计算tool_apply_details的计数,关联一次即可
|
||||
LEFT JOIN ( SELECT apply_id, SUM( apply_num ) AS toolNum FROM tool_apply_details WHERE del_flag = '0' GROUP BY
|
||||
apply_id ) tool_detail ON tool_detail.apply_id = bw.apply_id
|
||||
WHERE bw.`status` = 2 AND DATE_FORMAT(bw.create_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')),0) AS
|
||||
warehousingNum
|
||||
FROM
|
||||
cs_device_change cdc
|
||||
-- 原LEFT JOIN + cdcd.id IS NOT NULL 等价于INNER JOIN,性能更优
|
||||
|
|
@ -330,42 +352,56 @@
|
|||
</choose>
|
||||
</select>
|
||||
<select id="getShare" resultType="java.util.Map">
|
||||
SELECT COUNT(1) AS buyerNum,
|
||||
SUM(IF(devType = '0', real_num, 0)) AS sellerNum,
|
||||
SUM(IF(devType = '1', real_num, 0)) AS toolNum
|
||||
FROM(
|
||||
SELECT
|
||||
CASE
|
||||
WHEN hh.devType = '0' THEN up.dept_id
|
||||
WHEN hh.devType = '1' THEN up1.dept_id
|
||||
ELSE NULL
|
||||
END AS dept_id,
|
||||
hh.real_num,
|
||||
hh.devType
|
||||
FROM
|
||||
ma_order_details hh
|
||||
-- 左连接mdi(仅devType=0时生效)
|
||||
LEFT JOIN ma_dev_info mdi
|
||||
ON hh.ma_id = mdi.ma_id
|
||||
AND hh.devType = '0'
|
||||
-- 左连接tl(仅devType=1时生效)
|
||||
LEFT JOIN tool_ledger tl
|
||||
ON tl.id = hh.ma_id
|
||||
AND hh.devType = '1'
|
||||
-- 关联mdi对应的部门表
|
||||
LEFT JOIN sys_dept up
|
||||
ON up.dept_id = mdi.on_company
|
||||
-- 关联tl对应的部门表
|
||||
LEFT JOIN sys_dept up1
|
||||
ON up1.dept_id = tl.company_id
|
||||
-- 可选:过滤无效devType(如果需要)
|
||||
WHERE hh.devType IN ('0', '1')
|
||||
) a
|
||||
<where>
|
||||
<if test="companyId != null">
|
||||
and dept_id = #{companyId}
|
||||
</if>
|
||||
</where>
|
||||
-- 1. 出售方订单数:companyId为空时统计所有,否则统计指定公司
|
||||
IFNULL(SUM(CASE
|
||||
WHEN #{companyId} IS NULL OR #{companyId} = '' THEN 1
|
||||
WHEN a.sellerDeptId = #{companyId} THEN 1
|
||||
ELSE 0
|
||||
END), 0) AS sellerNum,
|
||||
-- 2. 购买方订单数:companyId为空时统计所有,否则统计指定公司
|
||||
IFNULL(SUM(CASE
|
||||
WHEN #{companyId} IS NULL OR #{companyId} = '' THEN 1
|
||||
WHEN a.buyerCompanyName = #{companyId} THEN 1
|
||||
ELSE 0
|
||||
END), 0) AS buyerNum,
|
||||
-- 3. 出售设备总数:companyId为空时统计所有,否则统计指定公司的设备数
|
||||
IFNULL(SUM(CASE
|
||||
WHEN (#{companyId} IS NULL OR #{companyId} = '') AND a.devType = '0' THEN a.equipmentTotalNum
|
||||
WHEN a.sellerDeptId = #{companyId} and a.devType = '0' THEN a.equipmentTotalNum
|
||||
ELSE 0
|
||||
END), 0) AS sellerMaNum,
|
||||
IFNULL(SUM(CASE
|
||||
WHEN (#{companyId} IS NULL OR #{companyId} = '') AND a.devType = '1' THEN a.equipmentTotalNum
|
||||
WHEN a.sellerDeptId = #{companyId} and a.devType = '1' THEN a.equipmentTotalNum
|
||||
ELSE 0
|
||||
END), 0) AS sellerToolNum,
|
||||
IFNULL(SUM(CASE
|
||||
WHEN (#{companyId} IS NULL OR #{companyId} = '') AND a.devType = '0' THEN a.equipmentTotalNum
|
||||
WHEN a.buyerCompanyName = #{companyId} and a.devType = '0' THEN a.equipmentTotalNum
|
||||
ELSE 0
|
||||
END), 0) AS buyerMaNum,
|
||||
IFNULL(SUM(CASE
|
||||
WHEN (#{companyId} IS NULL OR #{companyId} = '') AND a.devType = '1' THEN a.equipmentTotalNum
|
||||
WHEN a.buyerCompanyName = #{companyId} and a.devType = '1' THEN a.equipmentTotalNum
|
||||
ELSE 0
|
||||
END), 0) AS buyerToolNum
|
||||
FROM (
|
||||
-- 内层查询:按订单维度统计出售方、购买方、设备总数(原逻辑不变)
|
||||
SELECT up.dept_id AS sellerDeptId,
|
||||
moi.buyer_company AS buyerCompanyName,
|
||||
SUM(hh.num) AS equipmentTotalNum,
|
||||
hh.devType AS devType
|
||||
FROM ma_order_details hh
|
||||
LEFT JOIN ma_order_info moi ON moi.order_id = hh.order_id
|
||||
LEFT JOIN ma_dev_info mdi ON hh.ma_id = mdi.ma_id
|
||||
LEFT JOIN sys_dept up ON up.dept_id = mdi.on_company
|
||||
WHERE DATE_FORMAT(moi.create_time, '%Y-%m') = DATE_FORMAT(CURDATE(), '%Y-%m')
|
||||
GROUP BY hh.order_id,
|
||||
up.dept_id,
|
||||
hh.devType,
|
||||
moi.buyer_company) a
|
||||
|
||||
</select>
|
||||
<select id="getDeviceByDeptEX" resultType="com.bonus.material.index.domain.CompanyDevToolStatisticsExport">
|
||||
SELECT sd.dept_abbreviation AS companyName, -- 公司名称
|
||||
|
|
|
|||
|
|
@ -184,7 +184,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN bm_company_info c ON m.company_id = c.company_id
|
||||
LEFT JOIN base_address b ON b.id = m.area_id
|
||||
LEFT JOIN sys_cnarea b ON b.id = m.area_id
|
||||
LEFT JOIN ma_hot_search h ON h.lease_id = m.id
|
||||
LEFT JOIN ma_type mt4 ON mt4.type_id = m.type_id and mt4.del_flag = '0'
|
||||
LEFT JOIN ma_type mt3 ON mt3.type_id = mt4.parent_id and mt3.del_flag = '0'
|
||||
|
|
@ -344,7 +344,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN bm_company_info c ON m.company_id = c.company_id
|
||||
LEFT JOIN base_address b ON b.id = m.area_id
|
||||
LEFT JOIN sys_cnarea b ON b.id = m.area_id
|
||||
LEFT JOIN sys_user su ON m.publish_user = su.user_id
|
||||
LEFT JOIN ma_type mt4 ON mt4.type_id = m.type_id and mt4.del_flag = '0'
|
||||
LEFT JOIN ma_type mt3 ON mt3.type_id = mt4.parent_id and mt3.del_flag = '0'
|
||||
|
|
@ -438,7 +438,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
|
|||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN bm_company_info c ON m.company_id = c.company_id
|
||||
LEFT JOIN base_address b ON b.id = m.area_id
|
||||
LEFT JOIN sys_cnarea b ON b.id = m.area_id
|
||||
LEFT JOIN sys_user su ON m.publish_user = su.user_id
|
||||
LEFT JOIN sys_user su1 ON m.order_user = su1.user_id
|
||||
WHERE 1 = 1 and m.order_user = #{orderUser} and m.lease_status = '1'
|
||||
|
|
|
|||
|
|
@ -180,9 +180,9 @@
|
|||
END AS leaseDay
|
||||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN base_address b ON b.code = m.area_code
|
||||
LEFT JOIN base_address b1 on m.province_code = b1.code
|
||||
LEFT JOIN base_address b2 on m.city_code = b2.code
|
||||
LEFT JOIN sys_cnarea b ON b.area_code = m.area_code
|
||||
LEFT JOIN sys_cnarea b1 on m.province_code = b1.area_code
|
||||
LEFT JOIN sys_cnarea b2 on m.city_code = b2.area_code
|
||||
LEFT JOIN ma_hot_search h ON h.lease_id = m.id
|
||||
LEFT JOIN sys_dept sd on m.publish_company = sd.dept_id
|
||||
LEFT JOIN sys_dept sd2 on m.order_company = sd2.dept_id
|
||||
|
|
@ -237,9 +237,9 @@
|
|||
m.publish_company as publishCompany
|
||||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN base_address b ON b.code = m.area_code
|
||||
LEFT JOIN base_address b1 on m.province_code = b1.code
|
||||
LEFT JOIN base_address b2 on m.city_code = b2.code
|
||||
LEFT JOIN sys_cnarea b ON b.area_code = m.area_code
|
||||
LEFT JOIN sys_cnarea b1 on m.province_code = b1.area_code
|
||||
LEFT JOIN sys_cnarea b2 on m.city_code = b2.area_code
|
||||
LEFT JOIN sys_user su ON m.publish_user = su.user_id
|
||||
LEFT JOIN sys_user su1 ON m.order_user = su1.user_id
|
||||
WHERE 1 = 1 and m.publish_company = #{publishCompany}
|
||||
|
|
@ -298,9 +298,9 @@
|
|||
END AS leaseDay
|
||||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN base_address b ON b.code = m.area_code
|
||||
LEFT JOIN base_address b1 on m.province_code = b1.code
|
||||
LEFT JOIN base_address b2 on m.city_code = b2.code
|
||||
LEFT JOIN sys_cnarea b ON b.area_code = m.area_code
|
||||
LEFT JOIN sys_cnarea b1 on m.province_code = b1.area_code
|
||||
LEFT JOIN sys_cnarea b2 on m.city_code = b2.area_code
|
||||
LEFT JOIN ma_lease_details m1 ON m.id = m1.lease_id
|
||||
LEFT JOIN sys_user su ON m.publish_user = su.user_id
|
||||
LEFT JOIN sys_dept sd ON m.publish_company = sd.dept_id
|
||||
|
|
@ -378,9 +378,9 @@
|
|||
AS leaseStatusName
|
||||
FROM
|
||||
ma_lease_info m
|
||||
LEFT JOIN base_address b ON b.code = m.area_code
|
||||
LEFT JOIN base_address b1 on m.province_code = b1.code
|
||||
LEFT JOIN base_address b2 on m.city_code = b2.code
|
||||
LEFT JOIN sys_cnarea b ON b.area_code = m.area_code
|
||||
LEFT JOIN sys_cnarea b1 on m.province_code = b1.area_code
|
||||
LEFT JOIN sys_cnarea b2 on m.city_code = b2.area_code
|
||||
LEFT JOIN sys_user su ON m.publish_user = su.user_id
|
||||
LEFT JOIN sys_user su1 ON m.order_user = su1.user_id
|
||||
WHERE 1 = 1 and m.order_company = #{orderCompany}
|
||||
|
|
@ -712,8 +712,8 @@
|
|||
AND mdi.on_company = #{ownCo}
|
||||
</select>
|
||||
<select id="getAddress" resultType="java.util.Map">
|
||||
SELECT code, name
|
||||
from base_address
|
||||
SELECT area_code, name
|
||||
from sys_cnarea
|
||||
where level = 1
|
||||
</select>
|
||||
<select id="getDept" resultType="java.util.Map">
|
||||
|
|
|
|||
|
|
@ -91,7 +91,7 @@
|
|||
-- 关联4级父节点
|
||||
INNER JOIN tool_type tt4 ON tt3.parent_id = tt4.type_id
|
||||
WHERE
|
||||
tt.del_flag = '0'
|
||||
tt.del_flag = '0' AND tl.type_id IS not null
|
||||
AND tt1.del_flag = '0'
|
||||
AND tt2.del_flag = '0'
|
||||
AND tt3.del_flag = '0'
|
||||
|
|
|
|||
Loading…
Reference in New Issue