From 3a4ec5e2eae59901979f4309acb44eebacb75c56 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期五, 25 八月 2023 17:45:18 +0800 Subject: [PATCH] 委托报检修改 --- inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java | 17 ++ standard-server/src/main/resources/mapper/ProductMapper.xml | 30 ++++ inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java | 27 ++++ inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java | 2 inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java | 28 +++- inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java | 10 + inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/InspectionServiceImpl.java | 101 +++++++++++----- standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java | 35 ++++- standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java | 44 ++++-- inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java | 3 standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java | 8 + inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml | 18 +- standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java | 2 inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java | 2 standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java | 27 +++ inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java | 6 16 files changed, 268 insertions(+), 92 deletions(-) diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java index 29ed397..f9b7ed3 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/InspectionController.java @@ -20,6 +20,7 @@ import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.service.InspectionService; @@ -85,10 +86,21 @@ return Result.fail("绫诲瀷閿欒!"); } + @ApiOperation(value = "鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈�") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "name", value = "浜у搧鍚嶇О", dataTypeClass = String.class, required = true), + @ApiImplicitParam(name = "mcode", value = "浜у搧缂栧彿", dataTypeClass = String.class, required = true), + @ApiImplicitParam(name = "specifications", value = "瑙勬牸鍨嬪彿", dataTypeClass = String.class, required = true) + }) + @GetMapping("/chooseVer") + public Result chooseVer(String name, String mcode, String specifications) { + return Result.success(inspectionService.chooseVer(name, mcode, specifications)); + } + @ApiOperation(value = "鏂板妫�楠屽崟") @PostMapping("/addInspect") - public Result addInspect(@RequestHeader("token") String token, @RequestBody InspectionVo inspectionVo) throws Exception { + public Result addInspect(@RequestHeader("token") String token, @Validated @RequestBody InspectionVo inspectionVo) throws Exception { Object object = RedisUtil.get(token); Map<String, Object> unmarshal = JackSonUtil.unmarshal(JackSonUtil.marshal(object), Map.class); return Result.success(inspectionService.addInspect((Integer) unmarshal.get("id"), inspectionVo)); @@ -110,13 +122,13 @@ } @ApiOperation(value = "淇濆瓨妫�楠岄」鐩矗浠讳汉") - @ApiImplicitParams(value = { - @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true), - @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true) - }) + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "id", value = "妫�楠屽崟椤圭洰id", dataTypeClass = Integer.class, required = true), + @ApiImplicitParam(name = "userProId", value = "璐d换浜篿d", dataTypeClass = Integer.class, required = true) + }) @GetMapping("/chooseUseProId") - public Result chooseUseProId(Integer id,Integer userProId) { - return Result.success(inspectionService.chooseUseProId(id,userProId)); + public Result chooseUseProId(Integer id, Integer userProId) { + return Result.success(inspectionService.chooseUseProId(id, userProId)); } @ApiOperation(value = "浣滃簾妫�楠屽崟") @@ -124,7 +136,7 @@ @ApiImplicitParam(name = "id", value = "妫�楠屽崟id", dataTypeClass = Integer.class, required = true) }) @PostMapping("/delInspect") - public Result delInspect(Integer id) { + public Result delInspect(Integer id) { return Result.success(inspectionService.delInspect(id)); } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java index 1da481b..9ac5e99 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/controller/LinkDetectionController.java @@ -4,17 +4,22 @@ import com.baomidou.mybatisplus.core.toolkit.IdWorker; import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.yuanchu.limslaboratory.pojo.LinkBasicInformation; +import com.yuanchu.limslaboratory.pojo.LinkDetection; import com.yuanchu.limslaboratory.pojo.Material; import com.yuanchu.limslaboratory.service.LinkBasicInformationService; import com.yuanchu.limslaboratory.service.MaterialService; +import com.yuanchu.limslaboratory.service.ProductService; import com.yuanchu.limslaboratory.service.StandardService; import com.yuanchu.limslaboratory.utils.RedisUtil; import com.yuanchu.limslaboratory.vo.Result; import io.swagger.annotations.Api; +import io.swagger.annotations.ApiImplicitParam; +import io.swagger.annotations.ApiImplicitParams; import io.swagger.annotations.ApiOperation; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; +import javax.annotation.Resource; import java.util.List; import java.util.Map; @@ -40,6 +45,9 @@ @Autowired private StandardService standardService; + @Resource + ProductService productService; + @ApiOperation("閾炬帴-->鑾峰彇鏍峰搧鍚嶇О") @GetMapping("/material") public Result<?> getMaterialIdAndName(@RequestHeader("link") String link) { @@ -64,12 +72,27 @@ return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�"); } - @ApiOperation("閾炬帴-->娣诲姞妫�楠岀敵璇峰崟") + @ApiOperation("閾炬帴-->閫夋嫨璇曢獙椤圭洰") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "modelId", value = "鍨嬪彿id", dataTypeClass = Integer.class, required = true) + }) + @GetMapping("/chooseProject") + public Result<?> chooseProject(@RequestHeader("link") String link, Integer modelId) { + String redisLink = RedisUtil.get("viewId").toString(); + if (linkBasicInformationService.isIfViewUUID(redisLink)){ + //鏌ヨ鏍囧噯搴撲腑璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被) + return Result.success(productService.chooseProject(modelId)); + } + return Result.fail("鎶辨瓑閾炬帴閿欒鎴栧凡杩囨湡锛�"); + + } + + @ApiOperation("閾炬帴-->娣诲姞濮旀墭鎶ユ鐢宠鍗�") @PostMapping("/addInspection") public Result<?> addLinkBasicInformation(@RequestHeader("link") String link, @RequestBody LinkBasicInformation linkBasicInformation) { String redisLink = RedisUtil.get("viewId").toString(); if (linkBasicInformationService.isIfViewUUID(redisLink)){ - linkBasicInformation.setUUID(redisLink); + linkBasicInformation.setUid(redisLink); String code = linkBasicInformationService.addLinkBasicInformation(linkBasicInformation); if (!ObjectUtils.isEmpty(code)){ return Result.success("娣诲姞鎴愬姛锛�", code); diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java index 847a506..5c9f196 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkBasicInformation.java @@ -1,13 +1,9 @@ package com.yuanchu.limslaboratory.pojo; import com.baomidou.mybatisplus.annotation.*; - -import java.time.LocalDate; -import java.time.LocalDateTime; import java.io.Serializable; import java.util.Date; import java.util.List; - import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; @@ -88,5 +84,5 @@ private List<LinkDetection> linkDetectionList; @ApiModelProperty(value = "鐢熸垚id锛氫綔鐢ㄤ簬鏈夋晥鏈熷唴鏌ヨ鍐呭鎵�鐢�") - private String UUID; + private String uid; } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java index e62f2a8..5345c81 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/LinkDetection.java @@ -74,7 +74,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; - @ApiModelProperty(value = "妫�楠屾棩鏈�", hidden = true) + @ApiModelProperty(value = "妫�楠屾棩鏈�", required = true,example = "2023-08-22") private Date dateSurvey; @ApiModelProperty(value = "妫�楠岀姸鎬�", hidden = true) diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java index f804333..de59347 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/pojo/vo/InspectionVo.java @@ -5,6 +5,9 @@ import com.fasterxml.jackson.databind.annotation.JsonSerialize; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; + +import javax.validation.constraints.NotBlank; +import javax.validation.constraints.NotNull; import java.io.Serializable; import java.util.Date; //鏂板妫�楠屽崟 @@ -15,6 +18,7 @@ *妫�楠岀被鍨� 0锛氬師鏉愭枡锛�1锛氫骇鍝侊紱2锛氬崐鎴愬搧锛� **/ @JsonSerialize + @NotNull(message = "妫�楠岀被鍨嬩笉鑳戒负绌�") private Integer type; /** @@ -22,30 +26,35 @@ **/ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @NotBlank(message = "鏉ユ枡鏃ユ湡涓嶈兘涓虹┖") private Date formTime; /** * 渚涘簲鍟� **/ @JsonSerialize + @NotBlank(message = "渚涘簲鍟嗕笉鑳戒负绌�") private String supplier; /** * 鐗╂枡缂栫爜 **/ @JsonSerialize + @NotBlank(message = "鏍峰搧缂栫爜涓嶈兘涓虹┖") private String mcode; /** * 鐗╂枡鍚嶇О **/ @JsonSerialize + @NotBlank(message = "鏍峰搧鍚嶇О涓嶈兘涓虹┖") private String name; /** * 瑙勬牸鍚嶇О-鍨嬪彿鍚嶇О **/ @JsonSerialize + @NotBlank(message = "瑙勬牸鍨嬪彿涓嶈兘涓虹┖") private String specifications; /** @@ -58,6 +67,7 @@ * 鎶ユ鏁伴噺-鐗╂枡鏁伴噺 **/ @JsonSerialize + @NotNull(message = "鎶ユ鏁伴噺涓嶈兘涓虹┖") private Integer num; /** @@ -65,6 +75,7 @@ **/ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @NotBlank(message = "妫�楠屽紑濮嬫椂闂翠笉鑳戒负绌�") private Date startTime; /** @@ -72,5 +83,11 @@ **/ @DateTimeFormat(pattern = "yyyy-MM-dd") @JsonFormat(pattern = "yyyy-MM-dd", timezone = "GMT+8") + @NotBlank(message = "妫�楠岀粨鏉熸椂闂翠笉鑳戒负绌�") private Date endTime; + + //璇曢獙椤圭洰 + @NotBlank(message = "璇曢獙椤圭洰涓嶈兘涓虹┖") + @JsonSerialize + private String experiment; } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java index 4c2fec0..e473e4a 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/InspectionService.java @@ -58,5 +58,15 @@ * @return */ String chooseUseProId(Integer id, Integer userProId); + + /** + * 鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈� + * @param name + * @param mcode + * @param specifications + * @return + */ + List<Map<String,Object>> chooseVer(String name, String mcode, String specifications); + } 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 9187912..571f2dc 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 @@ -3,6 +3,7 @@ import cn.hutool.core.lang.Snowflake; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; +import com.baomidou.mybatisplus.core.toolkit.ObjectUtils; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -103,39 +104,46 @@ .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); + //鏍规嵁鏍峰搧鍚嶇О缂栧彿浠ュ強鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id + Integer specificationId = getSpecificationId(inspectionVo.getName(), inspectionVo.getMcode(), inspectionVo.getSpecifications()); + //濡傛灉璇曢獙椤圭洰瀛楁涓嶄负绌� + if (ObjectUtils.isNotEmpty(inspectionVo.getExperiment())) { + //鑾峰彇璇曢獙椤圭洰淇℃伅(缁撴瀯,瀵肩嚎澶栧緞) + List<String> experiments = Arrays.stream(inspectionVo.getExperiment().split(",")).collect(Collectors.toList()); + //鏍规嵁鍨嬪彿id鍜岄」鐩俊鎭煡璇㈤」鐩俊鎭� + List<Product> products = new ArrayList<>(); + for (String experiment : experiments) { + List<Product> productList1 = productMapper.selectList(Wrappers.<Product>query() + .eq("specifications_id", specificationId) + .eq("father", experiment)); + if (ObjectUtils.isEmpty(productList1)) { + Product product = productMapper.selectOne(Wrappers.<Product>query() + .eq("specifications_id", specificationId) + .isNull("father") + .eq("name", experiment)); + products.add(product); + } else products.addAll(productList1); + } + + //灏嗘煡璇㈢殑椤圭洰淇℃伅鏋勫缓鎴愭楠岄」鐩� + ArrayList<InspectionProduct> list = new ArrayList<>(); + for (Product product : products) { + InspectionProduct rawInsProduct = InspectionProduct.builder() + .name(product.getName()) + .unit(product.getUnit()) + .required(product.getRequired()) + .internal(product.getInternal()) + .inspectionMaterialId(inspectionMaterial.getId()) + .build(); + list.add(rawInsProduct); + } + + //妫�楠岄」鐩壒閲忔坊鍔� + inspectionProductService.saveBatch(list); + return inspection.getId(); } - //妫�楠岄」鐩壒閲忔坊鍔� - inspectionProductService.saveBatch(list); - return inspection.getId(); + //todo:鏈畬 + return null; } //鏍规嵁妫�楠屽崟id鏌ヨ鍘熸潗鏂欐楠屽崟璇︽儏 @@ -213,5 +221,34 @@ } + //鏂板妫�楠屽崟-->閫夋嫨妫�楠岄」鐩増鏈� + @Override + public List<Map<String, Object>> chooseVer(String name, String mcode, String specifications) { + Integer specificationId = getSpecificationId(name, mcode, specifications); + return null; + } + + + /*鏍规嵁鏍峰搧鍚嶇О,鏍峰搧缂栧彿,鍨嬪彿瑙勬牸鑾峰彇鍨嬪彿id*/ + private Integer getSpecificationId(String name, String mcode, String specification) { + //鑾峰彇鐗╂枡id + Material material = materialMapper.selectOne(Wrappers.<Material>query() + .eq("name", name) + .eq("code", mcode)); + //鑾峰彇瑙勬牸鍚嶇О鍜屽瀷鍙峰悕绉� + 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())); + return specifications.getId(); + } + } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java index e9c83d9..d7dd0eb 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkBasicInformationServiceImpl.java @@ -34,10 +34,13 @@ @Override public String addLinkBasicInformation(LinkBasicInformation linkBasicInformation) { + //濮旀墭缂栧彿 String code = MyUtil.getTimeSixNumberCode("SL", "SL"); linkBasicInformation.setEntrustCoding(code); + //鏂板鍩烘湰淇℃伅琛� int insert = linkBasicInformationMapper.insert(linkBasicInformation); if (insert == 1) { + //鏂板濮旀墭鏍峰搧琛� linkDetectionService.insertListData(linkBasicInformation.getId(), linkBasicInformation.getLinkDetectionList()); return code; } diff --git a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java index 1bcd989..e347c34 100644 --- a/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java +++ b/inspection-server/src/main/java/com/yuanchu/limslaboratory/service/impl/LinkDetectionServiceImpl.java @@ -27,7 +27,7 @@ @Override public void insertListData(Integer id, List<LinkDetection> linkDetectionList) { for (LinkDetection linkDetection:linkDetectionList){ - linkDetection.setInspectionStatus(2); + linkDetection.setInspectionStatus(1); linkDetection.setLinkBasicId(id); } linkDetectionMapper.insertBatchSomeColumn(linkDetectionList); diff --git a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml index 2acf86f..3ce5aec 100644 --- a/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml +++ b/inspection-server/src/main/resources/mapper/LinkBasicInformationMapper.xml @@ -25,19 +25,19 @@ </select> <select id="selectLinkAll" resultType="java.util.Map"> - SELECT DATE_FORMAT(l.`inspection_time`,'%Y-%m-%d') formTime, - l.`entrusted` supplier, - d.`sample_number` mcode, - d.`sample_name` name, - d.`specifications_models` specifications, + SELECT DATE_FORMAT(l.`inspection_time`, '%Y-%m-%d') formTime, + l.`entrusted` supplier, + d.`sample_number` mcode, + d.`sample_name` name, + d.`specifications_models` specifications, d.`unit`, - d.`samples_number` num, - DATE_FORMAT(date_survey,'%Y-%m-%d') startTime, - DATE_FORMAT(completion_deadline,'%Y-%m-%d') endTime + d.`samples_number` num, + experiment, + DATE_FORMAT(date_survey, '%Y-%m-%d') startTime, + DATE_FORMAT(completion_deadline, '%Y-%m-%d') endTime FROM lims_laboratory.link_basic_information l, lims_laboratory.link_detection d WHERE l.`id` = d.`link_basic_id` AND l.`state` = 1 </select> - </mapper> diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java index 31b730b..79f34f0 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/controller/ProductController.java @@ -1,18 +1,11 @@ package com.yuanchu.limslaboratory.controller; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.service.ProductService; import com.yuanchu.limslaboratory.utils.MyUtil; import com.yuanchu.limslaboratory.vo.Result; import io.swagger.annotations.*; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; - -import java.util.HashMap; -import java.util.List; -import java.util.Map; -import java.util.Objects; /** * <p> @@ -30,20 +23,32 @@ @Autowired private ProductService productService; - @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�") + @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�-->閫夋嫨鐗堟湰") @ApiImplicitParams(value = { @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿ID", dataTypeClass = Integer.class, required = true) }) + @GetMapping("/chooseVersion") + public Result<?> chooseVersion(Integer specificationsId) { + return Result.success(productService.chooseVersion(specificationsId)); + } + + @ApiOperation("鏌ヨ璇ュ瀷鍙蜂笅鐨勯」鐩�") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿ID", dataTypeClass = Integer.class, required = true), + @ApiImplicitParam(name = "version", value = "鐗堟湰(榛樿鏈�鏂扮増鏈�)", dataTypeClass = Integer.class,required = true ) + }) @GetMapping("/page") - public Result<?> pageProductInformation(Integer specificationsId) { - return Result.success(productService.pageProductInformation(specificationsId)); + public Result<?> pageProductInformation(Integer specificationsId,Integer version) { + return Result.success(productService.pageProductInformation(specificationsId,version)); } @ApiOperation("濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨") @ApiImplicitParams(value = { @ApiImplicitParam(name = "id", value = "鏍囧噯椤圭洰ID", dataTypeClass = Integer.class, required = true), @ApiImplicitParam(name = "required", value = "鏍囧噯鍊�", dataTypeClass = String.class, required = true), + @ApiImplicitParam(name = "internal", value = "鍐呮帶鍊�", dataTypeClass = String.class, required = true), @ApiImplicitParam(name = "internal", value = "鍐呮帶鍊�", dataTypeClass = String.class, required = true) + }) @PostMapping("/write") public Result<?> write(Integer id, String required, String internal) { @@ -64,4 +69,14 @@ productService.deleteList(ids); return Result.success("鍒犻櫎鎴愬姛"); } + + @ApiOperation("娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰") + @ApiImplicitParams(value = { + @ApiImplicitParam(name = "specificationsId", value = "鍨嬪彿id", dataTypeClass = Integer.class, required = true) + }) + @PostMapping("/addVersion") + public Result<?> addVersion(Integer specificationsId ) { + Integer version = productService.addVersion(specificationsId); + return Result.success("娣诲姞鐗堟湰"+version+"鎴愬姛"); + } } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java index 5abf378..13958cd 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/mapper/ProductMapper.java @@ -24,7 +24,13 @@ List<Map> selectProductByMaterialId(int materialId); //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹� - List<Map<String, Object>> pageProductInformation(Integer specificationsId); + List<Map<String, Object>> pageProductInformation(Integer specificationsId,Integer version); void deleteList(String ids); + + //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰 + List<Integer> chooseVersion(Integer specificationsId); + + //鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被) + List<Map<String,Object>> chooseProject(Integer modelId); } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java index 14a985e..7cc9533 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/pojo/Product.java @@ -60,7 +60,7 @@ @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8") private Date updateTime; - @ApiModelProperty(value = "涔愯閿�", hidden = true) + @ApiModelProperty(value = "鐗堟湰", hidden = true) private Integer version; @ApiModelProperty(value = "鍏宠仈 鍨嬪彿id", example = "1", hidden = true) diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java index 7836058..a81e74a 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/ProductService.java @@ -1,13 +1,10 @@ package com.yuanchu.limslaboratory.service; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.limslaboratory.pojo.Product; import com.baomidou.mybatisplus.extension.service.IService; import java.util.List; import java.util.Map; -import java.util.Objects; /** @@ -21,13 +18,20 @@ public interface ProductService extends IService<Product> { void deleteProductInformation(List<Integer> SpecificationsId); + /** + * 灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰 + * @param specificationsId + * @return + */ + List<Integer> chooseVersion(Integer specificationsId); + /** * 灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹� * @param specificationsId * @return */ - List<Map<String,Object>> pageProductInformation(Integer specificationsId); + List<Map<String,Object>> pageProductInformation(Integer specificationsId,Integer version); /** * 濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨 @@ -39,4 +43,19 @@ Integer write(Integer id, String required, String internal); void deleteList(String ids); + + /** + * 娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰 + * @param specificationsId + * @return + */ + Integer addVersion(Integer specificationsId); + + + /** + * 鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被) + * @param modelId + * @return + */ + List<Map<String,Object>> chooseProject(Integer modelId); } diff --git a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java index a08eb0e..eed66aa 100644 --- a/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java +++ b/standard-server/src/main/java/com/yuanchu/limslaboratory/service/impl/ProductServiceImpl.java @@ -1,28 +1,18 @@ package com.yuanchu.limslaboratory.service.impl; -import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; -import com.baomidou.mybatisplus.core.metadata.IPage; -import com.baomidou.mybatisplus.extension.plugins.pagination.Page; -import com.yuanchu.limslaboratory.mapper.ProductModelMapper; -import com.yuanchu.limslaboratory.mapper.SpecificationsMapper; +import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.yuanchu.limslaboratory.pojo.Product; import com.yuanchu.limslaboratory.mapper.ProductMapper; -import com.yuanchu.limslaboratory.pojo.ProductModel; import com.yuanchu.limslaboratory.service.ProductService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.yuanchu.limslaboratory.utils.MyUtil; -import org.springframework.beans.factory.annotation.Autowired; -import com.yuanchu.limslaboratory.service.UserService; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; -import org.springframework.util.ObjectUtils; - import javax.annotation.Resource; -import java.util.ArrayList; import java.util.List; import java.util.Map; -import java.util.Objects; + /** * <p> @@ -38,9 +28,6 @@ @Resource private ProductMapper productMapper; - @Resource - ProductModelMapper productModelMapper; - @Override public void deleteProductInformation(List<Integer> SpecificationsId) { @@ -52,11 +39,17 @@ } } + //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-->閫夋嫨鐗堟湰 + @Override + public List<Integer> chooseVersion(Integer specificationsId) { + return productMapper.chooseVersion(specificationsId); + } + //灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹� @Override @Transactional(rollbackFor = Exception.class) - public List<Map<String, Object>> pageProductInformation(Integer specificationsId) { - return productMapper.pageProductInformation(specificationsId); + public List<Map<String, Object>> pageProductInformation(Integer specificationsId,Integer version) { + return productMapper.pageProductInformation(specificationsId,version); } //濉啓鏍囧噯鍊间笌鍐呮帶鍊�,榧犳爣绉诲紑淇濆瓨 @@ -75,5 +68,22 @@ productMapper.deleteList(ids); } + //娣诲姞鍚屼竴涓瀷鍙风殑鍏朵粬鐗堟湰 + @Override + public Integer addVersion(Integer specificationsId) { + List<Product> productList = productMapper.selectList(Wrappers.<Product>query().eq("specifications_id", specificationsId)); + for (Product product : productList) { + product.setVersion(product.getVersion()+1); + } + saveBatch(productList); + return productList.get(0).getVersion(); + } + + //鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被) + @Override + public List<Map<String,Object>> chooseProject(Integer modelId) { + return productMapper.chooseProject(modelId); + } + } diff --git a/standard-server/src/main/resources/mapper/ProductMapper.xml b/standard-server/src/main/resources/mapper/ProductMapper.xml index 1014cc6..3529109 100644 --- a/standard-server/src/main/resources/mapper/ProductMapper.xml +++ b/standard-server/src/main/resources/mapper/ProductMapper.xml @@ -23,6 +23,7 @@ <result property="unit" column="unit"/> <result property="required" column="required"/> <result property="internal" column="internal"/> + <result property="version" column="version"/> </resultMap> <select id="pageProductInformation" resultMap="pageProductInformationMap"> @@ -31,10 +32,12 @@ father, unit, required, - internal + internal, + version from lims_laboratory.product where state = 1 and specifications_id = #{specificationsId} + and version = #{version} </select> <select id="deleteList"> @@ -42,4 +45,29 @@ set state=0 where id in (${ids}) </select> + + <!--灞曠ず璇ュ瀷鍙蜂笅鐨勬楠岄」鐩姹�-閫夋嫨鐗堟湰--> + <select id="chooseVersion" resultType="java.lang.Integer"> + select distinct version + from lims_laboratory.product + where state = 1 + and specifications_id = #{specificationsId} + order by version desc + </select> + + <!--鏌ヨ璇ュ瀷鍙蜂笅鐨勬墍鏈夎瘯楠岄」鐩�(鐖剁被)--> + <resultMap id="chooseProjects" type="map"> + <id property="name" column="father"/> + <collection property="children" resultMap="chooseProjectTowMap" javaType="List"/> + </resultMap> + <resultMap id="chooseProjectTowMap" type="map"> + <id property="id" column="id"/> + <result property="name" column="name"/> + </resultMap> + <select id="chooseProject" resultMap="chooseProjects"> + select id, father, name + from lims_laboratory.product + where state = 1 + and specifications_id = #{modelId} + </select> </mapper> -- Gitblit v1.9.3