Commit 6f2d2c54 authored by chicheng's avatar chicheng

报表相关调整

parent 96a24bf9
......@@ -8,5 +8,7 @@ import lombok.Data;
@Data
public class WorkorderFirstUnfinishedProcessVo {
private String workorderCode;
/** 排产次数(task_batch 后缀) */
private String taskBatch;
private String firstUnfinishedProcessName;
}
......@@ -203,7 +203,8 @@ public interface ProTaskMapper extends BaseMapper<ProTask> {
void deleteByTaskBatch(@Param("taskBatch")String taskBatch);
List<WorkOrderProgressProcessListResponse> getProcessList(@Param("workorderCode")String workorderCode);
List<WorkOrderProgressProcessListResponse> getProcessList(@Param("workorderCode") String workorderCode,
@Param("taskBatch") String taskBatch);
/**
* 批量查询工单首道未完成工序名称(按 idx 升序,与生产进度工序状态判定一致)
......
......@@ -64,8 +64,11 @@ public class WorkOrderProgressController extends BaseController {
@PreAuthorize("@ss.hasPermi('mes:pro:feedback:get')")
@Log(title = "生产进度:工序明细", businessType = BusinessType.QUERY)
@GetMapping("/getProcessList")
public TableDataInfo<WorkOrderProgressProcessListResponse> getProcessList(@RequestParam("workorderCode") String workorderCode) {
List<WorkOrderProgressProcessListResponse> workOrderProgressListResponses = workOrderProgressService.getProcessList(workorderCode);
public TableDataInfo<WorkOrderProgressProcessListResponse> getProcessList(
@RequestParam("workorderCode") String workorderCode,
@RequestParam(value = "taskBatch", required = false) String taskBatch) {
List<WorkOrderProgressProcessListResponse> workOrderProgressListResponses =
workOrderProgressService.getProcessList(workorderCode, taskBatch);
return getDataTable(workOrderProgressListResponses);
}
......
......@@ -10,7 +10,7 @@ import java.util.List;
public interface WorkOrderProgressService {
List<WorkOrderProgressListResponse> getList(WorkOrderProgressRequest workOrderProgressRequest);
List<WorkOrderProgressProcessListResponse> getProcessList(String workorderCode);
List<WorkOrderProgressProcessListResponse> getProcessList(String workorderCode, String taskBatch);
List<WorkOrderProgressFeedbackListResponse> getFeedbackList(String workorderCode,Long taskId,Long taskWorkunitId);
}
......@@ -80,19 +80,24 @@ public class WorkOrderProgressServiceImp implements WorkOrderProgressService {
}
List<WorkorderFirstUnfinishedProcessVo> rows = proTaskMapper.selectFirstUnfinishedProcessNameByWorkorderCodes(producingCodes);
Map<String, String> nameMap = rows.stream().collect(Collectors.toMap(
WorkorderFirstUnfinishedProcessVo::getWorkorderCode,
vo -> progressRowKey(vo.getWorkorderCode(), vo.getTaskBatch()),
WorkorderFirstUnfinishedProcessVo::getFirstUnfinishedProcessName,
(a, b) -> a));
for (WorkOrderProgressListResponse item : list) {
if (WorkorderStatusEnum.PRODUCING.getValue().equals(item.getStatus())) {
item.setFirstUnfinishedProcessName(nameMap.get(item.getWorkorderCode()));
item.setFirstUnfinishedProcessName(nameMap.get(progressRowKey(item.getWorkorderCode(), item.getTaskBatch())));
}
}
}
private static String progressRowKey(String workorderCode, String taskBatch) {
return workorderCode + "|" + (taskBatch != null ? taskBatch : "");
}
@Override
public List<WorkOrderProgressProcessListResponse> getProcessList(String workorderCode) {
List<WorkOrderProgressProcessListResponse> workOrderProgressProcessListResponses = proTaskMapper.getProcessList(workorderCode);
public List<WorkOrderProgressProcessListResponse> getProcessList(String workorderCode, String taskBatch) {
List<WorkOrderProgressProcessListResponse> workOrderProgressProcessListResponses =
proTaskMapper.getProcessList(workorderCode, taskBatch);
for (WorkOrderProgressProcessListResponse workOrderProgressProcessListResponse : workOrderProgressProcessListResponses){
// if(workOrderProgressProcessListResponse.getStatus().equals(TaskStatusEnum.BEGINNING.getStatus())){
// workOrderProgressProcessListResponse.setStatus("加工中");
......
......@@ -543,31 +543,23 @@
<select id="getFeedbackList"
resultType="com.ximai.mes.report.response.WorkOrderProgressFeedbackListResponse">
SELECT
feedback.user_name,
sum(feedback.quantity) quantity,
sum(feedback.quantity_feedback) quantity_feedback,
sum(feedback.quantity_qualify) quantity_qualify,
sum(feedback.quantity_unqualify) quantity_unqualify,
sum(feedback.quantity_uncheck) quantity_uncheck,
feedback.nick_name,
workunit.std_working_time ,
pro_task.task_batch
FROM
pro_task_workunit workunit
JOIN pro_feedback feedback ON feedback.task_workunit_id = workunit.task_workunit_id
join pro_task on pro_task.task_id = workunit.task_id
feedback.nick_name,
(IFNULL(feedback.quantity_qualify, 0) + IFNULL(feedback.quantity_unqualify, 0)) AS quantity_feedback,
feedback.quantity_qualify,
feedback.quantity_unqualify,
workunit.std_working_time,
CAST(feedback.machine_time AS DECIMAL(10, 2)) AS machine_time,
feedback.feedback_time,
pro_task.task_batch
FROM pro_feedback feedback
INNER JOIN pro_task_workunit workunit ON feedback.task_workunit_id = workunit.task_workunit_id
INNER JOIN pro_task ON pro_task.task_id = workunit.task_id
<where>
workorder_code = #{workorderCode}
feedback.workorder_code = #{workorderCode}
<if test="taskId != null">and feedback.task_id = #{taskId}</if>
<if test="taskWorkunitId != null">and feedback.task_workunit_id = #{taskWorkunitId}</if>
</where>
group by
feedback.user_name,
feedback.nick_name,
workunit.std_working_time ,
pro_task.task_batch
order by
pro_task.task_batch
ORDER BY feedback.feedback_time DESC, feedback.record_id DESC
</select>
<select id="getListByDefect" resultType="com.ximai.mes.report.response.FeedbackResponse">
select
......
......@@ -200,7 +200,7 @@
pw.product_spc,
pw.unit_of_measure,
pw.arrange_code,
pw.quantity,
MAX(CASE WHEN task.is_last_process = 1 THEN task.quantity END) AS quantity,
pw.client_id,
pw.client_code,
......@@ -268,12 +268,12 @@
item.line_name,
SUBSTRING_INDEX(task.task_batch, '-', -1) task_batch,
MIN(task.create_time) schedule_date,
sum(case task.is_last_process when 0 THEN 0 ELSE fe.quantity_qualify + fe.quantity_unqualify END) as quantity_produced
FROM
pro_workorder pw
LEFT JOIN pro_feedback fe ON fe.workorder_id = pw.workorder_id
left join pro_task task on task.task_id = fe.task_id
left join md_item item on item.item_id = pw.product_id
IFNULL(SUM(CASE WHEN task.is_last_process = 1 THEN IFNULL(fe.quantity_qualify, 0) + IFNULL(fe.quantity_unqualify, 0) ELSE 0 END), 0) AS quantity_produced
FROM pro_workorder pw
INNER JOIN pro_task_workorder tw ON tw.workorder_id = pw.workorder_id
INNER JOIN pro_task task ON task.task_id = tw.task_id
LEFT JOIN pro_feedback fe ON fe.task_id = task.task_id AND fe.workorder_id = pw.workorder_id
LEFT JOIN md_item item ON item.item_id = pw.product_id
<where>
<if test="workorderCode != null and workorderCode != ''">and pw.workorder_code = #{workorderCode}</if>
<if test="productId != null ">and pw.product_id = #{productId}</if>
......@@ -303,7 +303,7 @@
pw.product_spc,
pw.unit_of_measure,
pw.arrange_code,
pw.quantity,
task.task_batch,
pw.client_id,
pw.client_code,
pw.client_name,
......
......@@ -470,16 +470,24 @@
<select id="getProcessList"
resultType="com.ximai.mes.report.response.WorkOrderProgressProcessListResponse">
select * from pro_task where arrange_code = #{workorderCode} order by task_id
select * from pro_task
where arrange_code = #{workorderCode}
<if test="taskBatch != null and taskBatch != ''">
and SUBSTRING_INDEX(task_batch, '-', -1) = #{taskBatch}
</if>
order by idx, task_id
</select>
<select id="selectFirstUnfinishedProcessNameByWorkorderCodes"
resultType="com.ximai.mes.pro.domain.vo.WorkorderFirstUnfinishedProcessVo">
SELECT arrange_code AS workorder_code, process_name AS first_unfinished_process_name
SELECT arrange_code AS workorder_code,
SUBSTRING_INDEX(task_batch, '-', -1) AS task_batch,
process_name AS first_unfinished_process_name
FROM (
SELECT t.arrange_code,
t.task_batch,
t.process_name,
ROW_NUMBER() OVER (PARTITION BY t.arrange_code ORDER BY t.idx ASC, t.task_id ASC) AS rn
ROW_NUMBER() OVER (PARTITION BY t.arrange_code, t.task_batch ORDER BY t.idx ASC, t.task_id ASC) AS rn
FROM pro_task t
WHERE t.arrange_code IN
<foreach collection="workorderCodes" item="code" open="(" separator="," close=")">
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment