Commit 635a9086 by 李小惠

添加事务的查询条件,修改警员和账号同步问题bug

parent de744ead
......@@ -9,11 +9,19 @@ import java.io.Serializable;
*/
@Data
public class EqsSumDto implements Serializable {
/**
* 装备类型id
*/
private String typeId;
/**
* 装备类型名称
*/
private String typeName;
//组织机构id
private Long orgId;
//组织机构名称
private String orgName;
//总数(单警柜+仓库
//总数(在库数+出库数+销毁数
private Integer totalSum;
//仓库在库数
private Integer inSum;
......
......@@ -24,6 +24,8 @@ public class PolicemanDto {
private String photo;
private String tel;
private String phone;
//单警柜编号
private String cabinetNum;
......@@ -40,7 +42,20 @@ public class PolicemanDto {
private Boolean isCreatedAccount;
//指纹信息列表
private List<PoliceFingerDto> fingersList;
private String fileContent;
private Long userId;
//用户名
private String account;
/**
* 角色id列表
*/
private List<Long> rolesList;
/**
* 0警员,1辅警
*/
private Integer identity;
}
\ No newline at end of file
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.util.List;
@Data
public class TjOrgEqsDto {
/**
* 组织机构id
*/
private Long orgId;
/**
* 组织机构名称
*/
private String orgName;
/**
* 组织机构编码
*/
private String orgCode;
/**
* 装备总数(在库数+出库数+销毁数)
*/
private Integer totalNumber;
/**
* 在库数(仓库数)
*/
private Integer ckStockNumber;
/**
* 出库数(仓库数)
*/
private Integer ckOutboundNumber;
/**
* 单警柜在库数
*/
private Integer djgStockNumber;
/**
* 单警柜出库数
*/
private Integer djgOutboundNumber;
/**
* 销毁数
*/
private Integer destructionNumber;
/**
* 子节点
*/
List<TjOrgEqsDto> orgNode;
/**
* 装备名称汇总
*/
List<EqsSumDto> eqsList;
}
......@@ -64,7 +64,10 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
* 收物单位名称
*/
private String endOrgName;
/**
* 供应商id
*/
private String supplierId;
/**
* 供应商名称
*/
......@@ -146,5 +149,8 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
private String createUser;
private String updateUser;
//备注
private String note;
}
......@@ -70,5 +70,7 @@ public class UpdatePolicemanReq extends BaseRequest {
* 角色id列表
*/
private List<Long> rolesList;
//当前登录人的id
private Long createUser;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -4,9 +4,11 @@ import com.junmp.jyzb.api.bean.dto.*;
import com.junmp.jyzb.api.bean.query.*;
import com.junmp.jyzb.api.bean.req.BatchEditingInvsReq;
import com.junmp.jyzb.api.bean.req.EquipmentBindReq;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.entity.LogDetail;
import com.junmp.jyzb.entity.LogSummary;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.service.*;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
......@@ -18,7 +20,7 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import javax.annotation.Resource;
import java.util.List;
import java.util.*;
@RestController
@Slf4j
......@@ -112,6 +114,7 @@ public class InventoryController {
public ApiRes<List<EqsBriefDto>> searchEqsByBoxId(@RequestBody @Validated(ValidationApi.detail.class) CabinetBoxReq req){
return ApiRes.success(inventoryService.searchEqsByBoxId(req));
}
//查询箱门(cabinetBox下)所有装备简要信息列表page(传递cabinetBoxId)
@PostMapping("/searchEqsByBoxIdPage")
@ApiOperation("查询某一箱门下的所有装备简要信息(page)")
......@@ -126,6 +129,7 @@ public class InventoryController {
public ApiRes<List<InventorySummary>> EqsByCabinetBoxId(@RequestBody @Validated(ValidationApi.detail.class)CabinetBoxReq req){
return ApiRes.success(inventoryService.EqsByCabinetBoxId(req));
}
//查询单警柜箱门下的汇总信息(传递cabinetBoxId)
@PostMapping("/EqsByCabinetBoxIdPage")
@ApiOperation("查询箱门下的汇总信息(page)")
......@@ -139,6 +143,7 @@ public class InventoryController {
public ApiRes<List<InventorySummary>> ShelfInventoryList(@RequestBody @Validated(ValidationApi.edit.class) ShelfReq req){
return ApiRes.success(inventoryService.ShelfInventoryList(req));
}
//根据货架id查询装备信息汇总 (page)
@PostMapping("/ShelfInventoryPage")
@ApiOperation("根据货架id查询装备信息汇总(page)")
......@@ -237,13 +242,7 @@ public class InventoryController {
return ApiRes.success(inventoryService.getInOutRecords(req));
}
@PostMapping("/test")
public ApiRes<Boolean> test(@RequestBody InventorySumReq req){
System.out.println("req = " + req);
return ApiRes.success(true);
}
//首页上的装备统计数量
@PostMapping("/EquipmentStatistics")
@ApiOperation("装备数量数据统计")
public ApiRes<List<InventorySummary>> EquipmentStatistics(@RequestBody InventorySumReq req){
......
......@@ -38,16 +38,7 @@ public class OrderController {
@PostMapping("/AddOrder")
@ApiOperation("新增任务单")
public ApiRes<List<String>> addOrder(@RequestBody @Validated(ValidationApi.add.class) UpdateOrderReq req) {
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId()))
{
req.setExamineState("none");
}
else//有工作流
{
req.setExamineState("working");
}
return ApiRes.success(orderMainService.AddOrder(req));
}
......@@ -58,7 +49,7 @@ public class OrderController {
@PostMapping("/AddFinishOrder")
@ApiOperation("新增已完成的任务单")
public ApiRes<String> AddFinishOrder(@RequestBody UpdateOrderReq req) {
req.setExamineState("finished");
return ApiRes.success(orderMainService.AddFinishOrder(req));
}
......
......@@ -3,7 +3,9 @@ package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.jyzb.service.TestService;
import com.junmp.jyzb.utils.ResponseResult;
import com.junmp.v2.common.bean.response.ApiRes;
import io.swagger.annotations.ApiOperation;
import liquibase.pro.packaged.B;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
......@@ -24,10 +26,9 @@ public class TestController {
return new ResponseResult(10000,"操作成功","hello");
}
@PostMapping("/uploadResult")
@ApiOperation("模拟本地主机上传结果到rabbitmq")
public Boolean uploadResult(@RequestBody RabbitMqOrderReq req){
return testService.uploadResult(req);
@PostMapping("/test")
public ApiRes<Boolean> test(@RequestBody RabbitMqOrderReq req){
return ApiRes.success(testService.test(req));
}
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.dto.TjOrgEqsDto;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.service.InventoryService;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.service.TjService;
import com.junmp.v2.common.bean.response.ApiRes;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
import java.util.List;
@RestController
@Slf4j
@RequestMapping("/Tj")
@Api(tags = "统计报表模块")
public class TjController {
@Resource
private TjService tjService;
/**
* 根据组织机构统计装备的报表数据
*/
@PostMapping("/TjOrgEqs")
@ApiOperation("/装备统计报表")
public ApiRes<List<TjOrgEqsDto>> TjOrgEqs(@RequestBody InventoryReq req){
return ApiRes.success(tjService.showOrgList(req.getOrgId(),true));
}
}
......@@ -191,6 +191,7 @@ public class InventorySummary implements Serializable {
@TableField(exist = false,updateStrategy = FieldStrategy.IGNORED)
private String photo;
//教学使用说明
@TableField(exist = false)
private String instructions;
......
......@@ -57,6 +57,16 @@ public class LogSummary implements Serializable {
@TableField(value = "device_type")
private Integer deviceType;
/**
* 所属位置(0仓库1单警柜)
*/
@TableField(value = "location_id")
private String locationId;
/**
* 所属位置(0仓库1单警柜)
*/
@TableField(value = "location_name")
private String locationName;
/**
......
......@@ -9,10 +9,16 @@ import com.junmp.junmpProcess.utils.RabbitMQUtils2;
//import com.rabbitmq.client.Connection;
import com.junmp.jyzb.api.bean.dto.OrderDto;
import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderDetailReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.entity.BusForm;
import com.junmp.jyzb.entity.OrderDetail;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.service.BusFormService;
import com.junmp.jyzb.service.OrderDetailService;
import com.junmp.jyzb.service.OrderMainService;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
import com.rabbitmq.client.MessageProperties;
......@@ -31,14 +37,21 @@ import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors;
@Component
public class GlobalEndListener extends AbstractFlowableEngineEventListener {
@Resource
public OrderMainService orderMainService;
@Resource
public OrderDetailService orderDetailService;
@Resource
private HistoryService historyService;
@Resource
private BusFormService busFormService;
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@SneakyThrows
......@@ -60,10 +73,28 @@ import java.util.Map;
.eq(OrderMain::getProcessId, req.getProcessId())
);
UpdateOrderReq updateOrderReq = new UpdateOrderReq();
BeanPlusUtil.copyProperties(existOrder,updateOrderReq);
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, updateOrderReq.getId()));
updateOrderReq.setId(existOrder.getId());
updateOrderReq.setExamineState("finished");
updateOrderReq.setOrderState("ready");
orderMainService.ChangeOrderState(updateOrderReq);
List<UpdateOrderDetailReq> collect = list.stream().map(orderDetail -> {
UpdateOrderDetailReq updateOrderDetailReq = new UpdateOrderDetailReq();
BeanPlusUtil.copyProperties(orderDetail, updateOrderDetailReq);
return updateOrderDetailReq;
}).collect(Collectors.toList());
updateOrderReq.setDetailList(collect);
//将单据上传到rabbitmq
orderMainService.AddFinishOrder(updateOrderReq);
}
//业务单据
if (Type.equals("bussinessOrder")){
BusForm busForm = busFormService.getOne(new LambdaQueryWrapper<BusForm>()
.eq(BusForm::getProcessId, processInstanceId));
busForm.setExamineState("finished");
busFormService.updateById(busForm);
}
......
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.dto.TjOrgEqsDto;
import com.junmp.jyzb.entity.PubOrg;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
......@@ -18,4 +20,8 @@ public interface PubOrgMapper extends BaseMapper<PubOrg> {
void wipeParentIdsData();
//查询下级(除了下一级)
List<TjOrgEqsDto> getDownOrg(@Param("orgId") Long orgId);
//查询下一级(除了下n级)
List<TjOrgEqsDto> getLowOrg(@Param("orgId") Long orgId);
}
\ No newline at end of file
package com.junmp.jyzb.rabbitmq;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.service.OrderLogService;
import com.rabbitmq.client.Channel;
import org.springframework.amqp.rabbit.annotation.RabbitHandler;
import org.springframework.amqp.rabbit.annotation.RabbitListener;
import org.springframework.amqp.support.AmqpHeaders;
import org.springframework.messaging.handler.annotation.Header;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.io.IOException;
/**
* 创建消息接收监听�
* */
@Component
@RabbitListener(queues = "1369509498032809902") //监听的队列名 (模拟本地主机接收单据)
public class DirectReceiver {
@RabbitHandler
private void modelConvert(UpdateOrderReq req, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag) {
try {
System.out.println("req = " + req);
// 手动确认消息
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列
try {
channel.basicNack(deliveryTag, false, true);
} catch (IOException ex) {
throw new RuntimeException(ex);
}
}
}
}
......@@ -21,19 +21,19 @@ public class OrderMQReceiver {
@Resource
private InventorySummaryService inventorySummaryService;
@RabbitListener(queues = "orderResult")//监听队列名
@RabbitListener(queues = "11111")//监听队列名
private void a(RabbitMqOrderReq req, Channel channel, @Header(AmqpHeaders.DELIVERY_TAG) long deliveryTag){
try {
System.out.println("req = " + req);
//将消息进行消费
// Boolean result = inventorySummaryService.processInventoryRecords(req);
// if (result){
// // 手动确认消息
// channel.basicAck(deliveryTag, false);
// }else {
// channel.basicNack(deliveryTag, false, true);
// }
Boolean result = inventorySummaryService.processInventoryRecords(req);
if (result){
// 手动确认消息
channel.basicAck(deliveryTag, false);
}else {
channel.basicNack(deliveryTag, false, true);
}
// 手动确认消息
channel.basicAck(deliveryTag, false);
} catch (Exception e) {
......
......@@ -87,7 +87,5 @@ public interface InventoryService extends IService<Inventory> {
PageResult<LogSummary> ShowInOutRecordsByOrder(LogSummaryReq req);
PageResult<LogSummary> ShowInOutRecordsByItems(LogSummaryReq req);
boolean test(RabbitMqOrderReq req);
}
......@@ -3,6 +3,7 @@ package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.dto.OrgTreeDto;
import com.junmp.jyzb.api.bean.dto.TjOrgEqsDto;
import com.junmp.jyzb.api.bean.query.QueryOrgReq;
import com.junmp.jyzb.api.bean.req.UpdateOrgReq;
import com.junmp.jyzb.utils.ResponseResult;
......@@ -29,4 +30,6 @@ public interface PubOrgService extends IService<PubOrg> {
//根据组织机构id查询出组织机构是否存在
PubOrg PubOrgExist(Long id);
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.req.RabbitMqOrderReq;
import com.junmp.v2.common.bean.response.ApiRes;
public interface TestService {
Boolean uploadResult(RabbitMqOrderReq req);
boolean test(RabbitMqOrderReq req);
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.dto.TjOrgEqsDto;
import java.util.List;
public interface TjService {
//根据组织机构获取当前组织机构和下一级组织机构
List<TjOrgEqsDto> showOrgList(Long orgId, boolean flag);
}
......@@ -87,7 +87,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(busForm.getId());
startProcessInstanceDTO.setOrderType("workOrder");
startProcessInstanceDTO.setOrderType("bussinessOrder");
startProcessInstanceDTO.setUserId(req.getApplyUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
busForm.setProcessId(ProcessInstanceId);
......
......@@ -660,27 +660,8 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}
@Override
public boolean test(RabbitMqOrderReq req) {
String exchangeName="hahaha";
//需要判断是入库单还是出库单,入库单传收物单位id,出库单传发物单位id
if(req.getOrderMainReq().getOrderType().equals("in")){
org.springframework.amqp.core.Queue queue=new org.springframework.amqp.core.Queue( "11111",true,false,false);
Exchange exchange = new DirectExchange(exchangeName, true, false);
rabbitAdmin.declareQueue(queue);
rabbitAdmin.declareExchange(exchange);
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(req.getOrderMainReq().getEndOrgId().toString()).noargs());
rabbitTemplate.convertAndSend(exchangeName, req.getOrderMainReq().getEndOrgId().toString(), req);
}else {
org.springframework.amqp.core.Queue queue = new Queue("11111", true, false, false);
Exchange exchange = new DirectExchange(exchangeName, true, false);
rabbitAdmin.declareQueue(queue);
rabbitAdmin.declareExchange(exchange);
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(req.getOrderMainReq().getStartOrgId().toString()).noargs());
rabbitTemplate.convertAndSend(exchangeName, req.getOrderMainReq().getStartOrgId().toString(), req);
}
return true;
}
}
\ No newline at end of file
......@@ -25,9 +25,7 @@ import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.UUID;
import java.util.*;
import java.util.stream.Collectors;
@Service
......@@ -84,15 +82,18 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
req.setOrder(req.getOrder().toLowerCase());
}
LambdaQueryWrapper<InventorySummary> wp = createWrapper(req);//取出仓库中总数并计算
List<InventorySummary> list = list(wp);
long size = list(wp).size();
Page<InventorySummary> sumList= this.page(PageFactory.getDefaultPage(req.getPageNo(),req.getPageSize()),wp);
List<InventorySummary> records = sumList.getRecords();
List<InventorySummary> collect = records.stream().map(data -> {
// Page<InventorySummary> sumList= this.page(PageFactory.getDefaultPage(req.getPageNo(),req.getPageSize()),wp);
// List<InventorySummary> records = sumList.getRecords();
List<InventorySummary> collect = list.stream().map(data -> {
Inventory inventory = inventoryService.list(new LambdaQueryWrapper<Inventory>()
.eq(Inventory::getOrgId, data.getOrgId())
.eq(Inventory::getSizeId, data.getSizeId())
.eq(Inventory::getTypeId, data.getTypeId())).get(0);
//教学使用说明
String instructions = equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>()
.eq(EquipmentSize::getId, data.getSizeId())).getInstructions();
data.setInstructions(instructions);
......@@ -102,6 +103,13 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
data.setPhoto(photo);
return data;
}).collect(Collectors.toList());
//对该装备typeId进行排序
Collections.sort(collect, new Comparator<InventorySummary>() {
@Override
public int compare(InventorySummary o1, InventorySummary o2) {
return o1.getTypeId().compareTo(o2.getTypeId());
}
});
Page<InventorySummary> page1 = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
page1.setRecords(collect);
page1.setTotal(size);
......@@ -188,8 +196,8 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
}
//对装备进行记录,存入log表形成出入库记录
Boolean c = insertLog(req,orderMain,addList,updateList);
Boolean d = updateSummaryInsByOrder(orgId);
return (b && c && d );
// Boolean d = updateSummaryInsByOrder(orgId);
return (b && c );
}
......@@ -203,6 +211,8 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
logSummary.setLocationType(0);
logSummary.setUserName(req.getUserName());
logSummary.setUseTime(req.getUseTime());
// logSummary.setLocationId();
// logSummary.setLocationName();
if (orderMain.getOrderType().equals("in")){
logSummary.setOutInState("in");
logSummary.setOrgId(orderMain.getEndOrgId());
......@@ -286,10 +296,10 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
}
}
//修改summary表中数据
boolean b = updateSummaryInsByCabinet(req.getLocationId());
// boolean b = updateSummaryInsByCabinet(req.getLocationId());
//添加日志记录、
Boolean c = insertCabinetLog(req,inventoryLogsList);
return (a && b && c);
return (a && c);
}
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
......@@ -49,6 +50,7 @@ import java.math.BigDecimal;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
import java.util.stream.Stream;
@Service
......@@ -87,89 +89,19 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
private WarehouseService warehouseService;
//新增任务单
// @Transactional(rollbackFor = Exception.class)
// @Override
// public List<String> AddOrder(UpdateOrderReq req) {
// //先判断该单据是否存在,如果存在,进行更新操作即可
//
// List<String> list=new ArrayList<>();
// OrderMain order = new OrderMain();
// BeanPlusUtil.copyProperties(req, order);
// //设置单据单号
// if (ObjectUtil.isNull(order.getOrderCode())){
// OrderNum orderNum = setOrderCode(req);
// String codeValue=String.format("%04d",orderNum.getNum());
// order.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
// String.format("%02d",LocalDateTime.now().getMonth().getValue())+String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
// }
// //设置总价格和应出入库数量
// //设置id
// String id=UUID.randomUUID().toString();
// order.setId(id);
// Integer sumNum=0;
// BigDecimal priceTotal=new BigDecimal(0);
// List<OrderDetail> detailList = new ArrayList<>();
// //通过遍历批量保存详细信息
// for (UpdateOrderDetailReq listReq:req.getDetailList()) {
// OrderDetail detail=new OrderDetail();
// BeanPlusUtil.copyProperties(listReq, detail);
// detail.setOrderId(order.getId());
// //设置单据类型
// detail.setType(order.getOrderType());
// //将数量和价格进行累加
// sumNum += detail.getPlanNum();
// priceTotal = priceTotal.add(BigDecimal.valueOf(detail.getPlanNum()).multiply(detail.getPrice())) ;
// detail.setCreateTime(DateTimeUtil.getCurrentDateTime());
// detailList.add(detail);
// }
// if (ObjectUtil.isNotNull(req.getId())){
// //删除子单据
// orderDetailService.remove(new LambdaQueryWrapper<OrderDetail>()
// .eq(ObjectUtil.isNotNull(req.getId()),OrderDetail::getOrderId,req.getId()));
// }
// orderDetailService.saveBatch(detailList);
// //设置总价格和总数量
// order.setPrice(priceTotal);
// order.setInventoryQuantity(sumNum);
// order.setCreateTime(DateTimeUtil.getCurrentDateTime());
// //执行工作流
//
// if (req.getExamineState().equals("working"))
// {
// StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
// startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
// startProcessInstanceDTO.setOrderId(id);
// startProcessInstanceDTO.setOrderType("workOrder");
// startProcessInstanceDTO.setUserId(req.getUserId());
// String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
// order.setProcessId(ProcessInstanceId);
// //保存
// this.save(order);
// }
// if (req.getExamineState().equals("none")){//如果是草稿
// if(ObjectUtil.isNotNull(req.getId())){
// //已经是一个草稿,在点击提交的时候只需要更新即可,因为数据库中已经存在该单据
// updateById(order);
// }else {
// //保存
// this.save(order);
// }
// }
// list.add(order.getId());
// for (OrderDetail orderDetail:detailList) {
// list.add(Long.toString(orderDetail.getId()));
// }
// return list;
// }
@Transactional(rollbackFor = Exception.class)
@Override
public List<String> AddOrder(UpdateOrderReq req) {
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId())) {
req.setExamineState("none");
} else {
req.setExamineState("working");
}
OrderMain order = new OrderMain();
BeanPlusUtil.copyProperties(req, order);
//先判断该单据id是否存在,如果存在,进行更新操作即可
if (ObjectUtil.isNotNull(req.getId())){
if (ObjectUtil.isNotNull(req.getId()) && ! req.getId().trim().isEmpty()){
//删除子单据
orderDetailService.remove(new LambdaQueryWrapper<OrderDetail>()
.eq(ObjectUtil.isNotNull(req.getId()),OrderDetail::getOrderId,req.getId()));
......@@ -209,20 +141,31 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//执行工作流
if (req.getExamineState().equals("working"))
{
// UpdateOrderReq updateOrderReq = new UpdateOrderReq();
// BeanPlusUtil.copyProperties(order,updateOrderReq);
// List<UpdateOrderDetailReq> collect = detailList.stream().map(orderDetail -> {
// UpdateOrderDetailReq updateOrderDetailReq = new UpdateOrderDetailReq();
// BeanPlusUtil.copyProperties(orderDetail, updateOrderDetailReq);
// return updateOrderDetailReq;
// }).collect(Collectors.toList());
// updateOrderReq.setDetailList(collect);
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setOrderType("workOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
// startProcessInstanceDTO.setFormData( (JSONObject) JSONObject.toJSON(updateOrderReq));
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
order.setProcessId(ProcessInstanceId);
}
if (ObjectUtil.isNotNull(req.getId())){
updateById(order);
if (ObjectUtil.isNotNull(req.getId()) && ! req.getId().trim().isEmpty()){
boolean b = updateById(order);
System.out.println("b = " + b);
}else {
//保存
this.save(order);
boolean save = this.save(order);
System.out.println(save);
}
//list返回数据
List<String> list=new ArrayList<>();
......@@ -278,18 +221,26 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//新增默认审核通过的任务单
//新增默认审核通过的任务单(可以没有工作流)
@Transactional(rollbackFor = Exception.class)
@Override
public String AddFinishOrder(UpdateOrderReq req) {
//添加到数据库中
List<String> strings = AddOrder(req);
req.setId(strings.get(0));
List<UpdateOrderDetailReq> detailList = req.getDetailList();
//将子单据id传递
for (int i=1;i<strings.size();i++){
detailList.get(i-1).setId(Long.parseLong(strings.get(i)));
//添加到数据库中(如果该单据没有审批流,那么就直接存入数据库)
if (ObjectUtil.isNull(req.getProcessDefinitionId())){
List<String> strings = AddOrder(req);
OrderMain orderMain = getById(strings.get(0));
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, strings.get(0)));
BeanPlusUtil.copyProperties(orderMain,req);
req.setExamineState("finished");
List<UpdateOrderDetailReq> collect = list.stream().map(orderDetail -> {
UpdateOrderDetailReq orderDetailReq = new UpdateOrderDetailReq();
BeanPlusUtil.copyProperties(orderDetail, orderDetailReq);
return orderDetailReq;
}).collect(Collectors.toList());
req.setDetailList(collect);
}
//将完成的任务单直接推送到消息队列rabbitmq中(需要判断是入库单还是出库单,入库单传发物单位id,出库单传收物单位id)
//方法1:一个交换机,一个队列。通过中间对象,object存储对象,type表标识
......@@ -316,7 +267,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with(req.getStartOrgId().toString()).noargs());
rabbitTemplate.convertAndSend(exchangeName, req.getStartOrgId().toString(), req);
}
return strings.get(0);
return req.getId();
}
......
......@@ -41,9 +41,11 @@ import com.junmp.v2.sys.api.bean.user.req.SysUserReq;
import com.junmp.v2.sys.api.bean.user.req.UserOrgReq;
import com.junmp.v2.sys.user.entity.SysUser;
import com.junmp.v2.sys.user.entity.SysUserOrg;
import com.junmp.v2.sys.user.entity.SysUserRole;
import com.junmp.v2.sys.user.factory.SysUserCreateFactory;
import com.junmp.v2.sys.user.mapper.SysUserMapper;
import com.junmp.v2.sys.user.service.SysUserOrgService;
import com.junmp.v2.sys.user.service.SysUserRoleService;
import com.junmp.v2.sys.user.service.SysUserService;
import liquibase.pro.packaged.L;
import liquibase.pro.packaged.O;
......@@ -98,6 +100,9 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
@Resource
private SysUserOrgService sysUserOrgService;
@Resource
private SysUserRoleService sysUserRoleService;
private static final String REDIS_POLICE = "Policeman_";
private static final String REDIS_ORG = "Organization_";
......@@ -116,9 +121,18 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
//绑定账号
SysUser sysUser = add(req);
//判断是否添加角色,进行绑定
if (req.getRolesList().size()==0){
List<SysUserRole> sysUserRoleList=new ArrayList<>() ;
if (req.getRolesList().size()>0 ){
for (Long roleId: req.getRolesList()) {
SysUserRole sysUserRole = new SysUserRole();
sysUserRole.setRoleId(roleId);
sysUserRole.setUserId(sysUser.getUserId());
sysUserRole.setCreateTime(DateTimeUtil.getCurrentDateTime());
sysUserRole.setCreateUser(req.getCreateUser());
sysUserRoleList.add(sysUserRole);
}
}
sysUserRoleService.saveBatch(sysUserRoleList);
Policeman policeman = new Policeman();
BeanPlusUtil.copyProperties(req, policeman);
policeman.setPassword(sysUser.getPassword());
......@@ -214,6 +228,16 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
fingerDtoList.add(policeFingerDto);
}
policemanDto.setFingersList(fingerDtoList);
//将账号名称返回
policemanDto.setAccount(sysUserService.getById(policemanDto.getUserId()).getAccount());
//通过警员信息将该警员的角色id返回
List<SysUserRole> list = sysUserRoleService.list(new LambdaQueryWrapper<SysUserRole>()
.eq(SysUserRole::getUserId, policemanDto.getUserId()));
List<Long> collect = list.stream().map(sysUserRole -> {
Long roleId = sysUserRole.getRoleId();
return roleId;
}).collect(Collectors.toList());
policemanDto.setRolesList(collect);
return policemanDto;
}
......
......@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.EquipmentTypeDto;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.dto.OrgTreeDto;
import com.junmp.jyzb.api.bean.dto.TjOrgEqsDto;
import com.junmp.jyzb.api.bean.query.QueryOrgReq;
import com.junmp.jyzb.api.bean.req.UpdateOrgReq;
import com.junmp.jyzb.api.exception.JYZBAppException;
......@@ -275,6 +276,7 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
public OrgDto getOrgHierarchy(QueryOrgReq req) {
req.setDelFlag(1);
// req.setDelFlag(1);
LambdaQueryWrapper<PubOrg> wp = this.createWrapper(req);
......@@ -283,15 +285,27 @@ public class PubOrgServiceImpl extends ServiceImpl<PubOrgMapper, PubOrg> implem
OrgDto orgSet=new OrgDto();
PubOrg OrgOne= this.getById(req.getOrgId());
BeanPlusUtil.copyProperties(OrgOne, orgSet);
orgSet.setIsLeaf(true);
List<PubOrg> list2 = list(new LambdaQueryWrapper<PubOrg>().eq(PubOrg::getOrgParentId, orgSet.getOrgId()));
if (list2.size()==0 || list2.isEmpty()){
orgSet.setIsLeaf(true);
}else {
orgSet.setIsLeaf(false);
}
// Convert PubOrg list to OrgDto list
List<OrgDto> orgs = new ArrayList<>();
list.forEach(p -> {
OrgDto org = new OrgDto();
BeanPlusUtil.copyProperties(p, org);
org.setIsLeaf(false);
if (p.getOrgParentId().equals(orgSet.getOrgParentId())){
List<PubOrg> list1 = list(new LambdaQueryWrapper<PubOrg>().eq(PubOrg::getOrgParentId, p.getOrgId()));
if (list1.size()==0 || list1.isEmpty()){
org.setIsLeaf(true);
}
}
orgs.add(org);
});
return getMaximumParent(orgs,orgSet);
......
......@@ -18,15 +18,18 @@ public class TestServiceImpl implements TestService {
private RabbitTemplate rabbitTemplate;
@Resource
private RabbitAdmin rabbitAdmin;
@Override
public Boolean uploadResult(RabbitMqOrderReq req) {
public boolean test(RabbitMqOrderReq req) {
String exchangeName="OrderResultExchange";
Queue queue=new Queue( "orderResult",true,false,false);
Exchange exchange = new DirectExchange(exchangeName, true, false);
rabbitAdmin.declareQueue(queue);
rabbitAdmin.declareExchange(exchange);
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with("123456").noargs());
rabbitTemplate.convertAndSend(exchangeName,"123456", req);
//需要判断是入库单还是出库单,入库单传收物单位id,出库单传发物单位id
Queue queue=new Queue( "orderResult",true,false,false);
Exchange exchange = new DirectExchange(exchangeName, true, false);
rabbitAdmin.declareQueue(queue);
rabbitAdmin.declareExchange(exchange);
rabbitAdmin.declareBinding(BindingBuilder.bind(queue).to(exchange).with("123456").noargs());
rabbitTemplate.convertAndSend(exchangeName,"123456", req);
return true;
}
}
package com.junmp.jyzb.service.impl;
import com.junmp.jyzb.api.bean.dto.TjOrgEqsDto;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.mapper.PubOrgMapper;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.service.TjService;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
@Service
public class TjServiceImpl implements TjService {
@Resource
private PubOrgMapper pubOrgMapper;
@Resource
private PubOrgService pubOrgService;
/**
* 根据当前组织机构获取本级及下一级的组织机构
* @param orgId
* @return
*/
public List<TjOrgEqsDto> showOrgList(Long orgId, boolean flag) {
//返回结果列表
List<TjOrgEqsDto> returnList=new ArrayList<>();
//获取该组织机构其余几层的数据(除去下一层)
List<TjOrgEqsDto> list2 =pubOrgMapper.getDownOrg(orgId);
List<TjOrgEqsDto> compare2 = compare(list2);
TjOrgEqsDto tjOrgEqsDto = new TjOrgEqsDto();
PubOrg pubOrg = pubOrgService.getById(orgId);
BeanPlusUtil.copyProperties(pubOrg,tjOrgEqsDto);
if (flag){
TjOrgEqsDto tjOrgEqsDto2 = new TjOrgEqsDto();
BeanPlusUtil.copyProperties(pubOrg,tjOrgEqsDto2);
compare2.add(0,tjOrgEqsDto2);
}
tjOrgEqsDto.setOrgNode(compare2);
returnList.add(tjOrgEqsDto);
//获取该组织机构下一层数据,仅限一层
List<TjOrgEqsDto> list1 =pubOrgMapper.getLowOrg(orgId);
List<TjOrgEqsDto> compare1 = compare(list1);
if (flag){
for (TjOrgEqsDto one:compare1) {
List<TjOrgEqsDto> tjOrgEqsDtos = showOrgList(one.getOrgId(), false);
one.setOrgNode(tjOrgEqsDtos);
}
}
returnList.addAll(compare1);
return returnList;
}
public List<TjOrgEqsDto> compare(List<TjOrgEqsDto> list){
Comparator<TjOrgEqsDto> orgComparator = (value1, value2) -> {
// 检查是否只包含数字
boolean isValue1Numeric = value1.getOrgCode().matches("\\d+");
boolean isValue2Numeric = value2.getOrgCode().matches("\\d+");
if (isValue1Numeric && isValue2Numeric) {
// 两个值都是纯数字,按照两位两位比较
for (int i = 0; i < 12; i += 2) {
int digit1 = Integer.parseInt(value1.getOrgCode().substring(i, i + 2));
int digit2 = Integer.parseInt(value2.getOrgCode().substring(i, i + 2));
if (digit1 != digit2) {
return digit1 - digit2;
}
}
} else if (isValue1Numeric) {
// value1是数字,而value2不是,将value2放在value1之前
return -1;
} else if (isValue2Numeric) {
// value2是数字,而value1不是,将value1放在value2之前
return 1;
}
// 两个值都包含字母,或者两个值都是纯数字且每两位都相等,则按照原始顺序比较
return value1.getOrgCode().compareTo(value2.getOrgCode());
};
Collections.sort(list, orgComparator);
return list;
}
}
......@@ -254,7 +254,7 @@
sum(outbound_number)as outboundNumber,sum(destruction_number)as destructionNumber,
sum(expire_number)as expireNumber,sum(broken_number)as brokenNumber,
sum(near_broken_number)as nearBrokenNumber,sum(use_number)as useNumber
FROM base_inventory_summary where org_id_int=#{req.orgId}
FROM base_inventory_summary where org_id_int=#{req.orgId} and location_type=0
</select>
<delete id="deleteByWarehouse"
parameterType="com.junmp.jyzb.api.bean.dto.WarehouseDto">
......
......@@ -96,7 +96,18 @@ SET p.org_parent_ids = cte.org_parent_ids;
<select id="getParentOrgName" resultType="String">
select d_name from pub_org o where org_id =#{orgParentId}
</select>
<select id="getDownOrg" resultType="com.junmp.jyzb.api.bean.dto.TjOrgEqsDto">
SELECT org_id as orgId, org_name as orgName,org_code as orgCode
FROM pub_org
WHERE org_parent_id = #{orgId} and del_flag=1
AND level_flag > (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) + 1;
</select>
<select id="getLowOrg" resultType="com.junmp.jyzb.api.bean.dto.TjOrgEqsDto">
SELECT org_id as orgId, org_name as orgName,org_code as orgCode
FROM pub_org
WHERE org_parent_id =#{orgId} and del_flag=1
AND level_flag = (SELECT level_flag FROM pub_org WHERE org_id = #{orgId}) + 1;
</select>
</mapper>
\ No newline at end of file
......@@ -138,7 +138,7 @@ public class BpmnController {
return WorkProcessService.agree(handleDataDTO);
}
@ApiOperation("查看我的已办")
@PostMapping("doneList")
@PostMapping("")
public ApiRes<PageResult<TaskVO>> doneList(@RequestBody TaskDTO taskDTO){
return ApiRes.success(WorkProcessService.doneList(taskDTO));
}
......
......@@ -4,6 +4,8 @@ import io.swagger.annotations.ApiModel;
import lombok.Data;
import com.junmp.junmpProcess.dto.json.UserInfo;
import java.util.Date;
/**
* @author LoveMyOrange
* @create 2022-10-14 23:47
......@@ -12,4 +14,12 @@ import com.junmp.junmpProcess.dto.json.UserInfo;
@ApiModel("我发起流程 需要返回给前端的DTO")
public class ApplyDTO extends PageDTO {
private UserInfo currentUserInfo;
//流程名称
private String processDefinitionName;
//开始时间
private Date startTime;
//结束时间
private Date endTime;
//备注
private String note;
}
......@@ -5,6 +5,8 @@ import io.swagger.annotations.ApiModel;
import lombok.Data;
import com.junmp.junmpProcess.dto.json.UserInfo;
import java.util.Date;
/**
* @author LoveMyOrange
* @create 2022-10-14 23:47
......@@ -13,4 +15,12 @@ import com.junmp.junmpProcess.dto.json.UserInfo;
@ApiModel("待办 需要返回给前端的VO")
public class TaskDTO extends PageDTO {
private JunmpUserInfo currentUserInfo;
//流程名称
private String processDefinitionName;
//开始时间
private Date startTime;
//结束时间
private Date endTime;
//备注
private String note;
}
......@@ -731,7 +731,7 @@ public class WorkProcessServiceImpl extends ServiceImpl<ProcessTemplatesMapper,
TaskDetailVO taskDetailVO= new TaskDetailVO();
taskDetailVO.setTaskId(historicActivityInstance.getTaskId());
taskDetailVO.setActivityId(historicActivityInstance.getActivityId());
taskDetailVO.setName("流程开始");
taskDetailVO.setName("发起人");
taskDetailVO.setCreateTime(historicActivityInstance.getStartTime());
taskDetailVO.setEndTime(historicActivityInstance.getEndTime());
// List<Comment> comments = commentsMap.get(historicActivityInstance.getTaskId());
......
......@@ -3,9 +3,12 @@ package com.junmp.junmpProcess.service.impl;
import cn.hutool.core.collection.CollUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.factory.FlowServiceFactory;
import com.junmp.junmpProcess.service.IFlowInstanceService;
import com.junmp.jyzb.api.bean.req.UpdateOrderDetailReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.api.exception.enums.CabinetBoxExceptionEnum;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.v2.auth.api.bean.login.LoginUser;
......@@ -13,6 +16,7 @@ import com.junmp.v2.auth.api.context.LoginContext;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.common.exception.IExceptionEnum;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.sys.user.entity.SysUser;
import com.junmp.v2.sys.user.service.SysUserService;
import lombok.extern.slf4j.Slf4j;
......@@ -29,12 +33,10 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.Map;
import java.util.Objects;
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.stream.Collectors;
import static com.junmp.junmpProcess.common.CommonConstants.*;
import static com.junmp.junmpProcess.common.CommonConstants.BUSINESS_STATUS_1;
......@@ -45,6 +47,7 @@ import static com.junmp.junmpProcess.common.WorkFlowConstants.PROCESS_PREFIX;
public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlowInstanceService {
@Resource
private SysUserService sysUserService;
@Override
public void updateState(Integer state, String instanceId) {
// 激活
......
......@@ -42,6 +42,7 @@ import org.flowable.common.engine.impl.identity.Authentication;
import org.flowable.engine.TaskService;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.engine.history.HistoricProcessInstance;
import org.flowable.engine.history.HistoricProcessInstanceQuery;
import org.flowable.engine.repository.ProcessDefinition;
import org.flowable.engine.runtime.ActivityInstance;
import org.flowable.engine.runtime.ProcessInstance;
......@@ -49,7 +50,9 @@ import org.flowable.engine.task.Attachment;
import org.flowable.engine.task.Comment;
import org.flowable.task.api.DelegationState;
import org.flowable.task.api.Task;
import org.flowable.task.api.TaskQuery;
import org.flowable.task.api.history.HistoricTaskInstance;
import org.flowable.task.api.history.HistoricTaskInstanceQuery;
import org.flowable.variable.api.history.HistoricVariableInstance;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
......@@ -245,12 +248,23 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
{
StartUser= sysUserService.getById(LoginContext.getContext().getLoginUser());
}
List<Task> tasks = taskService.createTaskQuery().taskAssignee(StartUser.getUserId().toString())
TaskQuery taskQuery = taskService.createTaskQuery().taskAssignee(StartUser.getUserId().toString())
.includeProcessVariables()
.orderByTaskCreateTime().desc()
.listPage((taskDTO.getPageNo() - 1) * taskDTO.getPageSize(), taskDTO.getPageSize());
long count = taskService.createTaskQuery().taskAssignee(StartUser.getUserId().toString()).count();
.orderByTaskCreateTime().desc();
//条件查询(流程名称,开始时间,结束时间)
if (ObjectUtil.isNotNull(taskDTO.getProcessDefinitionName()) && ! taskDTO.getProcessDefinitionName().trim().isEmpty()){
taskQuery = taskQuery.processDefinitionNameLike("%"+taskDTO.getProcessDefinitionName()+"%");
}
if (ObjectUtil.isNotNull(taskDTO.getStartTime())) {
taskQuery = taskQuery.taskCreatedAfter(taskDTO.getStartTime());
}
if (ObjectUtil.isNotNull(taskDTO.getEndTime())){
taskQuery =taskQuery.taskCreatedBefore(taskDTO.getEndTime());
}
List<Task> tasks = taskQuery.listPage((taskDTO.getPageNo() - 1) * taskDTO.getPageSize(), taskDTO.getPageSize());
//根据条件查询符合条件的数据并统计数量条数
long count = taskQuery.count();
// long count = taskService.createTaskQuery().taskAssignee(StartUser.getUserId().toString()).count();
List<TaskVO> taskVOS= new ArrayList<>();
Page<TaskVO> page =new Page<>();
for (Task task : tasks) {
......@@ -282,6 +296,9 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
page.setRecords(taskVOS);
page.setTotal(count);
page.setCurrent(taskDTO.getPageNo());
page.setSize(taskDTO.getPageSize());
return PageResultFactory.createPageResult(page);
}
......@@ -296,14 +313,27 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
{
StartUser= sysUserService.getById(LoginContext.getContext().getLoginUser());
}
List<HistoricTaskInstance> tasks = historyService.createHistoricTaskInstanceQuery()
HistoricTaskInstanceQuery historicTaskQuery = historyService.createHistoricTaskInstanceQuery()
.taskAssignee(StartUser.getUserId().toString())
.finished()
.includeProcessVariables()
.orderByTaskCreateTime().desc()
.listPage((taskDTO.getPageNo() - 1) * taskDTO.getPageSize(), taskDTO.getPageSize());
long count = historyService.createHistoricTaskInstanceQuery()
.taskAssignee(StartUser.getUserId().toString()).count();
.orderByTaskCreateTime().desc();
//根据条件查询(流程名称,开始时间,结束时间)
if (ObjectUtil.isNotNull(taskDTO.getProcessDefinitionName()) && ! taskDTO.getProcessDefinitionName().trim().isEmpty()){
historicTaskQuery = historicTaskQuery.processDefinitionNameLike("%"+taskDTO.getProcessDefinitionName()+"%");
}
if (ObjectUtil.isNotNull(taskDTO.getStartTime())) {
historicTaskQuery = historicTaskQuery.taskCreatedAfter(taskDTO.getStartTime());
}
if (ObjectUtil.isNotNull(taskDTO.getEndTime())){
historicTaskQuery =historicTaskQuery.taskCreatedBefore(taskDTO.getEndTime());
}
List<HistoricTaskInstance> tasks = historicTaskQuery.listPage((taskDTO.getPageNo() - 1) * taskDTO.getPageSize(), taskDTO.getPageSize());
long count = historicTaskQuery.count();
// long count = historyService.createHistoricTaskInstanceQuery()
// .taskAssignee(StartUser.getUserId().toString()).count();
List<TaskVO> taskVOS = new ArrayList<>();
Page<TaskVO> page = new Page<>();
for (HistoricTaskInstance task : tasks) {
......@@ -372,14 +402,32 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
StartUser= sysUserService.getById(LoginContext.getContext().getLoginUser());
}
PageResult<HistoryProcessInstanceVO> pageResult=new PageResult<HistoryProcessInstanceVO>();
List<HistoricProcessInstance> historicProcessInstances =
historyService.createHistoricProcessInstanceQuery()
.includeProcessVariables()
.startedBy(StartUser.getUserId().toString())
.orderByProcessInstanceStartTime().desc()
.listPage((applyDTO.getPageNo() - 1) * applyDTO.getPageSize(), applyDTO.getPageSize());
long count = historyService.createHistoricProcessInstanceQuery()
.startedBy(StartUser.getUserId().toString()).count();
HistoricProcessInstanceQuery desc = historyService.createHistoricProcessInstanceQuery()
.includeProcessVariables()
.startedBy(StartUser.getUserId().toString())
.orderByProcessInstanceStartTime().desc();
//根据条件查询(流程名称,开始时间,结束时间)
if (ObjectUtil.isNotNull(applyDTO.getProcessDefinitionName()) && ! applyDTO.getProcessDefinitionName().trim().isEmpty()){
List<ProcessDefinition> processDefinitions = repositoryService.createProcessDefinitionQuery()
.processDefinitionNameLike("%" + applyDTO.getProcessDefinitionName() + "%")
.list();
List<String> processDefinitionKeys = processDefinitions.stream()
.map(ProcessDefinition::getKey)
.collect(Collectors.toList());
desc.processDefinitionKeyIn(processDefinitionKeys);
}
if (ObjectUtil.isNotNull(applyDTO.getStartTime())) {
desc = desc.startedAfter(applyDTO.getStartTime());
}
if (ObjectUtil.isNotNull(applyDTO.getEndTime())){
desc =desc.startedBefore(applyDTO.getEndTime());
}
List<HistoricProcessInstance> historicProcessInstances = desc.listPage((applyDTO.getPageNo() - 1) * applyDTO.getPageSize(), applyDTO.getPageSize());
long count = desc.count();
// long count = historyService.createHistoricProcessInstanceQuery()
// .startedBy(StartUser.getUserId().toString()).count();
List<HistoryProcessInstanceVO> historyProcessInstanceVOS = new ArrayList<>();
Page<HistoryProcessInstanceVO> page = new Page<>();
for (HistoricProcessInstance historicProcessInstance : historicProcessInstances) {
......@@ -418,7 +466,8 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
historyProcessInstanceVOS.add(historyProcessInstanceVO);
}
pageResult.setRecords(historyProcessInstanceVOS);
pageResult.setTotalRows(Long.valueOf(applyDTO.getPageNo()));
// pageResult.setTotalRows(Long.valueOf(applyDTO.getPageNo()));
pageResult.setTotalRows(count);
pageResult.setTotalPage(PageUtil.totalPage((int) count, Convert.toInt(pageResult.getPageSize())));
pageResult.setPageSize(Long.valueOf(applyDTO.getPageSize()));
pageResult.setPageNo(Long.valueOf(applyDTO.getPageNo()));
......@@ -457,7 +506,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
TaskDetailVO taskDetailVO= new TaskDetailVO();
taskDetailVO.setTaskId(historicActivityInstance.getTaskId());
taskDetailVO.setActivityId(historicActivityInstance.getActivityId());
taskDetailVO.setName("流程开始");
taskDetailVO.setName("发起人");
taskDetailVO.setTaskStatusWrapper("发起");
// taskDetailVO.setUserId(JSONObject.parseObject(userStart, UserInfo.class).getUserId().toString());
// taskDetailVO.setUserName(JSONObject.parseObject(userStart, UserInfo.class).getRealName().toString());
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论