From 261cea0f008f34555025621723d5b81b41d9dae3 Mon Sep 17 00:00:00 2001 From: philip <244793088@qq.com> Date: Tue, 15 Jun 2021 09:05:16 +0800 Subject: [PATCH] =?UTF-8?q?=E6=A3=80=E9=AA=8C=E9=A1=B9=E7=9B=AE=E7=BB=B4?= =?UTF-8?q?=E6=8A=A4?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../mesnac/common/enums/HandleEnum.java | 4 + .../controller/InspectionItemController.java | 58 ++++++++- .../mesnac/quality/model/InspectionItem.java | 23 ++++ .../service/InspectionItemService.java | 9 ++ .../impl/InspectionItemServiceImpl.java | 123 ++++++++++++++++++ 5 files changed, 216 insertions(+), 1 deletion(-) diff --git a/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java b/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java index 3e0defaa..365a73f4 100644 --- a/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java +++ b/common/src/main/java/com/foreverwin/mesnac/common/enums/HandleEnum.java @@ -56,10 +56,14 @@ public enum HandleEnum { /****/ SFC_DISPATCH("SfcDispatchBO:", "SfcDispatchBO:{0},{1}"), + /**检验项目维护*/ + INSPECTION_ITEM("InspectionItemBO:","InspectionItemBO:{0},{1},{2}"), + /**编码规则*/ NEXT_NUMBER_CODE("NextNumberCodeBO:","NextNumberCodeBO:{0},{1},{2}"); + private String prefix; private String pattern; diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/controller/InspectionItemController.java b/quality/src/main/java/com/foreverwin/mesnac/quality/controller/InspectionItemController.java index dfd5b9cf..39405881 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/controller/InspectionItemController.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/controller/InspectionItemController.java @@ -1,17 +1,27 @@ package com.foreverwin.mesnac.quality.controller; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.quality.mapper.InspectionItemAdditionMapper; +import com.foreverwin.mesnac.quality.mapper.InspectionItemDetailMapper; +import com.foreverwin.mesnac.quality.model.*; import com.foreverwin.modular.core.util.R; import com.foreverwin.modular.core.util.FrontPage; import com.foreverwin.modular.core.util.CommonMethods; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.sap.me.sampling.InspectionData; +import com.visiprise.common.exception.BaseException; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; import com.foreverwin.mesnac.quality.service.InspectionItemService; -import com.foreverwin.mesnac.quality.model.InspectionItem; + +import java.time.LocalDateTime; +import java.util.HashMap; import java.util.List; +import java.util.UUID; /** * @@ -25,6 +35,52 @@ public class InspectionItemController { @Autowired public InspectionItemService inspectionItemService; + @Autowired + public InspectionItemDetailMapper inspectionItemDetailMapper; + + @Autowired + public InspectionItemAdditionMapper inspectionItemAdditionMapper; + + @PostMapping("/deleteById") + public R deleteById(@RequestBody InspectionItem inspectionItem){ + inspectionItemService.deleteServece(inspectionItem); + return R.ok(); + } + @PostMapping("/saveAll") + public R saveAll(@RequestBody InspectionItem inspectionItem){ + inspectionItemService.saveAll(inspectionItem); + return R.ok(); + } + @GetMapping("/queryAll") + public R queryAll(InspectionItem inspectionItem){ + if(StringUtil.isBlank(inspectionItem.getInspectionItemNo())){ + throw new BaseException("请输入检验项目编号版本号"); + } + if(StringUtil.isEmpty(inspectionItem.getRevision())){ + String revision = inspectionItemService.findRevisionByCurrentRevision(inspectionItem.getInspectionItemNo()); + if(StringUtil.isEmpty(revision)){ + throw new BaseException("请输入版本号"); + } + inspectionItem.setRevision(revision); + } + inspectionItem.setSite(CommonMethods.getSite()); + inspectionItem.setHandle(HandleEnum.INSPECTION_ITEM.getHandle(inspectionItem.getSite(),inspectionItem.getInspectionItemNo(),inspectionItem.getRevision())); + + InspectionItem handle = inspectionItemService.getById(inspectionItem.getHandle()); + if(null == handle){ + throw new BaseException("根据此项目编号以及版本未检索到数据"); + } + + HashMap findCondition = new HashMap<>(2); + findCondition.put(InspectionItemDetail.INSPECTION_ITEM_BO,inspectionItem.getHandle()); + List inspectionItemDetails = inspectionItemDetailMapper.selectByMap(findCondition); + List inspectionItemAdditions = inspectionItemAdditionMapper.selectByMap(findCondition); + + handle.setInspectionItemDetailList(inspectionItemDetails); + handle.setInspectionItemAdditionList(inspectionItemAdditions); + + return R.ok(handle); + } /** * 根据id查询 * diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/model/InspectionItem.java b/quality/src/main/java/com/foreverwin/mesnac/quality/model/InspectionItem.java index 1b07b01b..2a0d8af6 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/model/InspectionItem.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/model/InspectionItem.java @@ -8,6 +8,8 @@ import com.baomidou.mybatisplus.annotation.TableId; import java.time.LocalDateTime; import com.baomidou.mybatisplus.annotation.TableField; import java.io.Serializable; +import java.util.List; + import com.baomidou.mybatisplus.annotation.IdType; /** @@ -91,6 +93,11 @@ public class InspectionItem extends Model { @TableField("CATEGORY") private String category; + @TableField(exist = false) + private List inspectionItemDetailList; + @TableField(exist = false) + private List inspectionItemAdditionList; + public String getHandle() { return handle; @@ -246,4 +253,20 @@ public static final String CATEGORY = "CATEGORY"; ", category = " + category + "}"; } + + public void setInspectionItemDetailList(List inspectionItemDetailList) { + this.inspectionItemDetailList = inspectionItemDetailList; + } + + public List getInspectionItemDetailList() { + return inspectionItemDetailList; + } + + public void setInspectionItemAdditionList(List inspectionItemAdditionList) { + this.inspectionItemAdditionList = inspectionItemAdditionList; + } + + public List getInspectionItemAdditionList() { + return inspectionItemAdditionList; + } } \ No newline at end of file diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/service/InspectionItemService.java b/quality/src/main/java/com/foreverwin/mesnac/quality/service/InspectionItemService.java index 07278e0e..100fe45e 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/service/InspectionItemService.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/service/InspectionItemService.java @@ -3,6 +3,7 @@ package com.foreverwin.mesnac.quality.service; import com.baomidou.mybatisplus.core.metadata.IPage; import com.foreverwin.mesnac.quality.model.InspectionItem; import com.baomidou.mybatisplus.extension.service.IService; +import com.foreverwin.mesnac.quality.model.InspectionProject; import com.foreverwin.modular.core.util.FrontPage; import java.util.List; @@ -25,4 +26,12 @@ public interface InspectionItemService extends IService { IPage selectPage(FrontPage frontPage, InspectionItem inspectionItem); List selectList(InspectionItem inspectionItem); + + String findRevisionByCurrentRevision(String inspectionItemNo); + + String inspectItemNoGenerationRules(InspectionItem inspectionItem); + + void saveAll(InspectionItem inspectionItem); + + void deleteServece(InspectionItem inspectionItem); } \ No newline at end of file diff --git a/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/InspectionItemServiceImpl.java b/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/InspectionItemServiceImpl.java index 64a91e6b..6c365a95 100644 --- a/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/InspectionItemServiceImpl.java +++ b/quality/src/main/java/com/foreverwin/mesnac/quality/service/impl/InspectionItemServiceImpl.java @@ -1,5 +1,17 @@ package com.foreverwin.mesnac.quality.service.impl; +import com.baomidou.mybatisplus.core.conditions.Wrapper; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; +import com.baomidou.mybatisplus.core.injector.methods.SelectOne; +import com.foreverwin.mesnac.common.enums.HandleEnum; +import com.foreverwin.mesnac.common.util.StringUtil; +import com.foreverwin.mesnac.quality.model.InspectionItemAddition; +import com.foreverwin.mesnac.quality.model.InspectionItemDetail; +import com.foreverwin.mesnac.quality.model.InspectionProject; +import com.foreverwin.mesnac.quality.service.InspectionItemAdditionService; +import com.foreverwin.mesnac.quality.service.InspectionItemDetailService; +import com.foreverwin.mesnac.common.constant.Constants; +import com.foreverwin.modular.core.util.CommonMethods; import com.foreverwin.modular.core.util.FrontPage; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; @@ -7,11 +19,16 @@ import com.foreverwin.mesnac.quality.model.InspectionItem; import com.foreverwin.mesnac.quality.mapper.InspectionItemMapper; import com.foreverwin.mesnac.quality.service.InspectionItemService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.visiprise.common.exception.BaseException; import org.springframework.stereotype.Service; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.transaction.annotation.Transactional; +import java.time.LocalDateTime; +import java.util.HashMap; import java.util.List; +import java.util.UUID; + /** *

* 检验项目维护主表 服务实现类 @@ -27,6 +44,10 @@ public class InspectionItemServiceImpl extends ServiceImpl selectPage(FrontPage frontPage, InspectionItem inspectionItem) { @@ -42,5 +63,107 @@ public class InspectionItemServiceImpl extends ServiceImpl lambdaQuery=new LambdaQueryWrapper<>(); + lambdaQuery.eq(InspectionItem::getInspectionItemNo,inspectionItemNo); + lambdaQuery.eq(InspectionItem::getCurrentRevision, Constants.BOOL_TRUE); + lambdaQuery.eq(InspectionItem::getSite, site); + InspectionItem one = getOne(lambdaQuery, false); + if (one!=null){ + return one.getRevision(); + } + return null; + } + + @Override + public String inspectItemNoGenerationRules(InspectionItem inspectionItem) { + List inspectionItemAdditionList = inspectionItem.getInspectionItemAdditionList(); + StringBuilder inspectionItemNo=new StringBuilder(); + inspectionItemAdditionList.forEach(inspectionItemAddition->inspectionItemNo.append(inspectionItemAddition.getAdditionalObject())); + return inspectionItemNo.toString(); + } + + @Override + public void saveAll(InspectionItem inspectionItem) { + boolean b = false; + if(StringUtil.isEmpty(inspectionItem.getInspectionItemNo())){ + b = true; + inspectionItem.setInspectionItemNo(inspectItemNoGenerationRules(inspectionItem)); + } + if (inspectionItem.getInspectionType().length()>1){ + inspectionItem.setCategory("RESOURCE"); + }else { + inspectionItem.setCategory("QUALITY"); + } + inspectionItem.setSite(CommonMethods.getSite()); + inspectionItem.setHandle(HandleEnum + .INSPECTION_ITEM.getHandle(inspectionItem.getSite(),inspectionItem.getInspectionItemNo(),inspectionItem.getRevision())); + //保存检验项目维护-副 + //移除 + HashMap removeCondition = new HashMap<>(); + removeCondition.put(InspectionItemDetail.INSPECTION_ITEM_BO,inspectionItem.getHandle()); + inspectionItemDetailService.removeByMap(removeCondition); + inspectionItemAdditionService.removeByMap(removeCondition); + + if(null != inspectionItem.getInspectionItemDetailList() && inspectionItem.getInspectionItemDetailList().size() > 0){ + List inspectionItemDetailList = inspectionItem.getInspectionItemDetailList(); + for (InspectionItemDetail inspectionItemDetail : inspectionItemDetailList) { + inspectionItemDetail.setHandle(UUID.randomUUID().toString()); + inspectionItemDetail.setInspectionItemBo(inspectionItem.getHandle()); + inspectionItemDetail.setCreatedDateTime(LocalDateTime.now()); + inspectionItemDetail.setCreateUser(CommonMethods.getUser()); + inspectionItemDetail.setModifiedDateTime(LocalDateTime.now()); + inspectionItemDetail.setModifyUser(CommonMethods.getUser()); + } + //保存 + inspectionItemDetailService.saveBatch(inspectionItemDetailList); + } + if(null != inspectionItem.getInspectionItemAdditionList() && inspectionItem.getInspectionItemAdditionList().size() > 0){ + List inspectionItemAdditionList = inspectionItem.getInspectionItemAdditionList(); + for (InspectionItemAddition inspectionItemAddition : inspectionItemAdditionList) { + inspectionItemAddition.setHandle(UUID.randomUUID().toString()); + inspectionItemAddition.setInspectionItemBo(inspectionItem.getHandle()); + inspectionItemAddition.setCreatedDateTime(LocalDateTime.now()); + inspectionItemAddition.setCreateUser(CommonMethods.getUser()); + inspectionItemAddition.setModifiedDateTime(LocalDateTime.now()); + inspectionItemAddition.setModifyUser(CommonMethods.getUser()); + } + //保存 + inspectionItemAdditionService.saveBatch(inspectionItemAdditionList); + } + + //保存检验项目维护-主 + if(inspectionItem.selectById(inspectionItem.getHandle()) == null){ + inspectionItem.setCreatedDateTime(LocalDateTime.now()); + inspectionItem.setCreateUser(CommonMethods.getUser()); + inspectionItem.setModifiedDateTime(LocalDateTime.now()); + inspectionItem.setModifyUser(CommonMethods.getUser()); + save(inspectionItem); + }else{ + inspectionItem.setModifiedDateTime(LocalDateTime.now()); + inspectionItem.setModifyUser(CommonMethods.getUser()); + if(b){ + throw new BaseException("请先检索再保存"); + } + saveOrUpdate(inspectionItem); + } + } + + @Override + public void deleteServece(InspectionItem inspectionItem) { + if(StringUtil.isEmpty(inspectionItem.getInspectionItemNo())){ + throw new BaseException("请输入编号"); + } + inspectionItem.setSite(CommonMethods.getSite()); + inspectionItem.setHandle(HandleEnum.INSPECTION_ITEM.getHandle(inspectionItem.getSite(),inspectionItem.getInspectionItemNo(),inspectionItem.getRevision())); + HashMap removeCondition = new HashMap<>(); + removeCondition.put(InspectionItemAddition.INSPECTION_ITEM_BO,inspectionItem.getHandle()); + inspectionItemAdditionService.removeByMap(removeCondition); + inspectionItemDetailService.removeByMap(removeCondition); + removeById(inspectionItem.getHandle()); + } + } \ No newline at end of file