Commit c711c99f by 李小惠

添加出入库记录汇总接口,添加刷新消息提示弹窗接口,修复库存库存管理查询条件bug

parent d3da7be4
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
This source diff could not be displayed because it is too large. You can view the blob instead.
......@@ -6,27 +6,27 @@ import lombok.Data;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class LogDetailReq {
private Long detailId;
/**
* 出入库明细ID
* 出入库汇总id
*/
private Long id;
private Long summaryId;
/**
* 物资id
*/
private String inventoryId;
/**
* 出入库汇总ID
* 业务类型
*/
@NotNull(message = "出入库记录汇总id不能为空",groups = {ValidationApi.detail.class})
private Long summaryId;
private String bussinessType;
/**
* EPC信息
......@@ -34,30 +34,56 @@ public class LogDetailReq {
private String epc;
/**
* 装备名称
* 装备类型id
*/
private String typeId;
/**
* 装备类型名称
*/
private String typeName;
/**
* 装备号型id
*/
private String sizeId;
/**
* 装备号型名称
*/
private String equipmentName;
private String sizeName;
/**
* 装备号型
* 供应商id
*/
private String equipmentSize;
private String supplierId;
/**
* 供应商
* 供应商名称
*/
private String equipmentSupplier;
private String supplierName;
/**
* 装备类型:0单件/1装备包
*/
private Integer equipmentType;
/**
* 箱门id
*/
private String cabinetboxId;
/**
* 状态,0正常/1异常
*/
private Integer errorState;
/**
* 出入状态:in入库,out出库
*/
private String outInState;
/**
* 创建时间
......@@ -84,9 +110,12 @@ public class LogDetailReq {
*/
private String picture;
/**
* 作业设备:0手持机 1单警柜 2通道)
*/
private Integer deviceType;
private BigDecimal price;
private String locationName;
private String userName;
private Long orgId;
}
......@@ -119,6 +119,10 @@ public class LogSummaryReq extends BaseRequest {
* 装备详细信息
*/
private List<LogDetailReq> logList;
/**
* 是操作日志
*/
private List<OrderLogReq> orderLogList;
private String typeId;
private String sizeId;
......@@ -132,3 +136,4 @@ public class LogSummaryReq extends BaseRequest {
private String typeName;
}
package com.junmp.jyzb.api.bean.query;
import lombok.Data;
import java.util.Date;
@Data
public class OrderLogReq {
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,记账)
*/
private String processType;
}
package com.junmp.jyzb.cache;
import com.junmp.jyzb.api.bean.query.LogSummaryReq;
import com.junmp.jyzb.api.constant.JYZBConstant;
import com.junmp.v2.cache.AbstractRedisCache;
import org.springframework.data.redis.core.RedisTemplate;
import org.springframework.stereotype.Component;
import java.util.ArrayList;
import java.util.List;
import java.util.Set;
@Component
public class OutInRecordRedisCache extends AbstractRedisCache<Object> {
public OutInRecordRedisCache(RedisTemplate<String, Object> redisTemplate) {
super(redisTemplate);
}
@Override
public String getCommonKeyPrefix() {
return JYZBConstant.JYZB_TEMP_PREFIX;
}
public void addRecord(String orderMainId, LogSummaryReq req, Long timestamp) {
getRedisTemplate().opsForZSet().add("orderMainId:"+orderMainId, req, timestamp);
put(orderMainId, req);
}
public List<Object> getDataByTimestampRange(String orderMainId, long startTimestamp, long endTimestamp) {
Set<Object> dataInRange =getRedisTemplate().opsForZSet().rangeByScore(orderMainId, startTimestamp, endTimestamp);
return new ArrayList<>(dataInRange);
}
}
......@@ -39,7 +39,7 @@ public class TemperatureRedisCache extends AbstractRedisCache<Object> {
// String key = warehouseId;
// boolean exists = getRedisTemplate().hasKey(key);
// Long size = getRedisTemplate().opsForZSet().size(key);
Set<Object> dataInRange = getRedisTemplate().opsForZSet().rangeByScore(warehouseId, startTimestamp, endTimestamp);
Set<Object> dataInRange = getRedisTemplate().opsForZSet().rangeByScore("WarehouseDev:"+warehouseId, startTimestamp, endTimestamp);
// getRedisTemplate().opsForZSet().rangeByScoreWithScores(key, startTimestamp, endTimestamp)
// Set<Object> dataInRange1= getRedisTemplate().opsForZSet ().reverseRange(key, startTimestamp, endTimestamp);
......
......@@ -56,14 +56,21 @@ public class OutAndInboundController {
return ApiRes.success(logDetailService.GetDetailByLogSumId(req));
}
//装备出入库记录(根据单据id)
@PostMapping(path="/ShowInOutRecordsByOrder",name="出入库单据查询展示#enable")
@ApiOperation("出入库单据查询展示")
//装备出入库记录(根据单据id,sizeId,typeId
@PostMapping(path="/ShowInOutRecordsByOrder",name="出入库单据查询展示(子单记录)#enable")
@ApiOperation("出入库单据查询展示(子单的记录)")
public ApiRes<List<LogDetailDto>> ShowInOutRecordsByOrder(@RequestBody @Validated(ValidationApi.detail.class) LogSummaryReq req){
return ApiRes.success(logDetailService.ShowInOutRecordsByOrder(req));
}
@PostMapping(path = "/RecordSumByOrderId",name = "出入库单据查询展示(整个单子的记录)#enable")
@ApiOperation("出入库单据查询展示(整个单子的记录)")
public ApiRes<PageResult<LogSummary>> RecordSumByOrderId (LogSummaryReq req){
return ApiRes.success(logSummaryService.RecordSumByOrderId(req));
}
//装备出入库记录(根据条件查询)
@PostMapping(path="/ShowInOutRecordsByItems",name="出入库记录条件查询展示#enable")
......@@ -78,6 +85,7 @@ public class OutAndInboundController {
return ApiRes.success(logSummaryService.ShowInOutRecordsByItemsCount(req));
}
@PostMapping(path = "/ShowInOutRecords",name = "出入库数据展示#enable")
@ApiOperation("出入库数据展示")
public ApiRes<PageResult<LogSummary>> ShowInOutRecords(@RequestBody LogSummaryReq req){
......
......@@ -37,6 +37,8 @@ import com.junmp.v2.file.api.bean.req.SysFileInfoReq;
import com.junmp.v2.file.api.bean.res.SysFileInfoResp;
import com.junmp.v2.file.biz.entity.SysFileInfo;
import com.junmp.v2.file.biz.service.SysFileInfoService;
import com.junmp.v2.message.api.bean.req.MessageReq;
import com.junmp.v2.message.api.bean.req.MessageSendReq;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.compress.utils.IOUtils;
......@@ -78,8 +80,7 @@ public class PublicController {
@Resource
private PublicService publicService;
@Resource
private SysDictService sysDictService;
private final static String DB_URL_TEMPLATE = "jdbc:mysql://{}:{}/{}?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true";
......@@ -125,18 +126,14 @@ public class PublicController {
path = {"/getAllDictItem"}
)
public ApiRes<List<SimpleDictVo>> getAllDictItem() {
List<SysDict> list = sysDictService.list();
if (CollectionUtil.isNotEmpty(list)) {
List<SimpleDictVo> tempList = (List)list.stream().map((it) -> {
SimpleDictVo dict = (SimpleDictVo)BeanPlusUtil.toBean(it, SimpleDictVo.class);
List<SimpleDictItemVo> itemVoList = publicService.findListByDict(dict.getDictId());
dict.setItemList(itemVoList);
return dict;
}).collect(Collectors.toList());
return ApiRes.success(tempList);
} else {
return ApiRes.failure("暂无数据");
return ApiRes.success(publicService.getAllDictItem());
}
@PostMapping(path = "/updateMessage",name = "更新消息#logType30")
@ApiOperation("更新消息")
public ApiRes<Boolean> updateMessage(@RequestBody MessageReq req){
return ApiRes.success(publicService.updateMessage(req));
}
......
......@@ -19,7 +19,9 @@ public interface LogDetailMapper extends BaseMapper<LogDetail> {
List<LogDetailDto> GetDetailByLogSumId(@Param("summaryId") Long summaryId);
List<LogDetailDto> ShowInOutRecordsByOrder(@Param("orderMainId") String orderMainId);
List<LogDetailDto> ShowInOutRecordsByOrder(@Param("orderMainId") String orderMainId,
@Param("sizeId") String sizeId,
@Param("typeId") String typeId);
int getInOutRecordsSize(@Param("epc") String epc);
......
......@@ -30,6 +30,12 @@ public interface LogSummaryMapper extends BaseMapper<LogSummary> {
@Param("typeId")String typeId, @Param("price")BigDecimal price);
LogSummary ShowInOutRecordsByItemsCount(@Param("req") LogSummaryReq req);
List<LogSummary> RecordSumByOrderId(@Param("req") LogSummaryReq req,
@Param("pageNo")Long pageNo,
@Param("pageSize")Long pageSize);
int RecordSumByOrderIdSum(@Param("req") LogSummaryReq req);
}
......
......@@ -25,4 +25,6 @@ public interface LogSummaryService extends IService<LogSummary> {
PageResult<LogSummary> ShowInOutRecords(LogSummaryReq req);
LogSummary ShowInOutRecordsByItemsCount(LogSummaryReq req);
PageResult<LogSummary> RecordSumByOrderId(LogSummaryReq req);
}
......@@ -2,6 +2,9 @@ package com.junmp.jyzb.service;
import com.junmp.v2.dict.api.bean.req.SysDictItemReq;
import com.junmp.v2.dict.api.bean.vo.SimpleDictItemVo;
import com.junmp.v2.dict.api.bean.vo.SimpleDictVo;
import com.junmp.v2.message.api.bean.req.MessageReq;
import com.junmp.v2.message.api.bean.req.MessageSendReq;
import java.util.List;
......@@ -9,4 +12,8 @@ public interface PublicService {
Long addDictType(SysDictItemReq req);
List<SimpleDictItemVo> findListByDict(Long dictId);
List<SimpleDictVo> getAllDictItem();
boolean updateMessage(MessageReq req);
}
......@@ -56,7 +56,7 @@ public class LogDetailServiceImpl extends ServiceImpl<LogDetailMapper, LogDetail
//根据单据查询出入库记录
@Override
public List<LogDetailDto> ShowInOutRecordsByOrder(LogSummaryReq req) {
List<LogDetailDto> list = logDetailMapper.ShowInOutRecordsByOrder(req.getOrderMainId());
List<LogDetailDto> list = logDetailMapper.ShowInOutRecordsByOrder(req.getOrderMainId(),req.getSizeId(),req.getTypeId());
return list;
}
......
......@@ -10,7 +10,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.NormalInOutDto;
import com.junmp.jyzb.api.bean.query.InAndOutRecordReq.CabinetLogsRecordReq;
import com.junmp.jyzb.api.bean.query.InAndOutRecordReq.*;
import com.junmp.jyzb.api.bean.query.LogDetailReq;
import com.junmp.jyzb.api.bean.query.LogSummaryReq;
import com.junmp.jyzb.api.bean.query.OrderLogReq;
import com.junmp.jyzb.cache.OutInRecordRedisCache;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import com.junmp.jyzb.service.*;
......@@ -81,7 +84,10 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
@Resource
private LogSummaryMapper logSummaryMapper;
//根据条件查询出入库记录
@Resource
private OutInRecordRedisCache outInRecordRedisCache;
//根据条件查询出入库记录(子单的记录)
@Override
public PageResult<LogSummary> ShowInOutRecordsByItems(LogSummaryReq req) {
//(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
......@@ -131,6 +137,17 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
return ObjectUtil.isNull(logSummary)?new LogSummary():logSummary ;
}
//根据条件查询出入库记录(整个单子的汇总记录)
@Override
public PageResult<LogSummary> RecordSumByOrderId(LogSummaryReq req) {
Page<LogSummary> page = PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize());
List<LogSummary> logSummaryList=logSummaryMapper.RecordSumByOrderId(req,(req.getPageNo()-1)*req.getPageSize(), req.getPageSize());
int size=logSummaryMapper.RecordSumByOrderIdSum(req);
page.setTotal(size);
page.setRecords(logSummaryList);
return PageResultFactory.createPageResult(page);
}
//本地主机返回出入库结果
@Transactional(rollbackFor = Exception.class)
......@@ -703,12 +720,10 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
}
if (ObjectUtil.isNotNull(logreq.getOrderMainId())){
orderMainId=logreq.getOrderMainId();
}
if (ObjectUtil.isNotEmpty(orderMainId)){
ordermain = orderMainService.getById(orderMainId);
ordermain = orderMainService.getById(logreq.getOrderMainId());
}
//如果类型为normal,那么则表示作为日常出入库的记录,否则则作为单据的出入库记录
List<DetailLogReq> logList = logreq.getLogDetailList();
......@@ -729,12 +744,21 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
sumList.add(logSummaryQuick);
stringQuick=stringQuick+logSummaryQuick.getLocationName()+":入库【"+logSummaryQuick.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"\n";
}
//如果是有单据id的,先不存数据库,直接存入redis中
LogSummaryReq logSummaryReq = new LogSummaryReq();
if (ObjectUtil.isNull(logreq.getOrderMainId()) || ObjectUtil.isEmpty(logreq.getOrderMainId())){
sumList.add(logSummary);
logSummaryService.saveBatch(sumList);
sumList.clear();
Map<String, String> map = setState(logreq.getOutInState(), logreq.getBussinessType());
}else {
BeanPlusUtil.copyProperties(logSummary,logSummaryReq);
}
Map<String, String> map = setState(logreq.getOutInState(), logreq.getBussinessType());
List<LogDetailReq> detailReqList=new ArrayList<>();
for (DetailLogReq detailLogReq : logList) {
//将所有装备信息进行存放(为后面计算汇总信息)
if (logreq.getBussinessType().equals("normal")) {
......@@ -776,23 +800,43 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
logDetailQuick.setOutInState("in");
collect.add(logDetailQuick);
}
//无单据的直接创建批量保存
if (ObjectUtil.isNull(logreq.getOrderMainId()) || ObjectUtil.isEmpty(logreq.getOrderMainId())){
collect.add(logDetail);
}else {
LogDetailReq logDetailReq = new LogDetailReq();
BeanPlusUtil.copyProperties(logDetail,logDetailReq);
detailReqList.add(logDetailReq);
}
}
logSummaryReq.setLogList(detailReqList);
boolean b = logDetailService.saveBatch(collect);
//创建出入库日志
if (ObjectUtil.isNotNull(logSummary.getOrderMainId())){
List<OrderLogReq> orderLogReqList=new ArrayList<>();
if (ObjectUtil.isNull(logreq.getOrderMainId()) || ObjectUtil.isEmpty(logreq.getOrderMainId())){
OrderLog orderLog = addLog(logSummary,string);
orderLogList.add(orderLog);
}else {
OrderLog orderLog = addLog(logSummary,string);
OrderLogReq orderLogReq = new OrderLogReq();
BeanPlusUtil.copyProperties(orderLog,orderLogReq);
orderLogReqList.add(orderLogReq);
OrderLog qucik = new OrderLog();
if (logreq.getBussinessType().equals("quick")){
qucik=addLog(logSummaryQuick,stringQuick);
orderLogList.add(qucik);
OrderLogReq quickOrderLogReq = new OrderLogReq();
BeanPlusUtil.copyProperties(qucik,quickOrderLogReq);
orderLogReqList.add(quickOrderLogReq);
}
orderLogList.add(orderLog);
}
if (ObjectUtil.isNotNull(logreq.getOrderMainId())){
//添加到redis中去(key是orderMainId)
outInRecordRedisCache.addRecord(logreq.getOrderMainId(),logSummaryReq,DateTimeUtil.TimeDateToLong(DateTimeUtil.getCurrentDateTime()));
}
//判断是否有orderId的单子出入库,如果有则直接添加
}
if (orderLogList.size()>0){
boolean b = orderLogService.saveBatch(orderLogList);
}
......
......@@ -23,6 +23,7 @@ import com.junmp.jyzb.api.exception.enums.InventoryExceptionEnum;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.jyzb.api.exception.enums.WarehouseExceptionEnum;
import com.junmp.jyzb.cache.MsgRedisCache;
import com.junmp.jyzb.cache.OutInRecordRedisCache;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import com.junmp.jyzb.mapper.OrderMainMapper;
......@@ -147,6 +148,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
@Resource
private WarehouseInventoryService warehouseInventoryService;
@Resource
private OutInRecordRedisCache outInRecordRedisCache;
@Transactional(rollbackFor = Exception.class)
@Override
......@@ -1243,6 +1247,13 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}else {
MQ.SendMsg(exchangeName,req.getStartOrgId().toString(),mqReturnMsgDto);
}
//将redis中的出入库记录一起存入数据库表中(根据orderMainId获取数据)
//开始时间戳为2000年1月1日 00:00:00
// List<Object> dataByTimestampRange = outInRecordRedisCache.getDataByTimestampRange(orderMain.getId(), 946656000L, DateTimeUtil.TimeDateToLong(DateTimeUtil.getCurrentDateTime()));
// redisCache.remove(orderMain.getId());
// redisCache.get()
//更新主单据
return (a && b && c && d && e && f && g );
}
......
......@@ -1039,14 +1039,11 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
req.setOrder("desc");
req.setColumn("create_time");
}
if (ObjectUtil.isNull(req.getPageNo()) && ObjectUtil.isNull(req.getPageSize())) {
req.setPageNo(1L);
req.setPageSize(10L);
}
List<PolicemanDto> policemanDtos = policemanMapper.selectUserBypoliceIds
(req.getOrgId(),req.getAccount(),req.getName(),req.getPoliceCode(),
req.getState(),req.getUserId(),req.getPhone(),req.getFlag(),(req.getPageNo()-1)*req.getPageSize()
,req.getPageSize(),req.getColumn(),req.getOrder(),req.getRoleCodeList());
req.getState(),req.getUserId(),req.getPhone(),req.getFlag(),null
,null,req.getColumn(),req.getOrder(),req.getRoleCodeList());
return policemanDtos;
}
......@@ -1807,12 +1804,25 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
.eq(ObjectUtil.isNotNull(req.getOrgId()), Reassignment::getOrgId, req.getOrgId())
.eq(ObjectUtil.isNotNull(req.getReassignmentType()),Reassignment::getReassignmentType,req.getReassignmentType())
.eq(ObjectUtil.isNotNull(req.getProcessId()),Reassignment::getProcessId,req.getProcessId())
.eq(ObjectUtil.isNotNull(req.getExamineState()) && !req.getExamineState().trim().isEmpty(), Reassignment::getExamineState, req.getExamineState())
.like(ObjectUtil.isNotNull(req.getPoliceName()), Reassignment::getPoliceName, req.getPoliceName())
.like(ObjectUtil.isNotNull(req.getTypeName()),Reassignment::getInvList,req.getTypeName())
.ge(ObjectUtil.isNotNull(req.getStartTime()), Reassignment::getApplyTime, req.getStartTime())
.le(ObjectUtil.isNotNull(req.getEndTime()), Reassignment::getApplyTime, req.getEndTime())
.last("order by " + req.getColumn() + " " + req.getOrder());
//业务单据审核状态
if (ObjectUtil.isNotNull(req.getExamineState()) && req.getExamineState().equals("unaudited")){
List<String> examineStateList=new ArrayList<>();
examineStateList.add("none");
examineStateList.add("working");
eq.in( Reassignment::getExamineState,examineStateList);
} else if (ObjectUtil.isNotNull(req.getExamineState()) && req.getExamineState().equals("finished")) {
List<String> examineStateList=new ArrayList<>();
examineStateList.add("finished");
examineStateList.add("refuse");
eq.in( Reassignment::getExamineState,examineStateList);
}
if (ObjectUtil.isNotNull(req.getUserId())){
eq.and(wrapper -> wrapper.eq(Reassignment::getAgentId,req.getUserId())
.or().like(Reassignment::getExamineState,req.getUserId()));
......
package com.junmp.jyzb.service.impl;
import cn.hutool.core.collection.CollectionUtil;
import cn.hutool.core.date.DateTime;
import cn.hutool.core.util.StrUtil;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.junmp.junmpProcess.dto.json.UserInfo;
import com.junmp.jyzb.service.PublicService;
import com.junmp.v2.auth.api.context.LoginContext;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.common.enums.StatusEnum;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.dict.api.bean.req.SysDictItemReq;
import com.junmp.v2.dict.api.bean.vo.SimpleDictItemVo;
import com.junmp.v2.dict.api.bean.vo.SimpleDictVo;
import com.junmp.v2.dict.api.exception.DictException;
import com.junmp.v2.dict.api.exception.DictExceptionEnum;
import com.junmp.v2.dict.entity.SysDict;
import com.junmp.v2.dict.entity.SysDictItem;
import com.junmp.v2.dict.service.SysDictItemService;
import com.junmp.v2.dict.service.SysDictService;
import com.junmp.v2.message.api.MessageApi;
import com.junmp.v2.message.api.bean.req.MessageReq;
import com.junmp.v2.message.api.bean.req.MessageSendReq;
import com.junmp.v2.message.api.enums.MsgReadStateEnum;
import com.junmp.v2.message.db.entity.SysMessage;
import com.junmp.v2.message.db.service.SysMessageService;
import lombok.extern.slf4j.Slf4j;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.List;
import java.util.stream.Collectors;
import static com.junmp.junmpProcess.common.CommonConstants.START_USER_INFO;
import static com.junmp.junmpProcess.common.CommonConstants.TYPE_ORDER;
@Service
@Slf4j
......@@ -23,9 +45,14 @@ public class PublicServiceImpl implements PublicService {
@Resource
private SysDictItemService sysDictItemService;
@Resource
private SysDictService sysDictService;
@Resource
private MessageApi messageApi;
@Resource
private SysMessageService sysMessageService;
public Long addDictType(SysDictItemReq req){
SysDictItem sysDictType = (SysDictItem) BeanPlusUtil.toBean(req, SysDictItem.class);
LambdaQueryWrapper<SysDictItem> eq = new LambdaQueryWrapper<SysDictItem>().eq(SysDictItem::getDictId, req.getItemText()).eq(SysDictItem::getItemText, req.getDictId());
......@@ -50,4 +77,46 @@ public class PublicServiceImpl implements PublicService {
return voList;
}
@Override
public List<SimpleDictVo> getAllDictItem() {
List<SysDict> list = sysDictService.list();
if (CollectionUtil.isNotEmpty(list)) {
List<SimpleDictVo> tempList = (List)list.stream().map((it) -> {
SimpleDictVo dict = (SimpleDictVo)BeanPlusUtil.toBean(it, SimpleDictVo.class);
List<SimpleDictItemVo> itemVoList =findListByDict(dict.getDictId());
dict.setItemList(itemVoList);
return dict;
}).collect(Collectors.toList());
return tempList;
} else {
return new ArrayList<>();
}
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean updateMessage(MessageReq req) {
SysMessage message = sysMessageService.getById(req.getMsgIdList().get(0));
Long bizId = message.getBizId();
//将该条消息全设置为已读并且更新再推送一条消息
List<SysMessage> list = sysMessageService.list(new LambdaQueryWrapper<SysMessage>().eq(SysMessage::getBizId, bizId));
List<Long> idList = list.stream()
.map(SysMessage::getMsgId).collect(Collectors.toList());
messageApi.batchReadFlagByMessageIds(StrUtil.join(",", new Object[]{idList}), MsgReadStateEnum.READ);
List<Long> userIdList = list.stream().map(SysMessage::getReceiveUserId).collect(Collectors.toList());
userIdList.forEach(userId ->{
if (userId!= LoginContext.getContext().getLoginUser().getUserId())//非本人审核单据
{
MessageSendReq sendReq = new MessageSendReq();
sendReq.setReceiveUserIds(String.valueOf(userId));
sendReq.setMsgTitle("refresh");
sendReq.setMsgContent("消息更新");
sendReq.setPriority("1");
sendReq.setSendTime(DateTime.now());
messageApi.sendMessage(sendReq);
}
});
return true;
}
}
......@@ -243,6 +243,7 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
.map(obj -> (HumidityAndtemperature) obj)
.sorted(Comparator.comparingLong(HumidityAndtemperature::getCreateTime).reversed())
.collect(Collectors.toList());
return collect;
}
......
......@@ -39,8 +39,12 @@
join base_log_summary ls on ld.summary_id=ls.id and ld.summary_id=#{summaryId}
</select>
<select id="ShowInOutRecordsByOrder" resultType="com.junmp.jyzb.api.bean.dto.LogDetailDto">
SELECT ls.location_name,ls.order_main_id,ls.out_in_state,ld.* FROM base_log_summary ls
join base_log_detail ld on ld.summary_id=ls.id and ls.order_main_id=#{orderMainId}
select a.*,ls.location_name,ls.order_main_id,ls.out_in_state FROM (
select ld.* FROM base_log_detail ld
where type_id=#{typeId} and size_id=#{sizeId}
) as a
join base_log_summary ls on ls.id=a.summary_id and ls.order_main_id=#{orderMainId}
</select>
<select id="getInOutRecordsSize" resultType="java.lang.Integer" parameterType="java.lang.String">
select count(*) FROM(
......
......@@ -127,6 +127,173 @@
</if>
) as a
</select>
<select id="RecordSumByOrderId" resultType="com.junmp.jyzb.entity.LogSummary">
(SELECT
t.bussiness_type AS bussiness_type,
t.order_code AS order_code,
t.out_in_state AS out_in_state,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.type_name, '' ))) AS equipment_list,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.device_type, '' ))) AS device_type,
GROUP_CONCAT( DISTINCT COALESCE (NULLIF( t.user_name, '' ))) AS user_name,
sum(t.number) AS number
FROM
(
SELECT
ld.bussiness_type,
ld.out_in_state,
ld.type_name,
a.* ,
count(*) as number
FROM
base_log_detail ld
JOIN (
SELECT
ls.id AS summary_id,
ls.order_code,
ls.order_main_id,
ls.location_name,
ls.user_name,
ls.device_type
FROM
base_log_summary ls
where ls.order_main_id is not null or ls.order_main_id !=''
) AS a ON a.summary_id = ld.summary_id
GROUP BY ld.bussiness_type,ld.out_in_state,
ld.type_name,a.order_code,a.summary_id,a.order_main_id,
a.location_name,
a.user_name,
a.device_type
) AS t
GROUP BY t.bussiness_type,t.order_code,t.out_in_state
)
union all (
SELECT
t.bussiness_type AS bussiness_type,
t.order_code AS order_code,
t.out_in_state AS out_in_state,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.type_name, '' ))) AS equipment_list,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.device_type, '' ))) AS device_type,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.user_name, '' ))) AS user_name,
sum(t.number) AS number
FROM
(
SELECT
ld.bussiness_type,
ld.out_in_state,
ld.type_name,
a.* ,
count(*) as number
FROM
base_log_detail ld
JOIN (
SELECT
ls.id AS summary_id,
ls.order_code,
ls.order_main_id,
ls.location_name,
ls.user_name,
ls.device_type
FROM
base_log_summary ls
where ls.order_main_id is null or ls.order_main_id =''
) AS a ON a.summary_id = ld.summary_id
GROUP BY ld.bussiness_type,ld.out_in_state,
ld.type_name,a.order_code,a.summary_id,a.order_main_id,
a.location_name,
a.user_name,
a.device_type
) AS t
GROUP BY t.bussiness_type,t.order_code,t.out_in_state,t.summary_id
)
<if test="pageNo != null and pageNo != '' and pageSize != null and pageSize != '' ">
limit #{pageNo},#{pageSize}
</if>
</select>
<select id="RecordSumByOrderIdSum" resultType="java.lang.Integer">
select count(*) from (
(SELECT
t.bussiness_type AS bussiness_type,
t.order_code AS order_code,
t.out_in_state AS out_in_state,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.type_name, '' ))) AS equipment_list,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.device_type, '' ))) AS device_type,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.user_name, '' ))) AS user_name,
sum(t.number) AS number
FROM
(
SELECT
ld.bussiness_type,
ld.out_in_state,
ld.type_name,
a.* ,
count(*) as number
FROM
base_log_detail ld
JOIN (
SELECT
ls.id AS summary_id,
ls.order_code,
ls.order_main_id,
ls.location_name,
ls.user_name,
ls.device_type
FROM
base_log_summary ls
where ls.order_main_id is not null or ls.order_main_id !=''
) AS a ON a.summary_id = ld.summary_id
GROUP BY ld.bussiness_type,ld.out_in_state,
ld.type_name,a.order_code,a.summary_id,a.order_main_id,
a.location_name,
a.user_name,
a.device_type
) AS t
GROUP BY t.bussiness_type,t.order_code,t.out_in_state
)
union all (
SELECT
t.bussiness_type AS bussiness_type,
t.order_code AS order_code,
t.out_in_state AS out_in_state,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.type_name, '' ))) AS equipment_list,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.device_type, '' ))) AS device_type,
GROUP_CONCAT(DISTINCT COALESCE (NULLIF( t.user_name, '' ))) AS user_name,
sum(t.number) AS number
FROM
(
SELECT
ld.bussiness_type,
ld.out_in_state,
ld.type_name,
a.* ,
count(*) as number
FROM
base_log_detail ld
JOIN (
SELECT
ls.id AS summary_id,
ls.order_code,
ls.order_main_id,
ls.location_name,
ls.user_name,
ls.device_type
FROM
base_log_summary ls
where ls.order_main_id is null or ls.order_main_id =''
) AS a ON a.summary_id = ld.summary_id
GROUP BY ld.bussiness_type,ld.out_in_state,
ld.type_name,a.order_code,a.summary_id,a.order_main_id,
a.location_name,
a.user_name,
a.device_type
) AS t
GROUP BY t.bussiness_type,t.order_code,t.out_in_state,t.summary_id
)
) as aaa
</select>
</mapper>
......@@ -107,8 +107,8 @@
<if test=" req.examineState=='unaudited'">
and examine_state in('none','working')
</if>
<if test="req.examineState !=null and req.examineState != '' and req.examineState!='unaudited'">
and examine_state = #{req.examineState}
<if test="req.examineState=='finished'">
and examine_state in('finished','refuse')
</if>
<if test="req.startTime != null and req.startTime != ''">
and create_time &gt;= #{req.startTime}
......
......@@ -308,7 +308,9 @@ 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>
</select>
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论