Commit 23a37d0d by 赵剑炜

Merge branch 'develop' of http://gitlab.sothing.top/843502640/jyzb_platformV2 into develop-zhaojw

parents b1d0d6ec 0967bf5b
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
/**
* 记账结束之后返回给本地主机的消息结果实体类
*/
@Data
public class MQReturnMsgDto {
private String api;
private String id;
private String orderType;
}
......@@ -83,7 +83,7 @@ public class OrderDto implements Serializable {
* 单据包含的物资集合
*/
private String invList;
private Integer actualQuantity;
/**
* 明细列表
......
......@@ -73,7 +73,7 @@ public class OrderMainDto implements Serializable {
*/
private Integer manualState;
private Integer actualQuantity;
/**
* 调拨类型(2支拨,1价拨),调拨出入库才有
......
......@@ -34,7 +34,7 @@ public class ReassignmentDto {
*/
private String orderCode;
/**
* 调岗警员id
* 警员id
*/
private String policeId;
......
......@@ -12,7 +12,7 @@ public class PurchaseEqsReq {
private String typeName;
private String sizeId;
private String sizeName;
private Date productionDate;
private String productionDate;
private Integer warranyPeriod;
private Integer maintenancePeriod;
//仓库id和仓库name
......
......@@ -67,7 +67,7 @@ public class UpdateOrderDetailReq implements Serializable {
/**
* 生产日期
*/
private Date productionDate;
private String productionDate;
/**
* 质保期
......
......@@ -173,6 +173,7 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
private String api;
//是否打印
private Integer isPrint;
private String isPrint;
}
......@@ -17,14 +17,14 @@ import javax.annotation.Resource;
@RestController
@Slf4j
@RequestMapping("/OrderCommon")
@Api(tags = "审核流单子拒绝模块")
@Api(tags = "业务通用模块")
public class OrderCommonController {
//单子拒绝之后,需要修改当前单子的审批状态,修改为已驳回
@Resource
private OrderCommonService orderCommonService;
@ApiOperation("审核不通过,修改单子状态")
@PostMapping("/changeOrderExamineState")
public ApiRes<Boolean> changeOrderExamineState(HandleDataDTO handleDataDTO){
public ApiRes<Boolean> changeOrderExamineState(@RequestBody HandleDataDTO handleDataDTO){
return ApiRes.success(orderCommonService.changeOrderExamineState(handleDataDTO));
}
......
......@@ -87,6 +87,8 @@ public class OrderController {
public ApiRes<Boolean> Accounting(@RequestBody @Validated(ValidationApi.delete.class) UpdateOrderReq req){
return ApiRes.success(orderMainService.Accounting(req));
}
//记账完成之后往消息队列推送消息表示该单子已经完成结算
@PostMapping("/ShowAccountingPage")
@ApiOperation("查看记账列表")
......
......@@ -32,12 +32,9 @@ import java.util.List;
@Api(tags = "出入库模块")
public class OutAndInboundController {
@Resource
public LogSummaryService logSummaryService;
@Resource
private LogDetailService logDetailService;
......
......@@ -114,19 +114,19 @@ public class Inventory implements Serializable {
/**
* 生产日期
*/
@TableField("production_date")
@TableField(value = "production_date",fill = FieldFill.INSERT_UPDATE)
private Date productionDate;
/**
* 质保期
*/
@TableField("warranty_period")
@TableField(value = "warranty_period", fill = FieldFill.INSERT_UPDATE)
private Integer warrantyPeriod;
/**
* 维保期
*/
@TableField("maintenance_period")
@TableField(value = "maintenance_period", fill = FieldFill.INSERT_UPDATE)
private Integer maintenancePeriod;
/**
......
......@@ -2,6 +2,7 @@ package com.junmp.jyzb.listener;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.map.MapUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
......@@ -51,6 +52,7 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.beans.Transient;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
......@@ -134,6 +136,10 @@ import static com.junmp.junmpProcess.common.CommonConstants.*;
List<UpdateOrderDetailReq> collect = list.stream().map(orderDetail -> {
UpdateOrderDetailReq updateOrderDetailReq = new UpdateOrderDetailReq();
BeanPlusUtil.copyProperties(orderDetail, updateOrderDetailReq);
if (ObjectUtil.isNotNull(orderDetail.getProductionDate())){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
updateOrderDetailReq.setProductionDate(format.format(orderDetail.getProductionDate()));
}
return updateOrderDetailReq;
}).collect(Collectors.toList());
updateOrderReq.setDetailList(collect);
......@@ -172,7 +178,7 @@ import static com.junmp.junmpProcess.common.CommonConstants.*;
sendReq.setReceiveUserIds(String.valueOf(user.getUserId()));
sendReq.setMsgTitle("您的审批已通过");
sendReq.setBizType("pass/"+Types);
sendReq.setBizId(Long.valueOf(processInstanceId));
sendReq.setMsgContent("您提交的审批【"+mainProcess.getName()+"】已经通过");
sendReq.setPriority("0");
sendReq.setSendTime(DateTime.now());
......
......@@ -48,7 +48,7 @@ public interface PolicemanMapper extends BaseMapper<Policeman> {
@Param("name") String name, @Param("policeCode")String policeCode,
@Param("state")Integer state,
@Param("phone")String phone,@Param("flag") String flag,
@Param("pageNo")long pageNo, @Param("pageSize") Long pageSize,
@Param("pageNo")Long pageNo, @Param("pageSize") Long pageSize,
@Param("column") String column,@Param("order") String order);
long count(@Param("orgId") Long orgId, @Param("account")String account,
......
......@@ -24,20 +24,14 @@ public class OutInLogsReceiver {
try {
System.out.println("msg = " + msg);
// 手动确认消息
channel.basicAck(deliveryTag, false);
OutInLogsReq req = JSON.parseObject(msg, OutInLogsReq.class);
//将消息进行消费
Boolean result = logSummaryService.processInventoryRecords(req);
if (result){
// 手动确认消息
channel.basicAck(deliveryTag, false);
}else {
channel.basicNack(deliveryTag, false, true);
}
// 手动确认消息
// channel.basicAck(deliveryTag, false);
} catch (Exception e) {
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列
// 处理消息过程中发生异常,拒绝消息并将其重新放回队列ms
try {
channel.basicNack(deliveryTag, false, true);
} catch (IOException ex) {
......
......@@ -100,24 +100,23 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
busForm1 = this.getById(req.getId());
}
if (busForm1==null) {
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId()))
{
req.setExamineState("none");
}
else
{
req.setExamineState("working");
}
}
else {
if (busForm1!=null) {
//判断该单据是否可以进行修改(如果审核中则不允许修改)\
if (ObjectUtil.isNotNull(busForm1.getExamineState()) && busForm1.getExamineState().equals("working")){
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
}
}
if (ObjectUtil.isEmpty(req.getProcessDefinitionId()))
{
req.setExamineState("none");
}
else
{
req.setExamineState("working");
}
BusForm busForm = new BusForm();
BeanUtil.copyProperties(req,busForm);
//设置业务单的使用次数(默认是出库一次,入库一次)
......@@ -175,6 +174,7 @@ public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> impl
break;
case "remove":
startProcessInstanceDTO.setStartOrgName(req.getOrgName());
startProcessInstanceDTO.setEndOrgName(req.getOrgName());
break;
}
//装备列表
......
......@@ -24,6 +24,8 @@ import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
......@@ -99,12 +101,15 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
one.setPrice(order.getPrice());
one.setActualQuantity(order.getActualQuantity());
one.setOrderState(one.getOrderState());
one.setOrderState("finished");
one.setUpdateTime(DateTimeUtil.getCurrentDateTime());
a=orderMainService.updateById(one);
List<OrderDetail> collect = orderDetailList.stream().map(detailOrderReq -> {
OrderDetail orderDetail = new OrderDetail();
BeanPlusUtil.copyProperties(detailOrderReq, orderDetail);
//记账数量默认时识别数量
orderDetail.setModifyQuantity(detailOrderReq.getActualNum());
orderDetail.setUpdateTime(DateTimeUtil.getCurrentDateTime());
return orderDetail;
}).collect(Collectors.toList());
b=orderDetailService.updateBatchById(collect);
......@@ -112,9 +117,26 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
//2.判断业务类型,如果是采购,更新装备库存表
if (order.getBussinessType().equals("purchase")){
List<PurchaseEqsReq> purchaseList = order.getPurchaseList();
List<Inventory> collect1 = purchaseList.stream().map(purchaseEqsReq -> {
List<Inventory> collect1=new ArrayList<>();
for (PurchaseEqsReq eqsReq:purchaseList) {
Inventory inventory = new Inventory();
BeanPlusUtil.copyProperties(purchaseEqsReq, inventory);
if (ObjectUtil.isNotNull(eqsReq.getProductionDate()) && !eqsReq.getProductionDate().trim().isEmpty()){
try {
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
inventory.setProductionDate(format.parse(eqsReq.getProductionDate()));
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
inventory.setEpc(eqsReq.getEpc());
inventory.setTypeId(eqsReq.getTypeId());
inventory.setSizeId(eqsReq.getSizeId());
inventory.setMaintenancePeriod(eqsReq.getMaintenancePeriod());
inventory.setWarrantyPeriod(eqsReq.getWarranyPeriod());
inventory.setLocationId(eqsReq.getLocationId());
inventory.setSupplierId(eqsReq.getSupplierId());
inventory.setPrice(eqsReq.getPrice());
// BeanPlusUtil.copyProperties(eqsReq, inventory);
inventory.setId(UUID.randomUUID().toString());
inventory.setCreateTime(DateTimeUtil.getCurrentDateTime());
inventory.setState("normal");
......@@ -122,8 +144,8 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
inventory.setBussinessState("normal");
inventory.setLocationType(0);
inventory.setOrgId(order.getOrgId());
return inventory;
}).collect(Collectors.toList());
collect1.add(inventory);
}
c=inventoryService.saveBatch(collect1);
}
......@@ -211,7 +233,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
if (inventoryList.size()>0){
LambdaUpdateWrapper<Inventory> updateStateWrapper = Wrappers.lambdaUpdate();
for (Inventory inventory:inventoryList) {
updateStateWrapper.or().eq(Inventory::getId,inventory.getId())
updateStateWrapper.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getLocationState,inventory.getLocationState())
.set(Inventory::getBussinessState,inventory.getBussinessState())
.set(Inventory::getState,inventory.getState());
......
......@@ -52,6 +52,8 @@ import javax.annotation.Resource;
import javax.management.remote.rmi._RMIConnection_Stub;
import javax.servlet.http.HttpServletResponse;
import java.math.BigDecimal;
import java.text.ParseException;
import java.text.SimpleDateFormat;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
......@@ -124,85 +126,28 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
@Override
public List<String> AddOrder(UpdateOrderReq req) {
//修改单据使用次数状态,判断数据库是否有该单据,如果有,那么就判断当前单号是否一致,如果不一致,修改单据使用次数
Long orgId;
OrderMain one=null;
if (ObjectUtil.isNotNull(req.getId())){
one = orderMainExist(req.getId());
if (ObjectUtil.isNotNull(req.getBussinessCode()) && ObjectUtil.isNotNull(one.getBussinessCode())) {
if (!one.getBussinessCode().equals(req.getBussinessCode())) {
if (req.getOrderType().equals("in")) {
orgId = req.getEndOrgId();
} else {
orgId = Long.parseLong(req.getStartOrgId());
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
busFormService.updateById(one1);
//库存
BusForm one2 = setState2(orgId, one.getBussinessCode());
busFormService.updateById(one2);
}
}
//入参不为空,库里为空
else if (ObjectUtil.isNotNull(req.getBussinessCode()) && ObjectUtil.isNull(one.getBussinessCode())){
//只需要改一条数据
if (req.getOrderType().equals("in")){
orgId=req.getEndOrgId();
}else {
orgId=Long.parseLong(req.getStartOrgId());
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
busFormService.updateById(one1);
}
//入参为空,库里不为空
else if (ObjectUtil.isNull(req.getBussinessCode()) && ObjectUtil.isNotNull(one.getBussinessCode())){
//只需要改一条数据
if (req.getOrderType().equals("in")){
orgId=req.getEndOrgId();
}else {
orgId=Long.parseLong(req.getStartOrgId());
}
//库存
BusForm one2 = setState2(orgId, one.getBussinessCode());
busFormService.updateById(one2);
}
}else {
if (ObjectUtil.isNotNull(req.getBussinessCode())){
//只需要更改一条单据
//只需要改一条数据
if (req.getOrderType().equals("in")){
orgId=req.getEndOrgId();
}else {
orgId=Long.parseLong(req.getStartOrgId());
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
busFormService.updateById(one1);
}
Long orgId=0L;
OrderMain one =null ;
//修改业务单可用次数
if (ObjectUtil.isNotNull(req.getBussinessCode())){
boolean b = setBusFormState(req, one, orgId);
}
if (one==null){
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId())) {
req.setExamineState("none");
} else {
req.setExamineState("working");
}
}else {
if (one!=null){
//判断该单据是否可以进行修改(如果审核中则不允许修改)
if (ObjectUtil.isNotNull(one.getExamineState()) && !one.getExamineState().trim().isEmpty()){
if (ObjectUtil.isNotNull(one.getExamineState()) && !one.getExamineState().equals("working")){
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
}
}
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId())) {
req.setExamineState("none");
} else {
req.setExamineState("working");
}
OrderMain order = new OrderMain();
BeanPlusUtil.copyProperties(req, order);
//先判断该单据id是否存在,如果存在,进行更新操作即可
......@@ -237,6 +182,15 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
sumNum += detail.getPlanNum();
priceTotal = priceTotal.add(BigDecimal.valueOf(detail.getPlanNum()).multiply(detail.getPrice())) ;
detail.setCreateTime(DateTimeUtil.getCurrentDateTime());
String productionDate = listReq.getProductionDate();
if (ObjectUtil.isNotNull(productionDate) && !productionDate.trim().isEmpty()){
SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd");
try {
detail.setCreateTime(format.parse(productionDate));
} catch (ParseException e) {
throw new RuntimeException(e);
}
}
detailList.add(detail);
}
orderDetailService.saveBatch(detailList);
......@@ -244,24 +198,70 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
order.setPrice(priceTotal);
order.setInventoryQuantity(sumNum);
order.setCreateTime(DateTimeUtil.getCurrentDateTime());
//执行工作流
String processInstanceId = null;
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
//业务单走审核流
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setUserId(req.getUserId());
if (!req.getBussinessType().equals("quick") && req.getExamineState().equals("working"))//其他出入库单
{
startProcessInstanceDTO.setOrderType("workOrder");
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}else if (req.getBussinessType().equals("quick") && req.getExamineState().equals("working")){//快速移库单
startProcessInstanceDTO.setOrderType("quickOrder");
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
if (req.getExamineState().equals("working")){
//执行工作流
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
//业务单走审核流
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setUserId(req.getUserId());
//装备列表
startProcessInstanceDTO.setInvList(req.getInvList());
startProcessInstanceDTO.setOutInState(req.getOrderType());
if (req.getOrderType().equals("in")){
//发物单位和收物单位
switch (req.getBussinessType()){
case "purchase":
case "gift":
case "repair":
case "other":
startProcessInstanceDTO.setStartOrgName(req.getSupplierName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "return":
startProcessInstanceDTO.setStartOrgName(req.getEndOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
case "allocate":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
}
}else {
//发物单位和收物单位
switch (req.getBussinessType()){
case "use":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getStartOrgName());
break;
case "return":
startProcessInstanceDTO.setStartOrgName(req.getEndOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "allocate":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getEndOrgName());
break;
case "repair":
case "destruction":
case "other":
startProcessInstanceDTO.setStartOrgName(req.getStartOrgName());
startProcessInstanceDTO.setEndOrgName(req.getSupplierName());
break;
}
}
if (!req.getBussinessType().equals("quick") && req.getExamineState().equals("working"))//其他出入库单
{
startProcessInstanceDTO.setOrderType("workOrder");
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}else if (req.getBussinessType().equals("quick") && req.getExamineState().equals("working")){//快速移库单
startProcessInstanceDTO.setOrderType("quickOrder");
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}
}
}
//list返回数据
List<String> list=new ArrayList<>();
//当前审核是否跳过
......@@ -291,10 +291,79 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
list.add(Long.toString(orderDetail.getId()));
}
return list;
}
//修改业务单据可用次数
private boolean setBusFormState(UpdateOrderReq req,OrderMain one,Long orgId){
boolean a=true;
boolean b=true;
if (ObjectUtil.isNotNull(req.getId())){
one = orderMainExist(req.getId());
if (ObjectUtil.isNotNull(req.getBussinessCode()) && ObjectUtil.isNotNull(one.getBussinessCode())) {
if (!one.getBussinessCode().equals(req.getBussinessCode())) {
if (req.getOrderType().equals("in")) {
orgId = req.getEndOrgId();
} else {
orgId = Long.parseLong(req.getStartOrgId());
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
//库存
BusForm one2 = setState2(orgId, one.getBussinessCode());
b=busFormService.updateById(one2);
}
}
//入参不为空,库里为空
else if (ObjectUtil.isNotNull(req.getBussinessCode()) && ObjectUtil.isNull(one.getBussinessCode())){
//只需要改一条数据
if (req.getOrderType().equals("in")){
orgId=req.getEndOrgId();
}else {
orgId=Long.parseLong(req.getStartOrgId());
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
}
//入参为空,库里不为空
else if (ObjectUtil.isNull(req.getBussinessCode()) && ObjectUtil.isNotNull(one.getBussinessCode())){
//只需要改一条数据
if (req.getOrderType().equals("in")){
orgId=req.getEndOrgId();
}else {
orgId=Long.parseLong(req.getStartOrgId());
}
//库存
BusForm one2 = setState2(orgId, one.getBussinessCode());
b=busFormService.updateById(one2);
}
return a && b;
}else {
if (ObjectUtil.isNotNull(req.getBussinessCode())){
//只需要更改一条单据
//只需要改一条数据
if (req.getOrderType().equals("in")){
orgId=req.getEndOrgId();
}else {
orgId=Long.parseLong(req.getStartOrgId());
}
//入参
BusForm one1 = setState1(orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
}
return a;
}
}
private BusForm setState2(Long orgId,String bussinessCode){
BusForm busform = busFormService.getOne(new LambdaQueryWrapper<BusForm>()
.eq(BusForm::getOrgId, orgId)
......@@ -413,7 +482,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//方法2:一个交换机,多个队列。动态创建队列
String exchangeName="orderExchange";
//需要判断是入库单还是出库单,入库单传收物单位id,出库单传发物单位id
if(req.getOrderType().equals("in")){
MQ.SendMsg(exchangeName,req.getEndOrgId().toString(),req);
}else {
MQ.SendMsg(exchangeName,req.getStartOrgId().toString(),req);
......@@ -670,6 +741,18 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
if (req.getBussinessType().equals("quick")){
f = addQuickOrder(orderMain);
}
//记账结束之后往消息队列中推送一条消息
String exchangeName="orderExchange";
MQReturnMsgDto mqReturnMsgDto = new MQReturnMsgDto();
mqReturnMsgDto.setApi("settlementOrder");
mqReturnMsgDto.setId(req.getId());
mqReturnMsgDto.setOrderType(req.getOrderType());
//需要判断是入库单还是出库单,入库单传收物单位id,出库单传发物单位id
if(req.getOrderType().equals("in")){
MQ.SendMsg(exchangeName,req.getEndOrgId().toString(),mqReturnMsgDto);
}else {
MQ.SendMsg(exchangeName,req.getStartOrgId().toString(),mqReturnMsgDto);
}
//更新主单据
return (a && b && c && d && e && f );
}
......@@ -756,6 +839,12 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//表示库存中没有,那么插入数据
if (!flag){
InventorySummary inventorySummary = new InventorySummary();
inventorySummary.setSizeId(upReq.getSizeId());
inventorySummary.setSizeName(upReq.getSizeName());
inventorySummary.setTypeName(upReq.getTypeName());
inventorySummary.setTypeId(upReq.getTypeId());
inventorySummary.setLocationName(upReq.getWarehouseName());
inventorySummary.setLocationId(upReq.getWarehouseName());
inventorySummary.setUnitPrice(upReq.getPrice());
inventorySummary.setPrice(BigDecimal.valueOf(upReq.getModifyQuantity()).multiply(upReq.getPrice()));
inventorySummary.setBrokenNumber(0);
......@@ -781,6 +870,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
boolean b = inventorySummaryService.updateBatchById(updateList);
a = a && b;
}
System.out.println("addList.get(0) = " + addList.get(0));
return a;
}
......
......@@ -350,7 +350,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
Policeman one = PoliceExist(req.getId());
IStoredEncryptApi storedEncryptApi = (IStoredEncryptApi) SpringUtil.getBean(IStoredEncryptApi.class);
//如果不为空则表示修改警员密码
if (ObjectUtil.isNotEmpty(req.getPassword()) || !req.getPassword().trim().isEmpty()) {
if (req.getPassword()!=null && !req.getPassword().trim().isEmpty()) {
String newPassword = storedEncryptApi.encrypt(req.getPassword());
req.setPassword(newPassword);
//修改警员密码的同时修改账号表中的密码
......@@ -493,9 +493,11 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
req.setPageSize(10L);
}
long size=policemanMapper.count(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),req.getState(),req.getPhone(),req.getFlag());
System.out.println("req = " + (req.getPageNo()-1));
System.out.println("req = " + req.getPageSize());
List<PolicemanDto> policemanDtos = policemanMapper.selectUserBypoliceIds
(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),
req.getState(),req.getPhone(),req.getFlag(),(req.getPageNo()-1),req.getPageSize(),req.getColumn(),req.getOrder());
req.getState(),req.getPhone(),req.getFlag(),(req.getPageNo()-1)*req.getPageSize(),req.getPageSize(),req.getColumn(),req.getOrder());
//判断是否需要添加空数据
if(req.getIsCreateNullDate()==null || req.getIsCreateNullDate()){
Class<PolicemanDto> policemanDto = PolicemanDto.class;
......@@ -630,12 +632,14 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
.eq(OrderLog::getOrgId, req.getOrgId())
.eq(OrderLog::getOrderType, policeman.getName() + policeman.getPoliceCode())
.orderByDesc(OrderLog::getCreateTime));
List<PoliceEquipment> policeEqsList = policeEquipmentService.list(new LambdaQueryWrapper<PoliceEquipment>()
.eq(PoliceEquipment::getPoliceId, policeman.getId()));
String locationId = policeEqsList.get(0).getLocationId();
List<PoliceEquipment> policeEqsList=new ArrayList<>();
String locationId="";
OrderLog orderLog=new OrderLog();
if (list.size()>0){
orderLog= list.get(0);
policeEqsList= policeEquipmentService.list(new LambdaQueryWrapper<PoliceEquipment>()
.eq(PoliceEquipment::getPoliceId, policeman.getId()));
locationId = policeEqsList.get(0).getLocationId();
}
List<Object[]> searchItem=new ArrayList<>();
//判断调岗警员是否已经绑定了箱门
......@@ -669,7 +673,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
//调岗警员绑定第一个单警柜以后,不管之后他是否还有单警柜,我都默认是不绑了。
// 判断他下面是否有箱门,如果有则表示他已经帮过单警柜并且调岗携带的装备都已经记录过,那么将不再被记录
if (boxReq.getContainType()==1 && ObjectUtil.isNotNull(orderLog) && list1.size()==0 && !flag && ObjectUtil.isNotNull(locationId)){
if (boxReq.getContainType()==1 && ObjectUtil.isNotNull(orderLog) && list1.size()==0 && !flag && !locationId.trim().isEmpty()){
flag=true;
cabinet = cabinetService.getById(boxReq.getCabinetId());
for (PoliceEquipment equipment:policeEqsList) {
......@@ -1029,19 +1033,19 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
if (ObjectUtil.isNotNull(req.getId()) && !req.getId().trim().isEmpty()){
reassignment1 = reassignmentService.getById(req.getId());
}
if (reassignment1==null){
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId())) {
req.setExamineState("none");
} else {
req.setExamineState("working");
}
}else {
if (reassignment1!=null){
//判断该单据是否可以进行修改(如果审核中则不允许修改)\
if (ObjectUtil.isNotNull(reassignment1.getExamineState()) && reassignment1.getExamineState().equals("working")){
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
}
}
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId())) {
req.setExamineState("none");
} else {
req.setExamineState("working");
}
Reassignment reassignment = new Reassignment();
BeanPlusUtil.copyProperties(req,reassignment);
......@@ -1183,6 +1187,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
boolean a=true;
boolean flag=false;
Policeman one = getById(req.getId());
if (one.getFaceInfo()!=null && !one.getFaceInfo().isEmpty()){
flag=true;
if(req.getFaceInfoList().size()>0 && !req.getFaceInfoList().get(0).equals(one.getFaceInfo())){
......
......@@ -18,6 +18,7 @@ public class RabbitMQSendMsg {
private RabbitAdmin rabbitAdmin;
public void SendMsg(String exchangeName,String name,Object msg)
{
//exchangeName交换机名称,name组织机构名称,msg发送的消息
Queue queue=new Queue(name,true,false,false);
Exchange exchange = new DirectExchange(exchangeName, true, false);
rabbitAdmin.declareQueue(queue);
......
......@@ -280,9 +280,7 @@ WHERE o.org_id IN
<if test="column != null and column != '' and order != null and order != '' ">
order by ${column} ${order}
</if>
<if test="pageNo!=null and pageNo!='' and pageSize!=null and pageSize!=''">
limit #{pageNo},#{pageSize}
</if>
limit #{pageNo},#{pageSize}
</select>
......
......@@ -20,6 +20,7 @@ public interface CommonConstants {
String INVLIST="invList";//装备列表拼接
String BUSSINESS_TYPE="bussinessType"; //单据业务类型
String OUT_IN_STATE="outInState";//出入库单据状态(出库还是入库)
String PROCESS_ID="processId";
String BUSINESS_STATUS_1="正在处理"; //正在处理
......
......@@ -31,5 +31,6 @@ public class ApplyDTO extends PageDTO {
//是否创建空数据,true则创建,false则不创建
private Boolean isCreateNullDate;
private String processId;
}
......@@ -33,4 +33,6 @@ public class TaskDTO extends PageDTO {
//是否创建空数据,true则创建,false则不创建
private Boolean isCreateNullDate;
private String processId;
}
......@@ -180,11 +180,13 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
.variables(processVariables != null ? processVariables : Collections.emptyMap())
.businessStatus(BUSINESS_STATUS_1)
.start();
processVariables.put(PROCESS_ID,processInstance.getProcessInstanceId());
// 从流程执行上下文中获取流程变量
Object skip = runtimeService.getVariable(processInstance.getId(), "skip");
if (ObjectUtils.isNotEmpty(skip) && BooleanUtils.toBoolean(skip.toString())){
return "skip"+processInstance.getId();
return "skip"+processInstance.getProcessInstanceId();
}
else{
......@@ -194,6 +196,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
}
// } catch (Exception e) {
// String fullErrorMessage = getFullErrorMessage(e);
// // 处理在启动流程实例时发生的异常
......
......@@ -194,55 +194,57 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
String comments = handleDataDTO.getComments();
JSONObject formData = handleDataDTO.getFormData();
String taskId = handleDataDTO.getTaskId();
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
Map<String, Object> map = new HashMap<>();
if (formData != null && formData.size() > 0) {
Map formValue = JSONObject.parseObject(formData.toJSONString(), new TypeReference<Map>() {
});
map.putAll(formValue);
map.put(FORM_VAR, formData);
}
map.put(PROCESS_STATUS, BUSINESS_STATUS_3);
taskService.setVariableLocal(taskId,"taskStatusWrapper", TASK_STATUS_2);//设置节点中的当前操作
runtimeService.setVariables(task.getProcessInstanceId(), map);
if (StringUtils.isNotBlank(comments)) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "opinion", comments);
}
if (attachments != null && attachments.size() > 0) {
for (AttachmentDTO attachment : attachments) {
taskService.createAttachment("option", taskId, task.getProcessInstanceId(), attachment.getName(), attachment.getName(), attachment.getUrl());
if (ObjectUtil.isNotNull(taskId) && !taskId.trim().isEmpty()){
Task task = taskService.createTaskQuery().taskId(taskId).singleResult();
Map<String, Object> map = new HashMap<>();
if (formData != null && formData.size() > 0) {
Map formValue = JSONObject.parseObject(formData.toJSONString(), new TypeReference<Map>() {
});
map.putAll(formValue);
map.put(FORM_VAR, formData);
}
map.put(PROCESS_STATUS, BUSINESS_STATUS_3);
taskService.setVariableLocal(taskId,"taskStatusWrapper", TASK_STATUS_2);//设置节点中的当前操作
runtimeService.setVariables(task.getProcessInstanceId(), map);
if (StringUtils.isNotBlank(comments)) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "opinion", comments);
}
if (attachments != null && attachments.size() > 0) {
for (AttachmentDTO attachment : attachments) {
taskService.createAttachment("option", taskId, task.getProcessInstanceId(), attachment.getName(), attachment.getName(), attachment.getUrl());
}
}
}
if (StringUtils.isNotBlank(handleDataDTO.getSignInfo())) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo());
}
//消息推送
MessageSendReq sendReq = new MessageSendReq();
Process mainProcess = repositoryService.getBpmnModel(task.getProcessDefinitionId()).getMainProcess();
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().includeProcessVariables().processInstanceId(task.getProcessInstanceId()).singleResult();
String startUser= MapUtil.getStr(processInstance.getProcessVariables(),START_USER_INFO);
UserInfo user= JSONObject.parseObject(startUser, UserInfo.class);
String Types= MapUtil.getStr(processInstance.getProcessVariables(),ORDER_TYPE);
sendReq.setReceiveUserIds(String.valueOf(user.getUserId()));
sendReq.setBizId(Long.valueOf(processInstance.getProcessInstanceId()));
sendReq.setMsgTitle("您的审批被驳回");
sendReq.setBizType("refuse/"+Types);
sendReq.setMsgContent("您提交的审批【"+mainProcess.getName()+"】被驳回");
sendReq.setPriority("0");
sendReq.setSendTime(DateTime.now());
messageApi.sendMessage(sendReq);
messageApi.queryCount(new MessageReq());
/*推送发送未读数量*/
MessageReq req1 = new MessageReq();
req1.setReadFlag(0);
req1.setReceiveUserId(user.getUserId());
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(startUser,count1);
if (StringUtils.isNotBlank(handleDataDTO.getSignInfo())) {
taskService.addComment(task.getId(), task.getProcessInstanceId(), "sign", handleDataDTO.getSignInfo());
}
runtimeService.deleteProcessInstance(task.getProcessInstanceId(), "拒绝");
//消息推送
MessageSendReq sendReq = new MessageSendReq();
Process mainProcess = repositoryService.getBpmnModel(task.getProcessDefinitionId()).getMainProcess();
ProcessInstance processInstance = runtimeService.createProcessInstanceQuery().includeProcessVariables().processInstanceId(task.getProcessInstanceId()).singleResult();
String startUser= MapUtil.getStr(processInstance.getProcessVariables(),START_USER_INFO);
UserInfo user= JSONObject.parseObject(startUser, UserInfo.class);
String Types= MapUtil.getStr(processInstance.getProcessVariables(),ORDER_TYPE);
sendReq.setReceiveUserIds(String.valueOf(user.getUserId()));
sendReq.setBizId(Long.valueOf(processInstance.getProcessInstanceId()));
sendReq.setMsgTitle("您的审批被驳回");
sendReq.setBizType("refuse/"+Types);
sendReq.setBizId(Long.valueOf(task.getProcessInstanceId()));
sendReq.setMsgContent("您提交的审批【"+mainProcess.getName()+"】被驳回");
sendReq.setPriority("0");
sendReq.setSendTime(DateTime.now());
messageApi.sendMessage(sendReq);
messageApi.queryCount(new MessageReq());
/*推送发送未读数量*/
MessageReq req1 = new MessageReq();
req1.setReadFlag(0);
req1.setReceiveUserId(user.getUserId());
Integer count1 = messageApi.queryCount(req1);
messageApi.pushMsgToUser(startUser,count1);
}else {
runtimeService.deleteProcessInstance(taskId, "拒绝");
}
return new ResponseResult(HttpStatus.SUCCESS, ReturnMsg.PASS,ReturnMsg.PASS);
......@@ -322,6 +324,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (ObjectUtil.isNotNull(taskDTO.getEndOrgName()) && ! taskDTO.getEndOrgName().trim().isEmpty()){
taskQuery = taskQuery.processVariableValueLike(END_ORG_NAME,"%"+taskDTO.getEndOrgName()+"%");
}
//流程id
if (ObjectUtil.isNotNull(taskDTO.getProcessId()) && ! taskDTO.getProcessId().trim().isEmpty()){
taskQuery=taskQuery.processVariableValueEquals(PROCESS_ID,taskDTO.getProcessId());
}
//流程状态
if (ObjectUtil.isNotNull(taskDTO.getBusinessStatus()) && taskDTO.getBusinessStatus().equals("正在处理")){
taskQuery=taskQuery.processVariableValueEquals(PROCESS_STATUS,taskDTO.getBusinessStatus());
......@@ -332,6 +338,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}else if (ObjectUtil.isNotNull(taskDTO.getBusinessStatus()) && taskDTO.getBusinessStatus().equals("已结束")){
taskQuery=taskQuery.processVariableValueEquals(PROCESS_STATUS,taskDTO.getBusinessStatus());
}
// taskQuery.
List<Task> tasks = taskQuery.listPage((taskDTO.getPageNo() - 1) * taskDTO.getPageSize(), taskDTO.getPageSize());
//根据条件查询符合条件的数据并统计数量条数
......@@ -357,7 +364,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskVO.setOrderType(MapUtil.getStr(processVariables, ORDER_TYPE));
taskVO.setStartTime(processInstance.getStartTime());
taskVO.setCurrentActivityName(getCurrentName(processInstance.getId(),false,processInstance.getProcessDefinitionId()));
taskVO.setProcessId(MapUtil.getStr(processVariables,PROCESS_ID));
taskVO.setBusinessStatus(MapUtil.getStr(processVariables,PROCESS_STATUS));
taskVO.setStartOrgName(MapUtil.getStr(processVariables,START_ORG_NAME));
......@@ -439,6 +446,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (ObjectUtil.isNotNull(taskDTO.getEndOrgName()) && ! taskDTO.getEndOrgName().trim().isEmpty()){
historicTaskQuery = historicTaskQuery.processVariableValueLike(END_ORG_NAME,"%"+taskDTO.getEndOrgName()+"%");
}
//流程id
if (ObjectUtil.isNotNull(taskDTO.getProcessId()) && ! taskDTO.getProcessId().trim().isEmpty()){
historicTaskQuery=historicTaskQuery.processVariableValueEquals(PROCESS_ID,taskDTO.getProcessId());
}
//流程状态
if (ObjectUtil.isNotNull(taskDTO.getBusinessStatus()) && taskDTO.getBusinessStatus().equals("正在处理")){
historicTaskQuery=historicTaskQuery.processVariableValueEquals(PROCESS_STATUS,taskDTO.getBusinessStatus());
......@@ -488,13 +499,12 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskVO.setCurrentActivityName(getCurrentName(task.getProcessInstanceId(), flag, task.getProcessDefinitionId()));
taskVO.setBusinessStatus(MapUtil.getStr(processVariables, PROCESS_STATUS));
taskVO.setEndTime(task.getEndTime());
taskVO.setStartOrgName(MapUtil.getStr(processVariables,START_ORG_NAME));
taskVO.setEndOrgName(MapUtil.getStr(processVariables,END_ORG_NAME));
taskVO.setInvList(MapUtil.getStr(processVariables,INVLIST));
taskVO.setBusinessType(MapUtil.getStr(processVariables,BUSSINESS_TYPE));
taskVO.setOutInState(MapUtil.getStr(processVariables,OUT_IN_STATE));
taskVO.setProcessId(MapUtil.getStr(processVariables,PROCESS_ID));
long totalTimes = task.getEndTime() == null ?
(Calendar.getInstance().getTimeInMillis() - task.getStartTime().getTime()) :
(task.getEndTime().getTime() - task.getStartTime().getTime());
......@@ -583,6 +593,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
if (ObjectUtil.isNotNull(applyDTO.getEndOrgName()) && ! applyDTO.getEndOrgName().trim().isEmpty()){
desc = desc.variableValueLike(END_ORG_NAME,"%"+applyDTO.getEndOrgName()+"%");
}
//流程id
if (ObjectUtil.isNotNull(applyDTO.getProcessId()) && ! applyDTO.getProcessId().trim().isEmpty()){
desc=desc.variableValueEquals(PROCESS_ID,applyDTO.getProcessId());
}
//流程状态
if (ObjectUtil.isNotNull(applyDTO.getBusinessStatus()) && applyDTO.getBusinessStatus().equals("正在处理")){
desc=desc.variableValueEquals(PROCESS_STATUS,applyDTO.getBusinessStatus());
......@@ -625,6 +639,7 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
historyProcessInstanceVO.setStartOrgName(MapUtil.getStr(processVariables,START_ORG_NAME));
historyProcessInstanceVO.setEndOrgName(MapUtil.getStr(processVariables,END_ORG_NAME));
historyProcessInstanceVO.setInvList(MapUtil.getStr(processVariables,INVLIST));
historyProcessInstanceVO.setProcessId(MapUtil.getStr(processVariables,PROCESS_ID));
historyProcessInstanceVO.setBussinessType(MapUtil.getStr(processVariables,BUSSINESS_TYPE));
historyProcessInstanceVO.setOutInState(MapUtil.getStr(processVariables,OUT_IN_STATE));
//表单内容
......@@ -718,7 +733,6 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskDetailVO.setCreateTime(historicActivityInstance.getStartTime());
taskDetailVO.setEndTime(historicActivityInstance.getEndTime());
taskDetailVOS.add(taskDetailVO);
}
else if("userTask".equals(historicActivityInstance.getActivityType())){
......
......@@ -48,4 +48,6 @@ public class HistoryProcessInstanceVO {
private String outInState;
@ApiModelProperty("单据内容")
private String formData;
@ApiModelProperty("流程id")
private String processId;
}
......@@ -51,5 +51,7 @@ public class TaskVO {
private String businessType;
@ApiModelProperty("出入库状态")
private String outInState;
@ApiModelProperty("流程id")
private String processId;
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论