Commit 71465f8d by wangweidong

Merge remote-tracking branch 'origin/master'

parents 8e3005c1 3b7593eb
......@@ -8,6 +8,7 @@ import org.springframework.cache.annotation.EnableCaching;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
import org.springframework.cloud.openfeign.EnableFeignClients;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.scheduling.annotation.EnableScheduling;
import org.springframework.transaction.annotation.EnableTransactionManagement;
import springfox.documentation.swagger2.annotations.EnableSwagger2;
......@@ -20,6 +21,7 @@ import springfox.documentation.swagger2.annotations.EnableSwagger2;
@EnableAsync
@EnableCaching
@EnableSwagger2
@EnableScheduling
@EnableDiscoveryClient
@SpringBootApplication
@EnableTransactionManagement
......
package com.patzn.cloud.service.lims.hmhj.common;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import org.apache.commons.lang3.StringUtils;
import java.util.Arrays;
import java.util.List;
/**
* 委托流程控制(状态控制)
*/
public class EntrustFlowUtils {
public static final String SEQ = "->";
public static List<String> getFlowStatusList(String statusPath) {
if (StringUtils.isBlank(statusPath)) {
return null;
}
return Arrays.asList(statusPath.split(SEQ));
}
public static EntrustFlowEnum getPrevFlowStatus(String name, String statusPath) {
if (StringUtils.isBlank(name)) {
return null;
}
List<String> list = getFlowStatusList(statusPath);
if (CollectionUtils.isEmpty(list)) {
return null;
}
int index = list.indexOf(name);
if (0 == index) {
return null;
}
return EntrustFlowEnum.convert(list.get(index - 1));
}
public static EntrustStatusEnum getPrevStatus(String name, String statusPath) {
EntrustFlowEnum prevFlowEnum = getPrevFlowStatus(name, statusPath);
return null == prevFlowEnum ? null : getStatus(prevFlowEnum.getValue().intValue());
}
public static EntrustStatusEnum getStatus(EntrustFlowEnum flowEnum) {
return null == flowEnum ? null : getStatus(flowEnum.getValue().intValue());
}
public static EntrustFlowEnum getNextFlowStatus(String name, String statusPath) {
if (StringUtils.isBlank(name)) {
return null;
}
List<String> list = getFlowStatusList(statusPath);
if (CollectionUtils.isEmpty(list)) {
return null;
}
int index = list.indexOf(name);
if (list.size() - 1 == index) {
return null;
}
return EntrustFlowEnum.convert(list.get(index + 1));
}
public static EntrustStatusEnum getNextStatus(String name, String statusPath) {
EntrustFlowEnum flowEnum = getNextFlowStatus(name, statusPath);
return null == flowEnum ? null : getStatus(flowEnum.getValue().intValue());
}
/**
* 根据流程状态值获取委托状态
*
* @param flowValue
* @return
*/
public static EntrustStatusEnum getStatus(int flowValue) {
EntrustStatusEnum statusEnum = null;
switch (flowValue) {
case 1:
statusEnum = EntrustStatusEnum.DRAFT;
break;
case 2:
statusEnum = EntrustStatusEnum.OUT_DRAFT;
break;
case 3:
statusEnum = EntrustStatusEnum.CHECK;
break;
case 4:
statusEnum = EntrustStatusEnum.MAKE;
break;
case 5:
case 6:
case 7:
case 8:
case 9:
case 10:
case 11:
case 12:
statusEnum = EntrustStatusEnum.TEST;
break;
case 13:
statusEnum = EntrustStatusEnum.OUT_INPUT;
break;
case 14:
statusEnum = EntrustStatusEnum.QUALITY_CHECK;
break;
}
return statusEnum;
}
}
......@@ -3,12 +3,17 @@ package com.patzn.cloud.service.lims.hmhj.controller;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.baomidou.mybatisplus.mapper.Wrapper;
import com.google.common.collect.Lists;
import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.ReportDTO;
import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSamplePrepareStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO;
import com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.hmhj.vo.PMakeFeStatsVO;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
......@@ -24,6 +29,7 @@ import io.swagger.annotations.ApiImplicitParams;
import io.swagger.annotations.ApiOperation;
import java.util.List;
import java.util.Map;
/**
* 委托单样品 前端控制器
......@@ -447,4 +453,21 @@ public class EntrustSampleController extends ServiceController {
return success(entrustSampleService.pageTestResultQuery(getPage(), entrustSample));
}
@ApiOperation("原铝品味统计查询")
@PostMapping("/al_taste_stats_query")
public RestResult<List<AlTasteStatsVO>> getAlTasteStatsQuery(StatsQueryDTO statsQueryDTO) {
return success(entrustSampleService.getAlTasteStatsQuery(statsQueryDTO));
}
@ApiOperation("电解质分子比统计查询")
@PostMapping("/electrolyte_ratio_stats_query")
public RestResult<List<ElectrolyteRatioStatsVO>> getElectrolyteRatioStatsQuery(QueryDTO queryDTO) {
return success(entrustSampleService.getElectrolyteRatioStatsQuery(queryDTO));
}
@ApiOperation("磷生铁统计查询")
@PostMapping("/p_make_fe_stats_query")
public RestResult<Map> getPMakeFeStatsQuery(QueryDTO queryDTO) {
return success(entrustSampleService.getPMakeFeStatsQuery(queryDTO));
}
}
package com.patzn.cloud.service.lims.hmhj.controller;
import com.patzn.cloud.feign.lims.hmhj.client.LmsChemicalCategoryClient;
import com.patzn.cloud.service.hmhj.entity.Material;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.DeleteMapping;
......@@ -38,6 +39,9 @@ public class MaterialController extends ServiceController {
@Autowired
private IMaterialService materialService;
@Autowired
private LmsChemicalCategoryClient lmsChemicalCategoryClient;
@ApiOperation("分页列表")
@ApiImplicitParams({
@ApiImplicitParam(name = RestConstants.PAGE_PAGE, value = "请求数据的页码", required = true, paramType = "query", dataTypeClass = Integer.class),
......@@ -83,4 +87,5 @@ public class MaterialController extends ServiceController {
public RestResult<Boolean> delete(@RequestParam("ids") List<Long> ids) {
return success(materialService.removeByIds(ids));
}
}
......@@ -61,6 +61,7 @@ public class UserInspectionCodeController extends ServiceController {
@ApiOperation("添加")
@PostMapping("/")
public RestResult<Boolean> add(UserInspectionCode userInspectionCode) {
userInspectionCode.setCreator(getAccount().getUserName());
return success(userInspectionCodeService.save(userInspectionCode));
}
......
......@@ -27,4 +27,6 @@ public interface EntrustMapper extends BatchMapper<Entrust> {
List<EntrustVO> selectVOList(RowBounds rowBounds, @Param("vo")EntrustVO entrust);
List<EntrustVO> selectEntrustProgressList(RowBounds rowBounds, @Param("vo")EntrustVO entrust);
List<EntrustVO> selectVOListByItem(Page<EntrustVO> page, @Param("vo") EntrustVO entrust);
}
......@@ -42,4 +42,6 @@ public interface EntrustSampleItemMapper extends BatchMapper<EntrustSampleItem>
List<EntrustSampleItemVO> selectMinStatusBySampleIds(@Param("sampleIds")List<Long> sampleIds);
List<EntrustSampleItemVO> selectByEntrustId(@Param("entrustId") Long entrustId);
int selectUnallocatedCountByEntrustId(@Param("entrustId") Long entrustId);
}
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.service.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO;
import com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.hmhj.vo.PMakeFeStatsVO;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.session.RowBounds;
......@@ -26,4 +31,10 @@ public interface EntrustSampleMapper extends BatchMapper<EntrustSample> {
List<EntrustSampleVO> selectMinStatusByEntrustIds(@Param("entrustIds") List<Long> entrustIds);
List<EntrustSampleVO> selectTestResultQuery(RowBounds rowBounds,@Param("vo") EntrustSampleVO entrustSample);
List<AlTasteStatsVO> selectAlTasteStats(@Param("vo") StatsQueryDTO queryDTO);
List<ElectrolyteRatioStatsVO> selectElectrolyteRatioStats(@Param("vo") QueryDTO queryDTO);
List<PMakeFeStatsVO> selectPMakeFeStats(@Param("vo") QueryDTO queryDTO);
}
package com.patzn.cloud.service.lims.hmhj.mapper;
import com.patzn.cloud.commons.mapper.BatchMapper;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import java.util.List;
import java.util.Map;
/**
* <p>
* 原始记录解析后的数据存储表 Mapper 接口
* </p>
*
* @author meazty
* @since 2021-07-04
*/
public interface LmsOriginalRecordInfoMapper extends BatchMapper<LmsOriginalRecordInfo> {
/**
* @return
*/
List<LmsOriginalRecordInfo> selectUnGeneratedEntrustData();
List<LmsOriginalRecordInfo> selectUnGeneratedSampleData();
}
......@@ -67,4 +67,6 @@ public interface IEntrustSampleItemService extends IBaseService<EntrustSampleIte
boolean updateQualityJudge(Long[] ids, Account account);
List<EntrustSampleItemVO> listMinStatusBySampleIds(List<Long> entrustIds);
public boolean isAllocatedByEntrustId(Long entrustId);
}
......@@ -4,7 +4,10 @@ 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.hmhj.dto.SamplePrepareDTO;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.entity.EntrustSamplePrepare;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleItemStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustSamplePrepareStatusEnum;
import java.util.List;
......@@ -23,4 +26,6 @@ public interface IEntrustSamplePrepareService extends IBaseService<EntrustSample
boolean makeEnd(SamplePrepareDTO dto, Account account);
boolean submitSampleReceive(Long[] ids, Account account);
boolean addOrUpdateToSetStatus(Long[] sampleIds, EntrustSamplePrepareStatusEnum statusEnum);
}
......@@ -4,11 +4,19 @@ import com.baomidou.mybatisplus.mapper.Wrapper;
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.hmhj.dto.QueryDTO;
import com.patzn.cloud.service.hmhj.dto.ReportDTO;
import com.patzn.cloud.service.hmhj.dto.StatsQueryDTO;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustFlowEnum;
import com.patzn.cloud.service.hmhj.vo.AlTasteStatsVO;
import com.patzn.cloud.service.hmhj.vo.ElectrolyteRatioStatsVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.hmhj.vo.PMakeFeStatsVO;
import java.util.List;
import java.util.Map;
/**
* 服务类
......@@ -53,4 +61,14 @@ public interface IEntrustSampleService extends IBaseService<EntrustSample> {
Page<EntrustSampleVO> pageTestResultQuery(Page<EntrustSampleVO> page, EntrustSampleVO entrustSample);
int countByEntrustId(Long id);
List<AlTasteStatsVO> getAlTasteStatsQuery(StatsQueryDTO queryDTO);
List<ElectrolyteRatioStatsVO> getElectrolyteRatioStatsQuery(QueryDTO queryDTO);
Map<String,Object> getPMakeFeStatsQuery(QueryDTO queryDTO);
boolean updateSampleNextFlowInfo(Entrust entrust, EntrustFlowEnum nextFlowStatus, Account account);
boolean updateSamplePrevFlowInfo(Entrust entrust, EntrustFlowEnum prevFlowStatus, Account account);
}
......@@ -43,8 +43,12 @@ public interface IEntrustService extends IBaseService<Entrust> {
Page<EntrustVO> pageEntrustByItem(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustByItemData(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustByItemHis(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustByItemDataHis(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustBySample(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustByNotSample(Page<EntrustVO> page, EntrustVO entrust);
......@@ -64,4 +68,12 @@ public interface IEntrustService extends IBaseService<Entrust> {
Page<EntrustVO> pageVO(Page<EntrustVO> page, EntrustVO entrust);
Page<EntrustVO> pageEntrustProgress(Page<EntrustVO> page, EntrustVO entrust);
boolean submitToNextNode(Long[] ids, Account account);
boolean submitToNextNode(Entrust entrust, Account account);
boolean rejectToPrevNode(Long id,String reason, Account account);
boolean rejectToPrevNode(Entrust entrust,String reason, Account account);
}
package com.patzn.cloud.service.lims.hmhj.service;
import com.baomidou.mybatisplus.plugins.Page;
import com.patzn.cloud.commons.service.IBaseService;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import java.util.List;
/**
* 原始记录解析后的数据存储表 服务类
*
* @author meazty
* @since 2021-07-04
*/
public interface ILmsOriginalRecordInfoService extends IBaseService<LmsOriginalRecordInfo> {
Page<LmsOriginalRecordInfo> page(Page<LmsOriginalRecordInfo> page, LmsOriginalRecordInfo lmsOriginalRecordInfo);
boolean removeByIds(List<Long> ids);
boolean generateOriginalRelData();
}
......@@ -16,6 +16,7 @@ import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO;
import com.patzn.cloud.service.hmhj.vo.EntrustSampleVO;
import com.patzn.cloud.service.lims.common.CompareUtils;
import com.patzn.cloud.service.lims.hmhj.common.EntrustFlowUtils;
import com.patzn.cloud.service.lims.hmhj.common.HSSFWorkbookUtil;
import com.patzn.cloud.service.lims.hmhj.mapper.EntrustSampleItemMapper;
import com.patzn.cloud.service.lims.hmhj.original.*;
......@@ -131,9 +132,30 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
super.update(item, Condition.create().in("id", ids));
entrustSampleItemRecordService.record(ids, EntrustSampleItemStatusEnum.ALLOT.getDisplay(), EntrustSampleItemStatusEnum.TEST.getDisplay(), 0, "任务分配", account);
// 判定是否委托下的检测项目都已分配
Entrust entrust = getEntrustByItemId(ids[0]);
if(null != entrust && isAllocatedByEntrustId(entrust.getId()) && StringUtils.isNotBlank(entrust.getStatusPath())){
entrustService.submitToNextNode(entrust,account);
}
return true;
}
private Entrust getEntrustByItemId(Long itemId){
if(null == itemId){
return null;
}
EntrustSampleItem entrustSampleItem = baseMapper.selectById(itemId);
if(null == entrustSampleItem){
return null;
}
EntrustSample entrustSample = entrustSampleService.getById(entrustSampleItem.getEntrustSampleId());
if(null == entrustSample || null == entrustSample.getEntrustId()){
return null;
}
return entrustService.getById(entrustSample.getEntrustId());
}
@Override
public Page<EntrustSampleItemVO> pageByItemLeft(Page<EntrustSampleItemVO> page, EntrustSampleItemVO itemVO) {
......@@ -214,13 +236,20 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
// 提交为报告编制
EntrustSample sample = new EntrustSample().setStatus(EntrustSampleStatusEnum.REPORT_MAKE).setLid(account.getUserId()).setLtime(new Date());
entrustSampleService.update(sample, Condition.create().eq("entrust_id", entrustId));
// 提交到下一节点,可能是不更改状态
if(isConfigureStatusPath(entrust)){
entrustService.submitToNextNode(entrust,account);
return true;
}
// 样品操作日志
// 暂时不提供
/// 修改委托信息
entrust.setLid(account.getUserId()).setLtime(new Date()).setProgress(EntrustStatusEnum.MAKE).setStatus(EntrustStatusEnum.MAKE);
// 修改委托信息
entrust.setLid(account.getUserId()).setLtime(new Date()).setProgress(EntrustStatusEnum.TEST).setStatus(EntrustStatusEnum.TEST);
entrustService.updateById(entrust);
// 添加委托日志
entrustRecordService.record(new Long[]{entrustId}, EntrustStatusEnum.TEST.getDisplay(), EntrustStatusEnum.TEST.getDisplay(), 0, account, "提交至报告编制");
return true;
}
......@@ -702,5 +731,15 @@ public class EntrustSampleItemServiceImpl extends BaseServiceImpl<EntrustSampleI
return baseMapper.selectVOListByIds(ids);
}
@Override
public boolean isAllocatedByEntrustId(Long entrustId){
if(null == entrustId || 0l== entrustId.longValue()){
return false;
}
return baseMapper.selectUnallocatedCountByEntrustId(entrustId) == 0;
}
private boolean isConfigureStatusPath(Entrust entrust){
return StringUtils.isBlank(entrust.getStatusPath()) ? false : true;
}
}
package com.patzn.cloud.service.lims.hmhj.service.impl;
import com.baomidou.mybatisplus.mapper.Condition;
import com.baomidou.mybatisplus.toolkit.CollectionUtils;
import com.patzn.cloud.commons.controller.Account;
import com.patzn.cloud.commons.controller.LoginHelper;
import com.patzn.cloud.service.hmhj.entity.Entrust;
import com.patzn.cloud.service.hmhj.entity.EntrustSample;
import com.patzn.cloud.service.hmhj.enums.EntrustSampleStatusEnum;
import com.patzn.cloud.service.hmhj.enums.EntrustStatusEnum;
import com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo;
import com.patzn.cloud.service.lims.hmhj.mapper.LmsOriginalRecordInfoMapper;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleItemService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustSampleService;
import com.patzn.cloud.service.lims.hmhj.service.IEntrustService;
import com.patzn.cloud.service.lims.hmhj.service.ILmsOriginalRecordInfoService;
import com.patzn.cloud.commons.service.impl.BaseServiceImpl;
import org.springframework.beans.factory.annotation.Autowired;
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;
import java.util.Map;
import java.util.stream.Collectors;
/**
* 原始记录解析后的数据存储表 服务实现类
*
* @author meazty
* @since 2021-07-04
*/
@Service
public class LmsOriginalRecordInfoServiceImpl extends BaseServiceImpl<LmsOriginalRecordInfoMapper, LmsOriginalRecordInfo> implements ILmsOriginalRecordInfoService {
@Autowired
private IEntrustService entrustService;
@Autowired
private IEntrustSampleService entrustSampleService;
@Autowired
private IEntrustSampleItemService entrustSampleItemService;
@Override
public Page<LmsOriginalRecordInfo> page(Page<LmsOriginalRecordInfo> page, LmsOriginalRecordInfo lmsOriginalRecordInfo) {
Wrapper wrapper = new EntityWrapper<>(lmsOriginalRecordInfo);
return this.page(page, wrapper);
}
@Override
public boolean removeByIds(List<Long> ids) {
return baseMapper.deleteBatchIds(ids) > 0;
}
/**
* 生成从委托到原始记录相关数据
*
* @return
*/
@Override
public boolean generateOriginalRelData() {
Account account = LoginHelper.getAccount();
// 查询未生成的委托数据
List<LmsOriginalRecordInfo> entrustList = baseMapper.selectUnGeneratedEntrustData();
if (CollectionUtils.isNotEmpty(entrustList)) {
List<Entrust> entrusts = entrustList.stream().map(t -> {
return new Entrust().setStatus(EntrustStatusEnum.TEST).setProgress(EntrustStatusEnum.TEST)
.setCode(t.getContractCode()).setCompanyId(account.getCompanyId()).setUid(account.getUserId());
}).collect(Collectors.toList());
entrustService.saveBatch(entrusts);
}
// 查询未生成的样品数据
List<LmsOriginalRecordInfo> sampleList = baseMapper.selectUnGeneratedSampleData();
if (CollectionUtils.isNotEmpty(sampleList)) {
List<EntrustSample> samples = sampleList.stream().map(t -> {
return new EntrustSample().setStatus(EntrustSampleStatusEnum.TEST).setProgress(EntrustSampleStatusEnum.TEST)
.setCode(t.getSampleNum()).setCompanyId(account.getCompanyId()).setUid(account.getUserId());
}).collect(Collectors.toList());
List<Entrust> entrusts = entrustService.list(Condition.create().setSqlSelect(new String[]{"id","code"})
.eq("status", EntrustStatusEnum.TEST.getValue())
.eq("deleted", 0));
entrustSampleService.saveBatch(samples);
}
return false;
}
}
package com.patzn.cloud.service.lims.schedule;
import com.patzn.cloud.service.lims.hmhj.service.ILmsOriginalRecordInfoService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Component;
@Component
public class LmsOriginalRecordInfoSchedule {
private Logger logger = LoggerFactory.getLogger(LmsOriginalRecordInfoSchedule.class);
@Autowired
private ILmsOriginalRecordInfoService lmsOriginalRecordInfoService;
/**
* 每隔5分钟,执行生成委托->样品->检测项目->原始记录数据
*/
@Scheduled(cron = "0 */50 * * * ?")
public void execute(){
logger.info("------每隔5分钟,执行生成委托->样品->检测项目->原始记录数据------");
// lmsOriginalRecordInfoService.generateOriginalRelData();
}
}
......@@ -58,6 +58,38 @@
order by entrust_time desc
</select>
<select id="selectVOListByItem" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT distinct e.* FROM
entrust e,entrust_sample s,entrust_sample_item i
WHERE e.deleted = 0 and s.deleted = 0 and i.deleted = 0
and s.entrust_id = e.id and i.entrust_sample_id = s.id
<if test="null!=vo.itemStatus">
and i.status = #{vo.itemStatus}
</if>
<if test="null!=vo.itemStatusEnumList">
AND i.status IN
<foreach collection="vo.itemStatusEnumList" index="index" item="status" open="(" separator="," close=")">
#{status}
</foreach>
</if>
<if test="null!=vo.groupNameList">
AND e.test_side IN
<foreach collection="vo.groupNameList" index="index" item="groupName" open="(" separator="," close=")">
#{groupName}
</foreach>
</if>
<if test="null!=vo.client">
AND e.client LIKE CONCAT('%',#{vo.client},'%')
</if>
<if test="null!=vo.code">
AND e.code LIKE CONCAT('%',#{vo.code},'%')
</if>
<if test="null!=vo.testSide">
AND e.test_side LIKE CONCAT('%',#{vo.testSide},'%')
</if>
order by e.entrust_time desc,e.code desc
</select>
<select id="selectEntrustProgressList" resultType="com.patzn.cloud.service.hmhj.vo.EntrustVO">
SELECT id,code,client,client_tel,entrust_time,assignor,test_side,status,progress,
......
......@@ -35,15 +35,18 @@
<select id="selectByItemLeftRight" resultType="com.patzn.cloud.service.hmhj.vo.EntrustSampleItemVO">
WITH i AS (
SELECT
id,
entrust_sample_id,
name,
status,
company_id,
standard,
group_name,
test_value,
group_id
id,
entrust_sample_id,
name,
status,
company_id,
standard,
group_name,
test_value,
group_id,
tester,
tester_id,
test_time
FROM
entrust_sample_item
WHERE
......@@ -312,4 +315,12 @@
WHERE i.deleted = 0 AND s.deleted = 0
AND s.entrust_id = #{entrustId}
</select>
<select id="selectUnallocatedCountByEntrustId" resultType="int">
select count(1) from entrust_sample_item i
join entrust_sample s ON i.entrust_sample_id = s.ID
where i.deleted = 0 AND s.deleted = 0
and i.status = 0
AND s.entrust_id = #{entrustId}
</select>
</mapper>
<?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.hmhj.mapper.LmsOriginalRecordInfoMapper">
<!--获取未生成的委托数据-->
<select id="selectUnGeneratedEntrustData"
resultType="com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo">
select o.file_id,o.contract_code from lms_original_record_info o
where o.deleted = 0
and o.contract_code is not null
and not exists (select 1 from entrust e where e.deleted = 0 and e.code = o.contract_code)
group by o.file_id, o.contract_code order by o.file_id
</select>
<select id="selectUnGeneratedSampleData"
resultType="com.patzn.cloud.service.lims.collection.entity.LmsOriginalRecordInfo">
select o.file_id,o.contract_code,o.sample_num from lms_original_record_info o
where o.deleted = 0
and o.contract_code is not null
and o.sample_num is not null
and not exists (
select 1 from entrust e,entrust_sample s
where
e.deleted = 0
and e.code = o.contract_code
and s.entrust_id = e.id
and s.code = o.sample_num
)
group by o.file_id, o.contract_code, o.sample_num order by o.file_id
</select>
</mapper>
ALTER TABLE "public"."entrust_sample"
ALTER TABLE "public"."entrust_sample"
ADD COLUMN "category" varchar(64) COLLATE "pg_catalog"."default",
ADD COLUMN "electrolyzer_id" int8;
COMMENT ON COLUMN "public"."entrust_sample"."category" IS '样品类型';
COMMENT ON COLUMN "public"."entrust_sample"."electrolyzer_id" IS '电解质ID';
\ No newline at end of file
-- 开启dblink拓展
-- 开启dblink拓展
--执行:create extension dblink;
create extension dblink;
-------------------------------------------------------------------------------------------------
-- 创建获取数据库信息函数
CREATE OR REPLACE FUNCTION "public"."func_db_info"("db_name" varchar='pc_base'::character varying)
RETURNS "pg_catalog"."varchar" AS $BODY$BEGIN
-- Routine body goes here...
IF(strpos(db_name,'dev_') > 0) then
RETURN 'host=127.0.0.1 dbname='|| db_name || ' user=postgres password=post123';
ELSE
RETURN 'host=127.0.0.1 dbname='|| db_name || ' user=hjhmdb password=hm57hj6';
END IF;
END$BODY$
LANGUAGE plpgsql VOLATILE
COST 100
--- 新增视图 :系统用户所属期数 ---
create or replace view v_sys_user_period
as
SELECT u.user_id,
u.period
FROM dblink(func_db_info('dev_base'::character varying)::text, ' SELECT rel.user_id, CASE WHEN sum(strpos(r.name::text, ''三期''::text)) > 0 THEN ''三期'' ELSE ''二期'' END AS period FROM sys_user_rel_role rel JOIN sys_role r ON r.id = rel.role_id WHERE r.status = 1 GROUP BY rel.user_id'::text) u(user_id bigint, period character varying)
ALTER TABLE "public"."material"
ALTER TABLE "public"."material"
ADD COLUMN "entrust_status_path" varchar(255) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."material"."entrust_status_path" IS '委托状态范围';
ALTER TABLE "public"."entrust"
ADD COLUMN "status_path" varchar(255) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."entrust"."status_path" IS '状态范围';
\ No newline at end of file
ALTER TABLE "public"."entrust"
ALTER TABLE "public"."entrust"
ADD COLUMN "flow_status" varchar(32) COLLATE "pg_catalog"."default";
COMMENT ON COLUMN "public"."entrust"."flow_status" IS '流程状态';
-- 新增表
DROP TABLE IF EXISTS "public"."lms_original_record_file";
CREATE TABLE "public"."lms_original_record_file" (
"id" int8 NOT NULL,
"company_id" int8 NOT NULL,
"deleted" int2 NOT NULL DEFAULT 0,
"origin_file_name" varchar(200) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"successful" int2 DEFAULT 0,
"origin_object_key" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"origin_bucket_name" varchar(50) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"origin_version_id" varchar(50) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"target_object_key" varchar(255) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"target_bucket_name" varchar(50) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"target_version_id" varchar(50) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"ctime" timestamp(0) NOT NULL,
"ltime" timestamp(0),
"target_file_name" varchar(50) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"resolver_name" varchar(200) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"extractor_name" varchar(200) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"client_file_path" varchar(300) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"target_file_type" varchar(20) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"origin_file_type" varchar(20) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"aaa" varchar(20) COLLATE "pg_catalog"."default",
"head" text COLLATE "pg_catalog"."default",
"ds_path" text COLLATE "pg_catalog"."default",
"analysis_date" text COLLATE "pg_catalog"."default"
)
;
COMMENT ON COLUMN "public"."lms_original_record_file"."id" IS 'ID';
COMMENT ON COLUMN "public"."lms_original_record_file"."company_id" IS '企业ID';
COMMENT ON COLUMN "public"."lms_original_record_file"."deleted" IS '是否删除';
COMMENT ON COLUMN "public"."lms_original_record_file"."origin_file_name" IS '源文件名称';
COMMENT ON COLUMN "public"."lms_original_record_file"."successful" IS '是否解析成功';
COMMENT ON COLUMN "public"."lms_original_record_file"."origin_object_key" IS '源文件的objectKey';
COMMENT ON COLUMN "public"."lms_original_record_file"."origin_bucket_name" IS '源文件的桶名称';
COMMENT ON COLUMN "public"."lms_original_record_file"."origin_version_id" IS '源文件的版本号';
COMMENT ON COLUMN "public"."lms_original_record_file"."target_object_key" IS '解析后文件的objectKey';
COMMENT ON COLUMN "public"."lms_original_record_file"."target_bucket_name" IS '解析后文件的桶名称';
COMMENT ON COLUMN "public"."lms_original_record_file"."target_version_id" IS '解析后文件的版本号';
COMMENT ON COLUMN "public"."lms_original_record_file"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."lms_original_record_file"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."lms_original_record_file"."target_file_name" IS '解析后的文件名称';
COMMENT ON COLUMN "public"."lms_original_record_file"."resolver_name" IS '解析器类的名称';
COMMENT ON COLUMN "public"."lms_original_record_file"."extractor_name" IS '转换器类名称';
COMMENT ON COLUMN "public"."lms_original_record_file"."client_file_path" IS '客户端配置的文件所在路径';
COMMENT ON COLUMN "public"."lms_original_record_file"."target_file_type" IS '转换后的文件的类型';
COMMENT ON COLUMN "public"."lms_original_record_file"."origin_file_type" IS '源文件的类型';
COMMENT ON COLUMN "public"."lms_original_record_file"."head" IS '表头信息';
COMMENT ON COLUMN "public"."lms_original_record_file"."ds_path" IS 'head中的ds_path';
COMMENT ON COLUMN "public"."lms_original_record_file"."analysis_date" IS '分析时间';
COMMENT ON TABLE "public"."lms_original_record_file" IS '原始记录文件存储表';
-- ----------------------------
-- Table structure for lms_original_record_info
-- ----------------------------
DROP TABLE IF EXISTS "public"."lms_original_record_info";
CREATE TABLE "public"."lms_original_record_info" (
"id" int8 NOT NULL,
"file_id" int8,
"contract_code" varchar(30) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"sample_num" varchar(50) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"item_name" varchar(50) COLLATE "pg_catalog"."default" DEFAULT ''::character varying,
"company_id" int8 NOT NULL,
"deleted" int2 NOT NULL DEFAULT 0,
"ctime" timestamp(0) NOT NULL,
"ltime" timestamp(0),
"data" text COLLATE "pg_catalog"."default" DEFAULT ''::text,
"revision_request" varchar(255) COLLATE "pg_catalog"."default",
"detection" varchar(255) COLLATE "pg_catalog"."default",
"min_response_factor" varchar(30) COLLATE "pg_catalog"."default",
"bar_num" text COLLATE "pg_catalog"."default" DEFAULT ''::character varying
)
;
COMMENT ON COLUMN "public"."lms_original_record_info"."id" IS 'ID';
COMMENT ON COLUMN "public"."lms_original_record_info"."file_id" IS '源文件id';
COMMENT ON COLUMN "public"."lms_original_record_info"."contract_code" IS '检测任务编号';
COMMENT ON COLUMN "public"."lms_original_record_info"."sample_num" IS '样品编号';
COMMENT ON COLUMN "public"."lms_original_record_info"."item_name" IS '项目名称';
COMMENT ON COLUMN "public"."lms_original_record_info"."company_id" IS '企业id';
COMMENT ON COLUMN "public"."lms_original_record_info"."deleted" IS '是否删除';
COMMENT ON COLUMN "public"."lms_original_record_info"."ctime" IS '创建时间';
COMMENT ON COLUMN "public"."lms_original_record_info"."ltime" IS '最后修改时间';
COMMENT ON COLUMN "public"."lms_original_record_info"."data" IS '数据信息';
COMMENT ON COLUMN "public"."lms_original_record_info"."revision_request" IS '修约要求';
COMMENT ON COLUMN "public"."lms_original_record_info"."detection" IS '检出限';
COMMENT ON COLUMN "public"."lms_original_record_info"."min_response_factor" IS '最小相对相应因子';
COMMENT ON COLUMN "public"."lms_original_record_info"."bar_num" IS '分装编号';
COMMENT ON TABLE "public"."lms_original_record_info" IS '原始记录解析后的数据存储表';
-- ----------------------------
-- Primary Key structure for table lms_original_record_file
-- ----------------------------
ALTER TABLE "public"."lms_original_record_file" ADD CONSTRAINT "env_original_record_file_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Primary Key structure for table lms_original_record_info
-- ----------------------------
ALTER TABLE "public"."lms_original_record_info" ADD CONSTRAINT "env_original_record_info_pkey" PRIMARY KEY ("id");
-- ----------------------------
-- Foreign Keys structure for table lms_original_record_info
-- ----------------------------
ALTER TABLE "public"."lms_original_record_info" ADD CONSTRAINT "fk_origin_file_id" FOREIGN KEY ("file_id") REFERENCES "public"."lms_original_record_file" ("id") ON DELETE NO ACTION ON UPDATE NO ACTION;
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