From f8f52b8643104a47ebc19d0cfcadec8e421cee17 Mon Sep 17 00:00:00 2001 From: 野心家 <1051256694@qq.com> Date: 星期四, 03 八月 2023 17:02:26 +0800 Subject: [PATCH] erp轮询,登录,查询创建物料,查询创建订单 --- /dev/null | 8 src/main/java/com/zy/asrs/task/kingdee/handler/OutboundOrderHandler.java | 17 + src/main/java/com/zy/asrs/entity/param/InFormIdParam.java | 38 +++ src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java | 23 ++ src/main/java/com/zy/asrs/entity/param/MaterielParam.java | 15 + src/main/java/com/zy/asrs/task/kingdee/OutboundOrderScheduler.java | 4 src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java | 134 ++++++++++++ src/main/java/com/zy/asrs/entity/param/LoginParam.java | 20 + src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java | 25 ++ src/main/resources/application.yml | 22 + .idea/misc.xml | 3 src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java | 306 +++++++++++++++++++++++++++ 12 files changed, 604 insertions(+), 11 deletions(-) diff --git a/.idea/misc.xml b/.idea/misc.xml index 11ca1b5..afca537 100644 --- a/.idea/misc.xml +++ b/.idea/misc.xml @@ -1,5 +1,6 @@ <?xml version="1.0" encoding="UTF-8"?> <project version="4"> + <component name="ExternalStorageConfigurationManager" enabled="true" /> <component name="FrameworkDetectionExcludesConfiguration"> <file type="web" url="file://$PROJECT_DIR$" /> </component> @@ -13,7 +14,7 @@ </list> </option> </component> - <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" project-jdk-name="1.8" project-jdk-type="JavaSDK"> + <component name="ProjectRootManager" version="2" languageLevel="JDK_1_8" default="true" project-jdk-name="1.8" project-jdk-type="JavaSDK"> <output url="file://$PROJECT_DIR$/out" /> </component> </project> \ No newline at end of file diff --git a/.idea/modules.xml b/.idea/modules.xml deleted file mode 100644 index 160eb6e..0000000 --- a/.idea/modules.xml +++ /dev/null @@ -1,8 +0,0 @@ -<?xml version="1.0" encoding="UTF-8"?> -<project version="4"> - <component name="ProjectModuleManager"> - <modules> - <module fileurl="file://$PROJECT_DIR$/.idea/zy-asrs.iml" filepath="$PROJECT_DIR$/.idea/zy-asrs.iml" /> - </modules> - </component> -</project> \ No newline at end of file diff --git a/src/main/java/com/zy/asrs/entity/param/InFormIdParam.java b/src/main/java/com/zy/asrs/entity/param/InFormIdParam.java new file mode 100644 index 0000000..08a9a79 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/InFormIdParam.java @@ -0,0 +1,38 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +@Data +public class InFormIdParam { + + //鏌ユ壘琛ㄥ崟鍞竴鏍囪瘑 + private String FormId; + + //鏈�澶氬厑璁告煡璇㈢殑鏁伴噺锛�0鎴栬�呬笉瑕佹灞炴�ф爣璇嗕笉闄愬埗 + private String TopRowCount; + + private Integer Limit; + + private String StartRow; + + //杩囨护鏉′欢锛坋g:\"FNumber>'0301010120001' and FCreateDate>'2023-07-05' \"锛� + //1銆丩eft锛氬乏鎷彿 + //3銆丆ompare锛氭瘮杈冭繍绠楃锛屽銆�澶т簬">"銆佸皬浜�"<"銆佺瓑浜�"="銆佸寘鍚�"like"銆佸乏鍖呭惈"llike"銆佸彸鍖呭惈"rlike" + //4銆乂alue锛氭瘮杈冨�� + //5銆丷ight锛氬彸鎷彿 + //6銆丩ogic锛氶�昏緫杩愮畻绗︼紝濡� "and"銆�"or" + private Integer Filterstring; + + //鎺掑簭鏉′欢 + private Integer OrderString; + + //寰呮煡璇㈣〃鍗曠殑瀛楁鍒楋紙鏈熸湜杩斿洖鍊硷級 + private Integer FieldKeys; + + + + + + + +} diff --git a/src/main/java/com/zy/asrs/entity/param/LoginParam.java b/src/main/java/com/zy/asrs/entity/param/LoginParam.java new file mode 100644 index 0000000..c388979 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/LoginParam.java @@ -0,0 +1,20 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; +import org.springframework.beans.factory.annotation.Value; + +@Data +public class LoginParam { + //璐﹀彿ID + private String acctID; + + //璐﹀彿 + private String username; + + //瀵嗙爜 + private String password; + + // + private Integer lcid; + +} diff --git a/src/main/java/com/zy/asrs/entity/param/MaterielParam.java b/src/main/java/com/zy/asrs/entity/param/MaterielParam.java new file mode 100644 index 0000000..d9e9a76 --- /dev/null +++ b/src/main/java/com/zy/asrs/entity/param/MaterielParam.java @@ -0,0 +1,15 @@ +package com.zy.asrs.entity.param; + +import lombok.Data; + +@Data +public class MaterielParam { + //鍟嗗搧缂栧彿 + private String matnr; + + //鍟嗗搧鍚嶇О + private String maktx; + + //瑙勬牸 + private String specs; +} diff --git a/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java new file mode 100644 index 0000000..d8b3d13 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/kingdee/InboundOrderScheduler.java @@ -0,0 +1,25 @@ +package com.zy.asrs.task.kingdee; + +import com.zy.asrs.task.kingdee.handler.InboundOrderHandler; +import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class InboundOrderScheduler { + + @Autowired + private InboundOrderHandler inboundOrderHandler; + @Scheduled(cron = "0/3 * * * * ? ") + void login(){ + Boolean fig=false; + if(fig){ + return; + } + inboundOrderHandler.start(); + } + +} diff --git a/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java new file mode 100644 index 0000000..b8df8ef --- /dev/null +++ b/src/main/java/com/zy/asrs/task/kingdee/LoginAuthenticationScheduler.java @@ -0,0 +1,23 @@ +package com.zy.asrs.task.kingdee; + +import com.zy.asrs.task.kingdee.handler.LoginAuthenticationHandler; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.scheduling.annotation.Scheduled; +import org.springframework.stereotype.Component; + +@Slf4j +@Component +public class LoginAuthenticationScheduler { + + @Autowired + private LoginAuthenticationHandler loginAuthenticationHandler; + //@Scheduled(cron = "0/3 * * * * ? ") + void login(){ + Boolean fig=false; + if(fig){ + return; + } + loginAuthenticationHandler.start(); + } +} diff --git a/src/main/java/com/zy/asrs/task/kingdee/OutboundOrderScheduler.java b/src/main/java/com/zy/asrs/task/kingdee/OutboundOrderScheduler.java new file mode 100644 index 0000000..1e4b8b7 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/kingdee/OutboundOrderScheduler.java @@ -0,0 +1,4 @@ +package com.zy.asrs.task.kingdee; + +public class OutboundOrderScheduler { +} diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java new file mode 100644 index 0000000..d7b1150 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/kingdee/handler/InboundOrderHandler.java @@ -0,0 +1,306 @@ +package com.zy.asrs.task.kingdee.handler; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.mapper.EntityWrapper; +import com.core.common.Cools; +import com.core.common.DateUtils; +import com.core.common.SnowflakeIdWorker; +import com.core.exception.CoolException; +import com.zy.asrs.entity.*; +import com.zy.asrs.entity.param.InFormIdParam; +import com.zy.asrs.entity.param.MaterielParam; +import com.zy.asrs.service.*; +import com.zy.asrs.task.AbstractHandler; +import com.zy.asrs.task.core.ReturnT; +import com.zy.common.constant.MesConstant; +import com.zy.common.utils.HttpHandler; +import lombok.Data; +import lombok.extern.slf4j.Slf4j; +import netscape.javascript.JSObject; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; + +import java.lang.reflect.Field; +import java.text.SimpleDateFormat; +import java.time.LocalDateTime; +import java.time.format.DateTimeFormatter; +import java.util.Date; +import java.util.HashMap; +import java.util.List; +import java.util.Set; + +@Service +@Slf4j +public class InboundOrderHandler extends AbstractHandler<String> { + @Value("${erp.address.URL}") + //绔彛 + private String URL; + + @Value("${erp.address.inaddress}") + //鍗曟嵁锛屽晢鍝佹。妗堝湴鍧� + private String inaddress; + + @Autowired + private ApiLogService apiLogService; + + @Autowired + private LoginAuthenticationHandler loginAuthenticationHandler; + + @Autowired + private MatService matService; + + @Autowired + private TagService tagService; + + @Autowired + private DocTypeService docTypeService; + + @Autowired + private OrderService orderService; + + @Autowired + private OrderDetlService orderDetlService; + + @Autowired + private SnowflakeIdWorker snowflakeIdWorker; + + @Transactional + public synchronized ReturnT<String> start() { + SimpleDateFormat sdf=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); + //鐧诲綍閲戣澏r + ReturnT<String> start = loginAuthenticationHandler.start(); + for(int i=0;i<14;i++) { + InFormIdParam inFormIdParam = new InFormIdParam(); + //瀵瑰簲璁㈠崟绫诲瀷ID + int docName=0; + //鏁伴噺瀛楁 + String anfme =null; + switch (i){ + //鐗╂枡妗f + case 0 : inFormIdParam.setFormId("BD_MATERIAL"); break; + //閲囪喘鍏ュ簱 + case 1 : inFormIdParam.setFormId("STK_InStock");docName=13;anfme ="FRealQty"; break; + //閲囪喘閫�鏂� + case 2 : inFormIdParam.setFormId("PUR_MRB");docName=21;anfme ="FRMREALQTY"; break; + //鐢熶骇棰嗘枡 + case 3 : inFormIdParam.setFormId("PRD_PickMtrl");docName=22;anfme ="FActualQty"; break; + //鐢熶骇閫�鏂� + case 4 : inFormIdParam.setFormId("BD_MATERIAL");docName=24;anfme ="FQty"; break; + //鐢熶骇琛ユ枡 + case 5 : inFormIdParam.setFormId("PRD_FeedMtrl");docName=25;anfme ="FActualQty"; break; + //鐩存帴璋冩嫧鍗� + case 6 : inFormIdParam.setFormId("STK_TransferDirect");docName=26;anfme ="FQty"; break; + //鐩樼泩鍗� + case 7 : inFormIdParam.setFormId("STK_StockCountGain");docName=28;anfme ="FGainQty"; break; + //鐩樹簭鍗� + case 8 : inFormIdParam.setFormId("STK_StockCountLoss");docName=29;anfme ="FLossQty"; break; + //鍏朵粬鍑哄簱 + case 9 : inFormIdParam.setFormId("STK_MisDelivery");docName=30;anfme ="FQty"; break; + //绠�鍗曠敓浜ч鏂� + case 10 : inFormIdParam.setFormId("SP_PickMtrl");docName=31;anfme ="FActualQty"; break; + //绠�鍗曠敓浜ч��鏂� + case 11 : inFormIdParam.setFormId("SP_ReturnMtrl");docName=32;anfme ="FQty"; break; + //閿�鍞嚭搴� + case 12 : inFormIdParam.setFormId("SAL_OUTSTOCK");docName=14;anfme ="FRealQty"; break; + //閿�鍞��璐� + case 13 : inFormIdParam.setFormId("SAL_RETURNSTOCK");docName=33;anfme ="FRealQty"; break; + } + inFormIdParam.setLimit(10); + inFormIdParam.setStartRow("0"); + Date time=new Date(); + String FDocumentStatus=null; + + //鏉′欢鍜岄渶瑕佽幏寰楃殑缁撴灉鎷兼帴 + JSONObject jsonObject = new JSONObject(); + jsonObject.put("FormId", inFormIdParam.getFormId()); + jsonObject.put("Limit", inFormIdParam.getLimit()); + jsonObject.put("StartRow", inFormIdParam.getStartRow()); + //鐗╂枡妗f鏌ヨ + if(i==0){ + Tag tag = tagService.selectById(20); + //鏈�鏂版椂闂� + time=tag.getCreateTime(); + //鐗╂枡鐘舵�� + FDocumentStatus="C"; + jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(time)+"' and FDocumentStatus='"+FDocumentStatus+"'"); + jsonObject.put("FieldKeys", "FName,FNumber,FCreateDate,FSpecification,FDocumentStatus"); + // FName : 鐗╂枡鍚嶇О 锛� + // FNumber 锛氱墿鏂欑紪鍙凤紱 + // FCreateDate 锛氱墿鏂欏垱寤烘椂闂达紱 + // FSpecification 锛氱墿鏂欒鏍硷紱 + // FDocumentStatus 锛氱墿鏂欑姸鎬� + }else{ + //鑾峰彇鏈�鏂版椂闂� + DocType docType= docTypeService.selectById(docName); + //鍗曟嵁鐘舵�� + FDocumentStatus="C"; + jsonObject.put("FilterString", "FCreateDate>'"+sdf.format(docType.getCreateTime())+"' and FDocumentStatus='"+FDocumentStatus+"'"); + jsonObject.put("FieldKeys", "FBillNo,FCreateDate,FMaterialId.FNumber,FMaterialId.FName,FMaterialId.FSpecification,"+anfme+",FDocumentStatus"); + // FBillNo :鍗曟嵁缂栧彿锛� + // FCreateDate 锛氬崟鎹垱寤烘椂闂达紱 + // FMaterialId.FNumber : 鐗╂枡缂栫爜锛� + // FMaterialName 锛氱墿鏂欏悕绉帮紱 + // FMaterialId.FSpecification锛氱墿鏂欒鏍� + // anfme : 鐗╂枡鏁伴噺 + // FDocumentStatus 锛氬崟鎹姸鎬侊紱 + + } + JSONObject jsonObject1 = new JSONObject(); + jsonObject1.put("data", jsonObject); + String add = jsonObject1.toJSONString(); + System.out.println(add); + + //涓婃姤 + String response = ""; + boolean success = false; + try { + //鑾峰彇Cookie鍊� + HashMap<String, Object> headers = new HashMap<>(); + headers.put("Cookie", start.getContent()); + response = new HttpHandler.Builder() + .setHeaders(headers) + .setUri(URL) + .setPath(inaddress) + .setJson(add) + .build() + .doPost(); + JSONArray data = JSON.parseArray(response); + if(i==0){ + for (int j = 0; j < data.size(); j++) { + JSONArray jsonArray = data.getJSONArray(j); + //鐢熸垚鍟嗗搧妗f + //鍟嗗搧缂栧彿 + Mat mat = matService.selectByMatnr(jsonArray.get(1).toString()); + if (mat == null) { + mat = new Mat(); + Tag tag=new Tag(); + mat.setMatnr(jsonArray.get(1).toString()); + mat.setMaktx(jsonArray.get(0).toString()); + mat.setSpecs(jsonArray.get(3).toString());//瑙勬牸 + //瀵圭編鍥芥椂闂磋繘琛岃浆鎹� + DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; + LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(2).toString(), formatter); + String format = dateFormat.format(dateTime); + Date date = sdf.parse(format); + mat.setCreateTime(date);//鍟嗗搧鍒涘缓鏃堕棿 + mat.setUpdateTime(new Date()); + mat.setStatus(1); + //鏈�鏂版姄鍙栧晢鍝佹椂闂� + tag.setCreateTime(date); +// tagService.update(tag,new EntityWrapper<Tag>().eq("id",20)); +// if (!matService.insert(mat)) { +// throw new CoolException("鏈嶅姟鍣ㄥ唴閮ㄩ敊璇紝璇疯仈绯荤鐞嗗憳"); +// } else { +// log.info("鍚屾鏂扮墿鏂橻鍟嗗搧缂栧彿锛歿}]", mat.getMatnr()); +// } + } + } + }else { + for(int j=0;j<data.size();j++){ + JSONArray jsonArray = data.getJSONArray(j); + Order order = orderService.selectByNo(jsonArray.get(0).toString()); + if (Cools.isEmpty(order)) { + DocType docType = docTypeService.selectById(docName); + Date now = new Date(); + // 鍗曟嵁涓绘。 + order = new Order( + String.valueOf(snowflakeIdWorker.nextId()), // 缂栧彿[闈炵┖] + jsonArray.get(0).toString(), // 璁㈠崟缂栧彿 + DateUtils.convert(now), // 鍗曟嵁鏃ユ湡 + docType.getDocId(), // 鍗曟嵁绫诲瀷 + null, // 椤圭洰缂栧彿 + null, // + null, // 璋冩嫧椤圭洰缂栧彿 + null, // 鍒濆绁ㄦ嵁鍙� + null, // 绁ㄦ嵁鍙� + null, // 瀹㈡埛缂栧彿 + null, // 瀹㈡埛 + null, // 鑱旂郴鏂瑰紡 + null, // 鎿嶄綔浜哄憳 + null, // 鍚堣閲戦 + null, // 浼樻儬鐜� + null, // 浼樻儬閲戦 + null, // 閿�鍞垨閲囪喘璐圭敤鍚堣 + null, // 瀹炰粯閲戦 + null, // 浠樻绫诲瀷 + null, // 涓氬姟鍛� + null, // 缁撶畻澶╂暟 + null, // 閭垂鏀粯绫诲瀷 + null, // 閭垂 + null, // 浠樻鏃堕棿 + null, // 鍙戣揣鏃堕棿 + null, // 鐗╂祦鍚嶇О + null, // 鐗╂祦鍗曞彿 + 1L, // 璁㈠崟鐘舵�� + 1, // 鐘舵�� + 9527L, // 娣诲姞浜哄憳 + now, // 娣诲姞鏃堕棿 + 9527L, // 淇敼浜哄憳 + now, // 淇敼鏃堕棿 + null // 澶囨敞 + ); + //瀵圭編鍥芥椂闂磋繘琛岃浆鎹� + DateTimeFormatter dateFormat = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss"); + DateTimeFormatter formatter = DateTimeFormatter.ISO_LOCAL_DATE_TIME; + LocalDateTime dateTime = LocalDateTime.parse(jsonArray.get(1).toString(), formatter); + String format = dateFormat.format(dateTime); + Date date = sdf.parse(format); + //鏈�鏂版姄鍙栨椂闂� + docType.setCreateTime(date); +// docTypeService.update(docType,new EntityWrapper<DocType>().eq("doc_id",docName)); +// if (!orderService.insert(order)) { +// throw new CoolException("鐢熸垚鍗曟嵁涓绘。澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } + } + //鐗╂枡缂栫爜 + Mat mat = matService.selectByMatnr(jsonArray.get(2).toString()); + if (Cools.isEmpty(mat)) { + throw new CoolException(jsonArray.get(2).toString() + "缂栧彿鍟嗗搧妫�绱㈠け璐ワ紝璇峰厛娣诲姞鍟嗗搧"); + } + OrderDetl orderDetl = new OrderDetl(); + orderDetl.sync(mat); + orderDetl.setBatch(null); + orderDetl.setAnfme(Double.parseDouble(jsonArray.get(5).toString())); + orderDetl.setOrderId(order.getId()); + orderDetl.setOrderNo(order.getOrderNo()); + orderDetl.setCreateBy(9527L); + orderDetl.setCreateTime(new Date()); + orderDetl.setUpdateBy(9527L); + orderDetl.setUpdateTime(new Date()); + orderDetl.setStatus(1); + orderDetl.setQty(0.0D); +// if (!orderDetlService.insert(orderDetl)) { +// throw new CoolException("鐢熸垚鍗曟嵁鏄庣粏澶辫触锛岃鑱旂郴绠$悊鍛�"); +// } + } + } + } catch (Exception e) { + log.error("fail", e); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鐧诲綍閲戣澏", + MesConstant.URL + MesConstant.PAKIN_URL, + null, + "127.0.0.1", + add, + response, + success + ); + } catch (Exception e) { + log.error("", e); + } + } + } + return SUCCESS; + } + +} \ No newline at end of file diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java new file mode 100644 index 0000000..8e32b46 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/kingdee/handler/LoginAuthenticationHandler.java @@ -0,0 +1,134 @@ +package com.zy.asrs.task.kingdee.handler; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.core.common.Cools; +import com.core.exception.CoolException; +import com.zy.asrs.entity.param.LoginParam; +import com.zy.asrs.service.ApiLogService; +import com.zy.asrs.task.AbstractHandler; +import com.zy.asrs.task.core.ReturnT; +import com.zy.common.constant.MesConstant; +import com.zy.common.utils.HttpHandler; +import lombok.extern.slf4j.Slf4j; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.beans.factory.annotation.Value; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +import java.util.Set; + +@Service +@Slf4j +@Transactional +public class LoginAuthenticationHandler extends AbstractHandler<String> { + + @Value("${erp.address.URL}") + //绔彛 + private String URL; + + @Value("${erp.address.loginaddress}") + //鐧诲綍鍦板潃 + private String loginaddress; + + @Value("${erp.login.acctID}") + //璐﹀彿ID + private String acctID; + + @Value("${erp.login.username}") + //璐﹀彿 + private String username; + + @Value("${erp.login.password}") + //瀵嗙爜 + private String password; + + @Value("${erp.login.lcid}") + // + private Integer lcid; + + @Autowired + private ApiLogService apiLogService; + + /** + * 45鍒嗛挓鐧诲綍涓�娆¢噾铦剁郴缁� + * @return + */ + @Transactional + public synchronized ReturnT<String> start() { + + LoginParam loginParam =new LoginParam(); + loginParam.setAcctID(acctID); + loginParam.setUsername(username); + loginParam.setPassword(password); + loginParam.setLcid(lcid); + //涓婃姤 + String response = ""; + String cookie = ""; + boolean success = false; + try { + response = new HttpHandler.Builder() + .setUri(URL) + .setPath(loginaddress) + .setJson(JSON.toJSONString(loginParam)) + .build() + .doPost(); + JSONObject jsonObject = JSON.parseObject(response); + Object sessionId = findValueByKey(JSON.parseObject(response), "SessionId"); + cookie="ASP.NET_SessionId="+sessionId+";"+"kdservice-sessionid="+jsonObject.getString("KDSVCSessionId"); + if (Cools.isEmpty(jsonObject.getString("Message"))) { + success = true; + } else { + log.error("璇锋眰鎺ュ彛澶辫触锛侊紒锛乽rl锛歿}锛況equest锛歿}锛況esponse锛歿}", URL+loginaddress, JSON.toJSONString(loginParam), response); + throw new CoolException("鐧诲綍閲戣澏澶辫触"); + } + } catch (Exception e) { + log.error("fail", e); +// TransactionAspectSupport.currentTransactionStatus().setRollbackOnly(); + return FAIL.setMsg(e.getMessage()); + } finally { + try { + // 淇濆瓨鎺ュ彛鏃ュ織 + apiLogService.save( + "鐧诲綍閲戣澏", + MesConstant.URL + MesConstant.PAKIN_URL, + null, + "127.0.0.1", + JSON.toJSONString(loginParam), + response, + success + ); + } catch (Exception e) { log.error("", e); } + } + return SUCCESS.setContent(cookie); + } + + + public static Object findValueByKey(JSONObject json, String key) { + Set<String> keySet = json.keySet(); + for (String k : keySet) { + Object v = json.get(k); + if (k.equals(key)) { + return v; + } else if (v instanceof JSONArray) { + int size = ((JSONArray) v).size(); + for (int i = 0; i <= size - 1; i++) { + Object result = findValueByKey((JSONObject) ((JSONArray) v).get(i), key); + if (result != null){ + return result; + } + } + } else if (v instanceof JSONObject){ + Object result = findValueByKey((JSONObject) v, key); + if (result != null){ + return result; + } + } + } + return null; + } + +} + + + diff --git a/src/main/java/com/zy/asrs/task/kingdee/handler/OutboundOrderHandler.java b/src/main/java/com/zy/asrs/task/kingdee/handler/OutboundOrderHandler.java new file mode 100644 index 0000000..f3df4a7 --- /dev/null +++ b/src/main/java/com/zy/asrs/task/kingdee/handler/OutboundOrderHandler.java @@ -0,0 +1,17 @@ +package com.zy.asrs.task.kingdee.handler; + +import com.zy.asrs.task.AbstractHandler; +import com.zy.asrs.task.core.ReturnT; +import lombok.extern.slf4j.Slf4j; +import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; +@Service +@Slf4j +public class OutboundOrderHandler extends AbstractHandler<String> { + @Transactional + public synchronized ReturnT<String> start() { + + return SUCCESS; + } + +} \ No newline at end of file diff --git a/src/main/resources/application.yml b/src/main/resources/application.yml index 6b503e1..3f6f4f6 100644 --- a/src/main/resources/application.yml +++ b/src/main/resources/application.yml @@ -10,7 +10,7 @@ enabled: false datasource: driver-class-name: com.microsoft.sqlserver.jdbc.SQLServerDriver - url: jdbc:sqlserver://localhost:1433;databasename=tzhtasrs + url: jdbc:sqlserver://192.168.4.15:1433;databasename=tzhtasrs username: sa password: sa@123 mvc: @@ -48,4 +48,22 @@ # 鍙屾繁搴撲綅鎺掑彿 doubleLocs: 1,4,5,8 # 涓�涓爢鍨涙満璐熻矗鐨勮揣鏋舵帓鏁� - groupCount: 4 \ No newline at end of file + groupCount: 4 + +#erp瀵规帴 +erp: + #鍦板潃 + address: + URL: http://ht01.wlgear.com:16001 + #鐧诲綍鍦板潃 + loginaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.AuthService.ValidateUser.common.kdsvc + #鍗曟嵁锛屽晢鍝佹。妗堝湴鍧� + inaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.ExecuteBillQuery.common.kdsvc + #缁撴灉涓婃姤锛堝鏍革級鍗曞湴鍧� + outaddress: K3CLOUD/Kingdee.BOS.WebApi.ServicesStub.DynamicFormService.Audit.common.kdsvc + #鐧诲綍璐﹀彿绠$悊 + login : + acctID: "64c7666b20caf2" + username: "cs" + password: "123456" + lcid: 2052 \ No newline at end of file -- Gitblit v1.9.1