feat(审批): 新增审批详情和开柜中状态处理
添加审批详情DTO和接口,支持查看审批详情信息 新增开柜中状态(4)及相关处理逻辑 重构审批状态查询条件,支持开柜中状态 新增分配商品格口功能接口
This commit is contained in:
parent
ef875a0810
commit
07dd290645
|
@ -12,6 +12,7 @@ import com.agileboot.domain.shop.approval.command.AddReturnApprovalCommand;
|
||||||
import com.agileboot.domain.shop.approval.command.UpdateReturnApprovalCommand;
|
import com.agileboot.domain.shop.approval.command.UpdateReturnApprovalCommand;
|
||||||
import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity;
|
import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity;
|
||||||
import com.agileboot.domain.shop.approval.dto.ReturnApprovalAssetDTO;
|
import com.agileboot.domain.shop.approval.dto.ReturnApprovalAssetDTO;
|
||||||
|
import com.agileboot.domain.shop.approval.dto.ReturnApprovalDetailDTO;
|
||||||
import com.agileboot.domain.shop.approval.model.ReturnApprovalModel;
|
import com.agileboot.domain.shop.approval.model.ReturnApprovalModel;
|
||||||
import com.agileboot.domain.shop.approval.query.SearchApiReturnApprovalQuery;
|
import com.agileboot.domain.shop.approval.query.SearchApiReturnApprovalQuery;
|
||||||
import com.agileboot.domain.shop.approval.query.SearchReturnApprovalAssetQuery;
|
import com.agileboot.domain.shop.approval.query.SearchReturnApprovalAssetQuery;
|
||||||
|
@ -103,7 +104,7 @@ public class ApprovalApiController {
|
||||||
|
|
||||||
try {
|
try {
|
||||||
if (command.getStatus() == 2) {
|
if (command.getStatus() == 2) {
|
||||||
approvalApplicationService.approveAssetApproval(command);
|
approvalApplicationService.updateApprovalStatusAndComplete(command);
|
||||||
} else if (command.getStatus() == 3) {
|
} else if (command.getStatus() == 3) {
|
||||||
approvalApplicationService.rejectAssetApproval(command);
|
approvalApplicationService.rejectAssetApproval(command);
|
||||||
} else {
|
} else {
|
||||||
|
@ -124,6 +125,29 @@ public class ApprovalApiController {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/handle/allocateApprovalGoods")
|
||||||
|
@ApiOperation(value = "处理审批操作")
|
||||||
|
public ResponseDTO<String> allocateApprovalGoods(@Valid @RequestBody UpdateReturnApprovalCommand command) {
|
||||||
|
if (command.getApprovalId() == null) {
|
||||||
|
return ResponseDTO.fail(new ApiException(ErrorCode.Internal.INTERNAL_ERROR, "审批ID不能为空"));
|
||||||
|
}
|
||||||
|
|
||||||
|
try {
|
||||||
|
approvalApplicationService.allocateApprovalGoodsCells(command);
|
||||||
|
return ResponseDTO.ok("操作成功");
|
||||||
|
} catch (Exception e) {
|
||||||
|
log.error("审批操作失败", e);
|
||||||
|
// 记录支付操作日志
|
||||||
|
AddPaymentOperationLogCommand paymentOperationLogCommand = new AddPaymentOperationLogCommand();
|
||||||
|
paymentOperationLogCommand.setOperationType("handleAssetApproval");
|
||||||
|
paymentOperationLogCommand.setStatus(2);
|
||||||
|
paymentOperationLogCommand.setRemark(ExceptionUtils.getStackTrace(e));
|
||||||
|
paymentOperationLogCommand.setParams(JSONUtil.toJsonStr(command));
|
||||||
|
paymentOperationLogCommand.initBaseEntity();
|
||||||
|
paymentOperationLogApplicationService.addPaymentOperationLog(paymentOperationLogCommand);
|
||||||
|
return ResponseDTO.fail(new ApiException(ErrorCode.Internal.INTERNAL_ERROR, e.getMessage()));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提交退货审批申请
|
* 提交退货审批申请
|
||||||
|
@ -176,6 +200,12 @@ public class ApprovalApiController {
|
||||||
return ResponseDTO.ok(list);
|
return ResponseDTO.ok(list);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/detail/asset")
|
||||||
|
@ApiOperation(value = "审批列表")
|
||||||
|
public ResponseDTO<ReturnApprovalDetailDTO> detailAsset(Long approval_id) {
|
||||||
|
return ResponseDTO.ok(approvalApplicationService.getApprovalDetail(approval_id));
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/list/asset")
|
@GetMapping("/list/asset")
|
||||||
@ApiOperation(value = "审批列表")
|
@ApiOperation(value = "审批列表")
|
||||||
|
|
|
@ -34,6 +34,7 @@ import com.agileboot.domain.shop.approval.command.UpdateReturnApprovalCommand;
|
||||||
import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity;
|
import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity;
|
||||||
import com.agileboot.domain.shop.approval.db.ReturnApprovalService;
|
import com.agileboot.domain.shop.approval.db.ReturnApprovalService;
|
||||||
import com.agileboot.domain.shop.approval.dto.ReturnApprovalAssetDTO;
|
import com.agileboot.domain.shop.approval.dto.ReturnApprovalAssetDTO;
|
||||||
|
import com.agileboot.domain.shop.approval.dto.ReturnApprovalDetailDTO;
|
||||||
import com.agileboot.domain.shop.approval.model.ReturnApprovalModel;
|
import com.agileboot.domain.shop.approval.model.ReturnApprovalModel;
|
||||||
import com.agileboot.domain.shop.approval.model.ReturnApprovalModelFactory;
|
import com.agileboot.domain.shop.approval.model.ReturnApprovalModelFactory;
|
||||||
import com.agileboot.domain.shop.approval.query.SearchApiReturnApprovalQuery;
|
import com.agileboot.domain.shop.approval.query.SearchApiReturnApprovalQuery;
|
||||||
|
@ -301,6 +302,231 @@ public class ReturnApprovalApplicationService {
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 处理库存分配并创建addApprovalGoodsCellList
|
||||||
|
*/
|
||||||
|
public void allocateApprovalGoodsCells(UpdateReturnApprovalCommand command) {
|
||||||
|
List<UpdateApprovalGoodsCommand> approvalGoodsCommands = command.getApprovalGoodsList();
|
||||||
|
if (approvalGoodsCommands == null || approvalGoodsCommands.isEmpty()) {
|
||||||
|
throw new RuntimeException("审批通过的耗材列表不能为空");
|
||||||
|
}
|
||||||
|
// 加载退货审批模型
|
||||||
|
ReturnApprovalModel model = modelFactory.loadById(command.getApprovalId());
|
||||||
|
|
||||||
|
// 设置审批人信息
|
||||||
|
if (StringUtils.isNotBlank(command.getAuditName())) {
|
||||||
|
model.setAuditName(command.getAuditName());
|
||||||
|
} else if (StringUtils.isNotBlank(command.getUserid())) {
|
||||||
|
QyUserEntity qyUserEntity = qyUserService.getUserByUserIdAndCorpid(command.getUserid(), model.getCorpid());
|
||||||
|
if (null != qyUserEntity) {
|
||||||
|
model.setAuditName(qyUserEntity.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 获取关联的订单商品列表
|
||||||
|
List<ApprovalGoodsEntity> approvalGoodsList = approvalGoodsService.selectByApprovalId(model.getApprovalId());
|
||||||
|
if (approvalGoodsList == null || approvalGoodsList.isEmpty()) {
|
||||||
|
throw new RuntimeException("未找到关联的订单商品");
|
||||||
|
}
|
||||||
|
approvalGoodsList.forEach(approvalGoods -> {
|
||||||
|
approvalGoods.setApprovalQuantity(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
// 获取关联的商品列表
|
||||||
|
QueryWrapper<ShopGoodsEntity> goodsWrapper = new QueryWrapper<>();
|
||||||
|
goodsWrapper.in("goods_id", approvalGoodsCommands.stream().map(ApprovalGoodsEntity::getGoodsId).distinct().collect(Collectors.toList()))
|
||||||
|
.eq("deleted", false);
|
||||||
|
List<ShopGoodsEntity> goodsList = shopGoodsService.list(goodsWrapper);
|
||||||
|
if (goodsList == null || goodsList.isEmpty()) {
|
||||||
|
throw new RuntimeException("未找到关联的商品");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化商品和格口模型列表
|
||||||
|
List<ApprovalGoodsCellEntity> addApprovalGoodsCellList = new ArrayList<>();
|
||||||
|
|
||||||
|
for (ApprovalGoodsEntity approvalGoodsCommand : approvalGoodsCommands) {
|
||||||
|
if (approvalGoodsCommand.getApprovalQuantity() == null || approvalGoodsCommand.getApprovalQuantity().compareTo(0) <= 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ApprovalGoodsEntity approvalGoods = approvalGoodsList.stream()
|
||||||
|
.filter(g -> g.getApprovalGoodsId().equals(approvalGoodsCommand.getApprovalGoodsId())).findFirst().orElse(null);
|
||||||
|
if (approvalGoods == null) {
|
||||||
|
throw new RuntimeException("未找到关联的订单商品");
|
||||||
|
}
|
||||||
|
if (approvalGoods.getApplyQuantity().compareTo(approvalGoodsCommand.getApprovalQuantity()) < 0) {
|
||||||
|
throw new RuntimeException("审批数量不能大于申请数量");
|
||||||
|
}
|
||||||
|
approvalGoods.setApprovalQuantity(approvalGoodsCommand.getApprovalQuantity());
|
||||||
|
|
||||||
|
ShopGoodsEntity goods = goodsList.stream()
|
||||||
|
.filter(g -> g.getGoodsId().equals(approvalGoodsCommand.getGoodsId())).findFirst().orElse(null);
|
||||||
|
if (goods == null) {
|
||||||
|
throw new RuntimeException("未找到关联的商品");
|
||||||
|
}
|
||||||
|
if (goods.getStock().compareTo(approvalGoodsCommand.getApprovalQuantity()) < 0) {
|
||||||
|
throw new RuntimeException("商品库存不足");
|
||||||
|
}
|
||||||
|
|
||||||
|
List<CabinetCellEntity> cells = cabinetCellService.selectByGoodsId(approvalGoodsCommand.getGoodsId());
|
||||||
|
// 如果没有找到对应的格口,抛出异常
|
||||||
|
if (cells == null || cells.isEmpty()) {
|
||||||
|
throw new RuntimeException("未找到关联的格口");
|
||||||
|
}
|
||||||
|
// 按库存数量从大到小排序
|
||||||
|
cells.sort(Comparator.comparingInt(CabinetCellEntity::getStock).reversed());
|
||||||
|
// 遍历格口列表,从库存最多的格口开始分配,直到满足需求
|
||||||
|
int remainingQuantity = approvalGoodsCommand.getApprovalQuantity();
|
||||||
|
for (CabinetCellEntity cell : cells) {
|
||||||
|
SmartCabinetEntity smartCabinetEntity = smartCabinetService.getByCabinetId(cell.getCabinetId());
|
||||||
|
if (smartCabinetEntity == null) {
|
||||||
|
throw new RuntimeException("未找到关联的柜子");
|
||||||
|
}
|
||||||
|
ShopEntity shop = shopService.getById(smartCabinetEntity.getShopId());
|
||||||
|
|
||||||
|
ApprovalGoodsCellEntity addApprovalGoodsCellCommand = new ApprovalGoodsCellEntity();
|
||||||
|
addApprovalGoodsCellCommand.initBaseEntity();
|
||||||
|
addApprovalGoodsCellCommand.setApprovalId(command.getApprovalId());
|
||||||
|
addApprovalGoodsCellCommand.setApprovalGoodsId(approvalGoodsCommand.getApprovalGoodsId());
|
||||||
|
addApprovalGoodsCellCommand.setCabinetId(smartCabinetEntity.getCabinetId());
|
||||||
|
addApprovalGoodsCellCommand.setCabinetName(smartCabinetEntity.getCabinetName());
|
||||||
|
addApprovalGoodsCellCommand.setCellId(cell.getCellId());
|
||||||
|
addApprovalGoodsCellCommand.setCellNo(cell.getCellNo());
|
||||||
|
if (shop != null) {
|
||||||
|
addApprovalGoodsCellCommand.setShopId(shop.getShopId());
|
||||||
|
addApprovalGoodsCellCommand.setShopName(shop.getShopName());
|
||||||
|
}
|
||||||
|
addApprovalGoodsCellList.add(addApprovalGoodsCellCommand);
|
||||||
|
|
||||||
|
if (cell.getStock() >= remainingQuantity) {
|
||||||
|
addApprovalGoodsCellCommand.setAllocateQuantity(remainingQuantity);
|
||||||
|
cell.setStock(cell.getStock() - remainingQuantity);
|
||||||
|
remainingQuantity = 0;
|
||||||
|
break;
|
||||||
|
} else {
|
||||||
|
addApprovalGoodsCellCommand.setAllocateQuantity(cell.getStock());
|
||||||
|
remainingQuantity -= cell.getStock();
|
||||||
|
cell.setStock(0);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 如果还有剩余数量,说明库存不足
|
||||||
|
if (remainingQuantity > 0) {
|
||||||
|
throw new RuntimeException("商品" + goods.getGoodsName() + "在柜子中的库存不足");
|
||||||
|
}
|
||||||
|
goods.setStock(goods.getStock() - approvalGoodsCommand.getApprovalQuantity());
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新审批状态为通过
|
||||||
|
model.validateApprovalStatus();
|
||||||
|
model.setAuditImages(command.getAuditImages());
|
||||||
|
model.setAuditRemark(command.getAuditRemark());
|
||||||
|
model.setAuditUserid(command.getAuditUserid());
|
||||||
|
|
||||||
|
// 开始执行数据库操作
|
||||||
|
model.setStatus(4); // 2表示审核通过状态
|
||||||
|
model.updateById();
|
||||||
|
|
||||||
|
// 批量插入审批商品格口关联表
|
||||||
|
approvalGoodsCellService.saveBatch(addApprovalGoodsCellList);
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 执行更新审批状态为通过以及之后的操作
|
||||||
|
*/
|
||||||
|
public void updateApprovalStatusAndComplete(UpdateReturnApprovalCommand command) {
|
||||||
|
// 加载退货审批模型
|
||||||
|
ReturnApprovalModel model = modelFactory.loadById(command.getApprovalId());
|
||||||
|
|
||||||
|
// 设置审批人信息
|
||||||
|
if (StringUtils.isNotBlank(command.getAuditName())) {
|
||||||
|
model.setAuditName(command.getAuditName());
|
||||||
|
} else if (StringUtils.isNotBlank(command.getUserid())) {
|
||||||
|
QyUserEntity qyUserEntity = qyUserService.getUserByUserIdAndCorpid(command.getUserid(), model.getCorpid());
|
||||||
|
if (null != qyUserEntity) {
|
||||||
|
model.setAuditName(qyUserEntity.getName());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
// 获取关联的订单商品列表
|
||||||
|
List<ApprovalGoodsEntity> approvalGoodsList = approvalGoodsService.selectByApprovalId(model.getApprovalId());
|
||||||
|
if (approvalGoodsList == null || approvalGoodsList.isEmpty()) {
|
||||||
|
throw new RuntimeException("未找到关联的订单商品");
|
||||||
|
}
|
||||||
|
approvalGoodsList.forEach(approvalGoods -> {
|
||||||
|
approvalGoods.setApprovalQuantity(0);
|
||||||
|
});
|
||||||
|
|
||||||
|
List<ApprovalGoodsCellEntity> approvalGoodsCellEntities = approvalGoodsCellService.selectByApprovalId(model.getApprovalId());
|
||||||
|
|
||||||
|
// 获取关联的商品列表
|
||||||
|
QueryWrapper<ShopGoodsEntity> goodsWrapper = new QueryWrapper<>();
|
||||||
|
goodsWrapper.in("goods_id", approvalGoodsList.stream().map(ApprovalGoodsEntity::getGoodsId).distinct().collect(Collectors.toList()))
|
||||||
|
.eq("deleted", false);
|
||||||
|
List<ShopGoodsEntity> goodsList = shopGoodsService.list(goodsWrapper);
|
||||||
|
if (goodsList == null || goodsList.isEmpty()) {
|
||||||
|
throw new RuntimeException("未找到关联的商品");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 初始化商品和格口模型列表
|
||||||
|
QueryWrapper<CabinetCellEntity> cellEntityQueryWrapper = new QueryWrapper<>();
|
||||||
|
cellEntityQueryWrapper.in("cell_id", approvalGoodsCellEntities.stream().map(ApprovalGoodsCellEntity::getCellId).collect(Collectors.toList()))
|
||||||
|
.eq("deleted", false);
|
||||||
|
List<CabinetCellEntity> cabinetCellList = cabinetCellService.list(cellEntityQueryWrapper);
|
||||||
|
|
||||||
|
for (ApprovalGoodsCellEntity approvalGoodsCell : approvalGoodsCellEntities) {
|
||||||
|
if (approvalGoodsCell.getAllocateQuantity() == null || approvalGoodsCell.getAllocateQuantity().compareTo(0) <= 0) {
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
ApprovalGoodsEntity approvalGoods = approvalGoodsList.stream()
|
||||||
|
.filter(g -> g.getApprovalGoodsId().equals(approvalGoodsCell.getApprovalGoodsId())).findFirst().orElse(null);
|
||||||
|
if (approvalGoods == null) {
|
||||||
|
throw new RuntimeException("未找到关联的订单商品");
|
||||||
|
}
|
||||||
|
|
||||||
|
ShopGoodsEntity goods = goodsList.stream()
|
||||||
|
.filter(g -> g.getGoodsId().equals(approvalGoods.getGoodsId())).findFirst().orElse(null);
|
||||||
|
if (goods == null) {
|
||||||
|
throw new RuntimeException("未找到关联的商品");
|
||||||
|
}
|
||||||
|
if (goods.getStock().compareTo(approvalGoodsCell.getAllocateQuantity()) < 0) {
|
||||||
|
throw new RuntimeException("商品库存不足");
|
||||||
|
}
|
||||||
|
|
||||||
|
CabinetCellEntity cell = cabinetCellList.stream()
|
||||||
|
.filter(c -> c.getCellId().equals(approvalGoodsCell.getCellId()))
|
||||||
|
.findFirst().orElse(null);
|
||||||
|
// 如果没有找到对应的格口,抛出异常
|
||||||
|
if (cell == null) {
|
||||||
|
throw new RuntimeException("未找到关联的格口");
|
||||||
|
}
|
||||||
|
goods.setStock(goods.getStock() - approvalGoodsCell.getAllocateQuantity());
|
||||||
|
cell.setStock(cell.getStock() - approvalGoodsCell.getAllocateQuantity());
|
||||||
|
}
|
||||||
|
|
||||||
|
// 更新审批状态为通过
|
||||||
|
model.validateApprovalStatus();
|
||||||
|
model.setAuditImages(command.getAuditImages());
|
||||||
|
model.setAuditRemark(command.getAuditRemark());
|
||||||
|
model.setAuditUserid(command.getAuditUserid());
|
||||||
|
model.setApprovalTime(new Date());
|
||||||
|
|
||||||
|
// 调用固资通服务的出库方法
|
||||||
|
assetApplicationService.consumeOutput(model.getCorpid(), model.getApplyUserid(), model.getAuditUserid(),
|
||||||
|
model, approvalGoodsList, goodsList);
|
||||||
|
|
||||||
|
// 开始执行数据库操作
|
||||||
|
model.setStatus(2); // 2表示审核通过状态
|
||||||
|
model.updateById();
|
||||||
|
|
||||||
|
// 批量更新商品库存
|
||||||
|
goodsList.forEach(ShopGoodsEntity::updateById);
|
||||||
|
|
||||||
|
// 批量更新格口库存
|
||||||
|
cabinetCellList.forEach(CabinetCellEntity::updateById);
|
||||||
|
|
||||||
|
// 批量更新审批商品表
|
||||||
|
approvalGoodsList.forEach(ApprovalGoodsEntity::updateById);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审批通过资产退货申请
|
* 审批通过资产退货申请
|
||||||
* @param command 更新退货审批命令,包含审批ID、审批人信息等
|
* @param command 更新退货审批命令,包含审批ID、审批人信息等
|
||||||
|
@ -561,6 +787,17 @@ public class ReturnApprovalApplicationService {
|
||||||
return approvalGoodsCellService.selectByApprovalId(approvalId);
|
return approvalGoodsCellService.selectByApprovalId(approvalId);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public ReturnApprovalDetailDTO getApprovalDetail(Long approvalId) {
|
||||||
|
ReturnApprovalEntity approval = approvalService.getById(approvalId);
|
||||||
|
if (approval == null) {
|
||||||
|
throw new RuntimeException("未找到对应的审批记录");
|
||||||
|
}
|
||||||
|
ReturnApprovalDetailDTO detailDTO = new ReturnApprovalDetailDTO(approval);
|
||||||
|
detailDTO.setGoodsList(approvalGoodsService.selectByApprovalId(approvalId));
|
||||||
|
detailDTO.setApprovalGoodsCellList(approvalGoodsCellService.selectByApprovalId(approvalId));
|
||||||
|
return detailDTO;
|
||||||
|
}
|
||||||
|
|
||||||
public PageDTO<ReturnApprovalAssetDTO> getApprovalAssetPage(SearchReturnApprovalAssetQuery<ReturnApprovalEntity> query) {
|
public PageDTO<ReturnApprovalAssetDTO> getApprovalAssetPage(SearchReturnApprovalAssetQuery<ReturnApprovalEntity> query) {
|
||||||
Page<ReturnApprovalEntity> page = approvalService.getApprovalAssetPage(query);
|
Page<ReturnApprovalEntity> page = approvalService.getApprovalAssetPage(query);
|
||||||
List<ReturnApprovalAssetDTO> dtoList = page.getRecords().stream()
|
List<ReturnApprovalAssetDTO> dtoList = page.getRecords().stream()
|
||||||
|
|
|
@ -122,7 +122,7 @@ public class ReturnApprovalEntity extends BaseEntity<ReturnApprovalEntity> {
|
||||||
@TableField("audit_name")
|
@TableField("audit_name")
|
||||||
private String auditName;
|
private String auditName;
|
||||||
|
|
||||||
@ApiModelProperty("审批状态(1待审核 2已通过 3已驳回)")
|
@ApiModelProperty("审批状态(1待审核 2已通过 3已驳回 4开柜中)")
|
||||||
@TableField("status")
|
@TableField("status")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
|
|
|
@ -28,6 +28,7 @@ public class ReturnApprovalDTO {
|
||||||
case 1: return "待审核";
|
case 1: return "待审核";
|
||||||
case 2: return "已通过";
|
case 2: return "已通过";
|
||||||
case 3: return "已驳回";
|
case 3: return "已驳回";
|
||||||
|
case 4: return "开柜中";
|
||||||
default: return "未知状态";
|
default: return "未知状态";
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -100,7 +101,7 @@ public class ReturnApprovalDTO {
|
||||||
@ExcelColumn(name = "审批人")
|
@ExcelColumn(name = "审批人")
|
||||||
private String auditName;
|
private String auditName;
|
||||||
|
|
||||||
@ExcelColumn(name = "审批状态(1待审核 2已通过 3已驳回)")
|
@ExcelColumn(name = "审批状态(1待审核 2已通过 3已驳回 4开柜中)")
|
||||||
private Integer status;
|
private Integer status;
|
||||||
|
|
||||||
@ExcelColumn(name = "审批状态")
|
@ExcelColumn(name = "审批状态")
|
||||||
|
|
|
@ -0,0 +1,119 @@
|
||||||
|
package com.agileboot.domain.shop.approval.dto;
|
||||||
|
|
||||||
|
import cn.hutool.core.bean.BeanUtil;
|
||||||
|
import com.agileboot.common.annotation.ExcelColumn;
|
||||||
|
import com.agileboot.common.annotation.ExcelSheet;
|
||||||
|
import com.agileboot.domain.shop.approval.db.ReturnApprovalEntity;
|
||||||
|
import com.agileboot.domain.shop.approvalGoods.db.ApprovalGoodsEntity;
|
||||||
|
import com.agileboot.domain.shop.approvalGoodsCell.db.ApprovalGoodsCellEntity;
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
import java.math.BigDecimal;
|
||||||
|
import java.util.List;
|
||||||
|
|
||||||
|
@Data
|
||||||
|
@ExcelSheet(name = "审批详情")
|
||||||
|
public class ReturnApprovalDetailDTO {
|
||||||
|
|
||||||
|
public ReturnApprovalDetailDTO(ReturnApprovalEntity entity) {
|
||||||
|
if (entity != null) {
|
||||||
|
BeanUtil.copyProperties(entity, this);
|
||||||
|
|
||||||
|
this.statusStr = convertStatus(entity.getStatus());
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
private String convertStatus(Integer status) {
|
||||||
|
if (status == null) return "-";
|
||||||
|
switch (status) {
|
||||||
|
case 1: return "待审核";
|
||||||
|
case 2: return "已通过";
|
||||||
|
case 3: return "已驳回";
|
||||||
|
case 4: return "开柜中";
|
||||||
|
default: return "未知状态";
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@ExcelColumn(name = "审批编号")
|
||||||
|
private Long approvalId;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "关联订单ID")
|
||||||
|
private Long orderId;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "关联商品ID")
|
||||||
|
private Long goodsId;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "关联订单商品ID")
|
||||||
|
private Long orderGoodsId;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "外部归属类型的商品ID")
|
||||||
|
private Long externalGoodsId;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "外部归属类型的审批ID")
|
||||||
|
private Long externalApprovalId;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "审批码")
|
||||||
|
private String code;
|
||||||
|
|
||||||
|
private Integer codeCheck;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "企业微信id")
|
||||||
|
private String corpid;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "申请人企业UserID")
|
||||||
|
private String applyUserid;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "申请人")
|
||||||
|
private String applyUserName;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "审批人企业UserID")
|
||||||
|
private String auditUserid;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "申请数量")
|
||||||
|
private Integer applyQuantity;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "审批类型")
|
||||||
|
private Integer approvalType;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "申请说明")
|
||||||
|
private String applyRemark;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "归还数量")
|
||||||
|
private Integer returnQuantity;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "商品单价")
|
||||||
|
private BigDecimal goodsPrice;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "退还金额")
|
||||||
|
private BigDecimal returnAmount;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "归还图片")
|
||||||
|
private String returnImages;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "审核图片")
|
||||||
|
private String auditImages;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "归还说明")
|
||||||
|
private String returnRemark;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "审核说明")
|
||||||
|
private String auditRemark;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "审批人")
|
||||||
|
private String auditName;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "审批状态(1待审核 2已通过 3已驳回 4开柜中)")
|
||||||
|
private Integer status;
|
||||||
|
|
||||||
|
@ExcelColumn(name = "审批状态")
|
||||||
|
private String statusStr;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的商品信息
|
||||||
|
*/
|
||||||
|
private List<ApprovalGoodsEntity> goodsList;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 关联的商品格口分配信息
|
||||||
|
*/
|
||||||
|
private List<ApprovalGoodsCellEntity> approvalGoodsCellList;
|
||||||
|
}
|
|
@ -43,9 +43,15 @@ public class SearchReturnApprovalAssetQuery<T> extends AbstractPageQuery<T> {
|
||||||
|
|
||||||
if (status == null && handleStatus!= null) {
|
if (status == null && handleStatus!= null) {
|
||||||
if (handleStatus == 0) {
|
if (handleStatus == 0) {
|
||||||
queryWrapper.eq("ra.status", 1);
|
queryWrapper.and(wrapper ->
|
||||||
|
wrapper.eq("ra.status", 1)
|
||||||
|
.or()
|
||||||
|
.eq("ra.status", 4));
|
||||||
} else if (handleStatus == 1) {
|
} else if (handleStatus == 1) {
|
||||||
queryWrapper.ne("ra.status", 1);
|
queryWrapper.and(wrapper ->
|
||||||
|
wrapper.eq("ra.status", 2)
|
||||||
|
.or()
|
||||||
|
.eq("ra.status", 3));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -53,9 +59,10 @@ public class SearchReturnApprovalAssetQuery<T> extends AbstractPageQuery<T> {
|
||||||
if (searchStr.matches("\\d{6}")) {
|
if (searchStr.matches("\\d{6}")) {
|
||||||
queryWrapper.eq("ra.code", searchStr);
|
queryWrapper.eq("ra.code", searchStr);
|
||||||
} else {
|
} else {
|
||||||
queryWrapper.like("ra.apply_user_name", searchStr)
|
queryWrapper.and(wrapper ->
|
||||||
|
wrapper.like("ra.apply_user_name", searchStr)
|
||||||
.or()
|
.or()
|
||||||
.like("ag.goods_name", searchStr);
|
.like("ag.goods_name", searchStr));
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue