From 71594bd2dc9201834aa533099e9e49a9b84506cd Mon Sep 17 00:00:00 2001 From: wangfei <3597712270@qq.com> Date: 星期四, 12 六月 2025 15:32:25 +0800 Subject: [PATCH] 新增韩语 --- hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 247 +++++++++++++++++++++++++++++++++++-------------- 1 files changed, 175 insertions(+), 72 deletions(-) diff --git a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java index 22b38e1..8cf818c 100644 --- a/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java +++ b/hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java @@ -13,10 +13,13 @@ import com.mes.damage.service.DamageService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; +import com.mes.pp.entity.DamageDetails; import com.mes.pp.entity.ReportingWork; import com.mes.pp.entity.ReportingWorkDetail; import com.mes.work_assignment.entity.WorkAssignment; import com.mes.work_assignment.mapper.WorkAssignmentMapper; +import lombok.extern.slf4j.Slf4j; +import org.apache.commons.lang.StringUtils; import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; @@ -42,6 +45,7 @@ * @author wu * @since 2024-06-13 */ +@Slf4j @Service public class DamageServiceImpl extends MPJBaseServiceImpl<DamageMapper, Damage> implements DamageService { @@ -49,6 +53,10 @@ GlassInfoMapper glassInfoMapper; @Resource WorkAssignmentMapper workAssignmentMapper; + + + private final static String ERP_URL = "http://192.168.2.100:8086"; + /** * 鏌ヨ鎶ュ伐淇℃伅 @@ -68,10 +76,10 @@ } List<Damage> damageList = baseMapper.selectList(damageSelectWrapper); - for (Damage damage : damageList) { - damage.setStatus(2); - } - return baseMapper.selectList(damageSelectWrapper); +// for (Damage damage : damageList) { +// damage.setStatus(2); +// } + return damageList; } /** @@ -80,60 +88,87 @@ @Override public void submitDamage(List<Damage> damageList) { Map<String, List<Damage>> firstMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":" - + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName())); + + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName() + ":" + e.getOrderNumber() + ":" + e.getTechnologyNumber())); for (Map.Entry<String, List<Damage>> entry : firstMap.entrySet()) { ReportingWork reportingWork = new ReportingWork(); List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>(); String key = entry.getKey(); List<Damage> damages = entry.getValue(); - for (Damage damage:damages - ) { - reportingWork.setOrderId(damage.getProcessId().substring(0, 10)); - reportingWork.setProductionId(damage.getProcessId().substring(0,11)); - reportingWork.setProcessId(damage.getProcessId()+"/"+damage.getTechnologyNumber()); - reportingWork.setDeviceName(damage.getDeviceName()); - reportingWork.setThisProcess(damage.getWorkingProcedure()); - reportingWork.setThisCompletedQuantity(1); - reportingWork.setThisWornQuantity(0); - reportingWork.setClasses("鏃╃彮"); - reportingWork.setReportingWorkTime(LocalDateTime.now()); - reportingWork.setTeamsGroupsName(damage.getTeamsGroupsName()); - reportingWork.setCreator("auto"); - System.out.println("Key: " + key); + reportingWork.setOrderId(damages.get(0).getProcessId().substring(0, 10)); + reportingWork.setProductionId(damages.get(0).getProcessId().substring(0, 11)); + reportingWork.setProcessId(damages.get(0).getProcessId() + "/" + damages.get(0).getTechnologyNumber()); +// reportingWork.setDeviceName(damages.get(0).getDeviceName()); + if (StringUtils.isBlank(damages.get(0).getDeviceName())) { + reportingWork.setDeviceName("auto"); + } else { + reportingWork.setDeviceName(damages.get(0).getDeviceName()); } + reportingWork.setThisProcess(damages.get(0).getWorkingProcedure()); + reportingWork.setThisCompletedQuantity(0); + reportingWork.setThisWornQuantity(0); + reportingWork.setClasses("鏃╃彮"); + reportingWork.setReportingWorkTime(LocalDateTime.now()); + reportingWork.setTeamsGroupsName(damages.get(0).getTeamsGroupsName()); + reportingWork.setCreator("auto"); + + ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail(); + reportingWorkDetail.setTechnologyNumber(damages.get(0).getTechnologyNumber()); + reportingWorkDetail.setOrderNumber(damages.get(0).getOrderNumber()); + reportingWorkDetail.setCompletedQuantity(0); + reportingWorkDetail.setBreakageQuantity(0); - Map<String, List<Damage>> secondMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":" + Map<String, List<Damage>> secondMap = damages.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":" + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName())); + List<DamageDetails> damageDetailses = new ArrayList<>(); for (Map.Entry<String, List<Damage>> entrys : secondMap.entrySet()) { - List<Damage> damagesdetail = entrys.getValue(); + List<Damage> damagesdetails = entrys.getValue(); - - for (Damage damage:damagesdetail - ) { - ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail(); - reportingWorkDetail.setTechnologyNumber(damage.getTechnologyNumber()); - reportingWorkDetail.setOrderNumber(damage.getOrderNumber()); - reportingWorkDetail.setCompletedQuantity(1); - reportingWorkDetail.setBreakageQuantity(0); - reportingWorkDetails.add(reportingWorkDetail); - + if (damagesdetails.get(0).getType() != 8 && damagesdetails.get(0).getType() != 9) { + reportingWorkDetail.setCompletedQuantity(damagesdetails.size()); + reportingWork.setThisCompletedQuantity(damagesdetails.size() + reportingWork.getThisCompletedQuantity()); + } else { + reportingWork.setThisWornQuantity(damagesdetails.size() + reportingWork.getThisWornQuantity()); + reportingWorkDetail.setBreakageQuantity(damagesdetails.size()); + DamageDetails damageDetails = new DamageDetails(); + damageDetails.setBreakageQuantity(damagesdetails.size()); + damageDetails.setBreakageType(damagesdetails.get(0).getBreakageType()); + damageDetails.setBreakageReason(damagesdetails.get(0).getBreakageReason()); + damageDetails.setResponsibleProcess(damagesdetails.get(0).getResponsibleProcess()); + damageDetails.setResponsibleEquipment(damagesdetails.get(0).getResponsibleEquipment()); + damageDetails.setResponsibleTeam(damagesdetails.get(0).getResponsibleTeam()); + damageDetails.setResponsiblePersonnel(null); + if (damagesdetails.get(0).getStatus() == 7) { + damageDetails.setQualityInspector("auto"); + damageDetails.setPatchStatus(1); + damageDetails.setQualityInsStatus(2); + } else { + damageDetails.setQualityInspector(""); + damageDetails.setPatchStatus(0); + damageDetails.setQualityInsStatus(0); + } + damageDetailses.add(damageDetails); } } - sendToERP(reportingWork,reportingWorkDetails); + reportingWorkDetails.add(reportingWorkDetail); + reportingWorkDetail.setDamageDetails(damageDetailses); + sendToERP(reportingWork, reportingWorkDetails, Boolean.FALSE); } } @Override - public void submitReport(Damage damage) { + public Boolean submitReport(Damage damage) { ReportingWork reportingWork = new ReportingWork(); reportingWork.setOrderId(damage.getProcessId().substring(0, 10)); - reportingWork.setProductionId(damage.getProcessId().substring(0,11)); - reportingWork.setProcessId(damage.getProcessId()+"/"+damage.getTechnologyNumber()); - reportingWork.setDeviceName(damage.getDeviceName()); + reportingWork.setProductionId(damage.getProcessId().substring(0, 11)); + reportingWork.setProcessId(damage.getProcessId() + "/" + damage.getTechnologyNumber()); + if (StringUtils.isBlank(damage.getDeviceName())) { + reportingWork.setDeviceName("auto"); + } else { + reportingWork.setDeviceName(damage.getDeviceName()); + } reportingWork.setThisProcess(damage.getWorkingProcedure()); -// reportingWork.setNextProcess("纾ㄨ竟"); reportingWork.setThisCompletedQuantity(1); reportingWork.setThisWornQuantity(0); reportingWork.setClasses("鏃╃彮"); @@ -148,7 +183,18 @@ reportingWorkDetail.setCompletedQuantity(1); reportingWorkDetail.setBreakageQuantity(0); reportingWorkDetails.add(reportingWorkDetail); - sendToERP(reportingWork,reportingWorkDetails); + return sendToERP(reportingWork, reportingWorkDetails, Boolean.TRUE); + } + + @Override + public void autoSubmitReport(String glassId, int deviceId, String workingProcedure, String remark, int type) { + Damage damage = new Damage(); + damage.setGlassId(glassId); + damage.setWorkingProcedure(workingProcedure); + damage.setLine(deviceId); + damage.setType(type); + damage.setRemark(remark); + this.insertDamage(damage); } /** @@ -156,32 +202,53 @@ */ @Override public void insertDamage(Damage damage) { - LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>(); - glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId()); - GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper); - BeanUtils.copyProperties(glassInfo, damage); + List<Damage> damage1 = null; + if (Const.GLASS_STATE_DAMAGE.equals(damage.getType()) || Const.GLASS_STATE_TAKE.equals(damage.getType())) { + damage1 = baseMapper.selectList( + new LambdaQueryWrapper<Damage>() + .in(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE) + .notIn(Damage::getStatus, 7, 8) + .lt(Damage::getStatus, 7) + .eq(Damage::getGlassId, damage.getGlassId()) + ); + } else { + damage1 = baseMapper.selectList( + new LambdaQueryWrapper<Damage>() + .notIn(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE) + .eq(Damage::getLine, damage.getLine()) + .eq(Damage::getWorkingProcedure, damage.getWorkingProcedure()) + .eq(Damage::getGlassId, damage.getGlassId()) + ); + } + if (damage1 == null || damage1.size() == 0) { + LambdaQueryWrapper<GlassInfo> glassInfoSelectWrapper = new LambdaQueryWrapper<>(); + glassInfoSelectWrapper.eq(GlassInfo::getGlassId, damage.getGlassId()); + GlassInfo glassInfo = glassInfoMapper.selectOne(glassInfoSelectWrapper); + BeanUtils.copyProperties(glassInfo, damage); - LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper = new LambdaQueryWrapper<>(); - workAssignmentSelectWrapper - .eq(WorkAssignment::getLine, damage.getLine()) - .eq(WorkAssignment::getWorkProcesses, damage.getWorkingProcedure()); - WorkAssignment workAssignment = workAssignmentMapper.selectOne(workAssignmentSelectWrapper); - if (workAssignment != null) { - damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName()); - damage.setDeviceName(workAssignment.getDeviceName()); + LambdaQueryWrapper<WorkAssignment> workAssignmentSelectWrapper = new LambdaQueryWrapper<>(); + workAssignmentSelectWrapper + .eq(WorkAssignment::getLine, damage.getLine()) + .eq(WorkAssignment::getWorkProcesses, damage.getWorkingProcedure()); + WorkAssignment workAssignment = workAssignmentMapper.selectOne(workAssignmentSelectWrapper); + if (workAssignment != null) { + damage.setTeamsGroupsName(workAssignment.getTeamsGroupsName()); + damage.setDeviceName(workAssignment.getDeviceName()); + } + damage.setProcessId(glassInfo.getFlowCardId()); + damage.setOrderNumber(glassInfo.getGlassType()); + damage.setTechnologyNumber(glassInfo.getLayer()); + damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now())); + if (damage.getType() == null) { + damage.setType(1); + } + if (damage.getType() == 1 && submitReport(damage)) { + damage.setStatus(3); + } else { + damage.setStatus(1); + } + baseMapper.insert(damage); } - damage.setProcessId(glassInfo.getFlowCardId()); - damage.setOrderNumber(glassInfo.getGlassType()); - damage.setTechnologyNumber(glassInfo.getLayer()); - damage.setDamageTime(Timestamp.valueOf(LocalDateTime.now())); - if (damage.getType() == null) { - damage.setType(1); - } - if (damage.getType() == 1) { - damage.setStatus(2); - submitReport(damage); - } - baseMapper.insert(damage); } /** @@ -248,15 +315,26 @@ baseMapper.delete( new LambdaQueryWrapper<Damage>() .eq(Damage::getGlassId, glassId) - .in(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE) + .in(Damage::getType, Const.GLASS_STATE_DAMAGE_TAKE) + .lt(Damage::getStatus, 7) ); } @Override - public void sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails){ + public Boolean sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails, Boolean type) { + log.info("鎶ュ伐鏁版嵁reportingWork锛歿}锛宺eportingWorkDetails锛歿}", reportingWork, reportingWorkDetails); try { // 鐩爣绯荤粺鐨凙PI URL - String url = "http://192.168.3.119:8086/reportingWork/mesSaveReportingWorkWorn"; + + + String url1 = ERP_URL + "/reportingWork/mesReportingWork"; + String url2 = ERP_URL + "/reportingWork/mesSaveReportingWorkWorn"; + String url; + if (type) { + url = url1; + } else { + url = url2; + } URL obj = new URL(url); HttpURLConnection con = (HttpURLConnection) obj.openConnection(); @@ -272,19 +350,33 @@ ObjectMapper objectMapper = new ObjectMapper(); // 灏� ReportingWork 杞崲涓� JSONObject + + // 灏� ReportingWorkDetail 鍒楄〃杞崲涓� JSONArray + + if (type) { + JSONObject detailsJsonObject = new JSONObject(objectMapper.writeValueAsString(reportingWorkDetails.get(0))); + result.put("detail", detailsJsonObject); + reportingWork.setProcessId(reportingWork.getProcessId().substring(0, 14)); + } else { + JSONArray detailsJsonArray = new JSONArray(objectMapper.writeValueAsString(reportingWorkDetails)); + result.put("detail", detailsJsonArray); + } JSONObject reportingWorkJson = new JSONObject(objectMapper.writeValueAsString(reportingWork)); reportingWorkJson.put("reportingWorkTime", reportingWork.getReportingWorkTime().format(DateTimeFormatter.ISO_LOCAL_DATE_TIME)); - // 灏� ReportingWorkDetail 鍒楄〃杞崲涓� JSONArray - JSONArray detailsJsonArray = new JSONArray(objectMapper.writeValueAsString(reportingWorkDetails)); - // 灏� JSON 瀵硅薄鍜屾暟缁勬坊鍔犲埌缁撴灉瀵硅薄涓� result.put("title", reportingWorkJson); - result.put("detail", detailsJsonArray); + result.put("type", 0); + if (reportingWorkDetails.get(0).getDamageDetails() != null) { + if (reportingWorkDetails.get(0).getDamageDetails().get(0).getPatchStatus() == 1) { + result.put("isPatch", 1); + } else { + result.put("isPatch", 0); + } + } result.put("userId", "admin"); result.put("userName", "admin"); result.put("qualityInsStatus", 0); - // 灏� result 瀵硅薄杞崲涓哄瓧绗︿覆 String jsonInputString = result.toString(); System.out.println("jsonInputString : " + result); @@ -305,11 +397,22 @@ while ((inputLine = in.readLine()) != null) { response.append(inputLine); } - System.out.println("Response Body: " + response.toString()); - } + // 瑙f瀽鍝嶅簲鍐呭 + JSONObject jsonResponse = new JSONObject(response.toString()); + // 鎻愬彇 code 鍜� message + int code = jsonResponse.getInt("code"); + String message = jsonResponse.getStr("data"); + log.info("鎶ュ伐鎯呭喌锛歿},{}", code, message); + if (code == 200 && message.equals("true")) { + return true; + } else { + return false; + } + } } catch (Exception e) { e.printStackTrace(); + return false; } } } -- Gitblit v1.8.0