From 1b54fbacfe4aa8f86cb01ec1e542d11bcaf7de48 Mon Sep 17 00:00:00 2001 From: "ZHOUZ\\Noble'lift" <1014987728@qq.com> Date: Mon, 26 Dec 2022 09:23:31 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../wms/ext/acs/rest/AcsToWmsController.java | 7 + .../acs/service/impl/AcsToWmsServiceImpl.java | 8 + .../crm/service/impl/CrmToLmsServiceImpl.java | 13 ++ .../mes/service/impl/LmsToMesServiceImpl.java | 4 +- .../sap/service/impl/SapToLmsServiceImpl.java | 2 +- .../main/java/org/nl/wms/ext/wql/QCRM_001.wql | 14 ++ .../java/org/nl/wms/pda/mps/wql/PDA_02.wql | 10 ++ .../src/main/java/org/nl/wms/pdm/wql/pdm.xls | Bin 293888 -> 249344 bytes .../wms/sch/manage/AutoQueryDeviceStatus.java | 10 +- .../service/impl/StorPublicServiceImpl.java | 167 +++++++++--------- .../impl/InAndOutRetrunServiceImpl.java | 2 +- .../src/main/resources/log/LmsToMes.xml | 1 + .../src/main/resources/log/LmsToSap.xml | 1 + .../src/main/resources/log/MesToLms.xml | 1 + .../src/main/resources/log/SapToLms.xml | 1 + 15 files changed, 149 insertions(+), 92 deletions(-) diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java index d0a66fb06..23b518599 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/rest/AcsToWmsController.java @@ -3,6 +3,7 @@ package org.nl.wms.ext.acs.rest; import cn.dev33.satoken.annotation.SaCheckPermission; +import cn.dev33.satoken.annotation.SaIgnore; import com.alibaba.fastjson.JSONObject; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -32,6 +33,7 @@ public class AcsToWmsController { @PostMapping("/status") @Log("ACS给WMS反馈任务状态") @ApiOperation("ACS给WMS反馈任务状态") + @SaIgnore public ResponseEntity receiveTaskStatusAcs(@RequestBody String string) { return new ResponseEntity<>(acsToWmsService.receiveTaskStatusAcs(string), HttpStatus.OK); } @@ -39,6 +41,7 @@ public class AcsToWmsController { @PostMapping("/orderFinish") @Log("ACS给WMS下发工单完成状态") @ApiOperation("ACS给WMS下发工单完成状态") + @SaIgnore public ResponseEntity orderFinish(@RequestBody String string) { return new ResponseEntity<>(acsToWmsService.orderFinish(string), HttpStatus.OK); } @@ -47,6 +50,7 @@ public class AcsToWmsController { @Log("申请任务") @ApiOperation("申请任务") @SaCheckPermission("menu:list") + @SaIgnore public ResponseEntity apply(@RequestBody JSONObject whereJson) { return new ResponseEntity<>(acsToWmsService.apply(whereJson), HttpStatus.OK); } @@ -55,6 +59,7 @@ public class AcsToWmsController { @Log("二次申请任务") @ApiOperation("二次申请任务") @SaCheckPermission("menu:list") + @SaIgnore public ResponseEntity againApply(@RequestBody String task_id) { return new ResponseEntity<>(acsToWmsService.againApply(task_id), HttpStatus.OK); } @@ -62,6 +67,7 @@ public class AcsToWmsController { @PostMapping("/deviceApply") @Log("申请贴标、捆扎") @ApiOperation("申请贴标、捆扎") + @SaIgnore public ResponseEntity deviceApply(@RequestBody JSONObject jo) { return new ResponseEntity<>(acsToWmsService.deviceApply(jo), HttpStatus.OK); } @@ -69,6 +75,7 @@ public class AcsToWmsController { @PostMapping("/process") @Log("RCS上报密集库任务异常处理") @ApiOperation("RCS上报密集库任务异常处理") + @SaIgnore public ResponseEntity process(@RequestBody JSONObject jo) { return new ResponseEntity<>(acsToWmsService.process(jo), HttpStatus.OK); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java index 2fbdd2f69..e8576561b 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/acs/service/impl/AcsToWmsServiceImpl.java @@ -15,6 +15,7 @@ import org.nl.modules.wql.util.SpringContextHolder; import org.nl.wms.ext.acs.service.AcsToWmsService; import org.nl.wms.log.LokiLog; import org.nl.wms.log.LokiLogType; +import org.nl.wms.pda.mps.service.impl.BakingServiceImpl; import org.nl.wms.pda.st.service.PrintService; import org.nl.wms.sch.manage.TaskStatusEnum; import org.nl.wms.sch.service.TaskService; @@ -380,6 +381,13 @@ public class AcsToWmsServiceImpl implements AcsToWmsService { result.put("box_width", box_width); result.put("box_high", box_high); result.put("bundle_times", 2); + } else if (type.equals("3")) { + //烘箱出箱任务 + String device_code = whereJson.getString("device_code"); + JSONObject bake_jo = new JSONObject(); + bake_jo.put("point_code",device_code); + bake_jo.put("option","2"); + new BakingServiceImpl().ovenInAndOut(bake_jo); } else { throw new BadRequestException("请输入正确的任务类型!"); } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/crm/service/impl/CrmToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/crm/service/impl/CrmToLmsServiceImpl.java index 8d635c5b1..32e786a99 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/crm/service/impl/CrmToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/crm/service/impl/CrmToLmsServiceImpl.java @@ -110,6 +110,9 @@ public class CrmToLmsServiceImpl implements CrmToLmsService { String packageboxsn = jo.getString("packageboxsn"); String container_name = jo.getString("container_name"); String pcsn = jo.getString("pcsn"); + String thickness = jo.getString("thickness"); + String thickness_request = jo.getString("thickness_request"); + String width_standard = jo.getString("width_standard"); HashMap map = new HashMap<>(); if (StrUtil.isNotEmpty(material_code)) { @@ -154,6 +157,16 @@ public class CrmToLmsServiceImpl implements CrmToLmsService { if (StrUtil.isNotEmpty(pcsn)) { map.put("sap_pcsn", pcsn); } + if (StrUtil.isNotEmpty(width_standard)) { + map.put("width_standard", width_standard); + } + if (StrUtil.isNotEmpty(thickness)) { + map.put("thickness", thickness); + } + if (StrUtil.isNotEmpty(thickness_request)) { + map.put("thickness_request", thickness_request); + } + //将查询条件带入,查询LMS成品库库存信息 JSONArray rows = WQL.getWO("QCRM_001").addParamMap(map).addParam("flag", "1").process().getResultJSONArray(0); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java index 68facd55c..cee816f9e 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/mes/service/impl/LmsToMesServiceImpl.java @@ -286,7 +286,7 @@ public class LmsToMesServiceImpl implements LmsToMesService { JSONObject jo = new JSONObject(); jo.put("iContainerName",container_name); jo.put("iisSourceRollDeliveryComplete",1); - jo.put("iPackageBoxSN",package_box_sn); + jo.put("PackageBoxSN",package_box_sn); jo.put("iWarehouse",warehouse); jo.put("iisAirSwellAssComplete",""); jo.put("iisAirSwellDeliveryComplete",""); @@ -446,8 +446,6 @@ public class LmsToMesServiceImpl implements LmsToMesService { return result; } - JSONArray list = new JSONArray(); - // String url = acsUrl + api; String url = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("MES_URL").getValue(); String api = "CamstarApi/ChildRollFGOutboundComplete"; diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java index 3aad950f7..e8e4958f2 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/sap/service/impl/SapToLmsServiceImpl.java @@ -111,7 +111,7 @@ public class SapToLmsServiceImpl implements SapToLmsService { HashMap mst_rows = new HashMap<>(); for (int i = 0; i < items.size(); i++) { JSONObject dtl = items.getJSONObject(i); - String vbeln = dtl.getString(" "); + String vbeln = dtl.getString("VBELN"); if (mst_rows.containsKey(vbeln)) { JSONArray objects = mst_rows.get(vbeln); objects.add(dtl); diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/ext/wql/QCRM_001.wql b/lms/nladmin-system/src/main/java/org/nl/wms/ext/wql/QCRM_001.wql index ef8810d00..758c99e7c 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/ext/wql/QCRM_001.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/ext/wql/QCRM_001.wql @@ -24,7 +24,10 @@ 输入.customerdescription TYPEAS s_string 输入.sap_pcsn TYPEAS s_string 输入.container_name TYPEAS s_string + 输入.thickness TYPEAS s_string + 输入.thickness_request TYPEAS s_string 输入.width TYPEAS f_string + 输入.width_standard TYPEAS f_string [临时表] @@ -61,6 +64,8 @@ sub.date_of_FG_inbound AS dateoffginbound, sub.package_box_sn AS packageboxsn, sub.width, + sub.width_standard, + sub.thickness_request, sub.thickness, sub.net_weight AS netweight, sub.length, @@ -106,6 +111,15 @@ ENDOPTION OPTION 输入.sap_pcsn <> "" sub.sap_pcsn = 输入.sap_pcsn + ENDOPTION + OPTION 输入.width_standard <> "" + sub.width_standard >= 输入.width_standard + ENDOPTION + OPTION 输入.thickness <> "" + sub.thickness = 输入.thickness + ENDOPTION + OPTION 输入.thickness_request <> "" + sub.thickness_request = 输入.thickness_request ENDOPTION ENDSELECT ENDQUERY diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql index 04cff2d8a..d90e3df95 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql +++ b/lms/nladmin-system/src/main/java/org/nl/wms/pda/mps/wql/PDA_02.wql @@ -459,6 +459,16 @@ ENDQUERY ENDIF + IF 输入.flag = "15" + QUERY + SELECT + point_code AS device_code + FROM + st_ivt_hotpointivt + ENDSELECT + ENDQUERY + ENDIF + diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/lms/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls index 79deffb3c3a2be626a3fbdf1e4011fd1ae635621..dd66267d3f0931375366a2188db48fd8408a7be9 100644 GIT binary patch delta 18323 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 CLzuAu delta 57679 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 w=B1mz{y&98_p|b!UiV#ijW=l}5}&4~i3Q43iRj zTxruhu0AkTiRN6iGHrq;7-}qQ3|FYOGFlf$e7SNrH*fj!{JAooFm&$tIb+99>OX$Y zc!(nW*pMwYIxbokROFjGo8FEVXrlzvF-kVNIqZt(D3P3tRw6#AL{xWV8eJ7Gw3xl* zx<$)xTrqdX$`x2Q7&LIMT!b9hKRbbj8NFM4~zFqb+`R@0mJb!o;!TVfo23rqX!SrHkY* zi$=+2uL7wB3Aw8`FmRnlna{2d+7NqO3Oa_6*vDLHxvFyz{L7SD&P5yISpV@Yx75T$ z+|u7j+cdewlZvhQM^nP4LYp{c+|=1K=C06%HevF>c(<0i8&WIBTGE|@ma@ORk^FVJ z9o9Mm+)dYi#H%ElI1{eDMCmD9U-fDI%KWKMPx|qlxyR>^Qmot+g%`WgL2&M*;#!p-0O5hQ9U-wR`&b3FF62oJl31N)i87Cxcq3*UEIm+)mja z((1J}pz49$G#BicD<0wM`zh*_zzJVV|6e|Flv3OXUoG1hFa(sD{b5j0o3Ssm4;%|6#!M1HSXg?e2{Ms|Q5eDOH$o1M9>h2^sYPa8T; zEt)T##M~kSi~Rm-gtah_L5BQWV~9YyMQ6cFuM7sih6;U%&Z8&=t%uxN{BwG*!Bf-Y zzmykw)Bhb8`0j~Mv;Etk?ya9*_@sTZ_$bSV552OwZQnO_;`~b$zg?WjX8Bm-WY(1L z#;cy-t;g?r>&0grQ8M-8?ZM6uDh6jx+TUNAkFeaH@ZDRLON=OXnzH|e22IY*&7jEXwdqqmH(YGw>J^OS z9+8Q6E+;-aH8*Xd#p9psd!ibl4f*Yum+y!=GQhQg;k}1zvP|LvQd8}b*IA(tOEPwp z-AJwMfA80kme;~ha>0yxb)oy^1FieL&oR1Dx7_G}OsLV<8wR(6TOoBq1uLSP)Hnxg zkTjO(fyq~ewCdq!eQ_f#R}xs??h}Ep7R*;RW6LQkXJSa3aw<+T3@8t-vXqNhMg_DY z89>a$|3U<)V5d0|zyHQsD9ZcfA6Y<(QMDnBCbGn@?w0wMdL*lA@raLgqixklj!+!2 zGHTmQqe`_Pr5PWahkkeRCy|7s#^AeaLW=2hxsrm;gFLIodkYCP5^j}R@o98zKsrms zU*@r*gg3i7EBuRUiI}419-HL80Nm@1E7v-qfoy~rU zNvyUTCM;wvKTX^ zRK55;0FC;r1o>LMICdGj?^~zW={91Zk1{1FYSM|%mBRiA!4@ntKP+GNgy96>Vy*Z( z3>)Q}J7IWKLct?bvTl2(CQ* zrl-0aDod?Z_NszHm&fI*^pq$8W42e7T5S%S)8ld2ZT6BPTOkE!g*bi%Zkp{yn=BM; znDHiy!{rPgia;Br^mNV0&Rj5LHa_g1Lt|!Phdw7k;SyAI78Nc<#qnyaMP map = new HashMap<>(); - if(lock_type.equals("1")){//解锁 - map.put("lock_type",lock_type); - map.put("task_code",""); - map.put("inv_type",""); - map.put("inv_id",""); - map.put("inv_code",""); - map.put("point_status","1"); - if (!from.getString("is_free").equals("1") && StrUtil.isNotEmpty(storagevehicle_code)){ - map.put("storagevehicle_code",storagevehicle_code); - map.put("storagevehicle_qty","1"); - map.put("vehicle_code",storagevehicle_code); - map.put("point_status","01"); + HashMap map = new HashMap<>(); + if (lock_type.equals("1")) {//解锁 + map.put("lock_type", lock_type); + map.put("task_code", ""); + map.put("inv_type", ""); + map.put("inv_id", ""); + map.put("inv_code", ""); + map.put("point_status", "1"); + map.put("storagevehicle_code", ""); + if (from.containsKey("is_free") && !from.getString("is_free").equals("1") && StrUtil.isNotEmpty(storagevehicle_code)) { + map.put("storagevehicle_code", storagevehicle_code); + map.put("storagevehicle_qty", "1"); + map.put("vehicle_code", storagevehicle_code); + map.put("point_status", "01"); } - wo_Struct.update(map,"struct_id = '"+jo.getString("struct_id")+"'"); - wo_Point.update(map,"point_id = '"+jo.getString("point_id")+"'"); - }else{//锁定 - map.put("lock_type",lock_type); - map.put("taskdtl_type",from.getString("task_type")); - map.put("taskdtl_id",from.getString("task_id")); - map.put("task_code",from.getString("task_code")); - map.put("inv_type",from.getString("inv_type")); - map.put("inv_id",from.getString("inv_id")); - map.put("inv_code",from.getString("inv_code")); + wo_Struct.update(map, "struct_id = '" + jo.getString("struct_id") + "'"); + wo_Point.update(map, "point_id = '" + jo.getString("point_id") + "'"); + } else {//锁定 + map.put("lock_type", lock_type); + map.put("taskdtl_type", from.getString("task_type")); + map.put("taskdtl_id", from.getString("task_id")); + map.put("task_code", from.getString("task_code")); + map.put("inv_type", from.getString("inv_type")); + map.put("inv_id", from.getString("inv_id")); + map.put("inv_code", from.getString("inv_code")); if (StrUtil.isNotEmpty(storagevehicle_code)) { - map.put("storagevehicle_code",storagevehicle_code); - map.put("storagevehicle_qty","1"); - map.put("vehicle_code",storagevehicle_code); - map.put("point_status","01"); + map.put("storagevehicle_code", storagevehicle_code); + map.put("storagevehicle_qty", "1"); + map.put("vehicle_code", storagevehicle_code); + map.put("point_status", "01"); } } - wo_Struct.update(map,"struct_id = '"+jo.getString("struct_id")+"'"); - wo_Point.update(map,"point_id = '"+jo.getString("point_id")+"'"); + wo_Struct.update(map, "struct_id = '" + jo.getString("struct_id") + "'"); + wo_Point.update(map, "point_id = '" + jo.getString("point_id") + "'"); } @Override @@ -511,36 +512,36 @@ public class StorPublicServiceImpl implements StorPublicService { .addParam("id", struct_id) .addParam("point_code", point_code) .process().uniqueResult(0); - if(jo==null){ + if (jo == null) { throw new BadRequestException("点位仓位更新未查询到符合条件的点位仓位!"); } - HashMap map = new HashMap<>(); - if(lock_type.equals("1")){//解锁 - map.put("lock_type",lock_type); - map.put("task_code",""); - map.put("inv_type",""); - map.put("inv_id",""); - map.put("inv_code",""); - map.put("point_status","1"); - wo_Struct.update(map,"struct_id = '"+jo.getString("struct_id")+"'"); - wo_Point.update(map,"point_id = '"+jo.getString("point_id")+"'"); - }else{//锁定 - map.put("lock_type",lock_type); - map.put("taskdtl_type",from.getString("task_type")); - map.put("taskdtl_id",from.getString("task_id")); - map.put("task_code",from.getString("task_code")); - map.put("inv_type",from.getString("inv_type")); - map.put("inv_id",from.getString("inv_id")); - map.put("inv_code",from.getString("inv_code")); + HashMap map = new HashMap<>(); + if (lock_type.equals("1")) {//解锁 + map.put("lock_type", lock_type); + map.put("task_code", ""); + map.put("inv_type", ""); + map.put("inv_id", ""); + map.put("inv_code", ""); + map.put("point_status", "1"); + wo_Struct.update(map, "struct_id = '" + jo.getString("struct_id") + "'"); + wo_Point.update(map, "point_id = '" + jo.getString("point_id") + "'"); + } else {//锁定 + map.put("lock_type", lock_type); + map.put("taskdtl_type", from.getString("task_type")); + map.put("taskdtl_id", from.getString("task_id")); + map.put("task_code", from.getString("task_code")); + map.put("inv_type", from.getString("inv_type")); + map.put("inv_id", from.getString("inv_id")); + map.put("inv_code", from.getString("inv_code")); if (StrUtil.isNotEmpty(storagevehicle_code)) { - map.put("storagevehicle_code",storagevehicle_code); - map.put("storagevehicle_qty","1"); - map.put("vehicle_code",storagevehicle_code); - map.put("point_status","01"); + map.put("storagevehicle_code", storagevehicle_code); + map.put("storagevehicle_qty", "1"); + map.put("vehicle_code", storagevehicle_code); + map.put("point_status", "01"); } } - wo_Struct.update(map,"struct_id = '"+jo.getString("struct_id")+"'"); - wo_Point.update(map,"point_id = '"+jo.getString("point_id")+"'"); + wo_Struct.update(map, "struct_id = '" + jo.getString("struct_id") + "'"); + wo_Point.update(map, "point_id = '" + jo.getString("point_id") + "'"); } } diff --git a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java index 89712c251..1cffd3d4d 100644 --- a/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java +++ b/lms/nladmin-system/src/main/java/org/nl/wms/st/returns/service/impl/InAndOutRetrunServiceImpl.java @@ -759,7 +759,7 @@ public class InAndOutRetrunServiceImpl implements InAndOutReturnService { JSONObject json = boxArr.getJSONObject(j); JSONObject jsonBox = new JSONObject(); - jsonBox.put("iPackageBoxSN", json.getString("box_no")); + jsonBox.put("PackageBoxSN", json.getString("box_no")); paramArr.add(jsonBox); } paramMesMst.put("item", paramArr); diff --git a/lms/nladmin-system/src/main/resources/log/LmsToMes.xml b/lms/nladmin-system/src/main/resources/log/LmsToMes.xml index ea58d79fb..9928a0538 100644 --- a/lms/nladmin-system/src/main/resources/log/LmsToMes.xml +++ b/lms/nladmin-system/src/main/resources/log/LmsToMes.xml @@ -17,6 +17,7 @@ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} diff --git a/lms/nladmin-system/src/main/resources/log/LmsToSap.xml b/lms/nladmin-system/src/main/resources/log/LmsToSap.xml index 9a941da76..d21328a62 100644 --- a/lms/nladmin-system/src/main/resources/log/LmsToSap.xml +++ b/lms/nladmin-system/src/main/resources/log/LmsToSap.xml @@ -17,6 +17,7 @@ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} diff --git a/lms/nladmin-system/src/main/resources/log/MesToLms.xml b/lms/nladmin-system/src/main/resources/log/MesToLms.xml index 85374b8bf..f3375e251 100644 --- a/lms/nladmin-system/src/main/resources/log/MesToLms.xml +++ b/lms/nladmin-system/src/main/resources/log/MesToLms.xml @@ -17,6 +17,7 @@ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset} diff --git a/lms/nladmin-system/src/main/resources/log/SapToLms.xml b/lms/nladmin-system/src/main/resources/log/SapToLms.xml index a1beaa0fb..134015932 100644 --- a/lms/nladmin-system/src/main/resources/log/SapToLms.xml +++ b/lms/nladmin-system/src/main/resources/log/SapToLms.xml @@ -17,6 +17,7 @@ %d{yyyy-MM-dd HH:mm:ss.SSS} [%thread] %-5level %logger{50} - %msg%n + ${log.charset}