Commit fa41c7e7 by 李小惠

修改快速入库接口以及其他问题

parent ef0d24b6
......@@ -17,20 +17,28 @@ public class EqsSumDto implements Serializable {
* 装备类型名称
*/
private String typeName;
/**
* 装备类型id
*/
private String sizeId;
/**
* 装备类型名称
*/
private String sizeName;
//组织机构id
private Long orgId;
//组织机构名称
private String orgName;
//总数(在库数+出库数+销毁数
private Integer totalSum;
//仓库在库数
private Integer inSum;
//总数(在库数+出库数)
private Integer number;
//仓库在库数(包含报废区)
private Integer ckStockNumber;
//仓库出库数
private Integer outSum;
private Integer ckOutboundNumber;
//单警柜出库数
private Integer cabinetOutSum;
private Integer djgOutboundNumber;
//单警柜在库数
private Integer cabinetInSum;
//报废数
private Integer brokenSum;
private Integer djgStockNumber;
//销毁
private Integer destructionNumber;
}
......@@ -36,17 +36,17 @@ public class LogDetailDto implements Serializable {
/**
* 装备名称
*/
private String equipmentName;
private String typeName;
/**
* 装备号型
*/
private String equipmentSize;
private String sizeName;
/**
* 供应商
*/
private String equipmentSupplier;
private String supplierName;
/**
* 装备类型:0单件/1装备包
......@@ -100,4 +100,6 @@ public class LogDetailDto implements Serializable {
private String locationName;
private BigDecimal price;
private String outInState;
}
......@@ -19,11 +19,20 @@ public class ReassignmentDto {
private String id;
/**
* 经办人
*/
private String userName;
/**
* 工作流id
*/
private String processId;
/**
* 订单编号
*/
private String orderCode;
/**
* 调岗警员id
*/
private String policeId;
......
......@@ -18,8 +18,13 @@ public class TjOrgEqsDto {
* 组织机构编码
*/
private String orgCode;
/**
* 上层组织机构id
*/
private Long parentId;
/**
* 装备总数(在库数+出库数+销毁数)
* 装备总数
*/
private Integer totalNumber;
/**
......@@ -42,12 +47,7 @@ public class TjOrgEqsDto {
* 销毁数
*/
private Integer destructionNumber;
/**
* 子节点
*/
List<TjOrgEqsDto> orgNode;
/**
* 装备名称汇总
*/
List<EqsSumDto> eqsList;
private List<EqsSumDto> children;
}
package com.junmp.jyzb.api.bean.query;
import lombok.Data;
import java.util.List;
@Data
public class EpcCheckReq {
private List<String> epcList;
}
......@@ -19,13 +19,15 @@ public class QueryReassignmentReq extends BaseRequest {
/**
* 经办人
*/
private String userId;
private String userName;
/**
* 工作流id
*/
private String processDefinitionId;
private String orderCode;
/**
* 调岗警员id
*/
......
......@@ -17,6 +17,10 @@ public class UpdateReassignmentReq extends BaseRequest {
/**
* 经办人
*/
private String userName;
/**
* 申请人id
*/
private String userId;
/**
......@@ -25,6 +29,11 @@ public class UpdateReassignmentReq extends BaseRequest {
private String processDefinitionId;
/**
* 业务类型
*/
private String bussinessType;
/**
* 调岗警员id
*/
private String policeId;
......
......@@ -43,7 +43,8 @@ public class InventoryController {
}
//填充汇总信息(将表中的数据base_inventory_summary进行删除并且根据base_inventory表中数据同步)
//填充汇总信息(根据base_inventory表中数据汇总同步)--第一次进行数据同步,适用于3.0初始化inventory_summary表
//该方法只有插入语句,要注意inventory_summary表中没有数据,仅有结构,否则数据不准确
@PostMapping("/SetInventoryMsg")
@ApiOperation("填充汇总表信息")
public ApiRes<Boolean> setInventoryMsg() {
......@@ -231,7 +232,12 @@ public class InventoryController {
return ApiRes.success(inventorySummaryService.EquipmentStatistics(req));
}
//判断epc是否存在
@PostMapping("/checkEPCList")
@ApiOperation("判断epc是否存在")
public ApiRes<List<String>> checkEPCList(@RequestBody EpcCheckReq req){
return ApiRes.success(inventoryService.checkEPCList(req));
}
}
......@@ -32,6 +32,12 @@ public class TjController {
@PostMapping("/TjOrgEqs")
@ApiOperation("/装备统计报表")
public ApiRes<List<TjOrgEqsDto>> TjOrgEqs(@RequestBody InventoryReq req){
return ApiRes.success(tjService.showOrgList(req.getOrgId(),true));
// return ApiRes.success(tjService.showOrgList(req.getOrgId(),true));
return ApiRes.success(tjService.showOrgEqsList(req));
}
@PostMapping("test")
public ApiRes<List<TjOrgEqsDto>> test(@RequestBody InventoryReq req){
return ApiRes.success(tjService.test(req));
}
}
......@@ -136,5 +136,11 @@ public class OrderMain implements Serializable {
@TableField("destory_name")
private String destoryName;
@TableField("location_id")
private String locationId;
@TableField("location_name")
private String locationName;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -32,6 +32,12 @@ public class Reassignment implements Serializable {
private String processId;
/**
* 订单编号
*/
@TableField(value = "order_code")
private String orderCode;
/**
* 调岗警员id
*/
@TableField(value = "police_id")
......@@ -77,6 +83,12 @@ public class Reassignment implements Serializable {
private String examineState;
/**
* 经办人
*/
@TableField(value = "user_name")
private String userName;
/**
* 申请时间
*/
@TableField(value = "apply_time")
......
......@@ -13,11 +13,9 @@ import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderDetailReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.api.bean.req.UpdateReassignmentReq;
import com.junmp.jyzb.entity.BusForm;
import com.junmp.jyzb.entity.OrderDetail;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.entity.Reassignment;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.service.*;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.rabbitmq.client.Channel;
import com.rabbitmq.client.Connection;
......@@ -35,8 +33,11 @@ import org.slf4j.LoggerFactory;
import org.springframework.stereotype.Component;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.UUID;
import java.util.stream.Collectors;
......@@ -58,6 +59,9 @@ import java.util.stream.Collectors;
@Resource
private ReassignmentService reassignmentService;
@Resource
private StocktakeService stocktakeService;
protected Logger logger = LoggerFactory.getLogger(this.getClass());
@SneakyThrows
......@@ -71,8 +75,7 @@ import java.util.stream.Collectors;
// 获取流程定义ID
String processDefinitionId = event.getProcessDefinitionId();
List<HistoricVariableInstance> orderType = historyService.createHistoricVariableInstanceQuery().processInstanceId(processInstanceId).variableName("orderType").list();
if(orderType.size()>0)
{
if(orderType.size()>0) {
String Type= orderType.get(0).getValue().toString();
......@@ -81,8 +84,7 @@ import java.util.stream.Collectors;
OrderMainReq req=new OrderMainReq();
req.setProcessId(processInstanceId);
OrderMain existOrder= orderMainService.getOne(new LambdaQueryWrapper<OrderMain>()
.eq(OrderMain::getProcessId, req.getProcessId())
);
.eq(OrderMain::getProcessId, req.getProcessId()));
UpdateOrderReq updateOrderReq = new UpdateOrderReq();
BeanPlusUtil.copyProperties(existOrder,updateOrderReq);
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
......@@ -117,6 +119,55 @@ import java.util.stream.Collectors;
if (Type.equals("stocktakeOrder")){//盘库申请单
}
if (Type.equals("quickOrder")){
//创建快速出库单并且通过快速出库单再去创建入库单(主单)
OrderMain orderMain = new OrderMain();
OrderMain existOrder= orderMainService.getOne(new LambdaQueryWrapper<OrderMain>()
.eq(OrderMain::getProcessId, processInstanceId));
existOrder.setExamineState("finished");
existOrder.setOrderState("ready");
BeanPlusUtil.copyProperties(existOrder,orderMain);
orderMain.setEndOrgId(existOrder.getStartOrgId());
orderMain.setEndOrgName(existOrder.getStartOrgName());
orderMain.setOrderType("in");
orderMain.setId(UUID.randomUUID().toString());
//修改订单编号
UpdateOrderReq req = new UpdateOrderReq();
BeanPlusUtil.copyProperties(orderMain,req);
OrderNum orderNum = orderMainService.setOrderCode(req);
String codeValue=String.format("%04d",orderNum.getNum());
orderMain.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
String.format("%02d",LocalDateTime.now().getMonth().getValue())+
String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
orderMainService.updateById(existOrder);
orderMainService.save(orderMain);
//创建子单
List<OrderDetail> list = orderDetailService.list(new LambdaQueryWrapper<OrderDetail>()
.eq(OrderDetail::getOrderId, existOrder.getId()));
List<Object[]> searchCriteria=new ArrayList<>();
List<OrderDetail> collect = list.stream().map(orderDetail -> {
OrderDetail orderDetail1 = new OrderDetail();
BeanPlusUtil.copyProperties(orderDetail, orderDetail1);
//修改主单据id
orderDetail1.setOrderId(orderMain.getId());
//修改单据出入状态
orderDetail1.setType("in");
//修改仓库id
orderDetail1.setWarehouseId(orderMain.getLocationId());
orderDetail1.setWarehouseName(orderMain.getLocationName());
//新增创建时间
orderDetail1.setCreateTime(DateTimeUtil.getCurrentDateTime());
Object[] criteria=new Object[]{existOrder.getStartOrgId(),orderDetail.getWarehouseId(),orderDetail.getTypeId(),orderDetail.getSizeId(),orderDetail.getPrice()};
searchCriteria.add(criteria);
return orderDetail1;
}).collect(Collectors.toList());
orderDetailService.saveBatch(collect);
//将库存表中的装备的仓库id进行修改
//将summary汇总表中数据进行修改
}
}
}
......
......@@ -22,8 +22,6 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
List<Map<String, Object>> getLocationInventory(@Param("queryType")String queryType, @Param("idMsg")String idMsg);
//将表中数据全部删除(base_inventory_summary)
boolean deleteAllMsg();
//根据单警柜统计装备信息
boolean SetCabinetInventory(@Param("brokenNumberDays") Integer brokenNumberDays);
......@@ -59,4 +57,7 @@ public interface InventoryMapper extends BaseMapper<Inventory> {
boolean insertInventorySummary(@Param("req") BatchEditingInvsReq req,@Param("brokenNumberDays")Integer brokenNumberDays);
//判断epc是否存在
List<String> checkEPCList(@Param("list") List<String> epcList);
}
\ No newline at end of file
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.api.bean.dto.InventorySumDto;
import com.junmp.jyzb.api.bean.dto.NormalInOutDto;
import com.junmp.jyzb.api.bean.dto.WarehouseDto;
import com.junmp.jyzb.api.bean.dto.*;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.entity.InventorySummary;
import org.apache.ibatis.annotations.Mapper;
......@@ -38,4 +37,12 @@ public interface InventorySummaryMapper extends BaseMapper<InventorySummary> {
//出入库时无单据查询库存汇总并统计更新或者记账时根据单据查询库存汇总并统计更新
List<InventorySummary> selectByItems(@Param("list") List<Object[]> searchCriteria);
//根据组织机构查询报表中的本级及下一级信息
List<TjOrgEqsDto> getByOrgId(@Param("orgId") Long orgId);
List<EqsSumDto> getEqsByOrgId(@Param("list") List<Long> collect1,@Param("sizeId") String sizeId,@Param("typeId") String typeId);
List<TjOrgEqsDto> test(@Param("req") InventoryReq req);
List<TjOrgEqsDto> selectDynamicView();
}
\ No newline at end of file
......@@ -79,5 +79,6 @@ public interface InventoryService extends IService<Inventory> {
//批量信息修改
boolean BatchEditingInvsInfo(BatchEditingInvsReq req);
//判断epc是否存在
List<String> checkEPCList(EpcCheckReq req);
}
......@@ -11,6 +11,7 @@ import com.junmp.jyzb.api.bean.query.QueryOrderLogReq;
import com.junmp.jyzb.api.bean.req.UpdateOrderReq;
import com.junmp.jyzb.entity.OrderLog;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.entity.OrderNum;
import com.junmp.v2.db.api.page.PageResult;
import java.util.List;
......@@ -50,4 +51,6 @@ public interface OrderMainService extends IService<OrderMain> {
ProcessOrderDto GetByProcessId(OrderMainReq req);
OrderNum setOrderCode(UpdateOrderReq req);
}
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.dto.TjOrgEqsDto;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import java.util.List;
public interface TjService {
//根据组织机构获取当前组织机构和下一级组织机构
List<TjOrgEqsDto> showOrgList(Long orgId, boolean flag);
List<TjOrgEqsDto> showOrgEqsList(InventoryReq req);
List<TjOrgEqsDto> test(InventoryReq req);
}
......@@ -17,6 +17,7 @@ import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.jyzb.entity.BusForm;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.entity.OrderNum;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import com.junmp.jyzb.service.BusFormService;
......
......@@ -126,6 +126,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
@Override
@Transactional(rollbackFor = Exception.class)
public boolean setInventoryMsg(){
//查询字典表中的临近报废天数
SysDictItem sysDictItem = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
......@@ -137,13 +138,10 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}else {
brokenNumberDays=Integer.parseInt(sysDictItem.getItemValue());
}
//清空数据库中已存在的信息
inventoryMapper.deleteAllMsg();
//放入单警柜信息汇总
boolean b = inventoryMapper.SetCabinetInventory(brokenNumberDays);
//放入仓库区域信息汇总
boolean b1 = inventoryMapper.SetWarehouseInventory(brokenNumberDays);
//放入单警柜信息汇总
boolean b = inventoryMapper.SetCabinetInventory(brokenNumberDays);
return (b && b1);
}
......@@ -374,6 +372,7 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}
}
//修改库存信息汇总
@Transactional(rollbackFor = Exception.class)
public boolean setInventorySummary(BatchEditingInvsReq req){
......@@ -596,7 +595,11 @@ public class InventoryServiceImpl extends ServiceImpl<InventoryMapper, Inventory
}
//判断epc是否存在
@Override
public List<String> checkEPCList(EpcCheckReq req) {
return inventoryMapper.checkEPCList(req.getEpcList());
}
......
......@@ -86,24 +86,6 @@ public class InventorySummaryServiceImpl extends ServiceImpl<InventorySummaryMa
List<InventorySummary> list = list(wp);
long size = list(wp).size();
// Page<InventorySummary> sumList= this.page(PageFactory.getDefaultPage(req.getPageNo(),req.getPageSize()),wp);
// List<InventorySummary> records = sumList.getRecords();
// List<InventorySummary> collect = list.stream().map(data -> {
// Inventory inventory = inventoryService.list(new LambdaQueryWrapper<Inventory>()
// .eq(Inventory::getOrgId, data.getOrgId())
// .eq(Inventory::getSizeId, data.getSizeId())
// .eq(Inventory::getTypeId, data.getTypeId())).get(0);
//教学使用说明
// String instructions = equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>()
// .eq(EquipmentSize::getId, data.getSizeId())).getInstructions();
// data.setInstructions(instructions);
// data.setWarrantyPeriod(inventory.getWarrantyPeriod());
// data.setMaintenancePeriod(inventory.getMaintenancePeriod());
// String photo = equipmentSizeService.getOne(new LambdaQueryWrapper<EquipmentSize>().eq(EquipmentSize::getId,inventory.getSizeId())).getPhoto();
// data.setPhoto(photo);
// return data;
// }).collect(Collectors.toList());
//对该装备typeId进行排序
Collections.sort(list, new Comparator<InventorySummary>() {
@Override
......
......@@ -8,9 +8,11 @@ import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.api.bean.query.LogDetailReq;
import com.junmp.jyzb.api.bean.query.LogSummaryReq;
import com.junmp.jyzb.entity.LogDetail;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.service.InventoryService;
import com.junmp.jyzb.service.LogDetailService;
import com.junmp.jyzb.mapper.LogDetailMapper;
import com.junmp.jyzb.service.OrderMainService;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
......@@ -37,6 +39,9 @@ public class LogDetailServiceImpl extends ServiceImpl<LogDetailMapper, LogDetail
@Resource
private LogDetailMapper logDetailMapper;
@Resource
private OrderMainService orderMainService;
//根据logSumId查询详情
@Override
public List<LogDetailDto> GetDetailByLogSumId(LogDetailReq req) {
......
......@@ -35,6 +35,8 @@ import com.junmp.v2.dict.service.SysDictItemService;
import com.junmp.v2.dict.service.SysDictService;
import com.junmp.v2.office.api.OfficeExcelApi;
import com.junmp.v2.office.api.bean.ExcelExportParam;
import org.flowable.engine.TaskService;
import org.flowable.task.api.Task;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.rabbit.core.RabbitAdmin;
import org.springframework.amqp.rabbit.core.RabbitTemplate;
......@@ -101,6 +103,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
@Resource
private SysDictService sysDictService;
@Resource
protected TaskService taskService;
@Transactional(rollbackFor = Exception.class)
@Override
......@@ -152,25 +157,47 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
order.setInventoryQuantity(sumNum);
order.setCreateTime(DateTimeUtil.getCurrentDateTime());
//执行工作流
if (req.getExamineState().equals("working"))
String processInstanceId = null;
if (req.getExamineState().equals("working") && !req.getBussinessType().equals("quick"))//其他出入库单
{
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setOrderType("workOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
order.setProcessId(ProcessInstanceId);
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}else {//快速移库单
StartProcessInstanceDTO startProcessInstanceDTO=new StartProcessInstanceDTO();
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(order.getId());
startProcessInstanceDTO.setOrderType("quickOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
processInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
}
if (ObjectUtil.isNotNull(req.getId()) && ! req.getId().trim().isEmpty()){
//list返回数据
List<String> list=new ArrayList<>();
if (processInstanceId.substring(0,2).equals("TG")){
String substring = processInstanceId.substring(2);
order.setProcessId(substring);
if (ObjectUtil.isNotNull(req.getId()) && !req.getId().trim().isEmpty()) {
updateById(order);
} else {
//保存
this.save(order);
}
Task currentTask = taskService.createTaskQuery().processInstanceId(substring).singleResult();
// 直接完成当前任务
taskService.complete(currentTask.getId());
}else {
order.setProcessId(processInstanceId);
if (ObjectUtil.isNotNull(req.getId()) && !req.getId().trim().isEmpty()) {
updateById(order);
} else {
//保存
this.save(order);
}
//list返回数据
List<String> list=new ArrayList<>();
}
list.add(order.getId());
for (OrderDetail orderDetail:detailList) {
list.add(Long.toString(orderDetail.getId()));
......@@ -388,14 +415,14 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
for (OrderDetail orderDetail:list) {
OrderDetailDto orderDetailDto = new OrderDetailDto();
BeanPlusUtil.copyProperties(orderDetail,orderDetailDto);
if (orderMain.getOrderType().equals("out")){
InventorySummary one = inventorySummaryService.getOne(new LambdaQueryWrapper<InventorySummary>()
.eq(InventorySummary::getLocationId, orderDetail.getWarehouseId())
.eq(InventorySummary::getSizeId, orderDetail.getSizeId())
.eq(InventorySummary::getTypeId, orderDetail.getTypeId())
.eq(InventorySummary::getUnitPrice, orderDetail.getPrice()));
orderDetailDto.setStockNumber(one.getStockNumber());
}
// if (orderMain.getOrderType().equals("out")){
// InventorySummary one = inventorySummaryService.getOne(new LambdaQueryWrapper<InventorySummary>()
// .eq(InventorySummary::getLocationId, orderDetail.getWarehouseId())
// .eq(InventorySummary::getSizeId, orderDetail.getSizeId())
// .eq(InventorySummary::getTypeId, orderDetail.getTypeId())
// .eq(InventorySummary::getUnitPrice, orderDetail.getPrice()));
// orderDetailDto.setStockNumber(one.getStockNumber());
// }
orderDetailDtoList.add(orderDetailDto);
}
orderDto.setDetailList(orderDetailDtoList);
......
......@@ -61,6 +61,7 @@ import org.springframework.web.bind.annotation.RequestBody;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
import java.time.LocalDateTime;
import java.util.*;
import java.util.stream.Collectors;
......@@ -109,6 +110,9 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
@Resource
private PoliceFaceService policeFaceService;
@Resource
private StocktakeService stocktakeService;
private static final String REDIS_POLICE = "Policeman_";
private static final String REDIS_ORG = "Organization_";
......@@ -696,13 +700,20 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
BeanPlusUtil.copyProperties(req,reassignment);
//先判断该单据id是否存在,如果存在,进行更新操作即可
if (ObjectUtil.isNotNull(req.getId()) && ! req.getId().trim().isEmpty() && ObjectUtil.isEmpty(req.getProcessDefinitionId())){
if (ObjectUtil.isNotNull(req.getId()) && ! req.getId().trim().isEmpty() && ObjectUtil.isNull(req.getProcessDefinitionId())){
reassignment.setUpdateTime(DateTimeUtil.getCurrentDateTime());
reassignmentService.updateById(reassignment);
return reassignment.getId();
}
reassignment.setCreateTime(DateTimeUtil.getCurrentDateTime());
if (ObjectUtil.isNull(req.getId()) || req.getId().isEmpty()){
OrderNum orderNum = stocktakeService.setOrderCode("", req.getOrgId());
String codeValue=String.format("%04d",orderNum.getNum());
reassignment.setOrderCode(orderNum.getBussinessType()+orderNum.getYear()+
String.format("%02d", LocalDateTime.now().getMonth().getValue())+
String.format("%02d",LocalDateTime.now().getDayOfMonth())+codeValue);
reassignmentService.save(reassignment);
}
//执行工作流
if (req.getExamineState().equals("working"))
{
......@@ -732,7 +743,7 @@ public class PolicemanServiceImpl extends ServiceImpl<PolicemanMapper, Policeman
}
LambdaQueryWrapper<Reassignment> eq = new LambdaQueryWrapper<Reassignment>()
.eq(ObjectUtil.isNotNull(req.getOrgId()), Reassignment::getOrgId, req.getOrgId())
.eq(!req.getExamineState().equals("all"), Reassignment::getExamineState, req.getExamineState())
.eq(ObjectUtil.isNotNull(req.getExamineState()) && !req.getExamineState().trim().isEmpty(), Reassignment::getExamineState, req.getExamineState())
.like(ObjectUtil.isNotNull(req.getPoliceName()), Reassignment::getPoliceName, req.getPoliceName())
.ge(ObjectUtil.isNotNull(req.getStartTime()), Reassignment::getApplyTime, req.getStartTime())
.le(ObjectUtil.isNotNull(req.getEndTime()), Reassignment::getApplyTime, req.getEndTime())
......
......@@ -10,6 +10,7 @@ import com.junmp.jyzb.api.bean.dto.StocktakeDto;
import com.junmp.jyzb.api.bean.query.StocktakeReq;
import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq;
import com.junmp.jyzb.api.exception.enums.OrderExceptionEnum;
import com.junmp.jyzb.entity.OrderMain;
import com.junmp.jyzb.entity.OrderNum;
import com.junmp.jyzb.entity.Stocktake;
import com.junmp.jyzb.service.OrderNumService;
......
package com.junmp.jyzb.service.impl;
import com.junmp.jyzb.api.bean.dto.EqsSumDto;
import com.junmp.jyzb.api.bean.dto.OrgDto;
import com.junmp.jyzb.api.bean.dto.TjOrgEqsDto;
import com.junmp.jyzb.api.bean.query.InventoryReq;
import com.junmp.jyzb.entity.PubOrg;
import com.junmp.jyzb.mapper.InventorySummaryMapper;
import com.junmp.jyzb.mapper.PubOrgMapper;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.service.PubOrgService;
import com.junmp.jyzb.service.TjService;
import com.junmp.v2.common.util.BeanPlusUtil;
import org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.util.ArrayList;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
@Service
public class TjServiceImpl implements TjService {
......@@ -22,6 +25,9 @@ public class TjServiceImpl implements TjService {
@Resource
private PubOrgService pubOrgService;
@Resource
private InventorySummaryMapper inventorySummaryMapper;
/**
* 根据当前组织机构获取本级及下一级的组织机构
* @param orgId
......@@ -44,7 +50,6 @@ public class TjServiceImpl implements TjService {
BeanPlusUtil.copyProperties(pubOrg,tjOrgEqsDto2);
compare2.add(0,tjOrgEqsDto2);
}
tjOrgEqsDto.setOrgNode(compare2);
returnList.add(tjOrgEqsDto);
//获取该组织机构下一层数据,仅限一层
......@@ -53,14 +58,13 @@ public class TjServiceImpl implements TjService {
if (flag){
for (TjOrgEqsDto one:compare1) {
List<TjOrgEqsDto> tjOrgEqsDtos = showOrgList(one.getOrgId(), false);
one.setOrgNode(tjOrgEqsDtos);
}
}
returnList.addAll(compare1);
return returnList;
}
public List<TjOrgEqsDto> compare(List<TjOrgEqsDto> list){
Comparator<TjOrgEqsDto> orgComparator = (value1, value2) -> {
......@@ -94,4 +98,68 @@ public class TjServiceImpl implements TjService {
}
//装备统计报表
@Override
public List<TjOrgEqsDto> showOrgEqsList(InventoryReq req) {
//我先查询出他组织机构id中的数据,然后放在list的第一个,然后将他的下一层全部查询出来以后,根据组织机构编号进行比较,最终输出一个有序的list返回
List<TjOrgEqsDto> list= inventorySummaryMapper.getByOrgId(req.getOrgId());
List<Long> collect1 = list.stream().map(tjOrgEqsDto -> {
Long orgId=tjOrgEqsDto.getOrgId();
return orgId;
}).collect(Collectors.toList());
//将组织机构下库存信息信息查询出来
List<EqsSumDto> childrenList=inventorySummaryMapper.getEqsByOrgId(collect1,req.getTypeId(),req.getSizeId());
Map<Long, List<EqsSumDto>> eqsSumDtoMap = new HashMap<>();
for (EqsSumDto eqsSumDto : childrenList) {
Long orgId = eqsSumDto.getOrgId();
if (eqsSumDtoMap.containsKey(orgId)) {
List<EqsSumDto> eqsSumDtoList = eqsSumDtoMap.get(orgId);
eqsSumDtoList.add(eqsSumDto);
} else {
List<EqsSumDto> eqsSumDtoList = new ArrayList<>();
eqsSumDtoList.add(eqsSumDto);
eqsSumDtoMap.put(orgId, eqsSumDtoList);
}
}
for (TjOrgEqsDto tjOrgEqsDto : list) {
Long orgId = tjOrgEqsDto.getOrgId();
if (eqsSumDtoMap.containsKey(orgId)) {
List<EqsSumDto> eqsSumDtoList = eqsSumDtoMap.get(orgId);
tjOrgEqsDto.setChildren(eqsSumDtoList);
}
}
//对查询的组织机构进行有序排列
List<TjOrgEqsDto> collect = list.stream()
.sorted((o1, o2) -> {
String orgCode1 = o1.getOrgCode();
String orgCode2 = o2.getOrgCode();
// Check if either orgCode contains letters
boolean hasLetter1 = orgCode1.matches(".*[a-zA-Z].*");
boolean hasLetter2 = orgCode2.matches(".*[a-zA-Z].*");
if (hasLetter1 && hasLetter2) {
return orgCode1.compareTo(orgCode2); // Alphabetical order
} else if (hasLetter1) {
return 1; // o2 with letters should come first
} else if (hasLetter2) {
return -1; // o1 with letters should come first
} else {
return orgCode1.compareTo(orgCode2); // Numeric order
}
})
.collect(Collectors.toList());
return collect;
}
@Override
public List<TjOrgEqsDto> test(InventoryReq req) {
List<TjOrgEqsDto> tJOrgEqsDtoList = inventorySummaryMapper.test(req);
List<TjOrgEqsDto> dynamicViewList = inventorySummaryMapper.selectDynamicView();
return dynamicViewList;
}
}
......@@ -37,7 +37,7 @@ public class ClearLogAction implements JobAction {
@Override
public void action() {
// //获取两月前的日期
//// ConfigExpander.getClearLogOffsetValue()
// ConfigExpander.getClearLogOffsetValue()
// Integer offset = 60;
// //Date maxTime = DateUtil.offsetMonth(new Date(), offset);
// Date maxTime = DateUtil.offsetDay(new Date(),offset);
......
......@@ -12,7 +12,7 @@ public class UpdateSummaryAction implements JobAction {
@Resource
private InventoryService inventoryService;
public void action(){
inventoryService.setInventoryMsg();
// inventoryService.setInventoryMsg();
}
......
......@@ -71,17 +71,13 @@
</select>
<delete id="deleteAllMsg">
delete from base_inventory_summary
</delete>
<insert id="SetCabinetInventory">
INSERT INTO base_inventory_summary (id,org_id_int,org_name,type_id, type_name,size_id,size_name,location_id,location_name,
INSERT INTO base_inventory_summary_type2 (id,org_id_int,org_name, org_code,type_id,type_name,size_id,size_name,location_id,location_name,
number,unit_price,price,stock_number, outbound_number,destruction_number,expire_number,
broken_number,use_number,near_broken_number,location_type,create_time,update_time)
select
MAX(t.id) as id,t.orgId,t.orgName,t.type_id,t.typeName,t.size_id,t.sizeName,t.locationId,t.locationName,sum(t.number) as number,
MAX(t.id) as id,t.orgId,t.orgName,t.orgCode,t.type_id,t.typeName,t.size_id,t.sizeName,t.locationId,t.locationName,sum(t.number) as number,
t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,
sum(t.destructionNumber)as destructionNumber,sum(t.expireNumber)as expireNumber,sum(t.brokenNumber)as brokenNumber,
sum(t.useNumber)as useNumber,sum(t.nearBrokenNumber)as nearBrokenNumber,t.location_type,NOW(),NOW()
......@@ -90,6 +86,7 @@ delete from base_inventory_summary
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
po.org_code as orgCode,
bcb.cabinet_id as locationId,
bc.name as locationName,
bi.type_id,
......@@ -122,11 +119,11 @@ delete from base_inventory_summary
</insert>
<insert id="SetWarehouseInventory">
INSERT INTO base_inventory_summary (id,org_id_int,org_name,location_id,location_name,type_id, type_name,size_id,
INSERT INTO base_inventory_summary_type2 (id,org_id_int,org_name,org_code,location_id,location_name,type_id, type_name,size_id,
size_name,number,unit_price,price, stock_number, outbound_number,destruction_number,
expire_number,broken_number,use_number,near_broken_number,location_type,create_time,update_time)
select
MAX(t.id) as id,t.orgId,t.orgName,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,sum(t.number) as number,
MAX(t.id) as id,t.orgId,t.orgName,t.orgCode,t.locationId,MAX(t.locationName),t.type_id,t.typeName,t.size_id,t.sizeName,sum(t.number) as number,
t.unitPrice,sum(t.price)as price,sum(t.stockNumber)as stockNumber,sum(t.outboundNumber)as outboundNumber,
sum(t.destructionNumber)as destructionNumber,sum(t.destructionNumber) as expireNumber,sum(t.brokenNumber)as brokenNumber,sum(t.useNumber)as useNumber,
sum(t.nearBrokenNumber)as nearBrokenNumber,t.location_type,NOW(),NOW()
......@@ -135,6 +132,7 @@ delete from base_inventory_summary
UUID() as id,
bi.org_id_int as orgId,
po.org_name as orgName,
po.org_code as orgCode,
bi.location_id as locationId,
bw.name as locationName,
bi.type_id,
......@@ -462,7 +460,12 @@ delete from base_inventory_summary
GROUP BY type_id,size_id,bi.org_id_int,bi.area_id
ORDER BY type_id,size_id
</select>
<select id="checkEPCList" resultType="java.lang.String">
select epc FROM base_inventory where epc in
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
</select>
</mapper>
\ No newline at end of file
......@@ -256,6 +256,7 @@
sum(near_broken_number)as nearBrokenNumber,sum(use_number)as useNumber
FROM base_inventory_summary where org_id_int=#{req.orgId}
</select>
<select id="selectByEqs" resultType="com.junmp.jyzb.entity.InventorySummary">
SELECT sum(stock_number) as stockNumber,size_id as sizeId,type_id as typeId,MAX(size_name) as sizeName,
MAX(type_name) as typeName,org_id_int as orgId,MAX(org_name) as orgName
......@@ -271,6 +272,45 @@
)
</foreach>
</select>
<select id="getByOrgId" resultType="com.junmp.jyzb.api.bean.dto.TjOrgEqsDto"
parameterType="java.lang.Long">
select * from view_orgeqs_sum where org_id=#{orgId} or parent_id=#{orgId}
</select>
<select id="getEqsByOrgId" resultType="com.junmp.jyzb.api.bean.dto.EqsSumDto">
SELECT type_id,max(type_name) as type_name,org_id_int as org_id,max(org_name) as org_name,
<if test="sizeId !=null and sizeId != ''">
size_id,max(size_name) as size_name,
</if>
(sum((case when (`its`.`location_type` = 0) then `its`.`stock_number` else 0 end))+sum((case when (`its`.`location_type` = 0) then `its`.`outbound_number` else 0 end))+sum((case when (`its`.`location_type` = 0) then `its`.`destruction_number` else 0 end))) as number,
sum((case when (`its`.`location_type` = 0) then `its`.`stock_number` else 0 end)) AS `ck_stock_number`,
sum((case when (`its`.`location_type` = 0) then `its`.`outbound_number` else 0 end)) AS `ck_outbound_number`,
sum((case when (`its`.`location_type` = 0) then `its`.`destruction_number` else 0 end)) AS `destruction_number`,
sum((case when (`its`.`location_type` = 1) then `its`.`stock_number` else 0 end)) AS `djg_stock_number`,
sum((case when (`its`.`location_type` = 1) then `its`.`outbound_number` else 0 end)) AS `djg_outbound_number`
FROM `base_inventory_summary_type2` its
where org_id_int IN
<foreach collection="list" item="item" open="(" separator="," close=")">
#{item}
</foreach>
<if test="typeId !=null and typeId != ''">
and type_id=#{typeId}
</if>
<if test="sizeId !=null and sizeId != ''">
and size_id=#{sizeId}
</if>
GROUP BY org_id_int,type_id
<if test="sizeId !=null and sizeId != ''">
,size_id
</if>
</select>
<select id="test" resultType="com.junmp.jyzb.api.bean.dto.TjOrgEqsDto" statementType="CALLABLE">
{CALL view_sum_total(#{req.typeId, mode=IN, jdbcType=VARCHAR})}
</select>
<select id="selectDynamicView" resultType="com.junmp.jyzb.api.bean.dto.TjOrgEqsDto">
SELECT * FROM dynamic_view
</select>
<delete id="deleteByWarehouse"
parameterType="com.junmp.jyzb.api.bean.dto.WarehouseDto">
......
......@@ -39,7 +39,7 @@
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,ld.* FROM base_log_summary ls
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>
</mapper>
<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
<parent>
<artifactId>junmp-jyzb-app</artifactId>
<groupId>com.junmp.jyzb</groupId>
<version>1.0.0</version>
</parent>
<modelVersion>4.0.0</modelVersion>
<artifactId>jyzb-boot</artifactId>
<version>1.0.0</version>
<name>jyzb-boot</name>
<packaging>war</packaging>
<<<<<<< HEAD
=======
>>>>>>> develop
<dependencies>
<dependency>
<groupId>com.fasterxml.jackson.core</groupId>
<artifactId>jackson-annotations</artifactId>
</dependency>
<dependency>
<groupId>p6spy</groupId>
<artifactId>p6spy</artifactId>
</dependency>
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>log-biz-manage</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>v2-security-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>v2-config-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>v2-db-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>v2-log-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>swagger2-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>v2-redis-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>file-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>system-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>auth-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>validator-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.v2</groupId>
<artifactId>job-boot-starter</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.jyzb</groupId>
<artifactId>jyzb-biz</artifactId>
</dependency>
<dependency>
<groupId>com.junmp.jyzb</groupId>
<artifactId>jyzb-process</artifactId>
</dependency>
<!--MQTT-->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-integration</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-stream</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.integration</groupId>
<artifactId>spring-integration-mqtt</artifactId>
</dependency>
</dependencies>
<build>
<finalName>jyzb-boot</finalName>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
<executions>
<execution>
<goals>
<goal>repackage</goal>
</goals>
</execution>
</executions>
<configuration>
<!-- 如果没有该项配置,则devtools不会起作用,即应用不会restart -->
<mainClass>com.junmp.jyzb.boot.JyzbBootApplication</mainClass>
<fork>true</fork>
</configuration>
</plugin>
</plugins>
</build>
</project>
scanner:
open: false
# 配置第三方请求
junmp:
swagger:
base-package: com.junmp
id:
worker-id: 1
data-center-id: 1
epoch: 1656036996843
max: 9999
log:
type: db
ds: true #是否多数据源
knife4j:
enable: true
setting:
enableDebug: false
# basic:
# enable: true
# username: ning
# password: ning
spring:
datasource:
driver-class-name: com.mysql.cj.jdbc.Driver
<<<<<<< HEAD
url: jdbc:mysql://192.168.3.128:3306/db_jyzb?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true
=======
url: jdbc:mysql://192.168.3.128/db_jyzb?autoReconnect=true&useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=CONVERT_TO_NULL&useSSL=false&serverTimezone=CTT&nullCatalogMeansCurrent=true
>>>>>>> ce2cec735d8197f0f6b77fb7df738d825354bd3c
username: junmp
password: 123456
redis:
#host: 192.168.3.188
host: 192.168.3.188
port: 6379
database: 1
password:
flowable:
dmn:
enabled: false
cmmn:
enabled: false
idm:
enabled: false
async-history-executor-activate: false
async-executor-activate: false
check-process-definitions: false
content:
enabled: false
app:
enabled: false
eventregistry:
enabled: false
#mybatis plus 设置
mybatis-plus:
configuration:
cache-enabled: true
lazy-loading-enabled: true
multiple-result-sets-enabled: true
map-underscore-to-camel-case: true #开启驼峰命名
global-config:
banner: false
enable-sql-runner: true
db-config:
id-type: assign_id
table-underline: true
# mapper-locations: classpath*:com/junmp/junmpProcess/mapper/**/xml/*Mapper.xml
mapper-locations: classpath*:/mapper/**/*Mapper.xml
flowable:
dmn:
enabled: false
cmmn:
enabled: false
idm:
enabled: false
async-history-executor-activate: false
async-executor-activate: false
check-process-definitions: false
content:
enabled: false
app:
enabled: false
eventregistry:
enabled: false
com:
mqtt:
url: tcp://broker.emqx.io:1883 #这里要写 tcp:// 不能是 mqtt,不然不是合法的 schema,源码中有
clientId: mqtt_test_spring
topics: iot/#,home/#
username: admin
password: public
timeout: 10
keepalive: 20
\ No newline at end of file
package com.junmp.junmpProcess.service.impl;
import cn.hutool.core.collection.CollUtil;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONObject;
import com.alibaba.fastjson.TypeReference;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
......@@ -51,6 +52,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
@Resource
private SysUserService sysUserService;
@Override
public void updateState(Integer state, String instanceId) {
// 激活
......@@ -130,16 +132,8 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
}
ProcessInstanceBuilder processInstanceBuilder = runtimeService.createProcessInstanceBuilder();
ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionKey(processInstanceDto.getProcessDefinitionId())
.latestVersion().singleResult();
// if (processDefinition == null )
// {
// return ApiRes.failure("流程不存在或已挂起");
// } else if (processDefinition.isSuspended())
// {
// return ApiRes.failure("流程不存在或已挂起");
// }
// try {
// ProcessDefinition processDefinition = repositoryService.createProcessDefinitionQuery().processDefinitionKey(processInstanceDto.getProcessDefinitionId())
// .latestVersion().singleResult();
ProcessInstance processInstance = processInstanceBuilder
......@@ -152,12 +146,7 @@ public class FlowInstanceServiceImpl extends FlowServiceFactory implements IFlow
Object skip = runtimeService.getVariable(processInstance.getId(), "skip");
if (ObjectUtils.isNotEmpty(skip) && BooleanUtils.toBoolean(skip.toString())){
Task currentTask = taskService.createTaskQuery().processInstanceId(processInstance.getId()).singleResult();
// 直接完成当前任务
taskService.complete(currentTask.getId());
return processInstance.getId();
return "TG"+processInstance.getId();
}
else
{
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论