basic-server/src/main/java/com/ruoyi/basic/mapper/StandardMethodListMapper.java
@@ -26,8 +26,6 @@ List<StandardMethodList> selectStandardMethodLists3(@Param("tree") String tree); List<StandardMethodList> selectStandardMethodLists2(@Param("data1") String data1, @Param("data2") String data2, @Param("data3") String data3, @Param("data4") String data4, @Param("data5") String data5); List<StandardProductList> selectParameterList(@Param("code") String code); List<StandardMethodList> selectListEnum(); basic-server/src/main/java/com/ruoyi/basic/mapper/StandardTreeMapper.java
@@ -30,8 +30,6 @@ List<StandardProductList> getStandardProductListBySample(String sampleType); List<StandardMethodList> getStandardMethodListBySample(String sampleType); List<StandardProductList> selectStandardProductListByTree(@Param("tree") String tree, @Param("sample") String sample, @Param("model") String model, @Param("trees") String trees, @Param("laboratory") String laboratory); List<StandardProductList> selectStandardProductListByTree2(@Param("tree") String tree, @Param("sample") String sample, @Param("model") String model, @Param("trees") String trees, @Param("laboratory") String laboratory); basic-server/src/main/java/com/ruoyi/basic/pojo/StructureItemParameter.java
@@ -117,5 +117,8 @@ @ApiModelProperty(value = "收费标准(元/次)") private String rates; @ApiModelProperty(value = "设备id") private String deviceIds; } basic-server/src/main/java/com/ruoyi/basic/service/impl/StandardMethodListServiceImpl.java
@@ -27,9 +27,6 @@ private StandardMethodListMapper standardMethodListMapper; private StandardProductListMapper standardProductListMapper; @Override public Map<String, List<?>> selectsStandardMethodByFLSSM(String tree) { String[] trees = tree.split(" - "); basic-server/src/main/resources/mapper/StandardMethodListMapper.xml
@@ -52,24 +52,6 @@ from structure_item_parameter where method = #{code} </select> <select id="selectStandardMethodLists2" resultType="com.ruoyi.basic.pojo.StandardMethodList"> select sml.id, sml.code, sml.name,sml.remark, sml.create_time, u.name create_user_name from standard_method_list sml left join user u on u.id = sml.create_user where factory = #{data1} <if test="data2 != null"> and laboratory = #{data2} </if> <if test="data3 != null"> and sample_type = #{data3} </if> <if test="data4 != null"> and sample = #{data4} </if> <if test="data5 != null"> and model = #{data5} </if> </select> <select id="selectStandardMethodLists3" resultType="com.ruoyi.basic.pojo.StandardMethodList"> select id, code, name, remark from standard_method basic-server/src/main/resources/mapper/StandardTreeMapper.xml
@@ -154,15 +154,7 @@ or sp.sample = '' or sp.sample = '[]' </select> <select id="getStandardMethodListBySample" resultType="com.ruoyi.basic.pojo.StandardMethodList"> select sm.code,sm.name,sm.remark from standard_method sm left join structure_test_object sto on sm.structure_test_object_id = sto.id where is_use = 1 and is_product = 1 <if test="sampleType != null"> and sto.specimen_name = #{sampleType} </if> </select> <select id="selectStandardTreeList2" resultType="com.ruoyi.basic.pojo.StandardTree"> select '中天科技检测中心' factory, l.laboratory_name laboratory, cnas-device/src/main/java/com/ruoyi/device/controller/DeviceController.java
@@ -177,6 +177,11 @@ } @ApiOperation(value = "查询绑定了但是没有配置的检验项") @GetMapping("/getNoConfigProduct") public Result<?> getNoConfigProduct(Integer deviceId) { return Result.success(dataConfigService.getNoConfigProduct(deviceId)); } @ApiOperation(value = "左侧设备树形栏") @GetMapping("/treeDevice") @@ -187,13 +192,13 @@ @ApiOperation(value = "设备档案导出") @GetMapping("/exportDeviceFile") public void exportDeviceFile(@RequestParam Integer deviceId, HttpServletResponse response) throws Exception { public void exportDeviceFile(@RequestParam Integer deviceId, HttpServletResponse response){ deviceService.exportDeviceFile(deviceId,response); } @ApiOperation(value = "仪器设备一览表导出") @GetMapping("/exportEquipmentDetails") public void exportEquipmentDetails(HttpServletResponse response) throws Exception { public void exportEquipmentDetails(HttpServletResponse response){ deviceService.exportEquipmentDetails(response); } } cnas-device/src/main/java/com/ruoyi/device/mapper/DataConfigMapper.java
@@ -19,4 +19,11 @@ List<DeviceConfigDtoPage> selectDataConfigList(Integer deviceId); List<Integer> deleteDataConfig(); /** * 查询了绑定但是没有配置的检验项 * @param deviceId * @return */ List<DataConfig> getNoConfigProduct(Integer deviceId); } cnas-device/src/main/java/com/ruoyi/device/service/DataConfigService.java
@@ -5,6 +5,8 @@ import com.ruoyi.device.dto.DataConfigDto; import com.ruoyi.device.pojo.DataConfig; import java.util.List; /** * <p> * 服务类 @@ -20,4 +22,11 @@ void saveDataAcquisitionConfiguration(Integer deviceId, DataConfigDto dataConfigList); Result<?> queryDataAcquisitionConfiguration(DataConfig dataConfig); /** * 查询了绑定但是没有配置的检验项 * @param deviceId * @return */ List<DataConfig> getNoConfigProduct(Integer deviceId); } cnas-device/src/main/java/com/ruoyi/device/service/impl/DataConfigServiceImpl.java
@@ -72,4 +72,14 @@ return Result.success(dataConfigMapper.selectDataConfigList(dataConfig.getDeviceId())); } } /** * 查询了绑定但是没有配置的检验项 * @param deviceId * @return */ @Override public List<DataConfig> getNoConfigProduct(Integer deviceId) { return baseMapper.getNoConfigProduct(deviceId); } } cnas-device/src/main/resources/mapper/DataConfigMapper.xml
@@ -47,4 +47,18 @@ left join structure_item_parameter ip on not FIND_IN_SET(ip.id, d.ins_product_ids) inner join device_data_config ddc on ddc.device_id = d.id and ddc.structure_item_parameter_id = ip.id </select> <select id="getNoConfigProduct" resultType="com.ruoyi.device.pojo.DataConfig"> SELECT d.id device_id, ip.inspection_item, ip.inspection_item_class, ip.inspection_item_subclass , ip.sample, ip.id structureItemParameterId, ddc.id FROM structure_item_parameter ip left join device d on FIND_IN_SET(d.id, ip.device_ids) left join device_data_config ddc on ddc.device_id = d.id and ddc.structure_item_parameter_id = ip.id where d.id = #{deviceId} and ddc.id is null </select> </mapper> inspect-server/src/main/java/com/ruoyi/inspect/controller/InsOrderController.java
@@ -235,8 +235,7 @@ @ApiOperation(value = "根据订单id查询样品") @GetMapping("/getSampleByOrderId") public Result<List<InsSample>> getSampleByOrderId(Integer insOrderId) { return Result.success(insSampleService.list(Wrappers.<InsSample>lambdaQuery() .eq(InsSample::getInsOrderId, insOrderId))); return Result.success(insSampleService.getSampleByOrderId(insOrderId)); } @ApiOperation(value = "根据样品id查询检验项树") @@ -258,4 +257,14 @@ insOrderService.rawAllInsOrderExport(sampleOrderDto,response); } @ApiOperation(value = "修改样品型号") @PostMapping("/updateSampleModel") public Result<?> updateSampleModel(@RequestBody List<InsSample> insSampleList) { for (InsSample insSample : insSampleList) { insOrderService.updateSampleModel(insSample); } return Result.success(); } } inspect-server/src/main/java/com/ruoyi/inspect/controller/InsProductDeviationWarningController.java
@@ -1,9 +1,13 @@ package com.ruoyi.inspect.controller; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ruoyi.common.core.domain.Result; import com.ruoyi.inspect.dto.InsProductDeviationWarningDto; import com.ruoyi.inspect.dto.SampleOrderDto; import com.ruoyi.inspect.pojo.InsProductDeviationWarningDetail; import com.ruoyi.inspect.service.InsProductDeviationWarningDetailService; import com.ruoyi.inspect.service.InsProductDeviationWarningService; import io.swagger.annotations.Api; import io.swagger.annotations.ApiOperation; @@ -11,6 +15,8 @@ import org.springframework.web.bind.annotation.GetMapping; import org.springframework.web.bind.annotation.RequestMapping; import org.springframework.web.bind.annotation.RestController; import java.util.List; /** * <p> @@ -28,6 +34,7 @@ private InsProductDeviationWarningService insProductDeviationWarningService; private InsProductDeviationWarningDetailService insProductDeviationWarningDetailService; /** * 查询预警列表 @@ -37,20 +44,20 @@ */ @ApiOperation(value = "查询预警列表") @GetMapping("/selectDeviationWarningPage") public Result selectDeviationWarningPage(Page page, InsProductDeviationWarningDto deviationWarningDto) { public Result<IPage<InsProductDeviationWarningDto>> selectDeviationWarningPage(Page page, InsProductDeviationWarningDto deviationWarningDto) { return Result.success(insProductDeviationWarningService.selectDeviationWarningPage(page, deviationWarningDto)); } // /** // * 查询预警详情 // * @param page // * @return // * @throws Exception // */ // @ApiOperation(value = "查询预警列表") // @GetMapping("/selectDeviationWarning") // public Result selectDeviationWarning(InsProductDeviationWarningDto deviationWarningDto){ //// return Result.success(insProductDeviationWarningService.selectDeviationWarningPage(page, deviationWarningDto)); // } /** * 查询预警详情 * @return * @throws Exception */ @ApiOperation(value = "查询预警详情") @GetMapping("/selectDeviationWarning") public Result<List<InsProductDeviationWarningDetail>> selectDeviationWarning(Integer deviationWarningId){ return Result.success(insProductDeviationWarningDetailService.list(Wrappers.<InsProductDeviationWarningDetail>lambdaQuery() .eq(InsProductDeviationWarningDetail::getDeviationWarningId, deviationWarningId))); } } inspect-server/src/main/java/com/ruoyi/inspect/dto/InsProductDeviationWarningDto.java
@@ -1,6 +1,7 @@ package com.ruoyi.inspect.dto; import com.ruoyi.inspect.pojo.InsProductDeviationWarning; import io.swagger.annotations.ApiModelProperty; import lombok.Data; /** @@ -9,4 +10,14 @@ */ @Data public class InsProductDeviationWarningDto extends InsProductDeviationWarning { @ApiModelProperty("样品") private String sampleName; @ApiModelProperty("型号") private String sampleModel; @ApiModelProperty("检验项") private String inspectionItemName; } inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsProductDeviationWarningMapper.java
@@ -6,6 +6,7 @@ import com.ruoyi.inspect.dto.InsProductDeviationWarningDto; import com.ruoyi.inspect.pojo.InsProductDeviationWarning; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import org.apache.ibatis.annotations.Param; /** * <p> @@ -22,5 +23,5 @@ * @param page * @return */ IPage<InsProductDeviationWarningDto> selectDeviationWarningPage(Page page, QueryWrapper<InsProductDeviationWarningDto> ew); IPage<InsProductDeviationWarningDto> selectDeviationWarningPage(@Param("page") Page page, @Param("ew") QueryWrapper<InsProductDeviationWarningDto> ew); } inspect-server/src/main/java/com/ruoyi/inspect/mapper/InsSampleMapper.java
@@ -123,6 +123,13 @@ * @return */ List<InsProduct> selectProductResult(@Param("itemIds") List<Integer> itemIds); /** * 根据订单id查询样品 * @param insOrderId * @return */ List<InsSample> getSampleByOrderId(Integer insOrderId); } inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductDeviationWarning.java
@@ -26,8 +26,6 @@ @ApiModel(value = "InsProductDeviationWarning对象", description = "检验项偏差预警主表") public class InsProductDeviationWarning implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "deviation_warning_id", type = IdType.AUTO) private Integer deviationWarningId; inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsProductDeviationWarningDetail.java
@@ -26,8 +26,6 @@ @ApiModel(value = "InsProductDeviationWarningDetail对象", description = "检验项偏差预警详情表") public class InsProductDeviationWarningDetail implements Serializable { private static final long serialVersionUID = 1L; @TableId(value = "deviation_warning_detail_id", type = IdType.AUTO) private Integer deviationWarningDetailId; inspect-server/src/main/java/com/ruoyi/inspect/pojo/InsSample.java
@@ -120,4 +120,8 @@ @TableField(select = false,exist = false) private Integer num=1; @ApiModelProperty("标准方法名称") @TableField(select = false,exist = false) private String standardMethodName; } inspect-server/src/main/java/com/ruoyi/inspect/service/InsOrderService.java
@@ -5,6 +5,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.basic.pojo.StandardProductList; import com.ruoyi.inspect.pojo.InsOrder; import com.ruoyi.inspect.pojo.InsSample; import com.ruoyi.inspect.pojo.InsUnqualifiedRetestProduct; import com.ruoyi.inspect.dto.*; import com.ruoyi.inspect.vo.InsOrderPrintingVo; @@ -107,4 +108,10 @@ * @param response */ void rawAllInsOrderExport(SampleOrderDto sampleOrderDto, HttpServletResponse response); /** * 修改样品型号 * @param insSample */ void updateSampleModel(InsSample insSample); } inspect-server/src/main/java/com/ruoyi/inspect/service/InsProductDeviationWarningService.java
@@ -5,6 +5,7 @@ import com.ruoyi.inspect.dto.InsProductDeviationWarningDto; import com.ruoyi.inspect.pojo.InsProductDeviationWarning; import com.baomidou.mybatisplus.extension.service.IService; import org.apache.ibatis.annotations.Param; /** * <p> inspect-server/src/main/java/com/ruoyi/inspect/service/InsSampleService.java
@@ -3,6 +3,8 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ruoyi.inspect.pojo.InsSample; import java.util.List; /** * @author Administrator * @description 针对表【ins_sample(检验样品)】的数据库操作Service @@ -10,4 +12,10 @@ */ public interface InsSampleService extends IService<InsSample> { /** * 根据订单id查询样品 * @param insOrderId * @return */ List<InsSample> getSampleByOrderId(Integer insOrderId); } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderPlanServiceImpl.java
@@ -527,55 +527,60 @@ // 添加设备记录 threadPoolTaskExecutor.execute(() -> { InsOrder order = insOrderMapper.selectById(insSample.getInsOrderId()); User user = userMapper.selectById(userId); // 查询设备使用记录查询该订单的使用记录 List<InsOrderDeviceRecordDto> deviceRecordDtoList = insOrderDeviceRecordMapper.selectDeviceNumber(insSample.getInsOrderId()); Set<String> recordCodeset = deviceRecordDtoList.stream().map(InsOrderDeviceRecordDto::getManagementNumber).collect(Collectors.toSet()); // 添加设备使用记录 addDeviceRecord(insSample, userId); }); } // 获取订单设备编号 List<InsProductResult> resultList = insProductResultMapper.selectResultByOrderId(insSample.getInsOrderId()); Set<String> deviceCodeSet = new HashSet<>(); for (InsProductResult result : resultList) { // 添加设备编号 List<JSONObject> jsonObjects = JSON.parseArray(result.getEquipValue(), JSONObject.class); for (JSONObject jsonObject : jsonObjects) { if (!"".equals(jsonObject.get("v") + "")) { List<String> v = StrUtil.split(jsonObject.get("v") + "", ","); deviceCodeSet.addAll(v); } private synchronized void addDeviceRecord(InsSample insSample, Integer userId) { InsOrder order = insOrderMapper.selectById(insSample.getInsOrderId()); User user = userMapper.selectById(userId); // 查询设备使用记录查询该订单的使用记录 List<InsOrderDeviceRecordDto> deviceRecordDtoList = insOrderDeviceRecordMapper.selectDeviceNumber(insSample.getInsOrderId()); Set<String> recordCodeset = deviceRecordDtoList.stream().map(InsOrderDeviceRecordDto::getManagementNumber).collect(Collectors.toSet()); // 获取订单设备编号 List<InsProductResult> resultList = insProductResultMapper.selectResultByOrderId(insSample.getInsOrderId()); Set<String> deviceCodeSet = new HashSet<>(); for (InsProductResult result : resultList) { // 添加设备编号 List<JSONObject> jsonObjects = JSON.parseArray(result.getEquipValue(), JSONObject.class); for (JSONObject jsonObject : jsonObjects) { if (!"".equals(jsonObject.get("v") + "")) { List<String> v = StrUtil.split(jsonObject.get("v") + "", ","); deviceCodeSet.addAll(v); } } // 1.判断是否有没有添加的使用记录 Set<String> orderDeviceNumbers = getDeviceDifference(deviceCodeSet, recordCodeset); // 添加使用记录, 根据编号查询设备id if (CollectionUtils.isNotEmpty(orderDeviceNumbers)) { List<Integer> orderDeviceIds = insOrderDeviceRecordMapper.selectDeviceIdsByNumbers(orderDeviceNumbers); List<InsOrderDeviceRecord> collect = orderDeviceIds.stream().map(deviceId -> { InsOrderDeviceRecord insOrderDeviceRecord = new InsOrderDeviceRecord(); insOrderDeviceRecord.setInsOrderId(insSample.getInsOrderId()); insOrderDeviceRecord.setDeviceId(deviceId); insOrderDeviceRecord.setSampleCode(order.getEntrustCode()); insOrderDeviceRecord.setUseBefore(1); insOrderDeviceRecord.setUseAfter(1); insOrderDeviceRecord.setUsePerson(user.getName()); insOrderDeviceRecord.setUsePersonId(user.getId()); return insOrderDeviceRecord; }).collect(Collectors.toList()); } // 1.判断是否有没有添加的使用记录 Set<String> orderDeviceNumbers = getDeviceDifference(deviceCodeSet, recordCodeset); // 添加使用记录, 根据编号查询设备id if (CollectionUtils.isNotEmpty(orderDeviceNumbers)) { List<Integer> orderDeviceIds = insOrderDeviceRecordMapper.selectDeviceIdsByNumbers(orderDeviceNumbers); List<InsOrderDeviceRecord> collect = orderDeviceIds.stream().map(deviceId -> { InsOrderDeviceRecord insOrderDeviceRecord = new InsOrderDeviceRecord(); insOrderDeviceRecord.setInsOrderId(insSample.getInsOrderId()); insOrderDeviceRecord.setDeviceId(deviceId); insOrderDeviceRecord.setSampleCode(order.getEntrustCode()); insOrderDeviceRecord.setUseBefore(1); insOrderDeviceRecord.setUseAfter(1); insOrderDeviceRecord.setUsePerson(user.getName()); insOrderDeviceRecord.setUsePersonId(user.getId()); return insOrderDeviceRecord; }).collect(Collectors.toList()); insOrderDeviceRecordService.saveBatch(collect); insOrderDeviceRecordService.saveBatch(collect); } } // 2.判断是否取消了设备使用 Set<String> repoprNumbers = getDeviceDifference(recordCodeset, deviceCodeSet); if (CollectionUtils.isNotEmpty(repoprNumbers)) { List<Integer> reportDeviceIds = insOrderDeviceRecordMapper.selectDeviceIdsByNumbers(repoprNumbers); insOrderDeviceRecordMapper.delete(Wrappers.<InsOrderDeviceRecord>lambdaQuery() .in(InsOrderDeviceRecord::getDeviceId, reportDeviceIds) .eq(InsOrderDeviceRecord::getInsOrderId, insSample.getInsOrderId())); } }); // 2.判断是否取消了设备使用 Set<String> repoprNumbers = getDeviceDifference(recordCodeset, deviceCodeSet); if (CollectionUtils.isNotEmpty(repoprNumbers)) { List<Integer> reportDeviceIds = insOrderDeviceRecordMapper.selectDeviceIdsByNumbers(repoprNumbers); insOrderDeviceRecordMapper.delete(Wrappers.<InsOrderDeviceRecord>lambdaQuery() .in(InsOrderDeviceRecord::getDeviceId, reportDeviceIds) .eq(InsOrderDeviceRecord::getInsOrderId, insSample.getInsOrderId())); } } private static Set<String> getDeviceDifference(Set<String> number1, Set<String> number2) { @@ -674,7 +679,7 @@ } /** * todo: 清除没有使用的检验项 * todo: 原始记录模板清除没有使用的检验项(暂时有bug无法使用) * @param sheet * @param itemNameList */ @@ -980,7 +985,7 @@ private void addAnalysis(List<InsProduct> productList, IfsInventoryQuantity ifsInventoryQuantity, InsOrder order) { for (InsProduct insProduct : productList) { // todo: 暂时判断是否是老化 if (insProduct.getInspectionItem().contains("老化")) { if (insProduct.getInspectionItem().contains("老化") && insProduct.getInsResult().equals(1)) { List<InsProductDeviationWarningDetail> insProductAnalysisDtoList = insProductMapper.selectAnalysis(insProduct, ifsInventoryQuantity.getSupplierName()); if (insProductAnalysisDtoList.size() < 10) { inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsOrderServiceImpl.java
@@ -1034,6 +1034,24 @@ } } /** * 修改样品型号 * @param insSample */ @Override public void updateSampleModel(InsSample insSample) { // 判断当前订单是否生成了报告, 生成了报告不能修改单号 Long count = insReportMapper.selectCount(Wrappers.<InsReport>lambdaQuery() .eq(InsReport::getInsOrderId, insSample.getInsOrderId())); if (count > 0 ) { throw new ErrorException("当前订单已经生成了报告不能修改编号"); } insSampleService.update(Wrappers.<InsSample>lambdaUpdate() .eq(InsSample::getId, insSample.getId()) .set(InsSample::getModel, insSample.getModel())); } } inspect-server/src/main/java/com/ruoyi/inspect/service/impl/InsSampleServiceImpl.java
@@ -6,6 +6,8 @@ import com.ruoyi.inspect.service.InsSampleService; import org.springframework.stereotype.Service; import java.util.List; /** * @author Administrator * @description 针对表【ins_sample(检验样品)】的数据库操作Service实现 @@ -15,6 +17,15 @@ public class InsSampleServiceImpl extends ServiceImpl<InsSampleMapper, InsSample> implements InsSampleService { /** * 根据订单id查询样品 * @param insOrderId * @return */ @Override public List<InsSample> getSampleByOrderId(Integer insOrderId) { return baseMapper.getSampleByOrderId(insOrderId); } } inspect-server/src/main/resources/mapper/InsProductDeviationWarningMapper.xml
@@ -4,11 +4,14 @@ <!-- 查看预警列表 --> <select id="selectDeviationWarningPage" resultType="com.ruoyi.inspect.dto.InsProductDeviationWarningDto"> select * from (select ipdw.*, isa.sample sample_name, isa.model sample_model select * from (select ipdw.*, isa.sample sample_name, isa.model sample_model, concat(ip.inspection_item, ip.inspection_item_subclass) inspection_item_name from ins_product_deviation_warning ipdw left join ins_sample isa on isa.id = ipdw.ins_sample_id) a left join ins_sample isa on isa.id = ipdw.ins_sample_id left join ins_product ip On ip.id = ipdw.ins_product_id) a <if test="ew.customSqlSegment != null and ew.customSqlSegment != ''"> ${ew.customSqlSegment} </if> inspect-server/src/main/resources/mapper/InsSampleMapper.xml
@@ -697,4 +697,13 @@ order by ip.sort asc </select> <!-- 根据订单id查询样品 --> <select id="getSampleByOrderId" resultType="com.ruoyi.inspect.pojo.InsSample"> select is2.*, sml.name standard_method_name from ins_sample is2 left join standard_method sml on sml.id = is2.standard_method_list_id where is2.ins_order_id = #{insOrderId} </select> </mapper>