Merge remote-tracking branch 'lis8.0/master'

This commit is contained in:
jiangs 2026-01-15 13:49:50 +08:00
commit dd39909195
11 changed files with 222 additions and 12 deletions

View File

@ -1,5 +1,6 @@
package com.czlis.common.core.domain.entity.lis; package com.czlis.common.core.domain.entity.lis;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -13,9 +14,12 @@ public class QcBatchno {
private String yq; private String yq;
private String zkpph; private String zkpph;
private String zkph; private String zkph;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date startda; private Date startda;
private String conc; private String conc;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date expiredt; private Date expiredt;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date endda; private Date endda;
private String useflag; private String useflag;
private String qcsrc; private String qcsrc;

View File

@ -1,5 +1,6 @@
package com.czlis.common.core.domain.entity.lis; package com.czlis.common.core.domain.entity.lis;
import com.fasterxml.jackson.annotation.JsonFormat;
import lombok.AllArgsConstructor; import lombok.AllArgsConstructor;
import lombok.Data; import lombok.Data;
import lombok.NoArgsConstructor; import lombok.NoArgsConstructor;
@ -13,6 +14,7 @@ import java.util.Date;
public class QcVal { public class QcVal {
private Integer qcValid; private Integer qcValid;
private String yq; private String yq;
@JsonFormat(pattern = "yyyy-MM-dd")
private Date zkrq; private Date zkrq;
private String xmdh; private String xmdh;
private String zkph; private String zkph;

View File

@ -2,6 +2,7 @@ package com.czlis.system.web.controller.system;
import com.czlis.common.constant.Constants; import com.czlis.common.constant.Constants;
import com.czlis.common.core.domain.AjaxResult; import com.czlis.common.core.domain.AjaxResult;
import com.czlis.common.core.domain.entity.SysLoginParam;
import com.czlis.common.core.domain.entity.SysMenu; import com.czlis.common.core.domain.entity.SysMenu;
import com.czlis.common.core.domain.entity.SysUser; import com.czlis.common.core.domain.entity.SysUser;
import com.czlis.common.core.domain.model.LoginBody; import com.czlis.common.core.domain.model.LoginBody;
@ -77,6 +78,8 @@ public class SysLoginController {
loginUser.setPermissions(permissions); loginUser.setPermissions(permissions);
tokenService.refreshToken(loginUser); tokenService.refreshToken(loginUser);
} }
SysLoginParam sysLoginParam=loginUser.getSysLoginParam();
user.setSysLoginParam(sysLoginParam);
AjaxResult ajax = AjaxResult.success(); AjaxResult ajax = AjaxResult.success();
ajax.put("user", user); ajax.put("user", user);
ajax.put("roles", roles); ajax.put("roles", roles);

View File

@ -41,12 +41,12 @@ public class QcBatchnoController extends BaseController {
} }
@ApiOperation("新增质控批号") @ApiOperation("新增质控批号")
@PostMapping("/addBatchno") @PostMapping("/addBatchno")
public Result addBatchno(QcBatchno qcBatchno) { public Result addBatchno(@RequestBody QcBatchno qcBatchno) {
return qcBatchnoService.addBatchno(qcBatchno); return qcBatchnoService.addBatchno(qcBatchno);
} }
@ApiOperation("修改质控批号") @ApiOperation("修改质控批号")
@PostMapping("/updateBatchno") @PostMapping("/updateBatchno")
public Result updateBatchno(QcBatchno qcBatchno) { public Result updateBatchno(@RequestBody QcBatchno qcBatchno) {
return qcBatchnoService.updateBatchno(qcBatchno); return qcBatchnoService.updateBatchno(qcBatchno);
} }
@ApiOperation("获取项目列表") @ApiOperation("获取项目列表")

View File

@ -14,6 +14,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*; import org.springframework.web.bind.annotation.*;
import java.util.List; import java.util.List;
import java.util.Map;
@RestController @RestController
@RequestMapping("/qc") @RequestMapping("/qc")
@ -28,9 +29,34 @@ public class QcValController extends BaseController {
List<QcVal> qcValList = qcValService.queryList(qcVal); List<QcVal> qcValList = qcValService.queryList(qcVal);
return new Result("0","获取数据成功!",qcValList); return new Result("0","获取数据成功!",qcValList);
} }
@ApiOperation("按查询质控数据(当天所有项目)")
@GetMapping("/getqcvalitem")
public Result getqcvalitem(QcVal qcVal) {
return qcValService.getqcvalitem(qcVal);
}
@ApiOperation("查询质控数据(单项目一个月)")
@GetMapping("/getqcvalmonth")
public Result getqcvalmonth(QcVal qcVal) {
return qcValService.getqcvalmonth(qcVal);
}
@ApiOperation("保存质控数据") @ApiOperation("保存质控数据")
@PostMapping("/saveqcval") @PostMapping("/saveqcval")
public Result saveQcVal(@RequestBody List<QcVal> qcVal){ public Result saveQcVal(@RequestBody List<QcVal> qcVal){
return qcValService.saveQcVal(qcVal); return qcValService.saveQcVal(qcVal);
} }
@ApiOperation("保存质控数据(当天所有项目)")
@PostMapping("/saveqcvalmonth")
public Result saveQcValmonth(@RequestBody Map<String,Object> qcVal){
return qcValService.saveQcValmonth(qcVal);
}
@ApiOperation("保存质控数据(单项目一个月)")
@PostMapping("/saveqcvalitem")
public Result saveQcValitem(@RequestBody List<Map<String,Object>> qcVal){
return qcValService.saveQcValitem(qcVal);
}
@ApiOperation("获取质控项目")
@GetMapping("/queryitem")
public Result queryitem(String yq){
return qcValService.queryitem(yq);
}
} }

View File

@ -3,6 +3,7 @@ package com.czlis.liswork.mapper;
import com.czlis.common.core.domain.entity.lis.QcVal; import com.czlis.common.core.domain.entity.lis.QcVal;
import java.util.List; import java.util.List;
import java.util.Map;
public interface QcValMapper { public interface QcValMapper {
void insert(QcVal qcVal); void insert(QcVal qcVal);
@ -12,4 +13,7 @@ public interface QcValMapper {
QcVal queryById(Integer qcValid); QcVal queryById(Integer qcValid);
QcVal queryOne(QcVal qcVal); QcVal queryOne(QcVal qcVal);
List<QcVal> query(QcVal qcVal); List<QcVal> query(QcVal qcVal);
List<Map<String,Object>> queryvalmonth(QcVal qcVal);
List<Map<String,Object>> queryvalitem(QcVal qcVal);
List<Map<String,Object>> queryitem(String yq);
} }

View File

@ -2,10 +2,17 @@ package com.czlis.liswork.service;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.QcVal; import com.czlis.common.core.domain.entity.lis.QcVal;
import org.springframework.web.bind.annotation.RequestBody;
import java.util.List; import java.util.List;
import java.util.Map;
public interface QcValService { public interface QcValService {
List<QcVal> queryList(QcVal qcVal); List<QcVal> queryList(QcVal qcVal);
Result getqcvalitem(QcVal qcVal);
Result getqcvalmonth(QcVal qcVal);
Result saveQcVal(List<QcVal> qcValList); Result saveQcVal(List<QcVal> qcValList);
Result saveQcValmonth(Map<String,Object> qcVal);
Result saveQcValitem(List<Map<String,Object>> qcVal);
Result queryitem(String yq);
} }

View File

@ -11,6 +11,7 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -80,11 +81,19 @@ public class QcBatchnoServiceImpl implements QcBatchnoService {
} }
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Result saveQcSample(List<QcSample> qcSampleList0) { public Result saveQcSample(List<QcSample> qcSampleList) {
List<QcSample> qcSampleList=qcSampleList0.stream().filter(ss->ss.getZkbz()!=null&&!"".equals(ss.getZkbz())).collect(Collectors.toList());
if(qcSampleList != null && !qcSampleList.isEmpty()){ if(qcSampleList != null && !qcSampleList.isEmpty()){
for (QcSample qcSample : qcSampleList) { for (QcSample qcSample : qcSampleList) {
Date ksrq=qcSample.getKsrq();
if(ksrq!=null) continue;
QcSample qcSample1 = qcSampleMapper.queryOne(qcSample); QcSample qcSample1 = qcSampleMapper.queryOne(qcSample);
BigDecimal zkbz= qcSample.getZkbz();
if(zkbz==null) {
if(qcSample1 != null){
qcSampleMapper.delete(qcSample);
}
continue;
}
if(qcSample1 == null){ if(qcSample1 == null){
qcSampleMapper.insert(qcSample); qcSampleMapper.insert(qcSample);
}else{ }else{

View File

@ -2,6 +2,10 @@ package com.czlis.liswork.service.impl.qc;
import com.czlis.common.core.domain.Result; import com.czlis.common.core.domain.Result;
import com.czlis.common.core.domain.entity.lis.QcVal; import com.czlis.common.core.domain.entity.lis.QcVal;
import com.czlis.common.utils.DateUtils;
import com.czlis.common.utils.SecurityUtils;
import com.czlis.interfaceCommon.utils.LisUtil;
import com.czlis.liswork.mapper.QcBatchnoMapper;
import com.czlis.liswork.mapper.QcValMapper; import com.czlis.liswork.mapper.QcValMapper;
import com.czlis.liswork.service.QcValService; import com.czlis.liswork.service.QcValService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
@ -9,7 +13,8 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.List; import java.util.*;
import java.util.stream.Collectors;
@Service @Service
public class QcValServiceImpl implements QcValService { public class QcValServiceImpl implements QcValService {
@ -19,6 +24,10 @@ public class QcValServiceImpl implements QcValService {
public List<QcVal> queryList(QcVal qcVal){ public List<QcVal> queryList(QcVal qcVal){
return qcValMapper.query(qcVal); return qcValMapper.query(qcVal);
} }
@Override
public Result queryitem(String yq){
return new Result("0","保存数据成功!",qcValMapper.queryitem(yq));
}
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
@Override @Override
public Result saveQcVal(List<QcVal> qcValList) { public Result saveQcVal(List<QcVal> qcValList) {
@ -42,4 +51,106 @@ public class QcValServiceImpl implements QcValService {
} }
return new Result("0","保存数据成功!"); return new Result("0","保存数据成功!");
} }
@Override
public Result getqcvalitem(QcVal qcVal){
Map<String,Object> map=new HashMap<>();
List<Map<String,Object>> qcVallist= qcValMapper.queryvalitem(qcVal);
if(qcVallist!=null && qcVallist.size()>0){
for (int i = 0; i <7; i++) {
Long cs=i+1L;
map.put("cs"+String.valueOf(cs), qcVallist.stream().filter(maptemp -> (Long) maptemp.get("cs") == cs).collect(Collectors.toList()));
}
}
return new Result("0","成功!",map);
}
@Override
public Result getqcvalmonth(QcVal qcVal){
Map<String,Object> map=new HashMap<>();
List<Map<String,Object>> qcVallist= qcValMapper.queryvalmonth(qcVal);
if(qcVallist!=null && qcVallist.size()>0){
for (int i = 0; i <7; i++) {
Long cs=i+1L;
map.put("cs"+String.valueOf(cs), qcVallist.stream().filter(maptemp -> (Long) maptemp.get("cs") == cs).collect(Collectors.toList()));
}
}
return new Result("0","成功!",map);
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result saveQcValmonth(Map<String,Object> map){
for (int i = 0; i <31; i++) {
Long cs=i+1L;
String xh="cs"+cs;
if (!map.containsKey(xh))continue;
List<Map<String,Object>> qcVallist=(List)map.get(xh);
if(qcVallist!=null && qcVallist.size()>0){
for (int j = 0; j <qcVallist.size(); j++) {
Map<String,Object> map0=qcVallist.get(j);
String yq=map0.get("yq").toString();
String xmdh=map0.get("xmdh").toString();
String zkph=map0.get("zkph").toString();
Date zkrq= DateUtils.dateTime("yyy-mm-dd",map0.get("zkph").toString());
}
}
}
return new Result("0","保存数据成功!");
}
@Transactional(rollbackFor = Exception.class)
@Override
public Result saveQcValitem(List<Map<String,Object>> qcVallist){
String yhdh = SecurityUtils.getLoginUser().getUsername();
if(qcVallist!=null && qcVallist.size()>0){
QcVal qcVal0=new QcVal();
qcVal0.setYq(qcVallist.get(0).get("yq").toString());
qcVal0.setZkph(qcVallist.get(0).get("zkph").toString());
qcVal0.setZkrq(DateUtils.dateTime("yyy-mm-dd",qcVallist.get(0).get("zkrq").toString()));
List<QcVal> qcValall=qcValMapper.query(qcVal0);
for (int j = 0; j <qcVallist.size(); j++) {
Map<String,Object> map0=qcVallist.get(j);
String yq=map0.get("yq").toString();
String xmdh=map0.get("xmdh").toString();
String zkph=map0.get("zkph").toString();
Date zkrq= DateUtils.dateTime("yyy-mm-dd",map0.get("zkrq").toString());
for (int i = 0; i <7; i++) {
Long cs=i+1L;
Integer cs0=i+1;
String xh="cs"+cs;
if (!map0.containsKey(xh))continue;
String zkjg=(String)map0.get(xh);
if(!LisUtil.isNumber(zkjg))continue;
Optional<QcVal> qcvalfind= qcValall.stream().filter(aa ->aa.getCs()==cs0).findAny();
QcVal qcVal1=new QcVal();
if(qcvalfind.isPresent())qcVal1=qcvalfind.get();
if (zkjg==null){
if (qcVal1 != null) {
qcValMapper.deleteById(qcVal1.getQcValid());
}
}else {
if (qcVal1 == null) {
qcVal1.setYq(yq);
qcVal1.setZkph(zkph);
qcVal1.setZkrq(zkrq);
qcVal1.setXmdh(xmdh);
qcVal1.setCs(cs0);
qcVal1.setYhdh(yhdh);
qcVal1.setInputdt(new Date());
qcValMapper.insert(qcVal1);
} else {
BigDecimal zkjgs = new BigDecimal(zkjg);
qcVal1.setZkjg(zkjgs);
qcVal1.setYhdh(yhdh);
qcVal1.setInputdt(new Date());
qcValMapper.update(qcVal1);
}
}
}
}
}
return new Result("0","保存数据成功!");
}
public int qcmodifylog(){
return 0;
}
} }

View File

@ -3,7 +3,7 @@
"http://mybatis.org/dtd/mybatis-3-mapper.dtd" > "http://mybatis.org/dtd/mybatis-3-mapper.dtd" >
<mapper namespace="com.czlis.liswork.mapper.QcBatchnoMapper"> <mapper namespace="com.czlis.liswork.mapper.QcBatchnoMapper">
<select id="selectList" resultType="com.czlis.common.core.domain.entity.lis.QcBatchno"> <select id="selectList" resultType="com.czlis.common.core.domain.entity.lis.QcBatchno">
select * from qc_batchno where yq = #{yq} select *,zkpph as zkpphold,zkph as zkphold from qc_batchno where yq = #{yq}
<if test="zkpph != null and zkpph != ''">and zkpph = #{zkpph}</if> <if test="zkpph != null and zkpph != ''">and zkpph = #{zkpph}</if>
<if test="zkph != null and zkph != ''">and zkph = #{zkph}</if> <if test="zkph != null and zkph != ''">and zkph = #{zkph}</if>
</select> </select>
@ -12,7 +12,6 @@
update qc_batchno SET update qc_batchno SET
startda = #{startda}, startda = #{startda},
conc = #{conc}, conc = #{conc},
conc = #{conc},
expiredt = #{expiredt}, expiredt = #{expiredt},
endda = #{endda}, endda = #{endda},
useflag = #{useflag}, useflag = #{useflag},

View File

@ -67,7 +67,7 @@
<delete id="delete"> <delete id="delete">
delete from qc_val where yq = #{yq} and delete from qc_val where yq = #{yq} and
<where> <where>
<if test="zkrq != null and zkrq != ''"> <if test="zkrq != null ">
and zkrq = #{zkrq} and zkrq = #{zkrq}
</if> </if>
<if test="xmdh != null and xmdh != ''"> <if test="xmdh != null and xmdh != ''">
@ -76,7 +76,7 @@
<if test="zkph != null and zkph != ''"> <if test="zkph != null and zkph != ''">
and zkph = #{zkph} and zkph = #{zkph}
</if> </if>
<if test="cs != null and cs != ''"> <if test="cs != null ">
and cs = #{cs} and cs = #{cs}
</if> </if>
</where> </where>
@ -93,7 +93,7 @@
<select id="query" resultType="com.czlis.common.core.domain.entity.lis.QcVal"> <select id="query" resultType="com.czlis.common.core.domain.entity.lis.QcVal">
select * from qc_val select * from qc_val
<where> <where>
<if test="zkrq != null and zkrq != ''"> <if test="zkrq != null ">
and zkrq = #{zkrq} and zkrq = #{zkrq}
</if> </if>
<if test="yq != null and yq != ''"> <if test="yq != null and yq != ''">
@ -105,10 +105,55 @@
<if test="zkph != null and zkph != ''"> <if test="zkph != null and zkph != ''">
and zkph = #{zkph} and zkph = #{zkph}
</if> </if>
<if test="cs != null and cs != ''"> <if test="cs != null ">
and cs = #{cs} and cs = #{cs}
</if> </if>
</where> </where>
</select> </select>
<select id="queryitem" resultType="map">
SELECT xm_info.yq,
xm_info.xmdh,
xm_info.xmmc
FROM xm_info WHERE ( xm_info.yq = #{yq} ) AND ( xm_info.zkxm = 'Y' )
order by xm_info.dyxh
</select>
<select id="queryvalitem" resultType="map">
SELECT xm_info.yq,
xm_info.xmdh,
xm_info.xmmc,
#{zkrq} as zkrq,
qc_sample.zkph,
qc_sample.ld,
qc_sample.cv,
qc_sample.sd,
qc_sample.zkbz,isnull(qc_sample.qccv,xm_info.qccv) as qccv,
qc_val.zkjg,ss.cs
FROM xm_info join (SELECT TOP 7 ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS cs FROM sys.columns c1 CROSS JOIN sys.columns c2) ss on 7>=ss.cs
left JOIN qc_sample ON xm_info.yq = qc_sample.yq and qc_sample.xmdh = xm_info.xmdh and qc_sample.zkph=#{zkph} and
ksrq=(select max(ksrq) from qc_sample a where #{zkrq}>=a.ksrq and a.xmdh=qc_sample.xmdh AND a.yq=qc_sample.yq AND a.zkph=qc_sample.zkph)
left join qc_val on qc_val.yq=xm_info.yq and qc_val.xmdh= xm_info.xmdh and qc_val.zkph=#{zkph} and qc_val.zkrq=#{zkrq}
and qc_val.cs=ss.cs WHERE ( xm_info.yq = #{yq} ) AND ( xm_info.zkxm = 'Y' )
order by ss.cs,xm_info.dyxh
</select>
<select id="queryvalmonth" resultType="map">
SELECT xm_info.yq,
xm_info.xmdh,
xm_info.xmmc,
sx.daynum,
convert(datetime,convert(char(8),#{zkrq} ,120)+convert(char(2),daynum)) zkrq,
qc_sample.zkph,
qc_sample.ld,
qc_sample.cv,
qc_sample.sd,
qc_sample.zkbz,isnull(qc_sample.qccv,xm_info.qccv) as qccv,
qc_val.zkjg,ss.cs
FROM xm_info join (SELECT TOP 31 ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS daynum FROM sys.columns c1 CROSS JOIN sys.columns c2) sx
on DATEPART(day,convert(datetime,convert(char(8),DATEADD(month,1,#{zkrq}),120)+'01') - 1)>=daynum
join (SELECT TOP 7 ROW_NUMBER() OVER (ORDER BY (SELECT 0)) AS cs FROM sys.columns c1 CROSS JOIN sys.columns c2) ss on 7>=ss.cs
left JOIN qc_sample ON xm_info.yq = qc_sample.yq and qc_sample.xmdh = xm_info.xmdh and qc_sample.zkph=#{zkph} and
ksrq=(select max(ksrq) from qc_sample a where convert(datetime,convert(char(8),#{zkrq},120)+convert(char(2),daynum))>=a.ksrq and a.xmdh=qc_sample.xmdh AND a.yq=qc_sample.yq AND a.zkph=qc_sample.zkph)
left join qc_val on qc_val.yq=xm_info.yq and qc_val.xmdh= xm_info.xmdh and qc_val.zkph=#{zkph} and qc_val.zkrq=convert(datetime,convert(char(8),#{zkrq} ,120)+convert(char(2),daynum))
and qc_val.cs=ss.cs WHERE ( xm_info.yq = #{yq} ) AND ( xm_info.zkxm = 'Y' ) AND ( xm_info.xmdh = #{xmdh})
order by ss.cs,sx.daynum
</select>
</mapper> </mapper>