From a45d3fdde76f6b1a68202092ca0144caf87c4fd4 Mon Sep 17 00:00:00 2001 From: rui_li <877258667@qq.com> Date: Sat, 2 Apr 2022 10:18:14 +0800 Subject: [PATCH] =?UTF-8?q?=E6=97=A5=E5=8E=86sql=E7=9A=84=E4=BF=AE?= =?UTF-8?q?=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/SchedulingController.java | 66 +++++++++++++- .../schedule/mapper/SchedulingMapper.java | 19 +++- .../schedule/service/SchedulingService.java | 41 ++++++++- .../service/impl/ScheduleServiceImpl.java | 53 ++++++----- .../service/impl/SchedulingServiceImpl.java | 88 +++++++++++++++++++ .../mapper/schedule/SchedulingMapper.xml | 82 +++++++++++++++++ 6 files changed, 316 insertions(+), 33 deletions(-) diff --git a/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java b/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java index a17fd19..396677a 100644 --- a/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java +++ b/src/main/java/com/gaotao/modules/schedule/controller/SchedulingController.java @@ -176,7 +176,6 @@ public class SchedulingController { **/ @RequestMapping(value = "getOrderScheduleListWithFqc") public R getOrderScheduleListWithFqc(@RequestBody SearchScheduleData inData){ - SchedulingController scheduleService; List resultList = schedulingService.getOrderScheduleListWithFqc(inData); return R.ok() .put("code", 200) @@ -278,5 +277,70 @@ public class SchedulingController { .put("row", resultMap); } + /** + * TODO 刷新当前排产单的数据 + * @author LR + * @date 2022/3/30 14:33 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "getShopOrderByCon") + public R getShopOrderByCon(@RequestBody SearchScheduleData inData){ + ShopOrderOutData resultRow = schedulingService.getShopOrderByCon(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!") + .put("row", resultRow); + } + + /** + * TODO 获取待排产工单的列表 + * @author LR + * @date 2022/3/31 18:12 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "getShopOrderList") + public R getShopOrderList(@RequestBody SearchScheduleData inData){ + List resultList = schedulingService.getShopOrderList(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!") + .put("rows", resultList) + .put("total", resultList.size()); + } + + /** + * TODO 获取可用的机台数据 + * @author LR + * @date 2022/4/1 11:53 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "getOrderAvailableResource") + public R getOrderAvailableResource(@RequestBody SearchScheduleData inData){ + List resultList = schedulingService.getOrderAvailableResource(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!") + .put("rows", resultList) + .put("total", resultList.size()); + } + + + /** + * TODO 执行扩展的排产操作 + * @author LR + * @date 2022/4/1 15:52 + * @Param [inData] + * @return com.gaotao.common.utils.R + **/ + @RequestMapping(value = "scheduleOrderWithExpand") + public R scheduleOrderWithExpand(@RequestBody SearchScheduleData inData){ + schedulingService.scheduleOrderWithExpand(inData); + return R.ok() + .put("code", 200) + .put("msg", "操作成功!"); + } } diff --git a/src/main/java/com/gaotao/modules/schedule/mapper/SchedulingMapper.java b/src/main/java/com/gaotao/modules/schedule/mapper/SchedulingMapper.java index 591a387..9fedf19 100644 --- a/src/main/java/com/gaotao/modules/schedule/mapper/SchedulingMapper.java +++ b/src/main/java/com/gaotao/modules/schedule/mapper/SchedulingMapper.java @@ -74,5 +74,22 @@ public interface SchedulingMapper { **/ List> getOrderPartStockedQty(SearchScheduleData inData); - + + /** + * TODO 刷新当前排产单的数据 + * @author LR + * @date 2022/3/30 14:34 + * @Param [inData] + * @return com.gaotao.modules.schedule.data.ShopOrderOutData + **/ + ShopOrderOutData getShopOrderByCon(SearchScheduleData inData); + + /** + * TODO 获取待排产工单的列表 + * @author LR + * @date 2022/3/31 18:17 + * @Param [inData] + * @return java.util.List + **/ + List getShopOrderList(SearchScheduleData inData); } diff --git a/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java b/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java index bde072d..3187fed 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java +++ b/src/main/java/com/gaotao/modules/schedule/service/SchedulingService.java @@ -1,10 +1,7 @@ package com.gaotao.modules.schedule.service; import com.gaotao.common.exception.RRException; -import com.gaotao.modules.schedule.data.OperatorOutData; -import com.gaotao.modules.schedule.data.ScheduleData; -import com.gaotao.modules.schedule.data.SearchScheduleData; -import com.gaotao.modules.schedule.data.ShopOrderOutData; +import com.gaotao.modules.schedule.data.*; import java.util.List; import java.util.Map; @@ -169,4 +166,40 @@ public interface SchedulingService { * @return java.util.Map **/ Map getCalendarMapByResourceId(SearchScheduleData inData); + + /** + * TODO 刷新当前排产单的数据 + * @author LR + * @date 2022/3/30 14:33 + * @Param [inData] + * @return com.gaotao.modules.schedule.data.ShopOrderOutData + **/ + ShopOrderOutData getShopOrderByCon(SearchScheduleData inData); + + /** + * TODO 获取待排产工单的列表 + * @author LR + * @date 2022/3/31 18:12 + * @Param [inData] + * @return java.util.List + **/ + List getShopOrderList(SearchScheduleData inData); + + /** + * TODO 获取可用的机台数据 + * @author LR + * @date 2022/4/1 11:54 + * @Param [inData] + * @return java.util.List + **/ + List getOrderAvailableResource(SearchScheduleData inData); + + /** + * TODO 执行扩展的排产操作 + * @author LR + * @date 2022/4/1 15:53 + * @Param [inData] + * @return void + **/ + void scheduleOrderWithExpand(SearchScheduleData inData); } diff --git a/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java b/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java index 0cad381..0b86e25 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java +++ b/src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java @@ -439,6 +439,9 @@ public class ScheduleServiceImpl implements ScheduleService { public Map getScheduleShiftData(SearchScheduleData inData) throws ParseException { String site = inData.getSite(); String username = inData.getUsername(); + String resourceId = inData.getResourceId(); + String currentTime = inData.getReportedTime(); + Date currentDate = DateUtil.getDateByParten(currentTime, "yyyy-MM-dd HH:mm:ss"); //调用存储过程判断是否存在权限 Map shiftMap = this.getUserSpecialAuth(site, username, 249); //获取结果 @@ -450,38 +453,34 @@ public class ScheduleServiceImpl implements ScheduleService { Map result = new HashMap<>(); //查询数据 List> resultList = scheduleMapper.getScheduleShiftData(inData); - //判断是否查询到结果数据 - if (resultList.size() > 0) { - //循环处理数据 - for (int i = 0; i < resultList.size(); i++) { - Map tempMap = resultList.get(i); - Float curTime = Float.parseFloat(String.valueOf(tempMap.get("curTime"))); - Float startTime = Float.parseFloat(String.valueOf(tempMap.get("startTime"))); - Float endTime = Float.parseFloat(String.valueOf(tempMap.get("endTime"))); - //区分各类情况 - if (curTime < startTime) { - result.put("code", "500"); - result.put("shiftDesc", "无班次"); - result.put("shiftNo", ""); - result.put("scheduledDate", ""); - break; - } else if (curTime >= startTime && curTime <= endTime) { - result = resultList.get(i); - break; - } else { - result = resultList.get(i); - } - } - result.put("code", "200"); - } else { - result.put("code", "500"); - result.put("shiftDesc", "无班次"); - } + Map resultMap = this.getScheduleDateShif(site, resourceId, currentDate); + + Date scheduledDate = (Date) resultMap.get("scheduleddate"); + String scheduleTime = DateUtil.getStringDate(scheduledDate, "yyyy-MM-dd"); + String shiftNo = String.valueOf(resultMap.get("ShiftNo")); + result.put("shiftDesc", shiftNo); + result.put("shiftNo", shiftNo); + result.put("scheduledDate", scheduleTime); //设置结果的参数 result.put("specialAuth", specialAuth); return result; } + /** + * TODO 获取班次信息 + * @author LR + * @date 2022/4/1 16:58 + * @Param [site, resourceId, currentDate] + * @return java.util.Map + **/ + public Map getScheduleDateShif(String site, String resourceId, Date currentDate) { + List params = new ArrayList<>(); + params.add(site); + params.add(resourceId); + params.add(currentDate); + return workbenchCreateslittingrollFqcCheck("get_ScheduleDate_Shift", params); + } + /** * TODO 获取用户的特殊权限 * @author LR diff --git a/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java b/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java index c32060b..988a9df 100644 --- a/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java +++ b/src/main/java/com/gaotao/modules/schedule/service/impl/SchedulingServiceImpl.java @@ -666,5 +666,93 @@ public class SchedulingServiceImpl implements SchedulingService { return scheduleMapper.getCalendarId(inData); } + @Override + public ShopOrderOutData getShopOrderByCon(SearchScheduleData inData) { + return schedulingMapper.getShopOrderByCon(inData); + } + + @Override + public List getShopOrderList(SearchScheduleData inData) { + return schedulingMapper.getShopOrderList(inData); + } + + @Override + public List getOrderAvailableResource(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + int itemNo = inData.getItemNo(); + //调用存储过程 查询工单+工序的可用机台的数据 + List> resourceList = getOrderAvailableResource(site, orderNo, itemNo); + //处理结果的数据 + List resultList = new ArrayList<>(); + //循环填充数据 + for (Map tempData : resourceList){ + String resourceId = String.valueOf(tempData.get("ResourceID")); + String resourceDesc = String.valueOf(tempData.get("ResouceDesc")); + //新增对象的数据 + ResourceOutData tempRow = new ResourceOutData(); + tempRow.setSite(site); + tempRow.setResourceId(resourceId); + tempRow.setResourceDesc(resourceDesc); + resultList.add(tempRow); + } + return resultList; + } + + /** + * TODO 调用存储过程 查询工单+工序的可用机台的数据 + * @author LR + * @date 2022/4/1 13:56 + * @Param [site, orderNo, itemNo] + * @return java.util.List> + **/ + public List> getOrderAvailableResource(String site, String orderNo, int itemNo) { + List params = new ArrayList<>(); + params.add(site); + params.add(orderNo); + params.add(itemNo); + //调用存储过程 返回的结果 + return procedureMapper.getProcedureData("Get_SORouting_AvailResource_List", params); + } + + @Override + @Transactional + public void scheduleOrderWithExpand(SearchScheduleData inData) { + //公共参数 + String site = inData.getSite(); + String orderNo = inData.getOrderNo(); + int itemNo = inData.getItemNo(); + String workCenterNo = inData.getWorkCenterNo(); + String resourceId = inData.getResourceId(); + String username = inData.getUsername(); + Date scheduleDate = inData.getScheduleDate(); + Date scheduleTime = inData.getScheduleTime(); + String specifiedTime = inData.getSpecifiedTime(); + boolean checkFlag = inData.isCheckFlag(); + Float scheduledQty = inData.getScheduledQty(); + String calendarId = inData.getCalendarId(); + + //判断是否校验总数量 + if(checkFlag){ + //调用存储过程 校验数量是否超过上限 + Map checkMap = this.checkFQCScheduleWithScheduledQty(site, orderNo, itemNo, scheduledQty); + //判断是否检验成功 + String resultCode = String.valueOf(checkMap.get("resultCode")); + if (!"200".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(checkMap.get("resultMsg")); + throw new RRException(msg, Integer.parseInt(resultCode)); + } + } + //验证通过 继续执行排产操作 + Map resultMap = this.scheduleWorkOrder(site, orderNo, itemNo, workCenterNo, resourceId, scheduledQty, specifiedTime, scheduleDate, scheduleTime, calendarId, username); + //判断是否检验成功 + String resultCode = String.valueOf(resultMap.get("resultCode")); + if ("400".equalsIgnoreCase(resultCode)) { + String msg = String.valueOf(resultMap.get("resultMsg")); + throw new RRException(msg); + } + } + } diff --git a/src/main/resources/mapper/schedule/SchedulingMapper.xml b/src/main/resources/mapper/schedule/SchedulingMapper.xml index ccb18c4..9f03d3d 100644 --- a/src/main/resources/mapper/schedule/SchedulingMapper.xml +++ b/src/main/resources/mapper/schedule/SchedulingMapper.xml @@ -103,6 +103,88 @@ ORDER BY t.ItemNo,PX,T.whscode + + + + + +