From 8c3e1d0a3a57a46a87d7f62ecca241116ee5cd3c Mon Sep 17 00:00:00 2001 From: zhangzhiqiang Date: Mon, 24 Apr 2023 19:08:57 +0800 Subject: [PATCH] =?UTF-8?q?add:=E7=89=A9=E6=96=99=E9=A1=B9=E7=82=B9?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../org/nl/common/handler/LockProcess.java | 7 + .../org/nl/modules/system/util/CodeUtil.java | 8 +- .../org/nl/wms/basedata/master/wql/mdme.xls | Bin 70656 -> 70656 bytes .../MdQinspectionPointController.java | 66 ++++ .../MdQlMaterialinspectionController.java | 87 +++++ .../report/MdMeInspectionsheetController.java | 21 ++ .../IMdQlInspectionpointService.java | 24 ++ .../IMdQlMaterialinspectionService.java | 22 ++ .../inspection/dao/MdQlInspectionpoint.java | 87 +++++ .../dao/MdQlMaterialinspection.java | 81 +++++ .../TypeHandler/InspectionArrayHandler.java | 44 +++ .../dao/mapper/MdQlInspectionpointMapper.java | 16 + .../mapper/MdQlMaterialinspectionMapper.java | 22 ++ .../mapper/MdQlMaterialinspectionMapper.xml | 27 ++ .../inspection/dto/InspectionQuery.java | 19 ++ .../dto/MaterialInspectionQuery.java | 15 + .../dto/MdQlMaterialinspectionDto.java | 83 +++++ .../impl/MdQlInspectionpointServiceImpl.java | 48 +++ .../MdQlMaterialinspectionServiceImpl.java | 55 +++ .../report/IMdMeInspectionsheetService.java | 16 + .../report/dao/MdMeInspectionsheet.java | 90 +++++ .../dao/mapper/MdMeInspectionsheetMapper.java | 16 + .../dao/mapper/MdMeInspectionsheetMapper.xml | 5 + .../impl/MdMeInspectionsheetServiceImpl.java | 21 ++ mes/qd/src/views/wms/ql/inspection/index.vue | 142 ++++++++ .../wms/ql/inspection/inspectionpoint.js | 27 ++ .../wms/ql/materialInspection/AddDialog.vue | 320 ++++++++++++++++++ .../views/wms/ql/materialInspection/index.vue | 142 ++++++++ .../materialInspectionpoint.js | 35 ++ 29 files changed, 1544 insertions(+), 2 deletions(-) create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/common/handler/LockProcess.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/inspection/MdQinspectionPointController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/inspection/MdQlMaterialinspectionController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/report/MdMeInspectionsheetController.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/IMdQlInspectionpointService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/IMdQlMaterialinspectionService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/MdQlInspectionpoint.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/MdQlMaterialinspection.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/TypeHandler/InspectionArrayHandler.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlInspectionpointMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlMaterialinspectionMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlMaterialinspectionMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/InspectionQuery.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/MaterialInspectionQuery.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/MdQlMaterialinspectionDto.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/impl/MdQlInspectionpointServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/impl/MdQlMaterialinspectionServiceImpl.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/IMdMeInspectionsheetService.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/MdMeInspectionsheet.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/mapper/MdMeInspectionsheetMapper.java create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/mapper/MdMeInspectionsheetMapper.xml create mode 100644 mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/impl/MdMeInspectionsheetServiceImpl.java create mode 100644 mes/qd/src/views/wms/ql/inspection/index.vue create mode 100644 mes/qd/src/views/wms/ql/inspection/inspectionpoint.js create mode 100644 mes/qd/src/views/wms/ql/materialInspection/AddDialog.vue create mode 100644 mes/qd/src/views/wms/ql/materialInspection/index.vue create mode 100644 mes/qd/src/views/wms/ql/materialInspection/materialInspectionpoint.js diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/common/handler/LockProcess.java b/mes/hd/nladmin-system/src/main/java/org/nl/common/handler/LockProcess.java new file mode 100644 index 00000000..5876e830 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/common/handler/LockProcess.java @@ -0,0 +1,7 @@ +package org.nl.common.handler; + +@FunctionalInterface +public +interface LockProcess { + void process(); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java b/mes/hd/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java index 22aaaac9..66e8fc60 100644 --- a/mes/hd/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java +++ b/mes/hd/nladmin-system/src/main/java/org/nl/modules/system/util/CodeUtil.java @@ -9,11 +9,15 @@ import java.util.HashMap; public class CodeUtil{ public static String getNewCode(String ruleCode) { - + final String[] code = {""}; HashMap map = new HashMap<>(); map.put("flag", "1"); map.put("code", ruleCode); GenCodeService service = SpringContextHolder.getBean(GenCodeServiceImpl.class); - return service.codeDemo(map); + String codeId = service.queryIdByCode(ruleCode); + RedissonUtils.lock(() -> { + code[0] = service.codeDemo(map); + }, codeId, 3); + return code[0]; } } 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 d452db83840df2a152187d43e532811e3ad3ae40..cf19a466810686a97bd8b592b0037d44e8aa0348 100644 GIT binary patch delta 2074 zcmZWoYfKzf6h3#EnO#`+G5eZ*@Yr2YRw&u>utLBBNn`yX4J4vetz>P$ZR4Zuj|LS2 zs0~Wd6fZ5cHnHd*Qj};$B~7e_27a1|Au(!gT1|gwS}mqx(=^d@@0}?O>?Sk!eBXD@ z{qDJE2B)OKDe1FOnJy>=bV?4;aV1JGD^ z^EKkP5NlHcbQ#wLN|^4F0(#cIL#CJV=jbQ-kJ3J0EVbl_!S5MFAym~?4SR<0OP7U;hb=S6f)R;k47r! zaZj4W>7pkcDK?eMkOA0^;T%^MQI}VXJYcfpJv|qSFBF6H5NDJ0VXsE+qaEHfxu5P) z_jMui3$7E?<&Tke+T!=i3hu;K zTBMzz?=Xh!XA^GhxNN5fIh)+X%20*uBxj=ly{fl44slS5xmS_9WaieXYI7WUqjD~< zOag4*N|q~FC70(4wkn{Z%S_ZSJGnZ;)o5{pTCiiBjcj7`c`mY8YhLrq4j!*?HSV*) zmvEg3GIf10jZYHr%c8~*M-$;-4mScHQ6mzR#Z|$rW+^kVGEDd zkY5(r2Scnj_O#F17rW@V$@Z#*_tfZGK4+IWn*eAua;+WLcu%np;-pnP9>dth`;y^t z6~=BJk7>p!vm2eT$(ZMCYEu`*jjXKYT6`Kk4l^h1VRNT;9uKX1X0Y?}Iu|&f8%`|P zt2{@I_~ksVRwK-F`Pw8{Zl)!|_H9A6(QB^8xiKffqMqbx)*qo>;%fXB%o)6=W-~#e z8@eS~=GkOlFnVdQ!gYqT_$`=sZpj_vEOx-WRm;BfQFf*w?4{9pu3q;oSia{(jJd@7 zHqT(pkGPli7}nDF#ePu8ZrYM8ksj}OY?Nk``-zWE)>qK)lb!U5k}X8z(d#9hx>7oz z4OHWo{~%DC3Mwc->YiPAI}Y0rtmdH43f6MazXsObQwFSH4JsoLggmom4OgH3sBPwiYYjqeXb_`oVR@?;pS`+!yHor`)wEL zP3&iw8xBu1EQe&@O7;i4jzB(q_Z35IWZ$9pyIH*Bl8969%w%E;dIdtn&4t@G*S1R|TJ%AMeex&nn)F{be)Q-@`6MyU1-z<07 z?vCMlRd>Iea>%zo26$C(IB~;o`}HisXX%-9ZF=eSA)8$NB|uXD;L{GLlKmE7^k+uv zXU;8@Dg`S5ZL1g`(0{r-8*x`)I{^q(;9rvT4{z@#@7*~mT?ub*&`;l4$}7D1S49&n jl4ev5UOV>UNcy5!&pUpP9iAPL$)9%e$LuREGOYX$CSkmS delta 2091 zcmZWqZ%kWN6h9aGUMbMh*S_|(1=g0LRv1=@P`nZ^(E1Br=7*>w8N=mdk)kY)4S``#NoR+8I$&hK~5 z`Q3BRE&bDu{%Oaj!;-WJ09$Zg(r{W*aZwIosWXIsNJZFB`+BE}pU4sPID=RuSL2)% z#INNb4io+Z@mJ&`%pu-{tm2FGz1^YeozBN4>~c3@ox2Bn^P5;Ho_42bZ7$I8hC75i z6&DtJULwzkr;*mnK8@BtJ$#i4QsGjP^v^9Xz~{8#AIGNHFQ9_R5Z*)%fsQH4c;0v( zID#g6s6b;;e5)YE68IJ6DY2N}K^owZD8QUx-ivOp7LHr!SVzZ&=!Gaa9u#OfKJ3+4 z44?L<*j>0wiD9$Hg|psSd|wICdE&x;SCQF0SdqsypI7)PBwr)D8=HM8947vtZwL7< z`%)~7Zhs-mV1wT;$yAf?v~Y&e`9fs!PnMy}N!tu&1WMXBpb}IPIwjBuK#$_Bk3kIN zs8DUhE?BWOic%jV+|29}nVHJ#R`6H@m0cp%Kr2;^RHh?-DNnG|f=wbeunlxnpy4~v zd=X11<(k+0QjV~f1)J(@&}FEO2ROSnkfN2Te#yu&AiVKVAe*22vjEo~14x?M&AT+T zU$xN9cGSqE1T8grqK6H_R)T)Xh|UCgZt7{Ty)RCq;}+VZFws-9Yxx3Q5Gc)3of&KI zxF&i^eK1a1DeO_Q-J&mPVONsv5%#ENp0abJ5((@NURtMu=5xb|4fLvrQNn&HSFn{Z*Ic$X3AUSQ2=lrP#5Q{^*fclRB-q$f zg3bG5uoncI-hwrQx7mCqSY$)D9JYD3&@Qu=CTgfo3zXi1b?3I&QGrqitXs9!osaM{ z4Nx!5&I|Usw_tnE@j|YW?%O(pIX}j|v=mY)SKVN0Fb=U;PkoBdpwKVX?c6m+?)#`>*zPrCMAn>JiE30V z#1jvx!J;*Yr{;CzP>gMlZo>0Vs`?jo|3>;Q4baR%7GpbK7#{>LTsy{X2ODbN)46io z)4_e7F~j$A`++^L^&a2BeK2kKe%sD^;`_MI0|!3lzHHWcq~uVbZ4mO|n={;##rAfe zYUg$x|K~_{a%8S^GA9I+SlwEol{*UnmJxOo&~BY*2Fhs$!=|5~c}nm4xt{4Y=c*Hux(v{yXRah89vAR8%D_c` zl7#Gvs-OGs35NGSn{#q?!jb&w%@zHf)rH*R*Dn>{xOI`$6TAO|{cVk@FU1~S-S*e& TD`$^M?3$DPdiJ234axrlG-=I{ diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/inspection/MdQinspectionPointController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/inspection/MdQinspectionPointController.java new file mode 100644 index 00000000..6ac51a82 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/inspection/MdQinspectionPointController.java @@ -0,0 +1,66 @@ +package org.nl.wms.ql.controller.inspection; + + +import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSONObject; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.SecurityUtils; +import org.nl.wms.ql.service.inspection.IMdQlInspectionpointService; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; +import org.nl.wms.ql.service.inspection.dto.InspectionQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.web.bind.annotation.*; + +import java.util.Date; +import java.util.List; + +/** + *

+ * 物料检测项点 前端控制器 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@RestController +@RequestMapping("/api/mdQlInspectionpoint") +public class MdQinspectionPointController { + + @Autowired + private IMdQlInspectionpointService inspectionpointService; + + @GetMapping() + public ResponseEntity query(InspectionQuery query, PageQuery pageQuery){ + return new ResponseEntity<>(TableDataInfo.build(inspectionpointService.page(query,pageQuery)),HttpStatus.OK); + } + + @PostMapping("/create") + public ResponseEntity create(@RequestBody JSONObject req){ + Assert.notNull(req,"参数不能为空"); + inspectionpointService.create(req); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/update") + public ResponseEntity update(@RequestBody JSONObject req){ + Assert.notNull(req,"参数不能为空"); + MdQlInspectionpoint form = req.toJavaObject(MdQlInspectionpoint.class); + form.setUpdateId(SecurityUtils.getCurrentUserId()); + form.setUpdateName(SecurityUtils.getCurrentNickName()); + form.setUpdateTime(new Date()); + inspectionpointService.updateById(form); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/delete") + public ResponseEntity delete(@RequestBody List ids){ + Assert.notNull(ids,"参数不能为空"); + inspectionpointService.removeByIds(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/inspection/MdQlMaterialinspectionController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/inspection/MdQlMaterialinspectionController.java new file mode 100644 index 00000000..2b72dfa2 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/inspection/MdQlMaterialinspectionController.java @@ -0,0 +1,87 @@ +package org.nl.wms.ql.controller.inspection; + + +import cn.dev33.satoken.annotation.SaIgnore; +import cn.hutool.core.lang.Assert; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import com.google.common.collect.Lists; +import org.jetbrains.annotations.NotNull; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.common.exception.BadRequestException; +import org.nl.modules.wql.util.SpringContextHolder; +import org.nl.wms.ql.service.inspection.IMdQlInspectionpointService; +import org.nl.wms.ql.service.inspection.IMdQlMaterialinspectionService; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; +import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection; +import org.nl.wms.ql.service.inspection.dto.MaterialInspectionQuery; +import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.http.HttpStatus; +import org.springframework.http.ResponseEntity; +import org.springframework.transaction.PlatformTransactionManager; +import org.springframework.transaction.TransactionDefinition; +import org.springframework.transaction.TransactionStatus; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.transaction.support.DefaultTransactionDefinition; +import org.springframework.util.CollectionUtils; +import org.springframework.web.bind.annotation.*; + +import java.util.*; +import java.util.function.BiFunction; +import java.util.function.Consumer; +import java.util.function.Function; +import java.util.stream.Collectors; + +/** + *

+ * 物料检测项点 前端控制器 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@RestController +@RequestMapping("/api/materialInspection") +public class MdQlMaterialinspectionController { + + @Autowired + private IMdQlInspectionpointService inspectionpointService; + @Autowired + private IMdQlMaterialinspectionService materialinspectionService; + + + @GetMapping("/mst") + @SaIgnore + public ResponseEntity query(MaterialInspectionQuery query, PageQuery pageQuery){ + return new ResponseEntity<>(TableDataInfo.build(materialinspectionService.pageQuery(query,pageQuery)),HttpStatus.OK); + } + + @PostMapping("/create") + public ResponseEntity create(@RequestBody JSONObject req){ + Assert.notNull(req,"参数不能为空"); + materialinspectionService.create(req); + return new ResponseEntity<>(HttpStatus.OK); + } + @PostMapping("/update") + public ResponseEntity update(@RequestBody JSONObject req){ + Assert.notNull(req,"参数不能为空"); + MdQlMaterialinspection form = req.toJavaObject(MdQlMaterialinspection.class); + form.setUpdateId(SecurityUtils.getCurrentUserId()); + form.setUpdateName(SecurityUtils.getCurrentNickName()); + form.setUpdateTime(new Date()); + materialinspectionService.updateById(form); + return new ResponseEntity<>(HttpStatus.OK); + } + + @PostMapping("/delete") + public ResponseEntity delete(@RequestBody List ids){ + Assert.notNull(ids,"参数不能为空"); + inspectionpointService.removeByIds(ids); + return new ResponseEntity<>(HttpStatus.OK); + } + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/report/MdMeInspectionsheetController.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/report/MdMeInspectionsheetController.java new file mode 100644 index 00000000..5c32a740 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/controller/report/MdMeInspectionsheetController.java @@ -0,0 +1,21 @@ +package org.nl.wms.ql.controller.report; + + +import org.springframework.web.bind.annotation.RequestMapping; + +import org.springframework.web.bind.annotation.RestController; + +/** + *

+ * 质检报告 前端控制器 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@RestController +@RequestMapping("/mdMeInspectionsheet") +public class MdMeInspectionsheetController { + +} + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/IMdQlInspectionpointService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/IMdQlInspectionpointService.java new file mode 100644 index 00000000..69b1989b --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/IMdQlInspectionpointService.java @@ -0,0 +1,24 @@ +package org.nl.wms.ql.service.inspection; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; +import org.nl.wms.ql.service.inspection.dto.InspectionQuery; + +/** + *

+ * 检测项点 服务类 + *

+ * + * @author generator + * @since 2023-04-23 + */ +public interface IMdQlInspectionpointService extends IService { + + void create(JSONObject form); + + Page page(InspectionQuery query, PageQuery pageQuery); + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/IMdQlMaterialinspectionService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/IMdQlMaterialinspectionService.java new file mode 100644 index 00000000..f05295b2 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/IMdQlMaterialinspectionService.java @@ -0,0 +1,22 @@ +package org.nl.wms.ql.service.inspection; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection; +import org.nl.wms.ql.service.inspection.dto.MaterialInspectionQuery; + +/** + *

+ * 物料检测项点 服务类 + *

+ * + * @author generator + * @since 2023-04-23 + */ +public interface IMdQlMaterialinspectionService extends IService { + void create(JSONObject form); + Page pageQuery(MaterialInspectionQuery query, PageQuery pageQuery); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/MdQlInspectionpoint.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/MdQlInspectionpoint.java new file mode 100644 index 00000000..fb2c75c2 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/MdQlInspectionpoint.java @@ -0,0 +1,87 @@ +package org.nl.wms.ql.service.inspection.dao; + +import com.baomidou.mybatisplus.annotation.IdType; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.io.Serializable; +import java.util.Date; + +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 检测项点 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("md_ql_inspectionpoint") +public class MdQlInspectionpoint implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 项目id + */ + @TableId(value = "inspection_id", type = IdType.NONE) + private String inspectionId; + + /** + * 项目编码 + */ + private String inspectionCode; + + /** + * 项目名称 + */ + private String name; + + /** + * 检测类型 + */ + private String inspectionType; + + /** + * 标准值 + */ + private String standard; + + /** + * 创建人姓名 + */ + private String createName; + + /** + * 创建时间 + */ + private Date createTime; + /** + * 创建人 + */ + private String createId; + + /** + * 修改人 + */ + private String updateId; + + /** + * 修改人姓名 + */ + private String updateName; + /** + * 备注 + */ + private String remark; + + /** + * 修改时间 + */ + private Date updateTime; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/MdQlMaterialinspection.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/MdQlMaterialinspection.java new file mode 100644 index 00000000..3f146c32 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/MdQlMaterialinspection.java @@ -0,0 +1,81 @@ +package org.nl.wms.ql.service.inspection.dao; + +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 物料检测项点 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("md_ql_materialinspection") +public class MdQlMaterialinspection implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 物料id + */ + @TableId(value = "material_code") + private String material_code; + /** + * 检测项名称 + */ + private String name; + + /** + * 项目集合{"项目编号":"true"/123.000~123.500} + */ + private String inspections; + + /** + * 版本号 + */ + private String version; + + /** + * 创建人 + */ + private String createId; + + /** + * 创建人姓名 + */ + private String createName; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改人 + */ + private String updateId; + + /** + * 修改人姓名 + */ + private String updateName; + + /** + * 修改时间 + */ + private Date updateTime; + + /** + * 是否启用 + */ + private Boolean isUsed; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/TypeHandler/InspectionArrayHandler.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/TypeHandler/InspectionArrayHandler.java new file mode 100644 index 00000000..f3d5af8e --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/TypeHandler/InspectionArrayHandler.java @@ -0,0 +1,44 @@ +package org.nl.wms.ql.service.inspection.dao.TypeHandler; + +import com.alibaba.fastjson.JSON; +import com.alibaba.fastjson.JSONArray; +import com.alibaba.fastjson.JSONObject; +import jdk.nashorn.internal.parser.JSONParser; +import org.apache.ibatis.type.*; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; + +import java.sql.CallableStatement; +import java.sql.PreparedStatement; +import java.sql.ResultSet; +import java.sql.SQLException; +import java.util.List; + +/* + * @author ZZQ + * @Date 2023/4/24 09:50 + */ +@MappedJdbcTypes(JdbcType.VARCHAR) +@MappedTypes(JSONArray.class) +public class InspectionArrayHandler extends BaseTypeHandler> { + @Override + public void setNonNullParameter(PreparedStatement ps, int i, List parameter, JdbcType jdbcType) throws SQLException { + ps.setString(i, JSON.toJSONString(parameter)); + } + + @Override + public List getNullableResult(ResultSet rs, String columnName) throws SQLException { + return JSONArray.parseArray(rs.getString(columnName),MdQlInspectionpoint.class); + } + + @Override + public List getNullableResult(ResultSet rs, int columnIndex) throws SQLException { + return JSONArray.parseArray(rs.getString(columnIndex),MdQlInspectionpoint.class); + + } + + @Override + public List getNullableResult(CallableStatement cs, int columnIndex) throws SQLException { + return JSONArray.parseArray(cs.getString(columnIndex),MdQlInspectionpoint.class); + + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlInspectionpointMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlInspectionpointMapper.java new file mode 100644 index 00000000..dafea380 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlInspectionpointMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.ql.service.inspection.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; + +/** + *

+ * 检测项点 Mapper 接口 + *

+ * + * @author generator + * @since 2023-04-23 + */ +public interface MdQlInspectionpointMapper extends BaseMapper { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlMaterialinspectionMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlMaterialinspectionMapper.java new file mode 100644 index 00000000..4fab6aad --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlMaterialinspectionMapper.java @@ -0,0 +1,22 @@ +package org.nl.wms.ql.service.inspection.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.apache.ibatis.annotations.Param; +import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection; +import org.nl.wms.ql.service.inspection.dto.MaterialInspectionQuery; +import org.nl.wms.ql.service.inspection.dto.MdQlMaterialinspectionDto; + +import java.util.List; + +/** + *

+ * 物料检测项点 Mapper 接口 + *

+ * + * @author generator + * @since 2023-04-23 + */ +public interface MdQlMaterialinspectionMapper extends BaseMapper { + + List pageQuery(@Param("query") MaterialInspectionQuery query); +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlMaterialinspectionMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlMaterialinspectionMapper.xml new file mode 100644 index 00000000..8cee7ee9 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dao/mapper/MdQlMaterialinspectionMapper.xml @@ -0,0 +1,27 @@ + + + + + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/InspectionQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/InspectionQuery.java new file mode 100644 index 00000000..634b14ee --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/InspectionQuery.java @@ -0,0 +1,19 @@ +package org.nl.wms.ql.service.inspection.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.common.domain.query.QParam; +import org.nl.common.enums.QueryTEnum; +import org.nl.system.service.dept.dao.SysDept; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; + +import java.util.List; + +/* + * @author ZZQ + * @Date 2022/12/15 4:20 下午 + */ +@Data +public class InspectionQuery extends BaseQuery { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/MaterialInspectionQuery.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/MaterialInspectionQuery.java new file mode 100644 index 00000000..18baf548 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/MaterialInspectionQuery.java @@ -0,0 +1,15 @@ +package org.nl.wms.ql.service.inspection.dto; + +import lombok.Data; +import org.nl.common.domain.query.BaseQuery; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; +import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection; + +/* + * @author ZZQ + * @Date 2022/12/15 4:20 下午 + */ +@Data +public class MaterialInspectionQuery extends BaseQuery { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/MdQlMaterialinspectionDto.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/MdQlMaterialinspectionDto.java new file mode 100644 index 00000000..905f94da --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/dto/MdQlMaterialinspectionDto.java @@ -0,0 +1,83 @@ +package org.nl.wms.ql.service.inspection.dto; + +import com.alibaba.fastjson.JSONArray; +import com.baomidou.mybatisplus.annotation.TableId; +import com.baomidou.mybatisplus.annotation.TableName; +import lombok.Data; +import lombok.EqualsAndHashCode; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; +import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection; + +import java.io.Serializable; +import java.util.Date; +import java.util.List; + +/** + *

+ * 物料检测项点 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@Data +public class MdQlMaterialinspectionDto implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 物料id + */ + private String materialCode; + /** + * 检测项名称 + */ + private String name; + + /** + * 项目集合{"项目编号":"true"/123.000~123.500} + */ + private List inspections; + + /** + * 版本号 + */ + private String version; + + /** + * 创建人 + */ + private String createId; + + /** + * 创建人姓名 + */ + private String createName; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改人 + */ + private String updateId; + + /** + * 修改人姓名 + */ + private String updateName; + + /** + * 修改时间 + */ + private Date updateTime; + + /** + * 是否启用 + */ + private Boolean isUsed; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/impl/MdQlInspectionpointServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/impl/MdQlInspectionpointServiceImpl.java new file mode 100644 index 00000000..7400d978 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/impl/MdQlInspectionpointServiceImpl.java @@ -0,0 +1,48 @@ +package org.nl.wms.ql.service.inspection.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import io.jsonwebtoken.lang.Assert; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.modules.system.util.CodeUtil; +import org.nl.system.service.dept.dao.SysDept; +import org.nl.wms.ql.service.inspection.IMdQlInspectionpointService; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; +import org.nl.wms.ql.service.inspection.dao.mapper.MdQlInspectionpointMapper; +import org.nl.wms.ql.service.inspection.dto.InspectionQuery; +import org.springframework.stereotype.Service; + +import java.util.Date; + +/** + *

+ * 检测项点 服务实现类 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@Service +public class MdQlInspectionpointServiceImpl extends ServiceImpl implements IMdQlInspectionpointService { + + + @Override + public void create(JSONObject form) { + Assert.notNull(form,"请求参数不能为空"); + MdQlInspectionpoint param = form.toJavaObject(MdQlInspectionpoint.class); + param.setInspectionId(IdUtil.getStringId()); + param.setInspectionCode(CodeUtil.getNewCode("INSPECTION_POINT")); + param.setCreateName(SecurityUtils.getCurrentNickName()); + param.setCreateId(SecurityUtils.getCurrentUserId()); + param.setCreateTime(new Date()); + this.save(param); + } + + @Override + public Page page(InspectionQuery query, PageQuery pageQuery) { + return this.page(pageQuery.build(MdQlInspectionpoint.class), query.build()); + } +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/impl/MdQlMaterialinspectionServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/impl/MdQlMaterialinspectionServiceImpl.java new file mode 100644 index 00000000..8c19ac6f --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/inspection/impl/MdQlMaterialinspectionServiceImpl.java @@ -0,0 +1,55 @@ +package org.nl.wms.ql.service.inspection.impl; + +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.github.pagehelper.PageHelper; +import io.jsonwebtoken.lang.Assert; +import org.nl.common.TableDataInfo; +import org.nl.common.domain.query.PageQuery; +import org.nl.common.utils.IdUtil; +import org.nl.common.utils.SecurityUtils; +import org.nl.system.service.user.dto.SysUserDetail; +import org.nl.wms.ql.service.inspection.IMdQlMaterialinspectionService; +import org.nl.wms.ql.service.inspection.dao.MdQlInspectionpoint; +import org.nl.wms.ql.service.inspection.dao.MdQlMaterialinspection; +import org.nl.wms.ql.service.inspection.dao.mapper.MdQlMaterialinspectionMapper; +import org.nl.wms.ql.service.inspection.dto.MaterialInspectionQuery; +import org.nl.wms.ql.service.inspection.dto.MdQlMaterialinspectionDto; +import org.springframework.data.domain.Pageable; +import org.springframework.stereotype.Service; + +import javax.annotation.Resource; +import java.util.Date; +import java.util.List; + +/** + *

+ * 物料检测项点 服务实现类 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@Service +public class MdQlMaterialinspectionServiceImpl extends ServiceImpl implements IMdQlMaterialinspectionService { + + @Resource + MdQlMaterialinspectionMapper mdQlMaterialinspectionMapper; + @Override + public void create(JSONObject form) { + Assert.notNull(form,"请求参数不能为空"); + MdQlMaterialinspection param = form.toJavaObject(MdQlMaterialinspection.class); + param.setInspections(IdUtil.getStringId()); + param.setCreateName(SecurityUtils.getCurrentNickName()); + param.setCreateId(SecurityUtils.getCurrentUserId()); + param.setCreateTime(new Date()); + this.save(param); + } + + @Override + public Page pageQuery(MaterialInspectionQuery query, PageQuery pageQuery) { + return this.page(pageQuery.build(MdQlMaterialinspection.class), query.build()); + } + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/IMdMeInspectionsheetService.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/IMdMeInspectionsheetService.java new file mode 100644 index 00000000..27f0499d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/IMdMeInspectionsheetService.java @@ -0,0 +1,16 @@ +package org.nl.wms.ql.service.report; + +import com.baomidou.mybatisplus.extension.service.IService; +import org.nl.wms.ql.service.report.dao.MdMeInspectionsheet; + +/** + *

+ * 质检报告 服务类 + *

+ * + * @author generator + * @since 2023-04-23 + */ +public interface IMdMeInspectionsheetService extends IService { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/MdMeInspectionsheet.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/MdMeInspectionsheet.java new file mode 100644 index 00000000..89664d96 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/MdMeInspectionsheet.java @@ -0,0 +1,90 @@ +package org.nl.wms.ql.service.report.dao; + +import com.baomidou.mybatisplus.annotation.TableName; +import java.util.Date; +import java.io.Serializable; +import lombok.Data; +import lombok.EqualsAndHashCode; + +/** + *

+ * 质检报告 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@Data +@EqualsAndHashCode(callSuper = false) +@TableName("md_me_inspectionsheet") +public class MdMeInspectionsheet implements Serializable { + + private static final long serialVersionUID = 1L; + + /** + * 质检id + */ + private String inspectionsheetId; + + /** + * 质检编号 + */ + private String inspectionsheetCode; + + /** + * 物料id + */ + private String materialId; + + /** + * 批次 + */ + private String pcsn; + + /** + * 质检单类型 + */ + private String type; + + /** + * 检测项目集合 + */ + private String inspections; + + /** + * 创建人 + */ + private String createId; + + /** + * 创建人姓名 + */ + private String createName; + + /** + * 创建时间 + */ + private Date createTime; + + /** + * 修改人 + */ + private String updateId; + + /** + * 修改人姓名 + */ + private String updateName; + + /** + * 修改时间 + */ + private Date updateTime; + + /** + * 是否删除 + */ + private Boolean isDeleted; + + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/mapper/MdMeInspectionsheetMapper.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/mapper/MdMeInspectionsheetMapper.java new file mode 100644 index 00000000..d8eccc86 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/mapper/MdMeInspectionsheetMapper.java @@ -0,0 +1,16 @@ +package org.nl.wms.ql.service.report.dao.mapper; + +import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import org.nl.wms.ql.service.report.dao.MdMeInspectionsheet; + +/** + *

+ * 质检报告 Mapper 接口 + *

+ * + * @author generator + * @since 2023-04-23 + */ +public interface MdMeInspectionsheetMapper extends BaseMapper { + +} diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/mapper/MdMeInspectionsheetMapper.xml b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/mapper/MdMeInspectionsheetMapper.xml new file mode 100644 index 00000000..3b53658d --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/dao/mapper/MdMeInspectionsheetMapper.xml @@ -0,0 +1,5 @@ + + + + + diff --git a/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/impl/MdMeInspectionsheetServiceImpl.java b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/impl/MdMeInspectionsheetServiceImpl.java new file mode 100644 index 00000000..ad326b70 --- /dev/null +++ b/mes/hd/nladmin-system/src/main/java/org/nl/wms/ql/service/report/impl/MdMeInspectionsheetServiceImpl.java @@ -0,0 +1,21 @@ +package org.nl.wms.ql.service.report.impl; + + +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import org.nl.wms.ql.service.report.IMdMeInspectionsheetService; +import org.nl.wms.ql.service.report.dao.MdMeInspectionsheet; +import org.nl.wms.ql.service.report.dao.mapper.MdMeInspectionsheetMapper; +import org.springframework.stereotype.Service; + +/** + *

+ * 质检报告 服务实现类 + *

+ * + * @author generator + * @since 2023-04-23 + */ +@Service +public class MdMeInspectionsheetServiceImpl extends ServiceImpl implements IMdMeInspectionsheetService { + +} diff --git a/mes/qd/src/views/wms/ql/inspection/index.vue b/mes/qd/src/views/wms/ql/inspection/index.vue new file mode 100644 index 00000000..a6ca8f03 --- /dev/null +++ b/mes/qd/src/views/wms/ql/inspection/index.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/mes/qd/src/views/wms/ql/inspection/inspectionpoint.js b/mes/qd/src/views/wms/ql/inspection/inspectionpoint.js new file mode 100644 index 00000000..bb59a466 --- /dev/null +++ b/mes/qd/src/views/wms/ql/inspection/inspectionpoint.js @@ -0,0 +1,27 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: '/api/mdQlInspectionpoint/create', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/mdQlInspectionpoint/delete', + method: 'post', + data: ids + }) +} + +export function edit(data) { + return request({ + url: '/api/mdQlInspectionpoint/update', + method: 'post', + data + }) +} + +export default { add, edit, del } diff --git a/mes/qd/src/views/wms/ql/materialInspection/AddDialog.vue b/mes/qd/src/views/wms/ql/materialInspection/AddDialog.vue new file mode 100644 index 00000000..766b36bf --- /dev/null +++ b/mes/qd/src/views/wms/ql/materialInspection/AddDialog.vue @@ -0,0 +1,320 @@ + + + + + diff --git a/mes/qd/src/views/wms/ql/materialInspection/index.vue b/mes/qd/src/views/wms/ql/materialInspection/index.vue new file mode 100644 index 00000000..a6ca8f03 --- /dev/null +++ b/mes/qd/src/views/wms/ql/materialInspection/index.vue @@ -0,0 +1,142 @@ + + + + + diff --git a/mes/qd/src/views/wms/ql/materialInspection/materialInspectionpoint.js b/mes/qd/src/views/wms/ql/materialInspection/materialInspectionpoint.js new file mode 100644 index 00000000..8e2d1eef --- /dev/null +++ b/mes/qd/src/views/wms/ql/materialInspection/materialInspectionpoint.js @@ -0,0 +1,35 @@ +import request from '@/utils/request' + +export function add(data) { + return request({ + url: '/api/materialInspection/create', + method: 'post', + data + }) +} + +export function del(ids) { + return request({ + url: '/api/materialInspection/delete', + method: 'post', + data: ids + }) +} + +export function edit(data) { + return request({ + url: '/api/materialInspection/update', + method: 'post', + data + }) +} + +export function edit(data) { + return request({ + url: '/api/materialInspection/update', + method: 'post', + data + }) +} + +export default { add, edit, del }