| base-server/src/main/java/com/yuanchu/mom/controller/TechnicalModelController.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| base-server/src/main/java/com/yuanchu/mom/service/TechnicalModelService.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| base-server/src/main/java/com/yuanchu/mom/service/impl/TechnicalModelServiceImpl.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| framework/src/main/java/com/yuanchu/mom/utils/ServletUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| framework/src/main/java/com/yuanchu/mom/utils/StringUtils.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inventory-server/src/main/java/com/yuanchu/mom/Task/BatchInfo.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inventory-server/src/main/java/com/yuanchu/mom/Task/InAttr.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| inventory-server/src/main/java/com/yuanchu/mom/Task/SyncOrder.java | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 | |
| pom.xml | ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史 |
base-server/src/main/java/com/yuanchu/mom/controller/TechnicalModelController.java
@@ -2,7 +2,8 @@ import com.yuanchu.mom.pojo.dto.TechnicalModelDto; import com.yuanchu.mom.pojo.dto.TechnologyTemplateDto; import com.yuanchu.mom.service.TechnicalModelService; import com.yuanchu.mom.utils.ServletUtils; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; import io.swagger.annotations.ApiImplicitParam; @@ -11,7 +12,8 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.yuanchu.mom.service.TechnicalModelService; import javax.servlet.http.HttpServletResponse; /** @@ -112,5 +114,13 @@ return Result.success("æ¹éå 餿å!"); } @ApiOperation(value = "导åº") @ApiImplicitParams(value = { @ApiImplicitParam(name = "type", value = "ç±»å", dataTypeClass = String.class, required = true) }) public void downloadDataValueExcel(String type){ HttpServletResponse response = ServletUtils.getResponse(); technicalModelService.downloadDataValueExcel(response,type); } } base-server/src/main/java/com/yuanchu/mom/service/TechnicalModelService.java
@@ -4,6 +4,7 @@ import com.yuanchu.mom.pojo.TechnicalModel; import com.yuanchu.mom.pojo.dto.TechnicalModelDto; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -81,5 +82,12 @@ * @param ids */ void delAllTech(String ids); /** * å¯¼åº * @param response * @param type */ void downloadDataValueExcel(HttpServletResponse response, String type); } base-server/src/main/java/com/yuanchu/mom/service/impl/TechnicalModelServiceImpl.java
@@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.mom.mapper.TechnicalModelMapper; import com.yuanchu.mom.mapper.TechniqueModelMapper; import com.yuanchu.mom.pojo.TechnicalModel; import com.yuanchu.mom.pojo.dto.TechnicalModelDto; import com.yuanchu.mom.service.TechnicalModelService; @@ -11,6 +10,7 @@ import org.springframework.transaction.annotation.Transactional; import javax.annotation.Resource; import javax.servlet.http.HttpServletResponse; import java.util.List; import java.util.Map; @@ -96,5 +96,15 @@ public void delAllTech(String ids) { technicalModelMapper.delAllTech(ids); } /** * å¯¼åº * @param response * @param type */ @Override public void downloadDataValueExcel(HttpServletResponse response, String type) { } } framework/src/main/java/com/yuanchu/mom/utils/ServletUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,137 @@ package com.yuanchu.mom.utils; import cn.hutool.core.convert.Convert; import org.springframework.web.context.request.RequestAttributes; import org.springframework.web.context.request.RequestContextHolder; import org.springframework.web.context.request.ServletRequestAttributes; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import javax.servlet.http.HttpSession; import java.io.IOException; /** * 客æ·ç«¯å·¥å ·ç±» * * @author å¼ å®¾ */ public class ServletUtils { /** * è·åStringåæ° */ public static String getParameter(String name) { return getRequest().getParameter(name); } /** * è·åStringåæ° */ public static String getParameter(String name, String defaultValue) { return Convert.toStr(getRequest().getParameter(name), defaultValue); } /** * è·åIntegeråæ° */ public static Integer getParameterToInt(String name) { return Convert.toInt(getRequest().getParameter(name)); } /** * è·åIntegeråæ° */ public static Integer getParameterToInt(String name, Integer defaultValue) { return Convert.toInt(getRequest().getParameter(name), defaultValue); } /** * è·årequest */ public static HttpServletRequest getRequest() { return getRequestAttributes().getRequest(); } /** * è·åresponse */ public static HttpServletResponse getResponse() { return getRequestAttributes().getResponse(); } /** * è·åsession */ public static HttpSession getSession() { return getRequest().getSession(); } public static ServletRequestAttributes getRequestAttributes() { RequestAttributes attributes = RequestContextHolder.getRequestAttributes(); return (ServletRequestAttributes) attributes; } /** * å°å符串渲æå°å®¢æ·ç«¯ * * @param response 渲æå¯¹è±¡ * @param string å¾ æ¸²æçå符串 * @return null */ public static String renderString(HttpServletResponse response, String string) { try { response.setContentType("application/json"); response.setCharacterEncoding("utf-8"); response.getWriter().print(string); } catch (IOException e) { e.printStackTrace(); } return null; } /** * æ¯å¦æ¯Ajax弿¥è¯·æ± * * @param request */ public static boolean isAjaxRequest(HttpServletRequest request) { String accept = request.getHeader("accept"); if (accept != null && accept.indexOf("application/json") != -1) { return true; } String xRequestedWith = request.getHeader("X-Requested-With"); if (xRequestedWith != null && xRequestedWith.indexOf("XMLHttpRequest") != -1) { return true; } String uri = request.getRequestURI(); if (StringUtils.inStringIgnoreCase(uri, ".json", ".xml")) { return true; } String ajax = request.getParameter("__ajax"); if (StringUtils.inStringIgnoreCase(ajax, "json", "xml")) { return true; } return false; } } framework/src/main/java/com/yuanchu/mom/utils/StringUtils.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,403 @@ package com.yuanchu.mom.utils; import cn.hutool.core.text.StrFormatter; import java.util.Collection; import java.util.Map; /** * åç¬¦ä¸²å·¥å ·ç±» * * @author å¼ å®¾ */ public class StringUtils extends org.apache.commons.lang3.StringUtils { /** 空å符串 */ private static final String NULLSTR = ""; /** ä¸å线 */ private static final char SEPARATOR = '_'; /** * è·ååæ°ä¸ä¸ºç©ºå¼ * @param value defaultValue è¦å¤æçvalue * @return value è¿åå¼ */ public static <T> T nvl(T value, T defaultValue) { return value != null ? value : defaultValue; } /** * * 夿ä¸ä¸ªCollectionæ¯å¦ä¸ºç©ºï¼ å å«Listï¼Setï¼Queue * * @param coll è¦å¤æçCollection * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Collection<?> coll) { return isNull(coll) || coll.isEmpty(); } /** * * 夿ä¸ä¸ªCollectionæ¯å¦é空ï¼å å«Listï¼Setï¼Queue * * @param coll è¦å¤æçCollection * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Collection<?> coll) { return !isEmpty(coll); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ°ç»æ¯å¦ä¸ºç©º * * @param objects è¦å¤æç对象æ°ç» ** @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Object[] objects) { return isNull(objects) || (objects.length == 0); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ°ç»æ¯å¦é空 * * @param objects è¦å¤æç对象æ°ç» * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Object[] objects) { return !isEmpty(objects); } /** * * 夿ä¸ä¸ªMapæ¯å¦ä¸ºç©º * * @param map è¦å¤æçMap * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(Map<?, ?> map) { return isNull(map) || map.isEmpty(); } /** * * 夿ä¸ä¸ªMapæ¯å¦ä¸ºç©º * * @param map è¦å¤æçMap * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotEmpty(Map<?, ?> map) { return !isEmpty(map); } /** * * 夿ä¸ä¸ªå符串æ¯å¦ä¸ºç©ºä¸² * * @param str String * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isEmpty(String str) { return isNull(str) || NULLSTR.equals(str.trim()); } /** * * 夿ä¸ä¸ªå符串æ¯å¦ä¸ºé空串 * * @param str String * @return trueï¼é空串 falseï¼ç©ºä¸² */ public static boolean isNotEmpty(String str) { return !isEmpty(str); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦ä¸ºç©º * * @param object Object * @return trueï¼ä¸ºç©º falseï¼é空 */ public static boolean isNull(Object object) { return object == null; } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦é空 * * @param object Object * @return trueï¼é空 falseï¼ç©º */ public static boolean isNotNull(Object object) { return !isNull(object); } /** * * 夿ä¸ä¸ªå¯¹è±¡æ¯å¦æ¯æ°ç»ç±»åï¼Javaåºæ¬åå«çæ°ç»ï¼ * * @param object 对象 * @return trueï¼æ¯æ°ç» falseï¼ä¸æ¯æ°ç» */ public static boolean isArray(Object object) { return isNotNull(object) && object.getClass().isArray(); } /** * å»ç©ºæ ¼ */ public static String trim(String str) { return (str == null ? "" : str.trim()); } /** * æªåå符串 * * @param str å符串 * @param start å¼å§ * @return ç»æ */ public static String substring(final String str, int start) { if (str == null) { return NULLSTR; } if (start < 0) { start = str.length() + start; } if (start < 0) { start = 0; } if (start > str.length()) { return NULLSTR; } return str.substring(start); } /** * æªåå符串 * * @param str å符串 * @param start å¼å§ * @param end ç»æ * @return ç»æ */ public static String substring(final String str, int start, int end) { if (str == null) { return NULLSTR; } if (end < 0) { end = str.length() + end; } if (start < 0) { start = str.length() + start; } if (end > str.length()) { end = str.length(); } if (start > end) { return NULLSTR; } if (start < 0) { start = 0; } if (end < 0) { end = 0; } return str.substring(start, end); } /** * æ ¼å¼åææ¬, {} 表示å ä½ç¬¦<br> * æ¤æ¹æ³åªæ¯ç®åå°å ä½ç¬¦ {} æç §é¡ºåºæ¿æ¢ä¸ºåæ°<br> * 妿æ³è¾åº {} ä½¿ç¨ \\è½¬ä¹ { å³å¯ï¼å¦ææ³è¾åº {} ä¹åç \ 使ç¨å转ä¹ç¬¦ \\\\ å³å¯<br> * ä¾ï¼<br> * é常使ç¨ï¼format("this is {} for {}", "a", "b") -> this is a for b<br> * 转ä¹{}ï¼ format("this is \\{} for {}", "a", "b") -> this is \{} for a<br> * 转ä¹\ï¼ format("this is \\\\{} for {}", "a", "b") -> this is \a for b<br> * * @param template ææ¬æ¨¡æ¿ï¼è¢«æ¿æ¢çé¨åç¨ {} 表示 * @param params åæ°å¼ * @return æ ¼å¼ååçææ¬ */ public static String format(String template, Object... params){ if (isEmpty(params) || isEmpty(template)) { return template; } return StrFormatter.format(template, params); } /** * ä¸å线转驼峰å½å */ public static String toUnderScoreCase(String str) { if (str == null) { return null; } StringBuilder sb = new StringBuilder(); // åç½®å符æ¯å¦å¤§å boolean preCharIsUpperCase = true; // å½åå符æ¯å¦å¤§å boolean curreCharIsUpperCase = true; // ä¸ä¸å符æ¯å¦å¤§å boolean nexteCharIsUpperCase = true; for (int i = 0; i < str.length(); i++) { char c = str.charAt(i); if (i > 0) { preCharIsUpperCase = Character.isUpperCase(str.charAt(i - 1)); } else { preCharIsUpperCase = false; } curreCharIsUpperCase = Character.isUpperCase(c); if (i < (str.length() - 1)) { nexteCharIsUpperCase = Character.isUpperCase(str.charAt(i + 1)); } if (preCharIsUpperCase && curreCharIsUpperCase && !nexteCharIsUpperCase) { sb.append(SEPARATOR); } else if ((i != 0 && !preCharIsUpperCase) && curreCharIsUpperCase) { sb.append(SEPARATOR); } sb.append(Character.toLowerCase(c)); } return sb.toString(); } /** * æ¯å¦å å«å符串 * * @param str éªè¯å符串 * @param strs åç¬¦ä¸²ç» * @return å å«è¿åtrue */ public static boolean inStringIgnoreCase(String str, String... strs) { if (str != null && strs != null) { for (String s : strs) { if (str.equalsIgnoreCase(trim(s))) { return true; } } } return false; } /** * å°ä¸åçº¿å¤§åæ¹å¼å½åçå符串转æ¢ä¸ºé©¼å³°å¼ãå¦æè½¬æ¢åçä¸åçº¿å¤§åæ¹å¼å½åçå符串为空ï¼åè¿å空å符串ã ä¾å¦ï¼HELLO_WORLD->HelloWorld * * @param name 转æ¢åçä¸åçº¿å¤§åæ¹å¼å½åçå符串 * @return 转æ¢åç驼峰å¼å½åçå符串 */ public static String convertToCamelCase(String name) { StringBuilder result = new StringBuilder(); // å¿«éæ£æ¥ if (name == null || name.isEmpty()) { // æ²¡å¿ è¦è½¬æ¢ return ""; } else if (!name.contains("_")) { // ä¸å«ä¸å线ï¼ä» å°é¦åæ¯å¤§å return name.substring(0, 1).toUpperCase() + name.substring(1); } // ç¨ä¸å线å°åå§å符串åå² String[] camels = name.split("_"); for (String camel : camels) { // è·³è¿åå§å符串ä¸å¼å¤´ãç»å°¾ç䏿¢çº¿æåéä¸å线 if (camel.isEmpty()) { continue; } // é¦åæ¯å¤§å result.append(camel.substring(0, 1).toUpperCase()); result.append(camel.substring(1).toLowerCase()); } return result.toString(); } /** * 驼峰å¼å½åæ³ ä¾å¦ï¼user_name->userName */ public static String toCamelCase(String s) { if (s == null) { return null; } s = s.toLowerCase(); StringBuilder sb = new StringBuilder(s.length()); boolean upperCase = false; for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); if (c == SEPARATOR) { upperCase = true; } else if (upperCase) { sb.append(Character.toUpperCase(c)); upperCase = false; } else { sb.append(c); } } return sb.toString(); } @SuppressWarnings("unchecked") public static <T> T cast(Object obj) { return (T) obj; } } inventory-server/src/main/java/com/yuanchu/mom/Task/BatchInfo.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,22 @@ package com.yuanchu.mom.Task; import lombok.Data; import java.io.Serializable; /** * @Author å¼ å®¾ * @Date 2023/9/25 */ @Data public class BatchInfo implements Serializable { private String orderNo; private String releaseNo; private String lineNo; private String partNo; private String lotBatchNo; private String locationNo; private Integer qtyToReceive; private Integer qtyToInspect; private String receiveCase; } inventory-server/src/main/java/com/yuanchu/mom/Task/InAttr.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,29 @@ package com.yuanchu.mom.Task; import lombok.Data; import java.io.Serializable; import java.util.List; /** * @Author å¼ å®¾ * @Date 2023/9/25 */ @Data public class InAttr implements Serializable { private String recordId; private String syscode; private String sysmodel; private List<BatchInfo>batchInfo; public InAttr(List<BatchInfo> batchInfo) { this.recordId = "13dd9f788718401b90ca3424f2a71412"; this.syscode = "PurchReceive"; this.sysmodel = "éè´æ¥æ¶aaa"; this.batchInfo = batchInfo; } } inventory-server/src/main/java/com/yuanchu/mom/Task/SyncOrder.java
@@ -6,10 +6,7 @@ import com.yuanchu.mom.vo.Result; import sun.net.www.http.HttpClient; import java.util.HashMap; import java.util.List; import java.util.Map; import java.util.Objects; import java.util.*; import java.util.stream.Collectors; /** @@ -30,21 +27,27 @@ private static final String IFS_URL="http://192.168.20.47:8008/PurchService.ashx?contract=ZTKJ&contractKey=4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo=&procedureName=QUERY_POL_RECEIPT_STD&userId=mes_user&inAttr={\"ORDER_NO\":\"-2050314\"}"; private static final String IMPORT_POL_RECEIVE = "http://192.168.20.47:8081/ErpServices/PurchaseReceiptService/importPolReceive"; private static final String IFS_UPDATE="http://192.168.20.47:8081/ErpServices/PurchaseReceiptService/importPolReceive"; private static final Map<String, String> GET_TOKEN_HEADER = new HashMap<>(2); private static final Map<String, Object> USER_INFO = new HashMap<>(4); private static final Map<String, Object> importPolReceiveMap = new HashMap<>(); static { GET_TOKEN_HEADER.put("Authorization", "Basic cGlnOnBpZw=="); GET_TOKEN_HEADER.put("Content-Type", "application/x-www-form-urlencoded"); USER_INFO.put("username", "external_interface_hyxt_mes"); USER_INFO.put("password", "uCc+u3iP83WhO2dAU+5HUkCgfINnKfrHXMT/lwI/1f0="); USER_INFO.put("scope", "server"); USER_INFO.put("grant_type", "password"); importPolReceiveMap.put("contract", "ZTKJ"); importPolReceiveMap.put("contractKey", "4ttDeLKNsZuhstjtROMcRE1USNFXKdFYE7lQ2p1m5Bo="); importPolReceiveMap.put("userId", "mes_user"); } private static String getToken() { @@ -96,6 +99,7 @@ /** * ifs * * @return */ public static List<Map<String, Object>>ifsInterfaces(){ @@ -105,6 +109,29 @@ return JsonUtil.jsonToPojo(JsonUtil.jsonToString(map.get("LIST_INFO")),List.class); } public static String importPolReceive(List<BatchInfo> batchInfoList) { importPolReceiveMap.put("inAttr", new InAttr(batchInfoList)); return HttpRequest.post(IMPORT_POL_RECEIVE) .body(JsonUtil.jsonToString(importPolReceiveMap)) .header("content-type", "application/json") .execute().body(); } public static void main(String[] args) { BatchInfo batchInfo = new BatchInfo(); batchInfo.setOrderNo("260984"); batchInfo.setReleaseNo("1"); batchInfo.setLineNo("1"); batchInfo.setPartNo("A0190008000400"); batchInfo.setLotBatchNo("*"); batchInfo.setLocationNo("QC01"); batchInfo.setQtyToReceive(1); batchInfo.setQtyToInspect(0); batchInfo.setReceiveCase("æ¥æ¶å°æ¥æåº"); List<BatchInfo> batchInfos = Arrays.asList(batchInfo); System.out.println(importPolReceive(batchInfos)); } public static void ifsUpdate(){ } pom.xml
@@ -91,6 +91,12 @@ <artifactId>spring-boot-starter-validation</artifactId> </dependency> <!-- https://mvnrepository.com/artifact/org.apache.commons/commons-lang3 --> <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-lang3</artifactId> </dependency> <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId>