Commit 3221e584 by 李小惠

添加业务管理单据接口

parent fcaa89bf
package com.junmp.jyzb.api.bean.dto;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import java.math.BigDecimal;
import java.util.Date;
@Data
public class BusFormDto {
/**
* id
*/
private String id;
/**
* 工作流id
*/
private String processId;
/**
* 单据业务类型
*/
private String bussinessType;
/**
* 单据编号
*/
private String orderCode;
/**
* 组织机构id
*/
private Long orgId;
/**
* 组织机构名称
*/
private String orgName;
/**
* 收物单位id
*/
private Long endOrgId;
/**
* 收物单位
*/
private String endOrgName;
/**
* 审核状态
*/
private String examineState;
/**
* 价格
*/
private BigDecimal price;
/**
* 数量
*/
private Integer inventoryQuantity;
/**
* 附件地址
*/
private String attachmentLocation;
/**
* 经办人
*/
private String agent;
/**
* 归还人id
*/
private String returnUserId;
/**
* 归还人
*/
private String returnUser;
/**
* 归还日期
*/
private Date returnDate;
/**
* 申请时间
*/
private Date applyTime;
/**
* 申请人
*/
private String applyUser;
/**
* 申请人id
*/
private String applyUserId;
/**
* 调拨类型(2支拨,1价拨)
*/
private Integer transferType;
/**
* 备注
*/
private String note;
/**
* 供应商id
*/
private String supplierId;
/**
* 供应商名称
*/
private String supplierName;
/**
* 仓库id
*/
private String warehouseId;
/**
* 装备详情
*/
private String detailList;
/**
* 创建人
*/
private String createUser;
/**
* 更新人
*/
private String updateUser;
}
package com.junmp.jyzb.api.bean.query;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class QueryBusFormReq extends BaseRequest {
/**
* id
*/
private String id;
/**
* 工作流id
*/
private String processId;
/**
* 单据业务类型
*/
@NotBlank(message = "业务单据类型不能为空",groups = {detail.class})
private String bussinessType;
/**
* 单据编号
*/
private String orderCode;
/**
* 组织机构id
*/
@NotNull(message = "组织机构id不能为空",groups = {detail.class})
private Long orgId;
/**
* 组织机构名称
*/
private String orgName;
/**
* 收物单位id
*/
private Long endOrgId;
/**
* 收物单位
*/
private String endOrgName;
/**
* 审核状态
*/
private String examineState;
/**
* 价格
*/
private BigDecimal price;
/**
* 数量
*/
private Integer inventoryQuantity;
/**
* 附件地址
*/
private String attachmentLocation;
/**
* 经办人
*/
private String agent;
/**
* 归还人id
*/
private String returnUserId;
/**
* 归还人
*/
private String returnUser;
/**
* 归还日期
*/
private Date returnDate;
/**
* 申请时间
*/
private Date applyTime;
/**
* 申请人
*/
private String applyUser;
/**
* 申请人id
*/
private String applyUserId;
/**
* 调拨类型(2支拨,1价拨)
*/
private Integer transferType;
/**
* 备注
*/
private String note;
/**
* 供应商id
*/
private String supplierId;
/**
* 供应商名称
*/
private String supplierName;
/**
* 仓库id
*/
private String warehouseId;
/**
* 装备详情
*/
private String detailList;
/**
* 创建人
*/
private String createUser;
/**
* 更新人
*/
private String updateUser;
/**
* 开始时间
*/
private Date startTime;
/**
* 结束时间
*/
private Date endTime;
/**
* 排序字段
*/
private String column;
/**
* 排序规则
*/
private String order;
}
......@@ -145,4 +145,14 @@ public class StocktakeReq extends BaseRequest {
* 结束时间
*/
private Date endTime;
/**
* 排序字段
*/
private String column;
/**
* 排序规则
*/
private String order;
}
package com.junmp.jyzb.api.bean.req;
import com.junmp.v2.common.bean.request.BaseRequest;
import lombok.Data;
import lombok.EqualsAndHashCode;
import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotNull;
import java.math.BigDecimal;
import java.util.Date;
@Data
@EqualsAndHashCode(callSuper = true)
public class UpdateBusFormReq extends BaseRequest {
/**
* id
*/
@NotBlank(message = "单据id不能为空",groups = {edit.class})
private String id;
/**
* 工作流id
*/
private String processId;
/**
* 单据业务类型
*/
@NotBlank(message = "业务单据类型不能为空",groups = {add.class,edit.class})
private String bussinessType;
/**
* 单据编号
*/
private String orderCode;
/**
* 组织机构id
*/
@NotNull(message = "组织机构id不能为空",groups = {add.class})
private Long orgId;
/**
* 组织机构名称
*/
private String orgName;
/**
* 收物单位id
*/
private Long endOrgId;
/**
* 收物单位
*/
private String endOrgName;
/**
* 审核状态
*/
private String examineState;
/**
* 价格
*/
private BigDecimal price;
/**
* 数量
*/
private Integer inventoryQuantity;
/**
* 附件地址
*/
private String attachmentLocation;
/**
* 经办人
*/
private String agent;
/**
* 归还人id
*/
private String returnUserId;
/**
* 归还人
*/
private String returnUser;
/**
* 归还日期
*/
private Date returnDate;
/**
* 申请时间
*/
private Date applyTime;
/**
* 申请人
*/
private String applyUser;
/**
* 申请人id
*/
private String applyUserId;
/**
* 调拨类型(2支拨,1价拨)
*/
private Integer transferType;
/**
* 备注
*/
private String note;
/**
* 供应商id
*/
private String supplierId;
/**
* 供应商名称
*/
private String supplierName;
/**
* 仓库id
*/
private String warehouseId;
/**
* 装备详情
*/
private String detailList;
/**
* 创建人
*/
private String createUser;
/**
* 更新人
*/
private String updateUser;
}
package com.junmp.jyzb.controller;
import cn.hutool.core.util.ObjectUtil;
import com.junmp.jyzb.api.bean.dto.BusFormDto;
import com.junmp.jyzb.api.bean.query.QueryBusFormReq;
import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
import com.junmp.jyzb.service.BusFormService;
import com.junmp.v2.common.bean.request.ValidationApi;
import com.junmp.v2.common.bean.response.ApiRes;
import com.junmp.v2.db.api.page.PageResult;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import lombok.extern.slf4j.Slf4j;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import javax.annotation.Resource;
/**
* 业务单据管理模块(只针对业务单据,不包含任何出入库单据)
*/
@RestController
@Slf4j
@RequestMapping("/BussinessManage")
@Api(tags = "业务管理模块")
public class BussinessController {
@Resource
public BusFormService busFormService;
//创建业务单
@PostMapping("/AddBussinessOrder")
@ApiOperation("创建业务单")
public ApiRes<String> AddBussinessOrder(@RequestBody @Validated(ValidationApi.add.class) UpdateBusFormReq req){
//判断是否有工作流id,如果有则将状态进行修改
if (ObjectUtil.isEmpty(req.getProcessId()))
{
req.setExamineState("none");
}
else
{
req.setExamineState("working");
}
return ApiRes.success(busFormService.AddBussinessOrder(req));
}
//修改业务单
@PostMapping("/UpdateBussinessOrder")
@ApiOperation("修改业务单")
public ApiRes<Boolean> UpdateBussinessOrder(@RequestBody @Validated(ValidationApi.edit.class) UpdateBusFormReq req){
return ApiRes.success(busFormService.UpdateBussinessOrder(req));
}
//查看业务单(可以条件查询)
@PostMapping("/showBussinessOrder")
@ApiOperation("查看业务单")
public ApiRes<PageResult<BusFormDto>> showBussinessOrder(@RequestBody QueryBusFormReq req){
return ApiRes.success(busFormService.showBussinessOrder(req));
}
}
package com.junmp.jyzb.entity;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.baomidou.mybatisplus.annotation.*;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
......@@ -41,16 +39,16 @@ public class BusForm implements Serializable {
private String orderCode;
/**
* 发物单位id
* 组织机构id
*/
@TableField(value = "start_org_id")
private Long startOrgId;
@TableField(value = "org_id")
private Long orgId;
/**
* 发物单位
* 组织机构名称
*/
@TableField(value = "start_org_name")
private String startOrgName;
@TableField(value = "org_name")
private String orgName;
/**
* 收物单位id
......@@ -89,10 +87,10 @@ public class BusForm implements Serializable {
private String attachmentLocation;
/**
* 装备集合
* 经办人
*/
@TableField(value = "inv_list")
private String invList;
@TableField(value = "agent")
private String agent;
/**
* 归还人id
......@@ -125,6 +123,12 @@ public class BusForm implements Serializable {
private String applyUser;
/**
* 申请人id
*/
@TableField(value = "apply_user_id")
private String applyUserId;
/**
* 调拨类型(2支拨,1价拨)
*/
@TableField(value = "transfer_type")
......@@ -136,33 +140,39 @@ public class BusForm implements Serializable {
private String note;
/**
* 生产厂商id
* 供应商id
*/
@TableField(value = "supplier_id")
private String supplierId;
/**
* 供应商名称
*/
@TableField(value = "manufacturer_id")
private String manufacturerId;
@TableField(value = "supplier_name")
private String supplierName;
/**
* 生产厂商名称
* 仓库id
*/
@TableField(value = "manufacturer_name")
private String manufacturerName;
@TableField(value = "warehouse_id")
private String warehouseId;
/**
* 装备详情
*/
@TableField(value = "item_details")
private String itemDetails;
@TableField(value = "detail_list")
private String detailList;
/**
* 创建时间
*/
@TableField(value = "create_time")
@TableField(value = "create_time",fill = FieldFill.INSERT)
private Date createTime;
/**
* 更新时间
*/
@TableField(value = "update_time")
@TableField(value = "update_time",fill = FieldFill.UPDATE)
private Date updateTime;
/**
......
package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.dto.BusFormDto;
import com.junmp.jyzb.api.bean.query.QueryBusFormReq;
import com.junmp.jyzb.api.bean.req.UpdateBusFormReq;
import com.junmp.jyzb.entity.BusForm;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.v2.db.api.page.PageResult;
/**
* @author lxh专属坐骑
......@@ -10,4 +14,19 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface BusFormService extends IService<BusForm> {
/**
* 创建业务单
* @return
*/
String AddBussinessOrder(UpdateBusFormReq req);
/**
* 修改业务单
* @param req
* @return
*/
boolean UpdateBussinessOrder(UpdateBusFormReq req);
//查看业务单(可根据条件查询)
PageResult<BusFormDto> showBussinessOrder(QueryBusFormReq req);
}
......@@ -2,6 +2,7 @@ package com.junmp.jyzb.service;
import com.junmp.jyzb.api.bean.query.StocktakeReq;
import com.junmp.jyzb.api.bean.req.UpdateStocktakeReq;
import com.junmp.jyzb.entity.OrderNum;
import com.junmp.jyzb.entity.Stocktake;
import com.baomidou.mybatisplus.extension.service.IService;
import com.junmp.v2.db.api.page.PageResult;
......@@ -18,4 +19,7 @@ public interface StocktakeService extends IService<Stocktake> {
PageResult<Stocktake> ShowStocktakeOrderPage(StocktakeReq req);
boolean UpdateStocktakeOrder(UpdateStocktakeReq req);
//设置单据单号
OrderNum setOrderCode(String bussinessType, Long orgId);
}
package com.junmp.jyzb.service.impl;
import cn.hutool.core.bean.BeanUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.junmp.jyzb.api.bean.dto.BusFormDto;
import com.junmp.jyzb.api.bean.query.QueryBusFormReq;
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.OrderNum;
import com.junmp.jyzb.service.BusFormService;
import com.junmp.jyzb.mapper.BusFormMapper;
import com.junmp.jyzb.service.StocktakeService;
import com.junmp.jyzb.utils.DateTimeUtil;
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 org.springframework.stereotype.Service;
import javax.annotation.Resource;
import java.time.LocalDateTime;
import java.util.List;
import java.util.stream.Collectors;
/**
* @author lxh专属坐骑
* @description 针对表【base_bus_form】的数据库操作Service实现
* @createDate 2023-09-25 10:16:46
*/
@Service
public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm>
implements BusFormService{
public class BusFormServiceImpl extends ServiceImpl<BusFormMapper, BusForm> implements BusFormService{
@Resource
public StocktakeService stocktakeService;
/**
* 创建业务单
* @param req
* @return
*/
@Override
public String AddBussinessOrder(UpdateBusFormReq req) {
BusForm busForm = new BusForm();
BeanUtil.copyProperties(req,busForm);
OrderNum orderNum = stocktakeService.setOrderCode(req.getBussinessType(), req.getOrgId());
String codeValue=String.format("%04d",orderNum.getNum());
busForm.setOrderCode(orderNum.getBussinessType()+"-"+orderNum.getYear()+"-"+
LocalDateTime.now().getMonth().getValue()+"-"+LocalDateTime.now().getDayOfMonth()+"-"+codeValue);
busForm.setCreateTime(DateTimeUtil.getCurrentDateTime());
save(busForm);
return busForm.getId();
}
/**
* 修改业务单
* @param req
* @return
*/
@Override
public boolean UpdateBussinessOrder(UpdateBusFormReq req) {
BusForm busForm = getById(req.getId());
if (!busForm.getExamineState().equals("none")){
throw new ServiceException(OrderExceptionEnum.ORDER_CAN_NOT_UPDATE);
}
BeanPlusUtil.copyProperties(req,busForm);
busForm.setUpdateTime(DateTimeUtil.getCurrentDateTime());
return updateById(busForm);
}
/**
* 查询业务单,(可以根据业务单进行修改)
* @param req
* @return
*/
@Override
public PageResult<BusFormDto> showBussinessOrder(QueryBusFormReq 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<BusForm> eq = new LambdaQueryWrapper<BusForm>()
.eq(ObjectUtil.isNotNull(req.getBussinessType()), BusForm::getBussinessType, req.getBussinessType())
.eq(ObjectUtil.isNotNull(req.getExamineState()), BusForm::getExamineState, req.getExamineState())
.eq(ObjectUtil.isNotNull(req.getWarehouseId()), BusForm::getWarehouseId, req.getWarehouseId())
.eq(ObjectUtil.isNotNull(req.getOrgId()),BusForm::getOrgId,req.getOrgId())
.ge(ObjectUtil.isNotNull(req.getStartTime()), BusForm::getCreateTime, req.getStartTime())
.le(ObjectUtil.isNotNull(req.getEndTime()), BusForm::getCreateTime, req.getEndTime())
.last("order by " + req.getColumn() + " " + req.getOrder());
long size = list(eq).size();
Page<BusForm> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
List<BusFormDto> collect = page.getRecords().stream().map(busForm -> {
BusFormDto busFormDto = new BusFormDto();
BeanPlusUtil.copyProperties(busForm, busFormDto);
return busFormDto;
}).collect(Collectors.toList());
Page<BusFormDto> page1=new Page<>(req.getPageNo(),req.getPageSize());
page1.setRecords(collect);
page1.setTotal(size);
return PageResultFactory.createPageResult(page1);
}
}
......
......@@ -149,9 +149,9 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
OrderNum orderNum = new OrderNum();
//获取年,月,日,获取业务出入状态,获取组织机构id,获取业务类型
orderNum.setYear(LocalDateTime.now().getYear());
//将业务类型转为中文简写
//将业务类型转为中文简写(CK出库,RK入库)
String itemValue = sysDictItemService.list(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, req.getBussinessType())).get(0).getItemValue();
.eq(SysDictItem::getItemText, req.getOrderType())).get(0).getItemValue();
orderNum.setBussinessType(itemValue);
//出入业务状态
orderNum.setOutInType(req.getOrderType());
......@@ -311,9 +311,10 @@ public class OrderMainServiceImpl extends ServiceImpl<OrderMainMapper, OrderMain
@Override
public PageResult<OrderMainDto> getOrderPage(OrderMainReq req) {
Page<OrderMain> page = new Page<>();
//排序字段处理,将驼峰改成和数据库同步的字段名
//排序字段处理,将驼峰改成和数据库同步的字段名(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
(req.getOrder().equalsIgnoreCase("asc")|| req.getOrder().equalsIgnoreCase("desc")) && !req.getOrder().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());
......
......@@ -50,7 +50,7 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
Stocktake stocktake = new Stocktake();
BeanPlusUtil.copyProperties(req,stocktake);
//设置单号
OrderNum orderNum = setOrderCode(req);
OrderNum orderNum = setOrderCode(req.getBussinessType(),req.getOrgId());
String codeValue=String.format("%04d",orderNum.getNum());
stocktake.setOrderCode(orderNum.getBussinessType()+"-"+orderNum.getYear()+"-"+
LocalDateTime.now().getMonth().getValue()+"-"+LocalDateTime.now().getDayOfMonth()+"-"+codeValue);
......@@ -79,11 +79,20 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
//盘库单据查询
@Override
public PageResult<Stocktake> ShowStocktakeOrderPage(StocktakeReq req) {
//(如果传其他不是数据库字段参数或者排序规则不是deac或者asc可能会出现错误)
if (ObjectUtil.isNotNull(req.getColumn()) && !req.getColumn().trim().isEmpty() &&
(req.getOrder().equalsIgnoreCase("desc") || req.getOrder().equalsIgnoreCase("asc"))
&& ObjectUtil.isNotNull(req.getOrder())&& !req.getOrder().trim().isEmpty()){
req.setColumn(req.getColumn().replaceAll("[A-Z]","_$0").toLowerCase());
req.setOrder(req.getOrder().toLowerCase());
}
LambdaQueryWrapper<Stocktake> eq = new LambdaQueryWrapper<Stocktake>()
.eq(ObjectUtil.isNotNull(req.getOrderState()),Stocktake::getOrderState,req.getOrderState())
.eq(ObjectUtil.isNotNull(req.getOrgId()),Stocktake::getOrgId,req.getOrgId())
.eq(ObjectUtil.isNotNull(req.getLocationId()),Stocktake::getLocationId,req.getLocationId())
.ge(ObjectUtil.isNotNull(req.getStartTime()),Stocktake::getCreateTime,req.getStartTime())
.le(ObjectUtil.isNotNull(req.getEndTime()),Stocktake::getCreateTime,req.getEndTime());
.le(ObjectUtil.isNotNull(req.getEndTime()),Stocktake::getCreateTime,req.getEndTime())
.last("order by "+req.getColumn()+" "+req.getOrder());
Page<Stocktake> page = page(PageFactory.getDefaultPage(req.getPageNo(), req.getPageSize()), eq);
return PageResultFactory.createPageResult(page);
}
......@@ -105,18 +114,19 @@ public class StocktakeServiceImpl extends ServiceImpl<StocktakeMapper, Stocktake
/**
* 设置单据单号
* @param req
* 通用方法,根据组织机构id以及业务单据类型来进行设置
* @param
*/
public OrderNum setOrderCode(UpdateStocktakeReq req){
public OrderNum setOrderCode(String bussinessType,Long orgId){
//设置采购单号,需要先判断该组织机构的采购单号是否存在,如果存在则将数量进行增加,如果不存在则新增一条对应的数据
OrderNum orderNum = new OrderNum();
//获取年,月,日,获取组织机构id,获取业务类型
orderNum.setYear(LocalDateTime.now().getYear());
orderNum.setBussinessType(req.getBussinessType());
orderNum.setOrgId(req.getOrgId());
orderNum.setBussinessType(bussinessType);
orderNum.setOrgId(orgId);
//将业务类型转为中文简写
String itemValue = sysDictItemService.getOne(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, req.getBussinessType())).getItemValue();
String itemValue = sysDictItemService.list(new LambdaQueryWrapper<SysDictItem>()
.eq(SysDictItem::getItemText, bussinessType)).get(0).getItemValue();
orderNum.setBussinessType(itemValue);
OrderNum one = orderNumService.getOne(new LambdaQueryWrapper<OrderNum>()
.eq(OrderNum::getOrgId, orderNum.getOrgId())
......
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论