From 8f6ffe3ec5691fe2eb1ab6caf49748ff94d8e0fb Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 07 八月 2023 08:58:51 +0800 Subject: [PATCH] 检验单 --- inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java | 231 +++++++++++++++++++++++++++++++++++++++++---------------- 1 files changed, 164 insertions(+), 67 deletions(-) diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java index ebfb650..444d70c 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java @@ -1,102 +1,199 @@ package com.yuanchu.limslaboratory.service.impl; - +import cn.hutool.core.lang.Snowflake; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; -import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; +import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; -import com.yuanchu.limslaboratory.mapper.InspectionMaterialListMapper; -import com.yuanchu.limslaboratory.mapper.InspectionProductListMapper; -import com.yuanchu.limslaboratory.mapper.PlanMapper; -import com.yuanchu.limslaboratory.pojo.Inspection; -import com.yuanchu.limslaboratory.mapper.InspectionMapper; -import com.yuanchu.limslaboratory.pojo.InspectionMaterialList; -import com.yuanchu.limslaboratory.pojo.InspectionProductList; -import com.yuanchu.limslaboratory.pojo.Plan; -import com.yuanchu.limslaboratory.pojo.dto.InspectionDto; -import com.yuanchu.limslaboratory.service.InspectionProductListService; -import com.yuanchu.limslaboratory.service.InspectionService; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.limslaboratory.mapper.*; +import com.yuanchu.limslaboratory.pojo.*; +import com.yuanchu.limslaboratory.pojo.vo.InsProductVo; +import com.yuanchu.limslaboratory.pojo.vo.InspectDetailVo; +import com.yuanchu.limslaboratory.pojo.vo.InspectionVo; +import com.yuanchu.limslaboratory.service.*; +import org.springframework.beans.BeanUtils; import org.springframework.stereotype.Service; import javax.annotation.Resource; -import java.util.Date; -import java.util.List; - +import java.util.*; +import java.util.stream.Collectors; /** - * <p> - * 鏈嶅姟瀹炵幇绫� - * </p> + * 鐢宠琛�(Inspection)琛ㄦ湇鍔″疄鐜扮被 * - * @author 姹熻嫃榈烽洀缃戠粶绉戞妧鏈夐檺鍏徃 - * @since 2023-07-17 + * @author zss + * @since 2023-08-03 13:03:36 */ @Service public class InspectionServiceImpl extends ServiceImpl<InspectionMapper, Inspection> implements InspectionService { @Resource - private InspectionMapper inspectionMapper; + InspectionMapper inspectionMapper; @Resource - private PlanMapper planMapper; + InspectionMaterialMapper inspectionMaterialMapper; @Resource - InspectionMaterialListMapper inspectionMaterialListMapper; + InspectionProductService inspectionProductService; @Resource - InspectionProductListService inspectionProductListService; + InspectionProductMapper inspectionProductMapper; - //娣诲姞妫�楠岀敵璇峰崟 + @Resource + MaterialMapper materialMapper; + + @Resource + StandardService standardService; + + @Resource + SpecificationsService specificationsService; + + @Resource + ProductMapper productMapper; + + @Resource + InstrumentService instrumentService; + + @Resource + UserMapper userMapper; + + /** + * 鏌ヨ妫�楠岀敵璇峰崟鍒楄〃 + * + * @param message + * @return + */ @Override - public Inspection addInspection(String userName, int type) { - Inspection inspection = new Inspection(type, 0, 1, 1, userName); - int judge = inspectionMapper.insert(inspection); - return judge > 0 ? inspection : null; + public IPage<Map<String, Object>> selectInspectsList(Page<Object> page, String message) { + return inspectionMapper.selectInspectsList(page, message); } - //鏌ヨ鎵�鏈夋楠屽崟鍒楄〃 + /** + * 鏂板妫�楠岀敵璇疯〃 + * + * @param id + * @param + * @return + */ @Override - public List<InspectionDto> selectAllInspection(int pageSize, int countSize, Integer state) { - return inspectionMapper.selectAllInspection((pageSize - 1) * countSize, pageSize * countSize, state); - } - - //浣滃簾鐢宠妫�楠屽崟 - @Override - public void delInspectionByInsId(String inspectionId) { - /*妫�楠屽崟浣滃簾*/ - Inspection inspection = inspectionMapper.selectById(inspectionId); - inspection.setState(0); - inspectionMapper.updateById(inspection); - /*妫�楠岃鍒掍綔搴�*/ - UpdateWrapper<Plan> updateWrapper = new UpdateWrapper<>(); - updateWrapper.eq("inspection_id", inspectionId).set("state", 0); - planMapper.update(new Plan(), updateWrapper); - /*妫�楠屾牱鍝佷綔搴�(鏍规嵁鎶ユ鍗昳d鍒犻櫎鏍峰搧淇℃伅)*/ - UpdateWrapper<InspectionMaterialList> wrapper1 = new UpdateWrapper<>(); - wrapper1.eq("inspection_id", inspectionId).set("state", 0); - inspectionMaterialListMapper.update(new InspectionMaterialList(), wrapper1); - /*妫�楠屾牱鍝佷腑鐨勬楠岄」鐩綔搴�*/ - //鏌ュ嚭妫�楠屾牱鍝乮d - LambdaQueryWrapper<InspectionMaterialList> queryWrapper = new LambdaQueryWrapper<>(); - queryWrapper.eq(InspectionMaterialList::getInspectionId,inspectionId); - List<InspectionMaterialList> inspectionMaterialLists = inspectionMaterialListMapper.selectList(queryWrapper); - for (InspectionMaterialList inspectionMaterialList : inspectionMaterialLists) { - UpdateWrapper<InspectionProductList> wrapper = new UpdateWrapper<>(); - wrapper.eq("inspection_material_list_id", inspectionMaterialList.getId()).set("state", 0); - inspectionProductListService.update(new InspectionProductList(), wrapper); + public Integer addInspect(Integer id, InspectionVo inspectionVo) { + /*鏂板妫�楠岀敵璇疯〃*/ + Inspection inspection = Inspection.builder() + .startTime(inspectionVo.getStartTime()) + .endTime(inspectionVo.getEndTime()) + .type(inspectionVo.getType()) + .code(new Snowflake(1, 1).nextIdStr()) + .userId(id) + .build(); + inspectionMapper.insert(inspection); + /*鏂板妫�楠屾牱鍝佽〃*/ + InspectionMaterial inspectionMaterial = InspectionMaterial.builder() + .code(inspectionVo.getMcode()) + .name(inspectionVo.getName()) + .num(inspectionVo.getNum()) + .unit(inspectionVo.getUnit()) + .supplier(inspectionVo.getSupplier()) + .specifications(inspectionVo.getSpecifications()) + .formTime(inspectionVo.getFormTime()) + .inspectionId(inspection.getId()) + .build(); + inspectionMaterialMapper.insert(inspectionMaterial); + /*鏂板妫�楠岄」鐩〃*/ + //鑾峰彇鐗╂枡id + Material material = materialMapper.selectOne(Wrappers.<Material>query() + .eq("name", inspectionVo.getName()) + .eq("code", inspectionVo.getMcode())); + //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉� + String specification = inspectionVo.getSpecifications(); + String[] split = specification.split("-"); + String stName = split[0]; + String spName = split[1]; + //鑾峰彇瑙勬牸id + Standard standard = standardService.getOne(Wrappers.<Standard>query() + .eq("name", stName) + .eq("material_id", material.getId())); + //鑾峰彇鍨嬪彿id + Specifications specifications = specificationsService.getOne(Wrappers.<Specifications>query() + .eq("name", spName) + .eq("standard_id", standard.getId())); + //鏍规嵁鍨嬪彿id鏌ヨ椤圭洰淇℃伅 + List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specifications.getId())); + ArrayList<InspectionProduct> list = new ArrayList<>(); + for (Product product : productList) { + InspectionProduct rawInsProduct = InspectionProduct.builder() + .name(product.getName()) + .unit(product.getUnit()) + .required(product.getRequired()) + .internal(product.getInternal()) + .inspectionMaterialId(material.getId()) + .build(); + list.add(rawInsProduct); } + //妫�楠岄」鐩壒閲忔坊鍔� + inspectionProductService.saveBatch(list); + return inspection.getId(); } - //鎻愪氦鐢宠妫�楠屽崟 + //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏 @Override - public void subInspectionByInsId(String inspectionId) { - Inspection inspection = inspectionMapper.selectById(inspectionId); - //鐘舵�佹敼涓哄凡鎻愪氦2 - inspection.setState(2); + public InspectDetailVo selectInspectsListById(Integer id) { + /*灏嗘楠屽崟鍩烘湰淇℃伅鏌ヨ鍑烘潵骞跺皝瑁呭埌RawInspectVo瀵硅薄涓�*/ + Inspection inspection = inspectionMapper.selectById(id); + InspectDetailVo inspectDetailVo = new InspectDetailVo(); + //鎶ユ浜� + User user = userMapper.selectById(inspection.getUserId()); + inspectDetailVo.setUserName(user.getName()); + //鎶ユ寮�濮嬫椂闂村拰缁撴潫鏃堕棿 + inspectDetailVo.setStartTime(inspection.getStartTime()); + inspectDetailVo.setEndTime(inspection.getEndTime()); + //妫�楠岀粨璁� + inspectDetailVo.setInspectionStatus(inspection.getInspectionStatus()); + //鏌ヨ妫�楠岀墿鏂� + InspectionMaterial inspectionMaterial = inspectionMaterialMapper.selectOne(Wrappers.<InspectionMaterial>query().eq("inspection_id", id)); + //鏉ユ枡鏃ユ湡,渚涘簲鍟嗗悕绉�,鍘熸潗鏂欑紪鐮�,鍘熸潗鏂欏悕绉�,瑙勬牸鍨嬪彿,鍗曚綅,鏁伴噺 + BeanUtils.copyProperties(inspectionMaterial, inspectDetailVo); + /*鏌ヨ妫�楠屽崟閲岄潰鐨勬楠岄」鐩�,骞跺皝瑁呭埌RawInspectVo瀵硅薄涓�*/ + LambdaQueryWrapper<InspectionProduct> queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(InspectionProduct::getInspectionMaterialId, inspectionMaterial.getId()); + List<InspectionProduct> inspectionProducts = inspectionProductMapper.selectList(queryWrapper); + //杩欓噷鏌ュ埌鐨勮澶噄d鍜屾楠屽憳id瑕佹煡璇㈠悕绉� + List<InsProductVo> insProductVos = inspectionProducts.stream().map(insProduct -> { + //灏嗕竴涓璞$殑鍊艰祴鍊肩粰鍙︿竴涓璞� + InsProductVo insProductVo = new InsProductVo(); + BeanUtils.copyProperties(insProduct, insProductVo); + //鑾峰彇璁惧鍚�(鍓嶆彁鏄鏋滃瓨鍦�) + if (insProduct.getInstrumentId() != null) { + String equipmentName = instrumentService.getById(insProduct.getInstrumentId()).getEquipmentName(); + insProductVo.setInstrumentName(equipmentName); + } + //鑾峰彇鐢ㄦ埛鍚�(鍓嶆彁鏄鏋滃瓨鍦�) + if (insProduct.getUserId() != null) { + String userName = userMapper.selectById(insProduct.getUserId()).getName(); + insProductVo.setUserName(userName); + } + //椤圭洰鍏宠仈鐗╂枡id + insProductVo.setInspectionMaterialId(inspectionMaterial.getId()); + return insProductVo; + }).collect(Collectors.toList()); + inspectDetailVo.setInsProducts(insProductVos); + return inspectDetailVo; + } + + //鏇存柊妫�楠屽崟妫�楠岀粨鏋� + @Override + public boolean updateInspectsById(Integer id) { + //鏇存柊妫�楠屽崟閲岄潰鐨勬楠岀姸鎬佸拰妫�楠岀粨璁� + InspectDetailVo inspectDetailVo = selectInspectsListById(id); + Inspection inspection = Inspection.builder() + .id(id) + .inspectionStatus(inspectDetailVo.getInspectionStatus()) + .build(); inspectionMapper.updateById(inspection); - //璁″垝琛ㄦ柊澧� - Plan plan = Plan.builder().inspectionId(inspectionId).state(1).userId(inspection.getInspectUserId()).createTime(new Date()).build(); - planMapper.insert(plan); + //鐢熸垚鎶ュ憡鍗� + + return true; } } + -- Gitblit v1.9.3