From ce9152b5e25507e66b592b6ce44efcf08edd308a Mon Sep 17 00:00:00 2001 From: philip <244793088@qq.com> Date: Wed, 18 Aug 2021 21:59:14 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BA=A7=E5=89=8D=E5=87=86=E5=A4=87PDA?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../controller/ProdReadyTaskController.java | 51 ++++++-- .../mesnac/common/model/ProdReadyTask.java | 33 +++++ .../common/service/ProdReadyTaskService.java | 6 + .../impl/InspectionTaskServiceImpl.java | 9 +- .../impl/ProdReadyTaskServiceImpl.java | 117 ++++++++++++++++-- .../resources/mapper/ProdReadyTaskMapper.xml | 22 +++- 6 files changed, 216 insertions(+), 22 deletions(-) diff --git a/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskController.java b/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskController.java index c26b6b62..26285b6d 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskController.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/controller/ProdReadyTaskController.java @@ -34,14 +34,27 @@ public class ProdReadyTaskController { * @return */ @ResponseBody - @GetMapping("/doPrint") - public R doPrint(ProdReadyTask prodReadyTask){ - prodReadyTask = prodReadyTaskService.getById(prodReadyTask.getHandle()); - String result = prodReadyTask.getResult(); - if (StringUtil.isBlank(result) || !prodReadyTask.getResult().equals(Constants.RSESULT_OK)){ - throw new BaseException("未准备合格不能打印"); + @PostMapping("/doPrint") + public R doPrint(@RequestBody List list){ + for (ProdReadyTask prodReadyTask:list){ + prodReadyTask = prodReadyTaskService.getById(prodReadyTask.getHandle()); + String result = prodReadyTask.getResult(); + if (StringUtil.isBlank(result) || !prodReadyTask.getResult().equals(Constants.RSESULT_OK)){ + throw new BaseException("未准备合格不能打印"); + } + prodReadyTaskService.doPrint(prodReadyTask); } - prodReadyTaskService.doPrint(prodReadyTask); + return R.ok(); + } + /** + * 检索 + * + * @return + */ + @ResponseBody + @PostMapping("/doListReady") + public R doListReady(@RequestBody List list){ + prodReadyTaskService.doReadyList(list); return R.ok(); } /** @@ -108,6 +121,18 @@ public class ProdReadyTaskController { result = prodReadyTaskService.loadProExecute(taskBo); return R.ok(result); } + /** + * 生产准备执行检索PDA + * + * @return + */ + @ResponseBody + @GetMapping("/loadTaskExecute") + public R loadTaskExecute(String taskBo){ + Map result; + result = prodReadyTaskService.loadTaskExecute(taskBo); + return R.ok(result); + } /** * 查询所有数据 * @@ -121,6 +146,18 @@ public class ProdReadyTaskController { return R.ok(result); } + /** + * 查询所有数据 + * + * @return + */ + @ResponseBody + @PostMapping("/pdaSave") + public R savePdaResult(@RequestBody ProdReadyTask prodReadyTask){ + prodReadyTaskService.savePdaResult(prodReadyTask); + return R.ok(); + } + /** * 分页查询数据 * diff --git a/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTask.java b/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTask.java index e4961636..fcc5ecdb 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTask.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/model/ProdReadyTask.java @@ -167,6 +167,15 @@ public class ProdReadyTask extends Model { @TableField(exist = false) private String itemDesc; + @TableField(exist = false) + private String lastOperation; + + @TableField(exist = false) + private String lastOperationStatus; + + @TableField(exist = false) + private String employeeDescription; + @TableField(exist = false) private List prodReadyTaskDetailList; @@ -181,6 +190,30 @@ public class ProdReadyTask extends Model { this.prodReadyTaskDetailList = prodReadyTaskDetailList; } + public String getEmployeeDescription() { + return employeeDescription; + } + + public void setEmployeeDescription(String employeeDescription) { + this.employeeDescription = employeeDescription; + } + + public String getLastOperation() { + return lastOperation; + } + + public void setLastOperation(String lastOperation) { + this.lastOperation = lastOperation; + } + + public String getLastOperationStatus() { + return lastOperationStatus; + } + + public void setLastOperationStatus(String lastOperationStatus) { + this.lastOperationStatus = lastOperationStatus; + } + public String getDispatchNo() { return dispatchNo; } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskService.java index 42f19695..8352efe4 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskService.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/ProdReadyTaskService.java @@ -41,4 +41,10 @@ public interface ProdReadyTaskService extends IService { void doPrint(ProdReadyTask prodReadyTask); void sendMsgJob(String site); + + void doReadyList(List list); + + Map loadTaskExecute(String taskBo); + + void savePdaResult(ProdReadyTask prodReadyTask); } \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/InspectionTaskServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/InspectionTaskServiceImpl.java index a5cb53f9..0bbf7397 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/InspectionTaskServiceImpl.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/InspectionTaskServiceImpl.java @@ -15,6 +15,8 @@ import com.foreverwin.mesnac.common.service.InspectionItemService; import com.foreverwin.mesnac.common.service.InspectionTaskDetailService; import com.foreverwin.mesnac.common.service.InspectionTaskService; import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.meapi.model.Sfc; +import com.foreverwin.mesnac.meapi.service.SfcService; import com.foreverwin.modular.core.exception.BaseException; import com.foreverwin.modular.core.util.CommonMethods; import com.foreverwin.modular.core.util.FrontPage; @@ -37,7 +39,8 @@ import java.util.*; @Service @Transactional(rollbackFor = Exception.class) public class InspectionTaskServiceImpl extends ServiceImpl implements InspectionTaskService { - + @Autowired + private SfcService sfcService; @Autowired private InspectionTaskMapper inspectionTaskMapper; @Autowired @@ -155,8 +158,8 @@ public class InspectionTaskServiceImpl extends ServiceImpl 0) { ProdReadyTask prodReadyTask = list.get(0); if (prodReadyTask.getStatus().equals(STATUS_CANCEL)) { - throw new BaseException("产前准备任务任务已取消"); + throw new BaseException("产前准备任务已取消"); } prodReadyTask.setStatus(STATUS_CANCEL); LocalDateTime now = LocalDateTime.now(); @@ -265,7 +265,7 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl loadTaskExecute(String taskBo) { + Map returnMap=new HashMap<>(); + ProdReadyTask prodReadyTask = prodReadyTaskMapper.selectById(taskBo); + String dispatchNo = StringUtil.trimHandle(prodReadyTask.getSfcDispatchBo()); + String site = CommonMethods.getSite(); + if (prodReadyTask.getStatus().equals(STATUS_NEW)) { + prodReadyTask.setReadyUser(CommonMethods.getUser()); + prodReadyTask.setReadyDateTime(LocalDateTime.now()); + prodReadyTask.setModifyUser(CommonMethods.getUser()); + prodReadyTask.setModifiedDateTime(LocalDateTime.now()); + prodReadyTask.setStatus(STATUS_DOING); + updateById(prodReadyTask); + } + LambdaQueryWrapper lambdaQuery = new LambdaQueryWrapper<>(); + lambdaQuery.eq(ProdReadyTaskDetail::getProdReadyTaskBo, taskBo); + List list = prodReadyTaskDetailService.list(lambdaQuery); + List> itemList = null; + List> toolList = null; + List> processControolList = null; + //物料接收数据 + if (list.stream().filter(prodReadyTaskDetail -> prodReadyTaskDetail.getInspectionItem().equals(P01)).count()>0){ + itemList = prodReadyTaskMapper.getItemDetail(site, LocaleContextHolder.getLocale().getLanguage(), dispatchNo); + } + //刀具 + if (list.stream().filter(prodReadyTaskDetail -> prodReadyTaskDetail.getInspectionItem().equals(P02)).count()>0){ + toolList = prodReadyTaskMapper.getToolDetail(site, LocaleContextHolder.getLocale().getLanguage(), dispatchNo); + } + //通过加工的零件号、设备类型、设备获取发布状态的工控程序 + if (list.stream().filter(prodReadyTaskDetail -> prodReadyTaskDetail.getInspectionItem().equals(P03)).count()>0){ + processControolList= new ArrayList<>(); + SfcDispatchDto sfcdispatch = new SfcDispatchDto(); + sfcdispatch.setHandle(HandleEnum.SFC_DISPATCH.getHandle(site, dispatchNo)); + sfcdispatch = sfcDispatchCommonService.findSfcDispatchBySfc(sfcdispatch); + Sfc sfcServiceById = sfcService.getById(HandleEnum.SFC.getHandle(site, sfcdispatch.getSfc())); + String itemBo = sfcServiceById.getItemBo(); + JSONObject jsonObject = sendToDnc(StringUtil.trimHandle(itemBo), sfcdispatch.getResrce(), sfcdispatch.getResourceType()); + Map map = new HashMap<>(); + map.put("RESOURCE", sfcdispatch.getResrce()); + map.put("RESOURCE_TYPE", sfcdispatch.getResourceType()); + map.put("RESULT", jsonObject.get("RESULT")); + map.put("MESSAGE", jsonObject.get("MESSAGE")); + processControolList.add(map); + } + returnMap.put("itemList",itemList); + returnMap.put("cutterList",toolList); + returnMap.put("processControlList",processControolList); + return returnMap; + } + + @Override + public void savePdaResult(ProdReadyTask prodReadyTask) { + String user = CommonMethods.getUser(); + ProdReadyTask byId = getById(prodReadyTask.getHandle()); + if (byId.getStatus().equals(STATUS_CANCEL)) { + throw new BaseException("产前准备任务已取消"); + } + if (byId.getStatus().equals(STATUS_FINISH) && byId.getResult().equals(Constants.RSESULT_OK)) { + throw new BaseException("产前准备任务已完成"); + } + List prodReadyTaskDetailList = prodReadyTask.getProdReadyTaskDetailList(); + prodReadyTask.setStatus(STATUS_FINISH); + prodReadyTask.setCompleteUser(user); + prodReadyTask.setCompleteDateTime(LocalDateTime.now()); + prodReadyTask.setModifyUser(user); + prodReadyTask.setModifiedDateTime(LocalDateTime.now()); + updateById(prodReadyTask); + if (prodReadyTaskDetailList != null && prodReadyTaskDetailList.size() > 0) { + for (ProdReadyTaskDetail prodReadyTaskDetail : prodReadyTaskDetailList) { + String detailHandle = HandleEnum.PROD_READY_TASK_DETAIL.getHandle(prodReadyTask.getHandle(), prodReadyTaskDetail.getInspectionItem()); + prodReadyTaskDetail.setHandle(detailHandle); + prodReadyTaskDetail.setModifyUser(user); + prodReadyTaskDetail.setModifiedDateTime(LocalDateTime.now()); + prodReadyTaskDetailService.updateById(prodReadyTaskDetail); + } + } + } + @Override public List> getInspectionDetailList(Map param) { String type = param.get("type"); @@ -327,10 +405,10 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl prodReadyTaskDetailList = prodReadyTask.getProdReadyTaskDetailList(); prodReadyTask.setStatus(STATUS_FINISH); @@ -365,7 +443,7 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl list) { + String user = CommonMethods.getUser(); + for (ProdReadyTask prodReadyTask : list) { + prodReadyTask = getById(prodReadyTask.getHandle()); + String result = prodReadyTask.getResult(); + if (prodReadyTask.getStatus().equals(STATUS_CANCEL)) { + throw new BaseException("产品条码" + prodReadyTask.getSfc() + "产前准备任务已取消"); + } + if (StringUtil.notBlank(result) && prodReadyTask.getResult().equals(Constants.RSESULT_OK)) { + throw new BaseException("产品条码" + prodReadyTask.getSfc() + "产前准备任务已完成"); + } + prodReadyTask.setStatus(STATUS_FINISH); + prodReadyTask.setResult(Constants.RSESULT_OK); + prodReadyTask.setCompleteUser(user); + prodReadyTask.setCompleteDateTime(LocalDateTime.now()); + prodReadyTask.setModifyUser(user); + prodReadyTask.setModifiedDateTime(LocalDateTime.now()); + updateById(prodReadyTask); + } + } + + public String formatMessage(ProdReadyTask prodReadyTask, String messageType, String site) { //找到消息内容 String locale = LocaleContextHolder.getLocale().getLanguage(); @@ -548,7 +649,7 @@ public class ProdReadyTaskServiceImpl extends ServiceImpl + + + @@ -628,14 +631,24 @@