修改一键查重启动流程

dev
sunchenliang 1 year ago
parent 9fe026486e
commit 84c1b0e221

@ -120,6 +120,10 @@
<artifactId>lombok</artifactId>
<version>${lombok.version}</version>
</dependency>
<dependency>
<groupId>org.springframework</groupId>
<artifactId>spring-test</artifactId>
</dependency>
</dependencies>
</project>

@ -295,7 +295,7 @@ public class FlowTaskController extends BaseController {
//如果assigneeId 为空查询发起流程,否则查询待办流程
if(StringUtils.isNotBlank(assigneeId) && assigneeId.equals(user.getId().toString())){
searchQuery.addEqual("assignee",user.getLoginname());
// searchQuery.addEqual("states",SystemConstantsOa.OA_STATUS_TYPE_ING.toString());
searchQuery.addEqual("states",SystemConstantsOa.OA_STATUS_TYPE_ING.toString());
}else{
searchQuery.addEqual("createuser",user.getLoginname());
}
@ -501,4 +501,18 @@ public class FlowTaskController extends BaseController {
//return ResultVoUtil.success();
}
/**
*
* @return
*/
@ApiOperation(value="重复流程", notes="重复流程")
@ApiImplicitParams({
@ApiImplicitParam(paramType = "header", name = "X-Tenant-Id", value = "租户主键,用户登录时的信息“tenantList”中获得。", dataType = "String", required = true),
})
@GetMapping("/repetitionTask")
@ResponseBody
public ResultVo repetitionTask(HttpServletRequest request){
return flowTaskService.repetitionTask();
}
}

@ -27,11 +27,11 @@ public interface IFlowTaskService {
InputStream diagram(String processId);
InputStream myDiagram(String processId,HttpServletRequest request);
InputStream myDiagram(String processId, HttpServletRequest request);
Category viewForm(String processId, HttpServletRequest request);
Boolean complete(FlowTaskVO taskVO,HttpServletRequest request);
Boolean complete(FlowTaskVO taskVO, HttpServletRequest request);
/**
* 退
@ -43,63 +43,74 @@ public interface IFlowTaskService {
/**
*
*
* @param
* @param processDefinition
*/
public void updateAssignee(String processInstanceId,String processDefinitionId, ProcessDefinition processDefinition);
public void updateAssignee(String processInstanceId, String processDefinitionId, ProcessDefinition processDefinition);
void finishedList(PageUtils pageUtils, HttpServletRequest request);
void finishedList(PageUtils pageUtils,HttpServletRequest request);
/**
*
*
* @param query
* @param pageUtils
* @param query
* @param pageUtils
* @return
*/
public void getMyProcessInstances( Map<String, Object> query, PageUtils<FlowUnionVo> pageUtils);
public void getMyProcessInstances(Map<String, Object> query, PageUtils<FlowUnionVo> pageUtils);
/**
*
*
* @param query
* @param pageUtils
* @param query
* @param pageUtils
* @return
*/
public void getFinalProcessInstances( Map<String, Object> query, PageUtils<OcrTaskchildPicture> pageUtils);
public void getFinalProcessInstances(Map<String, Object> query, PageUtils<OcrTaskchildPicture> pageUtils);
/**
*
*
*
* @param query
* @return
*/
public List<FlowUnionVo> getMyProcessInstances(Map<String, Object> query);
/**
*
*
* @return
*/
public IPage<FlowUnionVo> getMyListCc(Map<String, Object> query, UserToken userToken, ParamterPage paramterPage);
/**
*
*
* @return
*/
public List<HistoricTaskInstanceDto> listHistoriceTask(String processInstanceId);
/**
*
*
* @param processInstanceId
* @return
*/
public List<String> listTask(String processInstanceId);
/**
*
*
*
* @param processInstanceId
*/
public FlowTaskCompleteVO updateNowTaskAssignee(String processInstanceId, String processDefinitionId);
/**
*
*
* @param processInstanceId
* @return
*/
@ -109,8 +120,10 @@ public interface IFlowTaskService {
*
*/
public List<Task> nowRunTask(String processInstanceId, String processDefinitionId);
/**
*
*
* @param taskId
* @param reason
*/
@ -118,7 +131,15 @@ public interface IFlowTaskService {
/**
*
*
* @param fromid
*/
public ResultVo removeTask(String fromid,String taskid );
public ResultVo removeTask(String fromid, String taskid);
/**
*
*
* @return
*/
ResultVo repetitionTask();
}

@ -15,19 +15,14 @@ import cn.jyjz.xiaoyao.common.base.util.RequestBaseUtil;
import cn.jyjz.xiaoyao.common.base.util.SpringUtils;
import cn.jyjz.xiaoyao.common.base.util.StringUtils;
import cn.jyjz.xiaoyao.common.base.vo.UserToken;
import cn.jyjz.xiaoyao.framework.security.model.AdminUserModel;
import cn.jyjz.xiaoyao.framework.security.service.FlowableUserLoginService;
import cn.jyjz.xiaoyao.oa.from.service.UserViewapproeService;
import lombok.extern.slf4j.Slf4j;
import org.flowable.bpmn.model.*;
import org.flowable.engine.RepositoryService;
import org.flowable.engine.impl.bpmn.behavior.ParallelMultiInstanceBehavior;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ProcessInstance;
import org.flowable.task.api.Task;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;
import org.springframework.web.context.request.RequestContextHolder;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
@ -48,148 +43,154 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
private IFlowTaskService flowTaskService;
@Resource
private UserViewapproeService userViewApproeService;
@Override
public boolean startProcessInstanceById(String procDefId, Map<String, Object> variables, HttpServletRequest request,String formid,String servicename) {
public boolean startProcessInstanceById(String procDefId, Map<String, Object> variables, HttpServletRequest request, String formid, String servicename) {
IFormCustomService iFormCustomService = null;
if(StringUtils.isNotBlank(servicename)){
if (StringUtils.isNotBlank(servicename)) {
iFormCustomService = SpringUtils.getBean(servicename);
}
if(StringUtils.isBlank(formid) ){
if (StringUtils.isBlank(formid)) {
//表单主键
formid = iFormCustomService.saveForm(request);
}
UserToken userToken = this.userTokenService.getUserToken(RequestBaseUtil.getToken(request));
String userName = userToken.getLoginname();
String token = RequestBaseUtil.getToken(request);
String userName = "";
if (StringUtils.isBlank(token)) {
userName = "admin";
} else {
UserToken userToken = this.userTokenService.getUserToken(token);
userName = userToken.getLoginname();
}
// 绑定当前认证的账号 我们的认证系统如果使用的是 SpringSecurity的话默认就会设置当前登录的账号
//identityService.setAuthenticatedUserId(userName);
if(null == variables){
if (null == variables) {
variables = new HashMap<>();
}
variables.put("loginUser",userName);
variables.put("loginUser", userName);
//根据流程定义信息
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId).singleResult();
//业务key 用于待办已办 扩展字段 展示使用
//我这里以 流程定义key(oa_category_t定义的关键字逻辑唯一) + 业务表主键(请假表、调岗表等) + 业务表对应的servicename
String businessKey= userToken.getLoginname() + SystemConstantsOa.OA_BUSSINESS_KEY_SPLIT+ formid + SystemConstantsOa.OA_BUSSINESS_KEY_SPLIT+ servicename;
String businessKey = userName + SystemConstantsOa.OA_BUSSINESS_KEY_SPLIT + formid + SystemConstantsOa.OA_BUSSINESS_KEY_SPLIT + servicename;
ProcessInstance processInstance = null;
//启动了一个流程实例
try {
variables.put("businessKey",businessKey);
processInstance = runtimeService.startProcessInstanceById(procDefId,businessKey,variables) ;
variables.put("businessKey", businessKey);
processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables);
if(null != iFormCustomService){
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(),processInstance.getProcessDefinitionId());
if (null != iFormCustomService) {
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId());
if(null == flowTaskCompleteVO){
if (null == flowTaskCompleteVO) {
throw new ServiceException("没有审批人,请联系管理员,流程定义:" + businessKey);
}
List<Task> list = this.flowTaskService.nowRunTask(processInstance.getProcessInstanceId(),processInstance.getProcessDefinitionId());
List<Task> list = this.flowTaskService.nowRunTask(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId());
String taskname = "";
if(null != list && !list.isEmpty()){
if (null != list && !list.isEmpty()) {
taskname = list.get(0).getName();
}
//保存instanceId到数据库需要根据流程分类进行判断更新
boolean isupdate = iFormCustomService.updateForm(formid,processDefinition.getDeploymentId(),processDefinition.getId(),flowTaskCompleteVO.getAssignee(),flowTaskCompleteVO.getTaskId(),processInstance.getProcessInstanceId(),taskname);
if(isupdate){
boolean isupdate = iFormCustomService.updateForm(formid, processDefinition.getDeploymentId(), processDefinition.getId(), flowTaskCompleteVO.getAssignee(), flowTaskCompleteVO.getTaskId(), processInstance.getProcessInstanceId(), taskname);
if (isupdate) {
FlowModelVO flowModelVO = iFormCustomService.getForm(formid);
//增加未查看记录
userViewApproeService.saveUserViewApproe(flowTaskCompleteVO.getAssignee(),formid,flowModelVO.getTenantid().toString());
userViewApproeService.saveUserViewApproe(flowTaskCompleteVO.getAssignee(), formid, flowModelVO.getTenantid().toString());
}
}
log.info("流程启动成功:procDefId:{}",procDefId);
log.info("流程启动成功:procDefId:{}", procDefId);
return true;
}catch (Exception e){
log.error("流程启动失败:procDefId:{}",procDefId);
log.error("流程启动失败:e:{}",e);
} catch (Exception e) {
log.error("流程启动失败:procDefId:{}", procDefId);
log.error("流程启动失败:e:{}", e);
//删除流程
if(null != processInstance){
if (null != processInstance) {
runtimeService.deleteProcessInstance(processInstance.getProcessInstanceId(), SystemMessage.SYS_OA_START_ERROR);
historyService.deleteHistoricProcessInstance(processInstance.getProcessInstanceId());
}
if(StringUtils.isNotBlank(servicename) && StringUtils.isNotBlank(formid)){
if (StringUtils.isNotBlank(servicename) && StringUtils.isNotBlank(formid)) {
iFormCustomService.delForm(formid);
}
}finally {
RequestContextHolder.resetRequestAttributes();
}
return false;
}
@Override
public boolean startProcessInstanceById(String procDefId, String userName,String createuser, String formid,String servicename) {
public boolean startProcessInstanceById(String procDefId, String userName, String createuser, String formid, String servicename) {
IFormCustomService iFormCustomService = null;
if(StringUtils.isNotBlank(servicename)){
if (StringUtils.isNotBlank(servicename)) {
iFormCustomService = SpringUtils.getBean(servicename);
}
if(StringUtils.isBlank(formid) ){
if (StringUtils.isBlank(formid)) {
//表单主键
return false;
}
Map<String, Object> variables = new HashMap<>();
variables.put("loginUser",userName);
variables.put("loginUser", userName);
//根据流程定义信息
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionId(procDefId).singleResult();
//业务key 用于待办已办 扩展字段 展示使用
//我这里以 流程定义key(oa_category_t定义的关键字逻辑唯一) + 业务表主键(请假表、调岗表等) + 业务表对应的servicename
String businessKey= createuser + SystemConstantsOa.OA_BUSSINESS_KEY_SPLIT+ formid + SystemConstantsOa.OA_BUSSINESS_KEY_SPLIT+ servicename;
String businessKey = createuser + SystemConstantsOa.OA_BUSSINESS_KEY_SPLIT + formid + SystemConstantsOa.OA_BUSSINESS_KEY_SPLIT + servicename;
ProcessInstance processInstance = null;
//启动了一个流程实例
try {
variables.put("businessKey",businessKey);
processInstance = runtimeService.startProcessInstanceById(procDefId,businessKey,variables) ;
variables.put("businessKey", businessKey);
processInstance = runtimeService.startProcessInstanceById(procDefId, businessKey, variables);
if(null != iFormCustomService){
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(),processInstance.getProcessDefinitionId());
if (null != iFormCustomService) {
FlowTaskCompleteVO flowTaskCompleteVO = flowTaskService.updateNowTaskAssignee(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId());
if(null == flowTaskCompleteVO){
if (null == flowTaskCompleteVO) {
throw new ServiceException("没有审批人,请联系管理员,流程定义:" + businessKey);
}
List<Task> list = this.flowTaskService.nowRunTask(processInstance.getProcessInstanceId(),processInstance.getProcessDefinitionId());
List<Task> list = this.flowTaskService.nowRunTask(processInstance.getProcessInstanceId(), processInstance.getProcessDefinitionId());
String taskname = "";
if(null != list && !list.isEmpty()){
if (null != list && !list.isEmpty()) {
taskname = list.get(0).getName();
}
//保存instanceId到数据库需要根据流程分类进行判断更新
boolean isupdate = iFormCustomService.updateForm(formid,processDefinition.getDeploymentId(),processDefinition.getId(),flowTaskCompleteVO.getAssignee(),flowTaskCompleteVO.getTaskId(),processInstance.getProcessInstanceId(),taskname);
if(isupdate){
boolean isupdate = iFormCustomService.updateForm(formid, processDefinition.getDeploymentId(), processDefinition.getId(), flowTaskCompleteVO.getAssignee(), flowTaskCompleteVO.getTaskId(), processInstance.getProcessInstanceId(), taskname);
if (isupdate) {
FlowModelVO flowModelVO = iFormCustomService.getForm(formid);
//增加未查看记录
userViewApproeService.saveUserViewApproe(flowTaskCompleteVO.getAssignee(),formid,flowModelVO.getTenantid().toString());
userViewApproeService.saveUserViewApproe(flowTaskCompleteVO.getAssignee(), formid, flowModelVO.getTenantid().toString());
}
}
log.info("流程启动成功:procDefId:{}",procDefId);
log.info("流程启动成功:procDefId:{}", procDefId);
return true;
}catch (Exception e){
log.error("流程启动失败:procDefId:{}",procDefId);
log.error("流程启动失败:e:{}",e);
} catch (Exception e) {
log.error("流程启动失败:procDefId:{}", procDefId);
log.error("流程启动失败:e:{}", e);
//删除流程
if(null != processInstance){
if (null != processInstance) {
runtimeService.deleteProcessInstance(processInstance.getProcessInstanceId(), SystemMessage.SYS_OA_START_ERROR);
historyService.deleteHistoricProcessInstance(processInstance.getProcessInstanceId());
}
if(StringUtils.isNotBlank(servicename) && StringUtils.isNotBlank(formid)){
if (StringUtils.isNotBlank(servicename) && StringUtils.isNotBlank(formid)) {
iFormCustomService.delForm(formid);
}
}

@ -1122,6 +1122,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
HistoricTaskInstanceDto dto = new HistoricTaskInstanceDto();
dto.setTaskId(taskHiInstance.getId());
dto.setTaskName(taskHiInstance.getName());
flowUnionVo.setNodeName(taskHiInstance.getName());
dto.setFinishTime(taskHiInstance.getEndTime());
if(taskHiInstance.getDurationInMillis() != null){
dto.setDuration(taskHiInstance.getDurationInMillis()/1000 + "秒");
@ -1458,4 +1459,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
return ResultVoUtil.success();
}
@Override
public ResultVo repetitionTask() {
return ResultVoUtil.success(flowableccMybatisDao.repetitionTask());
}
}

@ -35,4 +35,6 @@ public interface FlowableccMybatisDao extends BaseMapper<Flowablecc> {
* @return
*/
List<UserDistionaryVo> selectUserByFromid(String fromid);
List<Map<String,Object>> repetitionTask();
}

@ -33,6 +33,8 @@ public interface OcrPictureService extends BaseService<OcrPicture> {
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId , UserToken sysUser, String search_month, HttpServletRequest req, String buessinessno);
public ResultVo createTaskChild(List<OcrPicture> ocrPictureList, String tenantId);
/**
*
* @param tenantId

@ -7,6 +7,7 @@ import cn.jyjz.xiaoyao.ocr.dataobject.OcrPicture;
import cn.jyjz.xiaoyao.ocr.service.OcrPictureService;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
@ -19,12 +20,12 @@ import java.util.Map;
* @version 1.0
* @date 2024/3/14 11:15
*/
public class PictureDownloadTask implements Runnable{
public class PictureDownloadTask implements Runnable {
protected Logger logger = LoggerFactory.getLogger(getClass());
private PictureSourceResult pictureSourceResult;
public PictureDownloadTask(PictureSourceResult pictureSourceResult){
public PictureDownloadTask(PictureSourceResult pictureSourceResult) {
this.pictureSourceResult = pictureSourceResult;
}
@ -34,13 +35,13 @@ public class PictureDownloadTask implements Runnable{
OcrPictureService ocrPictureService = SpringUtils.getBean("ocrPictureService");
//获取当前任务中有多少图片
List<Map<String,Object>> livePhoto = pictureSourceResult.getLivePhoto();
List<Map<String, Object>> livePhoto = pictureSourceResult.getLivePhoto();
//定义新增集合对象
List<OcrPicture> ocrPictureList = new ArrayList<>();
for (Map<String, Object> map : livePhoto) {
//检查图片地址是否为空
if(map.get("imgUrl")!=null && !StringUtils.isEmpty(map.get("imgUrl").toString())){
if (map.get("imgUrl") != null && !StringUtils.isEmpty(map.get("imgUrl").toString())) {
//不为空开始组装参数 入库
OcrPicture picture = new OcrPicture();
//租户编号
@ -48,11 +49,11 @@ public class PictureDownloadTask implements Runnable{
//租户名称
picture.setTenantname(pictureSourceResult.getTenantName());
//租户状态
if(pictureSourceResult.getTenantStatus()!=null){
if (pictureSourceResult.getTenantStatus() != null) {
picture.setTenantstatus(pictureSourceResult.getTenantStatus().toString());
}
//业务主体
if(pictureSourceResult.getAccountNo()!=null){
if (pictureSourceResult.getAccountNo() != null) {
picture.setPictureid(pictureSourceResult.getAccountNo().toString());
}
//业务主体名称
@ -60,25 +61,28 @@ public class PictureDownloadTask implements Runnable{
//业务主体状态
picture.setPicturestatus(pictureSourceResult.getPlanChildStatus());
//项目编号
if(pictureSourceResult.getProjectNo()!=null){
if (pictureSourceResult.getProjectNo() != null) {
picture.setProjectid(pictureSourceResult.getProjectNo().toString());
}
//项目id
picture.setCategoryid(251374070600303007L);
//项目名称
picture.setPicturename(pictureSourceResult.getProjectName());
//项目状态
if(pictureSourceResult.getProjectNo()!=null) {
if (pictureSourceResult.getProjectNo() != null) {
picture.setProjectstatus(pictureSourceResult.getProjectNo().toString());
}
//所属主计划id
if(pictureSourceResult.getPlanNo()!=null) {
if (pictureSourceResult.getPlanNo() != null) {
picture.setPlanid(pictureSourceResult.getPlanNo().toString());
}
//所属计划名称
picture.setPlanname(pictureSourceResult.getPlanName());
//所属计划状态
picture.setPlanstatus( pictureSourceResult.getPlanstatus());
picture.setPlanstatus(pictureSourceResult.getPlanstatus());
//所属子计划id
if(pictureSourceResult.getPlanChildNo()!=null) {
if (pictureSourceResult.getPlanChildNo() != null) {
picture.setPlanchildid(pictureSourceResult.getPlanChildNo().toString());
}
//所属子计划名称
@ -92,7 +96,7 @@ public class PictureDownloadTask implements Runnable{
//任务来源名称
picture.setField4(pictureSourceResult.getTaskName());
//所属任务状态
if(pictureSourceResult.getTenantStatus()!=null) {
if (pictureSourceResult.getTenantStatus() != null) {
picture.setTaskstatus(pictureSourceResult.getTenantStatus().toString());
}
//提报人id
@ -106,56 +110,56 @@ public class PictureDownloadTask implements Runnable{
//拜访详细地址
StringBuilder addressDetails = new StringBuilder();
//拜访省份
if(pictureSourceResult.getProvince()!=null){
if(pictureSourceResult.getProvince().get("name")!=null){
if (pictureSourceResult.getProvince() != null) {
if (pictureSourceResult.getProvince().get("name") != null) {
addressDetails.append(pictureSourceResult.getProvince().get("name").toString());
picture.setReleaseprovince(pictureSourceResult.getProvince().get("name").toString());
}
}
//拜访城市
if(pictureSourceResult.getCity()!=null){
if(pictureSourceResult.getCity().get("name")!=null){
if (pictureSourceResult.getCity() != null) {
if (pictureSourceResult.getCity().get("name") != null) {
addressDetails.append(pictureSourceResult.getCity().get("name").toString());
picture.setReleasearea(pictureSourceResult.getCity().get("name").toString());
}
}
//拜访定位信息
if(pictureSourceResult.getLocation()!=null){
if(pictureSourceResult.getCity().get("address")!=null){
if (pictureSourceResult.getLocation() != null) {
if (pictureSourceResult.getCity().get("address") != null) {
addressDetails.append(pictureSourceResult.getCity().get("address").toString());
}
}
picture.setField10(addressDetails.toString());
//拜访客户类型
if(pictureSourceResult.getTerminalType()!=null){
if(pictureSourceResult.getTerminalType().get("name")!=null){
if (pictureSourceResult.getTerminalType() != null) {
if (pictureSourceResult.getTerminalType().get("name") != null) {
picture.setField2(pictureSourceResult.getTerminalType().get("name").toString());
}
}
//拜访客户名称
if(pictureSourceResult.getCustomerName()!=null){
if(pictureSourceResult.getCustomerName().get("name")!=null){
if (pictureSourceResult.getCustomerName() != null) {
if (pictureSourceResult.getCustomerName().get("name") != null) {
picture.setField3(pictureSourceResult.getCustomerName().get("name").toString());
}
}
//拜访客户级别
if(pictureSourceResult.getTerminalLevel()!=null){
if(pictureSourceResult.getTerminalLevel().get("name")!=null){
if (pictureSourceResult.getTerminalLevel() != null) {
if (pictureSourceResult.getTerminalLevel().get("name") != null) {
picture.setField6(pictureSourceResult.getTerminalLevel().get("name").toString());
}
}
//拜访项目类别
if(pictureSourceResult.getProjectType()!=null){
if(pictureSourceResult.getTerminalLevel().get("name")!=null){
if (pictureSourceResult.getProjectType() != null) {
if (pictureSourceResult.getTerminalLevel().get("name") != null) {
picture.setField17(pictureSourceResult.getTerminalLevel().get("name").toString());
}
}
//拜访品种
if(pictureSourceResult.getProductName()!=null){
if(pictureSourceResult.getProductName().get("name")!=null){
if (pictureSourceResult.getProductName() != null) {
if (pictureSourceResult.getProductName().get("name") != null) {
picture.setField9(pictureSourceResult.getProductName().get("name").toString());
}
}
@ -169,10 +173,10 @@ public class PictureDownloadTask implements Runnable{
picture.setField12(pictureSourceResult.getDistance());
//设置图片信息
if(map.get("imgName")!=null){
if (map.get("imgName") != null) {
picture.setImgname(map.get("imgName").toString());
}
if(map.get("imgUrl")!=null){
if (map.get("imgUrl") != null) {
picture.setImgurl(map.get("imgUrl").toString());
}
//默认为创建人为admin

@ -181,4 +181,13 @@
from OA_SUMMARY_VIEW
<include refid="Base_Where_union"></include>
</select>
<select id="repetitionTask" resultType="java.util.Map">
SELECT REPETITION,count(1) count
FROM
OA_SUMMARY_VIEW
GROUP BY REPETITION
HAVING count(1)>1
</select>
</mapper>

Loading…
Cancel
Save