From dd301742784e570ec01098907f56e5c9c19b5a99 Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期二, 23 七月 2024 17:26:56 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java | 7 - inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java | 7 + cnas-server/src/main/resources/mapper/DeviceMapper.xml | 3 cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java | 4 inspect-server/src/main/resources/mapper/InsOrderMapper.xml | 8 + inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 45 +++++-- cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java | 210 ++++++++++++++++++++++++++++++++++ inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 5 inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java | 8 cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java | 6 inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java | 2 inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 3 12 files changed, 274 insertions(+), 34 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java index dda239a..1e72fb4 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/CapacityScopeController.java @@ -376,6 +376,214 @@ } @ValueClassify(value = "鑳藉姏鑼冨洿") + @ApiOperation(value = "瑁呭瀵煎叆妫�楠岄」鐩�") + @PostMapping("/importEquipData") + @Transactional + public Result importEquipData(@RequestParam("file") MultipartFile file) throws Exception { + InputStream inputStream = file.getInputStream(); + List<StructureItemParameter> lists = new ArrayList<>(); + AtomicReference<String> sample = new AtomicReference<>(); + ExcelUtil.readBySax(inputStream, -1, (i, l, list1) -> { + if (l == 1) { + sample.set(list1.get(1) + ""); + } + if (l >= 1) { + StructureItemParameter str = new StructureItemParameter(); + if (list1.get(1) == null) { + str.setSample(null); + } else { + String brand = (String) list1.get(1); + StringBuilder builder = new StringBuilder(); + builder.append("["); + if (ObjectUtil.isNotEmpty(list1.get(2))) { + String production = (String) list1.get(2); + if (!production.contains("锛�")) { + builder.append(String.format("[\"%s\",\"%s\"]", brand, production)); + } else { + Arrays.stream(production.split("锛�")).forEach(item -> { + builder.append(String.format("[\"%s\",\"%s\"],", brand, item)); + }); + builder.deleteCharAt(builder.length() - 1); + } + } else { + builder.append("["); + builder.append(String.format("\"%s\"", brand)); + builder.append("]"); + } + builder.append("]"); + str.setSample(builder.toString()); + } + str.setInspectionItem(list1.get(4).toString()); + if (list1.get(5) != null) { + str.setInspectionItemEn(list1.get(5).toString()); + } + if (list1.get(6) == null) { + str.setInspectionItemSubclass(null); + } else { + str.setInspectionItemSubclass(list1.get(6).toString()); + } + if (list1.get(7) == null) { + str.setInspectionItemSubclassEn(null); + } else { + str.setInspectionItemSubclassEn(String.valueOf(list1.get(7).toString())); + } + StructureItemParameter db_str; + if (StringUtils.isEmpty(str.getInspectionItemSubclass())) { + // 姣旇緝涓や釜鏉′欢 + try { + db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class) + .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) + .eq(StructureItemParameter::getSample, str.getSample()) + .last("limit 1") + ); + } catch (Exception e) { + throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem()); + } + } else { + try { + db_str = structureItemParameterService.getOne(Wrappers.lambdaQuery(StructureItemParameter.class) + .eq(StructureItemParameter::getInspectionItem, str.getInspectionItem()) + .eq(StructureItemParameter::getSample, str.getSample()) + .eq(StructureItemParameter::getInspectionItemSubclass, str.getInspectionItemSubclass()) + .last("limit 1") + ); + } catch (Exception e) { + throw new ErrorException("閲嶅鏌ヨ锛�" + str.getInspectionItem() + " " + str.getInspectionItemSubclass()); + } + } + if (ObjectUtils.isNotEmpty(db_str)) { + str.setId(db_str.getId()); + } + if (list1.get(8) == null) { + str.setMethod(null); + } else { + StringBuffer buffer = new StringBuffer(); + String input = list1.get(8).toString(); + buffer.append("["); + String[] values = input.split("锛�"); + for (String value : values) { + buffer.append("\"").append(value.trim()).append("\","); + } + buffer.deleteCharAt(buffer.length() - 1); + buffer.append("]"); + str.setMethod(buffer.toString()); + } + + if (list1.get(9) == null) { + str.setSonLaboratory(null); + } else { + str.setSonLaboratory(list1.get(9).toString()); + } + if (list1.get(10) == null) { + str.setUnit(null); + } else { + str.setUnit(list1.get(10).toString()); + } + + if (list1.get(11) == null) { + str.setAskTell(null); + } else { + str.setAskTell(list1.get(11).toString()); + } + + if (list1.get(12) == null) { + str.setAsk(null); + } else { + str.setAsk(list1.get(12).toString()); + } + + if (list1.get(13) == null) { + str.setPrice(null); + } else { + str.setPrice(list1.get(13) + ""); + } + + if (list1.get(14) == null) { + str.setManHour(null); + } else { + str.setManHour(Double.valueOf(list1.get(14).toString())); + } + + if (list1.get(15) == null) { + str.setManHourGroup(null); + } else { + str.setManHourGroup(list1.get(15).toString()); + } + + if (list1.get(16) == null) { + str.setManDay(null); + } else { + str.setManDay(Integer.valueOf(list1.get(16).toString())); + } + String jy; + if (list1.get(17).toString().equals("闈為噰闆嗙被鍨�")) { + jy = "0"; + } else { + jy = "1"; + } + str.setInspectionItemType(jy); + String validateValueType = list1.get(18).toString(); + if (StringUtils.isNotBlank(validateValueType)) { + Enums enums = enumService.getOne(Wrappers.lambdaQuery(Enums.class) + .eq(Enums::getCategory, "妫�楠屽�肩被鍨�") + .eq(Enums::getLabel, validateValueType)); + str.setInspectionValueType(enums.getValue()); + } + int bsm; + if (list1.get(19).toString().equals("鍚�")) { + bsm = 0; + } else { + bsm = 1; + } + str.setBsm(bsm + ""); + if (list1.get(20) != null) { + str.setDic(list1.get(20) + ""); + } else { + str.setDic(null); + } + StandardTemplate standTempIdByName = standardTemplateService.getStandTempIdByName(String.valueOf(list1.get(21))); + if (standTempIdByName != null) { + str.setTemplateId(standTempIdByName.getId()); + } else { + str.setTemplateId(null); + } + try { + if (list1.get(22) != null && list1.get(22) != "") { + str.setInspectionItemClass(list1.get(22) + ""); + } else { + str.setInspectionItemClass(null); + } + } catch (Exception e) { + } + try { + if (list1.get(23) != null && list1.get(23) != "") { + str.setInspectionItemClassEn(list1.get(23) + ""); + } else { + str.setInspectionItemClassEn(null); + } + } catch (Exception e) { + } + try { + if (list1.get(24) != null) { + str.setLaboratory(list1.get(24) + ""); + } + } catch (Exception e) { + } + lists.add(str); + } + }); + structureItemParameterService.removeNoSample(sample.get()); + // 濡傛灉鏁版嵁搴撻噷闈㈢殑鏁版嵁瀛樺湪閭d箞灏辨墽琛屾洿鏂版嫹璐濇搷浣� + try { + structureItemParameterService.saveOrUpdateBatch(lists); + } catch (Exception e) { + e.printStackTrace(); + throw new RuntimeException("鏈嶅姟绔姤閿欏暒!!!"); + } + return Result.success(); + } + + @ValueClassify(value = "鑳藉姏鑼冨洿") @ApiOperation(value = "瀵煎叆妫�楠屽璞�") @PostMapping("/importExcel") public Result importExcel(@RequestParam("file") MultipartFile file) { @@ -386,4 +594,4 @@ } return Result.success(); } -} \ No newline at end of file +} diff --git a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java index 0f143a9..909c79a 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java @@ -128,10 +128,10 @@ @ApiModelProperty("瀛樺偍鍦板潃") private String storageUrl; + @ApiModelProperty("璁惧IP") + private String ip; + @ApiModelProperty("鏄惁涓烘暟閲囪澶�") @TableField(exist = false) private Boolean isItADataAcquisitionDevice; - - @ApiModelProperty("璁惧IP") - private String ip; } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java index 79c8bf5..d8609a0 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java @@ -116,11 +116,6 @@ String[] ids = device.getInsProductIds().split(","); for (String i : ids) { if (i.equals(id + "")) { - if (ObjectUtils.isEmpty(device.getFileType()) || ObjectUtils.isEmpty(device.getCollectUrl())) { - device.setIsItADataAcquisitionDevice(false); - } else { - device.setIsItADataAcquisitionDevice(true); - } devices2.add(device); break; } @@ -138,7 +133,7 @@ public Result<?> dataAcquisition(HttpServletRequest request, Integer id, String entrustCode, String sampleCode) { String ipAddress = request.getRemoteAddr(); // 闃叉鍥炵幆鍦板潃鍙樹负IPv6 - String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress; + String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress; List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery() .eq(Device::getIp, ip)); if (ObjectUtils.isEmpty(device)) { diff --git a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java index d89a644..87b261b 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java @@ -84,10 +84,10 @@ } // 濡傛灉瀛樺湪瀛樺偍鍦板潃锛屽垯绉诲姩鍦板潃 if (ObjectUtils.isNotEmpty(device.getStorageUrl())) { - String s = HTTP + ip + MOVEFILE + "?startFilePath=" + device.getCollectUrl() + "&endFilePath=" + device.getStorageUrl(); + String s = HTTP + ip + MOVEFILE + "?startFilePath=" + device.getCollectUrl() + "&endFilePath=" + device.getStorageUrl() + "&fileType=" + device.getFileType(); String storageUrlResult = HttpUtil.get(s); JSONObject storageUrlResultJson = JSON.parseObject(storageUrlResult); - if (Objects.equals(storageUrlResultJson.get("code"), 1)) { + if (Objects.equals(storageUrlResultJson.get("code"), 0)) { if (ObjectUtils.isEmpty(storageUrlResultJson.get("msg"))) { throw new ErrorException("瀛樺偍鍦板潃閿欒锛屽彲鑳芥枃浠惰矾寰勯厤缃敊璇紒"); } else { diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml index 40bcc1f..60660a3 100644 --- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml +++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml @@ -119,7 +119,8 @@ </select> <select id="getInspectionItemSubclass" resultType="java.lang.String"> - SELECT ip.inspection_item_subclass FROM ins_product ip + SELECT if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '', + ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass FROM ins_product ip where ip.ins_sample_id = #{id} </select> </mapper> diff --git a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java index dfdb382..3b166f9 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java @@ -18,6 +18,7 @@ import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.HashMap; import java.util.Map; @@ -80,8 +81,8 @@ @ValueAuth @PostMapping("/getInsProduct") @ApiOperation("鑾峰彇妫�楠岄」鐩拰妯℃澘鍐呭") - public Result<?> getInsProduct(Integer id, Integer type, String laboratory) { - return Result.success(insOrderPlanService.getInsProduct(id, type, laboratory)); + public Result<?> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request) { + return Result.success(insOrderPlanService.getInsProduct(id, type, laboratory, request)); } @ValueClassify("妫�楠屼换鍔�") diff --git a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java index 25fb187..57a0348 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/mapper/InsOrderMapper.java @@ -53,4 +53,6 @@ List<Map<Integer, Object>> selectReportModelByOrderId(@Param("id") Integer id, @Param("laboratory") String laboratory); String seldepLimsId(int depLimsId); + + Map<String, Object> getDeviceMessage(@Param("ip")String ip, @Param("inspectionItem") String inspectionItem); } \ No newline at end of file diff --git a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java index 2ccace9..c6b89b4 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/pojo/InsProductResult.java @@ -1,15 +1,13 @@ package com.yuanchu.mom.pojo; import com.baomidou.mybatisplus.annotation.*; - -import java.io.Serializable; -import java.time.LocalDateTime; -import java.util.Date; - import com.fasterxml.jackson.annotation.JsonFormat; import io.swagger.annotations.ApiModelProperty; import lombok.Data; +import java.io.Serializable; +import java.time.LocalDateTime; + /** * 妫�楠岄」鐩殑缁撴灉 * @TableName ins_product_result diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java index 7b49e94..ba0ffcd 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java @@ -6,6 +6,7 @@ import com.yuanchu.mom.pojo.InsProduct; import org.springframework.web.multipart.MultipartFile; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -29,7 +30,7 @@ int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String sampleCode); - List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory); + List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request); List<String> checkSubmitPlan(Integer orderId, String laboratory); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java index 79d817d..8c51007 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java @@ -3,7 +3,6 @@ import cn.hutool.core.bean.BeanUtil; import cn.hutool.core.date.DateTime; import cn.hutool.core.date.DateUtil; -import cn.hutool.core.lang.Console; import cn.hutool.core.lang.UUID; import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.StrUtil; @@ -22,10 +21,11 @@ import com.deepoove.poi.data.*; import com.deepoove.poi.data.style.*; import com.deepoove.poi.util.TableTools; -import com.deepoove.poi.xwpf.WidthScalePattern; import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; -import com.yuanchu.mom.dto.*; +import com.yuanchu.mom.dto.ExcelDto; +import com.yuanchu.mom.dto.InsOrderPlanDTO; +import com.yuanchu.mom.dto.SampleProductDto; import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.*; import com.yuanchu.mom.pojo.*; @@ -34,22 +34,17 @@ import com.yuanchu.mom.utils.MatrixToImageWriter; import com.yuanchu.mom.utils.QueryWrappers; import com.yuanchu.mom.utils.RedisUtil; -import com.yuanchu.mom.vo.InsOrderPlanTaskSwitchVo; -import com.yuanchu.mom.vo.InsOrderPlanVO; -import com.yuanchu.mom.vo.ProductVo; -import com.yuanchu.mom.vo.SampleVo; +import com.yuanchu.mom.vo.*; import org.apache.commons.io.IOUtils; import org.apache.poi.xwpf.usermodel.*; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.CTTblWidth; -import org.openxmlformats.schemas.wordprocessingml.x2006.main.STTblWidth; import org.springframework.beans.factory.annotation.Value; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.web.multipart.MultipartFile; import javax.annotation.Resource; +import javax.servlet.http.HttpServletRequest; import java.io.*; -import java.math.BigInteger; import java.nio.file.Files; import java.nio.file.Paths; import java.text.SimpleDateFormat; @@ -132,7 +127,6 @@ @Resource private InsOrderFileMapper insOrderFileMapper; - @Override public Map<String, Object> selectInsOrderPlanList(Page page, InsOrderPlanDTO insOrderPlanDTO) { Map<String, Object> map = new HashMap<>(); @@ -197,7 +191,7 @@ } @Override - public List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory) { + public List<InsProduct> getInsProduct(Integer id, Integer type, String laboratory, HttpServletRequest request) { List<InsProduct> insProducts = new ArrayList<>(); switch (type) { case 0: @@ -210,6 +204,9 @@ insProducts = insSampleMapper.getInsProduct3(id); break; } + // 鏁伴噰鏂板 + getDeviceMessage(insProducts, request); + Set<Integer> set = new HashSet<>(); Map<Integer, String> map2 = new HashMap<>(); if (BeanUtil.isEmpty(insProducts)) return null; @@ -217,6 +214,30 @@ return insProducts; } + private List<InsProduct> getDeviceMessage(List<InsProduct> insProducts, HttpServletRequest request) { + String ipAddress = request.getRemoteAddr(); + // 闃叉鍥炵幆鍦板潃鍙樹负IPv6 + String ip = ipAddress.equals("0:0:0:0:0:0:0:1") ? "127.0.0.1" : ipAddress; + insProducts.forEach(i -> { + Map<String, Object> devices = baseMapper.getDeviceMessage(ip, i.getInspectionItem()); + if (ObjectUtils.isNotEmpty(devices)) { + InsProductResult insProductResult = i.getInsProductResult(); + List<Object> list = new ArrayList<>(); + Map<Object, Object> hashMap = new HashMap<>(); + hashMap.put("v", devices.get("device_name")); + list.add(hashMap); + insProductResult.setEquipName(JSON.toJSON(list).toString()); + List<Object> listValue = new ArrayList<>(); + Map<Object, Object> hashMapValue = new HashMap<>(); + hashMapValue.put("v", devices.get("management_number")); + listValue.add(hashMapValue); + insProductResult.setEquipName(JSON.toJSON(list).toString()); + insProductResult.setEquipValue(JSON.toJSON(listValue).toString()); + } + }); + return insProducts; + } + @Override public List<String> checkSubmitPlan(Integer orderId, String laboratory) { List<String> collect = new ArrayList<>(); diff --git a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java index 9ea8481..41a8ecc 100644 --- a/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java +++ b/inspect-server/src/main/java/com/yuanchu/mom/service/impl/StandardTreeServiceImpl.java @@ -68,7 +68,12 @@ @Override @Transactional(rollbackFor = Exception.class) public int addStandardTree(StandardTree standardTree) { - StandardTree tree = standardTreeMapper.selectOne(Wrappers.<StandardTree>lambdaQuery().eq(StandardTree::getModel, standardTree.getModel())); + StandardTree tree = standardTreeMapper.selectOne(Wrappers.<StandardTree>lambdaQuery() + .eq(StandardTree::getFactory, standardTree.getFactory()) + .eq(StandardTree::getLaboratory, standardTree.getLaboratory()) + .eq(StandardTree::getSampleType, standardTree.getSampleType()) + .eq(StandardTree::getSample, standardTree.getSample()) + .eq(StandardTree::getModel, standardTree.getModel())); if (tree != null) { throw new ErrorException("璇ュ瀷鍙峰凡瀛樺湪"); } diff --git a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml index b6396c8..6f450e0 100644 --- a/inspect-server/src/main/resources/mapper/InsOrderMapper.xml +++ b/inspect-server/src/main/resources/mapper/InsOrderMapper.xml @@ -456,4 +456,12 @@ from department_lims where id = #{depLimsId} </select> + + <select id="getDeviceMessage" resultType="java.util.Map"> + select d.* + from device d, structure_item_parameter sip + where d.ip = #{ip} + and sip.inspection_item = #{inspectionItem} + limit 1 + </select> </mapper> -- Gitblit v1.9.3