修改设备检定和公式的部分代码

pull/1/head
yitonglei 4 years ago
parent be75dda9dd
commit 332c558607
  1. 3
      lab-service-api/lab-file-api/src/main/java/org/springblade/file/entity/EquipVerification.java
  2. 16
      lab-service-api/lab-file-api/src/main/java/org/springblade/file/entity/EquipVerificationLog.java
  3. 2
      lab-service-api/lab-lims-api/src/main/java/org/springblade/lims/entry/Reagent.java
  4. 80
      lab-service/lab-file/src/main/java/org/springblade/file/controller/EquipVerificationController.java
  5. 1
      lab-service/lab-file/src/main/java/org/springblade/file/controller/EquipVerificationLogController.java
  6. 14
      lab-service/lab-file/src/main/java/org/springblade/file/mapper/EquipVerificationLogMapper.xml
  7. 1
      lab-service/lab-file/src/main/java/org/springblade/file/mapper/EquipVerificationMapper.java
  8. 1
      lab-service/lab-file/src/main/java/org/springblade/file/mapper/EquipVerificationMapper.xml
  9. 1
      lab-service/lab-file/src/main/java/org/springblade/file/service/IEquipVerificationLogService.java
  10. 4
      lab-service/lab-file/src/main/java/org/springblade/file/service/IEquipVerificationService.java
  11. 42
      lab-service/lab-file/src/main/java/org/springblade/file/service/impl/EquipVerificationLogServiceImpl.java
  12. 44
      lab-service/lab-file/src/main/java/org/springblade/file/service/impl/EquipVerificationServiceImpl.java

@ -93,5 +93,6 @@ public class EquipVerification extends BaseEntity {
//
// @ApiModelProperty(value = "检定状态(业务字典 equip_verification_status)")
// private Integer status;
@ApiModelProperty(value = "检定提前提示的天数")
private Integer warnBefore;
}

@ -28,7 +28,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.time.LocalDateTime;
/**
* 仪器检定管理实体类
* 仪器检定管理记录表
*
* @author BladeX
* @since 2022-07-22
@ -73,21 +73,23 @@ public class EquipVerificationLog extends BaseEntity {
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime enableTime;
/**
* 上次检定时间
* 检定时间
*/
@ApiModelProperty(value = "上次检定时间")
@ApiModelProperty(value = "检定时间")
@DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
private LocalDateTime lastVerificationTime;
private LocalDateTime verification_time;
/**
* 检定周期
*/
@ApiModelProperty(value = "检定周期(天)(业务字典 equip_verification_cycle)")
private Integer cycle;
/**
* 检定次数
* 检定
*/
@ApiModelProperty(value = "检定次数")
private Integer total;
@ApiModelProperty(value = "检定")
private long verificationUser;
@ApiModelProperty(value = "检定轮数")
private Integer cicleNum;
}

@ -66,5 +66,7 @@ public class Reagent extends BaseEntity implements Serializable {
@TableField(exist = false)
private List<TypeAndOperation> operationList;
private long fomulaId;
}

@ -19,6 +19,7 @@ package org.springblade.file.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.github.xiaoymin.knife4j.annotations.ApiOperationSupport;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiModelProperty;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import lombok.AllArgsConstructor;
@ -28,6 +29,8 @@ import org.springblade.core.mp.support.Query;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.Func;
import org.springblade.file.entity.EquipVerification;
import org.springblade.file.entity.EquipVerificationLog;
import org.springblade.file.service.IEquipVerificationLogService;
import org.springblade.file.service.IEquipVerificationService;
import org.springblade.file.vo.EquipVerificationVO;
import org.springblade.file.wrapper.EquipVerificationWrapper;
@ -35,6 +38,7 @@ import org.springblade.lims.feign.ILimsClient;
import org.springframework.web.bind.annotation.*;
import javax.validation.Valid;
import java.util.List;
/**
* 仪器检定管理 控制器
@ -48,6 +52,7 @@ import javax.validation.Valid;
public class EquipVerificationController extends BladeController {
private final IEquipVerificationService equipVerificationService;
private final IEquipVerificationLogService equipVerificationLogService;
private final ILimsClient limsClient;
@ -70,6 +75,7 @@ public class EquipVerificationController extends BladeController {
@ApiOperation(value = "分页", notes = "传入equipVerification")
public R<IPage<EquipVerificationVO>> list(EquipVerification equipVerification, Query query) {
IPage<EquipVerification> pages = equipVerificationService.page(Condition.getPage(query), Condition.getQueryWrapper(equipVerification));
return R.data(EquipVerificationWrapper.build().pageVO(pages));
}
@ -82,50 +88,56 @@ public class EquipVerificationController extends BladeController {
@ApiOperation(value = "分页", notes = "传入equipVerification")
public R<IPage<EquipVerificationVO>> page(EquipVerificationVO equipVerification, Query query) {
IPage<EquipVerificationVO> pages = equipVerificationService.selectEquipVerificationPage(Condition.getPage(query), equipVerification);
//获取分页中的具体数据
List<EquipVerificationVO> records = pages.getRecords();
//通过计算确定分页中每件设备是否该检定
equipVerificationService.setVerificationState(records);
pages.setRecords(records);
return R.data(pages);
}
// /**
// * 新增 仪器检定管理
// */
// @PostMapping("/save")
// @ApiOperationSupport(order = 4)
// @ApiOperation(value = "新增", notes = "传入equipVerification")
// public R save(@Valid @RequestBody EquipVerification equipVerification) {
// return R.status(equipVerificationService.save(equipVerification));
// }
//
// /**
// * 修改 仪器检定管理
// */
// @PostMapping("/update")
// @ApiOperationSupport(order = 5)
// @ApiOperation(value = "修改", notes = "传入equipVerification")
// public R update(@Valid @RequestBody EquipVerification equipVerification) {
// return R.status(equipVerificationService.updateById(equipVerification));
// }
/**
* 新增或修改 仪器检定管理
* 新增检定记录
* @param e (updateVerification)
* @return
*/
@PostMapping("/submit")
@ApiOperationSupport(order = 6)
@ApiOperation(value = "新增或修改", notes = "传入equipVerification")
public R submit(@Valid @RequestBody EquipVerification equipVerification) {
limsClient.updateStatus(equipVerification.getInstrumentId());
return R.status(equipVerificationService.saveOrUpdate(equipVerification));
}
@PostMapping("verification")
@ApiOperation(value="保存检定记录")
public R verification(@RequestBody EquipVerification e){
equipVerificationLogService.insertLog(e);
return R.success("检定成功");
}
/**
* 删除 仪器检定管理
* 修改检定记录
* @param e (EquipVerificationLog)
* @return
*/
@PostMapping("/remove")
@ApiOperationSupport(order = 7)
@ApiOperation(value = "逻辑删除", notes = "传入ids")
public R remove(@ApiParam(value = "主键集合", required = true) @RequestParam String ids) {
return R.status(equipVerificationService.deleteLogic(Func.toLongList(ids)));
@PutMapping("updateVerification")
@ApiOperation(value = "修改检定记录" )
public R updateVerification(@RequestBody EquipVerificationLog e){
boolean b = equipVerificationLogService.updateById(e);
if(b){
return R.data(equipVerificationLogService.getById(e.getId()));
}else{
return R.fail("修改失败");
}
}
/**
* 新增或修改 仪器检定管理
*/
// @PostMapping("/submit")
// @ApiOperationSupport(order = 6)
// @ApiOperation(value = "新增或修改", notes = "传入equipVerification")
// public R submit(@Valid @RequestBody EquipVerification equipVerification) {
// limsClient.updateStatus(equipVerification.getInstrumentId());
// return R.status(equipVerificationService.saveOrUpdate(equipVerification));
// }
}

@ -53,4 +53,5 @@ public class EquipVerificationLogController extends BladeController {
wrapper.orderByDesc(EquipVerificationLog::getCreateTime);
return R.data(equipVerificationLogService.page(Condition.getPage(query), wrapper));
}
}

@ -5,20 +5,16 @@
<!-- 通用查询映射结果 -->
<resultMap id="equipVerificationResultMap" type="org.springblade.file.entity.EquipVerificationLog">
<result column="id" property="id"/>
<result column="create_user" property="createUser"/>
<result column="create_dept" property="createDept"/>
<result column="create_time" property="createTime"/>
<result column="update_user" property="updateUser"/>
<result column="update_time" property="updateTime"/>
<result column="is_deleted" property="isDeleted"/>
<result column="status" property="status"/>
<result column="instrument_id" property="instrumentId"/>
<result column="tenant_id" property="tenantId"/>
<result column="equip_name" property="equipName"/>
<result column="equip_model" property="equipModel"/>
<result column="manufacturer_or_brand" property="manufacturerOrBrand"/>
<result column="enable_time" property="enableTime"/>
<result column="last_verification_time" property="lastVerificationTime"/>
<result column="cycle" property="cycle"/>
<result column="total" property="total"/>
<result column="verification_time" property="verification_time"/>
<result column="verification_user" property="verificationUser"/>
<result column="cicle_num" property="cicleNum"/>
</resultMap>

@ -43,4 +43,5 @@ public interface EquipVerificationMapper extends BaseMapper<EquipVerification> {
int updateBatchStatus();
}

@ -19,6 +19,7 @@
<result column="last_verification_time" property="lastVerificationTime"/>
<result column="cycle" property="cycle"/>
<result column="total" property="total"/>
<result column="warn_before" property="warnBefore" />
</resultMap>
<select id="selectEquipVerificationPage" resultType="org.springblade.file.vo.EquipVerificationVO">

@ -30,5 +30,6 @@ import org.springblade.file.vo.EquipVerificationVO;
*/
public interface IEquipVerificationLogService extends BaseService<EquipVerificationLog> {
void insertLog(EquipVerification e);
}

@ -21,6 +21,8 @@ import org.springblade.file.vo.EquipVerificationVO;
import org.springblade.core.mp.base.BaseService;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.util.List;
/**
* 仪器检定管理 服务类
*
@ -40,4 +42,6 @@ public interface IEquipVerificationService extends BaseService<EquipVerification
int updateBatchStatus();
void setVerificationState(List<EquipVerificationVO> list);
}

@ -18,6 +18,8 @@ package org.springblade.file.service.impl;
import com.baomidou.mybatisplus.core.metadata.IPage;
import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.file.entity.EquipVerification;
@ -32,8 +34,11 @@ import org.springblade.system.user.entity.User;
import org.springblade.system.user.feign.IUserClient;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.List;
import java.util.Optional;
@ -45,6 +50,43 @@ import java.util.Optional;
*/
@Service
public class EquipVerificationLogServiceImpl extends BaseServiceImpl<EquipVerificationLogMapper, EquipVerificationLog> implements IEquipVerificationLogService {
@Autowired
private EquipVerificationLogMapper equipVerificationLogMapper;
@Autowired
private EquipVerificationMapper equipVerificationMapper;
@Override
@Transactional(rollbackFor = Exception.class)
public void insertLog(EquipVerification e){
//当前日期
LocalDateTime localDateTime = LocalDateTime.now();
EquipVerificationLog log = new EquipVerificationLog();
log.setCycle(e.getCycle());
log.setEnableTime(e.getEnableTime());
log.setEquipModel(e.getEquipModel());
log.setInstrumentId(e.getInstrumentId());
log.setTenantId(e.getTenantId());
log.setVerification_time(localDateTime);
BladeUser bladeUser = AuthUtil.getUser();
log.setVerificationUser(bladeUser.getUserId());
//当前日期
LocalDate localDate = LocalDate.now();
LocalDateTime enableTime = e.getEnableTime();
//设备启用日期
LocalDate enableDate = LocalDate.of(enableTime.getYear(), enableTime.getMonthValue(), enableTime.getDayOfMonth());
long between = ChronoUnit.DAYS.between(enableDate, localDate);
log.setCicleNum(Integer.parseInt(String.valueOf(between / e.getCycle())) + 1);
int insert = equipVerificationLogMapper.insert(log);
//保存成功
if(insert > 0){
//更新EquipVerification
e.setTotal(e.getTotal() + 1);
e.setLastVerificationTime(localDateTime);
equipVerificationMapper.updateById(e);
}
}
}

@ -17,10 +17,15 @@
package org.springblade.file.service.impl;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import org.springblade.core.secure.BladeUser;
import org.springblade.core.secure.utils.AuthUtil;
import org.springblade.core.tool.api.R;
import org.springblade.core.tool.utils.DateUtil;
import org.springblade.core.tool.utils.StringUtil;
import org.springblade.file.entity.EquipVerification;
import org.springblade.file.entity.EquipVerificationLog;
import org.springblade.file.enums.EquipVerificationEnum;
import org.springblade.file.service.IEquipVerificationLogService;
import org.springblade.file.vo.EquipVerificationVO;
import org.springblade.file.mapper.EquipVerificationMapper;
import org.springblade.file.service.IEquipVerificationService;
@ -31,7 +36,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;
import java.util.Date;
import java.util.List;
import java.util.Optional;
@ -47,6 +55,9 @@ public class EquipVerificationServiceImpl extends BaseServiceImpl<EquipVerificat
@Autowired
private IUserClient userClient;
@Autowired
private IEquipVerificationLogService equipVerificationLogService;
@Override
public IPage<EquipVerificationVO> selectEquipVerificationPage(IPage<EquipVerificationVO> page, EquipVerificationVO equipVerification) {
List<EquipVerificationVO> list = baseMapper.selectEquipVerificationPage(page, equipVerification);
@ -88,4 +99,37 @@ public class EquipVerificationServiceImpl extends BaseServiceImpl<EquipVerificat
return this.updateById(entity);
}
}
@Override
public void setVerificationState(List<EquipVerificationVO> list){
//遍历确定每件设备是否该检定了
list.forEach(e ->{
//当前日期
LocalDate localDate = LocalDate.now();
LocalDateTime enableTime = e.getEnableTime();
//设备启用日期
LocalDate enableDate = LocalDate.of(enableTime.getYear(), enableTime.getMonthValue(), enableTime.getDayOfMonth());
//当前日期 - 设备启用日期 = 设备启用的天数
long between = ChronoUnit.DAYS.between(enableDate, localDate);
//设备启用天数 / 设备检定周期 = 经过的检定周期数
long circle = between / e.getCycle();
//经过的检定周期数 * 设备检定周期 = 设备经过的完整检定天数
long day01 = circle * e.getCycle();
//设备启用日期 + day01 = 上个检定周期的结束时间
LocalDate lastVeriDay = enableDate.plus(day01, ChronoUnit.DAYS);
//当前日期 - 上个检定周期的结束时间 = day02
long day02 = ChronoUnit.DAYS.between(lastVeriDay, localDate);
//设备的检定周期 - day02 = 当前日期距本次检定周期结束日的时间差 day03
long day03 = e.getCycle() - day02;
//day03 - 提前通知的时间 = day04
long day04 = day03 - e.getWarnBefore();
if(day04 <= 0){ //进入应检提醒日期内
e.setStatus(0); //0表示该检定了
}else{
e.setStatus(1); //1表示无需检定
}
});
}
}

Loading…
Cancel
Save