Commit 759913b3 by 赵剑炜

盘点功能,未测试

parent 1f9b6638
......@@ -9,8 +9,15 @@ import javax.validation.constraints.NotNull;
public class BussinessInventoryReq {
@NotNull(message = "预览时,盘点仓库不能为空", groups = { ValidationApi.detail.class})
private String warehouseId;
private String orderId;
private String type;
private String typeList;
private String orgId;
private String orderState;
private String pageNo;
private String pageSize;
private String startTime;
private String endTime;
private String column;
private String order;
}
\ No newline at end of file
......@@ -24,16 +24,23 @@ public class UpdateInventoryReq extends BaseRequest {
/**
*
*/
@NotNull(message = "仓库id不能为空",groups = {add.class,edit.class})
@NotNull(message = "组织机构id不能为空",groups = {add.class,edit.class})
private Long orgId;
/**
*
*/
@NotNull(message = "仓库id不能为空",groups = {add.class,edit.class})
private String warehouseId;
/**
* 单据单号
*/
private String orgName;
private String operator;
private String inventoryType;
private String examineState;
private String rules;
private String userId;
private String ExamineState;
}
......@@ -6,9 +6,10 @@ import lombok.Getter;
@Getter
public enum InventoryExceptionEnum implements IExceptionEnum {
INVENTORY_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"装备信息不存在"),
INVENTORY_BEYOND_STOCK(CommonConstant.DEFAULT_USER_ERROR_CODE,"填写的报废的装备数量大于实际能进行报废的数量"),
BROKENNUM_BEYOND_STOCK(CommonConstant.DEFAULT_USER_ERROR_CODE,"审核中的数量已存在最大可报废数量,现提交失败"),
INVENTORY_NOT_EXIST(CommonConstant.DEFAULT_BIZ_ERROR_CODE,"装备信息不存在"),
INVENTORY_BEYOND_STOCK(CommonConstant.DEFAULT_BIZ_ERROR_CODE,"填写的报废的装备数量大于实际能进行报废的数量"),
BROKENNUM_BEYOND_STOCK(CommonConstant.DEFAULT_BIZ_ERROR_CODE,"审核中的数量已存在最大可报废数量,现提交失败"),
ORDER_NOT_EXIST(CommonConstant.DEFAULT_BIZ_ERROR_CODE,"盘点单据不存在"),
;
/**
* 错误编码
......
......@@ -6,6 +6,7 @@ import com.junmp.jyzb.api.bean.dto.BussinessInventoryDto;
import com.junmp.jyzb.api.bean.query.BussinessInventoryReq;
import com.junmp.jyzb.api.bean.req.UpdateInventoryReq;
import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq;
import com.junmp.jyzb.entity.BussinessInventory;
import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.service.BussinessInventoryService;
import com.junmp.jyzb.service.CabinetBoxService;
......@@ -33,9 +34,9 @@ public class BussinessInventoryController {
private BussinessInventoryService BussinessInventoryService;
//盘库申请
@PostMapping("/AddStocktakeOrder")
@PostMapping("/AddStocktake")
@ApiOperation("盘库申请")
public ApiRes<String> AddStocktakeOrder (@RequestBody @Validated(ValidationApi.add.class) UpdateInventoryReq req){
public ApiRes<String> AddStocktake (@RequestBody @Validated(ValidationApi.add.class) UpdateInventoryReq req){
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId()))
{
......@@ -56,5 +57,19 @@ public class BussinessInventoryController {
return ApiRes.success(BussinessInventoryService.Check(req));
}
//盘库申请
@PostMapping("/Start")
@ApiOperation("开始盘点")
public ApiRes<Boolean> Start (@RequestBody BussinessInventoryReq req){
//判断是否有工作流id,如果有则将状态进行修改
return ApiRes.success(BussinessInventoryService.Start(req));
}
//盘库申请
@PostMapping("/GetPage")
@ApiOperation("查询列表")
public ApiRes<PageResult<BussinessInventory>> GetPage (@RequestBody BussinessInventoryReq req){
//判断是否有工作流id,如果有则将状态进行修改
return ApiRes.success(BussinessInventoryService.GetPage(req));
}
}
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnoreProperties;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;
import org.springframework.data.annotation.Id;
import java.io.Serializable;
import java.util.Date;
@TableName(value ="bussiness_inventory_detail")
@Data
@AllArgsConstructor
@NoArgsConstructor
@JsonIgnoreProperties(ignoreUnknown = true)
public class BussinessDetail implements Serializable {
/**
* id
*/
@TableId(value = "id")
@Id
private Long id;
/**
* 工作流id
*/
@TableField(value = "inventory_id")
private Long inventoryId;
/**
* 工作流id
*/
@TableField(value = "type_id")
private String typeId;
/**
* 单据业务类型
*/
@TableField(value = "type_name")
private String typeName;
/**
* 单据编号
*/
@TableField(value = "size_id")
private String sizeId;
/**
* 年度
*/
@TableField(value = "size_name")
private String sizeName;
/**
* 月
*/
@TableField(value = "stock_number")
private Integer stockNumber;
/**
* 申请时间
*/
@TableField(value = "fix_number")
private Integer fixNumber;
/**
* 仓库名称
*/
@TableField(value = "num")
private Integer num;
/**
* 仓库名称
*/
@TableField(value = "state")
private String state;
/**
* 创建时间
*/
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time",fill = FieldFill.UPDATE)
private Date updateTime;
private static final long serialVersionUID = 1L;
}
\ No newline at end of file
......@@ -11,6 +11,7 @@ import org.springframework.data.elasticsearch.annotations.Document;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.util.List;
/**
*
......@@ -73,6 +74,11 @@ public class BussinessInventory implements Serializable {
/**
* 仓库名称
*/
@TableField(value = "warehouse_id")
private String warehouseId;
/**
* 仓库名称
*/
@TableField(value = "warehouse_name")
private String warehouseName;
/**
......@@ -134,11 +140,6 @@ public class BussinessInventory implements Serializable {
@TableField(value = "examine_state")
private String examineState;
/**
* 归还日期
*/
@TableField(value = "manual_state")
private Date manualState;
......@@ -154,7 +155,7 @@ public class BussinessInventory implements Serializable {
@TableField(value = "update_time",fill = FieldFill.UPDATE)
private Date updateTime;
private List<BussinessDetail> detailList;
private static final long serialVersionUID = 1L;
......
package com.junmp.jyzb.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.junmp.jyzb.entity.BussinessDetail;
import com.junmp.jyzb.entity.BussinessInventory;
import org.apache.ibatis.annotations.Mapper;
@Mapper
public interface BussinessInventoryDetailMapper extends BaseMapper<BussinessDetail> {
}
package com.junmp.jyzb.service;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.jyzb.api.bean.dto.BussinessInventoryDto;
import com.junmp.jyzb.api.bean.query.BussinessInventoryReq;
import com.junmp.jyzb.api.bean.req.UpdateInventoryReq;
import com.junmp.jyzb.entity.BussinessDetail;
import com.junmp.jyzb.entity.BussinessInventory;
import com.sun.org.apache.xpath.internal.operations.Bool;
public interface BussinessInventoryDetailService extends IService<BussinessDetail> {
}
\ No newline at end of file
......@@ -11,6 +11,7 @@ import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq;
import com.junmp.jyzb.entity.BusForm;
import com.junmp.jyzb.entity.BussinessInventory;
import com.junmp.v2.db.api.page.PageResult;
import com.sun.org.apache.xpath.internal.operations.Bool;
import java.util.List;
......@@ -21,4 +22,8 @@ public interface BussinessInventoryService extends IService<BussinessInventory>
BussinessInventoryDto Check(BussinessInventoryReq req);
Boolean Start(BussinessInventoryReq req);
PageResult<BussinessInventory> GetPage(BussinessInventoryReq req);
}
package com.junmp.jyzb.service.impl;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.entity.BussinessDetail;
import com.junmp.jyzb.entity.BussinessInventory;
import com.junmp.jyzb.mapper.BussinessInventoryDetailMapper;
import com.junmp.jyzb.mapper.BussinessInventoryMapper;
import com.junmp.jyzb.service.BussinessInventoryDetailService;
import com.junmp.jyzb.service.BussinessInventoryService;
import org.springframework.stereotype.Service;
@Service
public class BussinessInventoryDetailServiceImpl extends ServiceImpl<BussinessInventoryDetailMapper, BussinessDetail>
implements BussinessInventoryDetailService {
}
......@@ -3,37 +3,49 @@ package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.service.IFlowInstanceService;
import com.junmp.jyzb.api.bean.dto.BussinessInventoryDto;
import com.junmp.jyzb.api.bean.dto.CabinetDto;
import com.junmp.jyzb.api.bean.dto.EquipmentListDto;
import com.junmp.jyzb.api.bean.dto.OrderMainDto;
import com.junmp.jyzb.api.bean.query.BussinessInventoryReq;
import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.api.bean.req.UpdateInventoryReq;
import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq;
import com.junmp.jyzb.api.exception.enums.EquipmentExceptionEnum;
import com.junmp.jyzb.api.exception.enums.InventoryExceptionEnum;
import com.junmp.jyzb.entity.*;
import com.junmp.jyzb.mapper.BussinessInventoryDetailMapper;
import com.junmp.jyzb.mapper.BussinessInventoryMapper;
import com.junmp.jyzb.mapper.CabinetBoxPoliceMapper;
import com.junmp.jyzb.service.BussinessInventoryService;
import com.junmp.jyzb.service.CabinetBoxPoliceService;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.service.OrderNumService;
import com.junmp.jyzb.service.*;
import com.junmp.jyzb.utils.DateTimeUtil;
import com.junmp.jyzb.utils.RabbitMQSendMsg;
import com.junmp.v2.common.exception.base.ServiceException;
import com.junmp.v2.common.util.BeanPlusUtil;
import com.junmp.v2.db.api.factory.PageFactory;
import com.junmp.v2.db.api.factory.PageResultFactory;
import com.junmp.v2.db.api.page.PageResult;
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.sun.org.apache.xpath.internal.operations.Bool;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource;
import java.beans.Transient;
import java.time.LocalDateTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.stream.Collectors;
@Service
public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventoryMapper, BussinessInventory>
......@@ -46,9 +58,15 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
@Resource
private SysDictService sysDictService;
@Resource
private BussinessInventoryDetailService bussinessInventoryDetailService;
@Resource
private WarehouseService warehouseService;
@Resource
private InventorySummaryService inventorySummaryService;
@Resource
private OrderNumService orderNumService;
@Autowired
private RabbitMQSendMsg MQ;
@Transactional(rollbackFor = Exception.class)
public String AddInvOrder(UpdateInventoryReq req) {
......@@ -72,7 +90,7 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(BI.getId());
startProcessInstanceDTO.setOrderType("stocktakeOrder");
startProcessInstanceDTO.setUserId(req.getUserId());
// startProcessInstanceDTO.setUserId(req.getUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
BI.setProcessId(Long.valueOf(ProcessInstanceId));
......@@ -122,6 +140,54 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
}
//开始盘点
@Transactional(rollbackFor = Exception.class)
@Override
public Boolean Start(BussinessInventoryReq req) {
String orderId=req.getOrderId();
BussinessInventory bi= this.getById(orderId);
if (bi!=null)
{
List<BussinessDetail> details = bussinessInventoryDetailService.list(
new LambdaQueryWrapper<BussinessDetail>().eq(BussinessDetail::getInventoryId, bi.getId())
);
bi.setDetailList(details);
Warehouse warehouseSet= warehouseService.getById(bi.getWarehouseId());//先锁库,再下发盘点
warehouseSet.setIsLocked(true);
bi.setInventoryState("running");
MQ.SendMsg("BussinessInv",warehouseSet.getOrgId().toString(),bi);
}
else
{
throw new ServiceException(InventoryExceptionEnum.ORDER_NOT_EXIST);
}
return true;
}
@Override
public PageResult<BussinessInventory> GetPage(BussinessInventoryReq req) {
//排序字段处理,将驼峰改成和数据库同步的字段名(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
(req.getOrder().equalsIgnoreCase("asc")|| req.getOrder().equalsIgnoreCase("desc")) &&
ObjectUtil.isNotNull(req.getOrder()) &&!req.getOrder().trim().isEmpty()) {
//修改字段,和数据库字段进行统一
req.setColumn(req.getColumn().replaceAll("[A-Z]", "_$0").toLowerCase());
req.setOrder(req.getOrder().toLowerCase());
}
LambdaQueryWrapper<BussinessInventory> wrapper = createWrapper(req);
// 使用 PageHelper 开始分页
// Page<BussinessInventory> page = PageFactory.getDefaultPage(Long.parseLong(req.getPageNo()),Long.parseLong(req.getPageSize()));
Page<BussinessInventory> page = this.page(PageFactory.getDefaultPage(), wrapper);
return PageResultFactory.createPageResult(page);
}
/**
* 设置单据单号
* 通用方法,根据组织机构id以及业务单据类型来进行设置
......@@ -157,4 +223,15 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
}
}
private LambdaQueryWrapper<BussinessInventory> createWrapper(BussinessInventoryReq req) {
LambdaQueryWrapper<BussinessInventory> wrapper = new LambdaQueryWrapper<>();
if (ObjectUtil.isEmpty(req)) {
return wrapper;
}
wrapper.eq(BussinessInventory::getOrgId, req.getOrgId());
wrapper.eq(ObjectUtil.isNotNull(req.getWarehouseId()), BussinessInventory::getWarehouseId, req.getWarehouseId());
wrapper.eq(ObjectUtil.isNotNull(req.getType()), BussinessInventory::getBussinessType, req.getType());
return wrapper;
}
}
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论