20241230 更新

1.删除注释掉的代码
master
陈江保 2 months ago
parent 9f6df2792c
commit a5d5159546
  1. 44
      src/main/java/digital/laboratory/platform/entrustment/Interceptor/URLInterceptor.javax
  2. 23
      src/main/java/digital/laboratory/platform/entrustment/Interceptor/WebConfig.javax
  3. 87
      src/main/java/digital/laboratory/platform/entrustment/controller/ATestController.javax
  4. 196
      src/main/java/digital/laboratory/platform/entrustment/controller/DelivererController.javax
  5. 97
      src/main/java/digital/laboratory/platform/entrustment/controller/xHairJobController.javax
  6. 96
      src/main/java/digital/laboratory/platform/entrustment/controller/xHairJobIdentificationMaterialControllerx.javax
  7. 70
      src/main/java/digital/laboratory/platform/entrustment/entity/Deliverer.javax
  8. 107
      src/main/java/digital/laboratory/platform/entrustment/entity/HairJob.javax
  9. 194
      src/main/java/digital/laboratory/platform/entrustment/entity/HairJobIdentificationMaterial.javax
  10. 58
      src/main/java/digital/laboratory/platform/entrustment/handler/ActiveMQListener.javax
  11. 84
      src/main/java/digital/laboratory/platform/entrustment/handler/ActiveMqConfigs.javax
  12. 17
      src/main/java/digital/laboratory/platform/entrustment/mapper/DelivererMapper.javax
  13. 17
      src/main/java/digital/laboratory/platform/entrustment/mapper/xHairJobIdentificationMaterialMapper.javax
  14. 17
      src/main/java/digital/laboratory/platform/entrustment/mapper/xHairJobMapper.javax
  15. 58
      src/main/java/digital/laboratory/platform/entrustment/misc/Template2html.javax
  16. 102
      src/main/java/digital/laboratory/platform/entrustment/misc/VelocityBarCodeImage.javax
  17. 107
      src/main/java/digital/laboratory/platform/entrustment/misc/VelocityQRCodeImage.javax
  18. 25
      src/main/java/digital/laboratory/platform/entrustment/service/DelivererService.javax
  19. 60
      src/main/java/digital/laboratory/platform/entrustment/service/impl/DelivererServiceImpl.javax
  20. 18
      src/main/java/digital/laboratory/platform/entrustment/service/impl/xHairJobIdentificationMaterialServiceImpl.javax
  21. 18
      src/main/java/digital/laboratory/platform/entrustment/service/impl/xHairJobServiceImpl.javax
  22. 14
      src/main/java/digital/laboratory/platform/entrustment/service/xHairJobIdentificationMaterialService.javax
  23. 14
      src/main/java/digital/laboratory/platform/entrustment/service/xHairJobService.javax

@ -1,44 +0,0 @@
package digital.laboratory.platform.entrustment.Interceptor;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import org.springframework.web.servlet.HandlerInterceptor;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
/**
* URL拦截, 做对应处理
*
*/
@Component
public class URLInterceptor implements HandlerInterceptor {
private static final Logger logger = LoggerFactory.getLogger(URLInterceptor.class);
/**
* 请求前置处理(后置处理同理)
*
* @param request
* @param response
* @param handler
* @return boolean
*/
@Override
public boolean preHandle(HttpServletRequest request, HttpServletResponse response, Object handler) throws Exception {
String path = request.getServletPath();
System.out.println(String.format("(entrustment 中的URL拦截) Request ---> Path=%s", path));
return true;
// logger.info(path);
// if (path.matches("xxxxx")) {
// logger.info("requestUrl: {}", path);
// // 进行前置处理
// return true;
// // 或者 return false; 禁用某些请求
// } else {
// return true;
// }
}
}

@ -1,23 +0,0 @@
package digital.laboratory.platform.entrustment.Interceptor;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.context.annotation.Configuration;
import org.springframework.web.servlet.config.annotation.InterceptorRegistry;
import org.springframework.web.servlet.config.annotation.WebMvcConfigurer;
/**
* 拦截器注入
*
*/
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Autowired
private URLInterceptor urlInterceptor;
@Override
public void addInterceptors(InterceptorRegistry registry){
registry.addInterceptor(urlInterceptor);
}
}

@ -1,87 +0,0 @@
package digital.laboratory.platform.entrustment.controller;
import cn.hutool.core.util.StrUtil;
import digital.laboratory.platform.common.feign.RemoteWord2PDFService;
import feign.Response;
import lombok.RequiredArgsConstructor;
import org.apache.commons.io.FileUtils;
import org.springframework.mock.web.MockMultipartFile;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.util.Enumeration;
@RestController
@RequiredArgsConstructor
@RequestMapping("/papp/entrustment/test" )
public class ATestController {
private final RemoteWord2PDFService remoteWord2PDFService;
@GetMapping("/convert")
public String convert() throws IOException {
File file = new File("E:\\01.鉴定委托书--陕西分中心(1).docx");
FileInputStream fis = new FileInputStream(file);
MockMultipartFile mockMultipartFile = new MockMultipartFile("file", file.getName(), "image/jpg", fis);
Response r = remoteWord2PDFService.word2pdf(mockMultipartFile);
fis.close();
File destFile = new File("E:\\", "test.pdf");
FileUtils.copyInputStreamToFile(r.body().asInputStream(), destFile);
return "OK";
}
@GetMapping("/ip")
public String ip(HttpServletRequest request) throws IOException {
String ret = "";
ret += "Request Headers:\n";
ret += "---------------------------------\n";
Enumeration headerNames = request.getHeaderNames();
while(headerNames.hasMoreElements()){
String paramName = (String)headerNames.nextElement();
String paramValue = request.getHeader(paramName);
ret += paramName+" = "+paramValue+"\n";
}
ret += "---------------------------------\n";
ret += "\nrequest.getRequestedSessionId(): "+request.getRequestedSessionId();
ret += "\nrequest.getMethod(): "+request.getMethod();
ret += "\nrequest.getRequestURL(): "+request.getRequestURL();
ret += "\nrequest.getRequestURI(): "+request.getRequestURI();
ret += "\nrequest.getPathInfo(): "+request.getPathInfo();
ret += "\nrequest.getContextPath(): "+request.getContextPath();
ret += "\nrequest.getPathTranslated(): "+request.getPathTranslated();
ret += "\nrequest.getQueryString(): "+request.getQueryString();
ret += "\nrequest.getRemoteUser(): "+request.getRemoteUser();
ret += "\nrequest.getRemoteAddr(): "+request.getRemoteAddr();
ret += "\nrequest.getRemoteHost(): "+request.getRemoteHost();
ret += "\nrequest.getRemotePort(): "+request.getRemotePort();
ret += "\nrequest.getAuthType(): "+request.getAuthType();
ret += "\nrequest.getServletPath(): "+request.getServletPath();
return "<pre>"+ret+"</pre>";
}
String localVar = "";
@GetMapping("/var")
public String var(@RequestParam(value = "var", required = false) String var, HttpServletRequest request) throws IOException {
String ret = "";
if (StrUtil.isNotBlank(var)) {
localVar = var;
ret += "Set localVar to ["+localVar+"]\n";
}
ret += "localVar 的值是 ["+localVar+"]\n";
return "<pre>"+ret+"</pre>";
}
}

@ -1,196 +0,0 @@
package digital.laboratory.platform.entrustment.controller;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import digital.laboratory.platform.common.core.util.R;
import digital.laboratory.platform.common.log.annotation.SysLog;
import digital.laboratory.platform.common.mybatis.security.service.DLPUser;
import digital.laboratory.platform.entrustment.entity.Deliverer;
import digital.laboratory.platform.entrustment.service.DelivererService;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.security.oauth2.provider.OAuth2Authentication;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.security.Principal;
import java.util.List;
/**
* 送检员
*
* @author Zhang Xiaolong created at 2022-08-16
* @describe 送检员 前端控制器
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/papp/entrustment/deliverer" )
@Api(value = "deliverer", tags = "008-送检员管理")
public class DelivererController {
private final DelivererService delivererService;
/**
* 通过id查询送检员
* @param id id
* @return R
*/
@ApiOperation(value = "通过id查询", notes = "通过id查询")
@GetMapping("/{id}" )
// @PreAuthorize("@pms.hasPermission('entrustment_deliverer_get')" )
public R getById(@PathVariable("id" ) String id, HttpServletRequest theHttpServletRequest) {
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
Deliverer deliverer = delivererService.getById(id);
if (deliverer != null) {
if (StrUtil.equalsIgnoreCase(dlpUser.getId(), deliverer.getOwnerUserId())) {
return R.ok(deliverer);
}
else {
return R.failed(String.format("你没有权限访问id为 %s 的送检员的数据", id));
}
}
else {
return R.failed(String.format("没有找到id为 %s 的送检员", id));
}
}
/**
* 列表查询
* @param name 查询条件
* @return
*/
@ApiOperation(value = "列表查询", notes = "列表查询\n" +
"参数:\n" +
"<pre>\n" +
"name 送检员名字, 可以模糊查询, 支持 like %name% " +
"</pre>\n" +
"")
@GetMapping("/list" )
// @PreAuthorize("@pms.hasPermission('entrustment_deliverer_get')" )
public R getDelivererList(@RequestParam(value = "name", required = false)String name, HttpServletRequest theHttpServletRequest) {
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
//deliverer.setOwnerUserId(dlpUser.getId());
List<Deliverer> list = delivererService.list(Wrappers.<Deliverer>query()
.eq("owner_user_id", dlpUser.getId()) // 只查询当前用户拥有的送检员
.like(StrUtil.isNotBlank(name), "name", name)
.orderByDesc("name")
);
return R.ok(list);
}
/**
* 分页查询
* @param page 分页对象
* @param deliverer 送检员
* @return
*/
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping("/page" )
// @PreAuthorize("@pms.hasPermission('entrustment_deliverer_get')" )
public R getDelivererPage(Page page, Deliverer deliverer, HttpServletRequest theHttpServletRequest) {
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
deliverer.setOwnerUserId(dlpUser.getId());
return R.ok(delivererService.page(page, Wrappers.<Deliverer>query()
.eq("owner_user_id", dlpUser.getId()) // 只查询当前用户拥有的送检员
.like(StrUtil.isNotBlank(deliverer.getName()), "name", deliverer.getName())
.orderByDesc("name")
));
}
/**
* 新增送检员
* @param deliverer 送检员
* @return R
*/
@ApiOperation(value = "新增送检员", notes = "新增送检员")
@SysLog("新增送检员" )
@PostMapping
// @PreAuthorize("@pms.hasPermission('entrustment_deliverer_add')" )
public R postAddObject(@RequestBody Deliverer deliverer, HttpServletRequest theHttpServletRequest) {
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
deliverer.setOwnerUserId(dlpUser.getId());
deliverer.setId(IdWorker.get32UUID().toUpperCase());
if (delivererService.save(deliverer)) {
return R.ok(deliverer, "新增送检员成功");
}
else {
return R.failed(deliverer, "新增送检员失败");
}
}
/**
* 修改送检员
* @param deliverer 送检员
* @return R
*/
@ApiOperation(value = "修改送检员", notes = "修改送检员")
@SysLog("修改送检员" )
@PutMapping
// @PreAuthorize("@pms.hasPermission('entrustment_deliverer_edit')" )
public R putUpdateById(@RequestBody Deliverer deliverer, HttpServletRequest theHttpServletRequest) {
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
Deliverer oldDeliverer = delivererService.getById(deliverer.getId());
if (oldDeliverer != null) {
if (StrUtil.equalsIgnoreCase(dlpUser.getId(), oldDeliverer.getOwnerUserId())) {
deliverer.setOwnerUserId(dlpUser.getId());
return R.ok(delivererService.updateById(deliverer));
}
else {
return R.failed(String.format("你没有权限修改id为 %s 的送检员的数据", deliverer.getId()));
}
}
else {
return R.failed(String.format("没有找到id为 %s 的送检员", deliverer.getId()));
}
}
/**
* 通过id删除送检员
* @param id id
* @return R
*/
@ApiOperation(value = "通过id删除送检员", notes = "通过id删除送检员")
@SysLog("通过id删除送检员" )
@DeleteMapping("/{id}" )
// @PreAuthorize("@pms.hasPermission('entrustment_deliverer_del')" )
public R deleteById(@PathVariable String id, HttpServletRequest theHttpServletRequest) {
Principal principal = theHttpServletRequest.getUserPrincipal();
DLPUser dlpUser = (DLPUser) ((OAuth2Authentication) principal).getUserAuthentication().getPrincipal();
Deliverer oldDeliverer = delivererService.getById(id);
if (oldDeliverer != null) {
if (StrUtil.equalsIgnoreCase(dlpUser.getId(), oldDeliverer.getOwnerUserId())) {
if (delivererService.removeById(id)) {
return R.ok(oldDeliverer, "送检员删除成功");
}
else {
return R.failed(oldDeliverer, "送检员删除失败");
}
}
else {
return R.failed(String.format("你没有权限删除id为 %s 的送检员", id));
}
}
else {
return R.failed(String.format("没有找到id为 %s 的送检员", id));
}
}
}

@ -1,97 +0,0 @@
package digital.laboratory.platform.entrustment.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import digital.laboratory.platform.common.core.util.R;
import digital.laboratory.platform.common.log.annotation.SysLog;
import digital.laboratory.platform.entrustment.entity.HairJob;
import digital.laboratory.platform.entrustment.entity.SampleStoreLog;
import digital.laboratory.platform.entrustment.service.HairJobService;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* 毛发检测任务
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发检测任务 前端控制器
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/papp/entrustment/hair_job" )
@Api(value = "hair_job", tags = "毛发检测任务管理")
public class HairJobController {
private final HairJobService hairJobService;
/**
* 通过id查询毛发检测任务
* @param id id
* @return R
*/
@ApiOperation(value = "通过id查询", notes = "通过id查询")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_get')" )
public R getById(@PathVariable("id" ) String id) {
return R.ok(hairJobService.getById(id));
}
/**
* 分页查询
* @param page 分页对象
* @param hairJob 毛发检测任务
* @return
*/
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping("/page" )
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_get')" )
public R<IPage<HairJob>> getHairJobPage(Page page, HairJob hairJob) {
return R.ok(hairJobService.page(page, Wrappers.query(hairJob)));
}
/**
* 新增毛发检测任务
* @param hairJob 毛发检测任务
* @return R
*/
@ApiOperation(value = "新增毛发检测任务", notes = "新增毛发检测任务")
@SysLog("新增毛发检测任务" )
@PostMapping
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_add')" )
public R postAddObject(@RequestBody HairJob hairJob) {
return R.ok(hairJobService.save(hairJob));
}
/**
* 修改毛发检测任务
* @param hairJob 毛发检测任务
* @return R
*/
@ApiOperation(value = "修改毛发检测任务", notes = "修改毛发检测任务")
@SysLog("修改毛发检测任务" )
@PutMapping
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_edit')" )
public R putUpdateById(@RequestBody HairJob hairJob) {
return R.ok(hairJobService.updateById(hairJob));
}
/**
* 通过id删除毛发检测任务
* @param id id
* @return R
*/
@ApiOperation(value = "通过id删除毛发检测任务", notes = "通过id删除毛发检测任务")
@SysLog("通过id删除毛发检测任务" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_del')" )
public R deleteById(@PathVariable String id) {
return R.ok(hairJobService.removeById(id));
}
}

@ -1,96 +0,0 @@
package digital.laboratory.platform.entrustment.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import digital.laboratory.platform.common.core.util.R;
import digital.laboratory.platform.common.log.annotation.SysLog;
import digital.laboratory.platform.entrustment.entity.HairJobIdentificationMaterial;
import digital.laboratory.platform.entrustment.service.HairJobIdentificationMaterialService;
import org.springframework.security.access.prepost.PreAuthorize;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.RequiredArgsConstructor;
import org.springframework.web.bind.annotation.*;
/**
* 毛发任务的检材信息
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发任务的检材信息 前端控制器
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/papp/entrustment/hair_job_identification_material" )
@Api(value = "hair_job_identification_material", tags = "毛发任务的检材信息管理")
public class HairJobIdentificationMaterialControllerx {
private final HairJobIdentificationMaterialService hairJobIdentificationMaterialService;
/**
* 通过id查询毛发任务的检材信息
* @param id id
* @return R
*/
@ApiOperation(value = "通过id查询", notes = "通过id查询")
@GetMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_identification_material_get')" )
public R<HairJobIdentificationMaterial> getById(@PathVariable("id" ) String id) {
return R.ok(hairJobIdentificationMaterialService.getById(id));
}
/**
* 分页查询
* @param page 分页对象
* @param hairJobIdentificationMaterial 毛发任务的检材信息
* @return
*/
@ApiOperation(value = "分页查询", notes = "分页查询")
@GetMapping("/page" )
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_identification_material_get')" )
public R<IPage<HairJobIdentificationMaterial>> getHairJobIdentificationMaterialPage(Page page, HairJobIdentificationMaterial hairJobIdentificationMaterial) {
return R.ok(hairJobIdentificationMaterialService.page(page, Wrappers.query(hairJobIdentificationMaterial)));
}
/**
* 新增毛发任务的检材信息
* @param hairJobIdentificationMaterial 毛发任务的检材信息
* @return R
*/
@ApiOperation(value = "新增毛发任务的检材信息", notes = "新增毛发任务的检材信息")
@SysLog("新增毛发任务的检材信息" )
@PostMapping
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_identification_material_add')" )
public R postAddObject(@RequestBody HairJobIdentificationMaterial hairJobIdentificationMaterial) {
return R.ok(hairJobIdentificationMaterialService.save(hairJobIdentificationMaterial));
}
/**
* 修改毛发任务的检材信息
* @param hairJobIdentificationMaterial 毛发任务的检材信息
* @return R
*/
@ApiOperation(value = "修改毛发任务的检材信息", notes = "修改毛发任务的检材信息")
@SysLog("修改毛发任务的检材信息" )
@PutMapping
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_identification_material_edit')" )
public R putUpdateById(@RequestBody HairJobIdentificationMaterial hairJobIdentificationMaterial) {
return R.ok(hairJobIdentificationMaterialService.updateById(hairJobIdentificationMaterial));
}
/**
* 通过id删除毛发任务的检材信息
* @param id id
* @return R
*/
@ApiOperation(value = "通过id删除毛发任务的检材信息", notes = "通过id删除毛发任务的检材信息")
@SysLog("通过id删除毛发任务的检材信息" )
@DeleteMapping("/{id}" )
@PreAuthorize("@pms.hasPermission('entrustment_hair_job_identification_material_del')" )
public R deleteById(@PathVariable String id) {
return R.ok(hairJobIdentificationMaterialService.removeById(id));
}
}

@ -1,70 +0,0 @@
package digital.laboratory.platform.entrustment.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 送检员
*
* @author Zhang Xiaolong created at 2022-08-16
* @describe 送检员 实体类
*/
@Data
@TableName(value = "b_deliverer", autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "送检员")
public class Deliverer extends BaseEntity {
/**
* id
*/
@TableId(value = "id", type = IdType.ASSIGN_UUID)
@ApiModelProperty(value = "id")
private String id;
/**
* 送检员拥有者userId
*/
@ApiModelProperty(value="送检员拥有者userId")
private String ownerUserId;
/**
* 送检员姓名
*/
@ApiModelProperty(value="送检员姓名")
private String name;
/**
* 送检员职务
*/
@ApiModelProperty(value="送检员职务")
private String position;
/**
* 送检员证件名称
*/
@ApiModelProperty(value="送检员证件名称")
private String cert;
/**
* 送检员证件编号
*/
@ApiModelProperty(value="送检员证件编号")
private String idnum;
/**
* 送检员电话
*/
@ApiModelProperty(value="送检员电话")
private String phone;
}

@ -1,107 +0,0 @@
package digital.laboratory.platform.entrustment.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 毛发检测任务
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发检测任务 实体类
*/
@Data
@TableName(value = "b_hair_job", autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "毛发检测任务")
public class HairJob extends BaseEntity {
/**
* id
*/
@TableId(value = "id", type = IdType.ASSIGN_UUID)
@ApiModelProperty(value="id")
private String id;
/**
* 根任务id
*/
@ApiModelProperty(value="根任务id")
private String rootId;
/**
* 任务名称
*/
@ApiModelProperty(value="任务名称")
private String name;
/**
* 任务内容描述说明
*/
@ApiModelProperty(value="任务内容描述说明")
private String description;
/**
* 任务编号
*/
@ApiModelProperty(value="任务编号")
private String jobNo;
/**
* 任务发布单位
*/
@ApiModelProperty(value="任务发布单位")
private String jobIssueOrg;
/**
* 任务执行单位
*/
@ApiModelProperty(value="任务执行单位")
private String jobExecOrg;
/**
* 任务来源
*/
@ApiModelProperty(value="任务来源")
private String jobFrom;
/**
* 任务截止日期
*/
@ApiModelProperty(value="任务截止日期")
private LocalDateTime expirationDate;
/**
* 任务开始日期
*/
@ApiModelProperty(value="任务开始日期")
private LocalDateTime startDate;
/**
* 任务备注
*/
@ApiModelProperty(value="任务备注")
private String comments;
/**
* 任务类型: 毛发检测/污水检测...
*/
@ApiModelProperty(value="任务类型: 毛发检测/污水检测...")
private String jobType;
/**
* xxx任务检测类型: 毛发检测:社区戒毒人员检测、公职人员、招考人员。/污水检测:污水处理厂、自然水体、其它水体。...
*/
@ApiModelProperty(value="xxx任务检测类型: 毛发检测:社区戒毒人员检测、公职人员、招考人员。/污水检测:污水处理厂、自然水体、其它水体。...")
private String xxxjobIdentifyType;
}

@ -1,194 +0,0 @@
package digital.laboratory.platform.entrustment.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import digital.laboratory.platform.common.mybatis.base.BaseEntity;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDateTime;
import lombok.Data;
import lombok.EqualsAndHashCode;
/**
* 毛发任务的检材信息
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发任务的检材信息 实体类
*/
@Data
@TableName(value = "b_hair_job_identification_material", autoResultMap = true)
@EqualsAndHashCode(callSuper = true)
@ApiModel(value = "毛发任务的检材信息")
public class HairJobIdentificationMaterial extends BaseEntity {
/**
* 检材id
*/
@TableId(value = "id", type = IdType.ASSIGN_UUID)
@ApiModelProperty(value = "检材id")
private String id;
/**
* 任务id
*/
@ApiModelProperty(value = "任务id")
private String jobId;
/**
* 任务清单项id
*/
@ApiModelProperty(value = "任务清单项id")
private String jobItemId;
/**
* 检材编号
*/
@ApiModelProperty(value = "检材编号")
private String imNo;
/**
* A样编号
*/
@ApiModelProperty(value = "A样编号")
private String sample1No;
/**
* B样编号
*/
@ApiModelProperty(value = "B样编号")
private String sample2No;
/**
* A样盒子
*/
@ApiModelProperty(value = "A样盒子")
private String sample1BoxId;
/**
* B样盒子
*/
@ApiModelProperty(value = "B样盒子")
private String sample2BoxId;
/**
* 所有者姓名
*/
@ApiModelProperty(value = "所有者姓名")
private String personName;
/**
* 所有者身份证号
*/
@ApiModelProperty(value = "所有者身份证号")
private String personCard;
/**
* 人员类别
*/
@ApiModelProperty(value = "人员类别")
private String personType;
/**
* 项目名称
*/
@ApiModelProperty(value = "项目名称")
private String projectName;
// /**
// * 社区戒毒人员在社区执行时间是否超过 6 个月
// */
// @ApiModelProperty(value = "社区戒毒人员在社区执行时间是否超过 6 个月")
// private String executionTime;
/**
* 曾经吸毒种类
*/
@ApiModelProperty(value = "曾经吸毒种类")
private String drugType;
/**
* 采样人
*/
@ApiModelProperty(value = "采样人")
private String collector;
/**
* 采样单位
*/
@ApiModelProperty(value = "采样单位")
private String collectorGroup;
/**
* 采样时间
*/
@ApiModelProperty(value = "采样时间")
private LocalDateTime collectTime;
/**
* 采样地点
*/
@ApiModelProperty(value = "采样地点")
private String collectPlace;
/**
* 监督人员
*/
@ApiModelProperty(value = "监督人员")
private String supervisor;
/**
* 受理时间
*/
@ApiModelProperty(value = "受理时间")
private LocalDateTime acceptTime;
/**
* 受理是否通过: 0=未受理, 1=受理通过, -1=受理被拒绝
*/
@ApiModelProperty(value = "受理是否通过: 0=未受理, 1=受理通过, -1=受理被拒绝")
private Integer acceptPassed;
/**
* 备注
*/
@ApiModelProperty(value = "备注")
private String comments;
/**
* 检材名称
*/
@ApiModelProperty(value = "检材名称")
private String name;
/**
* 检材数量
*/
@ApiModelProperty(value = "检材数量")
private BigDecimal quantity;
/**
* A样数量
*/
@ApiModelProperty(value = "A样数量")
private BigDecimal sample1Quantity;
/**
* B样数量
*/
@ApiModelProperty(value = "B样数量")
private BigDecimal sample2Quantity;
/**
* 计量单位
*/
@ApiModelProperty(value = "计量单位")
private String unit;
}

@ -1,58 +0,0 @@
package digital.laboratory.platform.entrustment.handler;
import digital.laboratory.platform.common.core.entity.PersonFaceIdentifyInfo;
import digital.laboratory.platform.common.core.util.Msg;
import digital.laboratory.platform.common.core.util.R;
import digital.laboratory.platform.sewage.entity.PersonalIdentityVerifier;
import digital.laboratory.platform.sewage.feign.RemotePersonalIdentityVerifierService;
import digital.laboratory.platform.sewage.feign.RemoteWebSocketService;
import lombok.extern.slf4j.Slf4j;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.jms.annotation.JmsListener;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
@Slf4j
@Component
public class ActiveMQListener {
private static final Logger logger = LoggerFactory.getLogger(ActiveMQListener.class);
@Resource
private RemoteWebSocketService webSocketService;
@Resource
private RemotePersonalIdentityVerifierService personalIdentityVerifierService;
/**
*@Description: three MQ 接收方法
*@Param:
*@return:
*@Author: gyDeBug
*@date: 2021/9/30
**/
@JmsListener(destination = "${config.msgListener.hardwareTopicName}" ,containerFactory = "activeMQJmsListenerContainerFactory")
public void receiveActiveMQ(Msg msg)throws Exception {
Object obj =msg.getData();
if (obj!=null) {
if (obj instanceof PersonFaceIdentifyInfo) {
//== 收到人脸识别消息
PersonFaceIdentifyInfo info = (PersonFaceIdentifyInfo)obj;
//查询该智能设备绑定的客户端电脑IP
try{
R<PersonalIdentityVerifier> data = personalIdentityVerifierService.getById(info.getDeviceId());
if(data.getCode() == 200){
String deviceIp = data.getData().getBindIp();
//推送消息到人脸智能设备绑定的电脑
R result = webSocketService.sendFaceRecognitionData(deviceIp,info);
logger.info("推送消息结果:"+result.getMsg());
}else{
logger.info("==============服务调用异常!");
}
}catch (Exception e){
logger.info("==============服务调用异常!");
}
}
}
}
}

@ -1,84 +0,0 @@
package digital.laboratory.platform.entrustment.handler;
import org.apache.activemq.ActiveMQConnectionFactory;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.jms.config.DefaultJmsListenerContainerFactory;
import org.springframework.jms.config.JmsListenerContainerFactory;
import org.springframework.jms.core.JmsTemplate;
import java.util.ArrayList;
import java.util.Arrays;
/**
* @author gyDeBug
* @version 1.0
* @date 2021/3/30 15:41
* @description:ActiveMq多实例配置。
*/
@Configuration
public class ActiveMqConfigs {
/**
* activqmq 地址 账号密码注入
* @param brokerUrl
* @param username
* @param password
* @return
*/
@Bean(name = "activeMQConnectionFactory")
public ActiveMQConnectionFactory activeMQConnectionFactory(
@Value("${config.activemq.brokerUrl}") String brokerUrl,
@Value("${config.activemq.user}") String username,
@Value("${config.activemq.password}") String password) {
ActiveMQConnectionFactory factory = new ActiveMQConnectionFactory();
factory.setBrokerURL( brokerUrl );
factory.setUserName( username );
factory.setPassword( password );
factory.setTrustedPackages(new ArrayList(Arrays.asList(
("digital.laboratory.platform.common.core.util," +
"digital.laboratory.platform.common.core.entity," +
"java.time," +
"java.time.chrono," +
"java.io," +
"java.lang"
).split(","))));
return factory;
}
/**
* JmsTemplate生成
*
* @param connectionFactory
* @param pubSubDmain
* @return
*/
@Bean(name = "activeMQJmsTemplate")
public JmsTemplate activeMQJmsTemplate(
@Qualifier("activeMQConnectionFactory") ActiveMQConnectionFactory connectionFactory,
@Value("${config.activemq.pub-sub-domain}") boolean pubSubDmain) {
JmsTemplate jmsTemplate = new JmsTemplate( connectionFactory );
jmsTemplate.setPubSubDomain( pubSubDmain );
return jmsTemplate;
}
/**
* JmsListener工厂生成
*
* @param connectionFactory
* @param pubSubDmain
* @return
*/
@Bean(name = "activeMQJmsListenerContainerFactory")
public JmsListenerContainerFactory activeMQJmsListenerContainerFactory(
@Qualifier("activeMQConnectionFactory") ActiveMQConnectionFactory connectionFactory,
@Value("${config.activemq.pub-sub-domain}") boolean pubSubDmain) {
DefaultJmsListenerContainerFactory factory = new DefaultJmsListenerContainerFactory();
factory.setConnectionFactory( connectionFactory );
factory.setPubSubDomain( pubSubDmain );
return factory;
}
}

@ -1,17 +0,0 @@
package digital.laboratory.platform.entrustment.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import digital.laboratory.platform.entrustment.entity.Deliverer;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 送检员 Mapper 接口
*
* @author Zhang Xiaolong created at 2022-08-16
* @describe 送检员 Mapper 类
*/
@Mapper
public interface DelivererMapper extends BaseMapper<Deliverer> {
}

@ -1,17 +0,0 @@
package digital.laboratory.platform.entrustment.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import digital.laboratory.platform.entrustment.entity.HairJobIdentificationMaterial;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 毛发任务的检材信息 Mapper 接口
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发任务的检材信息 Mapper 类
*/
@Mapper
public interface HairJobIdentificationMaterialMapper extends BaseMapper<HairJobIdentificationMaterial> {
}

@ -1,17 +0,0 @@
package digital.laboratory.platform.entrustment.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import digital.laboratory.platform.entrustment.entity.HairJob;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 毛发检测任务 Mapper 接口
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发检测任务 Mapper 类
*/
@Mapper
public interface HairJobMapper extends BaseMapper<HairJob> {
}

@ -1,58 +0,0 @@
package digital.laboratory.platform.entrustment.misc;
import digital.laboratory.platform.common.core.constant.OSSDirectoryConstants;
import digital.laboratory.platform.common.oss.service.OssFile;
import digital.laboratory.platform.entrustment.handler.AppStartupRunner;
import lombok.RequiredArgsConstructor;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.Velocity;
import org.springframework.stereotype.Service;
import java.io.ByteArrayOutputStream;
import java.io.StringWriter;
import java.util.Map;
@Service
@RequiredArgsConstructor
public class Template2html {
private final OssFile ossFile;
/**
* 根据模板生成检材标签的 html, 供 qz 打印使用
*
* @return html 字符串
*/
public String gethtml(String templateName, Map<String, Object> data) throws Exception {
String templateFileName = AppStartupRunner.getCfg(templateName);
ByteArrayOutputStream bos = new ByteArrayOutputStream();
ossFile.fileGet(OSSDirectoryConstants.TEMPLATE_DIRECTORY + "/"+ templateFileName, bos);
String templateString = bos.toString("UTF-8");
bos.close();
try {
// 设置自定义指令使用的类
Velocity.setProperty("userdirective",
"digital.laboratory.platform.entrustment.misc.VelocityQRCodeImage," +
"digital.laboratory.platform.entrustment.misc.VelocityBarCodeImage");
//初始化模板
Velocity.init();
//获取上下文
VelocityContext context = new VelocityContext();
//把数据填入上下文
for (String key : data.keySet()) {
context.put(key, data.get(key));
}
StringWriter w = new StringWriter();
Velocity.evaluate(context, w, "Velocity", templateString);
w.flush();
return w.toString();
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
}

@ -1,102 +0,0 @@
package digital.laboratory.platform.entrustment.misc;
import digital.laboratory.platform.entrustment.QRCodeUtils;
import org.apache.velocity.context.InternalContextAdapter;
import org.apache.velocity.exception.MethodInvocationException;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.runtime.directive.Directive;
import org.apache.velocity.runtime.parser.node.ASTIntegerLiteral;
import org.apache.velocity.runtime.parser.node.ASTReference;
import org.apache.velocity.runtime.parser.node.ASTStringLiteral;
import org.apache.velocity.runtime.parser.node.Node;
import java.io.IOException;
import java.io.Writer;
public class VelocityBarCodeImage extends Directive {
@Override
public String getName() {
return "barcodeUrlData";
}
@Override
public int getType() {
return LINE;
}
/**
* 渲染指令
*
* 模板中调用时, 格式化为: #qrcode(code [, width, height])
* 参数 code 是必须的, 是字符串, 或字符串变量
* 参数 width 和 height 是可选的, 是整数, 应该大于 0
*
* @param context
* @param writer
* @param node
* @return
* @throws IOException
* @throws ResourceNotFoundException
* @throws ParseErrorException
* @throws MethodInvocationException
*/
@Override
public boolean render(InternalContextAdapter context, Writer writer,
Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException {
// System.out.println(String.format("node.jjtGetNumChildren()=%d", node.jjtGetNumChildren()));
// for (int i=0; i<node.jjtGetNumChildren(); i++) {
// Node sn = node.jjtGetChild(i);
// System.out.println(String.format("node[%d] value=%s type=%d info=%d line=%d", i, sn.value(context), sn.getType(), sn.getInfo(), sn.getLine() ));
// }
if (node.jjtGetNumChildren()<1) {
throw new IllegalArgumentException("必须要提供一个参数");
//return false;
}
String code = "nocode";
int width = 400;
int height = 30;
if (node.jjtGetNumChildren()>0) {
Node sn = node.jjtGetChild(0);
if ((sn instanceof ASTStringLiteral) || (sn instanceof ASTReference)) {
code = (String)sn.value(context);
}
else {
throw new IllegalArgumentException("未知的参数类型: " + sn.getClass().getName());
}
}
if (node.jjtGetNumChildren()>1) {
Node sn = node.jjtGetChild(1);
if ((sn instanceof ASTIntegerLiteral) /*|| (sn instanceof ASTReference)*/) {
Integer w =(Integer)sn.value(context);
if ((w != null) && (w > 0)) {
width = w;
}
}
else {
throw new IllegalArgumentException("未知的参数类型: " + sn.getClass().getName());
}
}
if (node.jjtGetNumChildren()>2) {
Node sn = node.jjtGetChild(2);
if ((sn instanceof ASTIntegerLiteral) /*|| (sn instanceof ASTReference)*/) {
Integer h =(Integer)sn.value(context);
if ((h != null) && (h > 0)) {
height = h;
}
}
else {
throw new IllegalArgumentException("未知的参数类型: " + sn.getClass().getName());
}
}
String r = QRCodeUtils.getBarCode128ImageBase64(code, width, height);
writer.write(r);
return true;
}
}

@ -1,107 +0,0 @@
package digital.laboratory.platform.entrustment.misc;
import digital.laboratory.platform.entrustment.QRCodeUtils;
import org.apache.velocity.VelocityContext;
import org.apache.velocity.app.VelocityEngine;
import org.apache.velocity.context.InternalContextAdapter;
import org.apache.velocity.exception.MethodInvocationException;
import org.apache.velocity.exception.ParseErrorException;
import org.apache.velocity.exception.ResourceNotFoundException;
import org.apache.velocity.runtime.directive.Directive;
import org.apache.velocity.runtime.parser.node.*;
import java.io.IOException;
import java.io.Serializable;
import java.io.StringWriter;
import java.io.Writer;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class VelocityQRCodeImage extends Directive {
@Override
public String getName() {
return "qrcodeUrlData";
}
@Override
public int getType() {
return LINE;
}
/**
* 渲染指令
*
* 模板中调用时, 格式化为: #qrcode(code [, width, height])
* 参数 code 是必须的, 是字符串, 或字符串变量
* 参数 width 和 height 是可选的, 是整数, 应该大于 0
*
* @param context
* @param writer
* @param node
* @return
* @throws IOException
* @throws ResourceNotFoundException
* @throws ParseErrorException
* @throws MethodInvocationException
*/
@Override
public boolean render(InternalContextAdapter context, Writer writer,
Node node) throws IOException, ResourceNotFoundException, ParseErrorException, MethodInvocationException {
// System.out.println(String.format("node.jjtGetNumChildren()=%d", node.jjtGetNumChildren()));
// for (int i=0; i<node.jjtGetNumChildren(); i++) {
// Node sn = node.jjtGetChild(i);
// System.out.println(String.format("node[%d] value=%s type=%d info=%d line=%d", i, sn.value(context), sn.getType(), sn.getInfo(), sn.getLine() ));
// }
if (node.jjtGetNumChildren()<1) {
throw new IllegalArgumentException("必须要提供一个参数");
//return false;
}
String code = "nocode";
int width = 150;
int height = 150;
if (node.jjtGetNumChildren()>0) {
Node sn = node.jjtGetChild(0);
if ((sn instanceof ASTStringLiteral) || (sn instanceof ASTReference)) {
code = (String)sn.value(context);
}
else {
throw new IllegalArgumentException("未知的参数类型: " + sn.getClass().getName());
}
}
if (node.jjtGetNumChildren()>1) {
Node sn = node.jjtGetChild(1);
if ((sn instanceof ASTIntegerLiteral) /*|| (sn instanceof ASTReference)*/) {
Integer w =(Integer)sn.value(context);
if ((w != null) && (w > 0)) {
width = w;
}
}
else {
throw new IllegalArgumentException("未知的参数类型: " + sn.getClass().getName());
}
}
if (node.jjtGetNumChildren()>2) {
Node sn = node.jjtGetChild(2);
if ((sn instanceof ASTIntegerLiteral) /*|| (sn instanceof ASTReference)*/) {
Integer h =(Integer)sn.value(context);
if ((h != null) && (h > 0)) {
height = h;
}
}
else {
throw new IllegalArgumentException("未知的参数类型: " + sn.getClass().getName());
}
}
String r = QRCodeUtils.getQRCodeImageBase64(code, width, height);
writer.write(r);
return true;
}
}

@ -1,25 +0,0 @@
package digital.laboratory.platform.entrustment.service;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.entrustment.entity.CaseEvidence;
import digital.laboratory.platform.entrustment.entity.Deliverer;
import digital.laboratory.platform.entrustment.entity.EntrustmentIdentificationMaterial;
import digital.laboratory.platform.entrustment.entity.Taker;
/**
* 送检员服务类
*
* @author Zhang Xiaolong created at 2022-08-16
* @describe 送检员 服务类
*/
public interface DelivererService extends IService<Deliverer> {
/**
* 更新送检员
* 以送检员的名字为关键字, 如果同名送检员存在, 更新其他属性; 如果同名送检员不存在, 则新增数据库记录
* @param deliverer
*/
boolean renew(Deliverer deliverer);
Deliverer getByName(String name, String ownerUserId);
}

@ -1,60 +0,0 @@
package digital.laboratory.platform.entrustment.service.impl;
import cn.hutool.core.util.StrUtil;
import com.baomidou.mybatisplus.core.toolkit.IdWorker;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import digital.laboratory.platform.entrustment.entity.Deliverer;
import digital.laboratory.platform.entrustment.mapper.DelivererMapper;
import digital.laboratory.platform.entrustment.service.DelivererService;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* 送检员服务实现类
*
* @author Zhang Xiaolong created at 2022-08-16
* @describe 送检员 服务实现类
*/
@Service
public class DelivererServiceImpl extends ServiceImpl<DelivererMapper, Deliverer> implements DelivererService {
/**
* 更新送检员
* 以送检员的名字为关键字, 如果同名送检员存在, 更新其他属性; 如果同名送检员不存在, 则新增数据库记录
* @param deliverer
*/
@Override
public boolean renew(Deliverer deliverer) {
if (StrUtil.isBlank(deliverer.getName())) {
return false;
}
List<Deliverer> list = baseMapper.selectList(Wrappers.<Deliverer>query()
.eq("owner_user_id", deliverer.getOwnerUserId())
.eq("name", deliverer.getName())
);
if (list.size() > 0) {
//== 存在同名送检员, 更新之
deliverer.setId(list.get(0).getId());
baseMapper.update(deliverer, Wrappers.<Deliverer>query()
.eq("owner_user_id", deliverer.getOwnerUserId())
.eq("name", deliverer.getName())
);
}
else {
deliverer.setId(IdWorker.get32UUID().toUpperCase());
baseMapper.insert(deliverer);
}
return true;
}
@Override
public Deliverer getByName(String name, String ownerUserId) {
Deliverer deliverer = baseMapper.selectOne(Wrappers.<Deliverer>query()
.eq("owner_user_id", ownerUserId)
.eq("name", name)
);
return deliverer;
}
}

@ -1,18 +0,0 @@
package digital.laboratory.platform.entrustment.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import digital.laboratory.platform.entrustment.entity.HairJobIdentificationMaterial;
import digital.laboratory.platform.entrustment.mapper.HairJobIdentificationMaterialMapper;
import digital.laboratory.platform.entrustment.service.HairJobIdentificationMaterialService;
import org.springframework.stereotype.Service;
/**
* 毛发任务的检材信息服务实现类
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发任务的检材信息 服务实现类
*/
@Service
public class HairJobIdentificationMaterialServiceImpl extends ServiceImpl<HairJobIdentificationMaterialMapper, HairJobIdentificationMaterial> implements HairJobIdentificationMaterialService {
}

@ -1,18 +0,0 @@
package digital.laboratory.platform.entrustment.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import digital.laboratory.platform.entrustment.entity.HairJob;
import digital.laboratory.platform.entrustment.mapper.HairJobMapper;
import digital.laboratory.platform.entrustment.service.HairJobService;
import org.springframework.stereotype.Service;
/**
* 毛发检测任务服务实现类
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发检测任务 服务实现类
*/
@Service
public class HairJobServiceImpl extends ServiceImpl<HairJobMapper, HairJob> implements HairJobService {
}

@ -1,14 +0,0 @@
package digital.laboratory.platform.entrustment.service;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.entrustment.entity.HairJobIdentificationMaterial;
/**
* 毛发任务的检材信息服务类
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发任务的检材信息 服务类
*/
public interface HairJobIdentificationMaterialService extends IService<HairJobIdentificationMaterial> {
}

@ -1,14 +0,0 @@
package digital.laboratory.platform.entrustment.service;
import com.baomidou.mybatisplus.extension.service.IService;
import digital.laboratory.platform.entrustment.entity.HairJob;
/**
* 毛发检测任务服务类
*
* @author Zhang Xiaolong created at 2022-07-26
* @describe 毛发检测任务 服务类
*/
public interface HairJobService extends IService<HairJob> {
}
Loading…
Cancel
Save