parent
							
								
									9f6df2792c
								
							
						
					
					
						commit
						a5d5159546
					
				@ -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…
					
					
				
		Reference in new issue