| | |
| | | // total.dataTotal = res.data.total.total*1 |
| | | // total.pageTotal= res.data.total.pageTotal |
| | | // pageTotal.value = res.data.total |
| | | total.value = res.data.footSum |
| | | //total.value = res.data.footSum |
| | | produceList = produceList.value.concat(deepClone(res.data.data)) |
| | | titleSelectJson.value.processType = res.data.process |
| | | xGrid.value.reloadData(produceList) |
| | |
| | | request.post(`/report/selectProcessToBeCompleted/${pageNum.value}/${total.pageSize}/${startTime}/${newEndTime}/${inputVal}`, filterData.value).then((res) => { |
| | | if (res.code == 200) { |
| | | |
| | | total.value = res.data.footSum |
| | | //total.value = res.data.footSum |
| | | produceList = deepClone(res.data.data) |
| | | xGrid.value.reloadData(produceList) |
| | | } else { |
| | |
| | | // total.dataTotal = res.data.total.total*1 |
| | | // total.pageTotal= res.data.total.pageTotal |
| | | // pageTotal.value = res.data.total |
| | | total.value = res.data.footSum |
| | | //total.value = res.data.footSum |
| | | produceList = deepClone(res.data.data) |
| | | xGrid.value.reloadData(produceList) |
| | | } else { |
| | |
| | | } |
| | | const List = ["quantity",'childArea','actualArea','completeNum','completeArea','incompleteNum','incompleteArea'] |
| | | if (List.includes(column.field)) { |
| | | //return footSum(data, column.field) |
| | | return total.value?.[column.field] ?? 0 |
| | | return footSum(data, column.field) |
| | | } |
| | | return '' |
| | | }) |
| | |
| | | let column = [1,2,3] |
| | | //点击查询 |
| | | const getWorkOrder = () => { |
| | | let orderId = form.orderId |
| | | if (orderId === '') { |
| | | orderId = null |
| | | } |
| | | let startTime = time.date1[0] |
| | | let endTime = time.date1[1] |
| | | let date = new Date(endTime); // 将日期字符串转为 Date 对象 |
| | | // 使用 setDate 方法加一天 |
| | | date.setDate(date.getDate() + 1); |
| | | let newEndTime = date.toISOString().split('T')[0]; // 获取 YYYY-MM-DD 格式的字符串 |
| | | request.post(`/report/taskCompletionStatus/${startTime}/${newEndTime}`,column).then((res) => { |
| | | request.post(`/report/taskCompletionStatus/${startTime}/${newEndTime}/${orderId}`,column).then((res) => { |
| | | if (res.code == 200) { |
| | | if(res.data.data.length===0){ |
| | | ElMessage.warning(t('report.noDataFoundForThisOrder')) |
| | |
| | | item.reportWorkQuantity=JSON.parse(item.reportWorkQuantity) |
| | | item.reportWorkQuantityCount=JSON.parse(item.reportWorkQuantityCount) |
| | | }) |
| | | mergeCells.value = res.data.mergeCell |
| | | //mergeCells.value = res.data.mergeCells |
| | | xGrid.value.loadData(res.data.data) |
| | | } else { |
| | | ElMessage.warning(res.msg) |
| | |
| | | // export: true, |
| | | // print: true, |
| | | slots: { |
| | | tools: 'toolbar_buttons' |
| | | //tools: 'toolbar_buttons' |
| | | }, |
| | | zoom: true, |
| | | custom: true |
| | |
| | | <template #quantitySum="{ row,column }"> |
| | | <span>{{ quantitySum(row,column) }} </span> |
| | | </template> |
| | | <template #toolbar_buttons> |
| | | <vxe-button style="margin-right: 0.5rem" |
| | | @click="exportExcel('/report/exportTaskCompletionStatus', |
| | | t('report.TaskCompletionStatus'), |
| | | time.date1)"> |
| | | {{t('basicData.export')}}</vxe-button> |
| | | </template> |
| | | <!-- <template #toolbar_buttons>--> |
| | | <!-- <vxe-button style="margin-right: 0.5rem"--> |
| | | <!-- @click="exportExcel('/report/exportTaskCompletionStatus',--> |
| | | <!-- t('report.TaskCompletionStatus'),--> |
| | | <!-- time.date1)">--> |
| | | <!-- {{t('basicData.export')}}</vxe-button>--> |
| | | <!-- </template>--> |
| | | |
| | | </vxe-grid> |
| | | </div> |
| | |
| | | |
| | | @ApiOperation("任务完成情况汇总进度") |
| | | @SaCheckPermission("taskCompletionStatus.search") |
| | | @PostMapping("/taskCompletionStatus/{selectTime1}/{selectTime2}") |
| | | @PostMapping("/taskCompletionStatus/{selectTime1}/{selectTime2}/{orderId}") |
| | | public Result taskCompletionStatus(@PathVariable Date selectTime1, |
| | | @PathVariable Date selectTime2, |
| | | @PathVariable String orderId, |
| | | @RequestBody List<Integer> columns) { |
| | | return Result.seccess(reportService.taskCompletionStatusSv(selectTime1, selectTime2, columns)); |
| | | return Result.seccess(reportService.taskCompletionStatusSv(selectTime1, selectTime2,orderId, columns)); |
| | | } |
| | | |
| | | @ApiOperation("订单计划分解") |
| | |
| | | |
| | | import java.sql.Date; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.List; |
| | | import java.util.Map; |
| | | |
| | |
| | | |
| | | List<Map<String, String>> productionScheduleMp(String orderId); |
| | | |
| | | List<Map<String, String>> taskCompletionStatusMp(Date selectTime1, Date selectTime2); |
| | | List<Map<String, String>> taskCompletionStatusMp(Date selectTime1, Date selectTime2, String orderId); |
| | | |
| | | List<Map<String, String>> orderPlanDecompositionMp(Date selectTime1, Date selectTime2, Report report); |
| | | |
| | |
| | | |
| | | void insertByReportingWorkDetail(ReportingWorkDetail reportingWorkDetail, String processId, String thisProcess); |
| | | |
| | | List<Map<String,String>> filterOrderProcessCollect(Date selectTime1, Date selectTime2); |
| | | List<Map<String,String>> filterOrderProcessCollect(Date selectTime1, Date selectTime2, String orderId); |
| | | |
| | | List<Map<String, Integer>> getGlassLRowCollect(Date selectTime1, Date selectTime2); |
| | | List<Map<String, Integer>> getGlassLRowCollect(Date selectTime1, Date selectTime2, String orderId); |
| | | |
| | | String selectNextProcess(String processId, String technologyNumber, String thisProcess, String orderNumber); |
| | | |
| | |
| | | import java.math.BigDecimal; |
| | | import java.sql.Date; |
| | | import java.time.LocalDate; |
| | | import java.time.LocalDateTime; |
| | | import java.util.*; |
| | | import java.util.function.Function; |
| | | import java.util.stream.Collectors; |
| | |
| | | return map; |
| | | } |
| | | |
| | | public Map<String, Object> taskCompletionStatusSv(Date selectTime1, Date selectTime2, List<Integer> columns) { |
| | | public Map<String, Object> taskCompletionStatusSv(Date selectTime1, Date selectTime2, String orderId, List<Integer> columns) { |
| | | if ("null".equals(orderId)) { |
| | | orderId = ""; |
| | | } |
| | | Map<String, Object> map = new HashMap<>(); |
| | | //获取表格内容数据 |
| | | map.put("data", reportMapper.taskCompletionStatusMp(selectTime1, selectTime2)); |
| | | map.put("data", reportMapper.taskCompletionStatusMp(selectTime1, selectTime2,orderId)); |
| | | |
| | | //获取表头工序筛选数据 |
| | | List<Map<String, String>> processFilterList = orderProcessDetailMapper.filterOrderProcessCollect(selectTime1, selectTime2); |
| | | List<Map<String, String>> processFilterList = orderProcessDetailMapper.filterOrderProcessCollect(selectTime1, selectTime2,orderId); |
| | | List<Map<String, String>> processList = processFilterList; |
| | | |
| | | List<String> filterList = new ArrayList<>(); |
| | |
| | | } |
| | | map.put("title", uniqueList); |
| | | |
| | | |
| | | List<Map<String, Integer>> getRowCount = orderProcessDetailMapper.getGlassLRowCollect(selectTime1, selectTime2); |
| | | List<Map<String, Integer>> getRowCount = orderProcessDetailMapper.getGlassLRowCollect(selectTime1, selectTime2,orderId); |
| | | List<Map<String, Integer>> rowCount = new ArrayList<>(); |
| | | columns.forEach(col -> { |
| | | getRowCount.forEach(row -> { |
| | | Map<String, Integer> getRow = new HashMap<>(); |
| | | // { row: 0, col: 1, rowspan: 3, colspan: 0}, |
| | | getRow.put("row", row.get("RowNum")); |
| | | Object rowNumObj = row.get("RowNum"); |
| | | if (rowNumObj instanceof Double) { |
| | | getRow.put("row", ((Double) rowNumObj).intValue()); |
| | | } else if (rowNumObj instanceof Integer) { |
| | | getRow.put("row", (Integer) rowNumObj); |
| | | } |
| | | getRow.put("col", col); |
| | | getRow.put("rowspan", row.get("rowCount")); |
| | | getRow.put("colspan", 0); |
| | | rowCount.add(getRow); |
| | | }); |
| | | }); |
| | | |
| | | |
| | | map.put("mergeCells", rowCount); |
| | | |
| | | return map; |
| | |
| | | left join sd.`order` as o on o.order_id = a.order_id |
| | | where o.create_time >= #{selectTime1} |
| | | AND o.create_time < #{selectTime2} |
| | | and position(#{orderId} in o.order_id) |
| | | GROUP BY process_id, a.technology_number) as e |
| | | on e.process_id = c.process_id |
| | | and e.technology_number = c.technology_number |
| | | left join sd.delivery_detail as dd on dd.order_id = a.order_id and dd.order_number = a.order_number |
| | | where d.create_time >= #{selectTime1} |
| | | AND d.create_time < #{selectTime2} |
| | | and position(#{orderId} in a.order_id) |
| | | and d.create_order>0 |
| | | and reportWorkQuantity is not null |
| | | GROUP BY a.order_id |
| | |
| | | and odpd.process = #{selectProcesses} |
| | | and o.create_time >= #{selectTime1} |
| | | AND o.create_time < #{selectTime2} |
| | | AND POSITION('' IN od.order_id) |
| | | AND POSITION('' IN o.project) |
| | | and position(#{orderId} in od.order_id) |
| | | and position(#{inputProject} in o.project) |
| | | AND fc.quantity - odpd.reporting_work_num > 0; |
| | | |
| | | </select> |
| | |
| | | from order_process_detail as a |
| | | left join `order` as b on a.order_id=b.order_id |
| | | where b.create_time BETWEEN #{selectTime1} and #{selectTime2} |
| | | and position(#{orderId} in b.order_id) |
| | | group by process |
| | | |
| | | </select> |
| | |
| | | left join sd.`order` o2 on c.order_id = o2.order_id, |
| | | (SELECT @i:=-1) as d |
| | | where o2.create_time BETWEEN #{selectTime1} and #{selectTime2} |
| | | and position(#{orderId} in o2.order_id) |
| | | GROUP BY order_number |
| | | ) as b |
| | | on b.order_number = a.order_number |
| | | left join sd.`order` o on a.order_id = o.order_id |
| | | where o.create_time BETWEEN #{selectTime1} and #{selectTime2} |
| | | where o.create_time BETWEEN #{selectTime1} and #{selectTime2} and position(#{orderId} in o.order_id) |
| | | group by a.order_number |
| | | </select> |
| | | |