Commit 759913b3 by 赵剑炜

盘点功能,未测试

parent 1f9b6638
...@@ -9,8 +9,15 @@ import javax.validation.constraints.NotNull; ...@@ -9,8 +9,15 @@ import javax.validation.constraints.NotNull;
public class BussinessInventoryReq { public class BussinessInventoryReq {
@NotNull(message = "预览时,盘点仓库不能为空", groups = { ValidationApi.detail.class}) @NotNull(message = "预览时,盘点仓库不能为空", groups = { ValidationApi.detail.class})
private String warehouseId; private String warehouseId;
private String orderId;
private String type; private String type;
private String typeList; 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 { ...@@ -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; 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; ...@@ -6,9 +6,10 @@ import lombok.Getter;
@Getter @Getter
public enum InventoryExceptionEnum implements IExceptionEnum { public enum InventoryExceptionEnum implements IExceptionEnum {
INVENTORY_NOT_EXIST(CommonConstant.DEFAULT_USER_ERROR_CODE,"装备信息不存在"), INVENTORY_NOT_EXIST(CommonConstant.DEFAULT_BIZ_ERROR_CODE,"装备信息不存在"),
INVENTORY_BEYOND_STOCK(CommonConstant.DEFAULT_USER_ERROR_CODE,"填写的报废的装备数量大于实际能进行报废的数量"), INVENTORY_BEYOND_STOCK(CommonConstant.DEFAULT_BIZ_ERROR_CODE,"填写的报废的装备数量大于实际能进行报废的数量"),
BROKENNUM_BEYOND_STOCK(CommonConstant.DEFAULT_USER_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; ...@@ -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.query.BussinessInventoryReq;
import com.junmp.jyzb.api.bean.req.UpdateInventoryReq; import com.junmp.jyzb.api.bean.req.UpdateInventoryReq;
import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq; import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq;
import com.junmp.jyzb.entity.BussinessInventory;
import com.junmp.jyzb.entity.InventorySummary; import com.junmp.jyzb.entity.InventorySummary;
import com.junmp.jyzb.service.BussinessInventoryService; import com.junmp.jyzb.service.BussinessInventoryService;
import com.junmp.jyzb.service.CabinetBoxService; import com.junmp.jyzb.service.CabinetBoxService;
...@@ -33,9 +34,9 @@ public class BussinessInventoryController { ...@@ -33,9 +34,9 @@ public class BussinessInventoryController {
private BussinessInventoryService BussinessInventoryService; private BussinessInventoryService BussinessInventoryService;
//盘库申请 //盘库申请
@PostMapping("/AddStocktakeOrder") @PostMapping("/AddStocktake")
@ApiOperation("盘库申请") @ApiOperation("盘库申请")
public ApiRes<String> AddStocktakeOrder (@RequestBody @Validated(ValidationApi.add.class) UpdateInventoryReq req){ public ApiRes<String> AddStocktake (@RequestBody @Validated(ValidationApi.add.class) UpdateInventoryReq req){
//判断是否有工作流id,如果有则将状态进行修改 //判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessDefinitionId())) if (ObjectUtil.isEmpty(req.getProcessDefinitionId()))
{ {
...@@ -56,5 +57,19 @@ public class BussinessInventoryController { ...@@ -56,5 +57,19 @@ public class BussinessInventoryController {
return ApiRes.success(BussinessInventoryService.Check(req)); 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; ...@@ -11,6 +11,7 @@ import org.springframework.data.elasticsearch.annotations.Document;
import java.io.Serializable; import java.io.Serializable;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
/** /**
* *
...@@ -73,6 +74,11 @@ public class BussinessInventory implements Serializable { ...@@ -73,6 +74,11 @@ public class BussinessInventory implements Serializable {
/** /**
* 仓库名称 * 仓库名称
*/ */
@TableField(value = "warehouse_id")
private String warehouseId;
/**
* 仓库名称
*/
@TableField(value = "warehouse_name") @TableField(value = "warehouse_name")
private String warehouseName; private String warehouseName;
/** /**
...@@ -134,11 +140,6 @@ public class BussinessInventory implements Serializable { ...@@ -134,11 +140,6 @@ public class BussinessInventory implements Serializable {
@TableField(value = "examine_state") @TableField(value = "examine_state")
private String examineState; private String examineState;
/**
* 归还日期
*/
@TableField(value = "manual_state")
private Date manualState;
...@@ -154,7 +155,7 @@ public class BussinessInventory implements Serializable { ...@@ -154,7 +155,7 @@ public class BussinessInventory implements Serializable {
@TableField(value = "update_time",fill = FieldFill.UPDATE) @TableField(value = "update_time",fill = FieldFill.UPDATE)
private Date updateTime; private Date updateTime;
private List<BussinessDetail> detailList;
private static final long serialVersionUID = 1L; 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; ...@@ -11,6 +11,7 @@ import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq;
import com.junmp.jyzb.entity.BusForm; import com.junmp.jyzb.entity.BusForm;
import com.junmp.jyzb.entity.BussinessInventory; import com.junmp.jyzb.entity.BussinessInventory;
import com.junmp.v2.db.api.page.PageResult; import com.junmp.v2.db.api.page.PageResult;
import com.sun.org.apache.xpath.internal.operations.Bool;
import java.util.List; import java.util.List;
...@@ -21,4 +22,8 @@ public interface BussinessInventoryService extends IService<BussinessInventory> ...@@ -21,4 +22,8 @@ public interface BussinessInventoryService extends IService<BussinessInventory>
BussinessInventoryDto Check(BussinessInventoryReq req); 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; ...@@ -3,37 +3,49 @@ package com.junmp.jyzb.service.impl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; 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.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.junmpProcess.dto.StartProcessInstanceDTO; import com.junmp.junmpProcess.dto.StartProcessInstanceDTO;
import com.junmp.junmpProcess.service.IFlowInstanceService; import com.junmp.junmpProcess.service.IFlowInstanceService;
import com.junmp.jyzb.api.bean.dto.BussinessInventoryDto; 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.EquipmentListDto;
import com.junmp.jyzb.api.bean.dto.OrderMainDto;
import com.junmp.jyzb.api.bean.query.BussinessInventoryReq; import com.junmp.jyzb.api.bean.query.BussinessInventoryReq;
import com.junmp.jyzb.api.bean.query.InventorySumReq; import com.junmp.jyzb.api.bean.query.InventorySumReq;
import com.junmp.jyzb.api.bean.req.UpdateInventoryReq; import com.junmp.jyzb.api.bean.req.UpdateInventoryReq;
import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq; 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.entity.*;
import com.junmp.jyzb.mapper.BussinessInventoryDetailMapper;
import com.junmp.jyzb.mapper.BussinessInventoryMapper; import com.junmp.jyzb.mapper.BussinessInventoryMapper;
import com.junmp.jyzb.mapper.CabinetBoxPoliceMapper; import com.junmp.jyzb.mapper.CabinetBoxPoliceMapper;
import com.junmp.jyzb.service.BussinessInventoryService; import com.junmp.jyzb.service.*;
import com.junmp.jyzb.service.CabinetBoxPoliceService;
import com.junmp.jyzb.service.InventorySummaryService;
import com.junmp.jyzb.service.OrderNumService;
import com.junmp.jyzb.utils.DateTimeUtil; 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.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.db.api.page.PageResult;
import com.junmp.v2.dict.entity.SysDict; import com.junmp.v2.dict.entity.SysDict;
import com.junmp.v2.dict.entity.SysDictItem; import com.junmp.v2.dict.entity.SysDictItem;
import com.junmp.v2.dict.service.SysDictItemService; import com.junmp.v2.dict.service.SysDictItemService;
import com.junmp.v2.dict.service.SysDictService; 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.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
import javax.annotation.Resource; import javax.annotation.Resource;
import java.beans.Transient;
import java.time.LocalDateTime; import java.time.LocalDateTime;
import java.util.ArrayList; import java.util.ArrayList;
import java.util.Arrays; import java.util.Arrays;
import java.util.List; import java.util.List;
import java.util.stream.Collectors;
@Service @Service
public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventoryMapper, BussinessInventory> public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventoryMapper, BussinessInventory>
...@@ -46,9 +58,15 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -46,9 +58,15 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
@Resource @Resource
private SysDictService sysDictService; private SysDictService sysDictService;
@Resource @Resource
private BussinessInventoryDetailService bussinessInventoryDetailService;
@Resource
private WarehouseService warehouseService;
@Resource
private InventorySummaryService inventorySummaryService; private InventorySummaryService inventorySummaryService;
@Resource @Resource
private OrderNumService orderNumService; private OrderNumService orderNumService;
@Autowired
private RabbitMQSendMsg MQ;
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public String AddInvOrder(UpdateInventoryReq req) { public String AddInvOrder(UpdateInventoryReq req) {
...@@ -72,7 +90,7 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -72,7 +90,7 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor
startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId()); startProcessInstanceDTO.setProcessDefinitionId(req.getProcessDefinitionId());
startProcessInstanceDTO.setOrderId(BI.getId()); startProcessInstanceDTO.setOrderId(BI.getId());
startProcessInstanceDTO.setOrderType("stocktakeOrder"); startProcessInstanceDTO.setOrderType("stocktakeOrder");
startProcessInstanceDTO.setUserId(req.getUserId()); // startProcessInstanceDTO.setUserId(req.getUserId());
String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO); String ProcessInstanceId= FlowInstanceService.startProcessInstanceById(startProcessInstanceDTO);
BI.setProcessId(Long.valueOf(ProcessInstanceId)); BI.setProcessId(Long.valueOf(ProcessInstanceId));
...@@ -122,6 +140,54 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -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以及业务单据类型来进行设置 * 通用方法,根据组织机构id以及业务单据类型来进行设置
...@@ -157,4 +223,15 @@ public class BussinessInventoryServiceImpl extends ServiceImpl<BussinessInventor ...@@ -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 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论