Commit 97a01da3 by wangweidong

统计查询修改

parent 4e59cc64
......@@ -2,6 +2,8 @@ package com.patzn.lims.common;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.joda.time.DateTime;
import java.sql.Timestamp;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
......@@ -506,4 +508,54 @@ public class DateUtils {
return map;
}
// 获取上周的开始时间
@SuppressWarnings("unused")
public static Date getBeginDayOfLastWeek() {
Date date = new Date();
if (date == null) {
return null;
}
Calendar cal = Calendar.getInstance();
cal.setTime(date);
int dayofweek = cal.get(Calendar.DAY_OF_WEEK);
if (dayofweek == 1) {
dayofweek += 7;
}
cal.add(Calendar.DATE, 2 - dayofweek - 7);
return getDayStartTime(cal.getTime());
}
// 获取上周的结束时间
public static Date getEndDayOfLastWeek() {
Calendar cal = Calendar.getInstance();
cal.setTime(getBeginDayOfLastWeek());
cal.add(Calendar.DAY_OF_WEEK, 6);
Date weekEndSta = cal.getTime();
return getDayEndTime(weekEndSta);
}
// 获取某个日期的结束时间
public static Timestamp getDayEndTime(Date d) {
Calendar calendar = Calendar.getInstance();
if (null != d)
calendar.setTime(d);
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH), 23, 59, 59);
calendar.set(Calendar.MILLISECOND, 999);
return new Timestamp(calendar.getTimeInMillis());
}
// 获取某个日期的开始时间
public static Timestamp getDayStartTime(Date d) {
Calendar calendar = Calendar.getInstance();
if (null != d)
calendar.setTime(d);
calendar.set(calendar.get(Calendar.YEAR), calendar.get(Calendar.MONTH),
calendar.get(Calendar.DAY_OF_MONTH), 0, 0, 0);
calendar.set(Calendar.MILLISECOND, 0);
return new Timestamp(calendar.getTimeInMillis());
}
}
package com.patzn.lims.common;
import com.patzn.lims.online.entity.PtOnlFormField;
import com.patzn.lims.online.entity.PtOnlFormHead;
import org.apache.commons.lang3.StringUtils;
import java.math.BigDecimal;
import java.util.List;
public class Tf {
public static String getCtf(PtOnlFormHead head, List<PtOnlFormField> fields){
String tableName = head.getTableName();
String tableText = head.getTableTxt();
StringBuffer sqlString = new StringBuffer();
sqlString.append(" CREATE TABLE ");
sqlString.append(tableName).append("(");
for (PtOnlFormField field:fields) {
sqlString.append(field.getDbFieldName());
if ("Long".equals(field.getDbType())){
sqlString.append(" int8 ");
}else if ("String".equals(field.getDbType())){
sqlString.append(" varchar(").append(field.getDbLength()).append(") ").append(" COLLATE pg_catalog.default ");
}else if ("Date".equals(field.getDbType())){
sqlString.append(" timestamp(0) ");
}else if ("Integer".equals(field.getDbType())){
sqlString.append(" int2 ");
}else if ("BigDecimal".equals(field.getDbType())){
sqlString.append(" numeric( ").append(field.getDbLength()).append(" ) ");
}else if ("text".equals(field.getDbType())){
sqlString.append(" text COLLATE pg_catalog.default ");
}
if (null != field.getDbIsNull()&&1==field.getDbIsNull()){
sqlString.append(" NOT NULL ");
}
String defaultValue= field.getDbDefaultVal();
if (StringUtils.isNotBlank(defaultValue)){
if ("Long".equals(field.getDbType())||"Integer".equals(field.getDbType())||"BigDecimal".equals(field.getDbType())){
sqlString.append(" DEFAULT ").append(defaultValue).append(" ,");
}else{
sqlString.append(" DEFAULT '").append(defaultValue).append("' ,");
}
}else{
sqlString.append(" DEFAULT NULL,");
}
}
if (sqlString.length()>0){
sqlString = sqlString.deleteCharAt(sqlString.length()-1);
}
sqlString.append(" ); ");
for (PtOnlFormField field:fields) {
if (StringUtils.isNotBlank(field.getDbFieldTxt())){
sqlString.append(" COMMENT ON COLUMN ").append(tableName).append(".").append(field.getDbFieldName());
sqlString.append(" IS ").append("'").append(field.getDbFieldTxt()).append("' ;");
}
}
sqlString.append(" COMMENT ON TABLE ").append(tableName).append(" IS ").append("'").append(tableText).append("' ;");
sqlString.append(" ALTER TABLE ").append(tableName).append(" ADD CONSTRAINT ").append(tableName).append("_pkey").append(" PRIMARY KEY (id); ");
return sqlString.toString();
}
}
package com.patzn.lims.drug.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.patzn.lims.core.api.PtResult;
import com.patzn.lims.core.web.SuperController;
import com.patzn.lims.drug.dto.StatisticNotOK;
import com.patzn.lims.drug.dto.StatisticPersonalTest;
import com.patzn.lims.drug.dto.StatisticSampleItem;
import com.patzn.lims.drug.dto.StatisticSampleRank;
import com.patzn.lims.drug.service.IDrugItemService;
import com.patzn.lims.drug.vo.DrugItemVO;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.List;
/**
* <p>
* 食药物料类型 前端控制器
* </p>
*
* @author wwd
* @since 2020-02-29
*/
@Api(tags = "统计分析")
@RestController
@RequestMapping("/v1/statistic")
public class DrugStatisticController extends SuperController {
@Autowired
private IDrugItemService drugItemService;
@ApiOperation(value = "个人任务量查询", notes = "查询数据列表")
@PostMapping("/list_data")
public PtResult<StatisticPersonalTest> getPersonaTestStatistic(StatisticPersonalTest test) {
return success(drugItemService.getPersonaTestStatistic(test,getAccount()));
}
@ApiOperation(value = "物料报检量排行榜查询", notes = "查询数据列表")
@PostMapping("/sample_rank")
public PtResult<List<StatisticSampleRank>> getSampleRank(StatisticSampleRank rank) {
return success(drugItemService.getSampleRank(rank,getAccount()));
}
@ApiOperation(value = "不合格项目查询", notes = "查询数据列表")
@PostMapping("/item_fail")
public PtResult<List<StatisticNotOK>> getSampleRank(StatisticNotOK notOK) {
return success(drugItemService.getItemFail(notOK,getAccount()));
}
@ApiOperation(value = "不合格项目查询", notes = "查询数据列表")
@PostMapping("/page_item_fail")
public PtResult<IPage<DrugItemVO>> pageItemFail(DrugItemVO notOK) {
return success(drugItemService.pageItemFail(getPage(),notOK,getAccount()));
}
@ApiOperation(value = "报检量项目量统计", notes = "报检量项目量统计")
@PostMapping("/get_sample_item_num")
public PtResult<StatisticSampleItem> getSampleItemNum(StatisticSampleItem sampleItem) {
return success(drugItemService.getSampleItemNum(sampleItem,getAccount()));
}
}
package com.patzn.lims.drug.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
@Data
@Accessors(chain = true)
@ApiModel
public class QueryEntity {
private String day;
private String week;
private String month;
private String year;
private Date beginDate;
private Date endDate;
}
package com.patzn.lims.drug.dto;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@ApiModel
public class SevenInspection {
@ApiModelProperty(value = "日期")
private String dayIns;
@ApiModelProperty(value = "日期")
private Integer insNum;
}
package com.patzn.lims.drug.dto;
import com.patzn.lims.drug.eunms.SingleJudgeEnum;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@ApiModel
//不合格项目统计
public class StatisticNotOK extends QueryEntity{
//不合格总量
private Integer number;
//项目名称
private String name;
//项目名称
private SingleJudgeEnum judgeEnum;
}
package com.patzn.lims.drug.dto;
import com.patzn.lims.drug.eunms.ItemStatusEnum;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.Date;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel
//个人检测量统计
public class StatisticPersonalTest {
//项目总量
private Integer taskTotal;
//已检测量
private Integer testedTotal;
//周同比
private String weekOnWeek;
//日同比
private String dayOnDay;
//未检测量
private Integer noTestNum;
//当天项目数量
private Integer dayNum;
//昨天项目数量
private Integer yesDayNum;
//本周项目数量
private Integer weekNum;
//上周项目数量
private Integer lastWeekNum;
private Long uid;
//上周结束
private ItemStatusEnum itemStatusEnum;
//上周开始
private Date lastWeekBegin;
//上周结束
private Date lastWeekEnd;
//个人报检总量
private Integer inspectionTotal;
//今日报检量
private Integer inspectionDayNum;
//七日内每天的报检量
private List<SevenInspection> listSeven;
//个人样品接收量
private Integer receiveTotal;
//个人今日样品接收量
private Integer receiveDayNum;
//七日内每天的接收量
private List<SevenInspection> listSevenReceive;
}
package com.patzn.lims.drug.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel
//物料报检排行榜统计
public class StatisticSampleItem extends QueryEntity{
//今日报检总量
private Integer daySample;
//今日项目量
private Integer dayItem;
//总报检总
private Integer totalSample;
private List<StatisticSampleRank> sampleRank;
private List<StatisticSampleRank> itemRank;
}
package com.patzn.lims.drug.dto;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.experimental.Accessors;
@Data
@Accessors(chain = true)
@ApiModel
//物料报检排行榜统计
public class StatisticSampleRank extends QueryEntity{
//报检总量
private Integer number;
//物料名称
private String name;
}
package com.patzn.lims.drug.mapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.patzn.lims.core.web.Account;
import com.patzn.lims.drug.dto.StatisticNotOK;
import com.patzn.lims.drug.dto.StatisticPersonalTest;
import com.patzn.lims.drug.dto.StatisticSampleRank;
import com.patzn.lims.drug.entity.DrugItem;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.patzn.lims.drug.vo.DrugItemVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 食药资质项目表 Mapper 接口
......@@ -21,4 +27,20 @@ public interface DrugItemMapper extends BaseMapper<DrugItem> {
Page<DrugItemVO> selectVOList(Page page, @Param("vo")DrugItemVO vo);
Page<DrugItemVO> selectVOInputList(Page page, @Param("vo")DrugItemVO vo);
int getPersonalTestNumber(@Param("vo") Account account);
StatisticPersonalTest getPersonTest(@Param("vo")StatisticPersonalTest personalTest);
List<StatisticSampleRank> getSampleRank(@Param("rank")StatisticSampleRank rank, @Param("account")Account account);
List<StatisticNotOK> getItemFail(@Param("notOK")StatisticNotOK notOK, @Param("account")Account account);
Page<DrugItemVO> pageItemFail(Page page, @Param("vo")DrugItemVO notOK);
List<StatisticSampleRank> selectSampleNumByDay(@Param("daysList")List<String> daysList);
List<StatisticSampleRank> selectItemNumByDay(@Param("daysList")List<String> daysList);
}
......@@ -7,6 +7,8 @@ import com.patzn.lims.drug.vo.DrugSampleOosVO;
import com.patzn.lims.drug.vo.DrugSampleVO;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* <p>
* 食药样品主表 Mapper 接口
......@@ -26,4 +28,11 @@ public interface DrugSampleMapper extends BaseMapper<DrugSample> {
Page<DrugSampleOosVO> selectOosExecute(Page page, @Param("vo") DrugSampleOosVO vo);
Page<DrugSampleOosVO> selectOosRegisterHis(Page page, @Param("vo")DrugSampleOosVO vo);
List<DrugSampleVO> selectInsList(@Param("daysList") List<String> daysList, @Param("userId") Long userId);
List<DrugSampleVO> selectReceiveList(@Param("daysList") List<String> daysList,@Param("userId") Long userId);
int selectCountPersonalSampleReceive(@Param("userId")Long userId);
}
......@@ -3,12 +3,14 @@ package com.patzn.lims.drug.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.patzn.lims.core.web.Account;
import com.patzn.lims.core.web.IBaseService;
import com.patzn.lims.drug.dto.DrugItemRelEquipDTO;
import com.patzn.lims.drug.dto.*;
import com.patzn.lims.drug.entity.DrugItem;
import com.patzn.lims.drug.entity.DrugItemAllocate;
import com.patzn.lims.drug.eunms.ItemStatusEnum;
import com.patzn.lims.drug.vo.DrugItemVO;
import java.util.List;
/**
* <p>
* 食药资质项目表 服务类
......@@ -65,4 +67,15 @@ public interface IDrugItemService extends IBaseService<DrugItem> {
boolean backCheckEnv(Long[] itemIds, Account account, String remark);
boolean bathAddEquip(DrugItemRelEquipDTO equipDTO);
StatisticPersonalTest getPersonaTestStatistic(StatisticPersonalTest test, Account account);
List<StatisticSampleRank> getSampleRank(StatisticSampleRank rank, Account account);
List<StatisticNotOK> getItemFail(StatisticNotOK rank, Account account);
Page<DrugItemVO> pageItemFail(Page page,DrugItemVO notOK, Account account);
StatisticSampleItem getSampleItemNum(StatisticSampleItem sampleItem, Account account);
}
......@@ -84,4 +84,11 @@ public interface IDrugSampleService extends IBaseService<DrugSample> {
boolean editSampleVO(DrugSampleDTO dto, Account account);
boolean scanSubmit(String sampleCode, int i, Account account);
List<DrugSampleVO> getInsList(List<String> daysList, Long userId);
List<DrugSampleVO> getReceiveList(List<String> daysList, Long userId);
int countPersonalSampleReceive(Long userId);
}
......@@ -275,6 +275,12 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
String code= lmsCodeRuleService.getKey(CodeTypeEnum.DRUG_SAMPLE,drugSample);
drugSample.setSampleCode(code);
}
if (null == drugSample.getPcPersonId()){
drugSample.setPcPersonId(account.getUserId());
drugSample.setPcPerson(account.getUserName());
}
if (save(drugSample)){
DrugSampleOperation operation = dto.getDrugSampleOperation();
operation.setSampleId(drugSample.getId());
......@@ -1174,4 +1180,21 @@ public class DrugSampleServiceImpl extends BaseServiceImpl<DrugSampleMapper, Dru
return true;
}
@Override
public List<DrugSampleVO> getInsList(List<String> daysList, Long userId) {
return baseMapper.selectInsList(daysList,userId);
}
@Override
public List<DrugSampleVO> getReceiveList(List<String> daysList, Long userId) {
return baseMapper.selectReceiveList(daysList,userId);
}
@Override
public int countPersonalSampleReceive(Long userId) {
return baseMapper.selectCountPersonalSampleReceive(userId);
}
}
......@@ -96,4 +96,8 @@ public class DrugSampleVO extends DrugSample {
@ApiModelProperty(value = "送样时间结束")
private Date sendTimeEnd;
@ApiModelProperty(value = "ctimeStr")
private String ctimeStr;
}
......@@ -3,8 +3,8 @@ package com.patzn.lims.online.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.patzn.lims.core.PtConstants;
import com.patzn.lims.core.api.PtResult;
import com.patzn.lims.core.online.entity.PtOnlFormField;
import com.patzn.lims.core.web.ServiceController;
import com.patzn.lims.online.entity.PtOnlFormField;
import com.patzn.lims.online.service.IPtOnlFormFieldService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......
......@@ -3,9 +3,9 @@ package com.patzn.lims.online.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.patzn.lims.core.PtConstants;
import com.patzn.lims.core.api.PtResult;
import com.patzn.lims.core.online.dto.TableDataDTO;
import com.patzn.lims.core.online.entity.PtOnlFormHead;
import com.patzn.lims.core.web.ServiceController;
import com.patzn.lims.online.dto.TableDataDTO;
import com.patzn.lims.online.entity.PtOnlFormHead;
import com.patzn.lims.online.service.IPtOnlFormHeadService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiImplicitParam;
......
package com.patzn.lims.online.dto;
import com.patzn.lims.online.entity.PtOnlFormField;
import com.patzn.lims.online.entity.PtOnlFormHead;
import io.swagger.annotations.ApiModel;
import lombok.Data;
import lombok.experimental.Accessors;
import java.util.List;
@Data
@Accessors(chain = true)
@ApiModel
public class TableDataDTO {
//表信息
private PtOnlFormHead head;
//字段信息
private List<PtOnlFormField> fields;
}
package com.patzn.lims.online.entity;
import java.util.Date;
import com.patzn.lims.core.bean.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* <p>
* 字段表
* </p>
*
* @author wwd
* @since 2020-05-13
*/
@Data
@Accessors(chain = true)
@ApiModel
public class PtOnlFormField extends BaseEntity {
@ApiModelProperty(value = "表ID")
private Long formHeadId;
@ApiModelProperty(value = "字段名字")
private String dbFieldName;
@ApiModelProperty(value = "字段备注")
private String dbFieldTxt;
@ApiModelProperty(value = "原字段名")
private String dbFieldNameOld;
@ApiModelProperty(value = "是否主键0否1是")
private Integer dbIsKey;
@ApiModelProperty(value = "是否允许为空0否 1是")
private Integer dbIsNull;
@ApiModelProperty(value = "数据库字段类型")
private String dbType;
@ApiModelProperty(value = "数据库字段长度")
private Integer dbLength;
@ApiModelProperty(value = "小数点")
private Integer dbPointLength;
@ApiModelProperty(value = "表字段默认值")
private String dbDefaultVal;
@ApiModelProperty(value = "字典code")
private String dictField;
@ApiModelProperty(value = "字典表")
private String dictTable;
@ApiModelProperty(value = "字典TXT")
private String dictText;
@ApiModelProperty(value = "表单控件类型")
private String fieldShowType;
@ApiModelProperty(value = "跳转url")
private String fieldHref;
@ApiModelProperty(value = "表单控件长度")
private Integer fieldLength;
@ApiModelProperty(value = "表单字段校验规则")
private String fieldValidType;
@ApiModelProperty(value = "字段是否必填")
private String fieldMustInput;
@ApiModelProperty(value = "扩展参数JSON")
private String fieldExtendJson;
@ApiModelProperty(value = "填值规则code")
private String fieldValueRuleCode;
@ApiModelProperty(value = "是否查询条件0否1是")
private Integer isQuery;
@ApiModelProperty(value = "表单是否显示")
private Integer isShowForm;
@ApiModelProperty(value = "列表是否显示")
private Integer isShowList;
@ApiModelProperty(value = "是否只读")
private Integer isReadOnly;
@ApiModelProperty(value = "查询模式")
private String queryMode;
@ApiModelProperty(value = "外键主表名")
private String mainTable;
@ApiModelProperty(value = "外键主键字段")
private String mainField;
@ApiModelProperty(value = "排序")
private Integer orderNum;
@ApiModelProperty(value = "修改人")
private Long updateBy;
private Date updateTime;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "创建人")
private Long createBy;
}
package com.patzn.lims.online.entity;
import java.util.Date;
import com.patzn.lims.core.bean.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* <p>
* 表单表
* </p>
*
* @author wwd
* @since 2020-05-07
*/
@Data
@Accessors(chain = true)
@ApiModel
public class PtOnlFormHead extends BaseEntity {
@ApiModelProperty(value = "表名")
private String tableName;
@ApiModelProperty(value = "表类型:0单表、1主表、2.附表")
private Integer tableType;
@ApiModelProperty(value = "表版本")
private Integer tableVersion;
@ApiModelProperty(value = "表说明")
private String tableTxt;
@ApiModelProperty(value = "是否带checkbox")
private String isCheckbox;
@ApiModelProperty(value = "同步数据库状态")
private String isDbSynch;
@ApiModelProperty(value = "是否分页")
private String isPage;
@ApiModelProperty(value = "是否是树")
private String isTree;
@ApiModelProperty(value = "主键生成序列")
private String idSequence;
@ApiModelProperty(value = "主键类型")
private String idType;
@ApiModelProperty(value = "查询模式")
private String queryMode;
@ApiModelProperty(value = "映射关系0一对多 1一对一")
private Integer relationType;
@ApiModelProperty(value = "子表")
private String subTableStr;
@ApiModelProperty(value = "附表排序序号")
private Integer tabOrderNum;
@ApiModelProperty(value = "树形表单父ID")
private String treeParentIdField;
@ApiModelProperty(value = "树表主键字段")
private String treeIdField;
@ApiModelProperty(value = "树开表单列字段")
private String treeFieldname;
@ApiModelProperty(value = "表单分类")
private String formCategory;
@ApiModelProperty(value = "PC表单模板")
private String formTemplate;
@ApiModelProperty(value = "表单")
private String formTemplateMobile;
@ApiModelProperty(value = "是否有横向滚动条")
private Integer scroll;
@ApiModelProperty(value = "复制版本号")
private Integer copyVersion;
@ApiModelProperty(value = "复制表类型1为复制表 0为原始表")
private Integer copyType;
@ApiModelProperty(value = "原始表ID")
private Long physicId;
@ApiModelProperty(value = "更新人")
private Long updateBy;
@ApiModelProperty(value = "更新时间")
private Date updateTime;
@ApiModelProperty(value = "创建人")
private Long createBy;
@ApiModelProperty(value = "创建时间")
private Date createTime;
@ApiModelProperty(value = "主题模板")
private String themeTemplate;
}
package com.patzn.lims.online.mapper;
import com.patzn.lims.online.entity.PtOnlFormField;
import com.patzn.lims.core.online.entity.PtOnlFormField;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
/**
......
package com.patzn.lims.online.mapper;
import com.patzn.lims.online.entity.PtOnlFormHead;
import com.patzn.lims.core.online.entity.PtOnlFormHead;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import org.apache.ibatis.annotations.Param;
......
package com.patzn.lims.online.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.patzn.lims.core.online.entity.PtOnlFormField;
import com.patzn.lims.core.web.IBaseService;
import com.patzn.lims.online.entity.PtOnlFormField;
import java.util.List;
......
package com.patzn.lims.online.service;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.patzn.lims.core.online.dto.TableDataDTO;
import com.patzn.lims.core.online.entity.PtOnlFormHead;
import com.patzn.lims.core.web.Account;
import com.patzn.lims.core.web.IBaseService;
import com.patzn.lims.online.dto.TableDataDTO;
import com.patzn.lims.online.entity.PtOnlFormHead;
/**
* <p>
......
package com.patzn.lims.online.service.impl;
import com.patzn.lims.online.entity.PtOnlFormField;
import com.patzn.lims.core.online.entity.PtOnlFormField;
import com.patzn.lims.online.mapper.PtOnlFormFieldMapper;
import com.patzn.lims.online.service.IPtOnlFormFieldService;
import com.patzn.lims.core.web.BaseServiceImpl;
......
......@@ -3,12 +3,13 @@ package com.patzn.lims.online.service.impl;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.StringUtils;
import com.patzn.cloud.commons.api.RestAssert;
import com.patzn.lims.common.Tf;
import com.patzn.lims.core.api.PtAssert;
import com.patzn.lims.core.online.Tf;
import com.patzn.lims.core.online.dto.TableDataDTO;
import com.patzn.lims.core.online.entity.PtOnlFormField;
import com.patzn.lims.core.online.entity.PtOnlFormHead;
import com.patzn.lims.core.online.entity.PtOnlFormIndex;
import com.patzn.lims.core.web.Account;
import com.patzn.lims.online.dto.TableDataDTO;
import com.patzn.lims.online.entity.PtOnlFormField;
import com.patzn.lims.online.entity.PtOnlFormHead;
import com.patzn.lims.online.mapper.PtOnlFormHeadMapper;
import com.patzn.lims.online.service.IPtOnlFormFieldService;
import com.patzn.lims.online.service.IPtOnlFormHeadService;
......@@ -75,7 +76,7 @@ public class PtOnlFormHeadServiceImpl extends BaseServiceImpl<PtOnlFormHeadMappe
if (CollectionUtils.isEmpty(fields)){
return false;
}
baseMapper.executeDDL(Tf.getCtf(head,fields));
baseMapper.executeDDL(Tf.getCtf(head,fields,null));
PtOnlFormHead uHead = new PtOnlFormHead();
uHead.setId(id);
uHead.setIsDbSynch("是");
......
......@@ -8,7 +8,7 @@ swagger:
spring:
datasource:
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
url: jdbc:p6spy:postgresql://192.168.0.28:5432/dev_ptlims
url: jdbc:p6spy:postgresql://localhost:5432/tobacco_lims_dev
username: postgres
password: 111111
data:
......
......@@ -7,7 +7,7 @@ spring:
suffix: .html
# 环境 dev|test|pro
profiles:
active: dev
active: wwd
application:
name: pt-lims
messages:
......
......@@ -133,12 +133,255 @@
SELECT
i.*,s.name AS "sampleName",s.code AS "nameCode",
s.sample_code,s.category,c.allocate_time,o.test_time
s.sample_code,s.category,o.test_time
FROM item i JOIN drug_sample s ON i.sample_id = s.id
JOIN drug_item_allocate c ON i.id = c.item_id
JOIN drug_item_operation o ON i.id = o.item_id
WHERE c.user_id =#{vo.uid}
ORDER BY i.order_by ,i.type,i.name
</select>
<select id="getPersonalTestNumber" resultType="int">
SELECT count(*) FROM drug_item i
JOIN drug_item_operation o ON i.id = o.item_id
WHERE i.deleted = 0
<if test="null!=vo.userId">
AND o.tester_id = #{vo.userId}
</if>
</select>
<select id="getPersonTest" resultType="com.patzn.lims.drug.dto.StatisticPersonalTest">
WITH no_test AS (
SELECT
count( * )
FROM
drug_item i
JOIN drug_item_operation a ON i.ID = a.item_id
WHERE
i.deleted = 0
<if test="null!=vo.uid">
AND a.tester_id = #{vo.uid}
</if>
<if test="null!=vo.itemStatusEnum">
AND i.status = #{vo.itemStatusEnum}
</if>
),
this_day_test AS (
SELECT
count( * )
FROM
drug_item i
JOIN drug_item_operation a ON i.ID = a.item_id
WHERE
i.deleted = 0
<if test="null!=vo.uid">
AND a.tester_id = #{vo.uid}
</if>
AND to_char ( i.ctime, 'yyyy-MM-dd' ) = to_char ( now( ), 'yyyy-MM-dd' )
),
that_day_test AS (
SELECT
count( * )
FROM
drug_item i
JOIN drug_item_operation a ON i.ID = a.item_id
WHERE
i.deleted = 0
<if test="null!=vo.uid">
AND a.tester_id = #{vo.uid}
</if>
AND to_char ( i.ctime, 'yyyy-MM-dd' ) = to_char ( now( ) - INTERVAL '1D', 'yyyy-MM-dd' )
),
this_week_test AS (
SELECT
count( * )
FROM
drug_item i
JOIN drug_item_operation a ON i.ID = a.item_id
WHERE
i.deleted = 0
<if test="null!=vo.uid">
AND a.tester_id = #{vo.uid}
</if>
AND to_char ( i.ctime - ( extract ( dow FROM i.ctime ) - 1 || 'day' ) :: INTERVAL, 'yyyy-MM-dd' ) = to_char ( now( ) - ( extract ( dow FROM now( ) ) - 1 || 'day' ) :: INTERVAL, 'yyyy-MM-dd' )
),
that_week_test AS (
SELECT
count( * )
FROM
drug_item i
JOIN drug_item_operation a ON i.ID = a.item_id
WHERE
i.deleted = 0
<if test="null!=vo.uid">
AND a.tester_id = #{vo.uid}
</if>
<if test="null!=vo.lastWeekBegin">
AND i.ctime >= #{vo.lastWeekBegin}
</if>
<if test="null!=vo.lastWeekEnd">
AND i.ctime <![CDATA[<=]]> #{vo.lastWeekEnd}
</if>
) SELECT
t.count AS "noTestNum",
( SELECT count FROM this_day_test ) AS "dayNum",
( SELECT count FROM that_day_test ) AS "yesDayNum" ,
( SELECT count FROM this_week_test ) AS "weekNum" ,
( SELECT count FROM that_week_test ) AS "lastWeekNum"
FROM
no_test t
LIMIT 1
</select>
<select id="getSampleRank" resultType="com.patzn.lims.drug.dto.StatisticSampleRank">
SELECT name ,count(*) AS "number" FROM drug_sample WHERE
deleted =0
<if test="rank.day">
AND to_char ( ctime, 'yyyy-MM-dd' ) = to_char ( now(), 'yyyy-MM-dd' )
</if>
<if test="rank.week">
AND to_char ( ctime - ( extract ( dow FROM ctime ) - 1 || 'day' ) :: INTERVAL, 'yyyy-MM-dd' ) = to_char ( now( ) - ( extract ( dow FROM now() ) - 1 || 'day' ) :: INTERVAL, 'yyyy-MM-dd' )
</if>
<if test="rank.month">
AND to_char ( ctime, 'yyyy-MM' ) = to_char ( now(), 'yyyy-MM' )
</if>
<if test="rank.year">
AND to_char ( ctime, 'yyyy' ) = to_char ( now(), 'yyyy' )
</if>
<if test="null!=rank.beginDate">
AND ctime >= #{rank.beginDate}
</if>
<if test="null!=rank.endDate">
AND ctime <![CDATA[<=]]> #{rank.endDate}
</if>
GROUP BY name ORDER BY number desc
</select>
<select id="getItemFail" resultType="com.patzn.lims.drug.dto.StatisticSampleRank">
SELECT i.name,count(*) AS "number" FROM drug_item i
JOIN drug_sample s ON i.sample_id = s.id
WHERE i.deleted = 0
<if test="notOK.day">
AND to_char ( i.ctime, 'yyyy-MM-dd' ) = to_char ( now(), 'yyyy-MM-dd' )
</if>
<if test="notOK.week">
AND to_char ( i.ctime - ( extract ( dow FROM i.ctime ) - 1 || 'day' ) :: INTERVAL, 'yyyy-MM-dd' ) = to_char ( now( ) - ( extract ( dow FROM now() ) - 1 || 'day' ) :: INTERVAL, 'yyyy-MM-dd' )
</if>
<if test="notOK.month">
AND to_char ( i.ctime, 'yyyy-MM' ) = to_char ( now(), 'yyyy-MM' )
</if>
<if test="notOK.year">
AND to_char ( i.ctime, 'yyyy' ) = to_char ( now(), 'yyyy' )
</if>
<if test="null!=notOK.beginDate">
AND i.ctime >= #{notOK.beginDate}
</if>
<if test="null!=notOK.endDate">
AND i.ctime <![CDATA[<=]]> #{notOK.endDate}
</if>
AND s.deleted =0 AND i.single_judge = #{notOK.judgeEnum} GROUP BY i.name
</select>
<select id="selectSampleNumByDay" resultType="com.patzn.lims.drug.dto.StatisticSampleRank">
SELECT COUNT(*) AS "number",
to_char( ctime, 'yyyy-MM-dd') AS "name"
FROM
drug_sample
WHERE
deleted = 0 AND to_char( ctime, 'yyyy-MM-dd' ) IN
<foreach collection="daysList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY
to_char(
ctime,
'yyyy-MM-dd')
</select>
<select id="selectItemNumByDay" resultType="com.patzn.lims.drug.dto.StatisticSampleRank">
SELECT COUNT(*) AS "number",
to_char( i.ctime, 'yyyy-MM-dd') AS "name"
FROM
drug_item i JOIN drug_sample s ON i.sample_id = s.id
WHERE
i.deleted = 0 AND s.deleted = 0 AND to_char( i.ctime, 'yyyy-MM-dd' ) IN
<foreach collection="daysList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
GROUP BY
to_char(
i.ctime,
'yyyy-MM-dd')
</select>
<select id="pageItemFail" resultType="com.patzn.lims.drug.vo.DrugItemVO">
WITH item AS (
SELECT i.id,i.name,i.test_value,i.single_judge,i.limit_value,i.standard_name,i.code,i.sample_id,i.order_by FROM drug_item i WHERE i.deleted = 0
<if test="vo.status!=null">
AND i.status = #{vo.status}
</if>
<if test="vo.companyId!=null">
AND i.company_id = #{vo.companyId}
</if>
<if test="vo.singleJudge!=null">
AND i.single_judge = #{vo.singleJudge}
</if>
<if test="vo.singleJudgeNot!=null">
AND i.single_judge != #{vo.singleJudgeNot}
</if>
<include refid="itemWhere"/>
<if test="vo.statusList!=null">
AND i.status IN
<foreach collection="vo.statusList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="vo.sampleIds!=null">
AND i.sample_id IN
<foreach collection="vo.sampleIds" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</if>
<if test="vo.sampleId!=null">
AND i.sample_id = #{vo.sampleId}
</if>
)
SELECT
i.*,s.name AS "sampleName",s.code AS "nameCode",
s.sample_code,s.category
FROM item i JOIN drug_sample s ON i.sample_id = s.id
<where>
<if test="null!=vo.sampleCode">
AND s.sample_code LIKE CONCAT('%',#{vo.sampleCode},'%')
</if>
</where>
ORDER BY i.name
</select>
</mapper>
......@@ -256,4 +256,40 @@
</select>
<select id="selectInsList" resultType="com.patzn.lims.drug.vo.DrugSampleVO">
SELECT to_char(ctime,'yyyy-MM-dd') AS "ctimeStr" FROM drug_sample WHERE deleted = 0
AND pc_person_id = #{userId}
AND to_char(ctime,'yyyy-MM-dd') IN
<foreach collection="daysList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="selectReceiveList" resultType="com.patzn.lims.drug.vo.DrugSampleVO">
SELECT to_char(o.receive_time,'yyyy-MM-dd') AS "ctimeStr" FROM
drug_sample s
JOIN drug_sample_operation o ON s.ID = o.sample_id
WHERE s.deleted = 0
AND o.receiver_id = #{userId}
AND to_char(o.receive_time,'yyyy-MM-dd') IN
<foreach collection="daysList" index="index" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
<select id="selectCountPersonalSampleReceive" resultType="int">
SELECT
count(1)
FROM
drug_sample s
JOIN drug_sample_operation o ON s.ID = o.sample_id
WHERE s.deleted = 0
AND o.receiver_id = #{userId}
</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