| @ -0,0 +1,64 @@ | |||
| package com.hxhq.business.controller; | |||
| import java.util.Arrays; | |||
| import java.util.List; | |||
| import org.springframework.beans.factory.annotation.Autowired; | |||
| import org.springframework.web.bind.annotation.*; | |||
| import com.hxhq.business.domain.ArchiveLog; | |||
| import com.hxhq.business.service.IArchiveLogService; | |||
| import com.hxhq.common.core.web.controller.BaseController; | |||
| import com.hxhq.common.core.web.domain.AjaxResult; | |||
| import com.hxhq.common.core.web.page.TableDataInfo; | |||
| /** | |||
| * 档案记录Controller | |||
| * | |||
| * @author hxhq | |||
| * @date 2026-01-23 | |||
| */ | |||
| @RestController | |||
| @RequestMapping("/business/archiveLog") | |||
| public class ArchiveLogController extends BaseController | |||
| { | |||
| @Autowired | |||
| private IArchiveLogService archiveLogService; | |||
| /** | |||
| * 查询档案记录列表 | |||
| */ | |||
| @GetMapping("/list") | |||
| public TableDataInfo list(ArchiveLog archiveLog) | |||
| { | |||
| startPage(); | |||
| List<ArchiveLog> list = archiveLogService.queryList(archiveLog); | |||
| return getDataTable(list); | |||
| } | |||
| /** | |||
| * 获取档案记录详细信息 | |||
| */ | |||
| @GetMapping(value = "/info") | |||
| public AjaxResult getInfo(Long id) | |||
| { | |||
| return AjaxResult.success(archiveLogService.getById(id)); | |||
| } | |||
| /** | |||
| * 新增档案记录信息 | |||
| */ | |||
| @PostMapping("/save") | |||
| public AjaxResult save(@RequestBody ArchiveLog archiveLog) | |||
| { | |||
| return toAjax(archiveLogService.saveOrUpdate(archiveLog)); | |||
| } | |||
| /** | |||
| * 删除档案记录信息 | |||
| */ | |||
| @PostMapping("/delete") | |||
| public AjaxResult delete(@RequestBody Long[] ids) | |||
| { | |||
| return toAjax(archiveLogService.removeByIds(Arrays.asList(ids))); | |||
| } | |||
| } | |||
| @ -0,0 +1,149 @@ | |||
| package com.hxhq.business.domain; | |||
| import com.baomidou.mybatisplus.annotation.TableName; | |||
| import com.hxhq.common.core.domain.MpBaseEntity; | |||
| /** | |||
| * 档案记录对象 t_archive_log | |||
| * | |||
| * @author hxhq | |||
| * @date 2026-01-23 | |||
| */ | |||
| @TableName("t_archive_log") | |||
| public class ArchiveLog extends MpBaseEntity | |||
| { | |||
| private static final long serialVersionUID = 1L; | |||
| /** 类型1试验非试验,3供试品,5供试品领取发放,7给药制剂,9给药制剂领取发放,11麻精药,13麻精药领取发放,15试剂 */ | |||
| private Integer type; | |||
| /** 类型1试验,5非试验表单,10麻精药表单 */ | |||
| private Integer studyType; | |||
| /** 对应id */ | |||
| private Long targetId; | |||
| /** 名称 */ | |||
| private String name; | |||
| /** 编号/批号 */ | |||
| private String sn; | |||
| /** 试验负责人/规格/目的/浓度 */ | |||
| private String leader; | |||
| /** 操作类型 */ | |||
| private String operateType; | |||
| /** 操作类型_英文 */ | |||
| private String operateTypeEn; | |||
| /** 操作人 */ | |||
| private String operateUser; | |||
| /** 操作人_英文 */ | |||
| private String operateUserEn; | |||
| public void setType(Integer type) | |||
| { | |||
| this.type = type; | |||
| } | |||
| public Integer getType() | |||
| { | |||
| return type; | |||
| } | |||
| public void setStudyType(Integer studyType) | |||
| { | |||
| this.studyType = studyType; | |||
| } | |||
| public Integer getStudyType() | |||
| { | |||
| return studyType; | |||
| } | |||
| public void setTargetId(Long targetId) | |||
| { | |||
| this.targetId = targetId; | |||
| } | |||
| public Long getTargetId() | |||
| { | |||
| return targetId; | |||
| } | |||
| public void setName(String name) | |||
| { | |||
| this.name = name; | |||
| } | |||
| public String getName() | |||
| { | |||
| return name; | |||
| } | |||
| public void setSn(String sn) | |||
| { | |||
| this.sn = sn; | |||
| } | |||
| public String getSn() | |||
| { | |||
| return sn; | |||
| } | |||
| public void setLeader(String leader) | |||
| { | |||
| this.leader = leader; | |||
| } | |||
| public String getLeader() | |||
| { | |||
| return leader; | |||
| } | |||
| public void setOperateType(String operateType) | |||
| { | |||
| this.operateType = operateType; | |||
| } | |||
| public String getOperateType() | |||
| { | |||
| return operateType; | |||
| } | |||
| public void setOperateTypeEn(String operateTypeEn) | |||
| { | |||
| this.operateTypeEn = operateTypeEn; | |||
| } | |||
| public String getOperateTypeEn() | |||
| { | |||
| return operateTypeEn; | |||
| } | |||
| public void setOperateUser(String operateUser) | |||
| { | |||
| this.operateUser = operateUser; | |||
| } | |||
| public String getOperateUser() | |||
| { | |||
| return operateUser; | |||
| } | |||
| public void setOperateUserEn(String operateUserEn) | |||
| { | |||
| this.operateUserEn = operateUserEn; | |||
| } | |||
| public String getOperateUserEn() | |||
| { | |||
| return operateUserEn; | |||
| } | |||
| } | |||
| @ -0,0 +1,81 @@ | |||
| package com.hxhq.business.enums.archive; | |||
| /** | |||
| * 档案类型 | |||
| * @author tanfei | |||
| */ | |||
| public enum ArchiveLogTypeEnum { | |||
| /** | |||
| * 1试验非试验 | |||
| */ | |||
| sy(1, "试验非试验"), | |||
| /** | |||
| * 3供试品 | |||
| */ | |||
| gsp(3, "供试品"), | |||
| /** | |||
| * 5供试品领取发放 | |||
| */ | |||
| gsplqff(5, "供试品领取发放"), | |||
| /** | |||
| * 7给药制剂 | |||
| */ | |||
| gyzj(7, "给药制剂"), | |||
| /** | |||
| * 9给药制剂领取发放 | |||
| */ | |||
| gyzjlqff(9, "给药制剂领取发放"), | |||
| /** | |||
| * 11麻精药 | |||
| */ | |||
| mjy(11, "麻精药"), | |||
| /** | |||
| * 13麻精药领取发放 | |||
| */ | |||
| mjylqff(13, "麻精药领取发放"), | |||
| /** | |||
| * 15试剂 | |||
| */ | |||
| sj(15, "试剂"); | |||
| private int value; | |||
| private String text; | |||
| ArchiveLogTypeEnum(int value, String text) { | |||
| this.value = value; | |||
| this.text = text; | |||
| } | |||
| public int getValue() { | |||
| return value; | |||
| } | |||
| public void setValue(int value) { | |||
| this.value = value; | |||
| } | |||
| public String getText() { | |||
| return text; | |||
| } | |||
| public void setText(String text) { | |||
| this.text = text; | |||
| } | |||
| public static ArchiveLogTypeEnum getEnumByValue(int type) { | |||
| for (ArchiveLogTypeEnum bt : values()) { | |||
| if (bt.value == type) { | |||
| return bt; | |||
| } | |||
| } | |||
| return null; | |||
| } | |||
| } | |||
| @ -0,0 +1,14 @@ | |||
| package com.hxhq.business.mapper; | |||
| import com.hxhq.business.domain.ArchiveLog; | |||
| import com.baomidou.mybatisplus.core.mapper.BaseMapper; | |||
| /** | |||
| * 档案记录Mapper接口 | |||
| * | |||
| * @author hxhq | |||
| * @date 2026-01-23 | |||
| */ | |||
| public interface ArchiveLogMapper extends BaseMapper<ArchiveLog> | |||
| { | |||
| } | |||
| @ -0,0 +1,48 @@ | |||
| package com.hxhq.business.service; | |||
| import java.util.List; | |||
| import com.hxhq.business.domain.ArchiveLog; | |||
| import com.baomidou.mybatisplus.extension.service.IService; | |||
| import com.hxhq.business.enums.archive.ArchiveLogTypeEnum; | |||
| import com.hxhq.business.enums.study.StudyTypeEnum; | |||
| /** | |||
| * 档案记录Service接口 | |||
| * | |||
| * @author hxhq | |||
| * @date 2026-01-23 | |||
| */ | |||
| public interface IArchiveLogService extends IService<ArchiveLog> | |||
| { | |||
| /** | |||
| * 查询档案记录列表 | |||
| * | |||
| * @param archiveLog 档案记录 | |||
| * @return 档案记录集合 | |||
| */ | |||
| public List<ArchiveLog> queryList(ArchiveLog archiveLog); | |||
| /** | |||
| * 保存日志 | |||
| * @param type | |||
| * @param targetId | |||
| * @param name | |||
| * @param sn | |||
| * @param leader | |||
| * @param operateType | |||
| */ | |||
| void saveInfo(ArchiveLogTypeEnum type,Long targetId,String name,String sn,String leader,String operateType); | |||
| /** | |||
| * 保存试验日志 | |||
| * @param type | |||
| * @param studyType | |||
| * @param targetId | |||
| * @param name | |||
| * @param sn | |||
| * @param leader | |||
| * @param operateType | |||
| */ | |||
| void saveInfo(ArchiveLogTypeEnum type, StudyTypeEnum studyType, Long targetId, String name, String sn, String leader, String operateType); | |||
| } | |||
| @ -0,0 +1,86 @@ | |||
| package com.hxhq.business.service.impl; | |||
| import java.util.List; | |||
| import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; | |||
| import com.baomidou.mybatisplus.core.toolkit.Wrappers; | |||
| import com.hxhq.business.enums.archive.ArchiveLogTypeEnum; | |||
| import com.hxhq.business.enums.study.StudyTypeEnum; | |||
| import com.hxhq.common.core.utils.DateUtils; | |||
| import com.hxhq.common.core.utils.StringUtils; | |||
| import com.hxhq.common.security.utils.SecurityUtils; | |||
| import org.springframework.stereotype.Service; | |||
| import com.hxhq.business.mapper.ArchiveLogMapper; | |||
| import com.hxhq.business.domain.ArchiveLog; | |||
| import com.hxhq.business.service.IArchiveLogService; | |||
| import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; | |||
| /** | |||
| * 档案记录Service业务层处理 | |||
| * | |||
| * @author hxhq | |||
| * @date 2026-01-23 | |||
| */ | |||
| @Service | |||
| public class ArchiveLogServiceImpl extends ServiceImpl<ArchiveLogMapper, ArchiveLog> implements IArchiveLogService | |||
| { | |||
| /** | |||
| * 查询档案记录列表 | |||
| * | |||
| * @param archiveLog 档案记录 | |||
| * @return 档案记录 | |||
| */ | |||
| @Override | |||
| public List<ArchiveLog> queryList(ArchiveLog archiveLog) | |||
| { | |||
| QueryWrapper<ArchiveLog> queryWrapper = Wrappers.query(); | |||
| if(StringUtils.isNoneBlank(archiveLog.getOperateType())){ | |||
| queryWrapper.and(q->q.eq("operate_type",archiveLog.getOperateType()) | |||
| .or().eq("operate_type_en",archiveLog.getOperateType())); | |||
| } | |||
| if(StringUtils.isNoneBlank(archiveLog.getSn())){ | |||
| queryWrapper.like("sn",archiveLog.getSn()); | |||
| } | |||
| if(StringUtils.isNoneBlank(archiveLog.getName())){ | |||
| queryWrapper.like("name",archiveLog.getName()); | |||
| } | |||
| queryWrapper.orderByDesc("id"); | |||
| return this.list(queryWrapper); | |||
| } | |||
| @Override | |||
| public void saveInfo(ArchiveLogTypeEnum type, Long targetId, String name, String sn, String leader, String operateType) { | |||
| saveInfo(type,null,targetId,name,sn,leader,operateType); | |||
| } | |||
| @Override | |||
| public void saveInfo(ArchiveLogTypeEnum type, StudyTypeEnum studyType, Long targetId, String name, String sn, String leader, String operateType) { | |||
| ArchiveLog archiveLog = new ArchiveLog(); | |||
| archiveLog.setType(type.getValue()); | |||
| archiveLog.setStudyType(studyType==null?null:studyType.getValue()); | |||
| archiveLog.setName(name); | |||
| archiveLog.setSn(sn); | |||
| archiveLog.setLeader(leader); | |||
| archiveLog.setOperateType(operateType); | |||
| archiveLog.setOperateTypeEn(getOperateTypeEn(operateType)); | |||
| archiveLog.setOperateUser(SecurityUtils.getNickName()); | |||
| archiveLog.setOperateUserEn(SecurityUtils.getUsername()); | |||
| save(archiveLog); | |||
| } | |||
| private String getOperateTypeEn(String operateType){ | |||
| return operateType.equals("申请归档")?"Apply for Archiving" | |||
| :operateType.equals("同意归档")?"Approve Archiving" | |||
| :operateType.equals("拒绝归档")?"Reject Archiving" | |||
| :operateType.equals("申请解档")?"Apply for De-archiving" | |||
| :operateType.equals("同意解档")?"Approve De-archiving" | |||
| :operateType.equals("拒绝解档")?"Reject De-archiving" | |||
| :operateType.equals("申请借阅")?"Apply for Check-out" | |||
| :operateType.equals("同意借阅")?"Approve Check-out" | |||
| :operateType.equals("拒绝借阅")?"Reject Check-out" | |||
| :operateType.equals("确认归还")?"Check-out End Confirmation" | |||
| :operateType.equals("到期自动归还")?"Check-out End on Time":""; | |||
| } | |||
| } | |||
| @ -0,0 +1,6 @@ | |||
| <?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.hxhq.business.mapper.ArchiveLogMapper"> | |||
| </mapper> | |||