This commit is contained in:
liuhongrui
2025-03-19 11:33:41 +08:00
19 changed files with 325 additions and 121 deletions

View File

@@ -3,37 +3,16 @@
*/ */
package com.openhis.web.datadictionary.appservice; package com.openhis.web.datadictionary.appservice;
import java.util.List;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import org.springframework.web.bind.annotation.GetMapping;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.springframework.web.bind.annotation.RequestBody;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.core.common.utils.MessageUtils;
import com.core.common.utils.bean.BeanUtils;
import com.openhis.administration.domain.Supplier;
import com.openhis.administration.mapper.SupplierMapper;
import com.openhis.administration.service.ISupplierService;
import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.AccountStatus;
import com.openhis.common.enums.SupplierType;
import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisPageUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.datadictionary.dto.SupplierDto;
import com.openhis.web.datadictionary.dto.SupplierInitDto;
import com.openhis.web.datadictionary.dto.SupplierSearchParam; import com.openhis.web.datadictionary.dto.SupplierSearchParam;
import com.openhis.web.datadictionary.dto.SupplierUpDto; import com.openhis.web.datadictionary.dto.SupplierUpDto;
import com.openhis.web.inventorymanage.dto.InventoryReceiptDto;
import com.openhis.web.inventorymanage.dto.InventorySearchParam;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import java.util.Arrays;
import java.util.HashSet;
import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import java.util.stream.Collectors;
import java.util.stream.Stream;
/** /**
* 厂商/产地 service * 厂商/产地 service

View File

@@ -6,8 +6,8 @@ package com.openhis.web.inventorymanage.appservice;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.dto.InventoryReceiptDto;
import com.openhis.web.inventorymanage.dto.InventorySearchParam; import com.openhis.web.inventorymanage.dto.InventorySearchParam;
import com.openhis.web.inventorymanage.dto.PurchaseInventoryDto;
/** /**
* 采购入库 appService * 采购入库 appService
@@ -41,10 +41,10 @@ public interface IPurchaseInventoryAppService {
/** /**
* 添加/编辑入库单据 * 添加/编辑入库单据
* *
* @param inventoryReceiptDto 入库单据 * @param purchaseInventoryDto 入库单据
* @return 操作结果 * @return 操作结果
*/ */
R<?> addOrEditInventoryReceipt(InventoryReceiptDto inventoryReceiptDto); R<?> addOrEditInventoryReceipt(PurchaseInventoryDto purchaseInventoryDto);
/** /**
* 删除单据 * 删除单据

View File

@@ -9,8 +9,8 @@ import javax.servlet.http.HttpServletRequest;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.dto.ItemChargeDetailDto; import com.openhis.web.inventorymanage.dto.ItemChargeDetailDto;
import com.openhis.web.inventorymanage.dto.ReceiptApprovalSearchParam;
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto; import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
import com.openhis.workflow.domain.SupplyRequest;
/** /**
* 单据审批 appService * 单据审批 appService
@@ -20,14 +20,6 @@ import com.openhis.workflow.domain.SupplyRequest;
*/ */
public interface IReceiptApprovalAppService { public interface IReceiptApprovalAppService {
/**
* 校验单据是否正确
*
* @param supplyRequest 单据信息
* @return 校验结果
*/
R<?> verifyInventoryReceipt(SupplyRequest supplyRequest);
/** /**
* 根据单据号获取供应单据及供应项相关详细信息 * 根据单据号获取供应单据及供应项相关详细信息
* *
@@ -62,4 +54,24 @@ public interface IReceiptApprovalAppService {
* @return 操作结果 * @return 操作结果
*/ */
R<?> reject(String busNo, HttpServletRequest request); R<?> reject(String busNo, HttpServletRequest request);
/**
* 审批单据分页列表
*
* @param receiptSearchParam 查询条件
* @param pageNo 当前页码
* @param pageSize 查询条数
* @param searchKey 模糊查询关键字
* @param request 请求数据
* @return 审批单据分页列表
*/
R<?> getPage(ReceiptApprovalSearchParam receiptSearchParam, Integer pageNo, Integer pageSize, String searchKey,
HttpServletRequest request);
/**
* 单据审批页面初始化
*
* @return 初始化信息
*/
R<?> receiptApprovalInit();
} }

View File

@@ -16,7 +16,6 @@ import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.common.enums.AssignSeqEnum;
import com.core.common.utils.AssignSeqUtil; import com.core.common.utils.AssignSeqUtil;
import com.core.common.utils.DateUtils; import com.core.common.utils.DateUtils;
import com.core.common.utils.MessageUtils; import com.core.common.utils.MessageUtils;
@@ -27,10 +26,7 @@ import com.openhis.administration.service.IPractitionerService;
import com.openhis.administration.service.ISupplierService; import com.openhis.administration.service.ISupplierService;
import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.CommonConstants;
import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.ItemType; import com.openhis.common.enums.*;
import com.openhis.common.enums.SupplyCategory;
import com.openhis.common.enums.SupplyStatus;
import com.openhis.common.enums.SupplyType;
import com.openhis.common.utils.EnumUtils; import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisQueryUtils; import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService; import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService;
@@ -71,29 +67,29 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer
@Override @Override
public R<?> purchaseInventoryInit() { public R<?> purchaseInventoryInit() {
InventoryReceiptInitDto initDto = new InventoryReceiptInitDto(); PurchaseInventoryInitDto initDto = new PurchaseInventoryInitDto();
// 单据号 // 单据号
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.PURCHASE_NUM.getPrefix(), 12)); initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.PURCHASE_NUM.getPrefix(), 12));
// 查询供应商列表 // 查询供应商列表
List<Supplier> supplierList = supplierService.getList(); List<Supplier> supplierList = supplierService.getList();
// 查询经手人列表 // 查询经手人列表
List<Practitioner> practitionerList = practitionerService.getList(); List<Practitioner> practitionerList = practitionerService.getList();
// 供应商信息 // 经手人信息
List<InventoryReceiptInitDto.practitionerListOption> practitionerListOptions = practitionerList.stream() List<PurchaseInventoryInitDto.practitionerListOption> practitionerListOptions = practitionerList.stream()
.map(practitioner -> new InventoryReceiptInitDto.practitionerListOption(practitioner.getId(), .map(practitioner -> new PurchaseInventoryInitDto.practitionerListOption(practitioner.getId(),
practitioner.getName())) practitioner.getName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
// 经手人信息 // 供应商信息
List<InventoryReceiptInitDto.supplierListOption> supplierListOptions = supplierList.stream() List<PurchaseInventoryInitDto.supplierListOption> supplierListOptions = supplierList.stream()
.map(supplier -> new InventoryReceiptInitDto.supplierListOption(supplier.getId(), supplier.getName())) .map(supplier -> new PurchaseInventoryInitDto.supplierListOption(supplier.getId(), supplier.getName()))
.collect(Collectors.toList()); .collect(Collectors.toList());
// 入库项目类型 // 入库项目类型
List<InventoryReceiptInitDto.itemTypeOption> itemTypeOptions = Stream.of(ItemType.values()) List<PurchaseInventoryInitDto.itemTypeOption> itemTypeOptions = Stream.of(ItemType.values())
.map(itemType -> new InventoryReceiptInitDto.itemTypeOption(itemType.getValue(), itemType.getInfo())) .map(itemType -> new PurchaseInventoryInitDto.itemTypeOption(itemType.getValue(), itemType.getInfo()))
.collect(Collectors.toList()); .collect(Collectors.toList());
// 审批状态 // 审批状态
List<InventoryReceiptInitDto.supplyStatusOption> supplyStatusOptions = Stream.of(SupplyStatus.values()) List<PurchaseInventoryInitDto.supplyStatusOption> supplyStatusOptions = Stream.of(SupplyStatus.values())
.map(supplyStatus -> new InventoryReceiptInitDto.supplyStatusOption(supplyStatus.getValue(), .map(supplyStatus -> new PurchaseInventoryInitDto.supplyStatusOption(supplyStatus.getValue(),
supplyStatus.getInfo())) supplyStatus.getInfo()))
.collect(Collectors.toList()); .collect(Collectors.toList());
@@ -125,7 +121,7 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer
QueryWrapper<InventorySearchParam> queryWrapper = QueryWrapper<InventorySearchParam> queryWrapper =
HisQueryUtils.buildQueryWrapper(inventorySearchParam, searchKey, searchFields, request); HisQueryUtils.buildQueryWrapper(inventorySearchParam, searchKey, searchFields, request);
// 查询入库单据分页列表 // 查询入库单据分页列表
Page<InventoryReceiptPageDto> inventoryReceiptPage = purchaseInventoryMapper.selectInventoryReceiptPage( Page<ReceiptPageDto> inventoryReceiptPage = purchaseInventoryMapper.selectInventoryReceiptPage(
new Page<>(pageNo, pageSize), queryWrapper, SupplyType.PURCHASE_INVENTORY.getValue()); new Page<>(pageNo, pageSize), queryWrapper, SupplyType.PURCHASE_INVENTORY.getValue());
inventoryReceiptPage.getRecords().forEach(e -> { inventoryReceiptPage.getRecords().forEach(e -> {
@@ -153,17 +149,17 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer
/** /**
* 添加/编辑入库单据 * 添加/编辑入库单据
* *
* @param inventoryReceiptDto 入库单据 * @param purchaseInventoryDto 入库单据
* @return 操作结果 * @return 操作结果
*/ */
@Override @Override
public R<?> addOrEditInventoryReceipt(InventoryReceiptDto inventoryReceiptDto) { public R<?> addOrEditInventoryReceipt(PurchaseInventoryDto purchaseInventoryDto) {
// 初始化单据信息 // 初始化单据信息
SupplyRequest supplyRequest = new SupplyRequest(); SupplyRequest supplyRequest = new SupplyRequest();
BeanUtils.copyProperties(inventoryReceiptDto, supplyRequest); BeanUtils.copyProperties(purchaseInventoryDto, supplyRequest);
if (inventoryReceiptDto.getId() != null) { if (purchaseInventoryDto.getId() != null) {
// 更新单据信息 // 更新单据信息
supplyRequestService.updateById(supplyRequest); supplyRequestService.updateById(supplyRequest);
} else { } else {

View File

@@ -4,11 +4,9 @@
package com.openhis.web.inventorymanage.appservice.impl; package com.openhis.web.inventorymanage.appservice.impl;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.ArrayList; import java.util.*;
import java.util.Date;
import java.util.List;
import java.util.Map;
import java.util.stream.Collectors; import java.util.stream.Collectors;
import java.util.stream.Stream;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
@@ -16,6 +14,8 @@ import org.apache.commons.lang3.tuple.Pair;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.core.common.core.domain.model.LoginUser; import com.core.common.core.domain.model.LoginUser;
import com.core.common.utils.DateUtils; import com.core.common.utils.DateUtils;
@@ -28,10 +28,13 @@ import com.openhis.administration.service.IChargeItemService;
import com.openhis.common.constant.CommonConstants; import com.openhis.common.constant.CommonConstants;
import com.openhis.common.constant.PromptMsgConstant; import com.openhis.common.constant.PromptMsgConstant;
import com.openhis.common.enums.EventStatus; import com.openhis.common.enums.EventStatus;
import com.openhis.common.enums.SupplyStatus;
import com.openhis.common.enums.SupplyType;
import com.openhis.common.utils.EnumUtils;
import com.openhis.common.utils.HisQueryUtils;
import com.openhis.web.inventorymanage.appservice.IReceiptApprovalAppService; import com.openhis.web.inventorymanage.appservice.IReceiptApprovalAppService;
import com.openhis.web.inventorymanage.assembler.InventoryManageAssembler; import com.openhis.web.inventorymanage.assembler.InventoryManageAssembler;
import com.openhis.web.inventorymanage.dto.ItemChargeDetailDto; import com.openhis.web.inventorymanage.dto.*;
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
import com.openhis.web.inventorymanage.mapper.ReceiptApprovalMapper; import com.openhis.web.inventorymanage.mapper.ReceiptApprovalMapper;
import com.openhis.workflow.domain.InventoryItem; import com.openhis.workflow.domain.InventoryItem;
import com.openhis.workflow.domain.SupplyDelivery; import com.openhis.workflow.domain.SupplyDelivery;
@@ -65,23 +68,58 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
private ReceiptApprovalMapper receiptApprovalMapper; private ReceiptApprovalMapper receiptApprovalMapper;
/** /**
* 校验单据是否正确 * 单据审批页面初始化
* *
* @param supplyRequest 单据信息 * @return 初始化信息
* @return 校验结果
*/ */
@Override @Override
public R<?> verifyInventoryReceipt(SupplyRequest supplyRequest) { public R<?> receiptApprovalInit() {
ReceiptInitDto initDto = new ReceiptInitDto();
// 单据类型
List<ReceiptInitDto.supplyTypeOption> supplyTypeOptions = Stream.of(SupplyType.values())
.map(supplyType -> new ReceiptInitDto.supplyTypeOption(supplyType.getValue(), supplyType.getInfo()))
.collect(Collectors.toList());
// 审批状态
List<ReceiptInitDto.supplyStatusOption> supplyStatusOptions = Stream.of(SupplyStatus.values())
.map(supplyStatus -> new ReceiptInitDto.supplyStatusOption(supplyStatus.getValue(), supplyStatus.getInfo()))
.collect(Collectors.toList());
initDto.setSupplyTypeOptions(supplyTypeOptions).setSupplyStatusOptions(supplyStatusOptions);
// // 判断同一物品的批次号是否重复 return R.ok(initDto);
// boolean result = supplyRequestMapper }
// .exists(new LambdaQueryWrapper<SupplyRequest>().eq(SupplyRequest::getItemId, supplyRequest.getItemId())
// .eq(SupplyRequest::getLotNumber, supplyRequest.getLotNumber()) /**
// .ne(supplyRequest.getId() != null, SupplyRequest::getId, supplyRequest.getId())); * 审批单据分页列表
// if (result) { *
// return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00003, new Object[] {"批次号"})); * @param receiptSearchParam 查询条件
// } * @param pageNo 当前页码
return R.ok(); * @param pageSize 查询条数
* @param searchKey 模糊查询关键字
* @param request 请求数据
* @return 审批单据分页列表
*/
@Override
public R<?> getPage(ReceiptApprovalSearchParam receiptSearchParam, Integer pageNo, Integer pageSize,
String searchKey, HttpServletRequest request) {
// 设置模糊查询的字段名
HashSet<String> searchFields = new HashSet<>();
searchFields.add(CommonConstants.FieldName.SupplyBusNo);
// 构建查询条件
QueryWrapper<ReceiptApprovalSearchParam> queryWrapper =
HisQueryUtils.buildQueryWrapper(receiptSearchParam, searchKey, searchFields, request);
// 查询单据分页列表
Page<ReceiptPageDto> receiptPage =
receiptApprovalMapper.selectReceiptPage(new Page<>(pageNo, pageSize), queryWrapper,
SupplyStatus.APPROVAL.getValue(), SupplyStatus.AGREE.getValue(), SupplyStatus.REJECT.getValue());
receiptPage.getRecords().forEach(e -> {
// 单据状态
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
// 单据状态
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
});
return R.ok(receiptPage);
} }
/** /**

View File

@@ -11,8 +11,8 @@ import org.springframework.web.bind.annotation.*;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService; import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService;
import com.openhis.web.inventorymanage.dto.InventoryReceiptDto;
import com.openhis.web.inventorymanage.dto.InventorySearchParam; import com.openhis.web.inventorymanage.dto.InventorySearchParam;
import com.openhis.web.inventorymanage.dto.PurchaseInventoryDto;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -72,12 +72,12 @@ public class PurchaseInventoryController {
/** /**
* 添加/编辑入库单据 * 添加/编辑入库单据
* *
* @param inventoryReceiptDto 入库单据 * @param purchaseInventoryDto 入库单据
* @return 操作结果 * @return 操作结果
*/ */
@PutMapping("/inventory-receipt") @PutMapping("/inventory-receipt")
public R<?> addOrEditInventoryReceipt(@Validated @RequestBody InventoryReceiptDto inventoryReceiptDto) { public R<?> addOrEditInventoryReceipt(@Validated @RequestBody PurchaseInventoryDto purchaseInventoryDto) {
return purchaseInventoryAppService.addOrEditInventoryReceipt(inventoryReceiptDto); return purchaseInventoryAppService.addOrEditInventoryReceipt(purchaseInventoryDto);
} }
/** /**

View File

@@ -6,13 +6,11 @@ package com.openhis.web.inventorymanage.controller;
import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletRequest;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping; import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import com.core.common.core.domain.R; import com.core.common.core.domain.R;
import com.openhis.web.inventorymanage.appservice.IReceiptApprovalAppService; import com.openhis.web.inventorymanage.appservice.IReceiptApprovalAppService;
import com.openhis.web.inventorymanage.dto.ReceiptApprovalSearchParam;
import lombok.extern.slf4j.Slf4j; import lombok.extern.slf4j.Slf4j;
@@ -30,6 +28,34 @@ public class ReceiptApprovalController {
@Autowired @Autowired
private IReceiptApprovalAppService receiptApprovalAppService; private IReceiptApprovalAppService receiptApprovalAppService;
/**
* 单据审批页面初始化
*
* @return 初始化信息
*/
@GetMapping(value = "/init")
public R<?> receiptApprovalInit() {
return receiptApprovalAppService.receiptApprovalInit();
}
/**
* 审批单据分页列表
*
* @param receiptSearchParam 查询条件
* @param pageNo 当前页码
* @param pageSize 查询条数
* @param searchKey 模糊查询关键字
* @param request 请求数据
* @return 审批单据分页列表
*/
@GetMapping(value = "/receipt-page")
public R<?> getPage(ReceiptApprovalSearchParam receiptSearchParam,
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
return receiptApprovalAppService.getPage(receiptSearchParam, pageNo, pageSize, searchKey, request);
}
/** /**
* 入库单据审批通过 * 入库单据审批通过
* *

View File

@@ -4,9 +4,6 @@
package com.openhis.web.inventorymanage.dto; package com.openhis.web.inventorymanage.dto;
import java.io.Serializable; import java.io.Serializable;
import java.util.Date;
import org.hibernate.validator.constraints.Length;
import lombok.Data; import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
@@ -21,9 +18,7 @@ import lombok.experimental.Accessors;
@Accessors(chain = true) @Accessors(chain = true)
public class InventorySearchParam implements Serializable { public class InventorySearchParam implements Serializable {
/** 单据号 */ private static final long serialVersionUID = 1L;
@Length(max = 255)
private String busNo;
/** 状态 */ /** 状态 */
private Integer statusEnum; private Integer statusEnum;
@@ -31,12 +26,6 @@ public class InventorySearchParam implements Serializable {
/** 供应商 */ /** 供应商 */
private Long supplierId; private Long supplierId;
/** 申请开始时间 */
private Date applyTimeStart;
/** 申请结束时间 */
private Date applyTimeEnd;
/** 经手人 */ /** 经手人 */
private Long practitionerId; private Long practitionerId;
} }

View File

@@ -26,7 +26,7 @@ import lombok.experimental.Accessors;
*/ */
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
public class InventoryReceiptDto implements Serializable { public class PurchaseInventoryDto implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;

View File

@@ -16,7 +16,7 @@ import lombok.experimental.Accessors;
*/ */
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
public class InventoryReceiptInitDto { public class PurchaseInventoryInitDto {
/** /**
* 单据号 * 单据号
@@ -26,22 +26,22 @@ public class InventoryReceiptInitDto {
/** /**
* 供应商 * 供应商
*/ */
private List<InventoryReceiptInitDto.supplierListOption> supplierListOptions; private List<PurchaseInventoryInitDto.supplierListOption> supplierListOptions;
/** /**
* 经手人 * 经手人
*/ */
private List<InventoryReceiptInitDto.practitionerListOption> practitionerListOptions; private List<PurchaseInventoryInitDto.practitionerListOption> practitionerListOptions;
/** /**
* 入库项目类型 * 入库项目类型
*/ */
private List<InventoryReceiptInitDto.itemTypeOption> itemTypeOptions; private List<PurchaseInventoryInitDto.itemTypeOption> itemTypeOptions;
/** /**
* 审批状态 * 审批状态
*/ */
private List<InventoryReceiptInitDto.supplyStatusOption> supplyStatusOptions; private List<PurchaseInventoryInitDto.supplyStatusOption> supplyStatusOptions;
/** /**
* 供应商 * 供应商

View File

@@ -0,0 +1,28 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.inventorymanage.dto;
import java.io.Serializable;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* 单据审批分页查询条件
*
* @author zwh
* @date 2025-03-19
*/
@Data
@Accessors(chain = true)
public class ReceiptApprovalSearchParam implements Serializable {
private static final long serialVersionUID = 1L;
/** 状态 */
private Integer statusEnum;
/** 类型 */
private Integer typeEnum;
}

View File

@@ -0,0 +1,58 @@
/*
* Copyright ©2023 CJB-CNIT Team. All rights reserved
*/
package com.openhis.web.inventorymanage.dto;
import java.util.List;
import lombok.Data;
import lombok.experimental.Accessors;
/**
* TODO:概括描述当前类的主要用途和注意事项
*
* @author zwh
* @date 2025-03-19
*/
@Data
@Accessors(chain = true)
public class ReceiptInitDto {
/**
* 单据类型
*/
private List<ReceiptInitDto.supplyTypeOption> supplyTypeOptions;
/**
* 审批状态
*/
private List<ReceiptInitDto.supplyStatusOption> supplyStatusOptions;
/**
* 单据类型
*/
@Data
public static class supplyTypeOption {
private Integer value;
private String label;
public supplyTypeOption(Integer value, String label) {
this.value = value;
this.label = label;
}
}
/**
* 审批状态
*/
@Data
public static class supplyStatusOption {
private Integer value;
private String label;
public supplyStatusOption(Integer value, String label) {
this.value = value;
this.label = label;
}
}
}

View File

@@ -16,14 +16,14 @@ import lombok.Data;
import lombok.experimental.Accessors; import lombok.experimental.Accessors;
/** /**
* 入库单据分页列表 dto * 单据分页列表 dto
* *
* @author zwh * @author zwh
* @date 2025-02-18 * @date 2025-02-18
*/ */
@Data @Data
@Accessors(chain = true) @Accessors(chain = true)
public class InventoryReceiptPageDto implements Serializable { public class ReceiptPageDto implements Serializable {
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
@@ -39,16 +39,24 @@ public class InventoryReceiptPageDto implements Serializable {
private Integer statusEnum; private Integer statusEnum;
private String statusEnum_enumText; private String statusEnum_enumText;
/** 状态 */
private Integer typeEnum;
private String typeEnum_enumText;
/** 供应商 */ /** 供应商 */
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_supplier")
private Long supplierId; private Long supplierId;
private String supplierId_dictText;
/** 经手人 */ /** 经手人 */
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner") @Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
private Long practitionerId; private Long practitionerId;
private String practitionerId_dictText;
/** 审批人 */ /** 审批人 */
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner") @Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
private Long approverId; private Long approverId;
private String approverId_dictText;
/** 审批时间 */ /** 审批时间 */
private Date approvalTime; private Date approvalTime;
@@ -56,8 +64,12 @@ public class InventoryReceiptPageDto implements Serializable {
/** 申请人 */ /** 申请人 */
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner") @Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
private Long applicantId; private Long applicantId;
private String applicantId_dictText;
/** 申请时间 */ /** 申请时间 */
private Date applyTime; private Date applyTime;
/** 制单日期 */
private Date createTime;
} }

View File

@@ -11,9 +11,9 @@ import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.Constants; import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.openhis.web.inventorymanage.dto.InventoryReceiptPageDto;
import com.openhis.web.inventorymanage.dto.InventorySearchParam; import com.openhis.web.inventorymanage.dto.InventorySearchParam;
import com.openhis.web.inventorymanage.dto.ReceiptDetailDto; import com.openhis.web.inventorymanage.dto.ReceiptDetailDto;
import com.openhis.web.inventorymanage.dto.ReceiptPageDto;
/** /**
* 采购入库查询用 mapper * 采购入库查询用 mapper
@@ -32,7 +32,7 @@ public interface PurchaseInventoryMapper {
* @param purchaseInventory 单据类型:采购入库 * @param purchaseInventory 单据类型:采购入库
* @return 入库单据分页列表 * @return 入库单据分页列表
*/ */
Page<InventoryReceiptPageDto> selectInventoryReceiptPage(@Param("page") Page<InventoryReceiptPageDto> page, Page<ReceiptPageDto> selectInventoryReceiptPage(@Param("page") Page<ReceiptPageDto> page,
@Param(Constants.WRAPPER) QueryWrapper<InventorySearchParam> queryWrapper, @Param(Constants.WRAPPER) QueryWrapper<InventorySearchParam> queryWrapper,
@Param("purchaseInventory") Integer purchaseInventory); @Param("purchaseInventory") Integer purchaseInventory);

View File

@@ -8,8 +8,13 @@ import java.util.List;
import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.toolkit.Constants;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.openhis.web.inventorymanage.dto.ItemChargeDetailDto; import com.openhis.web.inventorymanage.dto.ItemChargeDetailDto;
import com.openhis.web.inventorymanage.dto.ReceiptApprovalSearchParam;
import com.openhis.web.inventorymanage.dto.ReceiptPageDto;
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto; import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
import com.openhis.workflow.domain.SupplyRequest; import com.openhis.workflow.domain.SupplyRequest;
@@ -49,4 +54,18 @@ public interface ReceiptApprovalMapper extends BaseMapper<SupplyRequest> {
* @return 价格信息 * @return 价格信息
*/ */
List<ItemChargeDetailDto> selectChargeDetail(@Param("itemIdList") List<Long> itemIdList); List<ItemChargeDetailDto> selectChargeDetail(@Param("itemIdList") List<Long> itemIdList);
/**
* 查询单据审批分页列表
*
* @param page 分页
* @param queryWrapper 查询条件
* @param approval 单据状态:审核中
* @param agree 单据状态:同意
* @param reject 单据状态:驳回
* @return 单据审批分页列表
*/
Page<ReceiptPageDto> selectReceiptPage(@Param("page") Page<ReceiptPageDto> page,
@Param(Constants.WRAPPER) QueryWrapper<ReceiptApprovalSearchParam> queryWrapper,
@Param("approval") Integer approval, @Param("agree") Integer agree, @Param("reject") Integer reject);
} }

View File

@@ -3,7 +3,7 @@
<mapper namespace="com.openhis.web.inventorymanage.mapper.PurchaseInventoryMapper"> <mapper namespace="com.openhis.web.inventorymanage.mapper.PurchaseInventoryMapper">
<select id="selectInventoryReceiptPage" <select id="selectInventoryReceiptPage"
resultType="com.openhis.web.inventorymanage.dto.InventoryReceiptPageDto"> resultType="com.openhis.web.inventorymanage.dto.ReceiptPageDto">
SELECT T2.id, SELECT T2.id,
T2.bus_no AS supply_bus_no, T2.bus_no AS supply_bus_no,
T2.status_enum, T2.status_enum,
@@ -11,7 +11,7 @@
T2.approver_id, T2.approver_id,
T2.approval_time, T2.approval_time,
T2.applicant_id, T2.applicant_id,
T2.apply_time, T2.create_time,
T2.practitioner_id, T2.practitioner_id,
T2.tenant_id T2.tenant_id
FROM (SELECT T1.id, FROM (SELECT T1.id,
@@ -21,7 +21,7 @@
T1.approver_id, T1.approver_id,
T1.approval_time, T1.approval_time,
T1.applicant_id, T1.applicant_id,
T1.apply_time, T1.create_time,
T1.practitioner_id, T1.practitioner_id,
T1.tenant_id T1.tenant_id
FROM wor_supply_request AS T1 FROM wor_supply_request AS T1
@@ -33,7 +33,7 @@
T1.approver_id, T1.approver_id,
T1.approval_time, T1.approval_time,
T1.applicant_id, T1.applicant_id,
T1.apply_time, T1.create_time,
T1.practitioner_id, T1.practitioner_id,
T1.tenant_id T1.tenant_id
ORDER BY T1.bus_no desc ORDER BY T1.bus_no desc

View File

@@ -108,4 +108,47 @@
#{itemId} #{itemId}
</foreach> </foreach>
</select> </select>
<select id="selectReceiptPage" resultType="com.openhis.web.inventorymanage.dto.ReceiptPageDto">
SELECT T2.id,
T2.bus_no,
T2.status_enum,
T2.type_enum,
T2.supplier_id,
T2.approver_id,
T2.approval_time,
T2.applicant_id,
T2.apply_time,
T2.create_time,
T2.practitioner_id,
T2.tenant_id
FROM (SELECT T1.id,
T1.bus_no,
T1.status_enum,
T1.type_enum,
T1.supplier_id,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.apply_time,
T1.create_time,
T1.practitioner_id,
T1.tenant_id
FROM wor_supply_request AS T1
WHERE T1.status_enum IN (#{approval},#{agree},#{reject})
GROUP BY T1.id,
T1.bus_no,
T1.status_enum,
T1.type_enum,
T1.supplier_id,
T1.approver_id,
T1.approval_time,
T1.applicant_id,
T1.apply_time,
T1.create_time,
T1.practitioner_id,
T1.tenant_id
ORDER BY T1.bus_no desc
) AS T2
${ew.customSqlSegment}
</select>
</mapper> </mapper>

View File

@@ -14,29 +14,30 @@ import lombok.Getter;
*/ */
@Getter @Getter
@AllArgsConstructor @AllArgsConstructor
public enum SupplyType { public enum SupplyType implements HisEnumInterface {
/** /**
* 采购入库 * 采购入库
*/ */
PURCHASE_INVENTORY(1, "采购入库"), PURCHASE_INVENTORY(1, "1", "采购入库"),
/** /**
* 商品调拨 * 商品调拨
*/ */
PRODUCT_ALLOCATION(2, "商品调拨"), PRODUCT_ALLOCATION(2, "2", "商品调拨"),
/** /**
* 汇总发药 * 汇总发药
*/ */
DISPENSING_AGGREGATION(3, "汇总发药"), DISPENSING_AGGREGATION(3, "3", "汇总发药"),
/** /**
* 商品盘点 * 商品盘点
*/ */
PRODUCT_INVENTORY(4, "商品盘点"); PRODUCT_INVENTORY(4, "4", "商品盘点");
private Integer value; private Integer value;
private String code;
private String info; private String info;
public static SupplyType getByValue(Integer value) { public static SupplyType getByValue(Integer value) {

View File

@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper; import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.core.common.core.domain.model.LoginUser; import com.core.common.core.domain.model.LoginUser;
import com.core.common.utils.DateUtils;
import com.openhis.common.enums.SupplyStatus; import com.openhis.common.enums.SupplyStatus;
import com.openhis.workflow.domain.SupplyRequest; import com.openhis.workflow.domain.SupplyRequest;
import com.openhis.workflow.mapper.SupplyRequestMapper; import com.openhis.workflow.mapper.SupplyRequestMapper;
@@ -68,8 +69,10 @@ public class SupplyRequestServiceImpl extends ServiceImpl<SupplyRequestMapper, S
*/ */
@Override @Override
public boolean submitApproval(String busNo) { public boolean submitApproval(String busNo) {
int updateCount = baseMapper.update(null, new LambdaUpdateWrapper<SupplyRequest>() int updateCount = baseMapper.update(null,
.eq(SupplyRequest::getBusNo, busNo).set(SupplyRequest::getStatusEnum, SupplyStatus.APPROVAL.getValue())); new LambdaUpdateWrapper<SupplyRequest>().eq(SupplyRequest::getBusNo, busNo)
.set(SupplyRequest::getStatusEnum, SupplyStatus.APPROVAL.getValue())
.set(SupplyRequest::getApplyTime, DateUtils.getNowDate()));
return updateCount > 0; return updateCount > 0;
} }