Merge remote-tracking branch 'origin/ah-simple-test' into ah-simple-test

This commit is contained in:
itcast 2025-12-01 17:24:06 +08:00
commit ef7e3f9093
8 changed files with 487 additions and 46 deletions

View File

@ -205,6 +205,25 @@ public class DevChangeController extends BaseController {
} }
} }
/**
* 获取设备详情
*
* @param dto
* @return
*/
@ApiOperation(value = "获取设备详情")
@GetMapping("/getOrderById")
public AjaxResult getOrderById(CsDeviceDetails dto) {
try {
CsDeviceVo devInfo = service.getOrderById(dto);
return AjaxResult.success(devInfo);
} catch (Exception e) {
logger.error("获取设备详情异常:{}", e.getMessage());
return AjaxResult.error("查询失败,请联系管理员");
}
}
/** /**
* 获取申请一级列表 * 获取申请一级列表
* *
@ -250,6 +269,19 @@ public class DevChangeController extends BaseController {
} }
/**
* 审核出库
*
* @param entity
* @return
*/
@ApiOperation(value = "审核出库")
@PostMapping("/orderOut")
public AjaxResult orderOut(@RequestBody CsDeviceDetails entity) {
return service.orderOut(entity);
}
/** /**
* 审核出库 * 审核出库
* *
@ -263,6 +295,33 @@ public class DevChangeController extends BaseController {
} }
/**
* 审核出库
*
* @param entity
* @return
*/
@ApiOperation(value = "审核出库")
@PostMapping("/orderOutAll")
public AjaxResult orderOutAll(@RequestBody CsDeviceDetails entity) {
return service.orderOutAll(entity);
}
/**
* 审核出库
*
* @param entity
* @return
*/
@ApiOperation(value = "审核出库")
@PostMapping("/orderOutCancel")
public AjaxResult orderOutCancel(@RequestBody CsDeviceDetails entity) {
return service.orderOutCancel(entity);
}
/** /**
* 审核出库 * 审核出库
* *
@ -276,6 +335,18 @@ public class DevChangeController extends BaseController {
} }
/**
* 审核出库
*
* @param entity
* @return
*/
@ApiOperation(value = "审核出库")
@PostMapping("/orderOutCancelAll")
public AjaxResult orderOutCancelAll(@RequestBody CsDeviceDetails entity) {
return service.orderOutCancelAll(entity);
}
/** /**
* 审核出库 * 审核出库
* *
@ -288,6 +359,7 @@ public class DevChangeController extends BaseController {
return service.outCancelAll(entity); return service.outCancelAll(entity);
} }
@ApiOperation(value = "获取申请一级列表") @ApiOperation(value = "获取申请一级列表")
@GetMapping("/getOutboundList") @GetMapping("/getOutboundList")
public TableDataInfo getOutboundList(CsDeviceInfo dto) { public TableDataInfo getOutboundList(CsDeviceInfo dto) {

View File

@ -272,4 +272,26 @@ public interface DevChangeMapper {
List<CsDeviceDetails> getDevDetailsInfoEquipment(CsDeviceDetails dto); List<CsDeviceDetails> getDevDetailsInfoEquipment(CsDeviceDetails dto);
List<CsDeviceChange> getDevChangeRList(CsDeviceChange vo); List<CsDeviceChange> getDevChangeRList(CsDeviceChange vo);
CsDeviceInfo getOrderById(CsDeviceDetails dto);
List<CsDeviceDetails> getOrderDetailsById(CsDeviceDetails dto);
CsDeviceDetails getOrderDetailsMaDevInfo(CsDeviceDetails csDeviceDetails);
CsDeviceDetails getOrderDetailsTypeToolInfo(CsDeviceDetails csDeviceDetails);
void updateOrderZb(CsDeviceDetails entity);
void updateOrderGj(CsDeviceDetails entity);
Integer orderOut(CsDeviceDetails entity);
Integer orderOutAll(CsDeviceDetails entity);
Integer orderOutCancel(CsDeviceDetails entity);
Integer orderOutCancelAll(CsDeviceDetails entity);
List<CsDeviceDetails> getOrderOutAllList(CsDeviceDetails entity);
} }

View File

@ -154,4 +154,14 @@ public interface DevChangeService {
AjaxResult outAll(CsDeviceDetails entity); AjaxResult outAll(CsDeviceDetails entity);
List<CsDeviceChange> getDevChangeRList(CsDeviceChange csDeviceChange); List<CsDeviceChange> getDevChangeRList(CsDeviceChange csDeviceChange);
CsDeviceVo getOrderById(CsDeviceDetails dto);
AjaxResult orderOut(CsDeviceDetails entity);
AjaxResult orderOutAll(CsDeviceDetails entity);
AjaxResult orderOutCancel(CsDeviceDetails entity);
AjaxResult orderOutCancelAll(CsDeviceDetails entity);
} }

View File

@ -556,6 +556,126 @@ public class DevChangeServiceImpl implements DevChangeService {
return new ArrayList<>(); return new ArrayList<>();
} }
/**
* @param dto
* @return
*/
@Override
public CsDeviceVo getOrderById(CsDeviceDetails dto) {
CsDeviceVo csDeviceVo = new CsDeviceVo();
// 根据id查询主任务表数据
CsDeviceInfo devInfo = mapper.getOrderById(dto);
// 根据id查询设备详情表数据
List<CsDeviceDetails> devDetailsList = mapper.getOrderDetailsById(dto);
if (CollectionUtils.isNotEmpty(devDetailsList)) {
// 根据devType去查询装备或工具详情
for (CsDeviceDetails csDeviceDetails : devDetailsList) {
CsDeviceDetails devDetails = new CsDeviceDetails();
if (StringUtils.isNotBlank(csDeviceDetails.getDevType()) && "0".equals(csDeviceDetails.getDevType())) {
if ("/".equals(csDeviceDetails.getDevCode())) {
csDeviceDetails.setDevCode(null);
}
devDetails = mapper.getOrderDetailsMaDevInfo(csDeviceDetails);
} else if (StringUtils.isNotBlank(csDeviceDetails.getDevType()) && "1".equals(csDeviceDetails.getDevType())) {
if ("/".equals(csDeviceDetails.getDevCode())) {
csDeviceDetails.setDevCode(null);
}
devDetails = mapper.getOrderDetailsTypeToolInfo(csDeviceDetails);
}
if (devDetails != null) {
csDeviceDetails.setDevType(StringUtils.isNotBlank(devDetails.getDevType()) ? devDetails.getDevType() : "");
csDeviceDetails.setCategory(StringUtils.isNotBlank(devDetails.getCategory()) ? devDetails.getCategory() : "");
csDeviceDetails.setTypeName(StringUtils.isNotBlank(devDetails.getTypeName()) ? devDetails.getTypeName() : "");
csDeviceDetails.setTypeModelName(StringUtils.isNotBlank(devDetails.getTypeModelName()) ? devDetails.getTypeModelName() : "");
csDeviceDetails.setManageType(StringUtils.isNotBlank(devDetails.getManageType()) ? devDetails.getManageType() : "");
csDeviceDetails.setDevCode(StringUtils.isNotBlank(devDetails.getDevCode()) ? devDetails.getDevCode() : "");
csDeviceDetails.setStorageNum(devDetails.getStorageNum());
// 用于编辑显示数据是否选中前端根据typeId和id结合判断
csDeviceDetails.setId(devDetails.getId());
}
}
}
csDeviceVo.setDevInfo(devInfo);
csDeviceVo.setDevDetailsList(devDetailsList);
return csDeviceVo;
}
/**
* @param entity
* @return
*/
@Override
public AjaxResult orderOut(CsDeviceDetails entity) {
try {
//装备
if (entity.getDevType().equals("1")) {
mapper.updateOrderZb(entity);
} else {
mapper.updateOrderGj(entity);
}
Integer out = mapper.orderOut(entity);
return out > 0 ? AjaxResult.success("出库成功") : AjaxResult.error("出库失败");
} catch (Exception e) {
log.error(e.getMessage());
return AjaxResult.error("出库失败");
}
}
/**
* @param entity
* @return
*/
@Override
public AjaxResult orderOutAll(CsDeviceDetails entity) {
try {
List<CsDeviceDetails> outAllList = mapper.getOrderOutAllList(entity);
Integer out = mapper.orderOutAll(entity);
if (out > 0) {
outAllList.forEach(item -> {
if (item.getDevType().equals("0")) {
mapper.updateOrderZb(item);
} else {
mapper.updateOrderGj(item);
}
});
}
return out > 0 ? AjaxResult.success("出库成功") : AjaxResult.error("出库失败");
} catch (Exception e) {
log.error(e.getMessage());
return AjaxResult.error("出库失败");
}
}
/**
* @param entity
* @return
*/
@Override
public AjaxResult orderOutCancel(CsDeviceDetails entity) {
try {
Integer out = mapper.orderOutCancel(entity);
return out > 0 ? AjaxResult.success("出库成功") : AjaxResult.error("出库失败");
} catch (Exception e) {
log.error(e.getMessage());
return AjaxResult.error("出库失败");
}
}
/**
* @param entity
* @return
*/
@Override
public AjaxResult orderOutCancelAll(CsDeviceDetails entity) {
try {
Integer out = mapper.orderOutCancelAll(entity);
return out > 0 ? AjaxResult.success("出库成功") : AjaxResult.error("出库失败");
} catch (Exception e) {
log.error(e.getMessage());
return AjaxResult.error("出库失败");
}
}
/** /**
* 获取待出库单子 * 获取待出库单子
* *
@ -842,12 +962,12 @@ public class DevChangeServiceImpl implements DevChangeService {
public List<DevChangeVo> getDevDetails(CsDeviceChangeDetailsVo vo) { public List<DevChangeVo> getDevDetails(CsDeviceChangeDetailsVo vo) {
try { try {
List<DevChangeVo> list = mapper.getDevDetails(vo); List<DevChangeVo> list = mapper.getDevDetails(vo);
for(DevChangeVo devChangeVo : list){ for (DevChangeVo devChangeVo : list) {
if(devChangeVo.getWorkingHours() == null){ if (devChangeVo.getWorkingHours() == null) {
devChangeVo.setWorkingHours(0); devChangeVo.setWorkingHours(0);
} }
devChangeVo.setRemainingHours(devChangeVo.getMaxWorkingHours()-devChangeVo.getWorkingHours()); devChangeVo.setRemainingHours(devChangeVo.getMaxWorkingHours() - devChangeVo.getWorkingHours());
} }
return list; return list;
} catch (Exception e) { } catch (Exception e) {
@ -857,7 +977,7 @@ public class DevChangeServiceImpl implements DevChangeService {
} }
@Override @Override
public List<Map<String, Object>> getVoltageLevel(JjProjectVo vo) { public List<Map<String, Object>> getVoltageLevel(JjProjectVo vo) {
try { try {
return mapper.getVoltageLevel(vo); return mapper.getVoltageLevel(vo);
} catch (Exception e) { } catch (Exception e) {

View File

@ -200,4 +200,6 @@ public class OrderInfoDto {
@ApiModelProperty(value = "区/县") @ApiModelProperty(value = "区/县")
private String proCounty; private String proCounty;
private String taskStatus;
} }

View File

@ -33,11 +33,11 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
d.brand as brand, d.brand as brand,
'0' AS devType, '0' AS devType,
mt.type_name as typeName, mt.type_name as typeName,
mt.manage_type as manageType, d.manage_type as manageType,
d.production_date as productionDate, d.production_date as productionDate,
d.working_hours as workingHours, d.working_hours as workingHours,
d.person as person, sd.leader as person,
d.person_phone as personPhone, sd.phone as personPhone,
c.company_name as companyName, c.company_name as companyName,
c.company_id as companyId, c.company_id as companyId,
c.operate_address as operateAddress, c.operate_address as operateAddress,
@ -46,6 +46,7 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
bcd.order_user as orderUser, bcd.order_user as orderUser,
bcd.address as address bcd.address as address
FROM ma_dev_info d FROM ma_dev_info d
LEFT JOIN sys_dept sd ON sd.dept_id = d.on_company
LEFT JOIN bm_company_info c ON d.on_company = c.company_id LEFT JOIN bm_company_info c ON d.on_company = c.company_id
LEFT JOIN book_car_detail bcd ON d.ma_id = bcd.ma_id LEFT JOIN book_car_detail bcd ON d.ma_id = bcd.ma_id
LEFT JOIN ma_type mt ON d.type_id = mt.type_id and mt.del_flag = '0' LEFT JOIN ma_type mt ON d.type_id = mt.type_id and mt.del_flag = '0'
@ -65,10 +66,10 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
tt1.type_name as deviceName, tt1.type_name as deviceName,
tl.available_num as deviceCount, tl.available_num as deviceCount,
tl.type_id as typeId, tl.type_id as typeId,
tl.`status` as maStatus, if(tl.available_num = 0,2,1) as maStatus,
ms.supplier_name as brand, ms.supplier_name as brand,
tt.type_name as typeName,
'1' AS devType, '1' AS devType,
tt.type_name as typeName,
tl.manage_mode as manageType, tl.manage_mode as manageType,
tl.production_date as productionDate, tl.production_date as productionDate,
'' as workingHours, '' as workingHours,

View File

@ -852,6 +852,122 @@
ORDER BY ORDER BY
cds.create_time DESC cds.create_time DESC
</select> </select>
<select id="getOrderById" resultType="com.bonus.material.devchange.domain.CsDeviceInfo">
select order_id as id,
pro_code as proCode,
pro_name as proName,
pro_type as proType,
voltage_level as voltageLevel,
use_unit as useUnit,
pro_province as proProvince,
pro_city as proCity,
pro_county as proCounty,
use_time as useTime,
code as code,
CASE
-- 已完成:所有子表记录 is_finished = 1
WHEN NOT EXISTS (
SELECT 1
FROM ma_order_details cdc1
WHERE cdc1.order_id = #{id}
AND cdc1.is_finished &lt;&gt; '1' -- 不存在非1的记录
) THEN '3'
-- 待出库:所有子表记录 is_finished = 0
WHEN NOT EXISTS (
SELECT 1
FROM ma_order_details cdc2
WHERE cdc2.order_id = #{id}
AND cdc2.is_finished &lt;&gt; '0' -- 不存在非0的记录
) THEN '1'
-- 其余情况:出库中(包含 is_finished=2 或其他值)
ELSE '2'
END AS taskStatus
from ma_order_info
where order_id = #{id}
</select>
<select id="getOrderDetailsById" resultType="com.bonus.material.devchange.domain.CsDeviceDetails">
SELECT id AS detailsId,
devType AS devType,
ma_id AS typeId,
num AS num,
rent_begin_time AS useStartTime,
IFNULL(real_num, 0) AS realNum,
rent_end_time AS useEndTime,
is_finished AS isFinished
FROM ma_order_details
where order_id = #{id}
</select>
<select id="getOrderDetailsMaDevInfo" resultType="com.bonus.material.devchange.domain.CsDeviceDetails">
SELECT CASE
WHEN mt.level = 1 THEN mt.type_name
WHEN mt.level = 2 THEN CONCAT(mt1.type_name, '>', mt.type_name)
WHEN mt.level = 3 THEN CONCAT(mt2.type_name, '>', mt1.type_name, '>', mt.type_name)
WHEN mt.level = 4 THEN CONCAT(mt3.type_name, '>', mt2.type_name, '>', mt1.type_name, '>',
mt.type_name)
WHEN mt.level = 5 THEN CONCAT(mt4.type_name, '>', mt3.type_name, '>', mt2.type_name, '>',
mt1.type_name, '>', mt.type_name)
WHEN mt.level = 6 THEN CONCAT(mt5.type_name, '>', mt4.type_name, '>', mt3.type_name, '>',
mt2.type_name, '>', mt1.type_name, '>', mt.type_name)
ELSE mt.type_name
END AS category,
mdi.device_name AS typeName,
mdi.item_type_model AS typeModelName,
mdi.manage_type AS manageType,
mdi.code AS devCode,
SUM(CASE WHEN mdi.ma_status = 1 THEN 1 ELSE 0 END) AS storageNum,
1 AS devType,
mdi.type_id AS typeId,
mdi.ma_id AS id
FROM ma_dev_info mdi
LEFT JOIN ma_type mt ON mdi.type_id = mt.type_id
LEFT JOIN ma_type mt1 ON mt.parent_id = mt1.type_id
LEFT JOIN ma_type mt2 ON mt1.parent_id = mt2.type_id
LEFT JOIN ma_type mt3 ON mt2.parent_id = mt3.type_id
LEFT JOIN ma_type mt4 ON mt3.parent_id = mt4.type_id
LEFT JOIN ma_type mt5 ON mt4.parent_id = mt5.type_id
where mdi.is_active = '1'
and mdi.ma_id = #{typeId}
</select>
<select id="getOrderDetailsTypeToolInfo" resultType="com.bonus.material.devchange.domain.CsDeviceDetails">
SELECT CONCAT(tt4.type_name, '>', tt3.type_name, '>', tt2.type_name) as category,
tt1.type_name as typeName,
tt.type_name as typeModelName,
tl.manage_mode as manageType,
IFNULL(tl.tool_code,'/') as devCode,
tl.available_num as storageNum,
2 as devType,
tl.type_id as typeId,
tl.id as id
FROM tool_ledger tl
LEFT JOIN tool_type tt ON tl.type_id = tt.type_id
LEFT JOIN tool_type tt1 ON tt.parent_id = tt1.type_id
LEFT JOIN tool_type tt2 ON tt1.parent_id = tt2.type_id
LEFT JOIN tool_type tt3 ON tt2.parent_id = tt3.type_id
LEFT JOIN tool_type tt4 ON tt3.parent_id = tt4.type_id
where
tl.id = #{typeId}
</select>
<select id="getOrderOutAllList" resultType="com.bonus.material.devchange.domain.CsDeviceDetails">
SELECT COALESCE(
CASE
WHEN cdcd.devType = '0' THEN CONCAT(a.ma_id, '')
WHEN cdcd.devType = '1' THEN CONCAT(b.id, '')
ELSE ''
END, ''
) AS id,
cdcd.devType AS devType,
COALESCE(cdcd.num, 0) - COALESCE(cdcd.real_num, 0) AS outNum
FROM ma_order_details cdcd
LEFT JOIN ma_dev_info a
ON cdcd.devType = '0'
AND cdcd.ma_id = a.ma_id
LEFT JOIN tool_ledger b
ON cdcd.devType = '1'
AND cdcd.ma_id = b.id
WHERE cdcd.order_id = #{id}
</select>
<insert id="addChangeInfoNew" keyProperty="id" useGeneratedKeys="true"> <insert id="addChangeInfoNew" keyProperty="id" useGeneratedKeys="true">
@ -933,7 +1049,7 @@
</set> </set>
where id = #{id} where id = #{id}
</update> </update>
<update id="out"> <update id="out">
UPDATE cs_device_change_details UPDATE cs_device_change_details
SET is_finished = CASE SET is_finished = CASE
WHEN (IFNULL(real_num, 0) + #{outNum}) = num THEN '1' WHEN (IFNULL(real_num, 0) + #{outNum}) = num THEN '1'
@ -981,6 +1097,48 @@
change_status = '2' change_status = '2'
WHERE ma_id = #{id} WHERE ma_id = #{id}
</update> </update>
<update id="updateOrderZb">
UPDATE ma_dev_info
set ma_status = '3',
change_status = '3'
WHERE ma_id = #{id}
</update>
<update id="updateOrderGj">
UPDATE tool_ledger
set available_num = IFNULL(available_num, 0) - #{outNum},
share_num = IFNULL(share_num, 0) + #{outNum},
status ='1'
WHERE id = #{id}
</update>
<update id="orderOut">
UPDATE ma_order_details
SET is_finished = CASE
WHEN (IFNULL(real_num, 0) + #{outNum}) = num THEN '1'
WHEN (IFNULL(real_num, 0) + #{outNum}) &gt; 0 AND
(IFNULL(real_num, 0) + #{outNum}) &lt; num THEN '2'
ELSE '0'
END,
real_num = IFNULL(real_num, 0) + #{outNum}
WHERE id = #{detailsId}
-- 可选:防止超量出库(若业务不允许实际数量超过申请数量,添加此条件)
AND (IFNULL(real_num, 0) + #{outNum}) &lt;= num
</update>
<update id="orderOutAll">
UPDATE ma_order_details
SET is_finished ='1',
real_num = num
WHERE order_id = #{id}
</update>
<update id="orderOutCancel">
UPDATE ma_order_details
SET is_finished ='1'
WHERE id = #{detailsId}
</update>
<update id="orderOutCancelAll">
UPDATE ma_order_details
SET is_finished ='1'
WHERE order_id = #{id}
</update>
<delete id="deleteChangeDetails"> <delete id="deleteChangeDetails">
update cs_device_change_details set del_flag = '1' where change_id = #{id} update cs_device_change_details set del_flag = '1' where change_id = #{id}

View File

@ -157,7 +157,25 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
sd.dept_name as sellerName, sd.dept_name as sellerName,
moi.address, moi.address,
moi.order_id, moi.order_id,
dept.dept_name as companyName dept.dept_name as companyName,
CASE
-- 已完成:所有子表记录 is_finished = 1
WHEN NOT EXISTS (
SELECT 1
FROM ma_order_details cdc1
WHERE cdc1.order_id = moi.order_id
AND cdc1.is_finished &lt;&gt; '1' -- 不存在非1的记录
) THEN '3'
-- 待出库:所有子表记录 is_finished = 0
WHEN NOT EXISTS (
SELECT 1
FROM ma_order_details cdc2
WHERE cdc2.order_id = moi.order_id
AND cdc2.is_finished &lt;&gt; '0' -- 不存在非0的记录
) THEN '1'
-- 其余情况:出库中(包含 is_finished=2 或其他值)
ELSE '2'
END AS taskStatus
FROM FROM
ma_order_details hh ma_order_details hh
LEFT JOIN ma_order_info moi ON moi.order_id = hh.order_id LEFT JOIN ma_order_info moi ON moi.order_id = hh.order_id
@ -209,41 +227,79 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
</select> </select>
<select id="selectOrderDetailsById" resultType="com.bonus.material.order.domain.OrderDetailDto"> <select id="selectOrderDetailsById" resultType="com.bonus.material.order.domain.OrderDetailDto">
SELECT (SELECT mdi.device_name,
mdi.device_name, mdi.code,
mdi.code, mdi.identify_code,
mdi.identify_code, hh.order_status,
hh.order_status, hh.days,
hh.days, bfi.url,
bfi.url, hh.id,
hh.id, hh.ma_id,
hh.ma_id, hh.devType,
hh.num, hh.num,
hh.costs, hh.costs,
hh.rent_begin_time, hh.rent_begin_time,
hh.rent_end_time, hh.rent_end_time,
hh.pre_outbound_user, hh.pre_outbound_user,
hh.pre_outbound_time, hh.pre_outbound_time,
hh.take_over_user, hh.take_over_user,
hh.take_over_time, hh.take_over_time,
hh.rent_over_user, hh.rent_over_user,
hh.rent_over_time, hh.rent_over_time,
hh.change_cost as changeCost, hh.change_cost as changeCost,
hh.relief_cost as reliefCost, hh.relief_cost as reliefCost,
hh.relief_change_cost as reliefChangeCost, hh.relief_change_cost as reliefChangeCost,
CASE CASE
WHEN DATE(hh.rent_over_time) = DATE(hh.pre_outbound_time) THEN 1 WHEN DATE(hh.rent_over_time) = DATE(hh.pre_outbound_time) THEN 1
ELSE TIMESTAMPDIFF(DAY, hh.pre_outbound_time, hh.rent_over_time) + 1 ELSE TIMESTAMPDIFF(DAY, hh.pre_outbound_time, hh.rent_over_time) + 1
END AS dateDays END AS dateDays
FROM FROM ma_order_details hh
ma_order_details hh LEFT JOIN ma_order_info moi ON hh.order_id = moi.order_id
LEFT JOIN ma_order_info moi ON hh.order_id = moi.order_id LEFT JOIN ma_dev_info mdi ON hh.ma_id = mdi.ma_id
LEFT JOIN ma_dev_info mdi ON hh.ma_id = mdi.ma_id LEFT JOIN bm_file_info bfi ON hh.ma_id = bfi.model_id and bfi.task_type = 17 and bfi.file_type = 0
LEFT JOIN bm_file_info bfi ON hh.ma_id = bfi.model_id and bfi.task_type = 17 and bfi.file_type = 0 left join ma_type mt ON mdi.type_id = mt.type_id
left join ma_type mt ON mdi.type_id = mt.type_id AND bfi.file_type = 0
AND bfi.file_type = 0 WHERE hh.id = #{id}
WHERE and hh.devType = '0'
hh.id = #{id} limit 1 limit 1)
UNION ALL
(SELECT tt1.type_name AS device_name,
mdi.tool_code AS code,
mdi.identify_code,
hh.order_status,
hh.days,
CASE
WHEN mdi.fileList IS NOT NULL AND mdi.fileList != '' THEN SUBSTRING_INDEX(mdi.fileList, ',', 1)
ELSE NULL
END AS url,
hh.id,
hh.ma_id,
hh.devType,
hh.num,
hh.costs,
hh.rent_begin_time,
hh.rent_end_time,
hh.pre_outbound_user,
hh.pre_outbound_time,
hh.take_over_user,
hh.take_over_time,
hh.rent_over_user,
hh.rent_over_time,
hh.change_cost as changeCost,
hh.relief_cost as reliefCost,
hh.relief_change_cost as reliefChangeCost,
CASE
WHEN DATE(hh.rent_over_time) = DATE(hh.pre_outbound_time) THEN 1
ELSE TIMESTAMPDIFF(DAY, hh.pre_outbound_time, hh.rent_over_time) + 1
END AS dateDays
FROM ma_order_details hh
LEFT JOIN ma_order_info moi ON hh.order_id = moi.order_id
LEFT JOIN tool_ledger mdi ON hh.ma_id = mdi.id
LEFT JOIN tool_type tt ON mdi.type_id = tt.type_id
LEFT JOIN tool_type tt1 ON tt.parent_id = tt1.type_id
WHERE hh.id = #{id}
and hh.devType = '1'
limit 1)
</select> </select>
<select id="getOrderDetailsById" resultType="com.bonus.material.order.domain.OrderInfoDto"> <select id="getOrderDetailsById" resultType="com.bonus.material.order.domain.OrderInfoDto">