package com.whyc.service;
|
|
import com.baomidou.mybatisplus.core.conditions.Wrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
import com.github.pagehelper.PageHelper;
|
import com.github.pagehelper.PageInfo;
|
import com.whyc.mapper.WorkflowLinkMapper;
|
import com.whyc.mapper.WorkflowMainMapper;
|
import com.whyc.pojo.WorkflowAlarm;
|
import com.whyc.pojo.WorkflowLink;
|
import com.whyc.pojo.WorkflowMain;
|
import com.whyc.util.ActionUtil;
|
import org.springframework.stereotype.Service;
|
|
import javax.annotation.Resource;
|
import javax.servlet.ServletContext;
|
import java.text.SimpleDateFormat;
|
import java.util.Comparator;
|
import java.util.Date;
|
import java.util.LinkedList;
|
import java.util.List;
|
|
@Service
|
public class WorkflowMainService {
|
|
@Resource
|
private WorkflowMainMapper mapper;
|
|
@Resource
|
private WorkflowLinkMapper linkMapper;
|
|
/**
|
* 分派单号:
|
* */
|
public String getNextOrderId(String typeName) {
|
ServletContext application = ActionUtil.getApplication();
|
List<String> orderIdList = (List) application.getAttribute("orderIdList");
|
if(orderIdList == null){
|
orderIdList = new LinkedList<>();
|
}
|
String nextSequence = "";
|
QueryWrapper<WorkflowMain> wrapper = Wrappers.query();
|
|
String orderId = "FG-"+typeName+"-";
|
String ymd = new SimpleDateFormat("yyyyMMdd").format(new Date());
|
orderId = orderId+ymd+"-";
|
//先查询是否缓存中是否存在前缀相同的单号,有的话存起来
|
List<Integer> sequenceList = new LinkedList<>();
|
sequenceList.add(0);
|
for (String item : orderIdList) {
|
if(item.startsWith(orderId)){
|
String sequence = item.split("-")[3];
|
sequenceList.add(Integer.parseInt(sequence));
|
}
|
}
|
wrapper.likeRight("order_id",orderId).orderByDesc("order_id").last(" limit 1");
|
WorkflowMain workflowMain = mapper.selectOne(wrapper);
|
if(workflowMain != null){
|
String sequence = workflowMain.getOrderId().split("-")[3];
|
sequenceList.add(Integer.parseInt(sequence));
|
}
|
Integer maxSequence = sequenceList.stream().max(Comparator.comparing(Integer::intValue)).get();
|
nextSequence = String.format("%05d", maxSequence+1);
|
String nextOrderId = orderId + nextSequence;
|
//加入缓存中
|
orderIdList.add(nextOrderId);
|
application.setAttribute("orderIdList",orderIdList);
|
return nextOrderId;
|
}
|
|
public void add(WorkflowMain main) {
|
mapper.insert(main);
|
}
|
|
public void addBatch(List<WorkflowMain> workflowMainList) {
|
mapper.insertBatchSomeColumn(workflowMainList);
|
}
|
|
public PageInfo<WorkflowMain> getPendingList(Long userId,Integer type,Integer pageNum,Integer pageSize,WorkflowMain main) {
|
PageHelper.startPage(pageNum,pageSize,true);
|
//获取系统生成,待处理的工单,获取正在工单节点表中待处理的工单
|
List<WorkflowMain> workflowList = mapper.getPendingWorkflowList(userId,type,main);
|
PageInfo<WorkflowMain> pageInfo = new PageInfo<>(workflowList);
|
|
return pageInfo;
|
}
|
|
|
public WorkflowMain getBaseInfo(Integer mainId) {
|
return mapper.getBaseInfo(mainId);
|
}
|
|
public List<WorkflowLink> getAssignReply(Integer mainId) {
|
QueryWrapper<WorkflowLink> wrapper = Wrappers.query();
|
//wrapper.eq("main_id",mainId)
|
//return linkMapper.
|
return null;
|
}
|
}
|