| | |
| | | package com.dy.pmsGlobal.daoOth; |
| | | |
| | | import cn.hutool.json.JSONObject; |
| | | import com.dy.pmsGlobal.pojoOth.OthStatisticWorkload; |
| | | import org.apache.ibatis.annotations.Mapper; |
| | | import org.apache.ibatis.annotations.Param; |
| | | |
| | | import java.time.LocalDate; |
| | | import java.util.Date; |
| | | import java.util.List; |
| | | |
| | | /** |
| | | * @author User |
| | |
| | | String selectMaxDate(); |
| | | |
| | | void insertBatch(@Param("startDt")Date startDt, @Param("endDt") Date endDt); |
| | | |
| | | List<JSONObject> queryStatisticWork(@Param("startDt")Date startDt, @Param("endDt") Date endDt); |
| | | } |
| | |
| | | List<JSONObject> queryWorkList(); |
| | | |
| | | List<JSONObject> queryAttendUser(@Param("startTime") Date startTime, @Param("endTime") Date endTime, @Param("todayDt") Date todayDt); |
| | | |
| | | } |
| | |
| | | DATE_FORMAT(DATE_SUB(NOW(), INTERVAL 1 DAY),'%Y-%m-%d') -- 如果两个表都没有数据,返回前一天时间 无用 |
| | | ) AS max_date; |
| | | </select> |
| | | |
| | | <select id="queryStatisticWork" resultType="cn.hutool.json.JSONObject"> |
| | | WITH total as (select |
| | | DISTINCT(t.device_no) device_no,t.curr_node,t.node_content,t.number,p.pro_name, p.plan_name,u.id user_id,u.`name` user_name |
| | | FROM |
| | | (select DISTINCT device_no,plan_id,station_id,curr_node,node_content,number,updated_by from sta_device_production_log_past |
| | | where out_time BETWEEN #{startDt} AND #{endDt} |
| | | union |
| | | select DISTINCT device_no,plan_id,station_id,curr_node,node_content,number,updated_by from sta_device_production_log |
| | | where out_time BETWEEN #{startDt} AND #{endDt} |
| | | ) t |
| | | left join (select pap.id,pap.`name` as plan_name,pp.`name` as pro_name |
| | | from pr_assembly_plan pap, plt_product pp where pap.pro_id = pp.id) p on t.plan_id = p.id |
| | | left JOIN ba_user u on u.id=t.updated_by), |
| | | assistants_total as (select t.device_no,t.curr_node,t.node_content,t.number,p.pro_name, p.plan_name,u.id user_id,u.`name` user_name |
| | | FROM |
| | | ( SELECT a.*,SUBSTRING_INDEX( SUBSTRING_INDEX( a.assistants, ',', b.help_topic_id + 1 ), ',', - 1 ) AS assistant FROM |
| | | (select DISTINCT device_no,plan_id,station_id,curr_node,node_content,number,updated_by,assistants from sta_device_production_log_past |
| | | where assistants IS NOT NULL AND out_time BETWEEN #{startDt} AND #{endDt} |
| | | union |
| | | select DISTINCT device_no,plan_id,station_id,curr_node,node_content,number,updated_by,assistants from sta_device_production_log |
| | | where assistants IS NOT NULL AND out_time BETWEEN #{startDt} AND #{endDt}) a |
| | | JOIN mysql.help_topic AS b ON b.help_topic_id <![CDATA[ < ]]> ( LENGTH( a.assistants ) - LENGTH( REPLACE ( a.assistants, ',', '' ) ) + 1 ) |
| | | ) t |
| | | left join (select pap.id,pap.`name` as plan_name,pp.`name` as pro_name |
| | | from pr_assembly_plan pap, plt_product pp where pap.pro_id = pp.id) p on t.plan_id = p.id |
| | | left JOIN ba_user u on u.id=t.assistant) |
| | | SELECT user_name, MAX(CASE record.type WHEN '计划任务' THEN record.number ELSE 0 END) plan, |
| | | MAX(CASE record.type WHEN '临时任务' THEN record.number ELSE 0 END) unplan_device, |
| | | MAX(CASE record.type WHEN '临时任务(无设备码)' THEN record.number ELSE 0 END) unplan, |
| | | MAX(CASE record.type WHEN '辅助工作' THEN record.number ELSE 0 END) assistant |
| | | FROM ( |
| | | select user_name,'计划任务' AS type,sum(number) as number from total where curr_node IS NOT NULL GROUP BY user_name |
| | | UNION |
| | | select user_name,'临时任务' AS type, sum(number) as number from total where curr_node IS NULL AND (device_no !='' AND device_no IS NOT NULL) GROUP BY user_name |
| | | UNION |
| | | select user_name,'临时任务(无设备码)' AS type, sum(number) as number from total where curr_node IS NULL AND (device_no IS NULL OR device_no ='') GROUP BY user_name |
| | | UNION |
| | | select user_name,'辅助工作' AS type , sum(number) as number from assistants_total GROUP BY user_name ) record GROUP BY record.user_name; |
| | | </select> |
| | | <delete id="deleteByPrimaryKey" parameterType="java.lang.Long"> |
| | | delete from oth_statistic_workload |
| | | where id = #{id,jdbcType=BIGINT} |
| | |
| | | /** |
| | | * 任务看板 查询在产任务看板 |
| | | * */ |
| | | @GetMapping(path="queryStatisticWork") |
| | | @Log("查询订单看板") |
| | | public BaseResponse<List<JSONObject>> queryStatisticWork(){ |
| | | List<JSONObject> list = sv.queryStatisticWork(); |
| | | return BaseResponseUtils.buildSuccess(list); |
| | | } |
| | | /** |
| | | * 任务看板 查询在产任务看板 |
| | | * */ |
| | | @GetMapping(path="queryOrderList") |
| | | @Log("查询订单看板") |
| | | public BaseResponse<List<JSONObject>> queryOrderList(){ |
| | | List<JSONObject> list = sv.queryOrderList(); |
| | | return BaseResponseUtils.buildSuccess(list); |
| | | } |
| | | |
| | | } |
| | |
| | | |
| | | private OthStatisticWorkloadMapper workloadDao; |
| | | private PrOrderMapper orderDao; |
| | | private OthStatisticWorkloadMapper statisticWorkDao; |
| | | |
| | | @Autowired |
| | | public void setOrderDao(PrOrderMapper orderDao) { |
| | |
| | | this.workloadDao = workloadDao; |
| | | } |
| | | |
| | | @Autowired |
| | | public void setStatisticWorkDao(OthStatisticWorkloadMapper statisticWorkDao) { |
| | | this.statisticWorkDao = statisticWorkDao; |
| | | } |
| | | |
| | | public Map<String, Object> getDeviceInfo(String deviceNo) { |
| | | if (StringUtils.isBlank(deviceNo)) { |
| | |
| | | List<JSONObject> list = assemblyWorkLastDao.queryAttendUser(startDt, endDt,todayDt); |
| | | return list; |
| | | } |
| | | |
| | | public List<JSONObject> queryStatisticWork() { |
| | | Date startDt = Date.from(LocalDateTime.of(LocalDate.now(), LocalTime.of(0, 0, 0)).atZone(ZoneId.systemDefault()).toInstant()); |
| | | Date endDt = new Date(); |
| | | List<JSONObject> list = statisticWorkDao.queryStatisticWork(startDt, endDt); |
| | | return list; |
| | | } |
| | | } |