From a44ccbe72b5102a593521c643fbc14cc481628eb Mon Sep 17 00:00:00 2001 From: ZengTao <2773468879@qq.com> Date: 星期五, 20 九月 2024 12:59:21 +0800 Subject: [PATCH] 卧式理片添加自动报工,添加合并落架流程卡打印添加,修改流程卡打印样式 --- hangzhoumesParent/common/servicebase/src/main/java/com/mes/damage/service/impl/DamageServiceImpl.java | 147 +++++++++++++++++++++++++++++++++++++++++++++--- 1 files changed, 136 insertions(+), 11 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 b37edb4..22b38e1 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 @@ -1,8 +1,9 @@ package com.mes.damage.service.impl; +import cn.hutool.json.JSONArray; +import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; -import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.fasterxml.jackson.databind.ObjectMapper; import com.github.yulichang.base.MPJBaseServiceImpl; import com.github.yulichang.query.MPJQueryWrapper; import com.mes.common.config.Const; @@ -12,17 +13,23 @@ import com.mes.damage.service.DamageService; import com.mes.glassinfo.entity.GlassInfo; import com.mes.glassinfo.mapper.GlassInfoMapper; +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 org.springframework.beans.BeanUtils; -import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import javax.annotation.Resource; +import java.io.BufferedReader; +import java.io.InputStreamReader; +import java.io.OutputStream; +import java.net.HttpURLConnection; +import java.net.URL; import java.sql.Timestamp; import java.time.LocalDateTime; -import java.util.Collections; -import java.util.HashMap; +import java.time.format.DateTimeFormatter; +import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.stream.Collectors; @@ -42,8 +49,6 @@ GlassInfoMapper glassInfoMapper; @Resource WorkAssignmentMapper workAssignmentMapper; - @Autowired - private DamageMapper damageMapper; /** * 鏌ヨ鎶ュ伐淇℃伅 @@ -76,22 +81,74 @@ 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())); - 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); + } - System.out.println("Key: " + key); Map<String, List<Damage>> secondMap = damageList.stream().collect(Collectors.groupingBy(e -> e.getProcessId() + ":" + e.getWorkingProcedure() + ":" + e.getDeviceName() + ":" + e.getTeamsGroupsName())); for (Map.Entry<String, List<Damage>> entrys : secondMap.entrySet()) { + List<Damage> damagesdetail = 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); + + } } + sendToERP(reportingWork,reportingWorkDetails); } + } + @Override + public void 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.setThisProcess(damage.getWorkingProcedure()); +// reportingWork.setNextProcess("纾ㄨ竟"); + reportingWork.setThisCompletedQuantity(1); + reportingWork.setThisWornQuantity(0); + reportingWork.setClasses("鏃╃彮"); + reportingWork.setReportingWorkTime(LocalDateTime.now()); + reportingWork.setTeamsGroupsName(damage.getTeamsGroupsName()); + reportingWork.setCreator("auto"); + List<ReportingWorkDetail> reportingWorkDetails = new ArrayList<>(); + ReportingWorkDetail reportingWorkDetail = new ReportingWorkDetail(); + reportingWorkDetail.setTechnologyNumber(damage.getTechnologyNumber()); + reportingWorkDetail.setOrderNumber(damage.getOrderNumber()); + reportingWorkDetail.setCompletedQuantity(1); + reportingWorkDetail.setBreakageQuantity(0); + reportingWorkDetails.add(reportingWorkDetail); + sendToERP(reportingWork,reportingWorkDetails); } /** @@ -117,6 +174,13 @@ 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); } @@ -161,7 +225,7 @@ if (damage.getEngineerId() != null) { listDamage.eq("t.engineer_id", damage.getEngineerId()); } - return damageMapper.selectJoinList(DamagePrint.class, listDamage); + return baseMapper.selectJoinList(DamagePrint.class, listDamage); } /** @@ -169,7 +233,7 @@ */ @Override public List<DamagePrint> selectDamagePrintDetails(Damage damage) { - List<DamagePrint> listDamage = damageMapper.selectJoinList(DamagePrint.class, new MPJQueryWrapper<Damage>() + List<DamagePrint> listDamage = baseMapper.selectJoinList(DamagePrint.class, new MPJQueryWrapper<Damage>() .select("b.flow_card_id,b.layer,t.engineer_id,b.tempering_layout_id,b.tempering_feed_sequence,t.glass_id,b.width,b.height,b.thickness") .leftJoin("glass_info as b on t.glass_id=b.glass_id") .eq("t.working_procedure", damage.getWorkingProcedure()) @@ -187,4 +251,65 @@ .in(Damage::getType, Const.GLASS_STATE_DAMAGE, Const.GLASS_STATE_TAKE) ); } + + @Override + public void sendToERP(ReportingWork reportingWork, List<ReportingWorkDetail> reportingWorkDetails){ + try { + // 鐩爣绯荤粺鐨凙PI URL + String url = "http://192.168.3.119:8086/reportingWork/mesSaveReportingWorkWorn"; + URL obj = new URL(url); + HttpURLConnection con = (HttpURLConnection) obj.openConnection(); + + // 璁剧疆璇锋眰鏂规硶鍜岃姹傚ご + con.setRequestMethod("POST"); + con.setRequestProperty("Content-Type", "application/json; utf-8"); + con.setRequestProperty("Accept", "application/json"); + con.setDoOutput(true); + + // 鍒涘缓 JSON 瀵硅薄 + JSONObject result = new JSONObject(); + + ObjectMapper objectMapper = new ObjectMapper(); + + // 灏� ReportingWork 杞崲涓� JSONObject + 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); + result.put("userId", "admin"); + result.put("userName", "admin"); + result.put("qualityInsStatus", 0); + + // 灏� result 瀵硅薄杞崲涓哄瓧绗︿覆 + String jsonInputString = result.toString(); + System.out.println("jsonInputString : " + result); + // 鍙戦�佽姹� + try (OutputStream os = con.getOutputStream()) { + byte[] input = jsonInputString.getBytes("utf-8"); + os.write(input, 0, input.length); + } + + // 鑾峰彇鍝嶅簲鐮� + int responseCode = con.getResponseCode(); + System.out.println("Response Code : " + responseCode); + + // 鑾峰彇鍝嶅簲鍐呭 + try (BufferedReader in = new BufferedReader(new InputStreamReader(con.getInputStream(), "utf-8"))) { + StringBuilder response = new StringBuilder(); + String inputLine; + while ((inputLine = in.readLine()) != null) { + response.append(inputLine); + } + System.out.println("Response Body: " + response.toString()); + } + + } catch (Exception e) { + e.printStackTrace(); + } + } } -- Gitblit v1.8.0