Commit f57a70cc by wangweidong

土工平台修改

parent cdb5eb65
......@@ -113,6 +113,7 @@ dependencies {
compile("net.java.dev.jna:jna-platform:4.5.2")
compile("net.java.dev.jna:jna:4.5.2")
compile("com.google.zxing:core:3.3.3")
compile("org.samba.jcifs:jcifs:1.2.9")
compile("com.google.zxing:javase:3.3.3")
compile("com.baomidou:dynamic-datasource-spring-boot-starter:2.5.7")
compile("com.qcloud:cos_api:5.2.4") {
......
package com.patzn.cloud.service.lims.collect.chain;
import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import com.patzn.cloud.service.lims.collect.core.ICollectHandler;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService;
import java.util.ArrayList;
import java.util.List;
public class CollectHandlerChain {
// 持有所有Handler:
private List<ICollectHandler> handlers = new ArrayList<>();
public void addHandler(ICollectHandler handler) {
this.handlers.add(handler);
}
public boolean process(CollectDataType request, ISoilExperimentService soilExperimentService) {
// 依次调用每个Handler:
for (ICollectHandler handler : handlers) {
Boolean r = handler.process(request,soilExperimentService);
if (r != null) {
// 如果返回TRUE或FALSE,处理结束:
System.out.println(request + " " + (r ? "Approved by " : "Denied by ") + handler.getClass().getSimpleName());
return r;
}
}
return false;
}
}
package com.patzn.cloud.service.lims.collect.core;
public class CollectDataType {
private Long equipId;
private Long expId;
private String equipName;
private String equipNum;
private String labNum;
private String spec;
private String brand;
//采集类型
private String type;
//采集地址
private String collectionAddress;
//IP地址
private String ipAddress;
//采集命令
private String acquisitionCommand;
private String sampleCode;
private String entrustCode;
public Long getEquipId() {
return equipId;
}
public void setEquipId(Long equipId) {
this.equipId = equipId;
}
public String getEquipName() {
return equipName;
}
public void setEquipName(String equipName) {
this.equipName = equipName;
}
public String getEquipNum() {
return equipNum;
}
public void setEquipNum(String equipNum) {
this.equipNum = equipNum;
}
public String getLabNum() {
return labNum;
}
public void setLabNum(String labNum) {
this.labNum = labNum;
}
public String getSpec() {
return spec;
}
public void setSpec(String spec) {
this.spec = spec;
}
public String getBrand() {
return brand;
}
public void setBrand(String brand) {
this.brand = brand;
}
public String getType() {
return type;
}
public void setType(String type) {
this.type = type;
}
public String getCollectionAddress() {
return collectionAddress;
}
public void setCollectionAddress(String collectionAddress) {
this.collectionAddress = collectionAddress;
}
public String getIpAddress() {
return ipAddress;
}
public void setIpAddress(String ipAddress) {
this.ipAddress = ipAddress;
}
public String getAcquisitionCommand() {
return acquisitionCommand;
}
public void setAcquisitionCommand(String acquisitionCommand) {
this.acquisitionCommand = acquisitionCommand;
}
public String getSampleCode() {
return sampleCode;
}
public void setSampleCode(String sampleCode) {
this.sampleCode = sampleCode;
}
public String getEntrustCode() {
return entrustCode;
}
public void setEntrustCode(String entrustCode) {
this.entrustCode = entrustCode;
}
public Long getExpId() {
return expId;
}
public void setExpId(Long expId) {
this.expId = expId;
}
}
package com.patzn.cloud.service.lims.collect.core;
import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService;
public interface ICollectHandler {
Boolean process(CollectDataType request, ISoilExperimentService soilExperimentService);
}
package com.patzn.cloud.service.lims.collect.handle;
import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import com.patzn.cloud.service.lims.collect.core.ICollectHandler;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService;
import jcifs.smb.SmbFile;
import org.apache.commons.lang3.StringUtils;
public class PngReportHandle implements ICollectHandler {
@Override
public Boolean process(CollectDataType request, ISoilExperimentService soilExperimentService) {
String type = request.getType();
String collectionAddress = request.getCollectionAddress();
String acquisitionCommand = request.getAcquisitionCommand();
String entrustCode = request.getEntrustCode();
String sampleCode = request.getSampleCode();
Long expId = request.getExpId();
if (!"文件获取".equals(type)){
return null;
}
if (!"试验报告获取图片".equals(acquisitionCommand)){
return null;
}
SmbFile[] list=null;
try {
list= getShareFiles(collectionAddress+entrustCode+"/");
}catch (Exception e){
e.printStackTrace();
}
for (SmbFile smbFile:list) {
String name = getFileNameNoEx(smbFile.getName());
if (!name.equals(sampleCode)){
continue;
}
soilExperimentService.uploadCollectPng(smbFile,request);
}
return true;
}
public static String getFileNameNoEx(String filename) {
if ((filename != null) && (filename.length() > 0)) {
int dot = filename.lastIndexOf('.');
if ((dot >-1) && (dot < (filename.length()))) {
return filename.substring(0, dot);
}
}
return filename;
}
public static SmbFile[] getShareFiles(String url) throws Exception {
SmbFile file = new SmbFile(url);
if(file.exists()){
SmbFile[] files = file.listFiles();
return files;
}
return null;
}
public static void main(String[] args) {
try {
SmbFile smbFile = new SmbFile("smb://administrator:www.163.com@192.168.0.115/土工试验数据/三轴莫尔圆/");
SmbFile[] smbFiles= smbFile.listFiles();
for (SmbFile file:smbFiles) {
System.out.println(file.getName());
}
System.out.println(smbFile);
}catch (Exception e){
e.printStackTrace();
}
}
}
......@@ -28,4 +28,6 @@ public interface SoilExperimentMapper extends BaseMapper<SoilExperiment> {
List<SoilExperimentVO> selectExpRight(RowBounds rowBounds, @Param("vo")SoilExperimentVO vo);
List<SoilExperimentVO> selectOriginalExpList(RowBounds rowBounds,@Param("vo")SoilExperimentVO vo);
List<SoilExperimentVO> selectListVOByIds(@Param("ids")List<Long> expIds);
}
......@@ -5,8 +5,10 @@ import java.util.List;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import com.patzn.cloud.service.soil.entity.SoilExperiment;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import jcifs.smb.SmbFile;
/**
* <p>
......@@ -49,4 +51,8 @@ public interface ISoilExperimentService extends IBaseService<SoilExperiment> {
Page<SoilExperimentVO> pageByByEntrust(Page<SoilExperimentVO> page, SoilExperimentVO vo);
boolean bathUpdateInfo(Long[] ids, SoilExperiment experiment, Account account);
void uploadCollectPng(SmbFile smbFile, CollectDataType type);
List<SoilExperimentVO> listVOByIds(List<Long> expIds);
}
......@@ -4,13 +4,20 @@ import com.baomidou.mybatisplus.mapper.Condition;
import com.google.common.collect.Sets;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.service.lims.collect.chain.CollectHandlerChain;
import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import com.patzn.cloud.service.lims.collect.handle.PngReportHandle;
import com.patzn.cloud.service.lims.soil.mapper.SoilExperimentRelEquipMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentRelEquipService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService;
import com.patzn.cloud.service.soil.dto.SoilExperimentRelEquipDTO;
import com.patzn.cloud.service.soil.entity.SoilExperiment;
import com.patzn.cloud.service.soil.entity.SoilExperimentRelEquip;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import org.apache.commons.collections4.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
......@@ -28,6 +35,9 @@ import java.util.*;
@Service
public class SoilExperimentRelEquipServiceImpl extends BaseServiceImpl<SoilExperimentRelEquipMapper, SoilExperimentRelEquip> implements ISoilExperimentRelEquipService {
@Autowired
private ISoilExperimentService soilExperimentService;
@Override
public Page<SoilExperimentRelEquip> page(Page<SoilExperimentRelEquip> page, SoilExperimentRelEquip soilExperimentRelEquip) {
Wrapper wrapper = new EntityWrapper<>(soilExperimentRelEquip);
......@@ -88,8 +98,45 @@ public class SoilExperimentRelEquipServiceImpl extends BaseServiceImpl<SoilExper
}
}
if (CollectionUtils.isNotEmpty(saveRelEquipList)){
return saveBatch(saveRelEquipList);
List<SoilExperimentVO> experimentVOList = soilExperimentService.listVOByIds(expIds);
Map<Long,SoilExperimentVO> expMap = new HashMap<>();
for (SoilExperimentVO experimentVO:experimentVOList) {
expMap.put(experimentVO.getId(),experimentVO);
}
CollectHandlerChain chain = new CollectHandlerChain();
chain.addHandler(new PngReportHandle());
for (SoilExperimentRelEquip equip:saveRelEquipList) {
SoilExperimentVO experimentVO = expMap.get(equip.getExpId());
CollectDataType collectDataType = new CollectDataType();
collectDataType.setEquipId(equip.getEquipId());
collectDataType.setAcquisitionCommand(equip.getAcquisitionCommand());
collectDataType.setBrand(equip.getBrand());
collectDataType.setCollectionAddress(equip.getCollectionAddress());
collectDataType.setEquipName(equip.getEquipName());
collectDataType.setEquipNum(equip.getEquipNum());
collectDataType.setSpec(equip.getSpec());
collectDataType.setLabNum(equip.getLabNum());
collectDataType.setType(equip.getCollectionType());
collectDataType.setSampleCode(experimentVO.getSampleCode());
collectDataType.setEntrustCode(experimentVO.getEntrustCode());
collectDataType.setExpId(equip.getExpId());
chain.process(collectDataType,soilExperimentService);
}
return saveBatch(saveRelEquipList);
}
return true;
}
......
......@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.google.common.collect.Lists;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.service.lims.collect.core.CollectDataType;
import com.patzn.cloud.service.lims.soil.service.*;
import com.patzn.cloud.service.soil.entity.SoilEntrust;
import com.patzn.cloud.service.soil.entity.SoilExpRelOriginalRecord;
......@@ -24,6 +25,7 @@ import com.patzn.cloud.service.soil.enums.SoilEntrustStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilExpStatusEnum;
import com.patzn.cloud.service.soil.enums.SoilSampleStatusEnum;
import com.patzn.cloud.service.soil.vo.SoilExperimentVO;
import jcifs.smb.SmbFile;
import org.apache.commons.lang3.StringUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -106,7 +108,7 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
@Override
public Page<SoilExperimentVO> pageBySampleIds(Page<SoilExperimentVO> page, Long[] sampleIds, SoilExperimentVO vo) {
return page.setRecords(baseMapper.selectListBySampleIds(page,sampleIds,vo));
return page.setRecords(initOriginalRecord(baseMapper.selectListBySampleIds(page,sampleIds,vo)));
}
@Override
......@@ -299,6 +301,18 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
return super.update(experiment,Condition.create().in("id",ids));
}
@Override
public void uploadCollectPng(SmbFile smbFile, CollectDataType type) {
System.out.println(smbFile.getName());
System.out.println(type.getEntrustCode());
}
@Override
public List<SoilExperimentVO> listVOByIds(List<Long> expIds) {
return baseMapper.selectListVOByIds(expIds);
}
public static boolean isAllFieldNull(Object object) {
Class clazz = object.getClass();
......@@ -325,20 +339,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
return e.getId();
}).collect(Collectors.toList());
List<SoilExpRelOriginalRecord> relOriginalRecordList = expRelOriginalRecordService.list(Condition.create().setSqlSelect("exp_id").in("exp_id",expIds));
List<SoilExpRelOriginalRecord> relOriginalRecordList = expRelOriginalRecordService.list(Condition.create().setSqlSelect("exp_id","record_id").in("exp_id",expIds));
if (null==relOriginalRecordList){
return voList;
}
Map<Long, Long> map =new HashMap<>();
for (SoilExpRelOriginalRecord expRelOriginalRecord:relOriginalRecordList) {
map.put(expRelOriginalRecord.getExpId(),expRelOriginalRecord.getExpId());
map.put(expRelOriginalRecord.getExpId(),expRelOriginalRecord.getRecordId());
}
for (SoilExperimentVO vo:voList) {
if (null == map.get(vo.getId())){
vo.setRecorded("否");
}else{
vo.setRecorded("是");
vo.setRecordId(map.get(vo.getId()));
}
}
return voList;
......
......@@ -180,4 +180,24 @@
</if>
</select>
<select id="selectListVOByIds" resultType="com.patzn.cloud.service.soil.vo.SoilExperimentVO">
SELECT t.id,s.sample_code,e.entrust_code FROM soil_experiment t
JOIN soil_sample s ON t.sample_id = s.id
JOIN soil_entrust e ON s.entrust_id = e.id
WHERE t.deleted = 0 AND s.deleted = 0 AND e.deleted =0
<if test="null!=ids">
AND t.id IN
<foreach collection="ids" index="index" item="id" open="(" separator="," close=")">
#{id}
</foreach>
</if>
</select>
</mapper>
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment