Commit 19fc45c7 by 李小惠

新增单据从创建到记账的过程log业务接口

parent 9540231b
package com.junmp.jyzb.api.bean.dto;
import lombok.Data;
import java.util.Date;
@Data
public class OrderLogDto {
/**
* 主键
*/
private String id;
/**
* 单据类型(in入库单,out出库单)
*/
private String orderType;
/**
* 单据业务类型
*/
private String bussinessType;
/**
* 单据id(对应order_main)
*/
private String orderId;
/**
* 操作记录(upload上传消息)
*/
private String historyMsg;
/**
* 组织机构id
*/
private Long orgId;
/**
* 组织机构名称
*/
private String orgName;
/**
* 单据单号
*/
private String orderCode;
/**
* 应入/出库数量
*/
private Integer inventoryQuantity;
/**
* 实际数量
*/
private Integer actualQuantity;
/**
* 修改后数量
*/
private Integer updateQuantity;
/**
* 创建时间
*/
private Date createTime;
/**
* 更新时间
*/
private Date updateTime;
/**
* 创建人员
*/
private String createUser;
/**
* 修改人员
*/
private String updateUser;
/**
* 过程事件(创建单据createOrder,出入库OutAndIn,记账accounting)
*/
private String processType;
}
package com.junmp.jyzb.controller;
import com.junmp.jyzb.api.bean.dto.LogDetailDto;
import com.junmp.jyzb.api.bean.dto.OrderLogDto;
import com.junmp.jyzb.api.bean.query.InAndOutRecordReq.OutInLogsReq;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.api.bean.query.LogDetailReq;
......@@ -11,6 +12,7 @@ import com.junmp.jyzb.entity.LogSummary;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.service.LogDetailService;
import com.junmp.jyzb.service.LogSummaryService;
import com.junmp.jyzb.service.OrderLogService;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
......@@ -38,6 +40,9 @@ public class OutAndInboundController {
@Resource
private LogDetailService logDetailService;
@Resource
private OrderLogService orderLogService;
@ApiOperation("/查看出入库详情")
@PostMapping("/GetDetailByLogSumId")
public ApiRes<List<LogDetailDto>> GetDetailByLogSumId(@RequestBody @Validated(ValidationApi.detail.class) LogDetailReq req){
......@@ -70,5 +75,11 @@ public class OutAndInboundController {
// public ApiRes<Boolean> OutInRecords(@RequestBody OutInLogsReq req){
// return ApiRes.success(logSummaryService.processInventoryRecords(req));
// }
@PostMapping("/ShowRecordsByOrderId")
@ApiOperation("出入库以及记账过程")
public ApiRes<List<OrderLogDto>> ShowRecordsByOrderId(@RequestBody @Validated(ValidationApi.page.class) LogSummaryReq req){
return ApiRes.success(orderLogService.ShowRecordsByOrderId(req));
}
}
......@@ -103,6 +103,12 @@ public class OrderLog implements Serializable {
@TableField(value = "update_user")
private String updateUser;
/**
* 过程事件(创建单据createOrder,出入库OutAndIn,记账accounting)
*/
@TableField(value = "process_type")
private String processType;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.dto.OrderLogDto;
import com.junmp.jyzb.api.bean.query.LogSummaryReq;
import com.junmp.jyzb.entity.OrderLog;
import com.baomidou.mybatisplus.extension.service.IService;
import java.util.List;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_order_log】的数据库操作Service
......@@ -10,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface OrderLogService extends IService<OrderLog> {
List<OrderLogDto> ShowRecordsByOrderId(LogSummaryReq req);
}
......@@ -420,19 +420,19 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
//位置信息
wrapper.like(ObjectUtil.isNotEmpty(req.getLocationName()), InventorySummary::getLocationName, req.getLocationName());
//装备类别名称
wrapper.like(ObjectUtil.isNotEmpty(req.getTypeName()), InventorySummary::getTypeName, req.getTypeName());
// wrapper.like(ObjectUtil.isNotEmpty(req.getTypeName()), InventorySummary::getTypeName, req.getTypeName());
//根据类别
if (req.typeIds.size()>0) {
if (ObjectUtil.isNotEmpty(req.typeIds) && req.typeIds.size()>0) {
wrapper.and(qw -> req.typeIds.forEach(typeId -> qw.or().eq(InventorySummary::getTypeId, typeId)));
}
//根据类别
if (req.getSizeNames().size()>0) {
if (ObjectUtil.isNotEmpty(req.getSizeNames()) && req.getSizeNames().size()>0) {
wrapper.and(qw -> req.getSizeNames().forEach(sizeName -> qw.or().eq(InventorySummary::getSizeName, sizeName)));
}
//型号名称
wrapper.like(ObjectUtil.isNotEmpty(req.getSizeName()), InventorySummary::getSizeName, req.getSizeName());
// wrapper.like(ObjectUtil.isNotEmpty(req.getSizeName()), InventorySummary::getSizeName, req.getSizeName());
//号型
wrapper.eq(ObjectUtil.isNotEmpty(req.getSizeId()), InventorySummary::getSizeId, req.getSizeId());
// wrapper.eq(ObjectUtil.isNotEmpty(req.getSizeId()), InventorySummary::getSizeId, req.getSizeId());
if (ObjectUtil.isNotEmpty(req.getColumn()))
{
wrapper.last("order by " + req.getColumn() + " " + req.getOrder());
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSON;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
......@@ -59,6 +60,9 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
@Resource
private InventorySummaryMapper inventorySummaryMapper;
@Resource
private OrderLogService orderLogService;
//根据条件查询出入库记录
@Override
public PageResult<LogSummary> ShowInOutRecordsByItems(LogSummaryReq req) {
......@@ -178,16 +182,13 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
List<NormalInOutDto> returnList=new ArrayList<>();
//存一个list用于修改库存inventory表的数据(采购时那么这个inventoryList就为空)
List<Inventory> inventoryList=new ArrayList<>();
List<OrderLog> orderLogList=new ArrayList<>();
for (SummaryLogReq logreq:logSummaryList) {
//如果类型为normal,那么则表示作为日常出入库的记录,否则则作为单据的出入库记录
List<DetailLogReq> logList = logreq.getLogDetailList();
//出入库list
List<LogDetail> collect = new ArrayList<>();
LogSummary logSummary = saveLogSummary(logreq);
//设置logsummary的id
// UUID uuid = UUID.randomUUID();
// long uuidAsLong = uuid.getMostSignificantBits() ^ uuid.getLeastSignificantBits();
// logSummary.setId(uuidAsLong);
logSummaryService.save(logSummary);
Map<String, String> map = setState(logreq.getOutInState(), logreq.getBussinessType());
//无单据的时候
......@@ -210,10 +211,11 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
if (logreq.getOutInState().equals("in")){
Inventory inventory = saveInventory(detailLogReq, map, logSummary.getOutInState());
inventoryList.add(inventory);
}else {
Inventory inventory = saveInventory(detailLogReq, map, logSummary.getOutInState());
inventoryList.add(inventory);
}
// else {
// Inventory inventory = saveInventory(detailLogReq, map, logSummary.getOutInState());
// inventoryList.add(inventory);
// }
}
//存放logdetail信息
......@@ -227,7 +229,14 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
}
boolean b = logDetailService.saveBatch(collect);
if (ObjectUtil.isNotNull(logSummary.getOrderMainId())){
OrderLog orderLog = addLog(logSummary);
orderLogList.add(orderLog);
}
}
//判断是否有orderId的单子出入库,如果有则直接添加
if (orderLogList.size()>0){
boolean b = orderLogService.saveBatch(orderLogList);
}
//修改inventory表中的数据(如果不为空则表示不是采购单或者已经将采购单的信息过滤掉)
if (inventoryList.size()>0){
......@@ -243,6 +252,21 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
return returnList;
}
private OrderLog addLog(LogSummary logSummary){
OrderLog orderLog = new OrderLog();
orderLog.setId(UUID.randomUUID().toString());
orderLog.setHistoryMsg(JSON.toJSONString(logSummary));
orderLog.setOrderCode(logSummary.getOrderCode());
orderLog.setBussinessType(logSummary.getBussinessType());
orderLog.setOrderType(logSummary.getOutInState());
orderLog.setProcessType("OutAndIn");
orderLog.setOrgId(logSummary.getOrgId());
orderLog.setOrgName(logSummary.getOrgName());
orderLog.setOrderId(logSummary.getOrderMainId());
orderLog.setCreateTime(DateTimeUtil.getCurrentDateTime());
return orderLog;
}
// 创建logsummary
private LogSummary saveLogSummary(SummaryLogReq req){
LogSummary logSummary = new LogSummary();
......
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.OrderLogDto;
import com.junmp.jyzb.api.bean.query.LogSummaryReq;
import com.junmp.jyzb.entity.OrderLog;
import com.junmp.jyzb.service.OrderLogService;
import com.junmp.jyzb.mapper.OrderLogMapper;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import javax.xml.ws.RequestWrapper;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author lxh专属坐骑
* @description 针对表【bussiness_order_log】的数据库操作Service实现
......@@ -15,6 +24,25 @@ import org.springframework.stereotype.Service;
public class OrderLogServiceImpl extends ServiceImpl<OrderLogMapper, OrderLog>
implements OrderLogService{
/**
* 展示单子从创建到记账全过程
* @param req
* @return
*/
@Override
public List<OrderLogDto> ShowRecordsByOrderId(LogSummaryReq req) {
List<OrderLog> list = list(new LambdaQueryWrapper<OrderLog>()
.eq(OrderLog::getOrderId, req.getOrderMainId())
.orderByAsc(OrderLog::getCreateTime));
List<OrderLogDto> collect = list.stream().map(orderLog -> {
OrderLogDto orderLogDto = new OrderLogDto();
BeanPlusUtil.copyProperties(orderLog, orderLogDto);
return orderLogDto;
}).collect(Collectors.toList());
return collect;
}
}
......
......@@ -114,6 +114,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
@Resource
protected TaskService taskService;
@Resource
......@@ -130,7 +131,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
OrderMain one =null ;
//修改业务单可用次数
if (ObjectUtil.isNotNull(req.getBussinessCode())){
boolean b = setBusFormState(req, one, orgId);
one = setBusFormState(req, one, orgId);
}
if (one!=null){
......@@ -147,7 +148,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
req.setExamineState("working");
}
OrderMain order = new OrderMain();
BeanPlusUtil.copyProperties(req, order);
//先判断该单据id是否存在,如果存在,进行更新操作即可
......@@ -254,6 +254,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
{
startProcessInstanceDTO.setOrderType("workOrder");
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}else if (req.getBussinessType().equals("quick") && req.getExamineState().equals("working")){//快速移库单
startProcessInstanceDTO.setOrderType("quickOrder");
......@@ -290,12 +292,45 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
for (OrderDetail orderDetail:detailList) {
list.add(Long.toString(orderDetail.getId()));
}
//判断orderId在orderLog表中是否存在,如果存在,则直接替换
boolean b = addOrderLog(req);
return list;
}
//纪录日志
private boolean addOrderLog(UpdateOrderReq req){
//判断日志中是否存在,如果存在直接替换
OrderLog createOrder = orderLogService.getOne(new LambdaQueryWrapper<OrderLog>()
.eq(OrderLog::getOrderId, req.getId())
.eq(OrderLog::getProcessType, "createOrder"));
//我要的是detail的明细存入到history—msg中
boolean a=true;
if (createOrder==null){
createOrder.setId(UUID.randomUUID().toString());
createOrder.setHistoryMsg(JSON.toJSONString(req.getDetailList()));
createOrder.setOrderCode(req.getOrderCode());
createOrder.setBussinessType(req.getBussinessType());
createOrder.setOrderType(req.getOrderType());
createOrder.setProcessType("careteOrder");
if (req.getOrderType().equals("in")){
createOrder.setOrgId(req.getEndOrgId());
createOrder.setOrgName(req.getEndOrgName());
}else {
createOrder.setOrgId(Long.parseLong(req.getStartOrgId()));
createOrder.setOrgName(req.getStartOrgName());
}
createOrder.setOrderId(req.getId());
createOrder.setCreateTime(DateTimeUtil.getCurrentDateTime());
a=orderLogService.save(createOrder);
}else{//直接替换
createOrder.setHistoryMsg(JSON.toJSONString(req.getDetailList()));
createOrder.setUpdateTime(DateTimeUtil.getCurrentDateTime());
a=orderLogService.updateById(createOrder);
}
return a;
}
//修改业务单据可用次数
private boolean setBusFormState(UpdateOrderReq req,OrderMain one,Long orgId){
private OrderMain setBusFormState(UpdateOrderReq req,OrderMain one,Long orgId){
boolean a=true;
boolean b=true;
if (ObjectUtil.isNotNull(req.getId())){
......@@ -345,7 +380,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
BusForm one2 = setState2(orgId, one.getBussinessCode());
b=busFormService.updateById(one2);
}
return a && b;
return one;
}else {
if (ObjectUtil.isNotNull(req.getBussinessCode())){
//只需要更改一条单据
......@@ -360,7 +395,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
BusForm one1 = setState1(orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
}
return a;
return one;
}
}
......@@ -744,7 +779,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//记账结束之后往消息队列中推送一条消息
String exchangeName="orderExchange";
MQReturnMsgDto mqReturnMsgDto = new MQReturnMsgDto();
mqReturnMsgDto.setApi("settlementOrder");
mqReturnMsgDto.setApi("SettlementOrder");
mqReturnMsgDto.setId(req.getId());
mqReturnMsgDto.setOrderType(req.getOrderType());
//需要判断是入库单还是出库单,入库单传收物单位id,出库单传发物单位id
......@@ -797,6 +832,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
orderLog.setOrderId(req.getId());
orderLog.setCreateTime(DateTimeUtil.getCurrentDateTime());
orderLog.setProcessType("accounting");
//将记账记录保存
return orderLogService.save(orderLog);
}
......
......@@ -74,7 +74,7 @@ public class InvOverDueMsg implements JobAction {
for (OrderMain orderMain:list) {
for (InvExpireReq userIds:userIdsList) {
if (orderMain.getStartOrgId()==userIds.getOrgId()){
if (orderMain.getStartOrgId()==userIds.getOrgId() && orderMain.getReturnUserId().equals(userIds.getUserId())){
MessageSendReq sendReq = new MessageSendReq();
sendReq.setReceiveUserIds(userIds.getUserId());
sendReq.setMsgTitle("物资超期提醒");
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论