From c0fd46ed9c7ddf7a3ea4e6a972474e9a62c68a1a Mon Sep 17 00:00:00 2001 From: zss <zss@example.com> Date: 星期一, 22 七月 2024 19:59:10 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java | 2 cnas-server/src/main/resources/mapper/DeviceMapper.xml | 5 cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java | 66 ++++++ cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java | 15 + cnas-server/src/main/resources/mapper/DataConfigMapper.xml | 23 ++ inspect-server/src/main/java/com/yuanchu/mom/service/impl/InsOrderPlanServiceImpl.java | 6 cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java | 6 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DeviceServiceImpl.java | 38 +++ cnas-server/src/main/java/com/yuanchu/mom/utils/DataAcquisition.java | 322 +++++++++++++++++--------------- cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java | 58 +++- cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java | 5 inspect-server/src/main/java/com/yuanchu/mom/controller/InsOrderPlanController.java | 9 cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java | 6 cnas-server/src/main/java/com/yuanchu/mom/pojo/Device.java | 3 cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java | 19 + inspect-server/src/main/java/com/yuanchu/mom/service/InsOrderPlanService.java | 3 16 files changed, 400 insertions(+), 186 deletions(-) diff --git a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java index 6fecd36..6a73257 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/controller/DeviceController.java @@ -8,12 +8,10 @@ import com.yuanchu.mom.annotation.ValueClassify; import com.yuanchu.mom.dto.DataConfigDto; import com.yuanchu.mom.dto.DeviceDto; -import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.pojo.DataConfig; import com.yuanchu.mom.pojo.Device; import com.yuanchu.mom.service.DataConfigService; import com.yuanchu.mom.service.DeviceService; -import com.yuanchu.mom.utils.DataAcquisition; import com.yuanchu.mom.utils.JackSonUtil; import com.yuanchu.mom.vo.Result; import io.swagger.annotations.Api; @@ -28,9 +26,11 @@ import java.io.File; import java.time.LocalDateTime; import java.time.format.DateTimeFormatter; +import java.util.Arrays; import java.util.HashMap; import java.util.List; import java.util.Map; +import java.util.stream.Collectors; /** * 璁惧(DeviceController)琛ㄦ帶鍒跺眰 @@ -167,18 +167,10 @@ @ValueClassify("璁惧") @ApiOperation("/鏁伴噰-鏁版嵁閲囬泦") @GetMapping("/dataCollection") - public Result<?> text(HttpServletRequest request, @RequestParam("managementNumber") String managementNumber, + public Result<?> dataAcquisition(HttpServletRequest request, @RequestParam("id") Integer id, @RequestParam("entrustCode") String entrustCode, @RequestParam("sampleCode") String sampleCode) { - Device device = deviceService.getOne(Wrappers.<Device>lambdaQuery() - .eq(Device::getManagementNumber, managementNumber)); - if (ObjectUtils.isEmpty(device.getFileType()) || ObjectUtils.isEmpty(device.getCollectUrl())) { - throw new ErrorException("鏈粰璇ワ細" + device.getDeviceName() + "璁惧閰嶇疆閲囬泦璺緞鎴栨枃浠跺悗缂�锛�"); - } - List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() - .eq(DataConfig::getDeviceId, device.getId()) - .orderBy(false, false, DataConfig::getId)); - return DataAcquisition.dataAcquisitionEntrance(request,list, device, entrustCode, sampleCode); + return deviceService.dataAcquisition(request, id, entrustCode, sampleCode); } @ValueAuth @@ -200,26 +192,54 @@ @ValueClassify("璁惧") @ApiOperation(value = "缁存姢鏁伴噰閰嶇疆") @PostMapping("/saveDataAcquisitionConfiguration") - public Result<?> saveDataAcquisitionConfiguration(@RequestBody DataConfigDto dataConfigList) { - dataConfigService.saveOrUpdateBatch(dataConfigList.getDataConfigList()); + public Result<?> saveDataAcquisitionConfiguration(@RequestParam(value = "deviceId") Integer deviceId, @RequestBody DataConfigDto dataConfigList) { + if (dataConfigList.getIsDevice()) { + Device device = new Device(); + device.setId(deviceId); + device.setCollectUrl(dataConfigList.getCollectUrl()); + device.setStorageUrl(dataConfigList.getStorageUrl()); + device.setIp(dataConfigList.getIp()); + device.setFileType(device.getFileType()); + deviceService.updateById(device); + } else { + dataConfigService.saveOrUpdateBatch(dataConfigList.getDataConfigList()); + } return Result.success(); } + +// @ValueClassify("璁惧") +// @ApiOperation(value = "鏌ヨ鏁伴噰閰嶇疆") +// @GetMapping("/queryDataAcquisitionConfiguration") +// public Result<?> queryDataAcquisitionConfiguration(@RequestParam("deviceId") Integer deviceId, @RequestParam("insProductItem") String insProductItem) { +// List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() +// .eq(DataConfig::getDeviceId, deviceId) +// .eq(DataConfig::getInsProductItem, insProductItem)); +// return Result.success(list); +// } @ValueClassify("璁惧") @ApiOperation(value = "鏌ヨ鏁伴噰閰嶇疆") @GetMapping("/queryDataAcquisitionConfiguration") - public Result<?> queryDataAcquisitionConfiguration(@RequestParam("deviceId") Integer deviceId, @RequestParam("insProductItem") String insProductItem) { - List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() + public Result<?> queryDataAcquisitionConfiguration(@RequestParam("deviceId") Integer deviceId, + @RequestParam("isDevice") Boolean isDevice, + @RequestParam(value = "insProductItem", required = false) String insProductItem) { + if (isDevice) { + List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() .eq(DataConfig::getDeviceId, deviceId) .eq(DataConfig::getInsProductItem, insProductItem)); - return Result.success(list); + return Result.success(list); + } else { + return Result.success(dataConfigService.selectDataConfigList(deviceId)); + } } @ValueClassify("璁惧") @ApiOperation(value = "鍒犻櫎鏁伴噰閰嶇疆") @DeleteMapping("/deleteDataAcquisitionConfiguration") - public Result<?> deleteDataAcquisitionConfiguration(@RequestParam("id") Integer id) { - dataConfigService.removeById(id); + public Result<?> deleteDataAcquisitionConfiguration(@RequestParam("ids") String ids) { + List<String> split = Arrays.asList(ids.split(",")); + List<String> collect = split.stream().distinct().collect(Collectors.toList()); + dataConfigService.removeBatchByIds(collect); return Result.success(); } } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java index 2f60a45..d3fafcc 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DataConfigDto.java @@ -1,6 +1,7 @@ package com.yuanchu.mom.dto; import com.yuanchu.mom.pojo.DataConfig; +import io.swagger.annotations.ApiModelProperty; import lombok.Data; import java.util.List; @@ -9,4 +10,18 @@ public class DataConfigDto { private List<DataConfig> dataConfigList; + + private Boolean isDevice; + + @ApiModelProperty("鏂囦欢鍚庣紑") + private String fileType; + + @ApiModelProperty("閲囬泦鍦板潃") + private String collectUrl; + + @ApiModelProperty("瀛樺偍鍦板潃") + private String storageUrl; + + @ApiModelProperty("璁惧IP") + private String ip; } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java new file mode 100644 index 0000000..779fce1 --- /dev/null +++ b/cnas-server/src/main/java/com/yuanchu/mom/dto/DeviceConfigDtoPage.java @@ -0,0 +1,66 @@ +package com.yuanchu.mom.dto; + +import com.baomidou.mybatisplus.annotation.FieldFill; +import com.baomidou.mybatisplus.annotation.TableField; +import com.yuanchu.mom.annotation.ValueTableShow; +import com.yuanchu.mom.common.OrderBy; +import io.swagger.annotations.ApiModelProperty; +import lombok.Data; + +@Data +public class DeviceConfigDtoPage extends OrderBy { + + @ValueTableShow(2) + @ApiModelProperty(value = "璁惧鍚嶇О") + private String deviceName; + + @ApiModelProperty(value = "鍒涘缓鐢ㄦ埛") + @TableField(fill = FieldFill.INSERT) + private Integer createUser; + + @ValueTableShow(3) + @ApiModelProperty(value = "鏂囦欢鍚庣紑") + private String fileType; + + @ValueTableShow(4) + @ApiModelProperty(value = "閲囬泦鍦板潃") + private String collectUrl; + + @ValueTableShow(5) + @ApiModelProperty(value = "瀛樺偍鍦板潃") + private String storageUrl; + + @ValueTableShow(6) + @ApiModelProperty(value = "IP鍦板潃") + private String ip; + + @ValueTableShow(7) + @ApiModelProperty(value = "妫�楠岄」") + private String inspectionItem; + + @ValueTableShow(8) + @ApiModelProperty(value = "妫�楠岄」瀛愰」") + private String inspectionItemSubClass; + + @ValueTableShow(9) + @ApiModelProperty(value = "鍏紡") + private String formula; + + @ValueTableShow(10) + @ApiModelProperty(value = "鍙傜収X") + private String referx; + + @ValueTableShow(11) + @ApiModelProperty(value = "X") + private String x; + + @ValueTableShow(12) + @ApiModelProperty(value = "鍙傜収Y") + private String refery; + + @ValueTableShow(13) + @ApiModelProperty(value = "Y") + private String y; + + private Integer id; +} diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java index c7184eb..277160f 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DataConfigMapper.java @@ -1,7 +1,10 @@ package com.yuanchu.mom.mapper; -import com.yuanchu.mom.pojo.DataConfig; import com.baomidou.mybatisplus.core.mapper.BaseMapper; +import com.yuanchu.mom.dto.DeviceConfigDtoPage; +import com.yuanchu.mom.pojo.DataConfig; + +import java.util.List; /** * <p> @@ -13,4 +16,5 @@ */ public interface DataConfigMapper extends BaseMapper<DataConfig> { + List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId); } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java index b84efc7..8635854 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/mapper/DeviceMapper.java @@ -32,5 +32,7 @@ List<Device> selectDevicePrincipal(); IPage<DeviceDto> selectDeviceParameterPage(Page page, @Param("ew") QueryWrapper<DeviceDto> queryWrappers); + + List<String> getInspectionItemSubclass(@Param("id") Integer id); } 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 3421f3d..0f143a9 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 @@ -131,4 +131,7 @@ @ApiModelProperty("鏄惁涓烘暟閲囪澶�") @TableField(exist = false) private Boolean isItADataAcquisitionDevice; + + @ApiModelProperty("璁惧IP") + private String ip; } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java index 5ca0df5..96133f1 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/DataConfigService.java @@ -1,7 +1,10 @@ package com.yuanchu.mom.service; -import com.yuanchu.mom.pojo.DataConfig; import com.baomidou.mybatisplus.extension.service.IService; +import com.yuanchu.mom.dto.DeviceConfigDtoPage; +import com.yuanchu.mom.pojo.DataConfig; + +import java.util.List; /** * <p> @@ -13,4 +16,5 @@ */ public interface DataConfigService extends IService<DataConfig> { + List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId); } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java b/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java index 9268eda..2ae0473 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/DeviceService.java @@ -3,9 +3,10 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.service.IService; import com.yuanchu.mom.dto.DeviceDto; -import com.yuanchu.mom.dto.DeviceDto1; import com.yuanchu.mom.pojo.Device; +import com.yuanchu.mom.vo.Result; +import javax.servlet.http.HttpServletRequest; import java.util.List; import java.util.Map; @@ -33,4 +34,6 @@ List<Device> selectDeviceByCategory(String inspectionItem, String inspectionItemSubclass); Device selectDeviceByCode(String code); + + Result<?> dataAcquisition(HttpServletRequest request, Integer id, String entrustCode, String sampleCode); } diff --git a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java index 766cf89..8035161 100644 --- a/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java +++ b/cnas-server/src/main/java/com/yuanchu/mom/service/impl/DataConfigServiceImpl.java @@ -1,10 +1,15 @@ package com.yuanchu.mom.service.impl; -import com.yuanchu.mom.pojo.DataConfig; -import com.yuanchu.mom.mapper.DataConfigMapper; -import com.yuanchu.mom.service.DataConfigService; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.yuanchu.mom.common.GetLook; +import com.yuanchu.mom.dto.DeviceConfigDtoPage; +import com.yuanchu.mom.mapper.DataConfigMapper; +import com.yuanchu.mom.pojo.DataConfig; +import com.yuanchu.mom.service.DataConfigService; +import lombok.AllArgsConstructor; import org.springframework.stereotype.Service; + +import java.util.List; /** * <p> @@ -15,6 +20,14 @@ * @since 2024-07-13 12:23:00 */ @Service +@AllArgsConstructor public class DataConfigServiceImpl extends ServiceImpl<DataConfigMapper, DataConfig> implements DataConfigService { + private GetLook getLook; + + private DataConfigMapper dataConfigMapper; + @Override + public List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId) { + return dataConfigMapper.selectDataConfigList(deviceId); + } } 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 38e1c96..79c8bf5 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 @@ -8,15 +8,22 @@ import com.yuanchu.mom.common.GetLook; import com.yuanchu.mom.common.PrintChina; import com.yuanchu.mom.dto.DeviceDto; +import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.mapper.DeviceMapper; import com.yuanchu.mom.mapper.StructureItemParameterMapper; +import com.yuanchu.mom.pojo.DataConfig; import com.yuanchu.mom.pojo.Device; import com.yuanchu.mom.pojo.StructureItemParameter; +import com.yuanchu.mom.service.DataConfigService; import com.yuanchu.mom.service.DeviceService; +import com.yuanchu.mom.utils.DataAcquisition; import com.yuanchu.mom.utils.QueryWrappers; +import com.yuanchu.mom.vo.Result; import lombok.AllArgsConstructor; +import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; +import javax.servlet.http.HttpServletRequest; import java.util.ArrayList; import java.util.HashMap; import java.util.List; @@ -34,6 +41,9 @@ private DeviceMapper deviceMapper; private StructureItemParameterMapper structureItemParameterMapper; + + @Autowired + private DataConfigService dataConfigService; @Override public Map<String, Object> selectDeviceParameter(Page page, DeviceDto itemParameter) { @@ -123,5 +133,31 @@ public Device selectDeviceByCode(String code) { return deviceMapper.selectOne(Wrappers.<Device>lambdaQuery().eq(Device::getFactoryNo, code).last("limit 1")); } -} + @Override + 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; + List<Device> device = baseMapper.selectList(Wrappers.<Device>lambdaQuery() + .eq(Device::getIp, ip)); + if (ObjectUtils.isEmpty(device)) { + throw new ErrorException("鏈粰璇P锛�" + ip + "閰嶇疆璁惧锛屾棤娉曡繘琛屾暟閲囷紒"); + } + List<String> inspectionItemSubclass = baseMapper.getInspectionItemSubclass(id); + Map<String, String> hashMap = new HashMap<>(); + device.forEach(i -> { + if (ObjectUtils.isEmpty(i.getFileType()) || ObjectUtils.isEmpty(i.getCollectUrl())) { + throw new ErrorException("鏈粰璇ワ細" + i.getDeviceName() + "璁惧閰嶇疆閲囬泦璺緞鎴栨枃浠跺悗缂�锛�"); + } + List<DataConfig> list = dataConfigService.list(Wrappers.<DataConfig>lambdaQuery() + .eq(DataConfig::getDeviceId, i.getId()) + .in(DataConfig::getInsProductItem, inspectionItemSubclass) + .orderBy(false, false, DataConfig::getId)); + hashMap.putAll(DataAcquisition.dataAcquisitionEntrance(request, list, i, entrustCode, sampleCode, ip)); + }); + String frequency = DataAcquisition.createFrequency(entrustCode, sampleCode); + hashMap.put("frequency", frequency); + return Result.success(hashMap); + } +} 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 99e3fd7..d89a644 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 @@ -9,7 +9,6 @@ import com.yuanchu.mom.exception.ErrorException; import com.yuanchu.mom.pojo.DataConfig; import com.yuanchu.mom.pojo.Device; -import com.yuanchu.mom.vo.Result; import javax.servlet.http.HttpServletRequest; import java.util.*; @@ -27,17 +26,16 @@ private static final String splitIdentifier = "@-@"; // 鑷畾涔夊敮涓�鏍囪瘑鍒嗗壊绗� + public static final String frequency = "frequency"; /** * 鏁伴噰鍏ュ彛 + * * @param request * @param dataConfig * @param device * @return */ - public static Result<?> dataAcquisitionEntrance(HttpServletRequest request, List<DataConfig> dataConfig, Device device, 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; + public static Map<String, String> dataAcquisitionEntrance(HttpServletRequest request, List<DataConfig> dataConfig, Device device, String entrustCode, String sampleCode, String ip) { String http = HTTP + ip + GETFILE + "?filePath=" + device.getCollectUrl() + "&fileExtension=" + device.getFileType(); String result = null; try { @@ -45,7 +43,7 @@ } catch (IORuntimeException e) { throw new ErrorException("鎵�鍦ㄧ數鑴戞湭瀹夎鎴栨湭鍚姩锛歀IMS鏂囦欢閲囬泦鍣紒"); } - JSONObject jsonObject = JSON.parseObject(result); + JSONObject jsonObject = JSON.parseObject(result); if (Objects.equals(jsonObject.get("code"), 1)) { if (ObjectUtils.isEmpty(jsonObject.get("msg"))) { throw new ErrorException("鏈煡璇㈠埌鏁版嵁锛屽彲鑳芥枃浠惰矾寰勯厤缃敊璇紒"); @@ -88,7 +86,7 @@ if (ObjectUtils.isNotEmpty(device.getStorageUrl())) { String s = HTTP + ip + MOVEFILE + "?startFilePath=" + device.getCollectUrl() + "&endFilePath=" + device.getStorageUrl(); String storageUrlResult = HttpUtil.get(s); - JSONObject storageUrlResultJson = JSON.parseObject(storageUrlResult); + JSONObject storageUrlResultJson = JSON.parseObject(storageUrlResult); if (Objects.equals(storageUrlResultJson.get("code"), 1)) { if (ObjectUtils.isEmpty(storageUrlResultJson.get("msg"))) { throw new ErrorException("瀛樺偍鍦板潃閿欒锛屽彲鑳芥枃浠惰矾寰勯厤缃敊璇紒"); @@ -97,10 +95,31 @@ } } } - return Result.success(map); + return map; } } + public static String createFrequency(String entrustCode, String sampleCode) { + String key = frequency + ":" + entrustCode + ":" + sampleCode; + boolean b = RedisUtil.hasKey(key); + String frequencyValue; + if (b) { + long incr = RedisUtil.incr(key, 1); + frequencyValue = String.valueOf(incr); + } else { + RedisUtil.set(key, 1); + frequencyValue = "1"; + } + return frequencyValue; + } + + /** + * 闇�瑕侀�氳繃X,Y杞村畾浣� + * + * @param data + * @param dataConfig + * @return + */ private static Map<String, String> analysisDb(String data, Map<String, List<DataConfig>> dataConfig) { JSONObject jsonObject = JSON.parseObject(data); JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString()); @@ -109,12 +128,9 @@ dataConfig.forEach((k, v) -> { List<Object> list = new ArrayList<>(); for (int config = 0; config < v.size(); config++) { - String referx = v.get(config).getReferx(); - if(ObjectUtils.isEmpty(v.get(config).getX()) && ObjectUtils.isEmpty(v.get(config).getY())) { - throw new ErrorException("鏈粰" + k + "杩涜鏁伴噰閰嶇疆x锛寉锛�"); - } - int x = Integer.parseInt(v.get(config).getX()); - int y = Integer.parseInt(v.get(config).getY()); + String referx = getRefer(v.get(config).getReferx()); + int x = getXOrY(v.get(config).getX(), k, "X"); + int y = getXOrY(v.get(config).getY(), k, "Y"); String key = ""; for (int i = 0; i < columnList.size(); i++) { if (columnList.get(i).equals(referx)) { @@ -124,16 +140,32 @@ JSONObject jsonObject1 = JSON.parseObject(dataList.get(y).toString()); Object o = jsonObject1.get(key); if (ObjectUtils.isNotEmpty(o)) { - list.add(o); + // 灏忔暟鐐硅繘涓変綅 + double v1 = 0; + try { + v1 = Double.parseDouble(o.toString()); + double v2 = v1 / 1000; + list.add(v2); + } catch (NumberFormatException e) { + list.add(o); + } + } } // 杩涜鍏紡璁$畻 - String resultValue = calculationFormula(list, v.get(0)); + String resultValue = calculationFormula(list, v.get(0), k); map.put(k, resultValue); }); return map; } + /** + * 闇�瑕侀�氳繃X,Y杞村畾浣� + * + * @param data + * @param dataConfig + * @return + */ private static Map<String, String> analysisMdb(String data, Map<String, List<DataConfig>> dataConfig, String entrustCode, String sampleCode) { JSONObject jsonObject = JSON.parseObject(data); JSONArray dataList = JSONArray.parseArray(jsonObject.get("data").toString()); @@ -142,8 +174,8 @@ dataConfig.forEach((k, v) -> { List<Object> list = new ArrayList<>(); for (int config = 0; config < v.size(); config++) { - String referx = v.get(config).getReferx(); - int x = Integer.parseInt(v.get(config).getX()); + String referx = getRefer(v.get(config).getReferx()); + int x = getXOrY(v.get(config).getX(), k, "X"); String key = ""; for (int i = 0; i < columnList.size(); i++) { if (columnList.get(i).equals(referx)) { @@ -161,16 +193,18 @@ } } // 杩涜鍏紡璁$畻 - String resultValue = calculationFormula(list, v.get(0)); + String resultValue = calculationFormula(list, v.get(0), k); map.put(k, resultValue); }); return map; } private static Pattern SPATTERN = Pattern.compile("([-+])?\\d+(\\.\\d+)?"); + /** - * 瑙f瀽String鏁版嵁 - * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓� + * 鍙渶X杞� + * + * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓� * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗� * @return */ @@ -179,15 +213,15 @@ dataConfig.forEach((k, v) -> { List<Object> list = new ArrayList<>(); for (int config = 0; config < v.size(); config++) { - String referx = v.get(config).getReferx(); - String xResult = null; + String referx = getRefer(v.get(config).getReferx()); + String result = null; // 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿 String[] aColumnY = data.split("\n"); List<String> list1 = new ArrayList<>(); // 璇ュ惊鐜緱鍑虹敤鎴烽厤缃殑y杞� for (int i = 0; i < aColumnY.length; i++) { String addDataWithSpaces = referx.replaceAll("", " "); - int x = Integer.parseInt(v.get(config).getX()); + int x = getXOrY(v.get(config).getX(), k, "X"); if (aColumnY[i].contains(addDataWithSpaces)) { Matcher matcher = SPATTERN.matcher(aColumnY[i]); while (matcher.find()) { @@ -196,15 +230,15 @@ } } if (ObjectUtils.isNotEmpty(list1)) { - xResult = list1.get(x); + result = list1.get(x); } } - if (ObjectUtils.isNotEmpty(xResult)) { - list.add(xResult); + if (ObjectUtils.isNotEmpty(result)) { + list.add(result); } } // 杩涜鍏紡璁$畻 - String resultValue = calculationFormula(list, v.get(0)); + String resultValue = calculationFormula(list, v.get(0), k); map.put(k, resultValue); }); return map; @@ -212,185 +246,171 @@ /** * 浠庢枃浠朵腑鎻愬彇鍑烘潵鐨勬枃瀛楋紝濡傛灉鏈夊叕寮忥紝杩涜鍏紡璁$畻锛屽惁鍒欏彇鍒楄〃绗竴涓�� - * @param list 鎻愬彇鍑虹殑鏁板瓧 + * + * @param list 鎻愬彇鍑虹殑鏁板瓧 * @param dataConfig 瀛樺偍鍏紡鐨勫璞� * @return */ - private static String calculationFormula(List<Object> list, DataConfig dataConfig) { + private static String calculationFormula(List<Object> list, DataConfig dataConfig, String insProductItem) { + if (list.size() == 0) { + return null; + } // 濡傛灉涓嶄负绌猴紝杩涜鍏紡璁$畻 if (ObjectUtils.isNotEmpty(dataConfig.getFormula())) { return null; - // 鍚﹀垯锛氭病鏈夊叕寮忎唬琛ㄤ笉闇�瑕佽绠楋紝鐩存帴鎻愬彇List閲岄潰鐨勬暟鎹� + // 鍚﹀垯锛氭病鏈夊叕寮忎唬琛ㄤ笉闇�瑕佽绠楋紝鐩存帴鎻愬彇List閲岄潰鐨勬暟鎹� } else { // 杩欓噷鍙細鍙栧垪琛ㄧ涓�涓暟鎹� - if (list.size() > 0) { + if (list.size() > 1) { + throw new ErrorException("鏈粰锛�" + insProductItem + " 閰嶇疆鍏紡锛屽彲鏄嵈閲囬泦鍒颁簡" + list.size() + "涓�硷紒鍒嗗埆涓猴細" + list); + } else { return list.get(0).toString(); } - return null; } } /** * 瑙f瀽String鏁版嵁 - * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓� + * + * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓� * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗� * @return */ private static Map<String, String> analysisTxt(String data, Map<String, List<DataConfig>> dataConfig) { Map<String, String> map = new HashMap<>(); dataConfig.forEach((k, v) -> { - List<Object> list = new ArrayList<>(); - for (int config = 0; config < v.size(); config++) { - String referx = v.get(config).getReferx(); - String refery = v.get(config).getRefery(); - String xResult = null; - String yResult = null; - // 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿 - String[] aColumnY = data.split("\n"); - // 璇ュ惊鐜緱鍑虹敤鎴烽厤缃殑y杞� - for (int i = 0; i < aColumnY.length; i++) { - // 寰楀嚭鐢ㄦ埛閰嶇疆鐨剎杞� - String[] aLineX = aColumnY[i].split(","); - for (int j = 0; j < aLineX.length; j++) { - if (ObjectUtils.isNotEmpty(referx) && aLineX[j].contains(referx)) { - int x = Integer.parseInt(v.get(config).getX()); - try { - xResult = aLineX[j + x]; - } catch (Exception e) { - throw new ErrorException("鏁伴噰閰嶇疆X杞磋秴鍑猴紒"); - } - } - if (ObjectUtils.isNotEmpty(refery) && aLineX[j].contains(refery)) { - int y = Integer.parseInt(v.get(config).getY()); - try { - String[] split = aColumnY[i + y].split(","); - yResult = split[split.length - 1]; - } catch (Exception e) { - throw new ErrorException("鏁伴噰閰嶇疆Y杞磋秴鍑猴紒"); - } - } - } - } - if (ObjectUtils.isEmpty(xResult) && ObjectUtils.isEmpty(yResult)) { - throw new ErrorException("鍙傜収鐗╀负锛�" + referx + "涓�" + refery + "鏈彇鍒板�硷紒璇锋鏌ユ暟閲囬厤缃紒"); - } - list.add(yResult); - list.add(xResult); - } + List<Object> list = analyzeData(data, v, k, ","); // 杩涜鍏紡璁$畻 - String resultValue = calculationFormula(list, v.get(0)); + String resultValue = calculationFormula(list, v.get(0), k); map.put(k, resultValue); }); return map; } /** - * 瑙f瀽String鏁版嵁 - * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓� + * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓� * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗� * @return */ private static Map<String, String> analysisString(String data, Map<String, List<DataConfig>> dataConfig) { - String processingDataAfterSpaces = data.replaceAll(" +", splitIdentifier).replaceAll("\r", ""); + String processingDataAfterSpaces = data + .replaceAll(" +", splitIdentifier) + .replaceAll("\r", "") + .replaceAll(" ", ""); Map<String, String> map = new HashMap<>(); dataConfig.forEach((k, v) -> { - List<Object> list = new ArrayList<>(); - for (int config = 0; config < v.size(); config++) { - String referx = v.get(config).getReferx(); - String xResult = null; - // 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿 - String[] aColumnY = processingDataAfterSpaces.split("\n"); - // 璇ュ惊鐜緱鍑虹敤鎴烽厤缃殑y杞� - for (int i = 0; i < aColumnY.length; i++) { - // 寰楀嚭鐢ㄦ埛閰嶇疆鐨剎杞� - String[] aLineX = aColumnY[i].split(splitIdentifier); - for (int j = 0; j < aLineX.length; j++) { - if (ObjectUtils.isNotEmpty(referx) && aLineX[j].replaceAll(" ", "").contains(referx.replaceAll(" ", ""))) { - int x = Integer.parseInt(v.get(config).getX()); - try { - xResult = aLineX[j + x]; - } catch (Exception e) { - throw new ErrorException("鏁伴噰閰嶇疆X杞磋秴鍑猴紒"); - } - } - } - } - if (ObjectUtils.isEmpty(xResult)) { - throw new ErrorException("鍙傜収鐗╀负锛�" + referx + "鏈彇鍒板�硷紒璇锋鏌ユ暟閲囬厤缃紒"); - } - // 缁撴灉鍖呭惈鐗规畩瀛楃锛岄渶瑕佸墧闄ゆ帀 - if(xResult.contains("=")) { - String[] split = xResult.split("="); - list.add(split[split.length - 1]); - } else if (xResult.contains(":")) { - String[] split = xResult.split(":"); - list.add(split[split.length - 1].replaceAll("%", "")); - } else { - list.add(xResult); - } - } + List<Object> list = analyzeData(processingDataAfterSpaces, v, k, splitIdentifier); // 杩涜鍏紡璁$畻 - String resultValue = calculationFormula(list, v.get(0)); + String resultValue = calculationFormula(list, v.get(0), k); map.put(k, resultValue); }); return map; } /** - * 瑙f瀽String鏁版嵁 - * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓� + * 鍙朮锛孻涓や釜瀹氫綅 + * + * @param data 閲囬泦鍒扮殑鏂囦欢瀛楃涓� * @param dataConfig 鐢ㄦ埛閰嶇疆濂界殑x,y杞村畾浣嶆暟鎹笌鍙傜収鐗� * @return */ public static Map<String, String> analysisList(String data, Map<String, List<DataConfig>> dataConfig) { Map<String, String> map = new HashMap<>(); dataConfig.forEach((k, v) -> { - List<Object> list = new ArrayList<>(); - for (int config = 0; config < v.size(); config++) { - String referx = v.get(config).getReferx(); - String refery = v.get(config).getRefery(); - String xResult = null; - String yResult = null; - // 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿 - String[] aColumnY = data.split("\n"); - // 璇ュ惊鐜緱鍑虹敤鎴烽厤缃殑y杞� - for (int i = 0; i < aColumnY.length; i++) { - // 寰楀嚭鐢ㄦ埛閰嶇疆鐨剎杞� - String[] aLineX = aColumnY[i].split(splitIdentifier); - for (int j = 0; j < aLineX.length; j++) { - if (ObjectUtils.isNotEmpty(referx) && referx.equals(aLineX[j])) { - int x = Integer.parseInt(v.get(config).getX()); - try { - xResult = aLineX[j + x]; - } catch (Exception e) { - throw new ErrorException("鏁伴噰閰嶇疆X杞磋秴鍑猴紒"); + // 鐢ㄦ埛鍙兘缁欎竴涓瓙椤圭洰閰嶇疆浜嗗涓厤缃紝鍗充竴涓」鐩彇澶氫釜鍊硷紝鎵�浠ラ渶瑕佸惊鐜� + List<Object> list = analyzeData(data, v, k, splitIdentifier); + // 杩涜鍏紡璁$畻 + String resultValue = calculationFormula(list, v.get(0), k); + map.put(k, resultValue); + }); + return map; + } + + // 鐢变簬鍦ㄦ柟娉曚腑浼氬ぇ閲忕殑鍒ゆ柇锛屾墍浠ュ仛涓�涓柟娉� + private static int getXOrY(String value, String k, String tips) { + try { + return Integer.parseInt(value); + } catch (NumberFormatException e) { + throw new ErrorException(k + "锛氭湭閰嶇疆" + tips + "鍧愭爣杞寸殑鍊硷紒"); + } + } + + // 闃叉鍙傜収鐗╀负绌烘姤閿欙紝杩涜鍒ゆ柇濡傛灉涓虹┖璧嬪�肩┖瀛楃 + private static String getRefer(String refer) { + return ObjectUtils.isNotEmpty(refer) ? refer.replaceAll(" ", "") : ""; + } + + public static List<Object> analyzeData(String data, List<DataConfig> v, String k, String split) { + List<Object> list = new ArrayList<>(); + for (int config = 0; config < v.size(); config++) { + // 鍙栦袱涓敤鎴烽厤缃殑鍙傜収鐗� + String referx = getRefer(v.get(config).getReferx()); + String refery = getRefer(v.get(config).getRefery()); + // 鏈�缁堢粨鏋� + String result = null; + // 閫氳繃\n灏嗗瓧绗︿覆鍒嗗壊涓鸿 + String[] aColumnY = data.replaceAll(" ", "").split("\n"); + Integer end = null; + // 閲囬泦鏁版嵁锛歒杞� + for (int i = 0; i < aColumnY.length; i++) { + // 鍙杧鐨勫�硷紝闃叉鎶ラ敊 + int x = getXOrY(v.get(config).getX(), k, "X"); + // 濡傛灉Y涓嶺鐢ㄦ埛閮介厤缃簡鍒欐墽琛� + if (ObjectUtils.isNotEmpty(refery)) { + // 鍙朰鍧愭爣鍊� + int y = getXOrY(v.get(config).getY(), k, "Y"); + // 缂撳瓨Y鐨勭粨鏉熷�� + if (ObjectUtils.isEmpty(end) && aColumnY[i].contains(refery)) { + end = i + y; + } + // 鍒ゆ柇鏄惁鍦ㄥ弬鐓х墿涓鸿捣鍒帮紝Y鍧愭爣鍊间负鏈�缁堣寖鍥� + if (ObjectUtils.isNotEmpty(end) && i <= end) { + String[] aLineX = aColumnY[i].split(split); + for (int j = 0; j < aLineX.length; j++) { + if (aLineX[j].contains(referx)) { + try { + result = aLineX[j + x]; + } catch (Exception e) { + throw new ErrorException(k + "锛歑杞村畾浣嶈秴鍑猴紒"); + } + break; } } - if (ObjectUtils.isNotEmpty(refery) && refery.equals(aLineX[j])) { - int y = Integer.parseInt(v.get(config).getY()); - String aColumnData = aColumnY[i + y]; // 鑾峰彇鍒扮Y琛岀殑鏁版嵁 + } + // 濡傛灉鍙厤缃簡X锛屽垯鎵ц涓嬮潰鐨勪唬鐮� + } else if (aColumnY[i].contains(referx) && ObjectUtils.isEmpty(refery)) { + String[] aLineX = aColumnY[i].split(split); + for (int j = 0; j < aLineX.length; j++) { + if (aLineX[j].contains(referx)) { try { - yResult = aColumnData.split(splitIdentifier)[j]; + result = aLineX[j + x]; } catch (Exception e) { - throw new ErrorException("鏁伴噰閰嶇疆Y杞磋秴鍑猴紒"); + throw new ErrorException(k + "锛歑杞村畾浣嶈秴鍑猴紒"); } } } } - if (ObjectUtils.isEmpty(xResult) || ObjectUtils.isEmpty(yResult)) { - throw new ErrorException("X杞存垨Y杞存湭鍙栧埌鍊硷紒璇锋鏌ユ暟閲囬厤缃紒"); - } - if(xResult.equals(yResult)) { - list.add(xResult); - } else { - throw new ErrorException("X杞翠笌Y杞村彇寰楃殑鏁版嵁涓嶇浉鍚岋紒璇锋鏌ユ暟閲囬厤缃紒"); - } } - // 杩涜鍏紡璁$畻 - String resultValue = calculationFormula(list, v.get(0)); - map.put(k, resultValue); - }); - return map; + // 闃叉璁$畻鍏紡鐨勬椂鍊欏嚭鐜帮細[null] 杩欑鏁版嵁 + if (ObjectUtils.isNotEmpty(result)) { + String formatProcessing = getFormatProcessing(result); + list.add(formatProcessing); + } + } + return list; + } + + public static String getFormatProcessing(String value) { + value = value.replaceAll("%", ""); + if(value.contains("=")){ + String[] split = value.split("="); + return split[split.length - 1]; + } else if(value.contains(":")) { + String[] split = value.split(":"); + return split[split.length - 1]; + } else { + return value; + } } } diff --git a/cnas-server/src/main/resources/mapper/DataConfigMapper.xml b/cnas-server/src/main/resources/mapper/DataConfigMapper.xml index 135e544..7701b02 100644 --- a/cnas-server/src/main/resources/mapper/DataConfigMapper.xml +++ b/cnas-server/src/main/resources/mapper/DataConfigMapper.xml @@ -12,4 +12,27 @@ <result column="y" property="y" /> </resultMap> + <select id="selectDataConfigList" resultType="com.yuanchu.mom.dto.DeviceConfigDtoPage"> + SELECT d.device_name, + d.file_type, + d.collect_url, + d.storage_url, + d.ip, + ip.inspection_item, + if(ip.inspection_item_subclass is not null and ip.inspection_item_subclass != '', + ip.inspection_item_subclass, ip.inspection_item) inspection_item_subclass, + ddc.formula, + ddc.referx, + ddc.refery, + ddc.x, + ddc.y, + ddc.id + FROM device d + left join structure_item_parameter ip on FIND_IN_SET(ip.id, d.ins_product_ids) + left join device_data_config ddc on ddc.device_id = d.id and + if(ip.inspection_item_subclass is not null and + ip.inspection_item_subclass != '', ip.inspection_item_subclass, + ip.inspection_item) = ddc.ins_product_item + where d.id = #{deviceId} + </select> </mapper> diff --git a/cnas-server/src/main/resources/mapper/DeviceMapper.xml b/cnas-server/src/main/resources/mapper/DeviceMapper.xml index 6eaebf9..40bcc1f 100644 --- a/cnas-server/src/main/resources/mapper/DeviceMapper.xml +++ b/cnas-server/src/main/resources/mapper/DeviceMapper.xml @@ -117,4 +117,9 @@ ${ew.customSqlSegment} </if> </select> + + <select id="getInspectionItemSubclass" resultType="java.lang.String"> + SELECT ip.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 d53cc19..bc840f3 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 @@ -15,10 +15,7 @@ import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; import lombok.AllArgsConstructor; -import org.springframework.web.bind.annotation.PostMapping; -import org.springframework.web.bind.annotation.RequestBody; -import org.springframework.web.bind.annotation.RequestMapping; -import org.springframework.web.bind.annotation.RestController; +import org.springframework.web.bind.annotation.*; import org.springframework.web.multipart.MultipartFile; import java.util.HashMap; @@ -111,8 +108,8 @@ @ValueClassify("妫�楠屼换鍔�") @ApiOperation(value = "妫�楠屼换鍔℃彁浜�") @PostMapping("/submitPlan") - public Result<?> submitPlan(Integer orderId, String laboratory, Integer verifyUser) { - int num = insOrderPlanService.submitPlan(orderId, laboratory, verifyUser); + public Result<?> submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String sampleCode) { + int num = insOrderPlanService.submitPlan(orderId, laboratory, verifyUser, entrustCode, sampleCode); return num == 1 ? Result.success() : Result.fail("鎻愪氦澶辫触锛岄儴鍒嗛」鐩繕鏈繘琛屾楠�"); } 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 4aa76b8..510fa39 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 @@ -2,7 +2,6 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.yuanchu.mom.dto.InsOrderPlanDTO; -import com.yuanchu.mom.dto.InsProductDto; import com.yuanchu.mom.pojo.InsOrderFile; import com.yuanchu.mom.pojo.InsProduct; import org.springframework.web.multipart.MultipartFile; @@ -28,7 +27,7 @@ int verifyPlan(Integer orderId, String laboratory, Integer type, String tell); - int submitPlan(Integer orderId, String laboratory, Integer verifyUser); + int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String sampleCode); List<InsProduct> getInsProduct(Integer id, Integer type, 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 8d61c07..a4fd33f 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 @@ -33,6 +33,7 @@ import com.yuanchu.mom.utils.JackSonUtil; 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; @@ -3387,7 +3388,7 @@ } @Override - public int submitPlan(Integer orderId, String laboratory, Integer verifyUser) { + public int submitPlan(Integer orderId, String laboratory, Integer verifyUser, String entrustCode, String sampleCode) { List<InsSample> insSamples = insSampleMapper.selectList(Wrappers.<InsSample>lambdaQuery().eq(InsSample::getInsOrderId, orderId).select(InsSample::getId)); List<Integer> ids = insSamples.stream().map(a -> a.getId()).collect(Collectors.toList()); List<InsProduct> insProducts = insProductMapper.selectList(Wrappers.<InsProduct>lambdaQuery() @@ -3476,6 +3477,9 @@ } return null; }); + // 鍒犻櫎鏁伴噰閲囬泦娆℃暟 + String key = "frequency" + ":" + entrustCode + ":" + sampleCode; + RedisUtil.del(key); return 1; } -- Gitblit v1.9.3