Commit c795ae0b by 李小惠

修改归还入库关联业务单逻辑以及代码,修改OA提出BUG

parent c711c99f
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.
......@@ -144,4 +144,8 @@ public class InventoryDto implements Serializable {
private Integer property;
private String sizePhoto;
private String typePhoto;
}
......@@ -11,4 +11,6 @@ public class MQDto {
private List<String> idList;
private String message;
private String orderId;
private String warehouseId;
private Integer warehouseState;
}
......@@ -11,10 +11,13 @@ public class NormalInOutDto {
*orgId 组织机构id
*/
private Long orgId;
private String valuekey;
/**
*orgName 组织机构名称
*/
private String orgName;
private String orgCode;
/**
*typeId 装备类型id
*/
......@@ -39,16 +42,16 @@ public class NormalInOutDto {
* 位置名称
*/
private String locationName;
/**
* 单价
*/
private BigDecimal price;
/**
*number 库存数量
*/
private Integer number;
//出入库状态
private String outInState;
private Integer property;
}
......@@ -32,6 +32,8 @@ public class LogSummaryReq extends BaseRequest {
*/
private String orgName;
private String orderCode;
/**
* 单据id
*/
......
......@@ -130,6 +130,8 @@ public class OrderMainReq extends BaseRequest {
//计划子单json
private String eqsJson;
private Integer orderCurrentState;
}
......@@ -180,5 +180,7 @@ public class UpdateOrderReq extends BaseRequest implements Serializable {
private Date createTime;
//计划子单json
private String eqsJson;
private Integer orderCurrentState;
}
......@@ -26,10 +26,11 @@ public class OutInRecordRedisCache extends AbstractRedisCache<Object> {
getRedisTemplate().opsForZSet().add("orderMainId:"+orderMainId, req, timestamp);
put(orderMainId, req);
}
public List<Object> getDataByTimestampRange(String orderMainId, long startTimestamp, long endTimestamp) {
public List<Object> getDataByTimestampRange(String orderMainId) {
Set<Object> dataInRange =getRedisTemplate().opsForZSet().rangeByScore(orderMainId, startTimestamp, endTimestamp);
// Set<Object> dataInRange =getRedisTemplate().opsForZSet().rangeByScore("orderMainId:"+orderMainId, startTimestamp, endTimestamp);
Set<Object> range = getRedisTemplate().opsForZSet().range("orderMainId:" + orderMainId, 0, -1);
return new ArrayList<>(dataInRange);
return new ArrayList<>(range);
}
}
......@@ -27,7 +27,8 @@ import javax.annotation.Resource;
@Slf4j
@RequestMapping("/BussinessInventory")
@Api(tags = "[盘点]盘点管理模块")
public class BussinessInventoryController {
public class
BussinessInventoryController {
@Resource
private BussinessInventoryService BussinessInventoryService;
......
......@@ -8,15 +8,19 @@ import com.baomidou.mybatisplus.core.toolkit.AES;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.junmp.jyzb.api.bean.dto.UploadPolicePhotoDto;
import com.junmp.jyzb.api.bean.query.DbAccessReq;
import com.junmp.jyzb.api.bean.query.OrderMainReq;
import com.junmp.jyzb.api.bean.query.PolicemanReq;
import com.junmp.jyzb.api.bean.req.UploadPolicePhotoReq;
import com.junmp.jyzb.api.bean.vo.AuthAccessVo;
import com.junmp.jyzb.api.exception.enums.PublicExceptionEnum;
import com.junmp.jyzb.cache.MsgRedisCache;
import com.junmp.jyzb.cache.OutInRecordRedisCache;
import com.junmp.jyzb.entity.Policeman;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.service.PolicemanService;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.service.PublicService;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.jyzb.utils.FileUtil;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
......@@ -55,6 +59,7 @@ import java.io.FileInputStream;
import java.io.IOException;
import java.net.URL;
import java.util.List;
import java.util.Set;
import java.util.stream.Collectors;
/**
......@@ -80,8 +85,11 @@ public class PublicController {
@Resource
private PublicService publicService;
@Resource
private MsgRedisCache redisCache;
@Resource
private OutInRecordRedisCache outInRecordRedisCache;
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";
......@@ -137,4 +145,13 @@ public class PublicController {
}
@PostMapping("/aaa")
public ApiRes<List<Object>> aaa(@RequestBody OrderMainReq req){
List<Object> dataByTimestampRange = outInRecordRedisCache.getDataByTimestampRange(req.getId());
return ApiRes.success(dataByTimestampRange);
}
}
......@@ -167,5 +167,8 @@ public class OrderMain implements Serializable {
@TableField("eqs_json")
private String eqsJson;
@TableField("order_current_state")
private Integer orderCurrentState;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -296,214 +296,214 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
// 对出入库记录进行分类汇总存储()
public List<NormalInOutDto> saveInOutRecords(OutInLogsReq req) {
//返回结果,用于日常出入库时计算更新库存汇总表
List<SummaryLogReq> logSummaryList = req.getLogList();
//遍历logSummaryList查询出没有单据的作为日常出入库,并再次存放到list中,后面用于进行修改库存汇总
//返回returnList结果,用于日常出入库时计算更新库存汇总表
List<NormalInOutDto> returnList=new ArrayList<>();
//存一个list用于修改库存inventory表的数据(采购时那么这个inventoryList就为空)
List<Inventory> inventoryList=new ArrayList<>();
//存一个list用于修改库存warehosuseInventory表的数据(采购时那么这个wInventoryList就为空)
List<WarehouseInventory> wInbentoryList=new ArrayList<>();
List<OrderLog> orderLogList=new ArrayList<>();
String orderMainId="";
List<LogSummary> sumList=new ArrayList<>();
OrderMain ordermain=null;
for (SummaryLogReq logreq:logSummaryList) {
if (ObjectUtil.isNotNull(logreq.getPicture())){
byte[] imageBytes = Base64.getDecoder().decode(logreq.getPicture());
MultipartFile picture = new MockMultipartFile("sample", imageBytes);
// 图片文件保存路径和文件名
SysFileInfoReq sysFileInfoReq = new SysFileInfoReq();
sysFileInfoReq.setFileBucket("jyzb");
sysFileInfoReq.setFileLocation(3);
sysFileInfoReq.setFileObjectName("OutInPrice/"+logreq.getOrgId()+"/");
SysFileInfoResp sysFileInfoResp = sysFileInfoService.uploadFile(picture, sysFileInfoReq);
logreq.setPicture(sysFileInfoResp.getAccessUrl());
}
if (ObjectUtil.isNotNull(logreq.getOrderMainId())){
orderMainId=logreq.getOrderMainId();
}
if (ObjectUtil.isNotEmpty(orderMainId)){
ordermain = orderMainService.getById(orderMainId);
}
//如果类型为normal,那么则表示作为日常出入库的记录,否则则作为单据的出入库记录
List<DetailLogReq> logList = logreq.getLogDetailList();
//出入库list
List<LogDetail> collect = new ArrayList<>();
LogSummary logSummary = saveLogSummary(logreq,logreq.getLocationId(),logreq.getLocationName(),logreq.getOutInState());
String string="";
String stringQuick="";
if (logSummary.getOutInState().equals("in")){
string=string+logSummary.getLocationName()+":入库【"+logSummary.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"\n";
}else {
string=string+logSummary.getLocationName()+":出库【"+logSummary.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"\n";
}
LogSummary logSummaryQuick=new LogSummary();
if (logreq.getBussinessType().equals("quick")){//如果是快速出库的同时需要创建快速入库
logSummaryQuick= saveLogSummary(logreq,ordermain.getLocationId(),ordermain.getLocationName(),"in");
sumList.add(logSummaryQuick);
stringQuick=stringQuick+logSummaryQuick.getLocationName()+":入库【"+logSummaryQuick.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"\n";
}
sumList.add(logSummary);
logSummaryService.saveBatch(sumList);
sumList.clear();
Map<String, String> map = setState(logreq.getOutInState(), logreq.getBussinessType());
for (DetailLogReq detailLogReq : logList) {
//将所有装备信息进行存放(为后面计算汇总信息)
if (logreq.getBussinessType().equals("normal")) {
NormalInOutDto normalInOutDto = new NormalInOutDto();
BeanPlusUtil.copyProperties(detailLogReq, normalInOutDto);
normalInOutDto.setLocationId(logSummary.getLocationId());
normalInOutDto.setLocationName(logSummary.getLocationName());
normalInOutDto.setOrgId(logSummary.getOrgId());
normalInOutDto.setOrgName(logSummary.getOrgName());
normalInOutDto.setNumber(1);
normalInOutDto.setOutInState(logSummary.getOutInState());
returnList.add(normalInOutDto);
}
//判断logSummary是否为采购,快速移库,和领用出库
//如果是采购则不处理,因为采购的inventory是跟着单子来处理的,其他的单子直接根据出入库记录来处理
if (!logreq.getBussinessType().equals("purchase") && !logreq.getBussinessType().equals("quick") ){
// if (logreq.getOutInState().equals("in")){
Inventory inventory = saveInventory(logreq.getOrgId(),logreq.getLocationId(),logreq,detailLogReq, map, logSummary.getOutInState());
inventoryList.add(inventory);
}
// //如果是快速移库,那么直接将物资的locationId进行修改
if(logreq.getBussinessType().equals("quick")){
Inventory inventory = saveInventory(logreq.getOrgId(),ordermain.getLocationId(),logreq,detailLogReq, map, "in");
inventoryList.add(inventory);
}
//存放logdetail信息
LogDetail logDetail = new LogDetail();
LogDetail logDetailQuick=new LogDetail();
BeanPlusUtil.copyProperties(detailLogReq, logDetail);
logDetail.setSummaryId(logSummary.getId());
logDetail.setOrgId(logSummary.getOrgId());
logDetail.setCreateTime(DateTimeUtil.getCurrentDateTime());
logDetail.setBussinessType(logreq.getBussinessType());
logDetail.setOutInState(logreq.getOutInState());
if (logreq.getBussinessType().equals("quick")){
BeanPlusUtil.copyProperties(logDetail,logDetailQuick);
logDetailQuick.setSummaryId(logSummaryQuick.getId());
logDetailQuick.setOutInState("in");
collect.add(logDetailQuick);
}
collect.add(logDetail);
}
boolean b = logDetailService.saveBatch(collect);
//创建出入库日志
if (ObjectUtil.isNotNull(logSummary.getOrderMainId())){
OrderLog orderLog = addLog(logSummary,string);
OrderLog qucik = new OrderLog();
if (logreq.getBussinessType().equals("quick")){
qucik=addLog(logSummaryQuick,stringQuick);
orderLogList.add(qucik);
}
orderLogList.add(orderLog);
}
}
//判断是否有orderId的单子出入库,如果有则直接添加
if (orderLogList.size()>0){
boolean b = orderLogService.saveBatch(orderLogList);
}
//修改inventory表中的数据(如果不为空则表示不是采购单或者已经将采购单的信息过滤掉)
if (inventoryList.size()>0){
LambdaUpdateWrapper<Inventory> updateStateWrapper1 = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<Inventory> allocateInWrapper1 = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<WarehouseInventory> updateStateWrapper2 = Wrappers.lambdaUpdate();
LambdaUpdateWrapper<WarehouseInventory> allocateInWrapper2 = Wrappers.lambdaUpdate();
LambdaQueryWrapper<WarehouseInventory> destroyOutWrapper =Wrappers.lambdaQuery();
for (Inventory inventory:inventoryList) {
if (inventory.getBussinessType().equals("allocate") && inventory.getLocationState().equals("in") && !ObjectUtil.isNull(ordermain)){
//调拨入库
allocateInWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getOrgId,inventory.getOrgId())
.set(Inventory::getLocationId,inventory.getLocationId())
.set(Inventory::getLocationState,"in");
allocateInWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
.set(WarehouseInventory::getOrgId,inventory.getOrgId())
.set(WarehouseInventory::getLocationId,inventory.getLocationId())
.set(WarehouseInventory::getLocationState,"in");
} else if (inventory.getBussinessType().equals("allocate") && inventory.getLocationState().equals("out") && !ObjectUtil.isNull(ordermain)){
//调拨出库,不操作
allocateInWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getOrgId,null)
.set(Inventory::getLocationId,null)
.set(Inventory::getLocationState,"out");
allocateInWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
.set(WarehouseInventory::getOrgId,null)
.set(WarehouseInventory::getLocationId,null)
.set(WarehouseInventory::getLocationState,"out");
}else if (inventory.getBussinessType().equals("destruction")){
updateStateWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getLocationState,"out")
.set(Inventory::getBussinessState,"destruction")
.set(Inventory::getLocationId,inventory.getLocationId())
.set(Inventory::getState,"destory");
destroyOutWrapper.or().eq(WarehouseInventory::getEpc,inventory.getEpc());
}else{
//其他情况
if (inventory.getBussinessType().equals("quick")){
updateStateWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getLocationState,"in")
.set(Inventory::getBussinessState,"normal")
.set(Inventory::getLocationId,inventory.getLocationId())
.set(Inventory::getState,"normal");
updateStateWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
.set(WarehouseInventory::getLocationId,inventory.getLocationId())
.set(WarehouseInventory::getLocationState,"in");
}else {
updateStateWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
.set(Inventory::getLocationState,inventory.getLocationState())
.set(Inventory::getBussinessState,inventory.getBussinessState())
.set(Inventory::getState,inventory.getState());
updateStateWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
.set(WarehouseInventory::getLocationState,inventory.getLocationState());
}
}
}
if (!updateStateWrapper1.isEmptyOfWhere()){
inventoryService.update(updateStateWrapper1);
warehouseInventoryService.update(updateStateWrapper2);
}
if (!allocateInWrapper1.isEmptyOfWhere()){
inventoryService.update(allocateInWrapper1);
warehouseInventoryService.update(allocateInWrapper2);
}
}
return returnList;
}
// public List<NormalInOutDto> saveInOutRecords(OutInLogsReq req) {
//
// //返回结果,用于日常出入库时计算更新库存汇总表
// List<SummaryLogReq> logSummaryList = req.getLogList();
//
// //遍历logSummaryList查询出没有单据的作为日常出入库,并再次存放到list中,后面用于进行修改库存汇总
// //返回returnList结果,用于日常出入库时计算更新库存汇总表
// List<NormalInOutDto> returnList=new ArrayList<>();
// //存一个list用于修改库存inventory表的数据(采购时那么这个inventoryList就为空)
// List<Inventory> inventoryList=new ArrayList<>();
// //存一个list用于修改库存warehosuseInventory表的数据(采购时那么这个wInventoryList就为空)
// List<WarehouseInventory> wInbentoryList=new ArrayList<>();
// List<OrderLog> orderLogList=new ArrayList<>();
// String orderMainId="";
//
// List<LogSummary> sumList=new ArrayList<>();
// OrderMain ordermain=null;
// for (SummaryLogReq logreq:logSummaryList) {
// if (ObjectUtil.isNotNull(logreq.getPicture())){
// byte[] imageBytes = Base64.getDecoder().decode(logreq.getPicture());
// MultipartFile picture = new MockMultipartFile("sample", imageBytes);
// // 图片文件保存路径和文件名
// SysFileInfoReq sysFileInfoReq = new SysFileInfoReq();
// sysFileInfoReq.setFileBucket("jyzb");
// sysFileInfoReq.setFileLocation(3);
// sysFileInfoReq.setFileObjectName("OutInPrice/"+logreq.getOrgId()+"/");
// SysFileInfoResp sysFileInfoResp = sysFileInfoService.uploadFile(picture, sysFileInfoReq);
// logreq.setPicture(sysFileInfoResp.getAccessUrl());
// }
//
// if (ObjectUtil.isNotNull(logreq.getOrderMainId())){
// orderMainId=logreq.getOrderMainId();
// }
//
// if (ObjectUtil.isNotEmpty(orderMainId)){
// ordermain = orderMainService.getById(orderMainId);
// }
// //如果类型为normal,那么则表示作为日常出入库的记录,否则则作为单据的出入库记录
// List<DetailLogReq> logList = logreq.getLogDetailList();
//
// //出入库list
// List<LogDetail> collect = new ArrayList<>();
// LogSummary logSummary = saveLogSummary(logreq,logreq.getLocationId(),logreq.getLocationName(),logreq.getOutInState());
//
// String string="";
// String stringQuick="";
// if (logSummary.getOutInState().equals("in")){
// string=string+logSummary.getLocationName()+":入库【"+logSummary.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"\n";
// }else {
// string=string+logSummary.getLocationName()+":出库【"+logSummary.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"\n";
// }
// LogSummary logSummaryQuick=new LogSummary();
// if (logreq.getBussinessType().equals("quick")){//如果是快速出库的同时需要创建快速入库
// logSummaryQuick= saveLogSummary(logreq,ordermain.getLocationId(),ordermain.getLocationName(),"in");
// sumList.add(logSummaryQuick);
// stringQuick=stringQuick+logSummaryQuick.getLocationName()+":入库【"+logSummaryQuick.getEquipmentList()+"】,数量:"+logSummary.getNumber()+"\n";
// }
// sumList.add(logSummary);
// logSummaryService.saveBatch(sumList);
// sumList.clear();
// Map<String, String> map = setState(logreq.getOutInState(), logreq.getBussinessType());
//
//
// for (DetailLogReq detailLogReq : logList) {
// //将所有装备信息进行存放(为后面计算汇总信息)
// if (logreq.getBussinessType().equals("normal")) {
// NormalInOutDto normalInOutDto = new NormalInOutDto();
// BeanPlusUtil.copyProperties(detailLogReq, normalInOutDto);
// normalInOutDto.setLocationId(logSummary.getLocationId());
// normalInOutDto.setLocationName(logSummary.getLocationName());
// normalInOutDto.setOrgId(logSummary.getOrgId());
// normalInOutDto.setOrgName(logSummary.getOrgName());
// normalInOutDto.setNumber(1);
// normalInOutDto.setOutInState(logSummary.getOutInState());
// returnList.add(normalInOutDto);
// }
// //判断logSummary是否为采购,快速移库,和领用出库
// //如果是采购则不处理,因为采购的inventory是跟着单子来处理的,其他的单子直接根据出入库记录来处理
// if (!logreq.getBussinessType().equals("purchase") && !logreq.getBussinessType().equals("quick") ){
//// if (logreq.getOutInState().equals("in")){
// Inventory inventory = saveInventory(logreq.getOrgId(),logreq.getLocationId(),logreq,detailLogReq, map, logSummary.getOutInState());
// inventoryList.add(inventory);
//
// }
//// //如果是快速移库,那么直接将物资的locationId进行修改
// if(logreq.getBussinessType().equals("quick")){
// Inventory inventory = saveInventory(logreq.getOrgId(),ordermain.getLocationId(),logreq,detailLogReq, map, "in");
// inventoryList.add(inventory);
// }
// //存放logdetail信息
// LogDetail logDetail = new LogDetail();
// LogDetail logDetailQuick=new LogDetail();
// BeanPlusUtil.copyProperties(detailLogReq, logDetail);
// logDetail.setSummaryId(logSummary.getId());
// logDetail.setOrgId(logSummary.getOrgId());
// logDetail.setCreateTime(DateTimeUtil.getCurrentDateTime());
// logDetail.setBussinessType(logreq.getBussinessType());
// logDetail.setOutInState(logreq.getOutInState());
// if (logreq.getBussinessType().equals("quick")){
// BeanPlusUtil.copyProperties(logDetail,logDetailQuick);
// logDetailQuick.setSummaryId(logSummaryQuick.getId());
// logDetailQuick.setOutInState("in");
// collect.add(logDetailQuick);
// }
// collect.add(logDetail);
//
// }
//
// boolean b = logDetailService.saveBatch(collect);
// //创建出入库日志
// if (ObjectUtil.isNotNull(logSummary.getOrderMainId())){
// OrderLog orderLog = addLog(logSummary,string);
// OrderLog qucik = new OrderLog();
// if (logreq.getBussinessType().equals("quick")){
// qucik=addLog(logSummaryQuick,stringQuick);
// orderLogList.add(qucik);
// }
// orderLogList.add(orderLog);
// }
// }
// //判断是否有orderId的单子出入库,如果有则直接添加
// if (orderLogList.size()>0){
// boolean b = orderLogService.saveBatch(orderLogList);
// }
//
// //修改inventory表中的数据(如果不为空则表示不是采购单或者已经将采购单的信息过滤掉)
//
// if (inventoryList.size()>0){
//
// LambdaUpdateWrapper<Inventory> updateStateWrapper1 = Wrappers.lambdaUpdate();
// LambdaUpdateWrapper<Inventory> allocateInWrapper1 = Wrappers.lambdaUpdate();
// LambdaUpdateWrapper<WarehouseInventory> updateStateWrapper2 = Wrappers.lambdaUpdate();
// LambdaUpdateWrapper<WarehouseInventory> allocateInWrapper2 = Wrappers.lambdaUpdate();
// LambdaQueryWrapper<WarehouseInventory> destroyOutWrapper =Wrappers.lambdaQuery();
// for (Inventory inventory:inventoryList) {
// if (inventory.getBussinessType().equals("allocate") && inventory.getLocationState().equals("in") && !ObjectUtil.isNull(ordermain)){
// //调拨入库
// allocateInWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
// .set(Inventory::getOrgId,inventory.getOrgId())
// .set(Inventory::getLocationId,inventory.getLocationId())
// .set(Inventory::getLocationState,"in");
// allocateInWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
// .set(WarehouseInventory::getOrgId,inventory.getOrgId())
// .set(WarehouseInventory::getLocationId,inventory.getLocationId())
// .set(WarehouseInventory::getLocationState,"in");
//
// } else if (inventory.getBussinessType().equals("allocate") && inventory.getLocationState().equals("out") && !ObjectUtil.isNull(ordermain)){
// //调拨出库,不操作
// allocateInWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
// .set(Inventory::getOrgId,null)
// .set(Inventory::getLocationId,null)
// .set(Inventory::getLocationState,"out");
// allocateInWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
// .set(WarehouseInventory::getOrgId,null)
// .set(WarehouseInventory::getLocationId,null)
// .set(WarehouseInventory::getLocationState,"out");
// }else if (inventory.getBussinessType().equals("destruction")){
// updateStateWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
// .set(Inventory::getLocationState,"out")
// .set(Inventory::getBussinessState,"destruction")
// .set(Inventory::getLocationId,inventory.getLocationId())
// .set(Inventory::getState,"destory");
// destroyOutWrapper.or().eq(WarehouseInventory::getEpc,inventory.getEpc());
// }else{
// //其他情况
// if (inventory.getBussinessType().equals("quick")){
// updateStateWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
// .set(Inventory::getLocationState,"in")
// .set(Inventory::getBussinessState,"normal")
// .set(Inventory::getLocationId,inventory.getLocationId())
// .set(Inventory::getState,"normal");
//
// updateStateWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
// .set(WarehouseInventory::getLocationId,inventory.getLocationId())
// .set(WarehouseInventory::getLocationState,"in");
// }else {
// updateStateWrapper1.or().eq(Inventory::getEpc,inventory.getEpc())
// .set(Inventory::getLocationState,inventory.getLocationState())
// .set(Inventory::getBussinessState,inventory.getBussinessState())
// .set(Inventory::getState,inventory.getState());
//
// updateStateWrapper2.or().eq(WarehouseInventory::getEpc,inventory.getEpc())
// .set(WarehouseInventory::getLocationState,inventory.getLocationState());
//
// }
//
//
// }
//
// }
//
// if (!updateStateWrapper1.isEmptyOfWhere()){
//
// inventoryService.update(updateStateWrapper1);
//
// warehouseInventoryService.update(updateStateWrapper2);
// }
//
// if (!allocateInWrapper1.isEmptyOfWhere()){
//
// inventoryService.update(allocateInWrapper1);
// warehouseInventoryService.update(allocateInWrapper2);
// }
//
// }
//
// return returnList;
// }
private OrderLog addLog(LogSummary logSummary,String string){
OrderLog orderLog = new OrderLog();
......@@ -619,10 +619,15 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
Collectors.collectingAndThen(Collectors.toList(), group -> {
NormalInOutDto result = new NormalInOutDto();
result.setOrgId(group.get(0).getOrgId());
result.setOrgName(group.get(0).getOrgName());
result.setOrgCode(group.get(0).getOrgCode());
result.setSizeName(group.get(0).getSizeName());
result.setTypeName(group.get(0).getTypeName());
result.setLocationId(group.get(0).getLocationId());
result.setSizeId(group.get(0).getSizeId());
result.setTypeId(group.get(0).getTypeId());
result.setPrice(group.get(0).getPrice());
result.setValuekey(result.getOrgCode()+result.getLocationId()+result.getLocationId()+result.getTypeId()+result.getSizeId()+result.getPrice());
result.setNumber(group.stream().mapToInt(NormalInOutDto::getNumber).sum());
return result;
})))
......@@ -664,6 +669,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
InventorySummary inventorySummary = new InventorySummary();
BeanPlusUtil.copyProperties(outDto,inventorySummary);
inventorySummary.setPrice(BigDecimal.valueOf(outDto.getNumber()).multiply(outDto.getPrice()));
inventorySummary.setLocationType("0");
inventorySummary.setUnitPrice(outDto.getPrice());
inventorySummary.setBrokenNumber(0);
inventorySummary.setExpireNumber(0);
......@@ -673,7 +679,13 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
if (outInState.equals("in")){
inventorySummary.setOutboundNumber(0);
inventorySummary.setUseNumber(0);
inventorySummary.setUseCount(0);
inventorySummary.setStockNumber(outDto.getNumber());
}else {
inventorySummary.setOutboundNumber(outDto.getNumber());
inventorySummary.setStockNumber(0);
inventorySummary.setUseNumber(outDto.getNumber());
inventorySummary.setUseCount(outDto.getNumber());
}
addList.add(inventorySummary);
}
......@@ -830,6 +842,7 @@ public class LogSummaryServiceImpl extends ServiceImpl<LogSummaryMapper, LogSumm
BeanPlusUtil.copyProperties(qucik,quickOrderLogReq);
orderLogReqList.add(quickOrderLogReq);
}
logSummaryReq.setOrderLogList(orderLogReqList);
}
if (ObjectUtil.isNotNull(logreq.getOrderMainId())){
//添加到redis中去(key是orderMainId)
......
......@@ -138,6 +138,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
private LogSummaryService logSummaryService;
@Resource
private LogDetailService logDetailService;
@Resource
private InventorySummaryMapper inventorySummaryMapper;
@Autowired
private RabbitMQSendMsg MQ;
......@@ -163,9 +166,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
Long orgId = req.getOrderType().equals("in")?req.getEndOrgId():Long.parseLong(req.getStartOrgId());
OrderMain one =null ;
//修改业务单可用次数
if (ObjectUtil.isNotNull(req.getBussinessCode())){
if (ObjectUtil.isNotNull(req.getBussinessCode()) && req.getBussinessCode().charAt(0) != 'C' && req.getBussinessCode().charAt(1) != 'K'){
one = setBusFormState(req, one, orgId);
}
if (ObjectUtil.isNotNull(req.getBussinessCode()) && req.getBussinessCode().charAt(0) == 'C' && req.getBussinessCode().charAt(1) == 'K'){
update(new LambdaUpdateWrapper<OrderMain>().set(OrderMain::getOrderCurrentState,1)
.eq(OrderMain::getOrderCode,req.getBussinessCode())
.eq(OrderMain::getStartOrgId,req.getEndOrgId()));
}
if (one!=null){
//判断该单据是否可以进行修改(如果审核中则不允许修改)
......@@ -357,6 +365,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
.set(LogSummary::getOrderCode,order.getOrderCode())
.set(LogSummary::getBussinessType,order.getBussinessType())
.eq(LogSummary::getId,req.getLogSummaryId()));
}
return list;
......@@ -374,9 +383,15 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//如果关联业务单据,那么需要将业务单据状态重新设置回来
Long orgId = one.getOrderType().equals("in")?one.getEndOrgId():one.getStartOrgId();
if (ObjectUtil.isNotNull(one.getBussinessCode())){
if (ObjectUtil.isNotNull(one.getBussinessCode()) && req.getBussinessCode().charAt(0) != 'C' && req.getBussinessCode().charAt(1) != 'K'){
setState2(orgId,one.getBussinessCode());
}
if (ObjectUtil.isNotNull(one.getBussinessCode()) && req.getBussinessCode().charAt(0) == 'C' && req.getBussinessCode().charAt(1) == 'K'){
update(new LambdaUpdateWrapper<OrderMain>().set(OrderMain::getOrderCurrentState,1)
.eq(OrderMain::getBussinessCode,one.getBussinessCode())
.eq(OrderMain::getStartOrgId,one.getEndOrgId()));
}
return removeById(one.getId());
}
......@@ -513,8 +528,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
//修改业务单据可用次数
private OrderMain 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())) {
......@@ -522,11 +536,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//入参
BusForm one1 = setState1(req.getOrderType(),orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
busFormService.updateById(one1);
//库存
BusForm one2 = setState2(orgId, one.getBussinessCode());
b=busFormService.updateById(one2);
busFormService.updateById(one2);
}
}
......@@ -535,14 +549,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//只需要改一条数据
//入参
BusForm one1 = setState1(req.getOrderType(),orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
busFormService.updateById(one1);
}
//入参为空,库里不为空
else if (ObjectUtil.isNull(req.getBussinessCode()) && ObjectUtil.isNotNull(one.getBussinessCode())){
//只需要改一条数据
//库存
BusForm one2 = setState2(orgId, one.getBussinessCode());
b=busFormService.updateById(one2);
busFormService.updateById(one2);
}
return one;
}else {
......@@ -550,7 +564,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
//只需要更改一条单据
//入参
BusForm one1 = setState1(req.getOrderType(),orgId, req.getBussinessCode());
a=busFormService.updateById(one1);
busFormService.updateById(one1);
}
return one;
}
......@@ -971,24 +985,18 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
return true;
}
//(只对summary表进行操作)
@Transactional(rollbackFor = Exception.class)
@Override
public boolean Accounting(UpdateOrderReq req) {
//将组织机构下面的所有仓库进行查询
//判断传递的订单主id是否存在
OrderMain orderMain = orderMainExist(req.getId());
List<Warehouse> warehouseList = warehouseService.list(new LambdaQueryWrapper<Warehouse>().eq(Warehouse::getOrgId,
orderMain.getOrderType().equals("in") ? orderMain.getEndOrgId() : orderMain.getStartOrgId()));
Map<String,Warehouse> warehouseMap=new HashMap<>();
warehouseList.forEach(warehouse -> warehouseMap.put(warehouse.getId(), warehouse));
// List<DetailJsonReq> childJsonList=new ArrayList<>();
// String detailJson = orderMain.getDetailJson();
//出入库传递的具体汇总信息
// List<DetailJsonReq> detailJsonList = JSONObject.parseArray(detailJson, DetailJsonReq.class);
LoginUser loginUser = LoginContext.getContext().getLoginUser();
//记账子单据不能传空
if (req.getDetailList().size()==0){
throw new ServiceException(OrderExceptionEnum.ORDERDETAIL_ISNOT_NULL);
......@@ -1012,8 +1020,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<OrderDetail> orderDetailList=new ArrayList<>();
//创建一个列表用于修改summary数据库表中数据。
List<UpdateOrderDetailReq> orderDetailReqList=new ArrayList<>();
// List<AccountingDto> accountingDtoList=new ArrayList<>();
String s="";
List<LogSummaryReq> logList=new ArrayList<>();
//比较两个子单id完全一致,判断传递的子单据id在数据库中是否存在,如果不存在则抛出子单据不存在异常
if (collect.size() == existingIds.size() && collect.containsAll(existingIds) && existingIds.containsAll(collect)){
//新增空装备
......@@ -1023,6 +1032,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
List<WarehouseInventory> addWareInvList=new ArrayList<>();
List<WarehouseInventory> delWareInvList=new ArrayList<>();
Map<String,LogSummaryReq> logMap=new HashMap<>();
//遍历子单
for (UpdateOrderDetailReq uploadDetailReq : reqList) {
OrderDetail orderDetail = new OrderDetail();
......@@ -1041,8 +1051,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
WarehouseInventory warehouseInventory=new WarehouseInventory();
if (uploadDetailReq.getModifyQuantity() >= 0 ){
//记账内容
// List<DetailJsonReq> childJson = uploadDetailReq.getChildJson();
for (DetailJsonReq detailJsonReq:JsonList) {
if (!warehouseMap.isEmpty()){
//判断是否有key存在,如果没有直接报错
......@@ -1056,10 +1064,11 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
}
//记账差值
if (ObjectUtil.isNull(detailJsonReq.getModifyQuantity())){
detailJsonReq.setModifyQuantity(uploadDetailReq.getModifyQuantity());
}
//记账差值
int subNum=detailJsonReq.getModifyQuantity()-(ObjectUtil.isNull(detailJsonReq.getNum())?0:detailJsonReq.getNum());
detailJsonReq.setSizeName(uploadDetailReq.getSizeName());
detailJsonReq.setTypeName(uploadDetailReq.getTypeName());
......@@ -1072,10 +1081,10 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
data.setTypeId(ObjectUtil.isNull(detailJsonReq.getTypeId())? uploadDetailReq.getTypeId():detailJsonReq.getTypeId());
BigDecimal price=BigDecimal.ZERO;
if (ObjectUtil.isNull(detailJsonReq.getPrice())){
price=equipmentTypeService.getOne(new LambdaQueryWrapper<EquipmentType>()
.eq(EquipmentType::getId,uploadDetailReq.getTypeId()))
.getPrice();
// price=equipmentTypeService.getOne(new LambdaQueryWrapper<EquipmentType>()
// .eq(EquipmentType::getId,uploadDetailReq.getTypeId()))
// .getPrice();
price=new BigDecimal(uploadDetailReq.getPrice());
}
data.setPrice(ObjectUtil.isNull(detailJsonReq.getPrice())? price.toString() :detailJsonReq.getPrice().toString());
data.setProperty(ObjectUtil.isNull(detailJsonReq.getProperty())?0:detailJsonReq.getProperty());
......@@ -1097,10 +1106,20 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
if (subNum>0){
//判断是否存在仓库id的key,如果存在直接获取并且修改后再次添加,如果不存在则直接put
if (logMap.containsKey(detailJsonReq.getLocationId())){
LogSummaryReq logSummaryReq = logMap.get(detailJsonReq.getLocationId());
logSummaryReq.setNumber(logSummaryReq.getNumber()+subNum);
logSummaryReq.setTypeName(logSummaryReq.getTypeName()+","+uploadDetailReq.getTypeName());
logMap.put(detailJsonReq.getLocationId(),logSummaryReq);
}else {
LogSummaryReq logSummaryReq = addLogSummary(loginUser,uploadDetailReq,detailJsonReq,subNum,orderMain);
logMap.put(detailJsonReq.getLocationId(),logSummaryReq);
}
//实际出库或者入库数量大于实际数量,则对空数据进行增删改查
if (orderMain.getOrderType().equals("in")){ //入库
for (int j = 0; j < subNum; j++) {
inventory.setEpc("0");
inventory.setEpc("000000"+DateTimeUtil.getCurrentDateTime().getTime()+String.format("%04d", j+1));
inventory.setLocationId(detailJsonReq.getLocationId());
inventory.setSizeId(ObjectUtil.isNull(detailJsonReq.getSizeId())? uploadDetailReq.getSizeId():detailJsonReq.getSizeId());
inventory.setTypeId(ObjectUtil.isNull(detailJsonReq.getTypeId())? uploadDetailReq.getTypeId():detailJsonReq.getTypeId());
......@@ -1110,6 +1129,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
inventory.setProperty(0);
addInvList.add(inventory);
warehouseInventory.setOrgId(orderMain.getEndOrgId());
warehouseInventory.setEpc("000000"+DateTimeUtil.getCurrentDateTime().getTime()+String.format("%04d", j+1));
warehouseInventory.setLocationId(detailJsonReq.getLocationId());
warehouseInventory.setTypeId(ObjectUtil.isNull(detailJsonReq.getTypeId())? uploadDetailReq.getTypeId():detailJsonReq.getTypeId());
warehouseInventory.setSizeId(ObjectUtil.isNull(detailJsonReq.getSizeId())? uploadDetailReq.getSizeId():detailJsonReq.getSizeId());
......@@ -1118,7 +1138,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
}else {//出库
List<Inventory> list1 = inventoryService.list(new LambdaQueryWrapper<Inventory>()
.eq(Inventory::getEpc, "0")
.eq(Inventory::getLocationId, detailJsonReq.getLocationId())
.eq(Inventory::getSizeId, ObjectUtil.isNull(detailJsonReq.getSizeId())? uploadDetailReq.getSizeId():detailJsonReq.getSizeId())
.eq(Inventory::getOrgId, orderMain.getStartOrgId())
......@@ -1126,7 +1146,7 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
.eq(Inventory::getPrice, detailJsonReq.getPrice())
.eq(Inventory::getLocationType, "0"));
List<WarehouseInventory> list2 = warehouseInventoryService.list(new LambdaQueryWrapper<WarehouseInventory>()
.eq(WarehouseInventory::getEpc, "0")
.eq(WarehouseInventory::getLocationId, detailJsonReq.getLocationId())
.eq(WarehouseInventory::getOrgId, orderMain.getStartOrgId())
.eq(WarehouseInventory::getSizeId, ObjectUtil.isNull(detailJsonReq.getSizeId())? uploadDetailReq.getSizeId():detailJsonReq.getSizeId())
......@@ -1172,8 +1192,6 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
}
}
if (addWareInvList.size()>0){
inventoryService.saveBatch(addInvList);
}
......@@ -1203,8 +1221,8 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
boolean b = updateById(orderMain);
//将修改内容存储记录(历史操作,数量,单据,价格,组织机构)
//创建记账操作记录并且记录到数据表order_log中
// boolean c = saveAccountingLog(req, s, updateQuantity);
boolean c = saveAccountingLog(req, s, updateQuantity);
// boolean c = saveAccountingLog(req, accountingDtoList, updateQuantity);
//修改装备汇总表中的数据 inventory_summary
Long orgId;
......@@ -1247,15 +1265,78 @@ 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()
List<Object> dataByTimestampRange = outInRecordRedisCache.getDataByTimestampRange(orderMain.getId());
redisCache.remove(orderMain.getId());
//取了之后再进行将东西添加到出入库记录
if (CollectionUtil.isNotEmpty(dataByTimestampRange)){
List<LogSummaryReq> collect1 = dataByTimestampRange.stream().map(obj -> (LogSummaryReq) obj).collect(Collectors.toList());
logList.addAll(collect1);
}
// collect1.add();
//添加日志
boolean b1 = addLogs(logList);
//更新主单据
return (a && b && c && d && e && f && g );
return (a && b && c && d && e && f && g && b1 );
}
private LogSummaryReq addLogSummary(LoginUser loginUser,UpdateOrderDetailReq uploadDetailReq,DetailJsonReq detailJsonReq,Integer subNum,OrderMain orderMain){
LogSummaryReq logSummaryReq = new LogSummaryReq();
logSummaryReq.setOrgId(uploadDetailReq.getOrgId());
logSummaryReq.setOrgName(loginUser.getOrgName());
logSummaryReq.setOrderMainId(orderMain.getId());
logSummaryReq.setOrderCode(orderMain.getOrderCode());
// 4 人工记账
logSummaryReq.setDeviceType(4);
logSummaryReq.setLocationId(detailJsonReq.getLocationId());
logSummaryReq.setLocationName(detailJsonReq.getLocationName());
logSummaryReq.setLocationType(0);
logSummaryReq.setUseTime(DateTimeUtil.getCurrentDateTime());
logSummaryReq.setEquipmentList(uploadDetailReq.getTypeName());
logSummaryReq.setOutInState(orderMain.getOrderType());
logSummaryReq.setNumber(subNum);
logSummaryReq.setCreateTime(DateTimeUtil.getCurrentDateTime());
logSummaryReq.setUserName(loginUser.getUserInfo().getRealName());
return logSummaryReq;
}
private boolean addLogs(List<LogSummaryReq> list){
//添加一个列表logSummary,添加一个logDetail列表,添加一个orderLog列表
// List<LogSummary> logSummaryList=new ArrayList<>();
List<LogDetail> logDetailList=new ArrayList<>();
List<OrderLog> orderLogList=new ArrayList<>();
for (LogSummaryReq ls:list) {
LogSummary logSummary = new LogSummary();
BeanPlusUtil.copyProperties(ls,logSummary);
logSummaryService.save(logSummary);
if (CollectionUtil.isNotEmpty(ls.getOrderLogList())){
for (OrderLogReq ol: ls.getOrderLogList()) {
OrderLog orderLog = new OrderLog();
BeanPlusUtil.copyProperties(ol,orderLog);
orderLogList.add(orderLog);
}
}
if (CollectionUtil.isNotEmpty(ls.getLogList())){
for (LogDetailReq ld:ls.getLogList()) {
LogDetail logDetail = new LogDetail();
BeanPlusUtil.copyProperties(ld,logDetail);
logDetail.setSummaryId(logSummary.getId());
logDetailList.add(logDetail);
}
}
}
if (CollectionUtil.isNotEmpty(orderLogList)){
orderLogService.saveBatch(orderLogList);
}
if (CollectionUtil.isNotEmpty(logDetailList)){
logDetailService.saveBatch(logDetailList);
}
return true;
}
public boolean policeUnBindEqs(UpdateOrderReq req,List<UpdateOrderDetailReq> orderDetailReqList,Long orgId){
//根据传递的装备信息对警员进行解绑操作(判断警员下面是否有装备信息,如果有则直接进行修改或者删除,如果没有则跳过不处理)
......
......@@ -1825,11 +1825,11 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
}
if (ObjectUtil.isNotNull(req.getUserId())){
eq.and(wrapper -> wrapper.eq(Reassignment::getAgentId,req.getUserId())
.or().like(Reassignment::getExamineState,req.getUserId()));
.or().like(Reassignment::getHistoryAssign,req.getUserId()));
}else {
LoginUser loginUser = LoginContext.getContext().getLoginUser();
eq.and(wrapper -> wrapper.eq(Reassignment::getAgentId,loginUser.getUserId())
.or().like(Reassignment::getExamineState,loginUser.getUserId()));
.or().like(Reassignment::getHistoryAssign,loginUser.getUserId()));
}
Page<Reassignment> page = reassignmentService.page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
return PageResultFactory.createPageResult(page);
......
......@@ -353,7 +353,9 @@ public class TjServiceImpl implements TjService {
//
// 等待所有 CompletableFuture 完成
allOf.join();
tjOrgPriceDtoList = futures.stream()
.map(CompletableFuture::join)
.collect(Collectors.toList());
if (req.getOrgId()!=1369509498032808905L){
//获取本级数据
......@@ -430,6 +432,8 @@ public class TjServiceImpl implements TjService {
finalTjOrgPriceDto.setDestoryPrice(BigDecimal.ZERO);
List<String> orgList= inventorySummaryMapper.getTotalData(String.valueOf(req.getOrgId()));
List<TjOrgPriceDto> tjOrgPriceDtoList=new ArrayList<>();
//根据条件查询财务汇总表
List<CompletableFuture<TjOrgPriceDto>> futures = orgList.stream()
.map(orgId -> CompletableFuture.supplyAsync(() ->
......@@ -441,12 +445,11 @@ public class TjServiceImpl implements TjService {
// 等待所有 CompletableFuture 完成
allOf.join();
List<TjOrgPriceDto> tjOrgPriceDtoList = orgList.parallelStream()
.map(orgId -> CompletableFuture.supplyAsync(() ->
priceSumSummaryMapper.TjOrgPrice(orgId, req.getYear(), req.getTypeIdsList(), req.getSizeNameList())))
tjOrgPriceDtoList = futures.stream()
.map(CompletableFuture::join)
.collect(Collectors.toList());
if (req.getOrgId()!=1369509498032808905L){
//获取本级数据
TjOrgPriceDto OrgDataSelf=priceSumSummaryMapper.TjOrgPriceBySelf(req.getOrgId(), req.getYear(),req.getTypeIdsList(),
......
......@@ -183,6 +183,19 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
Warehouse warehouse = WarehoustExist(req.getId());
BeanPlusUtil.copyProperties(req, warehouse);
warehouse.setUpdateTime(DateTimeUtil.getCurrentDateTime());
MQDto mqDto = new MQDto();
mqDto.setApi("warehouseState");
mqDto.setWarehouseId(req.getId());
if (req.getState()==1){
mqDto.setMessage("仓库启用");
mqDto.setWarehouseState(1);
}else {
mqDto.setMessage("仓库禁用");
mqDto.setWarehouseState(0);
}
mqDto.setType(10);
MQ.SendMsg("warehouseMsg",req.getOrgId().toString(),mqDto);//推送至仓库主机
return this.updateById(warehouse);
}
......@@ -236,9 +249,15 @@ public class WarehouseServiceImpl extends ServiceImpl<WarehouseMapper,Warehouse>
// String date="2023-12-01 00:00:00";
// Long startTimeStamp = DateTimeUtil.TimeStringToLong(date);
// Long endTimeStamp = DateTimeUtil.getCurrentDateTime().toInstant().toEpochMilli();
List<Object> dataByTimestampRange =new ArrayList<>();
if (ObjectUtil.isNotNull(req.getStartTime()) && ObjectUtil.isNotNull(req.getEndTime())){
Long startTimeStamp = DateTimeUtil.TimeDateToLong(req.getStartTime());
Long endTimeStamp = DateTimeUtil.TimeDateToLong(req.getEndTime());
List<Object> dataByTimestampRange = temperatureRedisCache.getDataByTimestampRange(req.getId(), startTimeStamp, endTimeStamp);
dataByTimestampRange = temperatureRedisCache.getDataByTimestampRange(req.getId(), startTimeStamp, endTimeStamp);
}else {
temperatureRedisCache.getRedisTemplate().opsForZSet().range("WarehouseDev:"+req.getId(),0,-1);
}
List<HumidityAndtemperature> collect = dataByTimestampRange.stream()
.map(obj -> (HumidityAndtemperature) obj)
.sorted(Comparator.comparingLong(HumidityAndtemperature::getCreateTime).reversed())
......
......@@ -697,7 +697,7 @@
join base_inventory i on a.epc=i.epc
<if test="req.state == 'expire'">
and i.warranty_period != 0 and DATE_ADD(i.production_date, INTERVAL i.warranty_period MONTH) &lt; NOW() and
i.state != "broken" and i.state != "destoty"
i.state != "broken" and i.state != "destory"
</if>
<if test="req.state == 'destory'">
and i.state = "destory"
......
......@@ -308,6 +308,7 @@
(
org_id_int = ${item[0]} AND location_id = '${item[1]}' AND type_id = ${item[2]} AND size_id = '${item[3]}'
AND unit_price = ${item[4]}
and property=${item[5]}
)
</foreach>
......@@ -786,7 +787,7 @@
i.production_date,i.warranty_period,i.maintenance_period, i.term_state,
i.area_id,et.name as type_name,es.name as size_name,po.org_name as org_name,
bs.name as supplier_name,COALESCE(bc.name, bw.name) as location_name,
es.photo as photo,es.instructions as instructions
es.photo as photo,es.instructions as instructions,et.photo as type_photo,es.photo as size_photo
FROM base_warehouse_inventory wi
LEFT JOIN base_inventory i ON i.epc = wi.epc
LEFT JOIN base_equipment_type et ON et.id = i.type_id
......@@ -812,7 +813,6 @@
<if test="req.price !=null and req.price != ''">
and i.price=#{req.price}
</if>
ORDER BY wi.type_id,i.size_id
<if test="pageNo != null and pageNo != '' and pageSize != null and pageSize != '' ">
limit #{pageNo},#{pageSize}
......
......@@ -84,6 +84,9 @@
<if test="req.endOrgId != null and req.endOrgId != ''">
and end_org_id = #{req.endOrgId}
</if>
<if test="req.orderCurrentState != null and req.orderCurrentState!=''" >
and order_current_state = 1
</if>
<if test="req.orderType=='in'">
and ( end_org_user_id = #{userId}
or history_assign like CONCAT('%', #{userId}, '%') or current_assign like CONCAT('%', #{userId}, '%'))
......
......@@ -13,6 +13,7 @@ public interface CommonConstants {
String FORM_Trigger="formTrigger";
String PROCESS_STATUS="processStatus";
String START_USER_INFO="startUser";
String START_USER="startUserName";
String ORDER_ID="orderId";
String TYPE_ORDER="typeOrder";
String START_ORG_NAME="startOrgName";//发物单位
......
......@@ -33,4 +33,6 @@ public class ApplyDTO extends PageDTO {
private String processId;
private String startUser;
}
......@@ -35,4 +35,6 @@ public class TaskDTO extends PageDTO {
private Boolean isCreateNullDate;
private String processId;
//申请人
private String startUser;
}
......@@ -160,6 +160,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
processVariables.put(OUT_IN_STATE,processInstanceDto.getOutInState());
}
processVariables.put(START_USER_INFO,JSONObject.toJSONString(StartUser));
processVariables.put(START_USER,StartUser.getRealName());
processVariables.put(PROCESS_STATUS,BUSINESS_STATUS_1);
//领用人,调岗人
if (ObjectUtil.isNotNull(processInstanceDto.getUserName())){
......
......@@ -458,16 +458,19 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
taskQuery = taskQuery.processDefinitionNameLike("%"+taskDTO.getProcessDefinitionName()+"%");
}
//装备名称
if (ObjectUtil.isNotNull(taskDTO.getTypeName()) && ! taskDTO.getTypeName().trim().isEmpty()){
taskQuery=taskQuery.processVariableValueLike(INVLIST,"%"+taskDTO.getTypeName()+"%");
}
//发物单位
if (ObjectUtil.isNotNull(taskDTO.getStartOrgName()) && ! taskDTO.getStartOrgName().trim().isEmpty()){
taskQuery = taskQuery.processVariableValueLike(START_ORG_NAME,"%"+taskDTO.getStartOrgName()+"%");
taskQuery = taskQuery.processVariableValueLike(START_ORG_NAME,"%"+taskDTO.getStartOrgName()+"%")
.or().processVariableValueLike(USER_NAME,"%"+taskDTO.getStartOrgName()+"%");
}
if (ObjectUtil.isNotNull(taskDTO.getEndOrgName()) && ! taskDTO.getEndOrgName().trim().isEmpty()){
taskQuery = taskQuery.processVariableValueLike(END_ORG_NAME,"%"+taskDTO.getEndOrgName()+"%");
taskQuery = taskQuery.processVariableValueLike(END_ORG_NAME,"%"+taskDTO.getEndOrgName()+"%")
.or().processVariableValueLike(USER_NAME,"%"+taskDTO.getEndOrgName()+"%");
}
//流程id
if (ObjectUtil.isNotNull(taskDTO.getProcessId()) && ! taskDTO.getProcessId().trim().isEmpty()){
......@@ -483,6 +486,10 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}else if (!ObjectUtil.isNull(taskDTO.getBusinessStatus()) && taskDTO.getBusinessStatus().equals("已结束")){
taskQuery=taskQuery.processVariableValueEquals(PROCESS_STATUS,taskDTO.getBusinessStatus());
}
//申请人
if (ObjectUtil.isNotNull(taskDTO.getStartUser())){
taskQuery=taskQuery.processVariableValueEquals(START_USER,taskDTO.getStartUser());
}
Object aa= taskQuery.list();
// taskQuery.
......@@ -570,11 +577,13 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
//发物单位
if (ObjectUtil.isNotNull(taskDTO.getStartOrgName()) && ! taskDTO.getStartOrgName().trim().isEmpty()){
historicTaskQuery = historicTaskQuery.processVariableValueLike(START_ORG_NAME,"%"+taskDTO.getStartOrgName()+"%");
historicTaskQuery = historicTaskQuery.processVariableValueLike(START_ORG_NAME,"%"+taskDTO.getStartOrgName()+"%")
.or().processVariableValueLike(USER_NAME,"%"+taskDTO.getStartOrgName()+"%");
}
if (ObjectUtil.isNotNull(taskDTO.getEndOrgName()) && ! taskDTO.getEndOrgName().trim().isEmpty()){
historicTaskQuery = historicTaskQuery.processVariableValueLike(END_ORG_NAME,"%"+taskDTO.getEndOrgName()+"%");
historicTaskQuery = historicTaskQuery.processVariableValueLike(END_ORG_NAME,"%"+taskDTO.getEndOrgName()+"%")
.or().processVariableValueLike(USER_NAME,"%"+taskDTO.getEndOrgName()+"%");
}
//流程id
if (ObjectUtil.isNotNull(taskDTO.getProcessId()) && ! taskDTO.getProcessId().trim().isEmpty()){
......@@ -590,6 +599,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}else if (!ObjectUtil.isNull(taskDTO.getBusinessStatus()) && taskDTO.getBusinessStatus().equals("已结束")){
historicTaskQuery=historicTaskQuery.processVariableValueEquals(PROCESS_STATUS,taskDTO.getBusinessStatus());
}
//申请人
if (ObjectUtil.isNotNull(taskDTO.getStartUser()) ){
historicTaskQuery=historicTaskQuery.processVariableValueEquals(START_USER,taskDTO.getStartUser());
}
// List<HistoricTaskInstance> tasks = historicTaskQuery.list();
List<HistoricTaskInstance> tasks = historicTaskQuery.listPage((taskDTO.getPageNo() - 1) * taskDTO.getPageSize(), taskDTO.getPageSize());
long count = historicTaskQuery.count();
......@@ -705,10 +719,12 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
}
//发物单位
if (ObjectUtil.isNotNull(applyDTO.getStartOrgName()) && ! applyDTO.getStartOrgName().trim().isEmpty()){
desc = desc.variableValueLike(START_ORG_NAME,"%"+applyDTO.getStartOrgName()+"%");
desc = desc.variableValueLike(START_ORG_NAME,"%"+applyDTO.getStartOrgName()+"%")
.or().variableValueLike(USER_NAME,"%"+applyDTO.getStartOrgName()+"%");
}
if (ObjectUtil.isNotNull(applyDTO.getEndOrgName()) && ! applyDTO.getEndOrgName().trim().isEmpty()){
desc = desc.variableValueLike(END_ORG_NAME,"%"+applyDTO.getEndOrgName()+"%");
desc = desc.variableValueLike(END_ORG_NAME,"%"+applyDTO.getEndOrgName()+"%")
.or().variableValueLike(USER_NAME,"%"+applyDTO.getEndOrgName()+"%");
}
//流程id
if (ObjectUtil.isNotNull(applyDTO.getProcessId()) && ! applyDTO.getProcessId().trim().isEmpty()){
......@@ -725,6 +741,11 @@ public class FlowTaskServiceImpl extends FlowServiceFactory implements IFlowTask
desc=desc.variableValueEquals(PROCESS_STATUS,applyDTO.getBusinessStatus());
}
//申请人
if (ObjectUtil.isNotNull(applyDTO.getStartUser())){
desc=desc.variableValueEquals(START_USER,applyDTO.getStartUser());
}
List<HistoricProcessInstance> historicProcessInstances = desc.listPage((applyDTO.getPageNo() - 1) * applyDTO.getPageSize(), applyDTO.getPageSize());
long count = desc.count();
// long count = historyService.createHistoricProcessInstanceQuery()
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论