<?xml version="1.0" encoding="UTF-8"?>
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
<mapper namespace="com.qianwen.smartman.modules.smis.mapper.WorkstationMapper">
|
|
|
<select id="listPage" resultType="com.qianwen.smartman.modules.smis.vo.WorkstationVO">
|
SELECT
|
a.id,
|
a.name,
|
a.code,
|
a.type,
|
a.calendar_code calendarCode,
|
d.name calendarName,
|
a.calendar_code_waiting calendarCodeWaiting,
|
a.standard_efficiency standardEfficiency,
|
a.production_capacity_group productionCapacityGroup,
|
a.avatar,
|
c.id groupId,
|
c.name groupName,
|
a.status status,
|
a.create_dept,
|
a.create_user,
|
a.transmission_method,
|
bm.id machineId,
|
bm.machine_code machineCode,
|
bm.machine_name machineName,
|
bm.collect_switch collectSwitch,
|
bm.pin_code machinePinCode,
|
bm.short_code machineShortCode
|
FROM blade_workstation a
|
LEFT JOIN blade_common_group_of_item b ON a.id = b.item_id
|
LEFT JOIN blade_common_group c ON b.group_id = c.id
|
LEFT JOIN blade_production_calendar d ON a.calendar_code = d.code and d.is_deleted = 0 and d.year = #{year}
|
LEFT JOIN blade_workstation_of_machine bwom on a.id = bwom.workstation_id
|
LEFT JOIN blade_machine bm on bm.id = bwom.machine_id and bm.is_deleted = 0
|
<where>
|
a.is_deleted = 0
|
<if test="groupId != null and groupId != '' and groupId != allWorkstationId">
|
AND c.id IN
|
<foreach collection="groupIdList" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
AND c.is_deleted = 0
|
</if>
|
<if test="status != null">
|
and a.status = #{status}
|
</if>
|
<if test="keyWord != null and keyWord != ''">
|
and (a.code Like concat(#{keyWord},'%') or a.name Like concat(#{keyWord},'%'))
|
</if>
|
<if test="type != null">
|
and a.type = #{type}
|
</if>
|
</where>
|
ORDER BY a.create_time DESC ,a.id DESC
|
</select>
|
|
|
<select id="listWorkstation" resultType="com.qianwen.smartman.modules.smis.vo.WorkstationVO">
|
SELECT
|
a.id,
|
a.name,
|
a.code,
|
a.type,
|
a.calendar_code calendarCode,
|
a.calendar_code_waiting calendarCodeWaiting,
|
a.standard_efficiency standardEfficiency,
|
a.production_capacity_group productionCapacityGroup,
|
a.avatar,
|
c.id groupId,
|
c.name groupName,
|
a.device_type deviceType
|
FROM blade_workstation a
|
LEFT JOIN blade_common_group_of_item b ON a.id = b.item_id
|
LEFT JOIN blade_common_group c ON b.group_id = c.id
|
<where>
|
a.is_deleted = 0
|
<if test="groupIds != null and groupIds.size() > 0 ">
|
AND c.id in
|
<foreach collection="groupIds" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
AND c.is_deleted = 0
|
</if>
|
</where>
|
</select>
|
|
<select id="getWorkstationListByWorkStationGroupIdList"
|
resultType="com.qianwen.smartman.modules.smis.vo.WorkstationRealTimeStatusVO">
|
SELECT DISTINCT a.id,
|
a.NAME,
|
a.CODE,
|
a.avatar,
|
a.create_dept,
|
a.create_user,
|
bm.id AS machineId,
|
bm.machine_code AS machineCode,
|
bm.machine_name AS machineName,
|
bm.brand AS machineBrand
|
FROM blade_workstation a
|
LEFT JOIN blade_common_group_of_item b ON a.id = b.item_id
|
LEFT JOIN blade_workstation_of_machine m ON a.id = m.workstation_id
|
LEFT JOIN blade_machine bm ON m.machine_id = bm.id
|
where a.is_deleted = 0 AND a.type = 0 and a.status = 1
|
<if test="dto.workStationGroupIdList != null and dto.workStationGroupIdList.size() > 0">
|
AND b.group_id IN
|
<foreach collection="dto.workStationGroupIdList" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
</select>
|
|
<select id="listWorkStationOnShiftIndex" resultType="com.qianwen.smartman.modules.smis.entity.Workstation">
|
SELECT w.*
|
FROM blade_workstation w
|
INNER JOIN blade_production_calendar pc ON w.calendar_code = pc.code AND pc.year = #{year}
|
INNER JOIN blade_production_calendar_day pdc
|
ON pc.id = pdc.calendar_id AND pdc.is_deleted = 0 AND pdc.calendar_date = #{queryDate}
|
INNER JOIN blade_shift_detail sd ON pdc.model_id = sd.model_id AND sd.shift_index = #{shift}
|
WHERE w.is_deleted = 0
|
AND pc.is_deleted = 0
|
AND pdc.is_deleted = 0
|
AND w.type = #{type}
|
<if test="ids != null and ids.size() > 0">
|
AND w.id IN
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
order by w.code asc;
|
</select>
|
<select id="countWorkStationOnShiftIndex" resultType="java.lang.Integer">
|
SELECT count(*)
|
FROM blade_workstation w
|
INNER JOIN blade_production_calendar pc ON w.calendar_code = pc.code AND pc.year = #{year}
|
INNER JOIN blade_production_calendar_day pdc
|
ON pc.id = pdc.calendar_id AND pdc.is_deleted = 0 AND pdc.calendar_date = #{queryDate}
|
INNER JOIN blade_shift_detail sd ON pdc.model_id = sd.model_id AND sd.shift_index = #{shift}
|
WHERE w.is_deleted = 0
|
AND pc.is_deleted = 0
|
AND pdc.is_deleted = 0
|
|
AND w.type = #{type}
|
<if test="ids != null and ids.size() > 0">
|
AND w.id IN
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
</select>
|
|
<select id="listWorkStationByGroupId" resultType="com.qianwen.smartman.modules.smis.entity.Workstation">
|
SELECT *
|
FROM blade_workstation
|
where id IN (
|
select distinct item_id
|
from blade_common_group_of_item
|
<if test="ids != null and ids.size() > 0">
|
where group_id IN
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
)
|
</select>
|
|
<select id="findByIndexAndDateAndTypeAndYear" resultType="java.lang.Long">
|
SELECT distinct w.id
|
FROM blade_workstation w
|
INNER JOIN blade_production_calendar pc ON w.calendar_code = pc.code AND pc.year = #{year}
|
INNER JOIN blade_production_calendar_day pdc
|
ON pc.id = pdc.calendar_id AND pdc.is_deleted = 0 AND pdc.calendar_date = #{queryDate}
|
INNER JOIN blade_shift_detail sd ON pdc.model_id = sd.model_id AND sd.shift_index = #{shift}
|
WHERE w.is_deleted = 0
|
AND pc.is_deleted = 0
|
AND pdc.is_deleted = 0
|
AND w.type = #{type}
|
</select>
|
|
<select id="findByMachineShortCode" resultType="java.lang.Long">
|
select bw.id
|
from blade_workstation bw
|
left join blade_workstation_of_machine bwom on bw.id = bwom.workstation_id
|
left join blade_machine bm on bwom.machine_id = bm.id and bm.status = 1
|
where bm.short_code = #{code}
|
and bw.is_deleted = 0
|
and bm.is_deleted = 0
|
</select>
|
|
<select id="queryDmpList" resultType="com.qianwen.smartman.modules.smis.vo.DmpVariablesVO">
|
select id,
|
dmp_device_id dmpDeviceId,
|
machine_id machineId,
|
type,
|
name,
|
description,
|
device_address deviceAddress,
|
access,
|
data_length dataLength,
|
value_factor valueFactor,
|
data_type dataType,
|
method_param methodParam,
|
idx,
|
default_value defaultValue
|
from blade_dmp_variables
|
where machine_id = (select bwom.machine_id
|
from blade_workstation_of_machine bwom
|
where workstation_id = #{workstationId})
|
and (data_type >= 3 and data_type <= 10)
|
</select>
|
|
<select id="queryWcsList" resultType="com.qianwen.smartman.modules.smis.dto.WorkstationWcsDmpDTO">
|
select bww.id,
|
bdv.id dmpDeviceId,
|
bdv.name,
|
bww.data_item as description,
|
bdv.data_type dataType,
|
bww.data_type wcsDataType,
|
bww.process_parameter processParameter
|
from blade_workstation_wcs bww
|
left join blade_dmp_variables bdv on bww.dmp_variables_id = bdv.id
|
where workstation_id = #{workstationId}
|
and bww.is_deleted = 0
|
</select>
|
|
<select id="queryDateTypeState" resultType="com.qianwen.smartman.modules.smis.dto.WorkstationWcsDmpDTO">
|
select bww.id,
|
bdv.id dmpDeviceId,
|
bdv.name,
|
bdv.description,
|
bdv.data_type dataType,
|
bww.data_type wcsDataType
|
from blade_workstation_wcs bww
|
left join blade_dmp_variables bdv on bww.dmp_variables_id = bdv.id
|
where workstation_id = #{workstationId}
|
and bww.data_type = #{code}
|
and bww.is_deleted = 0
|
</select>
|
|
<select id="queryGroupWorkStation" resultType="com.qianwen.smartman.modules.mdc.dto.GroupWorkDTO">
|
select bcg.id,
|
full_name as fullName,
|
code,
|
name,
|
bcgoi.item_id as itemId
|
from blade_common_group bcg
|
left join blade_common_group_of_item bcgoi on bcg.id = bcgoi.group_id
|
where bcg.is_deleted = 0
|
and item_id IN
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</select>
|
<select id="queryWorkstationAndGroup" resultType="com.qianwen.smartman.modules.smis.vo.WorkstationVO">
|
SELECT
|
bw.*,
|
bcg.NAME groupName,
|
bcg.id groupId
|
FROM
|
blade_workstation bw
|
LEFT JOIN blade_common_group_of_item bcgoi ON bw.id = bcgoi.item_id
|
LEFT JOIN blade_common_group bcg ON bcg.id = bcgoi.group_id
|
where bw.is_deleted = 0
|
<if test="workstationIds != null and workstationIds.size() > 0">
|
and bw.id IN
|
<foreach collection="workstationIds" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
ORDER BY bcg.id
|
</select>
|
|
<select id="listWorkStationOnShift" resultType="com.qianwen.smartman.modules.smis.entity.Workstation">
|
SELECT distinct w.*
|
FROM blade_workstation w
|
INNER JOIN blade_production_calendar pc ON w.calendar_code = pc.code AND pc.year = #{year}
|
INNER JOIN blade_production_calendar_day pdc
|
ON pc.id = pdc.calendar_id AND pdc.is_deleted = 0 AND pdc.calendar_date = #{queryDate}
|
INNER JOIN blade_shift_detail sd ON pdc.model_id = sd.model_id AND sd.shift_index IN
|
<foreach collection="shifts" item="shift" open="(" separator="," close=")">
|
#{shift}
|
</foreach>
|
WHERE w.is_deleted = 0
|
AND pc.is_deleted = 0
|
AND pdc.is_deleted = 0
|
AND w.type = #{type}
|
<if test="ids != null and ids.size() > 0">
|
AND w.id IN
|
<foreach collection="ids" item="id" open="(" separator="," close=")">
|
#{id}
|
</foreach>
|
</if>
|
order by w.code;
|
</select>
|
|
<select id="getDayShift" resultType="com.qianwen.smartman.modules.smis.entity.ProductionCalendarDay">
|
select bpcd.*
|
from blade_production_calendar_day bpcd
|
left join blade_production_calendar bpc on bpc.id = bpcd.calendar_id
|
where bpcd.calendar_date = #{calendarDate}
|
and bpc.code = (select bw.calendar_code
|
from blade_workstation bw
|
where bw.id = #{workstationId})
|
</select>
|
<select id="getWorkstationData" resultType="com.qianwen.smartman.modules.report.dto.WorkstationDataDTO">
|
SELECT
|
bw.id AS workstationId,
|
bw.NAME AS workstationName,
|
bw.CODE AS workstationCode,
|
cg.NAME AS workstationGroup
|
FROM
|
blade_workstation bw
|
LEFT JOIN blade_common_group_of_item cfi ON cfi.item_id = bw.id
|
LEFT JOIN blade_common_group cg ON cg.id = cfi.group_id
|
WHERE
|
bw.is_deleted = 0
|
AND bw.STATUS = 1
|
AND bw.type =0
|
<if test="keyword !=null and keyword != ''">
|
and ( bw.NAME like CONCAT(#{keyword}, '%') or bw.CODE like CONCAT(#{keyword}, '%'))
|
</if>
|
<if test="workstationIds != null and workstationIds.size() > 0">
|
AND bw.id IN
|
<foreach collection="workstationIds" item="workstationId" open="(" separator="," close=")">
|
#{workstationId}
|
</foreach>
|
</if>
|
order by bw.code desc
|
</select>
|
|
<select id="getWorkstationDataWithIndexName" resultType="com.qianwen.smartman.modules.report.dto.WorkstationDataDTO">
|
SELECT
|
bw.id AS workstationId,
|
bw.NAME AS workstationName,
|
bw.CODE AS workstationCode,
|
cg.NAME AS workstationGroup
|
FROM
|
blade_workstation bw
|
LEFT JOIN blade_common_group_of_item cfi ON cfi.item_id = bw.id
|
LEFT JOIN blade_common_group cg ON cg.id = cfi.group_id
|
left join blade_production_calendar pc on pc.code=bw.calendar_code
|
LEFT JOIN blade_production_calendar_day pcd ON pc.id = pcd.calendar_id
|
LEFT JOIN blade_shift_detail sd on sd.model_id = pcd.model_id
|
WHERE
|
bw.is_deleted = 0
|
AND bw.STATUS = 1
|
AND bw.type =0
|
<if test="keyword !=null and keyword != ''">
|
and (bw.NAME like CONCAT(#{keyword}, '%') or bw.CODE like CONCAT(#{keyword}, '%'))
|
</if>
|
<if test="workstationIds != null and workstationIds.size() > 0">
|
AND bw.id IN
|
<foreach collection="workstationIds" item="workstationId" open="(" separator="," close=")">
|
#{workstationId}
|
</foreach>
|
</if>
|
<if test="indexName !=null and indexName != ''">
|
and sd.index_name like CONCAT(#{indexName},'%')
|
</if>
|
<if test="indexName !=null and indexName != '' and startTime != null">
|
and pcd.calendar_date BETWEEN #{startTime} AND #{endTime}
|
</if>
|
group by bw.id , bw.NAME , bw.CODE , cg.NAME
|
order by bw.code desc
|
</select>
|
<select id="getDmpVar" resultType="com.qianwen.smartman.modules.mdc.dto.WorkstationDmpDTO">
|
select bw.id workstationId, bdv.name dmpName, bww.data_type dataType, bww.data_item_crc itemCrc
|
from blade_workstation bw
|
INNER JOIN blade_workstation_of_machine bwom on bw.id = bwom.workstation_id
|
INNER JOIN blade_dmp_variables bdv on bwom.machine_id = bdv.machine_id
|
INNER JOIN blade_workstation_wcs bww on bww.workstation_id = bw.id and bww.dmp_variables_id = bdv.id
|
where bw.is_deleted = 0
|
and bww.is_deleted = 0
|
and bw.id = #{workstationId}
|
</select>
|
|
<select id="getWorkMachine" resultType="com.qianwen.smartman.modules.smis.vo.WorkMachineEasyVO">
|
select bw.id workstationId,
|
bw.code workCode,
|
bw.name workName,
|
bm.id machineId,
|
bm.machine_code machineCode,
|
bm.machine_name machineName,
|
bm.pin_code pinCode,
|
bm.short_code shortCode
|
from blade_workstation bw
|
left join blade_workstation_of_machine bwom on bw.id = bwom.workstation_id
|
left join blade_machine bm on bwom.machine_id = bm.id and bm.is_deleted = 0
|
where bw.is_deleted = 0
|
and bw.id = #{workstationId}
|
</select>
|
<select id="listMachine" resultType="com.qianwen.smartman.modules.smis.entity.Workstation">
|
SELECT
|
bw.id,
|
bw.code,
|
bw.name,
|
bw.avatar,
|
bw.type,
|
bw.calendar_code,
|
bw.standard_efficiency,
|
bw.production_capacity_group,
|
bw.calendar_code_waiting,
|
bw.status,
|
bw.support_cnc_rw,
|
bw.device_type,
|
bw.properties,
|
bw.create_dept,
|
bw.create_user,
|
bdtd.name ftpCatalogue
|
FROM
|
blade_workstation bw
|
LEFT JOIN blade_dnc_ws_relation_td bdwrt ON bdwrt.workstation_id = bw.id AND bdwrt.is_deleted = 0
|
LEFT JOIN blade_dnc_transfer_directory bdtd ON bdtd.id = bdwrt.transfer_director_id AND bdtd.is_deleted = 0
|
WHERE
|
bw.is_deleted = 0
|
AND bw.type = 0
|
<if test="status != null">
|
AND bw.STATUS = #{status}
|
</if>
|
<if test="status == null">
|
AND bw.STATUS = 1
|
</if>
|
order by bw.code asc
|
</select>
|
<!-- 获得非正常状态下的工位(保养状态正常或者待保养、维修状态正常)-->
|
<select id="getWorkstationListInMaintainOrRepairById"
|
resultType="com.qianwen.smartman.modules.smis.vo.WorkstationVO">
|
SELECT bow.workstation_id AS id,
|
bow.workstation_name AS NAME,
|
bw.CODE AS CODE
|
FROM blade_order_workstation bow
|
LEFT JOIN blade_workstation bw ON bow.workstation_id = bw.id
|
AND bw.is_deleted = 0
|
LEFT JOIN blade_workstation_of_machine bwom ON bw.id = bwom.workstation_id
|
LEFT JOIN blade_machine bm ON bwom.machine_id = bm.id
|
AND bm.is_deleted = 0
|
WHERE bow.is_deleted = 0
|
AND (bm.repair_status != 1
|
OR bm.maintenance_status NOT IN (1, 2))
|
AND bow.process_id = #{orderProcessId}
|
AND bow.workstation_id IN
|
<foreach collection="workstationIdList" item="workstationId" open="(" separator="," close=")">
|
#{workstationId}
|
</foreach>
|
</select>
|
|
<!-- 获得正常状态下的工位(保养状态正常或者待保养、维修状态正常)-->
|
<select id="getWorkstationListInMaintainOrRepairByIdList"
|
resultType="com.qianwen.smartman.modules.smis.vo.WorkstationVO">
|
SELECT bow.workstation_id AS id,
|
bow.workstation_name AS NAME,
|
bw.CODE AS CODE
|
FROM blade_order_workstation bow
|
LEFT JOIN blade_workstation bw ON bow.workstation_id = bw.id
|
AND bw.is_deleted = 0
|
LEFT JOIN blade_workstation_of_machine bwom ON bw.id = bwom.workstation_id
|
LEFT JOIN blade_machine bm ON bwom.machine_id = bm.id
|
AND bm.is_deleted = 0
|
WHERE bow.is_deleted = 0
|
AND (bm.repair_status != 1
|
OR bm.maintenance_status NOT IN (1, 2))
|
AND bow.process_id IN
|
<foreach collection="orderProcessIdList" item="orderProcessId" open="(" separator="," close=")">
|
#{orderProcessId}
|
</foreach>
|
AND bow.workstation_id IN
|
<foreach collection="workstationIdList" item="workstationId" open="(" separator="," close=")">
|
#{workstationId}
|
</foreach>
|
</select>
|
|
<select id="listWorkstationDataByGroup" resultType="com.qianwen.smartman.modules.smis.entity.Workstation">
|
SELECT bw.id,
|
bw.code,
|
bw.name,
|
bw.avatar,
|
bw.type,
|
bw.calendar_code,
|
bw.standard_efficiency,
|
bw.production_capacity_group,
|
bw.calendar_code_waiting,
|
bw.status,
|
bw.support_cnc_rw,
|
bw.device_type,
|
bw.properties,
|
bw.create_dept,
|
bw.create_user
|
FROM blade_common_group_of_item bcg
|
LEFT JOIN blade_workstation bw on bcg.item_id = bw.id
|
where bcg.group_id = #{groupId}
|
and bw.is_deleted = 0
|
and bw.type = 0
|
and bw.status = 1
|
</select>
|
</mapper>
|