From aa16d2c2d23dfe32352343104b8df4be057dfd71 Mon Sep 17 00:00:00 2001 From: zds <2388969634@qq.com> Date: Fri, 8 Jul 2022 15:41:34 +0800 Subject: [PATCH 1/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java | 3 +-- .../src/main/java/org/nl/wms/st/core/task/OutTask.java | 2 +- .../nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java | 2 +- 3 files changed, 3 insertions(+), 4 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java index a5baf91e..29d77510 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java @@ -843,9 +843,8 @@ public class HandPFOutIvtServiceImpl implements HandPFOutIvtService { AbstractAcsTask intask = new InTask(); //调用ACS接受任务接口 WQLObject taskTable = WQLObject.getWQLObject("sch_base_task"); - JSONArray taskObjja = taskTable.query("vehicle_code='" + storagevehicle_code + "' ").getResultJSONArray(0); - JSONObject taskObj = taskTable.query("vehicle_code='" + storagevehicle_code + "' and task_status='01' is_delete = '0'").uniqueResult(0); + JSONObject taskObj = taskTable.query("vehicle_code='" + storagevehicle_code + "' and task_status='01' and is_delete ='0'").uniqueResult(0); if (ObjectUtil.isEmpty(taskObj)) { throw new PdaRequestException("托盘为【'" + storagevehicle_code + "'】指令未找到"); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/task/OutTask.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/task/OutTask.java index 0a070532..3363b0a8 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/task/OutTask.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/core/task/OutTask.java @@ -149,7 +149,7 @@ public class OutTask extends AbstractAcsTask { //任务表 WQLObject wo_Task = WQLObject.getWQLObject("SCH_BASE_Task"); - JSONObject task = wo_Task.query("task_status='01' and taskdtl_id='"+taskdtl_id+"'").uniqueResult(0); + JSONObject task = wo_Task.query("is_delete ='0' and task_status='01' and taskdtl_id='"+taskdtl_id+"'").uniqueResult(0); if(task==null){ throw new BadRequestException("只能取消生成状态的任务!"); } diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java index 927354f6..5189331e 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/st/instor/service/impl/HandMoveStorServiceImpl.java @@ -946,7 +946,7 @@ public class HandMoveStorServiceImpl implements HandMoveStorService { map.put("update_optid", currentUserId + ""); map.put("update_optname", nickName); map.put("update_time", now); - wo_Task.update(map, "task_status='01' and taskdtl_id='" + taskdtl_id + "'"); + wo_Task.update(map, "is_delete ='0' and task_status='01' and taskdtl_id='" + taskdtl_id + "'"); } else { throw new BadRequestException("任务下发失败,请稍后重试!"); } From b055c340d48c6e8307faeac7533003320a8ccdd7 Mon Sep 17 00:00:00 2001 From: zds <2388969634@qq.com> Date: Fri, 8 Jul 2022 18:45:07 +0800 Subject: [PATCH 2/7] =?UTF-8?q?=E4=BC=98=E5=8C=96?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/AutoformulaServiceImpl.java | 121 +++++++++--------- 1 file changed, 63 insertions(+), 58 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java index 30f5cb81..4287e9ec 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/AutoformulaServiceImpl.java @@ -696,26 +696,27 @@ public class AutoformulaServiceImpl implements AutoformulaService { if(C<0){ flag = false; }else if(C>=0){ - JSONObject C_weight = new JSONObject(); - C_weight.put("formula_qty",C); - //钨分类id - C_weight.put("material_id","1503644362788179968"); - C_weight.put("material_name","碳粉"); - C_weight.put("material_code","09030104"); - C_weight.put("material_type","02"); - C_weight.put("is_need_move","0"); - C_weight.put("is_need_manage","1"); - C_weight.put("is_tan","100"); - C_weight.put("is_rf_xl","1"); - C_weight.put("ivt_level","01"); - C_weight.put("is_active","1"); - C_weight.put("quality_scode","01"); - cw_list.add(C_weight); //更新碳化钨配粉重量 double bom_ivt_qty = X22p-C; if(bom_ivt_qty<0){ flag = false; }else{ + JSONObject C_weight = new JSONObject(); + C_weight.put("formula_qty",C); + //钨分类id + C_weight.put("material_id","1503644362788179968"); + C_weight.put("material_name","碳粉"); + C_weight.put("material_code","09030104"); + C_weight.put("material_type","02"); + C_weight.put("is_need_move","0"); + C_weight.put("is_need_manage","1"); + C_weight.put("is_tan","100"); + C_weight.put("is_rf_xl","1"); + C_weight.put("ivt_level","01"); + C_weight.put("is_active","1"); + C_weight.put("quality_scode","01"); + cw_list.add(C_weight); + bomdlt_Cr3C2_X22p.put("bom_ivt_qty",bom_ivt_qty); bomdlts_plan_map.put(bomdlt_Cr3C2_X22p.getString("stockrecord_id"),bomdlt_Cr3C2_X22p); if(bom_ivt_qty<=0){ @@ -969,25 +970,26 @@ public class AutoformulaServiceImpl implements AutoformulaService { if(W<0){ flag = false; }else if(W>=0){ - JSONObject W_weight = new JSONObject(); - W_weight.put("formula_qty",W); - //钨分类id - W_weight.put("material_id","1503644362234531840"); - W_weight.put("material_name","钨粉"); - W_weight.put("material_code","09030103"); - W_weight.put("material_type","02"); - W_weight.put("is_need_move","0"); - W_weight.put("is_need_manage","1"); - W_weight.put("is_rf_xl","0"); - W_weight.put("ivt_level","01"); - W_weight.put("is_active","1"); - W_weight.put("quality_scode","01"); - cw_list.add(W_weight); //更新碳化钨配粉重量 double bom_ivt_qty = X22p-W; if(bom_ivt_qty<0){ flag = false; }else{ + JSONObject W_weight = new JSONObject(); + W_weight.put("formula_qty",W); + //钨分类id + W_weight.put("material_id","1503644362234531840"); + W_weight.put("material_name","钨粉"); + W_weight.put("material_code","09030103"); + W_weight.put("material_type","02"); + W_weight.put("is_need_move","0"); + W_weight.put("is_need_manage","1"); + W_weight.put("is_rf_xl","0"); + W_weight.put("ivt_level","01"); + W_weight.put("is_active","1"); + W_weight.put("quality_scode","01"); + cw_list.add(W_weight); + bomdlt_Cr3C2_X22p.put("bom_ivt_qty",bom_ivt_qty); bomdlts_plan_map.put(bomdlt_Cr3C2_X22p.getString("stockrecord_id"),bomdlt_Cr3C2_X22p); if(bom_ivt_qty<=0){ @@ -1584,26 +1586,28 @@ public class AutoformulaServiceImpl implements AutoformulaService { if(C<0){ flag = false; }else if(C>=0){ - JSONObject C_weight = new JSONObject(); - C_weight.put("formula_qty",C); - //钨分类id - C_weight.put("material_id","1503644362788179968"); - C_weight.put("material_name","碳粉"); - C_weight.put("material_code","09030104"); - C_weight.put("material_type","02"); - C_weight.put("is_need_move","0"); - C_weight.put("is_need_manage","1"); - C_weight.put("is_tan","100"); - C_weight.put("is_rf_xl","1"); - C_weight.put("ivt_level","01"); - C_weight.put("is_active","1"); - C_weight.put("quality_scode","01"); - cw_list.add(C_weight); //更新碳化钨配粉重量 double bom_ivt_qty = X22p-C; if(bom_ivt_qty<0){ flag = false; }else{ + + JSONObject C_weight = new JSONObject(); + C_weight.put("formula_qty",C); + //钨分类id + C_weight.put("material_id","1503644362788179968"); + C_weight.put("material_name","碳粉"); + C_weight.put("material_code","09030104"); + C_weight.put("material_type","02"); + C_weight.put("is_need_move","0"); + C_weight.put("is_need_manage","1"); + C_weight.put("is_tan","100"); + C_weight.put("is_rf_xl","1"); + C_weight.put("ivt_level","01"); + C_weight.put("is_active","1"); + C_weight.put("quality_scode","01"); + cw_list.add(C_weight); + bomdlt_Cr3C2_X22p.put("bom_ivt_qty",bom_ivt_qty); bomdlts_plan_map.put(bomdlt_Cr3C2_X22p.getString("stockrecord_id"),bomdlt_Cr3C2_X22p); if(bom_ivt_qty<=0){ @@ -1852,25 +1856,26 @@ public class AutoformulaServiceImpl implements AutoformulaService { if(W<0){ flag = false; }else if(W>=0){ - JSONObject W_weight = new JSONObject(); - W_weight.put("formula_qty",W); - //钨分类id - W_weight.put("material_id","1503644362234531840"); - W_weight.put("material_name","钨粉"); - W_weight.put("material_code","09030103"); - W_weight.put("material_type","02"); - W_weight.put("is_need_move","0"); - W_weight.put("is_need_manage","1"); - W_weight.put("is_rf_xl","0"); - W_weight.put("ivt_level","01"); - W_weight.put("is_active","1"); - W_weight.put("quality_scode","01"); - cw_list.add(W_weight); //更新碳化钨配粉重量 double bom_ivt_qty = X22p-W; if(bom_ivt_qty<0){ flag = false; }else{ + JSONObject W_weight = new JSONObject(); + W_weight.put("formula_qty",W); + //钨分类id + W_weight.put("material_id","1503644362234531840"); + W_weight.put("material_name","钨粉"); + W_weight.put("material_code","09030103"); + W_weight.put("material_type","02"); + W_weight.put("is_need_move","0"); + W_weight.put("is_need_manage","1"); + W_weight.put("is_rf_xl","0"); + W_weight.put("ivt_level","01"); + W_weight.put("is_active","1"); + W_weight.put("quality_scode","01"); + cw_list.add(W_weight); + bomdlt_Cr3C2_X22p.put("bom_ivt_qty",bom_ivt_qty); bomdlts_plan_map.put(bomdlt_Cr3C2_X22p.getString("stockrecord_id"),bomdlt_Cr3C2_X22p); if(bom_ivt_qty<=0){ From 85476dd63da3981f9baab2f0516bb02212e956f9 Mon Sep 17 00:00:00 2001 From: zds <2388969634@qq.com> Date: Fri, 8 Jul 2022 21:49:53 +0800 Subject: [PATCH 3/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9bug?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java index ad5dc5f0..b519efd3 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/service/impl/WorkTaskServiceImpl.java @@ -520,7 +520,7 @@ public class WorkTaskServiceImpl implements WorkTaskService { PDM_BI_ProcedureOfflineBucketRecord.insert(OfflineFlow); JSONObject printJson = new JSONObject(); - printJson.put("bucketunique", IdUtil.getSnowflake(1, 1).nextId()); + printJson.put("bucketunique", jsonBuc.getString("bucketunique")); printJson.put("material_id", whereJson.getString("ext_id")); printJson.put("material_code", whereJson.getString("material_code")); printJson.put("material_name", whereJson.getString("material_name")); From e9679d8f13618109191c0edbd59d0ec47c8022ff Mon Sep 17 00:00:00 2001 From: liuxy Date: Sat, 9 Jul 2022 11:19:12 +0800 Subject: [PATCH 4/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MaterialParametersServiceImpl.java | 4 + .../master/wql/QMT_MATERIALPARAMETERS_001.wql | 2 + .../org/nl/wms/basedata/master/wql/mdme.xls | Bin 170496 -> 171008 bytes .../impl/ProductProcessParamServiceImpl.java | 22 ++++- .../master/materialParameters/index.vue | 2 + .../materialParameters/view/CpDialog.vue | 87 +++++++++++------- mes/qd/src/views/wms/pf/flourwork/index.vue | 4 +- 7 files changed, 85 insertions(+), 36 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialParametersServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialParametersServiceImpl.java index 3541a32c..e0213911 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialParametersServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/service/impl/MaterialParametersServiceImpl.java @@ -196,6 +196,8 @@ public class MaterialParametersServiceImpl implements MaterialParametersService jsonProduc.put("is_need_move", map.get("is_need_move")); jsonProduc.put("net_rate", map.get("net_rate")); jsonProduc.put("technology_code", map.get("technology_code")); + jsonProduc.put("ball_rate", map.get("ball_rate")); + jsonProduc.put("liquid_rate", map.get("liquid_rate")); producTab.insert(jsonProduc); } else { json.put("standard_weight", map.get("standard_weight")); @@ -217,6 +219,8 @@ public class MaterialParametersServiceImpl implements MaterialParametersService json.put("is_need_move", map.get("is_need_move")); json.put("net_rate", map.get("net_rate")); json.put("technology_code", map.get("technology_code")); + json.put("ball_rate", map.get("ball_rate")); + json.put("liquid_rate", map.get("liquid_rate")); producTab.update(json); } JSONObject jsonMater = materTab.query("material_id = '" + material_id + "' and is_delete = '0'").uniqueResult(0); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMT_MATERIALPARAMETERS_001.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMT_MATERIALPARAMETERS_001.wql index 823e3210..db44a105 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMT_MATERIALPARAMETERS_001.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/QMT_MATERIALPARAMETERS_001.wql @@ -77,6 +77,8 @@ p.is_need_move AS product_is_need_move, p.net_rate, p.technology_code, + p.ball_rate, + p.liquid_rate, m.is_used, m.update_optname, m.update_time, diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/mdme.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/basedata/master/wql/mdme.xls index 246d2502626426ff89c55d4f3a7a3f21b88f7e0a..96a68ced303c601803f3998b2792f579cb9f5e46 100644 GIT binary patch delta 6132 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 ADgXcg delta 5730 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 + + diff --git a/mes/qd/src/views/wms/basedata/master/materialParameters/view/CpDialog.vue b/mes/qd/src/views/wms/basedata/master/materialParameters/view/CpDialog.vue index 57e54a97..1ac01a29 100644 --- a/mes/qd/src/views/wms/basedata/master/materialParameters/view/CpDialog.vue +++ b/mes/qd/src/views/wms/basedata/master/materialParameters/view/CpDialog.vue @@ -116,28 +116,49 @@ - + - - - - - - - + + + + + + + - - - - - - - - - @@ -198,20 +199,32 @@ + + + + + + + + + + + + - - + + @@ -226,13 +239,13 @@ - + @@ -320,6 +333,14 @@ export default { net_rate: [ { required: true, message: '不能为空', trigger: 'blur' } ], + ball_rate: [ + { required: true, message: '不能为空', trigger: 'blur' }, + { validator: numberOne } + ], + liquid_rate: [ + { required: true, message: '不能为空', trigger: 'blur' }, + { validator: numberOne } + ], standard_weight: [ { required: true, message: '不能为空', trigger: 'blur' }, { validator: numberOne } diff --git a/mes/qd/src/views/wms/pf/flourwork/index.vue b/mes/qd/src/views/wms/pf/flourwork/index.vue index 4507d327..e374fa4a 100644 --- a/mes/qd/src/views/wms/pf/flourwork/index.vue +++ b/mes/qd/src/views/wms/pf/flourwork/index.vue @@ -125,8 +125,8 @@ - - + From 66ab560113b14376459e7e866f2c091705d65c75 Mon Sep 17 00:00:00 2001 From: liuxy Date: Sat, 9 Jul 2022 15:24:37 +0800 Subject: [PATCH 5/7] =?UTF-8?q?pdm=20excel=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../src/main/java/org/nl/wms/pdm/wql/pdm.xls | Bin 257024 -> 258048 bytes 1 file changed, 0 insertions(+), 0 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pdm/wql/pdm.xls index c2fb14ca4d62a04eab7fde5f28d33bbbf50a2ba0..87bbb4c184eb4a44713c993a202f9032bc1d88f2 100644 GIT binary patch delta 61928 zcmeFa2YggT_cuOsHwg)Z6j~DM0)fy;sG$Tx2dN4QDjhi z5rGh@i1dykq7*68K|zJQ-!n7!?rumxf6w#&p6CDnyqnMN>^*bl^qDy`bN6Q4so-(v zf~U2~a+5JOhBHy;Ye(TV11Iw7hCgp^1{nE#>v6^!CzUj67`Zp~O6U{t;VGUNUh8mo z^AvZWQK~u8$7RgvWB%cDHOP6gs;p25Nq2m!bN^;QdYqP)W>#|4^pRhNW{LIhYeCm( zXwtnbLD}cx0q)vG>1!Fw>ZW}7$=aIkT3+Z0scN}vW4vo`K^hOr zi}HnW!{qttGe&-@?|{2C4QEHtO54GJ9c~xO=dR7g)-ev6wx-#gpq3QpjP;3#LA(2D zAq*($!o%K$T<#=MbXZ5dr#uvkWIv+3H5DO+vF77H_n zMdsiI&4H0&X8B^#=FMV$5)vaJg^JHIXBNw0E{ODlln08FtWSQHi|Uji{7KAz3OQS% zyt%%34zo~6KVI1^Ua}FdV)ic?7E#r*>Wm&ewieo2i1}2N`o@|;MZ?T_B@3G;O4c^_ zmkbE8&0bm})HKVL3gdBR!&2qVN5uoov5^71mQ-~?DW!NddF5?}v{D6uRj_mzK3CNX zO^P6>IbD15g1(=_e2{x~n4L4U-4L6&Y3+MIBl(J#w z`+!`p8E*QP3pcma%xebM$YXAa4(IjFRWV^^?y}K5-W*#l%zRWPulZxSJm5j_U2)-N zvGUOowO}mHiZB+gL(oW-wy0(HFHiE!FHe$|D@&gT%7;bNmG}{iwbS^10TRES`Pi;4 z@I);rM2A7%52|#^N*sSOoQ(A{8^sofS!%%;_^eRC{I*gKvp`H^h+eQN8FFk)7=(XZ zhQ6BQ@pK^4MG-ofBxL~tvm2k-VLA5Zm1HK_ls)v~k;HY@BBa8#? zRp|4B=rHqo6$%ovL0!_`Y+kjo*`X|9eo&S;|5mlUnY{)ApY+ZfEie>w0RP-TNN>B;nb?pNJgYoAf2mfne%I)ztqTK4yfsGPOX{8ypMix zu~DcQRI{p?8zzMzYbuxgWFSIqm#6_P-aJqvOmi<`ZjLQ!#>EyiOM_mq3e>h>97%Zt z=HCyR9pkF<2C`Q-lrC6F{VnNi+-e`F{6SsVzj8s-td_&PUN;)P$!`uSlMAqLGoc<4 z8(Xiuc|AJ7tW`SLT;C|%{GncB^M~pM&Cz9ZSlFOL1HhJ=gpXJ<_t&Ry^XnHdH#N$E zTI!}{8-!B_$5qD$$KibBRn1sZ^IiFyDoL~d9gXE&oenSa)(oS>i{5B;YvmPFnF<3BTw=Sav+T7ZM zPu^aQkYQ%p{3J7IL7=&ILEbF0vk>02q@xR7b+`&Ke(MgB!6GcnElMd3pVx-GP%6L%(+=D9L7Gx*J60br-ZNq(LU@w;Iqdg z_{x`>Hg3};SFPU<)GIJKZv)qoonP-eUg6CmdneUMn*4mpNx>m+PMOxrxxIPWA_HGq z^1u0~-Z%6xFc`mld8v4qHtU2EaDgU7}PxBv#-<P@cCJT)&=Y&4qvqIS+}5D&1SR8tT*Ftui0(DlmFLje2X> z_RePPaV6}m?mM@}kjIspwayU|@#w2DbIMI#l)SiZWUF^qCRQ3XD5QsPd1{&}Y=B=joNr0Mos?K^bXKiV(QwW-I!qwghr z#)G?mMi0;1J@C8Eha(2BnzeuSg%7$8emt??yL}zEzJ0w~ z!9zxthw&}mxjXjZj*r*w~DQ&iW5nd_J$ttB?b1r^v_R8nGm*>gh=rR7KaZ3w1 zdhop?`o=}P+o;CxIS*B6kuNbgkxfr)_I7@Du>G;$*^bmo@kfR?OxW=4+%dmpopH6y zfv|POmsVRgWL(LGlZ+`9hQzciS#4e0-Gv_xsI#c;)&13b?RZ?Rbg}PZ<4X?f6|{1~ zmI_n%n$=QfzKDd(=Ac(YcQX&nh)_`~ddcH@~m`vv2L68}S35mixM! z>%*)04{rRO7wx>gU57UwZZkK}sWtrM($)7m-C4gWEnlCV`SUk@VNvZLFWnlrdDNNf zZ#0cBqM_{FpLo zNZ+_ECp!6V43DjNsYjV0vu4jlqjokgId$c+HFNiOycM?XYxaVFtk0nZ>q||I`DJ8E zr!RW$-#aH|MYrHqj%i)l!>y-V8rLuyF0JcZFB@aslaiMr>8zRhanjk;yME@0uRHnH zWQCkOsq&t;vL)?1TFGbncdgc*O5`GOj^Xc5i>pVpYE3;IpVaERCBfz&R|cTPwt_sV z_tiW3$^rUk?u) zFu2cv!QB%EcN#QwBq0Q7grU97v}+M1y7lTZxI_#FUvD9@DzaUB_w3z&Xo;9=B_-|G zy9}226{6*Jw0&Lq2?AQxfrAHhAJ%PXryw;oi*jB5F%?g<-~D$rGY4`*-R;tRI+lGdtc7 za|O5m?Fsv)vDX~_?7OK9Dr3l=#@Jkx@6BK=1v>`cp!^eMK`%IH-NFDD19;PKld^AMqK!E317kyOkL+NHUnh| zaC-%uPod13ow1hl7#olBJCuPzj7^-+*anml3m9vPd1*Y#B$T0x7^@e`*z=z-HUZ0k zr6^CM%<(B>^>Z?|8s$$YeHSxUH5X%}QMy**%VT_rMhY=t31f>;UPKv|hp|qdVNyc* z+EQ2`jIo0#Idamj%OEJqhbT)U&HUhVY}lYYk1{th=KfzWwh-klltuC}Hh(!|hftnh zfqE>B#;=6HD6_9(E>^oBV;fg7b`51vB4dEFStua`>$3(XrfGC7W5EX2ODKn##+;F6gr7o*I!p0T`e$rzOHqRhVmg2FXFp}d81b~3C37ghbz#aKi5 zX4999?L}E_Bm4>wE~CQ)IcrjJ*kqB_CnzQ&{NuQP75k z?jB?8M_6Y32?zrVEI0|vzyhvqrx;ra%}<|ZY!@{C=zGQ{LDPaisNlfFoEFjUVv*Lc>YVkN6gH+3_&39ohyu;MQq%?3IPxkSFbU4 z0t(c=4wn>QS=g&L&`k;^CkOETfm!{LG(}>I?wp@ET!^not{%qs@NBc85KO@GFo$?P zf=6&4u{wh1b3qUGF{etZ^F!N@x%ZzxYQn*U@Y4VJvq#vJf)h~(OGz4mnbLrB)6-}O zl8OjA6)It7NhD{cL|~uvMEJ)dOI|)C=S!kzLk9-0&Bl3xcC!Pd_7vq&(UgWj-=v3a4XgEb+M)>5XjNoM8jNoKc z4R>jqD!Y+oGHQU{n<1Qhmk~Zic}8%GYHxTa#TesPx(Wry@Q@)K<6MSt3?trf@kMdI zk@Mv4QG5!|Ixq)kv4uJNDpCey@`jSUrXy}XrapW=KBe+bl99pYRC zRIEzwQ;{EZ@N%L?RW5us@>d+7W4Ff0k&RC_;QWOMVZ<> zU-F>Z{4CFUv=nDAR^+TfC1t3Hy8JIAZZXF!X&cIusM}DVbIhE!p}yeO-*WLn13sFs z5C&{!m4&MgXo7Z&I;Z>~6%1@T@@dzx)drt6F*b2RQNq7i&Cm+p^Cw(n5BxZ zp5se_*|n*}e2a=@$zL?(^?BYmt8n(XF=wB=%Gun0oV6dvS@G$d?VBqtDaLK!SCiMa z;P2%!UT`GGcjGyDa85)R1zHh|v%^^~(WN`@7m`~8ivqZTw|0oL-T8AoOq5LE?*@dU zk^(kT#3bhiR8Zg zdT<*}r81}_uop#AKi)g|B@L`1fo(dlwC?D}i0b&DX)G zn+DdC!0yT2hVvu?$|6;l$~Jk1vb9G+*&domQ%R(!s4*JsEDJP~Kv-ZjZ_0a#w9z~! zxVLW59Cee~YohiTKA!gx+s5!X-dCiJ;W50QhtJk%P5VIxl{Mzs3iM;ISYw zP!oAx5*Z{~j)gvhHSh(=b%@w8mM`LtVvIQ!6?< zNMIiE`2_fPnAWv}(sgoPBUb^-iXA1Q3yevgj+lyjFd^zqf%KAuZoyDa0J)*3y1a=jV-uH;IeiGO{dC&(c%EoI$4ta(ln}3KXqxA_XKTHyN zQ#6?lc9wNtm%y=N+jK}hT4XmNwH0N}vv(3DY@eTIy(+A}<&Y^1XM+8Hv+ z3d{r%E6PSoB7;PSnI2I#Msgh@4$tIo1mpN!%J&9E&S)#Gr{hLio((xuRBR#EG)mN?dWnk4;3#b(i{0 zWIn7nTP14G`wqOahgDlFB4WWsME@#V|?UorL8@ z54K!& zsTsU&Gk#k#-e|)uB5x}qfYTD|ZDr15^Wl%Zn&LZ>;#a!mJ2u64B*jf4cmez|N)vcT z5oo-C=c-M&1CVLol?1kE0`J-c-c+1TTaw_USh7%Qjmz^7}U9_q`auZxeZ65dl8g;(evc;)UoscQnNhB*lv2>xJmc zsls;=uia>yuA3_Bwrg%v!A(WURLO0J4Y$;s>cwrURVgcSk=%zuTn+nJWc3VPC0!_rp?;em7U?wz?L&O_^mp(C)MIWLvAx&XXqFEnZxP zOnA8%y$lZdTGO2`G53hA%is_zuIAgeoG-OoE^eYt=|j5B0@>!MeMOz}8~cj7cOTL6 zbI`N;+5)?;EkIxE$PXsFKIeCN@L}C(p(J=jj9-pMeE_5my3iJ4p%!8ds`+j4&2ruv zM!g3-GU_MKFlvJpFzS8HX)!qU;J?{d%BU?@dKh)FGU}|A=sdq`#3i!XAGjjPme?V< z1VPasYm37xA=z?qWu?cc^BLL<;S$_9HurPyNXv1d8peglWiUuqTFhpC*rYgyUaG$GHt95t9d>n%@Ctj^ESM8^1;U*4&!8BE43)LmRF9drrWHRZEET^tI=kR9As9@Hmk&V)#f9#39hc&B+52% z;s?}4{HYaBgyO?Eu}g&Fuftl|lfbT)D3*lzu&!>pMmDV{5|VgaaD5x-&nEB&Vhv$h z-G8mb+%9f|N`%$h*MiAeDc@Q!ImI*n~Wi4mzcF474GS-ssIE)gG zWasm=LdmOVd;_G1vwR}^CZsO;HP9h}1;nIHNL>nw!<(Q?AzkMq>zpEVGwKS94x3R| zMA!Msx}stp)kTUcRA=RteyH2T@`#dKkXMGG0p%cmYPGYf4bt0>xA4GVI{PKVXOY;& z#riGCZK5>LUy?5&N~S3n5f zn@cvSBDU`Euxf4zEFh}xgarx$lPr*1SzzH#OeL0y^GHOe*a1YCICz(biNj=FQPFaj zH1V8WSUXnLw89mw`ny5PGJ6E@$?QFMdzd{!As!+`%i?(@VsUYIH&l<+dgKG}BC95P zevQ`EHJf}YaXj=jTG!Bs`6XgaarbK^hjF6D9*AtYtpMtVvl3$T9uKz_l)zHr?jGry zm~TAXR!G*B6+^zEy5u$A@GXYzHzz7LvGU@LeI9-*EP*lN{yq=Csl|6i(R)9S3$y%I z1d|2)rd25-4Uv3gKVQd#YiV7IOZK(J%!AM+Ui@$nn*nu_`5|&}U5!&p;?xsG4?_ye z)}^HsdBmK<9=0y6Z0&Qz!`5XaVsR051WCGO>#_int&@(xv(-h~5tz_2Z#h|4Q`A1n z8)c2t!k1&B@HiuvSbP+uEn}AlCK>zdqY$jVmNptd!5WC#$DmO|G5HusTYV%(HYh8; zKE~s+k(FqFIEG4Juk;g&X>M|98N~Ujg+{5%0B``*8Jr2`1(hMsBc#t&~6;JRw zVNGnHKfBJJlPq$uN-ByLo&W=@r_t8La8^<5IN{OLDl3mA2cP7J-A5)1L{B0KidO40Vt!*4hn@&jiVZ*rF1z?MobgB>q!utC)fcD|Xx za(6OV&)1UcoW+`M!x`?w>rm{_-OA*Z26#8bn+!(wIgU43rYYW}Mhm>};!R?oz?&rP zEE@cPZF*YycEp=@R9cBQe&9Xx(mHfB-n6u%BW7C8x$qvx%~0Pcv(%!%zxP6zg;;e|tk;Xb7wU&*!LN3=6rkXOGG-X7Heph$}K1nRR0*Ae&Dbc*K zmQ5DtuJDQxw3eWRzz-9|ddbKS(LvQ^uA+_A5oz{Fz@XRnD$fU>O}Wa;+glk~ln}?S zA{EP~g`kP$G7H2N5%-5mW99Vk4?W%hfskvwdDIjw5KTC*@D3U|0LaODBJyDy*gIk( zknK^GW}r>1xHxwWp;$$f_!T+MyP6QqKwDT_O(+`(EtZ6`f$PhBt{C?#e>wPljZ8Ds z7WRR-{3{4?5q%x%&Ve<^*fc?HVUxtb>oB$fdSvYETF>h+_AreY1jN?-E%5+|e2|F0 z0U~t&IuQv*-B$LY7?ge3!=s^wq5+RO|b9c`oeLXT8T?JdVm|?L7s+n?$nA!#OOE6h|KJ0S;Lmk6&0GW6RB`Mt%qz<^FiHZaiO!F}X{83105AdGKK2Ovy{j~^ zq{N&q+CN6~L=B{wZU8gI<;Q4_d{PDr&2$NDMsoW!Ucj*TL}>1z)yWiYR4i<*)5@c( zzAk%HdGxGdypoR3^2#W;xsfZlAz&1PG*1oVjYKZPhzo9P164}h*)R%Y;Cfw#W)W85 z83WfB26j4=w7fJQ4QK1bXAYxx@OlkYv&{xk(8ov!v4*%RQnQW@Vfq-o>@lvYgpL&vTEv!)}4!|w! zJ#iz8F(`O|?gX_YaH{C<57mZ9i|1gql(35j^BkdD<-Hi>v)VwVapO0j@)60k0*v$S zWG!BDEH9!1VRtLZrXzq&EJiE~G;SK59O9$w#;?IQHRlGX9FFmPMi5#gYfm+lz%NB$ zu+fwc6zzhInBa}Nu92+!O3V&M18d}I3?Pj>AtBJz8hM&X;0!U5fR{DD=K#bAA|8Z5 z{97VE6r`;&qbcfW%orC6D_CPjQ)Pu|qq%?b^-#lU1aH!kv;ultK3n9^WxNr*Sp(@P zpe_GMEXxI^TQrc40@`6L%b(jA8JwbltpOZ>UC_n3(R`~0wvoUUB03M6r)uDf0MdxK zI1id{)4-P`=4w$U49&M|U|R`XBfbnn^Bo#UM+XV)BT**Y=uI0*0RQcygI$_Nd(arp zc8jkfV0EjPb&$YyqC#E(tzOnq0yl^+@e0#j0@2;c``VqnukPeGih6YNen572@_u$F@25L?*GP2oqguQE zK&DQf5($})Y2W|=m$T!dLNRop6Jl&J$b3@Q4U~1KM2f1*S{!w!b=@Gz`8)AkaSRUM zYv5o2&#*IMZ*g>s9{?mJ2di|xd=!TBvl?*-5Vx`)#S2le)H(5Slo1oPQ1`o`sB6a; z;fe;Xq0lK+P60!q)2m2+?nD{o13r^J&%uU@=-ZePYnOlp$7lk>Kp=tr1Xe^~7zn66 z)nOp;3J8oUVN}Gi%c>Gk=VvX@>u9ruofkJsK%EO3I2=G)cl9p`+guc1l|+L}x^9H5 zt112{31j}Efg=Ij$}WrkrJ(=2TEvk`#G|F4{}qimN+MnrzX6e76SYc%@~^s%4sW)y zl45LW5V-*$8F92Ca=tW(SSijJAkqNkR|Z7hNp4XFYSGL;p{!BYz`a3>T47x(1Ru(C zitFW#=>fE!WJvwniYd`Xl+n(Sye8VX$L(>34pC^FSy#bhoS7tnD@1%nC~A!}ZvjZ- z%({vmn z72`M$zN0HYK;;>BSKO+KPIylPr%K>`(JL0Tf78He0B&W!i!-st@K@jGO?0mCA;2H- z=WsP8pWSR*T&3EtiDZX8dXW?~R~ zmv`34GbM5tT#BlPJtao33oXeP!V4fPLk_72PeQ zFnw_4I%r?|;u3c&>PkOc;hsf(m4$VaKP6QS{ZSXB?K2yibY-}UQDbJs)p7eO8?JC? zqpl0Y74C1;SJ`nD+StAf!sRJkkwZR0Ne;PHn;3osof6ms9bF&6AqniEedWOTf*Y5_ zjhaUD+AN+L(6LJbJEbG%W7*&!8jwdmh6jg92|k7ghvG(83yytdF)Gfe+}d9fnInmu z)I{b;B8N4RIX00wAhMUetclFQzVUELd=8eu!{i-7bS5=N9x?RBeZx|%5XoS!WblVp zWUgfJr)Dr04AhW07Yq{Fo0`E~FnC=um*9GMT*xv$*ZpBHP7ZX&*nuIoF{pao#!E@6WC)e3e`3u2ZT#b z^ChP=&1t^ml*hgzPPpk*YA_$%dfWC-e*`6OrUJM5Hn;hb8wkoCG+#~JA)j;qZuuqW z1(Gw@4x=+GOto6a1<>&$$#ns^u3;}~9Tz~y%^L2@`PNfdCG>_7h@PQr9Gk-4WBx`6&aW6c*B)?W7~x-)utgF^%Qb>^lCV!C%p31h zQMfCnip8Q!OB73FQSvj1*h@A}<*&%bOC{`_7i^hqESlFbs$}UPu~sN@E5#Zjw@MYO z6);h7%u3>V9V1W#w&MQSN22*DcM>QEGur%T%;JXo2x#hxt808Lf`)QGo+76-al5XO zKfhC2eIcxVU2c_;wdi2)I%~{D$$Ca{K3ue_XM{yG<+O{Ysy%lZaSt7Ca&RpIL+b2B zB)vtFo?DBY5bK7jx?nKf~J0s(Go zxF5SCyCwLS4A+~q3?!%6F8K^rXv!^@dulmTMA}9u_vttv8CeqX*{=Unbs{@GG7Mf z2}qNbZp*-2?V^$KmVx;S$z&OrCo(!rRB&rvpyOaQFDQ5xwo~K#v)=q|&3G9C?*lfK zO`|{2;cXsJ^m8plj1=N?2(gv@pe^t@grKbY*G5Q)gEWoLWkOt(?tLZ4RFLhyknPUu zc3;SLSH;lANGOBF=Eg>`J{2Y2a*1ap+{-22bsZtgp=7EQdO4K5YzOsnSon&D`vJom zte3;WD#=<7>uzNsTEOK}z}hRcfR!ZU71Fxax_$*1Bj47xrgQOu_V}^_%m-mZePI(L zUjZ`a3h)^s`L6(<0T^zS7gxxB^Xf{?r?TX;Qu4933RX%!E3|?uB_E31mEbXywMI)~ zuo4OmmJC+Hi#?=*ls>E!&NLp;hdM4eT-4%zPLuaTe8LgI#tgVdIQj^u1Egj^$Ek=j=u$b0nwXMx+ zFJ`N4Gp_bB<7#EbM6G44WS%IQTU#cHlKC2~Wuk4yL@zVaEdt7nbc=x7jET~Wt~HuL zHOXL&WMD0e)<`pcq#3NS&A7(PjB9K&uCW=A8P`BF)!Wu6GlCNhtZSa=ZLYOii0V>^ zwGd(}3)Q`5Eri&`a^Q-Hu7wc083oH)2$5({cyy0~ih8<7!QC6y+Pz^dgxJMyLm3ic z?UO>#lurRwLkf`uA%0^ywGc@VVm!mSnG_-kLa0G62|~CBy(9>s2E8N*p$0vg!IB`v z1W;CESP}&3$u8lF1WAG*BazoFaABZYfRsV4eb%FTEq@OTX~Szhgn7!*mtOnO&F}8D z&jz${uYEQ^0r%Qx0~BzteKtS|kG0PRXyIP_Y=9>2wa*4<;$Hh~fF@npQLWboXyRV` zY=Dd0Yo86wbM3PMN0sii&jy?dVeQk4X|?kC66o%w(w7q5S}J`heTeKy6lsa2l3L|#lntycxs9@cwN%<@JAEVU-^RV}epQY)FSq>$E9=_^UZS}J{I6Zr~6+)JgeKt#>WU%}q)rP5bwsf6G4Nh_%3 z%O)vh9XPE+w|Vw1_^qN8LM>;uNTXiTY_~v&-&tO*^A-r9&Lg)#fQzgtT9Pfc*aB>^1)vFJ zixgmyxZR)UbfsuEDt}J_o1Xj^%_aqGaEF2(-BY}DO#!Q)?71q%_FszhA5F%@Dg~@Y zfW{|mpUi39S?yNEw-+lShnua^$kyiUR_Rk~p}1B0)H3o`Fm^8#w}P>n!?uEP51D6? z?pvi_X`I}OPMUz*ruM#I6!3ouznW@iOk?8u3r2NcTBoJTbx_?v>?s2;g2>Zb#47D@%$W5<;zvc0dUC%5n#UaIY+PKnS(6+yMdHE6W`a zK&>oyKmhm3at8!(uPk>!0Qbsr2L#AqWw}!eqgGKnrLPNUi|m9j39KNl$agzs7bHvV zgfQ-vYfwWJ%V>3%Kg z7846!#@c3{xJ-Cz4YWt%eXsHMNW9{r#4Es?F9yB>JhcY;26zelJB{~^#ETM%gjYg5 zc*Q8}B9p0Q%U(&dq{iJVaZBNfT(#HMX)kngTX3&!!M)Og)_Q5Lt>j**WNFZ$Zn+mR za~K<2N9Er!3^eh#xo@X$Ap`}mTGxCFK`yc~T99uc$VFDxzH-2{*0B98gt=(12EK(b zYHs{i#*H;!d@B~dhW!^B35khX+w23A$E=(tyAMp#Sb1ELw)>#1`c23_Fksx8`}ToB zn)K{GF9!RdEyrE8gIP}83qpUnkv&o*(Jndh#4@K9JicFQ7Ok1?mzu?Bru)HENxxre z^)i}~F#Bz-_IokiFWR?;b1CDEaV!rw>KV+dQB)%^D6qTa9A?9qZu5w85{xaqd^$7fPsFw5p|y{oiiD^cPewUHeqt4LARLiGRJ5-=O>{&G;u5Vo z=`DgI;HkCQPP_!SHX01&pOr&+ZWPCzuT}?ASA&B+x0_eW$$Kcgo9s3%eR2ea9*8r@?(I ztF5`82KQYoUUNTf`|mWkJGiwCdD`~hX)phsw*7Y++}(Q;r=?wsey7#0E7kr^s$EAj z{tk@sU_;Ta8}8bu2O#O;68vgvadX&?hGVw z?~bbg!ry^4pzNJ}VLevq;>*4%%PvNX|__`#0M zA0UT2GJmk;_`#NgBJ&3snT^hB7uA=_o|O!q(+tjnK>};48Jx8v^DG#+Bl9d6B#3DV zMp$k&j-2%h#Iw?+HGkBKC_X<*KDc3<(OB`LbZK+V=SSP6KT4O@Vj_DFqa5xBt=YpU zYD{6GQxBu2T=AWg>!RF0fp$*h2=q$T2XsHng_!uEhfzcnY>5-Di|Xv{lEk%Eg6-tW zjIyzutPGY$jK$+wDYTfpEJ;_z!*oz(p{sK~JXi-X?{mIu-Z1fAPh+^~Pkir4L2!%v z;Vw9Fi|J+LRV%#TBm>cp02^BJppp;0Nk}RF@PIKb*p`J&jKez6FI1l3foN_Q#=fG7?`^pDb*3A#+!Q7u)H$R+*GXC7U`Qbd2 z3E-3=C@TJ_qj_9jxzHQ^xpnu$d5GZ8Y5A>Cv*F6R`{6uv^yk*y59hH1=+8rK%phFR z;7@+JfHEtBOl<&OfJzrxYiLh2FF>V>tc`tzyZ0BPlUkLY3HJr)q*B%k(C3lPyYjFL zD&f9}MkDc7`-T_6WjKohSK@LJT->`r7vX*Pj@Ly*fIGRn2qtQAei2OEyLcC2w2XIw zsAEAp7gPI>m%#Wcdr>QN35>6@m+UJCyJjyZE`jk?`@riG7+;mbUIOE5c3yl5jI+tG zxrES*;B7&RW{gX46s-X0n3cAqTxtnGU7D<*_A!5fFoIcIQoleL{5nh91wshc^T~2Fl+1O zvSe@Fz;IczC+A$2tY1V+>L!=LT5Y{twpr7#eHpB?a{;m3e@bNb z)~?7EFh$<49dHFq-Mb=Jz}TItT>)dYD{{qVOyXSu;}-UL`xWT@0Q+y`guJN3t_XXG zzdz)sm|D*Wa?vEj?)`pum<;@M-IfzqOa&~ctcD*#&bu~3X+6Y8*?`$z51X}^lnOe z4Y-&&(5N8KU2n=*R(1Xmx*;&hU^gYP8ngf<;nW7(ElKQEt@ABOtUa!%v)r z-2sD(tb>;B4j5cy9kq0Kz(5Vyca(IR!5#RL5Q9>vr)118-(bIq0qXble-A}ing0wqRdbut}1Dvw)}pV1Sqv5bNns| z{D~`)>UU_N&SQUv7Cl*Ov2ZBj7w~ zHP8b|%d*G=SVRqC*w+R(+OZ?v58(018 z;v&OOFJZEYLOg^Jmoyz3*1L#v!=N?gPh>ID zT;09!2bd0LeKpfRz_b;AO*8!iOx0H6A7DC^^|9fW=6^tQH`71B^m#d-{~>!@Kj70q z^oN{FaNd<)XBRItY>S*hevtNzO;HHUMg)(1F!DBqyxQ_}xS}vk zgZb7=a%o_**1pdy&1RDZv%N{r&DHqU&sNi5vbC(JLkt*U6rqLWha-&YE?Vt@9qy3~ z@g)JQTRgdhxtCUiXGmB9d_qvY9&=;>^O3NbUUVF<`{>Ec{xWJx!aIFIV6UgI(0L$1$jc{@z`RA zCw|qQfI;DjpR^|!9-*o{!8q=_;C&1+Y?M(ZTUUMo7}SB7aE`;BpkzuSsj_j7%W>T4 zP=SQyB1rzMNphPc2T8YcIk#enb1Q}@7&umyN(7Ea!;a@gK$RGC9)Ju#jEB>oh#zf) z=2N*i{xt%a(?6)9C^o>nI}a6oM;qk}kJ2(2pxI5128N^=sc9NgnWE%xQbyfU;E?nR zXnGDwFNe4XdiL+89X36Oq*qMT9D}nWl@|NR_62o&AK5;q7&FF09v{2Ck8EFD%i|;E ziKMt9c~oZWE9n)|^n4|~Tn^#;hEdK|(AOsDD+xwvg1(9%f>IJJ5>F<=dLAYU(**q_ z!NXjP1VKEbW!W1>$^4NLF^fbD*N9mpVs3}HPKcvK{;@z*X{NtKybfy-3$!b2nSy~(W@3$$GjC|wXD77}Td%Vn3OFKPp2m!!|@;LL85 z&Mrx#&pjMx6bVx7vV+)LJjNkPjyEFvsH`kVQtPFu1xaeXHMJm6J1gA~1Zv&6l_CV8 zyLFXaAPC*9n?05WLF}J3zCZBq!sgW7f@I`~E#nRUmMT>XmR!4QuECOPf_+8iv9hFK za6WHO7Qr^>V99xu2zk>e=~Agzh$PxWlL?VTdumleY{P^|Rjh-R5Sw6#A_#nnoDiu> zS8k6IJW1cB9jb##Wox0}IiWKztsNZ-rW1H6?dVW2eN);g6imnSmthYIfKV_Uui-Qo zS#A#nQw!gpP2%N2hwK+B?dPK5n8H})b~%VMFQXafkc`V}#yM=pIly=lFK5Fo#yOy^ zn{f`CaSnvYBp$69=kOdSL!}8$vQjKC8=n2nF+(<*U@R#{KgyzM;Y0lS`_u1q=($LB z0sR?&^jxIBkOhTKG>T;t$P)>$o~;*kCK@8y=Pe_eVw`>pPWJV=5g;7_65?z!*ml1xZVD zYTR=u4W5>kh>~8i5+CYHJtV&vE(#!fp|aGthX$%cExa_^@o}J;7`4>MA4eIKfj_bu zz0{|hEU}@L5jAh8OZqP1qSF+E?%fb$rXWp0Ie&_AsBAf-Zake~cmF;Kp99deGaAnF zq2?I;StUc&%gf|BZyTL>K~4h_@i~GflpB&r#D`9m%Zh^U8sA}dr2iH9;lR#f)O*G| zMN~cK@r0btNYMo2V&D`b5AATu{~SQZAd2y#-unjaNLW%Qr@U`edbS8tjZbDRb7U1+ zrx~yLb^x&-#mH&KXy1PF>qC6a_6B`bE)=)EbL18?PCGhhc>y+koQ0c(eR7He?;52% z6`B68D$?4YJVx$!t7HBhb!K{7^q&aQo;82cq8SMy{*E9Y8J|o)6|MeJXQfltf9$lr ztUFadfI2`bv^;F`)3p_1{nKTl2~1-UmFH0Yg!j*QpU0bE7g5q)FYU0>wOBaEh&B(M z_VK4HdYflXNBE#j6Rw}}1LFU=bMj^{047g~uz7#S5(|ta$y*i~^^6UhjjwniyH9M$ ztNH|;LXosvaGkI>xzJ+t9CW+Ztq4e6w{?j9EtmR++FWAc5+jeRDjtbZmBq3uc#K9p z){vD&Ss##U_*Mx|bc&VVs^NP@RvEB5sH*^+2Ed})I;gLPq4W(l8lSPCQ3-!Uu^zA+ zO6nCQt-63#(iAG4I&sN%#G~`Xb{UG*dEzUX zz}sg6@8}KBt{Kq$|D_VPmZg-Zf&`;$>*b#P@lSAcgTT-+Mu?A8_+Owg&gk_o)0k+a zDjFFZK0{|sF~WWSzU(@FrRHw^-!lgO0~#6IaGJ5_AJD+gfci|A2;{MF6FnMg`;0KcEqiA&pVSLVu}CXRDfG(E3hgi7f8ev_?jP&%hi)uig{V zbsjxNG)6l$$f!X`+*oOZyW%H);nhW~E*L*?MJDi7nZOe>fv?R3zK-B7(oVkIj5lP` z;LA+lUu6RK9tz#`H+$g6r=__oQama=;i(zI14G9eQ?fqYR}TbV}YS> z86o)930C5rEz73&!0bS`2S!;)DARku@)9kg361_)+kc`L9m+5U<0t-qf5dyoI2ZhM zU-b%d`)cw(@YNKw`%n1l$p3GBHQh)Jefr228{+oW3!c8ha)Vx0CZWc%&J&M$*~%J= zJ5M~33H+27+`Z=T&N$rg?=rzZLvWYXyVKka&Sui!TqbbuNyDvxXGY+jWV{zs;O}nm zbA}A!CvNwGyEBUmnZPe)2oDUMVJyVWgrqU~L251rEHkpj(w4vJTuPVPSyfp9vMpWH z!y}x8?E*UfL9j#*MFaZj3B3qPj7P$33vt~CI&Va#Py7f&^q9rJ> zjpr#KRk;O>mjb$;DWMjS&@&T|2$O&hct!&HvVKE`4C)KkWV>_%y1Y#2En(fiXF@F? zVP_^_X9z|DwtGTA7nu+ej?7fTrwCa89|=g%Tw)LB)gOV-q z&lKyqanFm!_hl#Vg`y($l9n&jsn@K56E`%vWg=?z>r%J&gvz714Zj(Ud1ZS1@G-pU zWa2VPdb;o_yy;28^gLjCc<>p#>3P9~^CQYD;*H;pusWCU^%uOq!<(MZbrtVxc>jtw zJsFptE_4%b8g}mBP0jD=@;=JnM4bzc(nWCOvUlUr9S66kuH1HL4gKC2FDDxaTlX+Z zu>Nq+nfpd07CV3vWUzGec@gr!Xdd>O4Ny(`KGB3AR+D89jA9ju#!%xtPOE%b@BZBr zM#w>sEK6|WPBBOpv#!t2dMHipd}tJKyaIvZ=}UWj>5MO~ju5rI?4(ZiibsePW3Qt} z6lNnZy5d(&xHDJb87MQxbK;I~VqRJfmm~zyeFi>yI2zFK^*0+xd>T#u2|jgh3*XmE z0T;&stEH*ZfTz>I$E!ic_?`+l{sz9Sz)LWZ-`{9pX+S3CxSusj-d=CHj;`s)0KZ|3 zxr}N1ylC~O(MbM?%o^XJKZc&p4k{@W$+I+AWRsIwo%m5O5#3eMi<$$+nz#smmd}?N zwli3r__4ZOv~H(nVrqqZnr8Wg$V4GMLkAkZsT)46KwSAGCW*w@cOS zaNpM8?n9^*wM+GASHrC#HGD@moPvh4e8TZbmZ1Ae=rQl=B`rXN#i74&+x0+=)R)Fm z?jEPq81JoBo%rc`ET!J3@YVQbO{?kgXJ~wyAIW$eC#1aD=kE0l(T%C@F;|GL8@3Sl@I%J-HF}GRI_|WNCY+B%*S}MP@2)n=0p3% z2rhzsBFnn*pLv=1GQx?p3?MDPQ3=Q_pF@%!J(KIj)(xCArjZq0D{zZ;BwGeKvtfoN zj}?}ryK^N7&56Bmz;vDt^VybVYpx%?nQ}qRmE&yqiQhN><%Z9;;U~|m-|2=YYB+x4 zbA1Q>D1oAw80?W1Ilo2J$Fdcqip^>ysz*Ne6jU7Mo1zQkBa*~?d0b``8frj>ZQ`r z78t2HD}kY4g*LWICn=Y02RB%gzk9r+k)4J^%8JRl^!Ws?3*E*&4fx<59jn0;s9u-_ zFnbrkv_Y?DwTNPgQe-7SA`~&$qLfK;F3U|%fmX@XS~(X*u`i5`BD#zt%w;L643Hw# zh+>SsXJjL&S_0~M_9kj+Ifo_@`kk~BDyzsykk0Fl0boxc!8c2z zS_!VxB^e@s=q1@uAUS}Takx=>O@b1^5t1MYjMULb~zY=5M5OebwDP8|=0lSYe?E z?LjCIF`E39#!iMVCx&KmbStoj!Vbfnvy3yUUdv`LHg6FnUA9|>K)qW#pNoR|eZJaG$Z02ev4Q%yU+=P~iK$a7o zEY-Wu$}S6n^&2#-^J23$?rxhoElYUB#dEUn(&VWIo2+g^QC9zb8X*;^lAt)3)e%Nx zTt$qP`La2J!oGl{?y*S?6>^}=<|y2Z`Y$Eo8F!>8wn4_68qGHtk!&wwkw*SjP1P(y zlL(FDS+H^vY1uJ46d@(ll;IBd6|!rTkyc(Im+p;`lsGY?{++?envN{GG%ls+evLi_ zI;4i0hF+twBx7wX=c$pB(mxV_v?=NIG!fZRu~hXwsITF4LrGsB)|QFK&{ymXbkyVL zXEl^l%D{$>MlgPAb~(@7YAB~7XCp@wm&&dv@gf(KQ&)KPQ5q5`Q*e9A^LzUIjC$Ze zhZ@;>p>$h7%{8=OX$3f?zO=6~%jL6BrZr>(&s2|6pjh0Qavl?0`XsNF4fjs+df9OA zByXICdn9=>#hMK`j509T5#hS;lPIz9sEc%&+a3wW4|mdKZs#N%kH3)kl)0(I?E&ET zeM02zW28k1e3J>CF5BsHAj;xB0L11gX2L z&Yp$UZ&0sUofjH-^+nIlFY&~RT#kq^ccSPXqA;R}Gr1gvt7cM(X{c_4Mon5|KwnWl zlf&_<&PHqIbQCS7k_n{DC2M5RM$0WG=5!Rx>CIA++l-3RiUwxdI`!*2qcYN7xrBrd zgzzraAc#3zz0jn2oflqqHf`{7#toI(kie+dm@!c$GGw6qow<1_gH=KxF4CLVyE2`5 zy(%*`FHP=5xl(RN+mcVSsTVo1F1Mqwho8MGf6eVEU0E%sRU%kUW?zar<&NnsP0f`U z&GI<%6?6Mb(M>;$%O!(&FAoOJREVE$ogh0H(apGJ?u zmZ(Ou1BL@Fa9ZGEQBi6&^@WU@bKzFhP`9@jI7|G`$a7}VrZA!)8VCARj?jFt;&kWg zR;o@2?QB6Z>ueaHg;5<34>9HEBm-o{ANlGwcDF}^;%91y#WK<1jdPK4` z&25$PJ4$=V>zUKWiOH3C-`8|R1W><|sii1Y#8Du?&O1e`B945ao+M;r zF{X&4Xt*cXO&9+x^y4^3kvJl0(}8?cN6Bi>o*b>sEE?b%OJd}jVkB5GmskFp$s}l{uQGMb?v}U`yK-x}at$V7-KF^}&PGtX0d#$v2o^d{)7BJqM z=Jaa|a>zePVJTtBe6Q8@Vlyj&Q}%pXDylZjGfr)>?rGbkO=COzjI!4~Pov0@%BIV1 z5$0%0kwj5MgTCr|NGZG+P*)+BJ(c_u)R{~T)#{Fd%tccbed(;rb~eMO^*3VtuW!@R zNQWT_ovXBc#AhXuPur`Vh8djNKD$HGhR&0th8j#&R;>4K8%iU@O2XDaq2`B-qtjaF zsJ&a{KvJNMqGkz4WqCkCXV@yAlH)o48~1#tqnL4S-7VwDkct{`q7v6Ps_^&o`Tgd@a?-=)zt)EQXO?crU$-<;K*4T?i$9Jw8b z=ybWdBMJuvA!QwHQAF2pbV4z$hP-l?lV>Td%E@E>X{tC>P9E#Gij&7JspaJvOmwt7 zgNd)DPxs%eg++?BC701bJw<>T+UN*Lb(@UR6@N~68EwL$kJAf7P$om9%f1)R$~b7U z`BE~blm&}Qdi}%0`Vq3d5-5GfLXRj9Wcw~{+Js||AHM66hP}$Kk_aSLt%Awr(%>V3c+0z@I-!sV|s_P5_W%{9z z&XS#g%M1b~Za&3Q%VS5!rEeRgEuCek$|z$iM#@M9Elp|$sDoSzh?o+XRkk2~t zFw2dYR-8k-4(u{`Xz!uD2lRJ#9qF`E`X@M5@kr^(Zb)!7yQgX-Zq##xH6__Imx?kg zQkY((G`3|y`oA;7iY-gB{p%UltujQ1?4s`D``a1Tm$D(9%snf^THL_VAnXY4ejs<% zkZHIzkv%iVs+`gNd!Bif=XX2D67w55@?~&9)~l3Cr#hpY<#SFZ6dCQmw8IbFXnVw; z?Y^~l^Pxju?NZw#18w-0pY}d*!>0gFS=d5deo3VZfI}K^S(i{=B8KZST9=J=+4=u; zcP&6sS8M$I_bdp?V?~sQge#k(>EeIii;vp3*oDNPq505pcq+cGXIo(Jl_f zajM%@CvWCeGxLUI>iW1>Lr3NM2pyAEyNx}@v1U@TDeiav50-^pP}5#Jv-|z`ywCrf z^Zm|u&Uely&^n-(VN1B@G_0O;9|nsr^gPEWXPSQ4v6Y+tfqOG3gW8;P<`q{vx$T-r zal5jac(ZUqq`08gOng~*MAvRC)hg$+on=Kw8m(P|*|a{im+eBSyi3^W1k07s1!#&4iYa zDSv^rdiYR2K;HxoS+UJ1!LRU3**+~L{WKFK5bU~q+)Mw)neX0tchm_^$ zJWSzFWn)FR?Lz87GmOZ=qbm4yGMLsCmz419S^X6u9bMoO;Hw&XLYR&&apCxJOb?To z9>)n2=-QWfl>d?>aMnn-P54Qx=mQ6IazMwNR}eGaPiu4m8iq>a^kq}UYQ8)?l=QV% z6KY|Hrq_?&lso8|uijHL(AgC9rY>;YWrad4@Xynmn#Sv8iHcMF`=^6%3}is5yep$% z+c9E$K~2fz=>ZBcq8EQs$-gJm9sPXplI7?e_j{iEy}U-I38vFQ@2v+DKJjY0*Y{2z!k6yPJ^SVTfjAr zM{yDE6`Te~Q>K}C^6`w@fYY1#c(|a1pZpjeG0wkxECogUu|3!r?Oyzw7x6V-oaKsM z%}9aB2nU>EZ7YQ%DDb}hNe1fO+zI%Kjee`}i@V{ksE;CItf+IsD=qYazxAB*_`Sg2 zev~`hFf|T#>bf@q1N?Ey9X$T}lIeS*1^#);9n(b3Xnt+PkG~$sfcEjau8jJ_->C9m z8Goh7=?3@>9Nv^?c6aIiOu^p|skGPgbuLQcX#r3Q$hknd<7Yq{rS$H@;DDS6Ceecm zxh!ap^1^Q*B4>d+1=b>g)(Ny;pc@716=<74uL(3_C?8)gP-8Yc1ViLp&b>Dxmw|gv zA@|plalM@8Hf@oRpd2XU(!0{+D71`Q1^#yzl>cZlZZ25Rz7ieR7j_=(Th^`PBHV3o4xxPeOUSw_OGC=Kf=&p?h?TCA@=|`O z_tvCczVUArYyoQlaQw;`{H-KlgN3q@JC=SEfusJeq+cpY@dds|(r*N0K+zZOs}VBl z4}E{{(yyslkbc`>U6+C_UFU6-((5RLgKY=+1Y1y+0Y?jlwPV1YVy#J_1p=)S=!#*2 z^t)DY*eTEx0=*(o1fW6_N(34VYgx{{H`dbgOurH7Hw%{O`KeDxpbe0I6S?qxNWUGR z<8XI@_Kzn0wt;@;?Eo$9_I&t0q~Ci1v@BQ9E-5$=XJLH`7TNu)yBv?=BHV4D4SvWa z(hs!1pcEVedA+4L-5pBw1uV|FT`cyu`7Psd765W=Z$RdF<{eAJWt>j>??@Wn2^VPG zQ)##WGN65(-Xp?i)E^%I7NlWg5NVh}rvBw&aMVGw=Ez`6L5T!Y$R)U#Hw-N)Jt znMy5~<;zrNYBf5r)@M+&cAE;!^krsRo?UDKt9)9m!Dv;2VLpRKskIoikfX++wCSy2 zhEH!Z8Z*sJ8|UJ)}h7dF|pWZ2&r?Yn7PelkUG%(B#2n(0b!Y7rp*dT{%TRJ<_;LLkx z=lv2X{Emi;n>#zl!pdG8Q2%EFxQCM&Yb8U*8i2J&qfCezjV3|V7&HZ<#tOl|1CzZn zbVD)#>`Bw$17aX}XQzzJXu%3*2${DNztO--!}1v91M9ejXeyX%WWfld0W2>XkQGcj zn!zArCfHsyAPYQc!Pf{TAE}#`^XH8@YQRpT8UE`b2K7-PH5t{66=B(^06jql9mHda zry1AE;-E6|P>5mhO@wFSeGjW+-t-I(f5pQrv8!zkqpk5nIMZEdb;&9#UGt^kIpuRu zwX4QeS}V^(Ww5DVQaIg#9Mi0JmA){?lQ%uXmYuCwE@PJE$W{6bRz6)ad&xd|cKPh; z;+55l(4P=93=Qx|P)?r1Rb5&0;PZ$Yf6fCdly7^gQ6;KD8jqC0MXXJ$Q`_w(mD0|- zjShx2OO-|>RkCV5)Y_`Gu@;N=1zBEASe_$C&1R>svfL;4&N@1J0w{B&J*V;_+X6|& z(#j~tx_~{wKC56Y3l!cc4{Ci=$D$3M$mL#SPDBPB*uB?S!P2GPVz<$8sWK}q7Q0o6 zR0gZYpv}}oINTcBOZvxZoYknNFuUN1LUR?WvK7}B7iPQAoZ@+f`OeBJRA{f8_-k=?Yr+`C7Eo>}IJu|2HT>Qsh^X$wy5Qf0W+2X-A<6TPaisM_VKEyVTS#z(z& zhutozkJ!*gR&dUYDs=6_p?OJmseDaf`iB8f(!_FJk5nH^rDxg5B&^p|_Ct z0OMeMD0clDa3$uDOQ`NtQd)y2kB%bE)U<|8d23fYi*&W#vgD0;lX@#oxim0qJyNCp z{m&ipO{rep|Ex#BdYy_IoW+biO}TK7IV{t-5pG6l?X)l?L>kMT?@bE4{h z>``sCJFoCny@kC zFZ=kg50cUQv5(w@P_Z>=5ex!v}bk`6=;9>gB5$cE5@wYn-!#=r~4z}D#*BDft7k^Dp0IFy>E)q?#2BPs=k zNb3u1nyfp7Q<)CpJ%kkrQ-XvrND>>|2}zSXJGZv;4M;g4(m;b!n`Xe=ps}3L4w)z( zl6^2p5}9QBVaP;7<{!ohLmvtfViI``Lb!V;s^=0l1&K06(miuM6z1D%zI;Xg^2MRY zppQU@hvsy_ZzWWlmeL#~!3h##_!ujcbT|aoOvlBs1c~zU3^ zfO4xKt7CB3fqpjn%S};}VGfhQNAOIN+k)jx5k=A2A*%2;H$mVpz%M*Sax5>7i-8Pd|SQ13{moENi z-JbWKw{JZmmw)`iv~NUr_dCi9Z?`;XT{Sgv^pM83)uQ{v{pyb{w_mmHEqKxWdgZ%E zH;5iT40vE(`?%Vix9V@iWt|)lCAz;h_k*!tO}uW|lC?|b7=GYY(S6p#@t&-+`POYa z)--J1-q{tN`cvZs9{O_7bIc+z6EJ=XeO`*B9vK2FRA_#2r87+0^yN`JjA`7CZRDGC zIKCl1EQ45%;k5fa>Pf974QvcCa&|W!88$uBnHWhrkK>c%;Z|sh>nCuEG-c`6k>rt9EGPO_ z94|>;Lb6+NCsR&}PT=IG(*I&9Bbl(0%sYv9Nv_nBv8Qkb)R8GV3S+3IlEt*k23%BtyCuW4HSDc-;k zQ#B25CQ^dcZ-K@d?a-~xkEMJdvY zB#00qO{50t2pCb2B2`p)1oHo$nYnj&Q`D!t|L6C6q;(6{;fh97U^^fw~C8*#>(Z?0g}H45)&T++AO+h_QskE_h~ zn{|fUFlLf-te3+WGQjx{uj@e}(S>D)LfCxIyAJnyl9iR^jI-5KZ-&|uykEw!C(gCD zhJMsH0au&v`v&DN21a(gJ^@)Tv~dPw=+D}N>ouE86yC>!GRuTX`fNoRw9b1)rWs#* zJ6{cZ)w>O-oOM17i_M>pv35iH3`~w1_+r12&Z^-rY@Qe1$=kU)GTeEic>aj42A}a< zr}kA@A$A^P{Mk&fVr*JhXK0DA?7g9`-lXikoYi34A)*{REPJoP!dzoN%HGQ`*5Z3C zdoO1VU6grA52@~epPy@N)skVntMj8s`pb*a->UMjdavMLN}RJLBhj1R?m_J{##ug# z*XDBe1TW|F6$?0rl=X4WDObR`zPxG|t7~4xIkQ}t^QgXxl~-Bvs*&zfR|R~l+cRO| z>duMf!Xm0e=3lcy82gN@g&(ity0=8Gy=8Up#d2Z1y7RYkE1bVZOIdg|=aKSZkkH?G zs(f&sZRMyIdG`I)*nhYGLUcHfcfMOTjMsDqRcIbj3+hVUXNQK001?2vib(AeoP#Tb zITuzan9-q`tWBl#>SW< z{N;!y&LhBDTcxP8f0Zh{iL*-OFlYTH#hhoW7jo{v*tNCdoEPd8b@r@W#Ca3fd-4AF zIz^oCR1W7&o$acG;qMdhZ0ej?1$62YbX}FOh^CP6u2H~ELdCB!jd4DX33uj?jpGfS z4PwLa_vzSJ=i!(V&dAC|3Uh{0-5@Ug_?V-P#D+yQ0pP9yt#kA~i47~LH1z0o4y{=n z7JIj582dr+PcZhq5zSbF#xv5jU2jQ#MERZCMZ?JYzzPRC{a9FotC2UUHzG%GBj=)O zBy&o&(~#;&lSpS$wL*B82AP{Wd%#mStFQD`5`;R>$5jB7Jl|A$eol=zXSw(|#Ll87 zVfZ^Zp8igYk40pp#5V`sC-Je)%1!;96Ke-Mo7N0>#@8Y5Rf+5AJXtf&xwn3}^D_Jt zUyE!K6dUFoC4K&`{Kn2(wVQ)+58x*`+topkR|C6x!Oksp3pit|1Qx_*m2FHT=Q`l!Z&Jd! z8?8^=t8Fv{dls6r9dqtAsn-Rt?{Lq5eECkbk97tQ8}DYgcfdY!s*biNAxJU>-EC zsFj)^SD+G=NVIj0d!ql{>N?V_5o%?@U#tYQE-h*j>s(fk1YL)SfHJtI^`d#xD$Y^0 zG0S6!8+qL=HnBS7z8b0Mo6t;BM!aCQH4BSKk|wq@7UMa`WK`yq(pkSb#W7@e4r(6f zyxasaTtC!VBG%V=xo)WQR%2iEJ^}Tr6xEhow-8X~TGpd7>{35~#!$bEcv?+e4qTcZT*X>bx~LgumnLJ+TRY*Li1*-I>-i#A%-v@9Z!!gwJ%An%0ER za>l*U(0N_MoDw#hV0;d}ciw;FE$6k7MVu$zu=5naO9mZk<7IMwj+NbfWct*?j$V%l zWN_ZSk9eJhuod2vf_d>bl3y5be@0M0g6$7du%XF=Ul=!jMpuHBETdpQwBut+y+p7e zRw;^LHa=i_=?R5<64rrg3ajL(7481fHF3=A$V1+rPcR=&u%Y=u@}qG+BMJHUFP#?` zb*}Im>*r=5g9S5oClezu=1w~Pa;*JWOj!|U&&8?EqDzYUX8ID&nay>VJZH-v%lMr- z(9>YPcgi|Tc@=hK0ona$9V?AKAHwkpURkx{%?~E?i~YY_U7_r?XS3KPWVj@t`dP;k z>leLq4zTQ)3$R?6KeOh23`r@fxgegD8&73#Ehb~;%8m1)za z*^fVAk3yRlwLSH9s~H)CIv$@lvropxfLE^!uRV0#icXV%iWpJv*KW(--u=y?am$Zi z+rHw{=NzIo0I%h$tpI(~xcFSA#@;|jZQ)7Qk<~SVlmF?BtNf$-CHzz!}Kdfomjus7` zUC{cKMrR*RNc#EW!@fo9Oz)9@VpPAvI~E+TS1hpA!l@gcE0q*6=hbJ^PhR5?#F#o4lWq~TfV-FqYsCDR%gZV4q>+PlM=i` zlCShxG<^8V9uaT+nCAU@k55nESd#ybpVkyQR^H(=yVDy7KDyp({h^P49QIyp)En2k z)USJM+;dmwyxPV0m+G~;{KJ%#3xpSXaYw*J6TI*W1o7{iV&8sKhNGSXJ z@(TA`?YKT?Y~j*Hj~4xK^6={&Y9~B*rPuoIbL#m_{NmNi7n%;gy|2;w6E{Z1)w(gA z{pf${nAhy%tGAWBKYl^=FRME)$IPi`r19ve@3L-fo-nyq67MyAWo*5lCi=IS zO`>54_R3>cler>ULk)!l!OT|C*mw zSib+p3wNh}{!((^lh^l^|LE$`_1-PVr;YpL%KiJtzdv|$*tu0ZF2!%_*TV7o{zK

%RDd){fydf3LIaJ^xep3jc%Muh;zf_9db&pUAS+PN;Qm#N~k>IIAyfbF=(#zv~@q zuPnL!^7v=(eHU_M{&(T060iFfNGzT{Vu$U{qpOu7zIb`Z$y*)A-M`5n#8fSOv-#v# zd$9rSrmY{;eMi+zi=Mr<`t|PlexCJtM5QZt6P_&irp&svV+MZvM!osb3p0;S3AUAO zm=P3LsPXEx)o3U4V4;+=ed2#wLKHl}1-Oiowf7R1D^Q)lEUi-%cga$G8;)tGu zlau@Q9MpSo@BYb~#~-iZwdu?T9&!t-!DAH9x6x9~=uAJG=-hC+!=`h~f-QqDSUqd=W82^8 z&Rfyu%g!_TIYq*@TS!i3WfCaGJ zuSd&~1&&(D*jH#ve9G8RB+Q?q4M2XyS25NJ?Q3XHpp9J3*q}(p_M#0d2JO}`b_MOi zwT#_H5maLx&I(E}mVvf(NxWar*qM^d!FFt5>}Qz#t&Jd#jUajxV_gl#-bK3uZ5G-p zSl^d!X6zW+ik~s|3|z7m?N4YcZGi>hl4WR5plz7K*kHKENQHIansl_c(LT2oJm8v4 zw83yq$IoGDe+Of~;Y~UC=A~_neSr2d+CuQnqc1=luK9X9V-L_a+W~99HJi|WkG4%3 zW8>hO^=L1mEw)p+Xg1p2aM2UAm5~>xro$3weReSx4;TH2wjjA^H)70zH{EGH9OTgq&2N`=BCS81pu_G|$;lmILro4ERvHW%foXRb7P!DzacE?_$XF0G zdFwkwH#E4P3G+kpjPDWE2(}}aRFFOS0cS@DrXMfEv=DsvPw0c-Gp;c<7cp}7I{FY3 z-`;@ck*Q4s`QgBPuRca6=d7cb=vkVtN!=g8_w)8bZvAPj2(uvzn8!VT{a706H>i@M zXCC)sk8ykhN3#z=6{Z9YA2C0YM^u8Y0A~MH1K>#X!CG=apc(+(^Be#Np$}%20}9Fk zg`s@T0b))uKBC}Ujaz_4LZ`VLzap|YZ|W=G;-bI%#b&pQ)U4vXH+SKcbQ`qU{UWO* zpAqpPC#lnr;Kd;Kn$N9Y@v)s(%KxDYz~_r^?R>j9T8hUBQHm#s((QQ>QMfd3;IB*tm*RPM1i45$5(K`hv zJ7$NIA8mLoY|C*S3UPtlwkoC4Yt z-cvEg^v>3y;Mgj1g<~1W6^`}H6D|@e@XxuCdanYX&huRg=4@37&SFZ-SWIma!|U1V zFXmY8tVmqK&EJn;c8VH`#HAd&iWP|;bMyBTu_Kmm_NvUIm>3zy-{PsMS#f*^_lo5S zOr%!>q)BS)>bxB1PsFeq{2@@=FflkD9UD_0#`B{#UR8Wun+va6d=e9V>u}VZw$yj) z@Y&oep1;Xb%h%&xHtsF%Of#Yb0;DvY1+W0oqah#R6JM6Ihvi6}CF0gr{;W8b$S<~B zMjI!@C3|qTjA#G#w-j5>S8Gg~V#|59-_!?5{4&qiG@7%o;y6pKstmWH34dhNU&gm+ zqh#meGTbVTozgPgYHt3n5t+^TIKEbNZ^1k9bz(yc-kz_U+mbiNMHAIbSIr@6){Br< zys@yg;RQr;D_($a6k}TPGH4d4CS5f@QnN|;wdQ5S55N=kTTA2)004QUYUWY1No+T< z3R0kzf}?9B(u!0Brr0RF+Q=c%)NB%M&i4%ouG$U&u9by0e( zQBJfO!mk8Bt&!t_oXon4q@n!9;BFdNQv#n6pAY3@gP+yFS`zr2NE*hIgS%^Bf&@M< zwhZH~c@M#d^Qyr;bzg1ty~KK@CJpCXe1dyxXp$V!M|h6~!xuELkp%V?6UKsevIaJm zz<#NB$MVev)aVa*8VuJ`sc~XF)EJ;~TT9#*#n%%+)zqzx1VXoo5bh=M&O`_YH%a@q zMc*52pg25{Pv(O}dk3%22a9(cyec0eb~<<$|Dlpy0oGpJT@3SAo5Ww@!^FZ#ATnGN zc}fx)AuddU*dsNtqvSeDJT;kr6zGF3jb!eOXq)>QFDk-clsjKobKy`zK(o~m@xw)_0S^q zQ6k-+!3$a8^a2nmoWkDbH*Hopy(~%h5d~+uh0{O@>?>x>bPK0J64);_Yo-dPsoHoW zl<_V(5l-W^P@^R7>*DlmP&F<3iUdv;?dL#?31a>nw{RMbJ_@IA=g4q+ey$9s`EzAB z9iHnJPGgm7i9&|cYT*`6<0O$0;)ZYwr}2{ODA98spAbAz%QpeQ4t$!pF^@O*cW9$c z5KE$s!lJ_mFxn)II8h?LAx3<_oAVXoix0qVnf9s!eb?A>@dx#-Ol|xjKS|SUwYJM- zWtSEU`IX{p^pGi1nA6skjrC<~Me9Y_C)bH#i+Ft0dfhiwVs5|{H+h=r zzlcTp@FE`OzYg7$nNJl-V|j$|SAW7hLN#HY)w3vs1=`)LY zd~k*yGfj>;BNi^^)zNnhD8?~E%&2LU6+ugQVAK|k_=ZGG(Zt`dq zzEzKzF2{T>7NRdARS%ucyfMpYj!Z|j(T}YYhiS|*1!){xDNOf;ksW_Tp%f)wXRgSzPw6?>#S8g-U{r664MOqh0$dYoAcIgC+sdQYASuDq#vaTqW4_Q|25Xo)0vQUtHVpuu|35=)3BT8M_|=J!R{b-WWS^*iv$ zQcIPk&aH!`9%zD}fM7rV(7IBVy0D&?vnJ^$D%8quK&bsgBQBG}9^;CnUS@^bGKAV- zWX?S|xXtoqioiS&ux9LX5EzA;^NS5~#@;6UT5``UfR#yZyk$3n;UAje3dt}_GhAUY zTmgndc&g~R(T(8>%@70{KGFnMN&*-sC0>a)YFSw+2~c%Tnyj=;xl)_*#zr1#7&hUz ziFf9WQlH<%3v$bPYor#9^(MUrL`Nb+erL0r_11`|reKLXu^GzO(THoc^1pB9)k~SK zUklg2!pZe(;rdbBw8mQT{S>4jy*}fGn%C6?)=2^lw9xA$UmCd%%8ceuw3XIDnNgDB zIwtkWWaVpKg%alNG2P*YqFisNM%u9p-yir_7BVT{_s<9pWEV>ZY!iF(Wi zYs>}@DK=PAY_OytQ*W^J-2i>3BbOlQ3a|}I-;6CVSX0euqvX^~{IZ4D4{mM&{n!-V zLNrXl-e#^Pn%#)Y@>Kp*Ky_9f-9fA+^3OqU7*&LQD=(XG%>vF2t>^4Ox-8{VQOdn#Gb-6q*L6a+ zA5u(j!v?60X2rS4=*&xqZ990YV3e~`6r1cSDGH_`tFVinY0!cy8uFu;>?_$)uu4O-CM7Ndx^QFh<0Fi8Z{k81yBt9$ZED<&%A}V!i6S zNqwk4C5HgXp{j`81!8n7lGp}HV0E!#7ueR&!2FU*yolV*>xWggfPS!HOxh5K?qQq$`HXer*rbR1B zDZ)gB69{#)Dz2nV|NaS>-ZXEFM2r?&P9Rq{&085jGH=pJY2J5Ex|z3%>}wznpF|$r z5He6`RT0MyP{DT!lucX50+DRp+!*=n40uKol zvgSoqIX+f&InC<_P(;(wY*pqbcu%m}M5yL8sRmSX#L3fcj;Jny)kWJga70VZzXpIu zSu6478J-l}+5-Bqo2-opJqta}2}M=@XcjM?I*WzVoKW$~WvL6#@?$P9QPn=0C5Z{& z!b@$%-fuysou*w!_O%z@=h4?ev^|f$r*vOk+1F9La~=|Q(!hEW*jexk$X=r5IveBz zwzSUr;MdPjRJzDtNXg`0Jc%B8ZH$2w3r+DNGm}-1<3%dB!i%(Qi`QMeNU9Tfb-?R+ zygG`e-{Wk%J>F6sNyiYq#Dwp8|6;P%1a&I!a7M$ZjH0TEswDC5MIKhM0N%a)6=#>v zan|)FXO1k+PKO$-eOZJ3P}5*tTA{w{Zm|0OQ;%LmQ7498;^mwlE)7hrdWlc-;ssK- zUg5K-e7Y-l*U}&?4_n4wLs@AqL9`7}O+NTKT>BbW(h5i$Kr)*mu3U%VrfMLq{K@Qf z@$3x*W=*{%dZ~nH=M6+lyx#rPHc*=G7yp zY@kio2h05y$(_8h31!4K8e>j4+6$7gg#F`Z9?3&Qk()f$IxX;3LcDMjSwoN(g0_jP zEErcr+z%>El=+4qcCZN`u;?al8}*hJh_;WlYzD3f*&oQMQWAe4r?9t0fm^(-HKS=i z`GQ4@!M6}`wMEJ;UN!0+O^EiB9qe6AC;)^$k%aIhDSL)57D2c9Gr>5HlR(;McCeY^ zmD?cXCDLv~UAiqs9-!@J2b(UQpwHi18#}+&^A3zXMk59Ru@iq&OuGXjBgK(BAo9Lu z5RAT^%qfEIg2*Tgprs^O5gBpUZGMLUk>>Z@yKeJ4R06AupnCw0*X#-an9OF2Y4;Er zb2OiV5;#}cCUHAqDN#_RhJ)}tfT=qbPPLVT&1_Z#oRhl*Rj z0smuR{~hNi!!%-~LUjHPHlJvDXqOz#mWh<#VUy(=sJ6!yqT&PaUMYq@fC8WDKDA4( zqFpj9_3H;b+{?JbQh#{FhZ@1FH4bf8L)iPGPZlDflhHN3!ISmN$W=g2tUo~ zV~h>npkWmx;+#3xjS0bkU4A#ARAg&WDipJ^a%ZplofUgt(}!>WsDzoELQh?n6i z4PvcSITn-5RT{)9lQ_JLLcuNdl%&0B6mKP#dKvYDTU$VtD&O)lN@1xQE2FeDtEQH! zhTb?n+@i&zy=62@5jA{_7lTtZP;Dby#Tp+YImBGlYDxtrb5Y9I7+|exwIp;3ofa1s zYkiFl*3zbqj9(XlenxW~Vd2QQoEYn8xN=q6foS!a?Ps*+qeZ5lQ8n0HX=n$+N+az4 zMi>^B1b@S|u+R?VT3G5@3rk(Su&e>HwXo36L<@^wKKR01QR)MT6-A8CXABD-u4A}? z1kMtV@)^zjUy&v&z#1r%R~y9(gzjXoYSe~6r8Qt`08|^7dMLp7!IfYoN{&@US`aL1 zroVI={sj)^YX%#)jq^-Ig&02v-_zupqH{Es?$V(c@wxUvGYQ-#J`6Ql`;XA#G*d@^ zSH@vde4!DWOT_J>d;yF$my{L&(vq^M0Ms^@l$H`WR}?4+;0?{Z6@XX`#I%CYYVuxX-+*2qr_C2GZGiS1ds_ z!@zW>2GZGiH@;A;3d2-N*T7By4q6$!0bJ1@*b||uPJ4PHR1dI&Voz}+*8h;? zUx4)#y}B5MQ$tG_`wV_qoUt1YenfODWsKuT#fege1G3JNfl!+DRa1FNX-wq|&8(kf zc1(;Z1F^o*!2S|=T-+%G1DI2JfCNq!eaiyV%uimFz$xNSY>l>xmla}CdBc@M34r?|5R+im|%wAeBLnD!~yy0Z5J*tsD_E7v}|oVz35Z z)!1Vsb^|dz1~$8F>w03GU5ubu`0{xT^UZlp%Gt|h(C*|m7()Zai}tc zyQTZ+CdW<|BLb^{$Q=Mlj&X{}uqq&8rX%BlNDI(xAo6!o&sTw>v`dG^8I24)Df85u zC>(`s#JFn4`~Leuj3K9gP86wbL>c#3YQyTreQvEIbW4KPkw)=u>&WX8xK132hoa^> zG7UglM;g_1TSwlIm>b1`nr`dJbP3!np00)A<~s7G96nzhsDim-WVS;gz2jAD7@1pZOo)er{2NUl%4SY`me;2>i0qqAGI1|8~?4fw6t}*(#cX=DV zv(EzfJ>C{q6iKrXNi$^zJ`0gFiI{%!u0m{V4@OC5e^^)5ZEO?{U=^8paM4IS>Zn{akB&(t`FW_) zM#(2Z=&*L4Jj;&#KyzV<#N`9Yhxqb*~4zOpmG#^5m(V|$Q5#KvR5}7ZFJkpxXmqZ?GBJ)8+ZDaF6WCMFm z6PXVpuSnwaq0(Zh5?O3MqOKos?lh#skoh9>StCsBNHqK+3rSuJB(Eo$*8<5aOJpV* zVYM4+(hDro3oO#4&jLxBOtb*OoXjv*t}_eNdRITm@QV+ZOcqKeTw7(KWD=%X(ruuA z^f@po{6Z-8qPV>Zb@qEnM!3JBX)csB9gBcQ{x2rUE|O$zn(QKw#SWzHvMtwrjW#`<&6kRiw-!C^JvPNf|HAcoCxbUG^TENx$OpV(u>%t>%6XyOdxt zB)BQhO~?$3A;C>~f}*Z$xL;{1wir^p!WwCAi^=7Z+hQvK)fiu#zR>xLx{{|%xT58I zF(g^a4zZ8vHy_IIAWWG?s4LDjGGZ&$z%(3#5Fg1Vf$Q6N`QZ~`OTe!nqjHI1&F(2- zABj>&u&6H;8yBGYSR6Zy<`daeSSIlYNc?pEti)d~VVNGV6>_i$SrKRPUNXvU`-_xzSo6N@$>zf+otKO2F%W748%4*)H13bLhgp7s0~ zy=01L$^Bz+7c5S5{}|kHv|?S+JTs&GV@TjyWbsj4NOSIPprxO2^g$r&xm|2jHDqka^Nxy9L)lu0qMF71N*c5+BS5v zR4uu5vvj28sAbmtTL#IdTaH==+qCAUqn2S=8_j}1i%hdj92>_AJ7_wPX{t!(%fb9t zwn{T!4(5|tux7s8V!j;AU$dAm2lKH~*yUh8)?&U~hN#JWIhglnA)5JeM9EkzQj5je zaXi0cg%%=C3b6u0Br`LmTLB@E(rMGt-P<*i8Qs0zz#3pAnREq&Q2WIS2%+{11@~op zG`=5uk-x14Sdn8Lbga}uRFy)kgb+JfrnbaN2!SkC3qf~)(51ANsAQMvL#l>1Ep`O86>!AeQNmubgchZMonNv!v%@Hr+b{oU5e=RA&Iw^s9c(6`t zvr(Ip?y$Q|Nq5;@rlh;<%9M1M-DS#kmMPasDQ<~p+ZyFMB}iuLB{TC-V!dRxS*uGo z-<9d;<~vNM)m?8fT5mBTd#+dZ+@S4QTQb-n8SK^aZ;CDdbv+Wot1u_Mk#i zwa?JKg}(=ebe{B?s)4ou=&FIXKtfjyv;`8nYM?EU&{YF%ft0QqXbYrt)j(SysjCLs z0!dvp&=yGA2dk5kdy8icv;_`u)j(VDoVu$9+Jc+(t{P|yZkM=fpe@J=Ts2S%h|>n7 zYM>OT)Q^9sjh-T7FWkEFsDVysgjFX zX{AcnMu=8V8SSG~6|_~Nn@3|?CAwKMZ6$QE=P8s-s@nNnYG9U3pG#!3Wcu6+o6jM< zt7Q5d!jBdmI-+D!Wz06oF+wZ8O%f@JD~kSYAfl$=HV|=@Oxr+2ZGqch0awYi4Ib?$ z4NN7|Hd!(`@JTdjbyd)OA=#OyK3{;{WfrNKe*t!`jOYswqkjRGmu0km0hVj5t>6o= zyrSWh92NsD3iU6{2`3&d=K1U5V{lRkRsL+3hP$TOZif)Rv*KFk?GWM;SRvtwnMNc|kJSAw!6^ zZ(1aG;0YXTI%!(k(uuV4q)C&RCzff_LuL(_COu>(k!fJ^qP2Ubfr(lu)4-&k%$CTj zY0^uIGNrI3w8_#uOyTyJ0XOtV%#Y;C4xI4fU9EM2?12axDx`X zES3b=2?12axD%5;nU&N6>@)?C7307zhQCicd={viAtrP&>iE7bOPX|9gcbf0(q*sD zcB%Sow=A)O_ecy^g;n%vqhy8YV8u|-Juhi}2Q{- zxK4+|T*Y;|6_)8TEa`JThV&qsq(O5XMzr?uIa`yrk80x11VufFiCvYXmtcobgdrT|Mmq z-<_bi zp7^NSb4IyHRS0Z=yzmjw-h$`Jt5PhU&`$`r>WoX49qo|r_KgK2V3wqpsIj*8e z!8l$?Jn0VlswVnc(vQ)2UrW5oqQUc^Uq#dZTGDqM0BxF1s+>81ahF-F9(MraF3T_6 zBhwv#zK^Y1>Hu`UZ0!aIV0g8G9*|LIZaD{FgewSpYYxlvF^UUX_Q1C@Q?<`QFn+?S zYQ_h_IEz)o6?yL<7^?@B4}vMznk^(5Uto`O;k7oAlG3qP3GoZ<-=fl z%{l=%45o&>A8{B=UCIApF#SPlbr?*4v^LhmV5%nGVL6G;LwJhe!_tpEX8LFYhVTj4r8^% zkzNKqB@UVyuz(US0~RoAu%awOR6WOwi{Rdd-;jEV#Pb;0oyBWsACnC5Ae*%6F%R{R zNhanEh+~%e$DqEe`a1^B>PX<2e}X$*hj1bsV%*{(Ky?TqW#rD4{a5;~q*J zhZ3rUJ?>_{0$BQT9HlSrWBB!LC?z;S67Zk31ScTDURGC2Z~_wSlSVxO30xt30urb? z^#mkv)vqTYfeH6x1Ncot1iWCB9g-+Hos_!P)0|F9yVbX@+++5nhtp14PCMzL?@7yP zCq0~YQaVknf5GsrF-fsLC0RGn%uY$x4YiV|ESH_qF1z)DcG)TAGP*-XE=!VXoR+i_ zHLcU2mCTYft<#pvPJ6iQwB@qX9x9x+Tz1;SWv6qxY<*wDH+hm0;S5CB$r@=9&On5{ ztg#m1jODX45W&XHgU2(L&(3)G?2P5JGZ2B!97JTYQO3au}*LSgFH>vtZ>qTsR9>uET}1VAr2D11(zR&bn)igUY!}a5H0Pvf*27 zk`m;c6r{Np7-j?TR)?0=Shm&dC9G{rhi^?YlACV4bDq$#P>WnxlXyx zTb#~YoTz|1ui_2gNh0H|iB#u;WYAVKxBv#ptes|X0Swdk}{rT zql~ycz^E6cZoXwg@`6Yl=qH`4BJ6t!)8(A#@S;&)Ts+KuDqNOu^G2PjwysE6jI6*C z@ns)Wf&C<_q{3G{(A9mtYpQO%u9_R_zTVHW5!GKZdiW{{?#UVs51YwSZs$u>%1uWp z_nWG}{vbg4BRr_gL&-xu@4+dJfRgh=$`$1F@==FiPX7%m|){J431 zcZrVg{J8lD!zGB|$4^=V18`+N!f*+?`Em0RhD$iU^W&iwW)QB-M;LwpG#`Abj_-be zN|)KwI?{fCoi59-ULuu#U=BLOF&|<00paFKgnxieDwX^J`aISNR1plyD-r$?jK|`o zPV{~Rp1#QTrPvlb@q&PWn(w2H2*TRyKdc`x(p`QCG*Q*a>L3^FGITk87`OMsR;foXwe+L z3`Y%TxSQ>H6P0EVsjLnfuRs{V%oC_95Qe@6LWy?8R9P~;0%0~rysKc`&bq076;=p%z@C#nDax+OV~^(eLMo}YI{Y;Dujrxub!hK8Pr43)T<1yG<+H*)Z)oL9 zCz82tKmyl&^c&LW=6&=V9szhm`rWJ+Za@MRfHy1w$nQ5qkKsl{!=JU9WhIlJB@^>L z`p=R{ckSb!J(&CqCUh@--!P-TgCbKMyWIqVjjW2c%uNsw)?v_1Nq}^@DJ7f*))bjH zA)z`8#Zwq=Pu1L%k*Vt}cyClpVOPD)Sm;qwf2yIgJl)zmKzRY@QzIQSBGV6^i z8hjUn)k1z(X`+eVg-K1gxxf?ayO6OxzXU8gU%M-(LC#YTRJjf*y*lH%2LW7V`aKBX zD%0;l09ToQ4??(7(R&a=Rl@h+S5>By(DxvOs#EVlfYI!s6sIWQv<|<|ocI;>&hY|u zDYGL7sAH~Qq#R}?|BIBvtmJ=@a*&F@Kn8gidz7qyO0ZwV#ZgA7y7xhgJfe=a?n_!` zaerUZGK>5B7OneIpIRafv}AFA-xB>kM0XYU_hoV4^H(jeItKd{Jo@9dit_re;L#rk zyXF<$(u}aK=m^@JvA@D@YR&i+b{i${^H6}{;nNyMMBU#oh!jz0XunA&|ImbflT0Yl zB18WMMburo-=Ii;9B&+XMTeF;Nc&w5rh`wi-0yNQzUEI3{vCr={qwsVT+4!+(*15p zN6dbQX~t+eF4GhM+#gSv3e0f&{eT5I|B-C41vd@x(1ZU&@PA6~><=aXpgSnZ-K0+27Y-O>J zm?H?6W*SQ|Mx~ibV;@7OO)Oa(|1osh#QIrRHhc`y%wiuyr_Zc;@)#;@k~Vq_b+%Yp z>|?021w9@IpDOB}XvQjyeFDaP`6bQj2^e?fKj4bO`3a1>a9gn1J3kuXh2kM(uO6A#82@l8Du0wjWG-5Mxi zo(%K55t_uii{ayq+TBcPLftwEMo0OiDw$rT^9))};$`3@G8sGw*I(AAXZVg0<$A`I z>qXcEBgShoFJ}|YCm3a4P+2&aG)ih3s8tb6g>Xgg;Gpq>Tm(31^x@Bdvx4Jc5DlmB znV@-cl(Z(kADhgh#E}WOPogq!Lo%{!MuucmSOiVPM^7e*1{3iqlW6huM4+oQ*(T9T zX>^-JFCyjw-THK~&0=T67qL#}6~sjvuX0^4IliOM3kk7ARnk?6XiVyM(Tk+a$vYk#7@G2$OO@2 zl2M_UN-BLN;vJZZoaHMKD{}EM5UsCS@>LxCGzXOg`pJRCGzUL9u#6$XCQA;@CL0wZ zRc_}m5sPa?e~Fk+yfs;>ybXB8R3ev8;+4>N`6S*CTx5Y@*>&2L`7GP!leR4jY?_Jr zxIYv1Uo(mpQ+Zv0q*XxE3XrrSY+}S~Mit9X0T!(QNvojP_8LB%q4KgoN#LqBOQ0lh zMGFyV#b2O|KXdsAnP17(PN6?UqdBj`K1sq zYa#MWAqHw8@T!WB)< zV9RL1Qr=Et-Bd*T1hH?bQNf||tq_c#!s!dGNs17RpTaBSipGav{A+S@hhY3uKIubXbQ9l?z0Rv?qle^X^v>9#)$CEZTc{KyRtpj;1&Pywgj#}xLXg*aRSRwk z5(+b6^%3h{H^R!|K`$Ahp*i@TX3=aY*2m6VjF@IDE7uS9hORiSosE`0&O+b7(+E4x z_xPnR-}!_6A?m+jlnaqX^pM3loi7B2mNyd7 ziY0Fv;iA`DhL_m$o)Hr4gV#E9>97{y)PPuZ|Nn%%}E`d*4GeA9JS)=EGP zo|QETE&a$2{Gs>7@hT_VK-pHD^owEkZxBgupLq@B%gCr4Z8S=(h-ezes<9@h53;g)0e!AlBK|UFXH^W< zABS%iX_Wf?45KG^#(DXa;B>G=wagw2rXxdGR&qXwwxsCsj&Y6$io5R_5wnI45Zm50 z-U=gGI8Pu{H~phU@Ar(z{HCge)Iz-Tp7D&ku=&KKbi*e#e5Mgi?1TQ2{VZdtNMCLw z_yuZ%&VAn)>D?W?kBPDG8{@nO%C`^kHefuxCFj7Wao^bri`h=2m;Y1HZ!0AUWVwQ( z!))XJe?o(~e^&$HX~5b483TU!ciGR+Zov1?#OQx6c*gwag65kIXPWp^K<|VFGn|jl zG*pO*XJcv*_yWMxeup*_ukZ1?gcrf+l$Op=>FAQKX@ZF*3yrucbVVE#do`vdd+ z0G!#I?|T)de*js8Vmn_h(Y`(1Xu?yL8qJK7)@&P!?T=;~-RdGTqj6nwe`?9)n3ttF z>r{_`wBF_ZPApkr6mi63u2;oZk5yw$Sv=Ol%B(j2*2Yz3{HMfPfK|u41eSzX9Ntv} zgsy5}RBcuhZ8KmsV-w`6k%VzISYwQ-fxgO;avbo87Cx_qaf((WjHnE(T8;1ri-}}O zgPQ>{0mSHs#OHh-3}&C2V6AnuX3$SO#u-RVyzpOtBE^E0M!v{87Sb4n1Bv5YNaZ5s zKa%qUxq24nR*gxGMGlzra7~yEEX)VFVMa&F4`}+aUQ-h-Ogva4BasFKhBl&a<#F2~ z90cx$kT3&;&L$Y!E?1owr!=w1_+clYo-x3kgctq1IHg&R{&^n#G#AuQpdL?Gb~&0s z%oc4e0`7A5n%c^O`?<;AYib({?v5WA+RjMy&`a)oh2(88Yv=1=JjjV7;#M0z4z)QZ zPHkb4CwpiyA!kPm?#{N?)XsUppUwl`EmwG;7k2Ihad(vw>Drg)t}%Q9%uV|hW6Ym* zziMp#v+jw;gKXWQo|btH+=s1k=Z?<}y0M=I_MZJ7(!B-tp4}p3o!ju4;P2TV>L+b$ zsy7$>ORe?bpYBc|2K+ty3*n!3;Kw8|(unhQ59>tg+zKUi^kq#a0Gkc}Q`ow>Q-|dl z;JU)Pi6PdkH^SxQNSykKJq2R!#^ zPn?>f@tb93d1|~h4?^2=g$IU?F>qw!w%R0;`G>+&rdwVoz@NBfCUE~-ZdsSBQi)SH zY;LPl;?&&DpEz}2t{U{3>b7dT(FqJ4Z!8gfqn?I|QX!)v&rxWw?Rbc2Oqg!B(sgj9$(KP?7e_?(cAph6Qe<0UD zOPu;&U%`^Ho8O#6+2OfQp}^3oV)19XTDFq|=D|s(N8ZTh5%K6VBV2B5lsNtWxq}?~ zpKAZc+3oz#+W&3ij2M=pmn7+d4nZytbW|RY=_u{$E}Qq7dc?Ac`(oK^YDOOLZ!EZH z#_8JqJ>e(vz(3{M9y|w}$z#B|Jm9X7^i;syojrE}clnEX zz%z4&2Zp|DEWsmIG%Ls*S)%P$+!>+cC+V;75SPE6`d@!Z3*gUx(O>TyX01=cWQoe# z-2IiQeM$c8B&D7Gzw_(A>aW?>yi@+Vi7&Et&99Yi=Qc0>ufL=P@aMlazvu|L7mkVO z2)!Fxe1Bn979F(F4^1liq4(y&vN73pN-~`W0G|lZkHR+b)mb~i1|Tskf?hf%GJhuF zky*UoN=G;PeLB5Q?e&SVgs1E>9Mv30@BzWT_;?U~Z^b>jDyR0#0E8bB{A5^FID%v&Zi^6GQ3d4Wr=u?f^Srfw>UvQO$cP)%3vVRRe z@c%yW=rD|+G^Q*|Fbs^O2mI;Bj(2u^s({AQ4}DJGPS_5hbB!K~0XP|xKLjPlV`1JU zfV_;B&fiSN`z00;@?k@U_kLkuvJx#>!%aLA#uSjcTmsgS0y_RuLM3>urKgnuGn zgMUgu!py(|4wiN%AFt+ks2|bOjLwXCs69CjtH<+A(P7da3zHcdG{A zIuoxzw)xis+rLgVZpgKqchHWTd{1X~nKG&1om zS)okLs?UyZIal+W%{x~e*e)#<#c-?zQE7JAfoo^a8l_lwym}ZkOX!Ds30{tMFJf?3 z3eWu8@jPUs#6Gy9pG>jufzjTP2|YrX-EMzzaNp!H_WJf0?Un6SNg+J>4|vnTeeEs# ztl zZqw9`XPI2063r%!Xk~DRN~6zxWP}C01WkJx(QJT`DYiW_%BK9oXu;!Yt-S(W>HAVo z;dL6X^LWwMq2lZC8GZFB;aoub6JFopl_@6tVT9E`gSYghpR_#Dw}f8D>u0=f<8>1+ z`sSiLc+v2Cx}|Syq3^wXGOKqi5@Du9qPzM;_UT7P+pxZnQ333XWbWsZxk3P4nAo=- z8Re>zMuQOt;Rr_Q9O-+qAi;?&1*)Q=t}{im$3{uG6#v~=$Kv+mC(h9FoSvC+n7*_q ziglJGgXE%3(1Q<8oXg0-5Rmgi|I@NRfKkxZ$jFdEN4<(&6h2yD2M(>BcF@uxhL|eH zhGO!SV#6I+$?-81b{`0YXyk>6!QJF!t0Y%)(&g{s(@L2azQdBljRCD(c@4-7pB54m z-}^5V;LJk-2h5m6 z)rTTbR&g^^}^~h9P%d`0SFY%k`hP4L~{9~;lMFBNy4A&m0+Vb z`#1yR#^`ZzdYszz2^&wQ%=H?R>p&X@j@JVpcq@kHmO>-vddX}k2SYE6o2193>v4Fh zW_aHbG)gMy#?Rr>kOofG1E*skG?H1Aozde8)1_62fV6-n9Kyc-$L6mycAfa`^r@61 z$8V?oNaM!nas6PyzWDdE<{GEA7!M280Mobi`b-mB4N!}pxvhH)0RFq;U2Y4Lp40p< zZr$U~f9v1p4|4DSlk8_Jd{Nf06?8n1tjHu}tW2243;(kI)IKtlG$9OSE?e`kjD4ts zYaTRRgy16B0@*f7T;gHktMF1L#`;SWt7HeJmGtOamb!FmYPUPEHj>HK;4#{=Y$+rQ zz#d8-DFTD@PU-d(?H451P<-^f zAEmu6_doh7ToN>jt&#gq6#K+T5l6giVXaL?l>xR&U87hEbX}$Ob|*!_;=y1iG0+S} zoVP8)dpj(bDcX74qHLM?hu8Lowk}9rj(FR8qN(Cz>ng!fF@cIjIq{CA$oBIS3L*LvHs8KqE~P(>~Bb(%CM}Wv(iHF=zJ&68#iu8#Dh!kPt(J z0sTle6b?2Z<{mVZeUqR>aEv5KNJJQgh4y_Pv$+@#ts1;y3 z#gr85fIB!uAWDxmaviNkM#+)uAfyZ5W&Y;K@2yGeJ|Nv1V1|Vvvjc^=6{c_`Rn}PcqtUMh+McSVMh7sr z!7^ZIv@0TW4mR@J;=R{N7WMKY;{Q21WY4QO4*547sXYNdI{pbq4wZ~)dNqUm<`ktk z^v%_!ltYmt+aXSs^+|A=A^yzXu6<{FyDn`UZKQ$CIg27J4}nZ4+SxWR2X z0)Dx4LX5QYa#`EAz}9KU*7$dpCv#u1GewtHrmYZ%A`!C+bVzvDeuA&Z$!mL6BFV)U zsSF7~I#jT`8-^^YSgL+6^w+h!pi;{axd*iiwGF}kk``)fj^;@#TP-vV3fN-N3@%`6 z*<58plp~RE$(zePCMT^0v<d-nz zin&rS%7Hde5MUR}o_y`M;GW4>rUiFPzDk481KmN{mwWORf_a&VPo(y;VT-uu6)i9E z?E%@+tV9XNcMN1pv${z*rC*emxza3}?nv73SEXG`@Q(D^s@n|R(t4E1iqZJTX^sn9 z?;hAeu}WFWJ{cM+AH%XAZTi*~HhIOo+NE*?*Pq0eO2@RH{*0^-@-`b@|Cw~mQ_&PU z*(J?sm7{jKw!l_M{;wrs4obw-;^fCFS8gxQW<3MdTun?o19;}*#W6PbWhFNnYSQ^& z{En4hE|oOYfpT6%XbZ(B>-JCxXD3MWSP}GPO`0}tlhm=P$82+-)d~-(p1oze&W+o5 zY1f(F)CGQ|YkKAwAPy9%%W8XZ(1FJ&IC+zq9q5 z#*;~BQ6i|yCHLY)(fO-7gtDZ;Oy(-$T%;{DV4KWCrh}+e*_bD4e~;q-h{|RwK59l* z{$~VFd0t^kY#` zs%lg5lNoNt4^|S3fj#2R@ZY<%p`S z_rZI#Sp+~&`7?fe6x9&!smfnx)Jwuhu)mX0r_etw&biX4y)tKt-9i#JlTQ*kubtS8 z6IFSH$Z=%pf=ub9{$e317gZrD=dMPRU9A}9&!yrI)b*Ovt{>kCoeL2!7cLQ=TbPFFyqcu^mGF+DtbDg#cg5vaRrJzcd4jIn1r6( zik^8E+_UJ}V8OE$J^OV>_M#_K!mXm`fxOIF^n~Dvl1$h&d(jgu;W>+*M8NNPb(4ST zW34EF@K^n)1%u9(v(+;H?XzXaf2x=vPv%y;D9!UcOfL49r^y3dMT|F!3%bAU9)c=y zQ47PrTfEd@_=kD68pX2HcTMxkOx$T`tK2w;2(*;Yl8Jwnk=*~q!S>!GhYWi0h3te} zD`g}TLlbS0BE6i=w}@-$aUqmsVnd>>q-fCA=3CSgfkH}gYXxxj^Vp%u^`koHR+Q+x8Q&K)*UuIqE|$0XhG%D}*p+4?Gs#xE0kL!O z;LJT2#+h-hOS>s@G!q>f*`mAUW*ViK=gL8fQEa&%z;DF^&t^vHnfjKM)XU6`ws|KI zoxe(Wi6bSwEhI&9U^zuW^oq9m%0=w2NysEOze^ ziO@>6B7-Sb|7@-ipMU>cSS7f6RypkdY;HRf8{pr~ZF5t`Gqr8!IzCR2gh@xY<6|tr zx!;_1ogQOWNr6&Wj9kg1#o8EKKDPzfwbWOTn?c!n6>yrQ?hLq=JYUwcNmA#eTykL= zZ?eD=9^2hk{yEoTs(Q`-znfd;l@Bk+y*)auj#pXTpQUf^skY9yL`)T1WG-o%9cQwX zrqSniGNFrpl0ZI`IM-{5OlfjU+w2JY+|srL3+|b=(Y?LQR`PJ$EpJ2CG(Zo?p0-Vr z@WQBQH{Mi_38+Kmc@l1=a~tGk&UB8ZWp3$QriABA=N{YQOY+<{%K|%|Ec6N3jD&Ci4;d)zVdQ@<(;yR( z^38PWwtzio$Z%N10aGgHoe8NVBAWe+j||KNBieoc{d~jWy4C!j$v6JV8^qnE!PL_T zYWG)Ru%Us{Fa?{LD|aztDev4u8CKI1K?$}nOak0sE+bkd*a96o0&Z?UPS0U&+2=#JL z5$fm^0qtC`ZgN}9EhRXEp4?J`I~LqCCGevfCwoTF2>Y*HcVtfq5+pnX59X(y+IcDU z)W(~h4=Hw#{Z?u)Kwjod4PW{GQi-`8QMkeSp8}=YMQ!@E?AP z@Q_^E<%!S#nH0fSr3n95Z1suNX;JtOZuNJnnQQ#Nw$*Qt<8$BYReEJ^=*4p{<<&!g zDIz1%7O77lT7af?0%1N={#U#C|DcBn$KcaC|4(EFDGrwNJ{&>Zw^=&XnjU9H5w>sh zR-cu1=A9|1C(~#}cirbRPa)_8B7YnR6N6~9I)@nB%od1zVp=m>Z&_60?qVKk0a1Sj z=_cJsqn{LfS$y9R6|)*M@92|R=!Z;$Q(7?lpY$wYLS>TZ-%q{n#F)Ny zI}G|esn=FHkZ$4r#j}LsdP`f=utV~x9M0-mi5J=SuahswzjQu>k9erhVUY8tS5!`% zgjNNptM;S^3I_mAhc>;?&h-kxX*SI(!Ub=K{!oYfR0X;+@on~gj6Q&zk+E&BIz*Xn z!FPOr;DHOi1aSG}o^CUAdsVl{)?|OUZsT;@LbtupK0^e?XuwRgnYgo@J(XK2;YE;z z(G!ZNPo@6x**Y4R4tNT~vqs4;4D3BT+2h7biYU>;7UplBuce3vJ!~bd8@copm%JI{ zF^1O26LMOpOzj9#bn?$7yy#O$>cE)n=MIlzN91ECXQEB`k9pw#=#U*zEW@A`a-|$_ z1+c4lUB|13L4CwPIu`v|V3i_2qDsPKxP3G=1-SI_RJD=kwIW3^`Y)>LsRTP~dr`)7 z&d+_E0-=llUwPL8-Bgi==Vn6b3ld5TrP2}_N(qpfn^#j;*1Vz8LTf99-6BnCu#vXu zmZB}7NpV%&!&%!EJLvARfGqYP_~1b65n&^sq989@D2P}duB>tp_Z&UoS?&IF?+s1b zgqMZIv&p&nZ~i+ocV_O)|II)5pZU2NQ%Y%@=fm`L8i9LdK?nTj7IbiSgssqKLfH_e zqr=?YWk6}7y#3(Sa~!Du(Fa0PptVt+POF#31=Y4k{(8V>IdHiR1A9yM;0GUps-vNY zGX7`UH-q8h1ZU8bj*deP>GRw(mgbO_G#X0kU&0m~oDa>HXeAf^c(0lXuQO9%fN6X9 zP!ORtfssrVrevXSi(o~}j67VV5Mqak+%p}}N{-~=QCBrwJOag+p(D^9lJc>9h`-0B z1BRMSyN1a>(d{M(s3Z=D_aXzDU_aSfT`{%lg?f81Z zh4XI!UyZZyUBViHl394vgq}Cau#<#B(MyK;QT3{TdvX?5gf&RN83^{bj2i%9Q4b3H zEmHhQ>$f`LUtHV>3O920=eGofZ_?lch5)pS_soR=2y*rwJPLOuJxJ@0=D0r%K03+8 z-{RqNnrtu7?Sr}Fi~q-%D@IN|KyEMw&^im`1fE~PTM|7RUNKO3%>#>gZcQ9eurmNi z3JtHYWlKnOO}xSnMpqT^DN0TeXo*1U1lkyfJY0Ylf#DNqr$8?XG!nLzqY24?hC){Z z$M1`-dB6{=!NSPURYl|v;ketW#`-uDZ#v)!3$wv$Y$F#Tyc$~#*ZUV{f5~cW-Y~x~ zy@ndAz5z9M3_1^LFzr;9BbJm6?$qb+#pe=JX2O3Ok|%_tZdjwvG#blW=SB z>$71r($Kes&T|XZ*?UT_rOtxRSLrTu&8wGDp>=%I|bKx?Fhr&=V%+fJYqZw~@(7SsK2DNNCd=~09!-0c|}MxE{A z@QzL;2LtXU;M0gwSm#0MIDr}kO4orXQ;Du7M!oous9o}&eBww30mnfp({ zr8^bhB3!;T3hrA`S8%ys6vhM_DuWZi`6D% z(^@oIy%OBSsj`$>v)aU<`^|QxCQ}2h+ss)en_b&>p$f-MBJp1^N>Y8A838U9qe=8e z{K$ai&@aHx;zqo905!-sL@vW=#7PFBfy2q7O?Xk%Mqn=x!%zQuS9}9sr+>&dagck; zesUVPMYw$oJu@j zk&HgWtVjlDec-as2D_AJAqyM^@YQEWCOEev8=0^j%O%s$bYw<35GWlzfmrg{2UtOt zY{#{+v5@D%a4#uPV%&l6_Q=N7A%k8~Y;jjsirrN>syNp*w+6WvxaZZ%3d#|@iZ3gk zZnvXsi;dM6=N9;;XIOJ`QjocUOMXPiwv|*4pYPk=Y676a`cuBPCSfyR3N6>pTR=d)KSdZGGWX*ar(q^$) z&<}0QGW~-KoHYxIp%P&y!SpBCVq~hWwmNDZ#VE%;*HKYi=tPy(#kRV+&Wc1shRRsB z(~#k;ODUV;?3m=0d(o*38yfUnSCaIp3{gqR^4yp$rgp4-!04Q3D|6NEay^ibUYZ9F z$LI3C>(RubrQX56pQ_gC*!MH1+~2r^%}_tNqv_8LA3s-I<962;&&_6hIS<(EHfwfa z%+f4loXim?v$(4+*4DTy=42Z6=ApmI%r_*f(DSn7h3k@SNRw%{tF3yaRAW$^jhPy) zQfg9bGQEXamMovaZZ}!%#?1A}r{-kN@R)7I>m+OSB}{ts$gaUgG~BjEjnH`CF2+9k zWl8DZB2ntl)2Oa}#OW6b%2zv`wVKIrR9ga#-4dTH6c|zVJ#Z5HnOnXg%%XKYvz}_-FfpTqeK}lTs_!jOEcCNEnPGp zm3ATbK@g8g7Y3+*7~qa;Ov4CO#=Z9W{J5_jt>iyGZ1Sv`=~%{2Mse>l-d~kFQO){R z7D+x5tEaY$RTKBzeb1&8xpdsD)v)2%*0IfZ=^mHp9;}y8;*lWF7}zR5ZPjAQ_Yp=( zenXq~u~UPOGCxMJ-4Wdpjf3__-+MVix)}!DfgkZWG$mFVOT86{jffn07qiXnIFT7j zMzrJ63Y6547=`vZHq+kOEe5e31=6JjgGd!V3{2sO&_t5I3lAmwowzCnlmrAF4m=4c z$jdwNCT1+X*bvBXJG2XyyhIg2CoY0;TGG86TNo{|yw@w-uJ`aLCOI2AoRte(fQq4) z)kFUZi2FWv<|i`a;nHOA3~C1_26hk{dWb?DcPinZ4*v0;K{ddo{y?E$KsXDWQJ0{4 zIJ6Lg`WfYYliJAE4?>HXHj$Vi&3mvnus{R~WFj*@#Mb<;kUuBTNwPrt{fUsXr%tdli1{#1O-8TCS41{-GSdA#<)R2b z^N8a#b06^?#@azUfL94kjDFla-}njEGCs2K6YPmO0c;0%5s~}a@h74vIa%I;Q;EI< zj|5?MK8pOY1Ix&x9dP%!4tNBwb>PpKY_hr?C$+6Vg2mu59+8bl@itKbBCbxHL6dlq z(uog~4~74ih5w3UJb%_PJb{sur;g!V5sOIsF+3KtNKSq{hN<6kqBt&uqZHD6_BdAH z+FCc+Dlonf0wjEjzivK>jm;-;Epw7AJb^vT8S)*F0bfF~3P}BDcya7^aH{7^iQ0@O z@f4hGX3ZL{*_5TV2Og<|qOE!6NvV1mfn*tMX05?y;Sabn*)l1W)v&BB3*wn!ybXt5 z+xF=x{CDdA9NeLw!Co@%3}b9Q3%U88EIbR@_z~`VmRvrI7dLk?Vp8`7UNS%m2;rim zxw&nB`6rHt0Va9#ODvyS4Pjw1Dq03dEF3G~fcXKm8V)*bM+fM%N3_5LrDH-mmMyD) zj60{{r@2cjoaq&=d9{cP{|b-hTz(UA7h~XDfe(S({?wL#4!_PcRmUc8{Ao91gjinZ f_QXrdo&0&!n&)Y=!sO6dJf^MTD<}a`L6QCo^$Hrx From a5faa15fa830efdfac294c10bad9d5b6d885bee1 Mon Sep 17 00:00:00 2001 From: liuxy Date: Sat, 9 Jul 2022 17:22:03 +0800 Subject: [PATCH 6/7] =?UTF-8?q?=E4=BB=A3=E7=A0=81=E6=9B=B4=E6=96=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../service/impl/HandPFOutIvtServiceImpl.java | 9 + .../pf/service/impl/FlourworkServiceImpl.java | 7 + .../pf/service/impl/FormulaServiceImpl.java | 185 ++++++++++++------ .../org/nl/wms/pf/wql/QPF_POINTCARD01.wql | 84 +++++++- 4 files changed, 222 insertions(+), 63 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java index 29d77510..390b26b4 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/pda/st/out/service/impl/HandPFOutIvtServiceImpl.java @@ -411,6 +411,10 @@ public class HandPFOutIvtServiceImpl implements HandPFOutIvtService { public Map confirmOutStore2(Map jsonObject) { String input_optid = MapUtil.getStr(jsonObject, "input_optid"); String input_optname = MapUtil.getStr(jsonObject, "input_optname"); + String source_billdtl_id = MapUtil.getStr(jsonObject, "source_billdtl_id"); + String source_bill_type = MapUtil.getStr(jsonObject, "source_bill_type"); + String source_bill_code = MapUtil.getStr(jsonObject, "source_bill_code"); + String source_bill_table = MapUtil.getStr(jsonObject, "source_bill_table"); Long currentUserId = SecurityUtils.getCurrentUserId(); UserDto userDto = userService.findById(currentUserId); // 仓位属性表【ST_IVT_StructAttr】 @@ -569,6 +573,7 @@ public class HandPFOutIvtServiceImpl implements HandPFOutIvtService { invrow.put("syscompanyid", userDto.getDept().getId()); invrow.put("is_delete", "0"); invrow.put("is_upload", "0"); + //明细 invdtl.put("iostorinvdtl_id", iostorinvdtl_id); @@ -586,6 +591,10 @@ public class HandPFOutIvtServiceImpl implements HandPFOutIvtService { invdtl.put("real_qty", out_qty); invdtl.put("assign_qty", out_qty); invdtl.put("unassign_qty", "0"); + invdtl.put("source_billdtl_id", source_billdtl_id); + invdtl.put("source_bill_type", source_bill_type); + invdtl.put("source_bill_code", source_bill_code); + invdtl.put("source_bill_table", source_bill_table); //分配 disjo.put("iostorinvdis_id", iostorinvdis_id); disjo.put("iostorinvdtl_id", iostorinvdtl_id); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FlourworkServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FlourworkServiceImpl.java index bb725959..48b92e3f 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FlourworkServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FlourworkServiceImpl.java @@ -531,6 +531,7 @@ public class FlourworkServiceImpl implements FlourworkService { WQLObject formMstTab = WQLObject.getWQLObject("PDM_BI_Formula"); // 配方主表 WQLObject formDtlTab = WQLObject.getWQLObject("PDM_BI_FormulaDtl"); // 配方明细表 + WQLObject workTab = WQLObject.getWQLObject("PDM_BI_WorkOrder"); // 工令表 WQLObject formDtlJobTab = WQLObject.getWQLObject("PDM_BI_FormulaDtlJob"); // 配方明细作业表 WQLObject formBuckeTab = WQLObject.getWQLObject("PDM_BI_FormulaBucketRecord"); // 配粉间桶记录表 @@ -554,6 +555,8 @@ public class FlourworkServiceImpl implements FlourworkService { */ JSONObject jsonFormDtl = formDtlTab.query("formuladtl_id = '" + jsonFormDtlJob.getString("formuladtl_id") + "'").uniqueResult(0); JSONObject jsonFormMst = formMstTab.query("formula_id = '" + jsonFormDtl.getString("formula_id") + "'").uniqueResult(0); + JSONObject jsonWork = workTab.query("workorder_id = '" + jsonFormMst.getString("workorder_id") + "'").uniqueResult(0); + // 1.如果是 if (StrUtil.equals(jsonFormDtl.getString("is_need_move"), "1")) { // 调用配粉出库并确认:参数:point_code货位,storagevehicle_code载具号,type配粉出库类型,bucketunique桶号,out_qty出库数量 @@ -570,6 +573,10 @@ public class FlourworkServiceImpl implements FlourworkService { map.put("out_qty", jsonFormDtlJob.getString("outconfirm_qty")); map.put("input_optid", jsonFormDtlJob.getString("create_id")); map.put("input_optname", jsonFormDtlJob.getString("create_name")); + map.put("source_billdtl_id", jsonWork.getString("workorder_id")); + map.put("source_bill_type", jsonWork.getString("workorder_type")); + map.put("source_bill_code", jsonWork.getString("workorder_code")); + map.put("source_bill_table", "PDM_BI_WorkOrder"); handPFOutIvtService.confirmOutStore2(map); } else { // 2.如果不是 diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java index fa489d0f..4133edac 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java @@ -22,8 +22,10 @@ import lombok.RequiredArgsConstructor; import lombok.extern.slf4j.Slf4j; import org.nl.exception.BadRequestException; import org.nl.modules.security.service.dto.JwtUserDto; +import org.nl.modules.system.service.impl.ParamServiceImpl; import org.nl.modules.system.util.CodeUtil; import org.nl.utils.SecurityUtils; +import org.nl.utils.SpringContextHolder; import org.nl.wms.basedata.master.constant.MaterOptTypeEnum; import org.nl.wms.basedata.master.service.ClassstandardService; import org.nl.wms.basedata.master.service.MaterialbaseService; @@ -473,93 +475,154 @@ public class FormulaServiceImpl implements FormulaService { @Override @Transactional(rollbackFor = Exception.class) public void preview(HttpServletResponse response, Map whereJson) throws IOException { -/* String formula_id = MapUtil.getStr(whereJson, "formula_id"); + + String formula_id = MapUtil.getStr(whereJson, "formula_id"); WQLObject formMstTab = WQLObject.getWQLObject("PDM_BI_Formula"); // 配方主表 WQLObject formDtlTab = WQLObject.getWQLObject("PDM_BI_FormulaDtl"); // 配方明细表 + WQLObject workTab = WQLObject.getWQLObject("PDM_BI_WorkOrder"); // 工令表 + WQLObject deptTab = WQLObject.getWQLObject("sys_dept"); // 部门表 WQLObject storageTab = WQLObject.getWQLObject("tool_local_storage"); // 文件表 WQLObject materTab = WQLObject.getWQLObject("md_me_materialbase"); // 物料表 + WQLObject materExtTab = WQLObject.getWQLObject("MD_ME_ProducMaterialExt"); // 成品扩展属性表 + WQLObject paraTab = WQLObject.getWQLObject("PDM_BI_WorkProcedureParaProduct"); // 工艺参数表 + WQLObject workTaskTab = WQLObject.getWQLObject("PDM_BI_WorkTask"); // 工令工序任务表 WQLObject classTab = WQLObject.getWQLObject("md_pb_classstandard"); // 分类表 JSONObject jsonMst = formMstTab.query("formula_id ='" + formula_id + "'").uniqueResult(0); String material_id = jsonMst.getString("material_id"); JSONObject jsonMater = materTab.query("material_id ='" + material_id + "'").uniqueResult(0); - JSONObject jsonStor = storageTab.query("source_bill_id = '" + material_id + "'").uniqueResult(0); - if (ObjectUtil.isEmpty(jsonStor)) throw new BadRequestException("此物料模板不存在,请先上传模板"); + JSONObject jsonWork = workTab.query("workorder_id = '" + jsonMst.getString("workorder_id") + "'").uniqueResult(0); + JSONObject jsonDept = deptTab.query("dept_id = '" + jsonWork.getString("org_id") + "'").uniqueResult(0); + JSONObject jsonMaterExt = materExtTab.query("material_id = '" + material_id + "'").uniqueResult(0); + JSONObject json98jj = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM001'").uniqueResult(0); + JSONObject json92jj = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM002'").uniqueResult(0); // 设置文件名和防止乱码现象 String fileName = URLEncoder.encode(jsonMater.getString("material_code")+"---"+jsonMst.getString("pcsn"), "UTF-8"); response.setHeader("Content-Disposition", "attachment; filename*=UTf-8''"+fileName+".xlsx"); // 获取输出流 ServletOutputStream outputStream = response.getOutputStream(); - String template = jsonStor.getString("path"); + String template = SpringContextHolder.getBean(ParamServiceImpl.class).findByCode("EXCEL_PATH").getValue(); +// String template = "D:\\work\\工艺控制卡模板.xlsx"; // 创建模板工作簿 ExcelWriter workBook = EasyExcel.write(outputStream, DataDto.class).withTemplate(template).build(); // 获取第一个sheet WriteSheet sheet = EasyExcel.writerSheet().build(); - // 查询配方明细 - ArrayList> data = new ArrayList<>(); - JSONArray dtlArr = formDtlTab.query("formula_id ='" + formula_id + "'").getResultJSONArray(0); - for (int i = 0; i < dtlArr.size(); i++) { - JSONObject json = dtlArr.getJSONObject(i); - String material_id1 = json.getString("material_id"); - // 判断明细是物料明细还是分类 - JSONObject jsonClassOrMater = new JSONObject(); - if (StrUtil.equals(json.getString("material_type"), "01")) { - jsonClassOrMater = materTab.query("material_id ='"+material_id1+"'").uniqueResult(0); - } else { - jsonClassOrMater = classTab.query("class_id = '"+material_id1+"'").uniqueResult(0); - } - // 判断物料是原料还是辅料 - boolean is_YL = false; - boolean is_FL = false; - if (StrUtil.equals(json.getString("material_type"), "01")) { - is_YL = materialbaseService.isAlongMaterType(MaterOptTypeEnum.YL.getCode(), material_id1, null); - is_FL = materialbaseService.isAlongMaterType(MaterOptTypeEnum.FL.getCode(), material_id1, null); - } else { - String class_idStr = MaterOptTypeEnum.YL.getClass_idStr(); - String class_ids = classstandardService.getAllChildIdStr(class_idStr); - if (class_ids.contains(material_id1)) { - is_YL = true; - } - String class_idStr2 = MaterOptTypeEnum.FL.getClass_idStr(); - String class_ids2 = classstandardService.getAllChildIdStr(class_idStr2); - if (class_ids2.contains(material_id1)) { - is_FL = true; - } - } + String classIdsFl = classstandardService.getAllChildIdStr(MaterOptTypeEnum.FL.getClass_idStr()); + // 单组填充 + String planstart_time = jsonMst.getString("create_time"); - if (is_YL) { - HashMap mapYL = new HashMap<>(); - if (StrUtil.equals(json.getString("material_type"), "01")) { - mapYL.put("raw_material_name",jsonClassOrMater.getString("material_name")); - } else { - mapYL.put("raw_material_name",jsonClassOrMater.getString("class_name")); - } - mapYL.put("raw_pcsn",json.getString("pcsn")); - mapYL.put("raw_weight",json.getString("formula_qty")); - data.add(mapYL); + HashMap oneMap = new HashMap<>(); + // 工令相关 + oneMap.put("material_code", jsonMater.getString("material_code")); + if (ObjectUtil.isNotEmpty(jsonDept)) oneMap.put("dept_name", jsonDept.getString("name")); + if (ObjectUtil.isNotEmpty(jsonMaterExt)) oneMap.put("old_mark", jsonMaterExt.getString("old_mark")); + oneMap.put("pcsn", jsonMst.getString("pcsn")); + oneMap.put("weight",NumberUtil.round(jsonWork.getString("workorder_qty"),3)); + if (ObjectUtil.isNotEmpty(planstart_time)) { + oneMap.put("date_time", planstart_time.substring(0,10)); + } + // 球磨相关 + oneMap.put("ball_rate",NumberUtil.mul(jsonWork.getDoubleValue("workorder_qty"),jsonMaterExt.getDoubleValue("ball_rate"))); + oneMap.put("liquid_rate",NumberUtil.mul(jsonWork.getDoubleValue("workorder_qty"),jsonMaterExt.getDoubleValue("liquid_rate"))); + if (ObjectUtil.isNotEmpty(json98jj)) { + if (StrUtil.equals(json98jj.getString("value"), "1.00")) { + oneMap.put("para_name", json98jj.getString("para_name")); } - if (is_FL) { - HashMap mapFL = new HashMap<>(); - if (StrUtil.equals(json.getString("material_type"), "01")) { - mapFL.put("fu_material_name",jsonClassOrMater.getString("material_name")); - } else { - mapFL.put("fu_material_name",jsonClassOrMater.getString("class_name")); - } - mapFL.put("fu_pcsn",json.getString("pcsn")); - mapFL.put("fu_weight",json.getString("formula_qty")); - data.add(mapFL); + } + if (ObjectUtil.isNotEmpty(json92jj)) { + if (StrUtil.equals(json92jj.getString("value"), "1.00")) { + oneMap.put("para_name", json92jj.getString("para_name")); + } + } + JSONObject jsonQM13 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM013'").uniqueResult(0); + JSONObject jsonQM14 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM014'").uniqueResult(0); + JSONObject jsonPW02 = paraTab.query("material_id = '" + material_id + "' and para_code = 'PW002'").uniqueResult(0); + JSONObject jsonPW03 = paraTab.query("material_id = '" + material_id + "' and para_code = 'PW003'").uniqueResult(0); + JSONObject jsonPW04 = paraTab.query("material_id = '" + material_id + "' and para_code = 'PW004'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonQM13)) oneMap.put("number_1", jsonQM13.getString("value")); + if (ObjectUtil.isNotEmpty(jsonQM14)) oneMap.put("number_2", jsonQM14.getString("value")); + if (ObjectUtil.isNotEmpty(jsonPW02)) { + oneMap.put("number_8", jsonPW02.getString("value")); + } + if (ObjectUtil.isNotEmpty(jsonPW03)) { + String value = jsonPW03.getString("value"); + String value_1 = NumberUtil.sub(value, "100").toString(); + String value_2 = NumberUtil.add(value, "100").toString(); + oneMap.put("number_4", value); + oneMap.put("number_5", value_1 + "~" + value_2); + } + if (ObjectUtil.isNotEmpty(jsonPW04)) { + String value = jsonPW04.getString("value"); + + String value_1 = NumberUtil.sub(value, "3").toString(); + String value_2 = NumberUtil.add(value, "2").toString(); + String value_3 = NumberUtil.sub(value, "5").toString(); + String value_4 = NumberUtil.add(value, "7").toString(); + + oneMap.put("number_6", value_1 + "-" + value_2); + oneMap.put("number_7", value_3 + "~" + value_4); + } + + // 系列设备 + JSONObject jsonWorkTask_QM = workTaskTab.query("workorder_id = '" + jsonWork.getString("workorder_id") + "' and workprocedure_code = 'GX002'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonWorkTask_QM)) { + HashMap map1 = new HashMap<>(); + map1.put("flag", "3"); + map1.put("product_series_id", jsonWorkTask_QM.getString("product_series_id")); + map1.put("workprocedure_id", jsonWorkTask_QM.getString("workprocedure_id")); + JSONObject jsonDevice1 = WQL.getWO("QPF_POINTCARD01").addParamMap(map1).process().uniqueResult(0); + map1.put("flag", "4"); + JSONObject jsonDevice2= WQL.getWO("QPF_POINTCARD01").addParamMap(map1).process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonDevice1) && ObjectUtil.isNotEmpty(jsonDevice2)) { + String device_code_1 = jsonDevice1.getString("device_code").substring(4, 6); + String device_code_2 = jsonDevice2.getString("device_code").substring(4, 6); + oneMap.put("device1", device_code_1 + "-" + device_code_2); } } - // 多组填充 - workBook.fill(data, sheet); - // 需手动关流 - workBook.finish();*/ - String formula_id = MapUtil.getStr(whereJson, "formula_id"); + JSONObject jsonWorkTask_PW = workTaskTab.query("workorder_id = '" + jsonWork.getString("workorder_id") + "' and workprocedure_code = 'GX003'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonWorkTask_PW)) { + HashMap map2 = new HashMap<>(); + map2.put("flag", "5"); + map2.put("product_series_id", jsonWorkTask_PW.getString("product_series_id")); + map2.put("workprocedure_id", jsonWorkTask_PW.getString("workprocedure_id")); + JSONObject jsonDevice3= WQL.getWO("QPF_POINTCARD01").addParamMap(map2).process().uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonDevice3)) oneMap.put("device2",jsonDevice3.getString("device_name")); + } + + // 球磨 + oneMap.put("ball_speed", jsonMaterExt.getString("ball_speed")); + JSONObject jsonQM08 = paraTab.query("material_id = '" + material_id + "' and para_code = 'QM008'").uniqueResult(0); + if (ObjectUtil.isNotEmpty(jsonQM08)) oneMap.put("number_3", jsonQM08.getString("value")); + oneMap.put("create_name", jsonMst.getString("create_name")); + + // 查询配方明细-辅料 + HashMap map = new HashMap<>(); + map.put("flag", "1"); + map.put("classIds", classIdsFl); + map.put("formula_id", formula_id); + JSONArray flArr = WQL.getWO("QPF_POINTCARD01").addParamMap(map).process().getResultJSONArray(0); + + ArrayList> flData = new ArrayList<>(); + if (ObjectUtil.isNotEmpty(flArr)) { + for (int i = 0; i < flArr.size(); i++) { + HashMap mapFL = new HashMap<>(); + JSONObject jsonObject = flArr.getJSONObject(i); + mapFL.put("fl_material_name",jsonObject.getString("material_name")); + mapFL.put("fl_weight",NumberUtil.round(jsonObject.getString("formula_qty"),3)); + flData.add(mapFL); + } + } + workBook.fill(oneMap, sheet); + workBook.fill(new FillWrapper("data", flData), sheet); +// workBook.fill(ylData, sheet); + workBook.finish(); + +/* String formula_id = MapUtil.getStr(whereJson, "formula_id"); WQLObject formMstTab = WQLObject.getWQLObject("PDM_BI_Formula"); // 配方主表 WQLObject formDtlTab = WQLObject.getWQLObject("PDM_BI_FormulaDtl"); // 配方明细表 @@ -673,7 +736,7 @@ public class FormulaServiceImpl implements FormulaService { workBook.fill(new FillWrapper("data1", ylData), sheet); workBook.fill(new FillWrapper("data2", flData), sheet); // workBook.fill(ylData, sheet); - workBook.finish(); + workBook.finish();*/ } @Override diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_POINTCARD01.wql b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_POINTCARD01.wql index fb2cd2a3..48465e9c 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_POINTCARD01.wql +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/wql/QPF_POINTCARD01.wql @@ -16,6 +16,8 @@ 输入.flag TYPEAS s_string 输入.formula_id TYPEAS s_string 输入.classIds TYPEAS f_string + 输入.product_series_id TYPEAS s_string + 输入.workprocedure_id TYPEAS s_string [临时表] --这边列出来的临时表就会在运行期动态创建 @@ -49,7 +51,7 @@ PDM_BI_FormulaDtl dtl INNER JOIN md_me_materialbase mater ON dtl.material_id = mater.material_id WHERE - 1=1 + dtl.is_need_manage = '0' OPTION 输入.formula_id <> "" dtl.formula_id = 输入.formula_id @@ -69,7 +71,7 @@ PDM_BI_FormulaDtl dtl INNER JOIN md_pb_classstandard class ON dtl.material_id = class.class_id WHERE - 1=1 + dtl.is_need_manage = '0' OPTION 输入.formula_id <> "" dtl.formula_id = 输入.formula_id @@ -129,6 +131,84 @@ ORDER BY seq_no ASC LIMIT 8,100 + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "3" + QUERY + SELECT + workDevice.*, + device.device_code + FROM + MPS_BD_CapacityTemplateWorkDevice workDevice + LEFT JOIN EM_BI_DeviceInfo device ON workDevice.device_id = device.device_id + WHERE + device.is_produceuse = '1' + AND device.is_active = '1' + + OPTION 输入.product_series_id <> "" + workDevice.product_series_id = 输入.product_series_id + ENDOPTION + + OPTION 输入.workprocedure_id <> "" + workDevice.workprocedure_id = 输入.workprocedure_id + ENDOPTION + + order by device.device_code ASC + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "4" + QUERY + SELECT + workDevice.*, + device.device_code + FROM + MPS_BD_CapacityTemplateWorkDevice workDevice + LEFT JOIN EM_BI_DeviceInfo device ON workDevice.device_id = device.device_id + WHERE + device.is_produceuse = '1' + AND device.is_active = '1' + + OPTION 输入.product_series_id <> "" + workDevice.product_series_id = 输入.product_series_id + ENDOPTION + + OPTION 输入.workprocedure_id <> "" + workDevice.workprocedure_id = 输入.workprocedure_id + ENDOPTION + + order by device.device_code DESC + + ENDSELECT + ENDQUERY + ENDIF + + IF 输入.flag = "5" + QUERY + SELECT + workDevice.*, + device.device_name + FROM + MPS_BD_CapacityTemplateWorkDevice workDevice + LEFT JOIN EM_BI_DeviceInfo device ON workDevice.device_id = device.device_id + WHERE + device.is_produceuse = '1' + AND device.is_active = '1' + + OPTION 输入.product_series_id <> "" + workDevice.product_series_id = 输入.product_series_id + ENDOPTION + + OPTION 输入.workprocedure_id <> "" + workDevice.workprocedure_id = 输入.workprocedure_id + ENDOPTION + + order by device.device_code ASC + ENDSELECT ENDQUERY ENDIF \ No newline at end of file From 6f509b0ac29c778c50ee6b89b954f61ca8a8c4d3 Mon Sep 17 00:00:00 2001 From: zds <2388969634@qq.com> Date: Sat, 9 Jul 2022 20:44:09 +0800 Subject: [PATCH 7/7] =?UTF-8?q?=E4=BF=AE=E6=94=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../nl/wms/pf/service/impl/FormulaServiceImpl.java | 1 + .../wms/pf/service/impl/InitformulaServiceImpl.java | 12 ++++++++++++ .../views/wms/pdm/produce/worktask/print2Dialog.vue | 3 ++- mes/qd/src/views/wms/pf/formula/DivDialog.vue | 11 +++++++++++ mes/qd/src/views/wms/pf/formula/ViewDialog.vue | 12 ++++++++++++ mes/qd/src/views/wms/pf/initformula/DivDialog.vue | 13 ++++++++++++- 6 files changed, 50 insertions(+), 2 deletions(-) diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java index 4133edac..9f36c0b7 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/FormulaServiceImpl.java @@ -239,6 +239,7 @@ public class FormulaServiceImpl implements FormulaService { PDM_BI_FormulaDtl.insert(jo); } Formula.put("masterbucket_qty",masterbucket_qty+""); + Formula.put("ball_time",whereJson.getString("ball_time")); Formula.put("extadd_qty",extadd_qty+""); Formula.put("is_audit", "1"); Formula.put("audit_id",currentUserId); diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/InitformulaServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/InitformulaServiceImpl.java index 1a15a9e8..e148f7be 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/InitformulaServiceImpl.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/pf/service/impl/InitformulaServiceImpl.java @@ -293,6 +293,7 @@ public class InitformulaServiceImpl implements InitformulaService { Formula_01.put("total_qty","0"); Formula_01.put("status","10"); Formula_01.put("is_delete", "0"); + Formula_01.put("ball_time", whereJson.getString("ball_time")); Formula_01.put("create_id", currentUserId); Formula_01.put("create_name", nickName); Formula_01.put("create_time", now); @@ -400,6 +401,7 @@ public class InitformulaServiceImpl implements InitformulaService { Formula_02.put("total_qty","0"); Formula_02.put("status","10"); Formula_02.put("is_delete", "0"); + Formula_02.put("ball_time", whereJson.getString("ball_time")); Formula_02.put("create_id", currentUserId); Formula_02.put("create_name", nickName); Formula_02.put("create_time", now); @@ -576,6 +578,7 @@ public class InitformulaServiceImpl implements InitformulaService { Formula_01.put("total_qty","0"); Formula_01.put("status","20"); Formula_01.put("is_delete", "0"); + Formula_01.put("ball_time", whereJson.getString("ball_time")); Formula_01.put("create_id", currentUserId); Formula_01.put("create_name", nickName); Formula_01.put("create_time", now); @@ -684,6 +687,7 @@ public class InitformulaServiceImpl implements InitformulaService { Formula_02.put("total_qty","0"); Formula_02.put("status","20"); Formula_02.put("is_delete", "0"); + Formula_02.put("ball_time", whereJson.getString("ball_time")); Formula_02.put("create_id", currentUserId); Formula_02.put("create_name", nickName); Formula_02.put("create_time", now); @@ -806,6 +810,7 @@ public class InitformulaServiceImpl implements InitformulaService { @Override @Transactional(rollbackFor = Exception.class) public JSONObject getform(Map json) { + WQLObject pdm_bi_workprocedureparaproduct = WQLObject.getWQLObject("pdm_bi_workprocedureparaproduct"); WQLObject MD_ME_ProductMaterialExt = WQLObject.getWQLObject("MD_ME_ProducMaterialExt"); WQLObject md_me_materialbase = WQLObject.getWQLObject("md_me_materialbase"); WQLObject PDM_BI_WorkOrder = WQLObject.getWQLObject("PDM_BI_WorkOrder"); @@ -824,7 +829,14 @@ public class InitformulaServiceImpl implements InitformulaService { throw new BadRequestException("当前成品查询不到成品物料扩展信息!"); } JSONObject mater = md_me_materialbase.query("material_id ='"+material_id+"'").uniqueResult(0); + + JSONObject materPa = pdm_bi_workprocedureparaproduct.query("para_code ='QM008' and workprocedure_code='GX002' and material_id ='"+material_id+"'").uniqueResult(0); + + if(materPa == null ){ + throw new BadRequestException("当前成品查询不到球磨工艺参数球磨时间!"); + } workorder.put("formula_type","00"); + workorder.put("ball_time",materPa.getDouble("value")); workorder.put("waste_limit_down",material.getString("waste_limit_down")); workorder.put("waste_limit_up",material.getString("waste_limit_up")); workorder.put("c_balance",material.getString("c_balance")); diff --git a/mes/qd/src/views/wms/pdm/produce/worktask/print2Dialog.vue b/mes/qd/src/views/wms/pdm/produce/worktask/print2Dialog.vue index 68411482..198b3444 100644 --- a/mes/qd/src/views/wms/pdm/produce/worktask/print2Dialog.vue +++ b/mes/qd/src/views/wms/pdm/produce/worktask/print2Dialog.vue @@ -65,7 +65,7 @@