Commit 74958735 by zhangmengqi

Merge branch 'dev'

parents aa9100a5 dae726f2
......@@ -119,7 +119,7 @@ dependencies {
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 ("org.rxtx:rxtx:2.1.7")
compile("com.qcloud:cos_api:5.2.4") {
exclude module: 'slf4j-log4j12'
}
......
package com.patzn.cloud.service.lims.config;
import com.baomidou.dynamic.datasource.plugin.MasterSlaveAutoRoutingPlugin;
import com.baomidou.mybatisplus.mapper.MetaObjectHandler;
import com.baomidou.mybatisplus.plugins.PaginationInterceptor;
import com.baomidou.mybatisplus.plugins.PerformanceInterceptor;
......@@ -124,7 +123,6 @@ public class MybatisPlusConfig {
return paginationInterceptor;
}
/**
* mybatis-plus SQL执行效率插件
*/
......@@ -134,7 +132,6 @@ public class MybatisPlusConfig {
return new PerformanceInterceptor();
}
/**
* 注入自动填充器
*/
......@@ -142,13 +139,4 @@ public class MybatisPlusConfig {
public MetaObjectHandler metaObjectHandler() {
return new PatznMetaObjectHandler();
}
/**
* 读写分离配置
*/
@Bean
@Profile({"test"})
public MasterSlaveAutoRoutingPlugin masterSlaveAutoRoutingPlugin(){
return new MasterSlaveAutoRoutingPlugin();
}
}
\ No newline at end of file
package com.patzn.cloud.service.lims.config;
import com.patzn.cloud.mq.MqAutoConfiguration;
import org.springframework.amqp.core.Queue;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import com.patzn.cloud.mq.MqAutoConfiguration;
import com.patzn.cloud.mq.log.LogDisruptor;
/**
* <p>
* RabbitMQ 消息推送服务配置
......@@ -27,16 +25,6 @@ public class RabbitMQConfig extends MqAutoConfiguration {
}
/**
* 初始化跟踪日志队列
*/
@Bean
public Queue syslog() {
// 启动 lmax Disruptor
LogDisruptor.INSTANCE.start();
return new Queue(mqProperties.getTopic().getSyslog());
}
/**
* 初始化推送消息队列
*/
@Bean
......
......@@ -31,8 +31,6 @@ public class WebConfig extends WebServiceConfigurer {
registry.addInterceptor(ssoInterceptor).addPathPatterns("/**");
// 表单重复提交拦截器
// registry.addInterceptor(new RepeatFormInterceptor()).excludePathPatterns("/list");
// 注入跟踪访问日志
registry.addInterceptor(new LogInterceptor().setService("lims"));
}
@Override
......
......@@ -2,6 +2,8 @@ package com.patzn.cloud.service.lims.soil.controller;
import java.util.List;
import com.baomidou.kisso.annotation.Action;
import com.baomidou.kisso.annotation.Login;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.service.soil.entity.SoilOriginalRecord;
import com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO;
......@@ -123,4 +125,11 @@ public class SoilOriginalRecordController extends ServiceController {
return success(soilOriginalRecordService.getExcelOriginalRecord(expId));
}
@Login(action=Action.Skip)
@ApiOperation(value = "获取Excel原始记录", notes = "获取Excel原始记录")
@PostMapping("/get_balance_value")
public RestResult<String> getBalanceValue(@RequestParam("id")Long id,@RequestParam("location")String location) {
return success(soilOriginalRecordService.getBalanceValue(id,location));
}
}
package com.patzn.cloud.service.lims.soil.controller;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateBalance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.PathVariable;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.PutMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.api.RestConstants;
import com.patzn.cloud.commons.api.RestResult;
import com.patzn.cloud.commons.controller.ServiceController;
import com.patzn.cloud.service.lims.soil.service.ISoilOriginalTemplateBalanceService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
/**
* 天平配置表 前端控制器
*
* @author wwd
* @since 2021-03-16
*/
@Api(tags = "天平配置表")
@RestController
@RequestMapping("/v1/original_template_balance")
public class SoilOriginalTemplateBalanceController extends ServiceController {
@Autowired
private ISoilOriginalTemplateBalanceService soilOriginalTemplateBalanceService;
@ApiOperation("分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
@ApiImplicitParam(name = RestConstants.PAGE_ROWS, value = "每页条数", required = true, paramType = "query", dataTypeClass = Integer.class),
})
@PostMapping("/page")
public RestResult<Page<SoilOriginalTemplateBalance>> getPage(SoilOriginalTemplateBalance soilOriginalTemplateBalance) {
return success(soilOriginalTemplateBalanceService.page(getPage(), soilOriginalTemplateBalance));
}
@ApiOperation("查询 id 信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@GetMapping("/{id}")
public RestResult<SoilOriginalTemplateBalance> get(@PathVariable("id") Long id) {
return success(soilOriginalTemplateBalanceService.getById(id));
}
@ApiOperation("根据 id 修改信息")
@ApiImplicitParams({
@ApiImplicitParam(name = "id", value = "主键", required = true, paramType = "path", dataTypeClass = Long.class),
})
@PutMapping("/{id}")
public RestResult<Boolean> edit(@PathVariable("id") Long id, SoilOriginalTemplateBalance soilOriginalTemplateBalance) {
soilOriginalTemplateBalance.setId(id);
return success(soilOriginalTemplateBalanceService.updateById(soilOriginalTemplateBalance));
}
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(SoilOriginalTemplateBalance soilOriginalTemplateBalance) {
return success(soilOriginalTemplateBalanceService.save(soilOriginalTemplateBalance));
}
@ApiOperation("根据 ids 删除")
@ApiImplicitParams({
@ApiImplicitParam(name = "ids", value = "主键列表", required = true, paramType = "query", allowMultiple = true, dataTypeClass = Long.class),
})
@DeleteMapping("/")
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(soilOriginalTemplateBalanceService.removeByIds(ids));
}
}
package com.patzn.cloud.service.lims.soil.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateBalance;
/**
* <p>
* Mapper 接口
* </p>
*
* @author wwd
* @since 2021-03-16
*/
public interface SoilOriginalTemplateBalanceMapper extends BatchMapper<SoilOriginalTemplateBalance> {
}
......@@ -38,4 +38,6 @@ public interface ISoilOriginalRecordService extends IBaseService<SoilOriginalRec
SoilOriginalRecord uploadExpGenerate(Long[] ids, SoilOriginalTemplate template, SoilEntrust entrust, Account account, String remark, File file);
SoilOriginalRecord getExcelOriginalRecord(Long expId);
String getBalanceValue(Long id,String location);
}
package com.patzn.cloud.service.lims.soil.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateBalance;
import java.util.List;
/**
* 服务类
*
* @author wwd
* @since 2021-03-16
*/
public interface ISoilOriginalTemplateBalanceService extends IBaseService<SoilOriginalTemplateBalance> {
Page<SoilOriginalTemplateBalance> page(Page<SoilOriginalTemplateBalance> page, SoilOriginalTemplateBalance soilOriginalTemplateBalance);
boolean removeByIds(List<Long> ids);
}
......@@ -3217,11 +3217,20 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
try {
List<SoilExperimentCollectData> dataList= CollectUtil.txt2String(smbFile.getInputStream());
if (CollectionUtils.isNotEmpty(dataList)){
List<SoilItem> saveSoilItemList = new ArrayList<>();
List<SoilItem> updateSoilItemList = new ArrayList<>();
String testMethod = null;
List<SoilItem> soilItems = soilItemService.list(Condition.create().eq("experiment_id",request.getExpId()));
Map<String,SoilItem> soilItemMap = new HashMap<>();
for (SoilItem item : soilItems) {
soilItemMap.put(item.getExperimentId()+item.getName(),item);
}
for (SoilExperimentCollectData collectData:dataList) {
collectData.setEquipName(request.getEquipName());
collectData.setLabNum(request.getLabNum());
......@@ -3243,12 +3252,21 @@ public class SoilExperimentServiceImpl extends BaseServiceImpl<SoilExperimentMap
item.setTestValue(collectData.getTestValue());
item.setExperimentId(request.getExpId());
item.setUnit(collectData.getUnit());
saveSoilItemList.add(item);
if (null==soilItemMap.get(item.getExperimentId()+item.getName())){
saveSoilItemList.add(item);
}else{
updateSoilItemList.add(item);
}
}
if (CollectionUtils.isNotEmpty(saveSoilItemList)){
soilItemService.saveBatch(saveSoilItemList);
}
if (CollectionUtils.isNotEmpty(updateSoilItemList)){
soilItemService.updateBatchById(updateSoilItemList);
}
if (StringUtils.isNotBlank(testMethod)){
SoilExperiment experiment = new SoilExperiment();
experiment.setTestMethod(testMethod);
......
......@@ -15,11 +15,9 @@ import com.patzn.cloud.oss.starter.OssClient;
import com.patzn.cloud.oss.starter.OssFileResult;
import com.patzn.cloud.service.eln.entity.ElnForm;
import com.patzn.cloud.service.eln.entity.ElnTemplate;
import com.patzn.cloud.service.lims.common.SerialTool;
import com.patzn.cloud.service.lims.soil.mapper.SoilOriginalRecordMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilExpRelOriginalRecordService;
import com.patzn.cloud.service.lims.soil.service.ISoilExperimentService;
import com.patzn.cloud.service.lims.soil.service.ISoilItemService;
import com.patzn.cloud.service.lims.soil.service.ISoilOriginalRecordService;
import com.patzn.cloud.service.lims.soil.service.*;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.*;
import com.patzn.cloud.service.soil.vo.SoilOriginalRecordVO;
......@@ -54,6 +52,18 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR
@Autowired
private ISoilExpRelOriginalRecordService soilExpRelOriginalRecordService;
@Autowired
private ISoilOriginalTemplateService soilOriginalTemplateService;
@Autowired
private ISoilOriginalTemplateConfigService soilOriginalTemplateConfigService;
@Autowired
private ISoilOriginalTemplateBalanceService soilOriginalTemplateBalanceService;
@Autowired
private ISoilItemService soilItemService;
......@@ -201,4 +211,123 @@ public class SoilOriginalRecordServiceImpl extends BaseServiceImpl<SoilOriginalR
}
return getById(recordList.get(0).getRecordId());
}
public String getABC(String str){
return str.replaceAll("\\s*","").replaceAll("[^(A-Za-z)]","");
}
public String get123(String str){
return str.replaceAll("\\s*","").replaceAll("[^(0-9)]","");
}
@Override
public String getBalanceValue(Long id,String location) {
if ("$A$1".equals(location)){
return "";
}
location = location.replace("$","");
String columnLabel = getABC(location);
Integer rowLabel = new Integer(get123(location)) ;
SoilOriginalRecord record = getById(id);
if (null !=record){
Long templateId = record.getTemplateId();
if (null == templateId){
return "";
}
SoilOriginalTemplate template = soilOriginalTemplateService.getById(templateId);
Integer integer = template.getSampleBeginRow();
if (null == integer){
return "";
}
if (null == template){
return "";
}
List<SoilOriginalTemplateConfig> configList = soilOriginalTemplateConfigService.list(Condition.create().
eq("template_id",templateId).isNotNull("column_place").eq("clicked",1));
if (CollectionUtils.isEmpty(configList)){
return "";
}
List<String> columNameList = new ArrayList<>();
for (SoilOriginalTemplateConfig config : configList) {
if (0==config.getColumnPlace()){
columNameList.add("A");
}else if (1==config.getColumnPlace()){
columNameList.add("B");
}else if (2==config.getColumnPlace()){
columNameList.add("C");
}else if (3==config.getColumnPlace()){
columNameList.add("D");
}else if (4==config.getColumnPlace()){
columNameList.add("E");
}else if (5==config.getColumnPlace()){
columNameList.add("F");
}else if (6==config.getColumnPlace()){
columNameList.add("G");
}else if (7==config.getColumnPlace()){
columNameList.add("H");
}else if (8==config.getColumnPlace()){
columNameList.add("I");
}else if (9==config.getColumnPlace()){
columNameList.add("J");
}else if (10==config.getColumnPlace()){
columNameList.add("K");
}else if (11==config.getColumnPlace()){
columNameList.add("L");
}else if (12==config.getColumnPlace()){
columNameList.add("M");
}else if (13==config.getColumnPlace()){
columNameList.add("N");
}else if (14==config.getColumnPlace()){
columNameList.add("O");
}else if (15==config.getColumnPlace()){
columNameList.add("P");
}else if (16==config.getColumnPlace()){
columNameList.add("Q");
}else if (17==config.getColumnPlace()){
columNameList.add("R");
}else if (18==config.getColumnPlace()){
columNameList.add("S");
}else if (19==config.getColumnPlace()){
columNameList.add("T");
}else if (20==config.getColumnPlace()){
columNameList.add("U");
}else if (21==config.getColumnPlace()){
columNameList.add("V");
}else if (22==config.getColumnPlace()){
columNameList.add("W");
}else if (23==config.getColumnPlace()){
columNameList.add("X");
}else if (24==config.getColumnPlace()){
columNameList.add("Y");
}else if (25==config.getColumnPlace()){
columNameList.add("Z");
}
}
if (!columNameList.contains(columnLabel)){
return "";
}
if (rowLabel<(integer+1)){
return "";
}
List<SoilOriginalTemplateBalance> balanceList = soilOriginalTemplateBalanceService.list(Condition.create().eq("template_id",templateId).orderBy("itemed",false));
for (SoilOriginalTemplateBalance balance : balanceList) {
String value = SerialTool.getBalanceValue(balance.getComName(),balance.getBaudRate(),balance.getCommand());
if (StringUtils.isNotBlank(value)){
return value;
}
}
return "";
}
return "";
}
}
package com.patzn.cloud.service.lims.soil.service.impl;
import com.patzn.cloud.service.lims.soil.mapper.SoilOriginalTemplateBalanceMapper;
import com.patzn.cloud.service.lims.soil.service.ISoilOriginalTemplateBalanceService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import com.patzn.cloud.service.soil.entity.SoilOriginalTemplateBalance;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.baomidou.mybatisplus.plugins.Page;
import java.util.List;
/**
* 服务实现类
*
* @author wwd
* @since 2021-03-16
*/
@Service
public class SoilOriginalTemplateBalanceServiceImpl extends BaseServiceImpl<SoilOriginalTemplateBalanceMapper, SoilOriginalTemplateBalance> implements ISoilOriginalTemplateBalanceService {
@Override
public Page<SoilOriginalTemplateBalance> page(Page<SoilOriginalTemplateBalance> page, SoilOriginalTemplateBalance soilOriginalTemplateBalance) {
Wrapper wrapper = new EntityWrapper<>(soilOriginalTemplateBalance);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
}
......@@ -236,6 +236,8 @@
WHERE e.deleted = 0
<include refid="sqlWhere"/>
ORDER BY e.ctime DESC
</select>
......@@ -322,6 +324,7 @@
JOIN soil_entrust e ON t.entrust_id = e.id
WHERE e.deleted = 0
<include refid="sqlWhere"/>
ORDER BY e.ctime DESC
</select>
......@@ -342,6 +345,7 @@
JOIN soil_entrust e ON t.entrust_id = e.id
WHERE e.deleted = 0
<include refid="sqlWhere"/>
ORDER BY e.ctime DESC
</select>
......
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="com.patzn.cloud.service.lims.soil.mapper.SoilOriginalTemplateBalanceMapper">
</mapper>
CREATE TABLE "public"."soil_original_template_balance" (
CREATE TABLE "public"."soil_original_template_balance" (
"id" int8 NOT NULL DEFAULT NULL,
"name" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"ip_address" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"com_name" varchar(16) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"baudRate" int2 DEFAULT NULL,
"company_id" int8 DEFAULT NULL,
"deleted" int2 DEFAULT 0,
"uid" int8 DEFAULT NULL,
"ctime" timestamp(6) DEFAULT NULL::timestamp without time zone,
"lid" int8 DEFAULT NULL,
"ltime" timestamp(6) DEFAULT NULL::timestamp without time zone,
"command" varchar(150) COLLATE "pg_catalog"."default" DEFAULT NULL::character varying,
"itemed" int2 DEFAULT NULL,
"template_id" int8 DEFAULT NULL
)
;
COMMENT ON COLUMN "public"."soil_original_template_balance"."id" IS '主键';
COMMENT ON COLUMN "public"."soil_original_template_balance"."name" IS '天平名称';
COMMENT ON COLUMN "public"."soil_original_template_balance"."ip_address" IS 'IP地址';
COMMENT ON COLUMN "public"."soil_original_template_balance"."com_name" IS '串口名称';
COMMENT ON COLUMN "public"."soil_original_template_balance"."baudRate" IS '波特率';
COMMENT ON COLUMN "public"."soil_original_template_balance"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."soil_original_template_balance"."deleted" IS '是否删除0否1是';
COMMENT ON COLUMN "public"."soil_original_template_balance"."uid" IS '创建人ID';
COMMENT ON COLUMN "public"."soil_original_template_balance"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."soil_original_template_balance"."lid" IS '最后修改人ID';
COMMENT ON COLUMN "public"."soil_original_template_balance"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."soil_original_template_balance"."command" IS '采集命令';
COMMENT ON COLUMN "public"."soil_original_template_balance"."itemed" IS '是否是首选天平';
COMMENT ON COLUMN "public"."soil_original_template_balance"."template_id" IS '原始记录ID';
ALTER TABLE "public"."soil_original_template_config"
ADD COLUMN "clicked" int2 DEFAULT 0;
COMMENT ON COLUMN "public"."soil_original_template_config"."clicked" IS '是否需要点击天平';
\ No newline at end of file
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