diff --git a/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java b/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java index 2aed35ca..cd842f93 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java @@ -125,7 +125,8 @@ public enum HandleEnum { /**检验任务明细**/ INSPECTION_TASK_DETAIL("InspectionTaskDetailBO:","InspectionTaskDetailBO:{0},{1}"), - + /**自报任务**/ + SELF_REPORT("SelfReportBO:","SelfReportBO:{0},{1}"), /**上料**/ LOAD_INVENTORY("LoadInventoryBO:","LoadInventoryBO:{0},{1}"), diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/dto/SelfReportRequest.java b/quality/src/main/java/com/foreverwin/mesnac/quality/dto/SelfReportRequest.java new file mode 100644 index 00000000..c167a5fa --- /dev/null +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/dto/SelfReportRequest.java @@ -0,0 +1,40 @@ +package com.foreverwin.mesnac.quality.dto; + +public class SelfReportRequest { + private String type; + private String shopOrder; + private String ncGroup; + private String ncCode; + + public String getType() { + return type; + } + + public void setType(String type) { + this.type = type; + } + + public String getShopOrder() { + return shopOrder; + } + + public void setShopOrder(String shopOrder) { + this.shopOrder = shopOrder; + } + + public String getNcGroup() { + return ncGroup; + } + + public void setNcGroup(String ncGroup) { + this.ncGroup = ncGroup; + } + + public String getNcCode() { + return ncCode; + } + + public void setNcCode(String ncCode) { + this.ncCode = ncCode; + } +} diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/model/SelfReport.java b/quality/src/main/java/com/foreverwin/mesnac/quality/model/SelfReport.java index 250d00dd..98467c1f 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/model/SelfReport.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/model/SelfReport.java @@ -7,6 +7,7 @@ import com.baomidou.mybatisplus.annotation.TableName; import com.baomidou.mybatisplus.extension.activerecord.Model; import java.io.Serializable; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; @@ -79,7 +80,7 @@ public class SelfReport extends Model { * 不良数量 */ @TableField("NC_QTY") - private Double ncQty; + private BigDecimal ncQty; /** * 设备位置 */ @@ -237,11 +238,11 @@ public class SelfReport extends Model { this.ncCode = ncCode; } - public Double getNcQty() { + public BigDecimal getNcQty() { return ncQty; } - public void setNcQty(Double ncQty) { + public void setNcQty(BigDecimal ncQty) { this.ncQty = ncQty; } diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/SelfReportServiceImpl.java b/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/SelfReportServiceImpl.java index 22ca9064..0f049064 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/SelfReportServiceImpl.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/SelfReportServiceImpl.java @@ -3,8 +3,16 @@ package com.foreverwin.mesnac.quality.service.impl; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.core.type.TypeReference; +import com.fasterxml.jackson.databind.ObjectMapper; +import com.foreverwin.mesnac.common.constant.Constants; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.service.AnomalyService; +import com.foreverwin.mesnac.common.service.CommonService; +import com.foreverwin.mesnac.common.util.StringUtil; import com.foreverwin.mesnac.meapi.dto.SfcDto; import com.foreverwin.mesnac.production.mapper.SfcCrossMapper; +import com.foreverwin.mesnac.quality.dto.SelfReportRequest; import com.foreverwin.mesnac.quality.mapper.SelfReportMapper; import com.foreverwin.mesnac.quality.model.SelfReport; import com.foreverwin.mesnac.quality.service.SelfReportService; @@ -16,10 +24,13 @@ import org.springframework.context.i18n.LocaleContextHolder; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; +import java.math.BigDecimal; import java.time.LocalDate; import java.time.LocalDateTime; import java.util.List; import java.util.Map; +import java.util.UUID; +import java.util.stream.Collectors; /** *

@@ -38,6 +49,10 @@ public class SelfReportServiceImpl extends ServiceImpl map) { String site = CommonMethods.getSite(); + String user = CommonMethods.getUser(); String sfc = (String)map.get("sfc"); String resrce = (String)map.get("resrce"); - List list = (List)map.get("ncList"); + String ncQty = (String)map.get("ncQty"); + String comments = (String)map.get("comments"); + String location=(String)map.get("location"); + List list = (List)map.get("ncList"); + ObjectMapper mapper = new ObjectMapper(); + list = mapper.convertValue(list, new TypeReference>() {}); SfcDto sfcDto = new SfcDto(); sfcDto.setSfc(sfc); sfcDto.setResrce(resrce); - Map sfcMapper = sfcCorssMapper.querySfcData(site, LocaleContextHolder.getLocale().getLanguage(), sfcDto); - - + Map sfcData = sfcCorssMapper.querySfcData(site, LocaleContextHolder.getLocale().getLanguage(), sfcDto); + + String operationStep = (String)sfcData.get("OPERATION_STEP"); + String shopOrder = (String)sfcData.get("SHOP_ORDER"); + String item = (String)sfcData.get("ITEM"); + List resrceAbnormalList = list.stream().filter(selfReportRequest -> selfReportRequest.getType().equals(Constants.ABNORMAL_RESRCE)).collect(Collectors.toList()); + if (resrceAbnormalList.size()>0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i=0;i otherAbnormalList = list.stream().filter(selfReportRequest -> selfReportRequest.getType().equals(Constants.ABNORMAL_OTHER)).collect(Collectors.toList()); + if (otherAbnormalList.size()>0){ + anomalyService.createAnomalyTask(Constants.ABNORMAL_RESRCE,resrce,shopOrder,sfc,"",location,ncQty,comments); + } + QueryWrapper queryWrapper=new QueryWrapper<>(); + queryWrapper.eq(SelfReport.SFC,sfc); + queryWrapper.eq(SelfReport.OP_STEP,operationStep); + queryWrapper.eq(SelfReport.STATE,Constants.NEW); + List selfReports = list(queryWrapper); + if (selfReports.size()>0){ + throw new BaseException("存在未处理的自报任务"); + } + List selfReportList = list.stream().filter(selfReportRequest -> selfReportRequest.getType().equals("Z")).collect(Collectors.toList()); + if (selfReportList.size()>0){ + StringBuilder stringBuilder = new StringBuilder(); + for (int i=0;i