From e66081c54b92dd55ab33d2ba1ef63fe4dcc2d5fb Mon Sep 17 00:00:00 2001 From: Yangwl <1726150332@qq.com> Date: Thu, 9 Mar 2023 16:16:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E9=A6=96=E6=A3=80=E3=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=89=A9=E6=B5=81=E7=94=9F=E6=88=90=E3=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E6=A3=80=E9=AA=8C=E4=BB=BB=E5=8A=A1=E7=94=9F?= =?UTF-8?q?=E6=88=90=E9=80=BB=E8=BE=91?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/WxOrderServiceImpl.java | 2 + .../mesnac/common/model/PrintLog.java | 10 + .../common/service/InspectionItemService.java | 1 + .../common/service/InspectionTaskService.java | 2 +- .../impl/InspectionItemServiceImpl.java | 7 +- .../impl/InspectionTaskServiceImpl.java | 63 +++++ .../main/resources/mapper/PrintLogMapper.xml | 8 +- .../resources/mapper/ReportDataMapper.xml | 3 + console/console.iml | 266 ++++++++++++++++++ console/src/main/resources/application.yml | 5 +- production/pom.xml | 4 + .../controller/PodTemplateController.java | 87 ++++++ .../controller/SplitSfcController.java | 6 + .../service/PodTemplateService.java | 5 +- .../service/impl/PodTemplateServiceImpl.java | 157 ++++++++--- .../InspectionTaskManageController.java | 1 - .../dto/InspectionTaskManageRequest.java | 9 + .../impl/InspectionTaskManageServiceImpl.java | 20 +- .../mapper/InspectionTaskManageMapper.xml | 13 +- 19 files changed, 606 insertions(+), 63 deletions(-) create mode 100644 console/console.iml diff --git a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/WxOrderServiceImpl.java b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/WxOrderServiceImpl.java index 126f2f10..d038cebd 100644 --- a/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/WxOrderServiceImpl.java +++ b/anomaly/src/main/java/com/foreverwin/mesnac/anomaly/service/impl/WxOrderServiceImpl.java @@ -78,6 +78,8 @@ public class WxOrderServiceImpl extends ServiceImpl impl return R.failed("导入数据失败:0条数据"); } + + if (this.saveBatch(wxOrderList)){ return R.ok("导入数据成功"); }else { diff --git a/common/src/main/java/com/foreverwin/mesnac/common/model/PrintLog.java b/common/src/main/java/com/foreverwin/mesnac/common/model/PrintLog.java index 463c8fba..fa334f2e 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/model/PrintLog.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/model/PrintLog.java @@ -134,6 +134,16 @@ public class PrintLog extends Model { @TableField(exist = false) private Date startToDate; + private String shopOrder; + + public String getShopOrder() { + return shopOrder; + } + + public void setShopOrder(String shopOrder) { + this.shopOrder = shopOrder; + } + public String getStartFromDate_S() { return startFromDate_S; } diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/InspectionItemService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/InspectionItemService.java index 6fb27849..0b713baf 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/InspectionItemService.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/InspectionItemService.java @@ -40,4 +40,5 @@ public interface InspectionItemService extends IService { List selectQualityInspection(String sfc, String operation, String stepId, String inspectionType); void insert(JSONObject jsonObject); + } \ No newline at end of file diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/InspectionTaskService.java b/common/src/main/java/com/foreverwin/mesnac/common/service/InspectionTaskService.java index bef6dd62..a80fad77 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/InspectionTaskService.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/InspectionTaskService.java @@ -32,7 +32,7 @@ public interface InspectionTaskService extends IService { void saveTask(Map paramMap); Map createTask(Map paramMap); - + Map createFirstTask(Map paramMap); InspectionTask isCreateTask(String site, String category, String sfc, String operation, String stepId); void createNewTask(Map paramMap); diff --git a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/InspectionItemServiceImpl.java b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/InspectionItemServiceImpl.java index 833f5766..1398f788 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/service/impl/InspectionItemServiceImpl.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/service/impl/InspectionItemServiceImpl.java @@ -13,9 +13,11 @@ import com.foreverwin.mesnac.common.mapper.InspectionItemMapper; import com.foreverwin.mesnac.common.model.InspectionItem; import com.foreverwin.mesnac.common.model.InspectionItemAddition; import com.foreverwin.mesnac.common.model.InspectionItemDetail; +import com.foreverwin.mesnac.common.model.InspectionTask; import com.foreverwin.mesnac.common.service.InspectionItemAdditionService; import com.foreverwin.mesnac.common.service.InspectionItemDetailService; import com.foreverwin.mesnac.common.service.InspectionItemService; +import com.foreverwin.mesnac.common.service.InspectionTaskService; import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.meapi.model.Item; import com.foreverwin.mesnac.meapi.model.Operation; @@ -60,6 +62,8 @@ public class InspectionItemServiceImpl extends ServiceImpl selectPage(FrontPage frontPage, InspectionItem inspectionItem) { @@ -253,6 +257,7 @@ public class InspectionItemServiceImpl extends ServiceImpl createFirstTask(Map paramMap) { + Mapmap=new HashMap<>(); + + //站点 + String site = CommonMethods.getSite(); + //类型(自检|Z;互检|H;FQC|F;尾检|W) + String category = (String) paramMap.get("CATEGORY"); + //产品批次 + String sfc = (String) paramMap.get("SFC"); + Sfc sfcServiceById = sfcService.getById(HandleEnum.SFC.getHandle(site, sfc)); + String shopOrder = StringUtil.trimHandle(sfcServiceById.getShopOrderBo()); + //工序 + String operation = (String) paramMap.get("OPERATION"); + //工序标识 + String stepId = (String) paramMap.get("STEP_ID"); + + //首检 校验是否在当前工序+工序标识 做过检验任务 + InspectionTask createTask = isCreateTask(site, category, sfc, operation, stepId); + if (createTask!=null && createTask.getStatus().equals(Constants.INSPECTION_TASK_STATUS_NEW)) { + throw new BaseException("当前产品批次[" + sfc + "]已提交首检任务"); + } + + if (category.equals(Constants.INSPECTION_TYPE_S)){ + String timeString = DateUtil.getTimeString(); + String taskNo = ""; + String itemNumber = (String) paramMap.get("ITEM_NUMBER"); + String description = ""; + if (StringUtil.isBlank(itemNumber)) { + taskNo = "S_" + timeString; + } else { + taskNo = "S_" + itemNumber + "_" + timeString; + } + description = "首件检验任务"; + + String handle = "InspectionBO:" + site + "," + taskNo; + InspectionTask task = new InspectionTask(); + task.setHandle(handle); + task.setSite(site); + task.setCategory(category); + task.setTaskNo(taskNo); + task.setStatus(Constants.INSPECTION_TASK_STATUS_NEW); + task.setDescription(description); + task.setShopOrder(shopOrder); + task.setWorkCenter((String) paramMap.get("WORK_CENTER")); + task.setSfc(sfc); + task.setOperation(operation); + task.setStepId(stepId); + task.setResrce((String) paramMap.get("RESRCE")); + task.setCreateUser(CommonMethods.getUser()); + task.setCreatedDateTime(LocalDateTime.now()); + task.setModifyUser(CommonMethods.getUser()); + task.setModifiedDateTime(LocalDateTime.now()); + task.setSfcDispatchBo((String) paramMap.get("SFC_DISPATCH_DETAIL_BO")); + task.setSfc(sfc); + save(task); + map.put("taskHandle",handle); + } + return map; + } + @Override public InspectionTask isCreateTask(String site,String category,String sfc,String operation ,String stepId) { //自检/互检 校验是否在当前工序+工序标识 做过检验任务 diff --git a/common/src/main/resources/mapper/PrintLogMapper.xml b/common/src/main/resources/mapper/PrintLogMapper.xml index 70d65ed9..8ef296fa 100644 --- a/common/src/main/resources/mapper/PrintLogMapper.xml +++ b/common/src/main/resources/mapper/PrintLogMapper.xml @@ -11,6 +11,7 @@ + @@ -539,9 +540,11 @@ diff --git a/common/src/main/resources/mapper/ReportDataMapper.xml b/common/src/main/resources/mapper/ReportDataMapper.xml index fb1669d9..4c5f741b 100644 --- a/common/src/main/resources/mapper/ReportDataMapper.xml +++ b/common/src/main/resources/mapper/ReportDataMapper.xml @@ -696,6 +696,9 @@ AND zab.ABNORMAL_NO = #{abnormalNo} + + AND ZNU.FULL_NAME like '%'||#{trueInspectUser}||'%' + GROUP BY ZABD.PRINCIPAL_USER,zsd.DISPATCH_QTY,ZABD.DUTY_DEPART,zit."RESULT",zit.sfc ,zit.OPERATION,zit.STEP_ID,CFA.VALUE,CFB.VALUE, zit.CREATED_DATE_TIME,zit.RESRCE,zab.NC_QTY,zit.CREATED_DATE_TIME, ZNU.FULL_NAME,WT.DESCRIPTION,I.ITEM,IT.DESCRIPTION,O.OPERATION,OT.DESCRIPTION,ZSD.EMPLOYEE,ZSD.EMPLOYEE_DESCRIPTION,zit.COMMENTS,zit.CATEGORY,SO.SHOP_ORDER,zab.ABNORMAL_NO ) WHERE SEQ='1' diff --git a/console/console.iml b/console/console.iml new file mode 100644 index 00000000..d047f07f --- /dev/null +++ b/console/console.iml @@ -0,0 +1,266 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/console/src/main/resources/application.yml b/console/src/main/resources/application.yml index ca55e201..f8c09f03 100644 --- a/console/src/main/resources/application.yml +++ b/console/src/main/resources/application.yml @@ -35,9 +35,9 @@ spring: time-zone: GMT+8generateLabel date-format: yyyy-MM-dd HH:mm:ss profiles: -# active: prd + active: prd # active: qas - active: local +# active: local # active: dev # 文件上传 servlet: @@ -50,6 +50,7 @@ spring: # 热部署开关 enabled: true + # MyBatis mybatis-plus: type-handlers-package: com.foreverwin.modular.core.mybatisplus.type diff --git a/production/pom.xml b/production/pom.xml index 4314524f..4db0568b 100644 --- a/production/pom.xml +++ b/production/pom.xml @@ -45,5 +45,9 @@ freemarker 2.3.30 + + org.projectlombok + lombok + \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/controller/PodTemplateController.java b/production/src/main/java/com/foreverwin/mesnac/production/controller/PodTemplateController.java index 98e96bae..7778b264 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/controller/PodTemplateController.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/PodTemplateController.java @@ -1,10 +1,14 @@ package com.foreverwin.mesnac.production.controller; +import cn.hutool.json.JSONUtil; +import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; +import com.fasterxml.jackson.core.JsonParser; import com.fasterxml.jackson.core.type.TypeReference; import com.fasterxml.jackson.databind.ObjectMapper; import com.foreverwin.mesnac.common.dto.SfcDispatchDto; import com.foreverwin.mesnac.common.model.InspectionTask; +import com.foreverwin.mesnac.common.util.HttpUtils; import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.meapi.dto.LogisticsDto; import com.foreverwin.mesnac.meapi.dto.SfcDto; @@ -16,10 +20,31 @@ import com.foreverwin.mesnac.meapi.service.RouterService; import com.foreverwin.mesnac.production.service.PodTemplateService; import com.foreverwin.modular.core.exception.BaseException; import com.foreverwin.modular.core.util.R; +import org.apache.http.*; +import org.apache.http.client.ClientProtocolException; +import org.apache.http.client.HttpClient; +import org.apache.http.client.config.RequestConfig; +import org.apache.http.client.entity.UrlEncodedFormEntity; +import org.apache.http.client.methods.CloseableHttpResponse; +import org.apache.http.client.methods.HttpPost; +import org.apache.http.entity.StringEntity; +import org.apache.http.impl.client.CloseableHttpClient; +import org.apache.http.impl.client.HttpClients; +import org.apache.http.util.EntityUtils; +import org.jsoup.Connection; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpMethod; +import org.springframework.http.MediaType; +import org.springframework.http.ResponseEntity; import org.springframework.stereotype.Controller; import org.springframework.web.bind.annotation.*; +import org.springframework.web.client.RestTemplate; +import java.io.*; +import java.net.HttpURLConnection; +import java.net.URI; +import java.net.URISyntaxException; +import java.net.URL; import java.util.*; @Controller @@ -122,6 +147,40 @@ public class PodTemplateController { return R.ok(); } + @ResponseBody + @PostMapping("/sfcFirtCheck") + public R sfcFirtCheck(@RequestBody Map map) { + List sfcDtoList = (List) map.get("sfcDtoList"); + ObjectMapper mapper = new ObjectMapper(); + sfcDtoList = mapper.convertValue(sfcDtoList, new TypeReference>() { + }); + String resrce = (String) map.get("resrce"); + String shoporder = (String) map.get("shopOrder"); + if (sfcDtoList == null || sfcDtoList.size() < 1) { + throw new BaseException("作业列表不能为空"); + } + if (sfcDtoList.size() != 1){ + throw new BaseException("只能选择一条数据"); + } + if (sfcDtoList.get(0).getQty()==1){ + throw new BaseException("SFC:"+sfcDtoList.get(0).getSfc()+"数量为1,无法执行首件报检"); + } + if (StringUtil.isBlank(resrce)) { + throw new BaseException("资源不能为空"); + } + ArrayList sfcList = new ArrayList<>(); + try { + for (SfcDto sfcDto : sfcDtoList) { + String completeSfc = podTemplateService.sfcFirtCheck(sfcDto, resrce,shoporder); + sfcList.add(completeSfc); + } + }catch (Exception e){ + return R.failed(sfcList,e.getMessage()); + } + + return R.ok(); + } + /** * 生产操作员面板工作列表 * @param sfcDto @@ -141,4 +200,32 @@ public class PodTemplateController { public R getSfcInfo(Sfc sfc) { return R.ok(podTemplateService.getInfoBySfc(sfc)); } + +// public static void main(String[] args) throws IOException { +// Tyre tyre =new Tyre(); +// tyre.setOuterTireNumber("123456"); +// List tyreList = new ArrayList<>(); +// tyreList.add(tyre); +// Map map=new HashMap(); +// map.put("username","admin"); +// map.put("password","admin123"); +// Connection.Response s= HttpUtils.post("http://localhost:8080/login", JSON.toJSONString(map)); +// Result result=JSONObject.parseObject(s.body(),Result.class); +// System.out.println(result.getToken()); +// Map stringStringMap=new HashMap<>(); +// stringStringMap.put("Authorization","Bearer "+result.getToken()); +// Connection.Response ss = HttpUtils.post("http://localhost:8080/basetyre/tyre/insertBaseTyres",stringStringMap,JSONObject.toJSONString(tyreList)); +// System.out.println(ss.body()); +// } +// static class Tyre{ +// private String outerTireNumber; +// +// public String getOuterTireNumber() { +// return outerTireNumber; +// } +// +// public void setOuterTireNumber(String outerTireNumber) { +// this.outerTireNumber = outerTireNumber; +// } +// } } diff --git a/production/src/main/java/com/foreverwin/mesnac/production/controller/SplitSfcController.java b/production/src/main/java/com/foreverwin/mesnac/production/controller/SplitSfcController.java index a9ae99cb..1afac4f8 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/controller/SplitSfcController.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/controller/SplitSfcController.java @@ -2,6 +2,7 @@ package com.foreverwin.mesnac.production.controller; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.foreverwin.mesnac.common.util.HttpUtils; import com.foreverwin.mesnac.meapi.dto.SfcDto; import com.foreverwin.mesnac.production.model.SplitSfc; import com.foreverwin.mesnac.production.service.SplitSfcService; @@ -10,7 +11,10 @@ import com.foreverwin.modular.core.util.R; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import java.io.IOException; +import java.util.HashMap; import java.util.List; +import java.util.Map; /** * @@ -148,4 +152,6 @@ public class SplitSfcController { public R removeByIds(List ids){ return R.ok(splitSfcService.removeByIds(ids)); } + + } \ No newline at end of file diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/PodTemplateService.java b/production/src/main/java/com/foreverwin/mesnac/production/service/PodTemplateService.java index 518067f8..1b2824f2 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/PodTemplateService.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/PodTemplateService.java @@ -15,7 +15,6 @@ public interface PodTemplateService { Map sfcEnter(SfcDto workCenterDto); - Object getSfcInfo(SfcDto sfcDto); void sfcStart(Map map); @@ -28,5 +27,7 @@ public interface PodTemplateService { LogisticsDto Scansfc(Map paramMap); - // Map Scansfc(SfcDto sfcDto); + String sfcFirtCheck(SfcDto sfcDto, String resrce, String shoporder); + + // Map Scansfc(SfcDto sfcDto); } diff --git a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java index 59292a01..f476a3c8 100644 --- a/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java +++ b/production/src/main/java/com/foreverwin/mesnac/production/service/impl/PodTemplateServiceImpl.java @@ -29,6 +29,7 @@ import com.foreverwin.mesnac.dispatch.service.UserResourceService; import com.foreverwin.mesnac.meapi.dto.*; import com.foreverwin.mesnac.meapi.mapper.ResrceMapper; +import com.foreverwin.mesnac.meapi.mapper.SfcMapper; import com.foreverwin.mesnac.meapi.model.*; import com.foreverwin.mesnac.meapi.service.*; import com.foreverwin.mesnac.production.mapper.SfcCrossMapper; @@ -114,14 +115,12 @@ public class PodTemplateServiceImpl implements PodTemplateService { private UserResourceService userResourceService; @Autowired private RouterStepService routerStepService; - @Autowired private SfcDispatchMapper sfcDispatchMapper; - - - @Autowired public LogisticsTurnoverService logisticsTurnoverService; + @Autowired + private SfcMapper sfcMapper; @@ -382,10 +381,23 @@ public class PodTemplateServiceImpl implements PodTemplateService { if (status.equals("404")) { throw new BaseException("产品条码" + sfc + "已暂停"); } - BigDecimal workHour=BigDecimal.ZERO; BigDecimal qty = new BigDecimal(sfcServiceById.getQty().toString()); - if (!operation.equals("WX_6106GX")&&!operation.equals("HJ_6106JYGX")&&!operation.equals("HJ_6106JRGX")) { + String is_check = customFieldsService.getCustomFieldsValue(currentRevisionRef.getHandle(),"IS_CHECK"); + //首件报检检验 + String first_check = customFieldsService.getCustomFieldsValue(currentRevisionRef.getHandle(),"FIRST_CHECK"); + if (StringUtil.isBlank(first_check)){ + InspectionTask createTask = inspectionTaskService.isCreateTask(site, Constants.INSPECTION_TYPE_S, sfc, operation, stepId); + if (createTask == null && sfcDto.getQty()>1) { + throw new BaseException("请提交产品条码["+sfcDto.getSfc()+"]的首件检验任务"); + } + if (createTask != null && createTask.getStatus().equals(Constants.INSPECTION_TASK_STATUS_COMPLETE) + && createTask.getResult().equals(Constants.RSESULT_NG) && sfcDto.getQty()>1){ + throw new BaseException("产品条码["+sfcDto.getSfc()+"]上次首检不合格,请再次执行首检报检"); + } + } + + if (StringUtil.isBlank(is_check)) { //是否有自检检验项目 List inspectionItemDetails = inspectionItemService.selectQualityInspection(sfc, operation, stepId, Constants.INSPECTION_TYPE_Z); if (inspectionItemDetails.size() > 0 && inspectionItemDetails.get(0) != null) { @@ -398,6 +410,7 @@ public class PodTemplateServiceImpl implements PodTemplateService { throw new BaseException("自检任务不合格,不能完成请检查"); } } + //是否装配完成 List> assembleList = sfcDataAssembleMapper.querySfcAssemble(HandleEnum.SFC_DISPATCH.getHandle(site, dispatchNo)); if (assembleList != null && assembleList.size() > 0) { @@ -424,10 +437,8 @@ public class PodTemplateServiceImpl implements PodTemplateService { } } - - //物料消耗 - materialConsumption(site, operation, HandleEnum.SFC.getHandle(site, sfc), stepId, resrce); + materialConsumption(site, operation, HandleEnum.SFC.getHandle(site, sfc), stepId, resrce); //专检创建 Map paramMap = new HashMap<>(); paramMap.put("SFC", sfc); @@ -478,16 +489,10 @@ public class PodTemplateServiceImpl implements PodTemplateService { } } - //完成工序为外协工序则找下道工序,生成跨车间转运任务 - else if (operation.equals("WX_6106GX")){ - //找下道工序 - try { - CreateLogisticsTask(sfcDispatchById,sfcDto.getItem()); - }catch (Exception e){ - ExceptionUtil.throwException(e); - } - + else { + CreateLogisticsTask(sfcDispatchById,sfcDto.getItem()); } + try { sfcCrossService.completeAction(site, currentRevisionRef.getHandle(), resrce, sfcServiceById.getHandle(), qty); @@ -504,7 +509,6 @@ public class PodTemplateServiceImpl implements PodTemplateService { * 如果下道工序为检验工序或者检入工序,1、先判断工序派工情况 */ - /** * 判断是否为返修工序、返修工序不报工 */ @@ -733,42 +737,114 @@ public class PodTemplateServiceImpl implements PodTemplateService { //转运任务 return logisticsDto; } + + @Override + public String sfcFirtCheck(SfcDto sfcDto, String resrce, String shoporder) { + String site = CommonMethods.getSite(); + String operation = sfcDto.getOperation(); + String sfc = sfcDto.getSfc(); + String stepId = sfcDto.getStepId(); + String dispatchNo = sfcDto.getDispatchNo(); + Sfc sfcServiceById = sfcService.getById(HandleEnum.SFC.getHandle(site, sfc)); + String status = StringUtil.trimHandle(sfcServiceById.getStatusBo()); + //首件报检检验 + String first_check = customFieldsService.getCustomFieldsValue(HandleEnum.OPERATION.getHandle(site,operation,"1.0"),"FIRST_CHECK"); + if (StringUtil.notBlank(first_check)){ + throw new BaseException("工序【"+sfcDto.getOperationDescription()+"】不需要首检!"); + } + if (status.equals("404")) { + throw new BaseException("产品条码" + sfc + "已暂停"); + } + + + //专检创建 + Map paramMap = new HashMap<>(); + paramMap.put("SFC", sfc); + paramMap.put("SHOP_ORDER", StringUtil.trimHandle(sfcServiceById.getShopOrderBo())); + paramMap.put("OPERATION", operation); + paramMap.put("STEP_ID", stepId); + String workShopBo = commonService.getWorkShopBo(HandleEnum.RESOURCE.getHandle(site, resrce)); + if (StringUtil.isBlank(workShopBo)){ + throw new BaseException("设备与车间关系未维护"); + } + paramMap.put("WORK_CENTER", StringUtil.trimHandle(workShopBo)); + paramMap.put("RESRCE", resrce); + paramMap.put("SFC_DISPATCH_DETAIL_BO", HandleEnum.SFC_DISPATCH.getHandle(site, dispatchNo)); + ///查询此SFC此工序是否有首检任务 + paramMap.put("CATEGORY", Constants.INSPECTION_TYPE_S); + inspectionTaskService.createFirstTask(paramMap); + return sfc; + } + public void CreateLogisticsTask(SfcDispatch request,String item) { - // SfcDispatch sfcDispatchById = sfcDispatchService.getById(request.getSfcdispatchBo()); String site = CommonMethods.getSite(); SfcDispatch sfcDispatchById = sfcDispatchService.getById(HandleEnum.SFC_DISPATCH.getHandle(site, request.getSfc() + "-" + request.getStepId())); -// Router router = routerService.getById(sfcDispatchById.getRouterBo()); //找下道工序 (返修工序除外) -// if (!router.getRouterType().equals("C")) { SfcDispatch nextsfcDispatch=null; String dispatchNo = request.getSfc() + "-" + request.getStepId(); List stringList=new ArrayList<>(); stringList.add("HJ_6106JYGX"); stringList.add("HJ_6106JRGX"); boolean flag=false; + + if(sfcDispatchById.getStepId().startsWith("9")){ + //找下道工序 for (int i = 1; i < 50; i++) { QueryWrapper queryWrapper = new QueryWrapper<>(); queryWrapper.eq(SfcDispatch.SFC, sfcDispatchById.getSfc()); queryWrapper.eq(SfcDispatch.SHOP_ORDER, sfcDispatchById.getShopOrder()); queryWrapper.eq(SfcDispatch.DISPATCH_SEQ, String.valueOf(Integer.parseInt(sfcDispatchById.getDispatchSeq()) + i)); - queryWrapper.like(SfcDispatch.ROUTER_BO, sfcDispatchById.getRouterBo().substring(0,sfcDispatchById.getRouterBo().lastIndexOf(","))); - // queryWrapper.eq(SfcDispatch.ROUTER_BO,sfcDispatchById.getRouterBo()); + // queryWrapper.like(SfcDispatch.ROUTER_BO, sfcDispatchById.getRouterBo().substring(0,sfcDispatchById.getRouterBo().lastIndexOf(","))); + queryWrapper.eq(SfcDispatch.ROUTER_BO,sfcDispatchById.getRouterBo()); nextsfcDispatch = sfcDispatchService.getOne(queryWrapper); - //外协工序后的检入工序:直接触发给入库 - if (nextsfcDispatch != null && "HJ_6106JRGX".equals(nextsfcDispatch.getOperation())) { - nextsfcDispatch.setOperation(nextsfcDispatch.getOperation()); - nextsfcDispatch.setStepId(nextsfcDispatch.getStepId()); - nextsfcDispatch.setWorkCenter("BCP"); + if (nextsfcDispatch != null && !stringList.contains(nextsfcDispatch.getOperation()) + && !nextsfcDispatch.getWorkCenter().equals(sfcDispatchById.getWorkCenter())) { flag=true; break; } + else if (nextsfcDispatch != null && !stringList.contains(nextsfcDispatch.getOperation()) + && nextsfcDispatch.getWorkCenter().equals(sfcDispatchById.getWorkCenter())) { + flag=false; + break; + } + else if (nextsfcDispatch != null && stringList.contains(nextsfcDispatch.getOperation())){ + continue; + } + else if (nextsfcDispatch == null){ + /** + * 找正在排队的工序 + */ + Map map = sfcMapper.findOperationBySfc(site, sfcDispatchById.getSfc()); + if (map !=null){ + SfcDispatch sfc_inwork = sfcDispatchService.getById(HandleEnum.SFC_DISPATCH.getHandle(site, sfcDispatchById.getSfc() + "-" + map.get("STEP_ID"))); + if (sfc_inwork !=null &&!sfcDispatchById.getWorkCenter().equals(sfc_inwork.getWorkCenter()) + && !stringList.contains(sfc_inwork.getWorkCenter())){ + nextsfcDispatch=new SfcDispatch(); + nextsfcDispatch.setOperation(sfc_inwork.getOperation()); + nextsfcDispatch.setStepId(sfc_inwork.getStepId()); + nextsfcDispatch.setWorkCenter(sfc_inwork.getWorkCenter()); + flag=true; + break; + } + } + } + } + }else { + //找下道工序 + for (int i = 1; i < 50; i++) { + QueryWrapper queryWrapper = new QueryWrapper<>(); + queryWrapper.eq(SfcDispatch.SFC, sfcDispatchById.getSfc()); + queryWrapper.eq(SfcDispatch.SHOP_ORDER, sfcDispatchById.getShopOrder()); + queryWrapper.eq(SfcDispatch.DISPATCH_SEQ, String.valueOf(Integer.parseInt(sfcDispatchById.getDispatchSeq()) + i)); + queryWrapper.like(SfcDispatch.ROUTER_BO, sfcDispatchById.getRouterBo().substring(0,sfcDispatchById.getRouterBo().lastIndexOf(","))); + // queryWrapper.eq(SfcDispatch.ROUTER_BO,sfcDispatchById.getRouterBo()); + nextsfcDispatch = sfcDispatchService.getOne(queryWrapper); if (nextsfcDispatch != null && !stringList.contains(nextsfcDispatch.getOperation()) && !nextsfcDispatch.getWorkCenter().equals(sfcDispatchById.getWorkCenter())) { flag=true; break; } - else if (nextsfcDispatch != null && !stringList.contains(nextsfcDispatch.getOperation()) && nextsfcDispatch.getWorkCenter().equals(sfcDispatchById.getWorkCenter())) { flag=false; @@ -777,26 +853,27 @@ public class PodTemplateServiceImpl implements PodTemplateService { else if (nextsfcDispatch != null && stringList.contains(nextsfcDispatch.getOperation())){ continue; } - else if (nextsfcDispatch == null ) { + else if (nextsfcDispatch == null){ QueryWrapper queryWrappers = new QueryWrapper<>(); queryWrappers.eq(SfcDispatch.SFC, sfcDispatchById.getSfc()); queryWrappers.eq(SfcDispatch.SHOP_ORDER, sfcDispatchById.getShopOrder()); queryWrappers.eq(SfcDispatch.DISPATCH_SEQ, String.valueOf(Integer.parseInt(sfcDispatchById.getDispatchSeq()) + (i-1))); queryWrappers.like(SfcDispatch.ROUTER_BO, sfcDispatchById.getRouterBo().substring(0,sfcDispatchById.getRouterBo().lastIndexOf(","))); - // queryWrappers.eq(SfcDispatch.ROUTER_BO,sfcDispatchById.getRouterBo()); + // queryWrappers.eq(SfcDispatch.ROUTER_BO,sfcDispatchById.getRouterBo()); nextsfcDispatch = sfcDispatchService.getOne(queryWrappers); - if (nextsfcDispatch.getOther2() != null && Constants.RK.equals(nextsfcDispatch.getOther2()) && stringList.contains(nextsfcDispatch.getOperation())){ + if (nextsfcDispatch.getOther2() != null + && Constants.RK.equals(nextsfcDispatch.getOther2()) && stringList.contains(nextsfcDispatch.getOperation())){ nextsfcDispatch.setOperation(nextsfcDispatch.getOperation()); nextsfcDispatch.setStepId(nextsfcDispatch.getStepId()); nextsfcDispatch.setWorkCenter("BCP"); - }else { + } else { return; } flag=true; break; } - } + } if (flag){ LogisticsTurnover logisticsTurnover = new LogisticsTurnover(); logisticsTurnover.setHandle("LogisticsBO:1000" + "," + UUID.randomUUID().toString()); @@ -811,21 +888,11 @@ public class PodTemplateServiceImpl implements PodTemplateService { logisticsTurnover.setTurnoutItem(item); logisticsTurnover.setTurnoutWorkcenter(sfcDispatchById.getWorkCenter()); try { - if (request.getOperation().equals("WX_6106GX")){ - logisticsTurnover.setComDateTime(LocalDateTime.now()); - logisticsTurnover.setStatus("COM"); - logisticsTurnover.setuserId("WX000001"); - logisticsTurnover.setUserName("外协虚拟"); - } logisticsTurnoverService.save(logisticsTurnover); } catch (Exception e) { throw new BaseException("周转任务生成失败"); } } - - -// } - } } diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/controller/InspectionTaskManageController.java b/quality/src/main/java/com/foreverwin/mesnac/quality/controller/InspectionTaskManageController.java index 379af0ae..496e534b 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/controller/InspectionTaskManageController.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/controller/InspectionTaskManageController.java @@ -28,7 +28,6 @@ public class InspectionTaskManageController { @PostMapping("/findInspectionTask") public R findInspectionTask(@RequestBody InspectionTaskManageRequest inspectionTaskManageRequest) { List result; - try { String site = CommonMethods.getSite(); inspectionTaskManageRequest.setSite(site); diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/dto/InspectionTaskManageRequest.java b/quality/src/main/java/com/foreverwin/mesnac/quality/dto/InspectionTaskManageRequest.java index bcf2e02f..e3d4dece 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/dto/InspectionTaskManageRequest.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/dto/InspectionTaskManageRequest.java @@ -17,6 +17,7 @@ public class InspectionTaskManageRequest implements Serializable { private String item; private String itemDescription; private String operation; + private String wxDescription; private String stepId; private String checkUser; private String dateFromStr; @@ -28,6 +29,14 @@ public class InspectionTaskManageRequest implements Serializable { private String trueCheckUser; private String dispatchUser; + public String getWxDescription() { + return wxDescription; + } + + public void setWxDescription(String wxDescription) { + this.wxDescription = wxDescription; + } + public String getItemDescription() { return itemDescription; } 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 ce3c2374..2aacec04 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 @@ -189,10 +189,11 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ * 1、先查询派工表(Z_SFC_DISPATCH)里的派工数据 * 2、根据派工表里的派工序号查找下道工序 * 3、如果两个工作中心不一样,就会生成转运待办任务 + * 4、只有专检任务才会生成 */ - - this.CreateLogisticsTask(request); - + if (request.getCategory().equals(Constants.INSPECTION_TYPE_P)){ + this.CreateLogisticsTask(request); + } } @@ -262,7 +263,9 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ request.setSfc(inspectionTaskManage.getSfc()); request.setStepId(inspectionTaskManage.getStepId()); request.setItem(inspectionTaskManage.getItem()); - this.CreateLogisticsTask(request); + if (inspectionTaskManage.getCategory().equals(Constants.INSPECTION_TYPE_P)){ + this.CreateLogisticsTask(request); + } } inspectionTaskModel.setStatus("SAVE".equals(type) ? Constants.INSPECTION_TASK_STATUS_DOING : Constants.INSPECTION_TASK_STATUS_COMPLETE); inspectionTaskModel.setResult(result); @@ -300,7 +303,6 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ // SfcDispatch sfcDispatchById = sfcDispatchService.getById(request.getSfcdispatchBo()); String site = CommonMethods.getSite(); SfcDispatch sfcDispatchById = sfcDispatchService.getById(HandleEnum.SFC_DISPATCH.getHandle(site, request.getSfc() + "-" + request.getStepId())); - Router router = routerService.getById(sfcDispatchById.getRouterBo()); List stringList=new ArrayList<>(); stringList.add("HJ_6106JYGX"); stringList.add("HJ_6106JRGX"); @@ -414,6 +416,12 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ logisticsTurnover.setTurnoutItem(request.getItem()); logisticsTurnover.setTurnoutWorkcenter(sfcDispatchById.getWorkCenter()); try { + if (sfcDispatchById.getOperation().equals("WX_6106GX")){ + logisticsTurnover.setComDateTime(LocalDateTime.now()); + logisticsTurnover.setStatus("COM"); + logisticsTurnover.setuserId("WX000001"); + logisticsTurnover.setUserName("外协虚拟"); + } logisticsTurnoverService.save(logisticsTurnover); /** * 发送MQ消息 @@ -422,7 +430,7 @@ public class InspectionTaskManageServiceImpl implements InspectionTaskManageServ // Map messageMap=logisticsTurnoverMapper.messageMap(); // activeMQUtil.SendMessage("SendMessageHJ02"); } catch (Exception e) { - throw new BaseException("周转任务生成失败"); + throw new BaseException("周转任务生成失败"+e.getMessage()); } } diff --git a/quality/src/main/resources/mapper/InspectionTaskManageMapper.xml b/quality/src/main/resources/mapper/InspectionTaskManageMapper.xml index 90e32aba..175b6e2f 100644 --- a/quality/src/main/resources/mapper/InspectionTaskManageMapper.xml +++ b/quality/src/main/resources/mapper/InspectionTaskManageMapper.xml @@ -40,12 +40,14 @@