diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java index 841ecc55..511b2638 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/controller/ReportController.java @@ -9,10 +9,15 @@ package com.foreverwin.mesnac.anomaly.controller; import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing; import com.foreverwin.mesnac.anomaly.service.ReportService; import com.foreverwin.mesnac.integration.model.IntegrationLog; +import com.foreverwin.modular.core.util.CommonMethods; +import com.foreverwin.modular.core.util.FrontPage; import com.foreverwin.modular.core.util.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.util.List; +import java.util.Map; + @RestController @RequestMapping("/REPORT") public class ReportController { @@ -46,4 +51,21 @@ public class ReportController { return R.failed(e.getMessage()); } } + + /** + * 查询质量检验任务 + * + * @param paramMap + * @return + */ + @GetMapping("/findInspectionTask") + public R findInspectionTask(@RequestParam(required = false) Map paramMap) { + try { + paramMap.put("site", CommonMethods.getSite()); + List> result = reportService.findInspectionTask(paramMap); + return R.ok(result); + } catch (Exception e) { + return R.failed(e.getMessage()); + } + } } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java index 059c60ee..2f4ea858 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/mapper/ReportMapper.java @@ -1,5 +1,6 @@ package com.foreverwin.mesnac.anomaly.mapper; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing; import com.foreverwin.mesnac.integration.model.IntegrationLog; import org.apache.ibatis.annotations.Param; @@ -23,4 +24,6 @@ public interface ReportMapper { List> surplusReturnTable(@Param("site")String site, @Param("locale")String locale, @Param("item")String item, @Param("itemDescription")String itemDescription); + + List> findInspectionTask(Map paramMap); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java index d59d2103..96876fbb 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/ReportService.java @@ -1,5 +1,6 @@ package com.foreverwin.mesnac.anomaly.service; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing; import com.foreverwin.mesnac.integration.model.IntegrationLog; @@ -17,4 +18,12 @@ public interface ReportService { List> partsManufacturing(PartsManufacturing partsManufacturing); List> surplusReturnTable(String item, String itemDescription); + + /** + * 查询质量检验任务 + * + * @param paramMap + * @return + */ + List> findInspectionTask(Map paramMap); } diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java index d463cc23..31d6aaa5 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/ReportServiceImpl.java @@ -1,5 +1,6 @@ package com.foreverwin.mesnac.anomaly.service.impl; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.foreverwin.mesnac.anomaly.dto.PartsManufacturing; import com.foreverwin.mesnac.anomaly.mapper.ReportMapper; import com.foreverwin.mesnac.anomaly.service.ReportService; @@ -55,4 +56,9 @@ public class ReportServiceImpl implements ReportService { String site = CommonMethods.getSite(); return reportMapper.surplusReturnTable(site,locale,item,itemDescription); } + + @Override + public List> findInspectionTask(Map paramMap) { + return reportMapper.findInspectionTask(paramMap); + } } diff --git a/anomaly/src/main/resources/mapper/ReportMapper.xml b/anomaly/src/main/resources/mapper/ReportMapper.xml index d020e5ec..005a3f27 100644 --- a/anomaly/src/main/resources/mapper/ReportMapper.xml +++ b/anomaly/src/main/resources/mapper/ReportMapper.xml @@ -88,4 +88,54 @@ + + + + + \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/util/DateUtil.java b/common/src/main/java/com/foreverwin/mesnac/common/util/DateUtil.java index 344e6632..d452f7e3 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/util/DateUtil.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/util/DateUtil.java @@ -672,4 +672,22 @@ public class DateUtil return null; } } + + /** + * 获得当前时间的字符串序列 + * + * @return 201812511183786 + */ + public final static String getTimeString() { + Calendar calendar = new GregorianCalendar(); + int year = calendar.get(Calendar.YEAR); + int month = calendar.get(Calendar.MONTH) + 1; + int day = calendar.get(Calendar.DAY_OF_MONTH); + int hour = calendar.get(Calendar.HOUR_OF_DAY); + int minute = calendar.get(Calendar.MINUTE); + int second = calendar.get(Calendar.SECOND); + int msec = calendar.get(Calendar.MILLISECOND); + + return String.valueOf(year) + String.valueOf(month) + String.valueOf(day) + String.valueOf(hour) + String.valueOf(minute) + String.valueOf(second) + String.valueOf(msec); + } } \ No newline at end of file diff --git a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java index a56be644..0560e1d6 100644 --- a/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java +++ b/dispatch/src/main/java/com/foreverwin/mesnac/dispatch/service/impl/ShopOrderReleaseServiceImpl.java @@ -316,7 +316,6 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService { //---------------------------------------------------------------------------------------------------------- //查询工单下的生产批次清单 - String workCenter = shopOrderReleaseModel.getWorkCenter(); List sfcList = sfcService.getSfcListByShopOrderBo(shopOrderBo); if (sfcList == null || sfcList.size() <= 0) { continue; @@ -344,7 +343,7 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService { if (routerList == null || routerList.size() <= 0) { throw new BaseException("工艺路线[" +StringUtils.trimHandle(routerBo)+ "]不存在"); } - sfcDispatchRefresh(site, user, workCenter, shopOrderModel, sfcModel, routerList); + sfcDispatchRefresh(site, user, shopOrderModel, sfcModel, routerList); }//end for -- sfcList }// end for -- shopOrderList @@ -359,12 +358,11 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService { * * @param site * @param user - * @param workCenter * @param shopOrderModel * @param sfcModel * @param routerList */ - public void sfcDispatchRefresh(String site, String user, String workCenter, ShopOrder shopOrderModel, Sfc sfcModel, List routerList) { + public void sfcDispatchRefresh(String site, String user, ShopOrder shopOrderModel, Sfc sfcModel, List routerList) { LocalDateTime nowDate = LocalDateTime.now(); String router = routerList.get(0).getRouter(); @@ -429,6 +427,20 @@ public class ShopOrderReleaseServiceImpl implements ShopOrderReleaseService { //计算完成时间 //plannedCompleteDate = plannedStartDate.plusMinutes(prodHours.longValue()); + //查询工序所属车间 + String workCenter = null; + if (operation.contains("_")) { + workCenter = operation.split("_")[0]; + } else { + workCenter = operation; + } + String workCenterBo = HandleEnum.WORK_CENTER.getHandle(site, workCenter); + WorkCenter workCenterModel = workCenterService.getById(workCenterBo); + if (workCenterModel == null) { + throw BusinessException.build("生产车间【" +workCenter+ "】不存在"); + } + + //SFC+Operation+stepID是否已经存在派工数据 List list = sfcDispatchService.findSfcDispatch(site, sfc, operation, stepId); if (list == null || list.size() <= 0) { diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/InspectionTaskManageServiceImpl.java b/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/InspectionTaskManageServiceImpl.java index 2bfdee69..6747e03b 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/InspectionTaskManageServiceImpl.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/InspectionTaskManageServiceImpl.java @@ -6,6 +6,7 @@ import com.foreverwin.mesnac.common.model.InspectionTask; import com.foreverwin.mesnac.common.model.InspectionTaskDetail; import com.foreverwin.mesnac.common.service.InspectionTaskDetailService; import com.foreverwin.mesnac.common.service.InspectionTaskService; +import com.foreverwin.mesnac.common.util.DateUtil; import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.quality.dto.InspectionTaskManageRequest; import com.foreverwin.mesnac.quality.mapper.InspectionTaskManageMapper; @@ -53,10 +54,15 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ //查询检验项目 List inspectionItemDetailList = this.getInspectionTaskDetail(taskBo); + if (!Constants.INSPECTION_TASK_STATUS_NEW.equals(inspectionTaskManage.getStatus())) { + inspectionTaskManage.setInspectionTaskDetailList(inspectionItemDetailList); + return inspectionTaskManage; + } + if (inspectionItemDetailList == null || inspectionItemDetailList.size() <= 0) { inspectionItemDetailList = this.getInspectionItemDetail(inspectionItemBo); if (inspectionItemDetailList == null || inspectionItemDetailList.size() <= 0) { - throw BusinessException.build("没有找到检验项目检验参数!"); + return inspectionTaskManage; } List taskDetailList = new ArrayList<>(); @@ -82,11 +88,10 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ if (taskDetailList != null && taskDetailList.size() > 0) { inspectionTaskDetailService.saveBatch(taskDetailList); } - inspectionItemDetailList = this.getInspectionTaskDetail(taskBo); } - inspectionTaskManage.setInspectionTaskDetailList(inspectionItemDetailList); + inspectionTaskManage.setInspectionTaskDetailList(inspectionItemDetailList); return inspectionTaskManage; } @@ -116,8 +121,8 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ } List inspectionItemDetailList = this.getInspectionTaskDetail(HandleEnum.INSPECTION_TASK.getHandle(taskNo)); - if (inspectionItemDetailList != null || inspectionItemDetailList.size() > 0) { - throw BusinessException.build("检验任务:"+taskNo+"有检验项目,不允许执行合格操作"); + if (inspectionItemDetailList != null && inspectionItemDetailList.size() > 0) { + throw BusinessException.build("检验任务【"+taskNo+"】有检验项目,不允许执行合格操作"); } @@ -139,56 +144,74 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ @Override public void saveInspectionTaskDetail(String site, String user, InspectionTaskManage inspectionTaskManage) { - List taskDetailList = inspectionTaskManage.getInspectionTaskDetailList(); - if (taskDetailList == null || taskDetailList.size() <= 0) { - return; - } - LocalDateTime dateTime = LocalDateTime.now(); - String taskNo = inspectionTaskManage.getTaskNo(); String type = inspectionTaskManage.getOperationType(); - //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - List inspectionTaskDetailList = new ArrayList<>(); - //修改明细数据 - for (InspectionTaskManageDetail manageDetail : taskDetailList) { - String isRequired = manageDetail.getIsRequired(); - String paramNo = manageDetail.getParamNo(); - String checkValues = manageDetail.getCheckValues(); - if ("Y".equals(isRequired) && StringUtil.isBlank(checkValues) && "SUBMIT".equals(type)) { - throw BusinessException.build("检验项目【" +paramNo+"】值必输!"); - } + List taskDetailList = inspectionTaskManage.getInspectionTaskDetailList(); + if (taskDetailList != null && taskDetailList.size() > 0) { + List inspectionTaskDetailList = new ArrayList<>(); + + //修改明细数据 + for (InspectionTaskManageDetail manageDetail : taskDetailList) { + String isRequired = manageDetail.getIsRequired(); + String paramNo = manageDetail.getParamNo(); + String checkValues = manageDetail.getCheckValues(); + if ("Y".equals(isRequired) && StringUtil.isBlank(checkValues) && "SUBMIT".equals(type)) { + throw BusinessException.build("检验项目【" + paramNo + "】值必输!"); + } - InspectionTaskDetail taskDetail = new InspectionTaskDetail(); - taskDetail.setHandle(manageDetail.getHandle()); - taskDetail.setCheckValues(checkValues); - taskDetail.setResult(manageDetail.getResult()); - taskDetail.setRemark(manageDetail.getRemark()); - taskDetail.setCheckUser(user); - taskDetail.setCheckDate(dateTime); - inspectionTaskDetailList.add(taskDetail); - } + InspectionTaskDetail taskDetail = new InspectionTaskDetail(); + taskDetail.setHandle(manageDetail.getHandle()); + taskDetail.setCheckValues(checkValues); + taskDetail.setResult(manageDetail.getResult()); + taskDetail.setRemark(manageDetail.getRemark()); + taskDetail.setCheckUser(user); + taskDetail.setCheckDate(dateTime); + inspectionTaskDetailList.add(taskDetail); + } - if (inspectionTaskDetailList != null && inspectionTaskDetailList.size() > 0) { - inspectionTaskDetailService.updateBatchById(inspectionTaskDetailList); + if (inspectionTaskDetailList != null && inspectionTaskDetailList.size() > 0) { + inspectionTaskDetailService.updateBatchById(inspectionTaskDetailList); + } } //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + String result = inspectionTaskManage.getResult(); + String taskNo = inspectionTaskManage.getTaskNo(); //修改主表数据 InspectionTask inspectionTaskModel = inspectionTaskService.getInspectionTaskByTaskNo(site, taskNo); if (inspectionTaskModel == null) { throw BusinessException.build("检验任务【" +taskNo+ "】不存在!"); } String status = inspectionTaskModel.getStatus(); + String category = inspectionTaskModel.getCategory(); if (!Constants.INSPECTION_TASK_STATUS_NEW.equals(status) && !Constants.INSPECTION_TASK_STATUS_DOING.equals(status)) { throw BusinessException.build("检验任务【" +taskNo+ "】不是【新建|检验中】,不允许操作!"); } inspectionTaskModel.setStatus("SAVE".equals(type) ? Constants.INSPECTION_TASK_STATUS_DOING : Constants.INSPECTION_TASK_STATUS_COMPLETE); - inspectionTaskModel.setResult(inspectionTaskManage.getResult()); + inspectionTaskModel.setResult(result); inspectionTaskModel.setComments(inspectionTaskManage.getComments()); inspectionTaskModel.setModifyUser(user); inspectionTaskModel.setModifiedDateTime(dateTime); inspectionTaskService.updateById(inspectionTaskModel); + + //~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ + //如果专检不合格,生产新的检验任务 + if (!Constants.INSPECTION_TYPE_P.equals(category) || !"NG".equals(result) || !"SUBMIT".equals(type)) { + return; + } + + //任务主表 + InspectionTask newInspectionTask = new InspectionTask(); + BeanUtils.copyProperties(inspectionTaskModel, newInspectionTask); + String newTaskNo = "H_" + DateUtil.getTimeString(); + String handle = HandleEnum.INSPECTION_TASK.getHandle(site, newTaskNo); + newInspectionTask.setHandle(handle); + newInspectionTask.setTaskNo(taskNo); + newInspectionTask.setStatus(Constants.INSPECTION_TASK_STATUS_NEW); + newInspectionTask.setResult(null); + newInspectionTask.setComments(null); + inspectionTaskService.save(newInspectionTask); } }