版本更新
This commit is contained in:
@@ -0,0 +1,56 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
import com.openhis.web.pharmacyWarehousemanage.dto.PharmacyWarehouseSearchParam;
|
||||
|
||||
/**
|
||||
* 物资共通方法
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialCommonService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
MaterialInitDto init();
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam, Integer pageNo, Integer pageSize,
|
||||
String searchKey, HttpServletRequest request);
|
||||
|
||||
/**
|
||||
* 单据列表
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @param locationFlg 仓库flg
|
||||
* @param supplyType 单据类型
|
||||
* @return 订货单据分页列表
|
||||
*/
|
||||
R<?> getPage(MaterialSearchParam purchaseOrderSearchParam, Integer pageNo, Integer pageSize,
|
||||
String searchKey, HttpServletRequest request,String locationFlg,Integer supplyType);
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> deleteOrder(String busNo);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资损益单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialProfitLossOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 损益单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 损益单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑损益单
|
||||
*
|
||||
* @param profitLossOrderDtoList 损益信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditProfitLossOrder(List<MaterialDetailDto> profitLossOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资订货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialPurchaseOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 订货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 订货单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑订货单
|
||||
*
|
||||
* @param purchaseOrderDtoList 订货信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditPurchaseOrder(List<MaterialDetailDto> purchaseOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,106 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.inventorymanage.dto.ItemChargeDetailDto;
|
||||
import com.openhis.web.inventorymanage.dto.SupplyItemDetailDto;
|
||||
|
||||
/**
|
||||
* 物资审批方法
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialReceiptApprovalService {
|
||||
|
||||
/**
|
||||
* 采购单同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> purchaseOrderAgreeApproval(String busNo);
|
||||
|
||||
/**
|
||||
* 根据单据号获取供应单据及供应项相关详细信息
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 供应单据及供应项相关详细信息
|
||||
*/
|
||||
List<SupplyItemDetailDto> getSupplyItemDetail(String busNo);
|
||||
|
||||
/**
|
||||
* 获取物品的价格信息
|
||||
*
|
||||
* @param itemIdList 物品id
|
||||
* @return 价格信息
|
||||
*/
|
||||
List<ItemChargeDetailDto> getItemChargeDetail(List<Long> itemIdList);
|
||||
|
||||
/**
|
||||
* 入库单据审批通过
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> purchaseInventoryApproved(String busNo);
|
||||
|
||||
/**
|
||||
* 采购退货审批通过
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> purchaseReturnApproved(String busNo);
|
||||
|
||||
|
||||
/**
|
||||
* 领用出库审批通过
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> requisitionIssueApproved(String busNo);
|
||||
|
||||
/**
|
||||
* 领用退库审批通过
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> returnIssueApproved(String busNo);
|
||||
|
||||
|
||||
/**
|
||||
* 报损单审批通过
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> lossReportApproved(String busNo);
|
||||
|
||||
/**
|
||||
* 盘点审批通过
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> productStocktakingApproved(String busNo);
|
||||
/**
|
||||
* 调入单审批通过
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> transferInAgreeApproved(String busNo);
|
||||
|
||||
/**
|
||||
* 调出单审批通过
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> transferOutAgreeApproved(String busNo);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资退货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialReturnOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 退货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 退货单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑退货单
|
||||
*
|
||||
* @param returnOrderDtoList 退货信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditReturnOrder(List<MaterialDetailDto> returnOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资退库单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialReturnToWarehouseOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 退库单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 退库单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑退库单
|
||||
*
|
||||
* @param returnToWarehouseOrderDtoList 退库信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditReturnToWarehouseOrder(List<MaterialDetailDto> returnToWarehouseOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资进货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialStockInOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 进货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 进货单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑进货单
|
||||
*
|
||||
* @param stockInOrderDtoList 进货信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditStockInOrder(List<MaterialDetailDto> stockInOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资出库单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialStockOutOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 出库单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 出库单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑出库单
|
||||
*
|
||||
* @param stockOutOrderDtoList 出库信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditStockOutOrder(List<MaterialDetailDto> stockOutOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资盘点单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialStocktakingOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 盘点单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 盘点单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑盘点单
|
||||
*
|
||||
* @param stocktakingOrderDtoList 盘点信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditStocktakingOrder(List<MaterialDetailDto> stocktakingOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资调入单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialTransferInOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 调入单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 调入单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑调入单
|
||||
*
|
||||
* @param transferInOrderDtoList 调入信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditTransferInOrder(List<MaterialDetailDto> transferInOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,47 @@
|
||||
package com.openhis.web.materialmanage.appservice;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
|
||||
/**
|
||||
* 物资调出单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
public interface IMaterialTransferOutOrderService {
|
||||
/**
|
||||
* 单据初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> init();
|
||||
|
||||
/**
|
||||
* 调出单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 调出单单据详情
|
||||
*/
|
||||
R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize);
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
R<?> getBusNo();
|
||||
|
||||
/**
|
||||
* 添加/编辑调入单
|
||||
*
|
||||
* @param transferOutOrderDtoList 调入信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
R<?> addOrEditTransferOutOrder(List<MaterialDetailDto> transferOutOrderDtoList);
|
||||
|
||||
}
|
||||
@@ -0,0 +1,223 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import com.openhis.administration.domain.Organization;
|
||||
import com.openhis.administration.service.IOrganizationService;
|
||||
import com.openhis.common.enums.*;
|
||||
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.utils.MessageUtils;
|
||||
import com.openhis.administration.domain.Practitioner;
|
||||
import com.openhis.administration.domain.Supplier;
|
||||
import com.openhis.administration.service.IPractitionerService;
|
||||
import com.openhis.administration.service.ISupplierService;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.common.utils.HisQueryUtils;
|
||||
import com.openhis.web.common.appservice.ICommonService;
|
||||
import com.openhis.web.common.dto.LocationDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDeviceInfoDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资共通
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialCommonServiceImpl implements IMaterialCommonService {
|
||||
|
||||
@Resource
|
||||
private ISupplierService supplierService;
|
||||
|
||||
@Resource
|
||||
private IPractitionerService practitionerService;
|
||||
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Resource
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
@Resource
|
||||
private ICommonService commonServiceImpl;
|
||||
@Resource
|
||||
private IOrganizationService organizationService;
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public MaterialInitDto init() {
|
||||
MaterialInitDto orderInitDto = new MaterialInitDto();
|
||||
|
||||
// 查询供应商列表
|
||||
List<Supplier> supplierList = supplierService.getList();
|
||||
// 查询经手人列表
|
||||
List<Practitioner> practitionerList = practitionerService.getList();
|
||||
// 经手人信息
|
||||
List<MaterialInitDto.LongOption> practitionerListOption = practitionerList.stream()
|
||||
.map(practitioner -> new MaterialInitDto.LongOption(practitioner.getId(), practitioner.getName()))
|
||||
.collect(Collectors.toList());
|
||||
// 供应商信息
|
||||
List<MaterialInitDto.SupplierOption> supplierListOption = supplierList.stream().map(
|
||||
supplier -> new MaterialInitDto.SupplierOption(supplier.getId(), supplier.getName(), supplier.getPhone()))
|
||||
.collect(Collectors.toList());
|
||||
// 审批状态
|
||||
List<MaterialInitDto.IntegerOption> supplyStatusOption = Stream.of(SupplyStatus.values())
|
||||
.map(supplyStatus -> new MaterialInitDto.IntegerOption(supplyStatus.getValue(), supplyStatus.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 包装情况
|
||||
List<MaterialInitDto.IntegerOption> packagingConditionOption = Stream.of(PackagingCondition.values())
|
||||
.map(packagingCondition -> new MaterialInitDto.IntegerOption(packagingCondition.getValue(),
|
||||
packagingCondition.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 验收结果
|
||||
List<MaterialInitDto.IntegerOption> acceptanceResultOption = Stream.of(AcceptanceResult.values())
|
||||
.map(acceptanceResult -> new MaterialInitDto.IntegerOption(acceptanceResult.getValue(),
|
||||
acceptanceResult.getInfo()))
|
||||
.collect(Collectors.toList());
|
||||
|
||||
// 仓库列表
|
||||
List<LocationDto> warehouseList = commonServiceImpl.getWarehouseList();
|
||||
// 科室列表
|
||||
List<Organization> departmentList = organizationService.getList(OrganizationType.DEPARTMENT.getValue(), null);
|
||||
|
||||
orderInitDto.setWarehouseListOptions(warehouseList).setDepartmentListOptions(departmentList)
|
||||
.setSupplierOption(supplierListOption).setPractitionerOption(practitionerListOption)
|
||||
.setSupplyStatusOptions(supplyStatusOption).setPackagingConditionOptions(packagingConditionOption)
|
||||
.setAcceptanceResultoryOptions(acceptanceResultOption);
|
||||
|
||||
return orderInitDto;
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam, Integer pageNo, Integer pageSize,
|
||||
String searchKey, HttpServletRequest request) {
|
||||
|
||||
Long locationId = purchaseOrderSearchParam.getLocationId();
|
||||
purchaseOrderSearchParam.setLocationId(null);
|
||||
Long supplierId = null;
|
||||
// 为物资订货时,需要传参数supplierId
|
||||
if (purchaseOrderSearchParam.getTypeEnum() != null
|
||||
&& purchaseOrderSearchParam.getTypeEnum().equals(SupplyType.MATERIAL_PURCHASE.getValue())) {
|
||||
supplierId = purchaseOrderSearchParam.getSupplierId();
|
||||
purchaseOrderSearchParam.setSupplierId(null);
|
||||
}
|
||||
// 构建查询条件
|
||||
QueryWrapper<MaterialSearchParam> queryWrapper =
|
||||
HisQueryUtils.buildQueryWrapper(purchaseOrderSearchParam, searchKey,
|
||||
new HashSet<>(Arrays.asList(CommonConstants.FieldName.Name, CommonConstants.FieldName.PyStr)), request);
|
||||
// 设置排序
|
||||
queryWrapper.orderByDesc(CommonConstants.FieldName.Name);
|
||||
|
||||
Page<MaterialDeviceInfoDto> deviceInfoDto =
|
||||
materialCommonMapper.getDeviceInfo(new Page<>(pageNo, pageSize), queryWrapper, locationId, supplierId);
|
||||
|
||||
for (MaterialDeviceInfoDto item : deviceInfoDto.getRecords()) {
|
||||
List<MaterialDeviceInfoDto.Option> unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDeviceInfoDto.Option(item.getUnitCode(), item.getUnitCode_dictText()));
|
||||
unitList.add(new MaterialDeviceInfoDto.Option(item.getMinUnitCode(), item.getMinUnitCode_dictText()));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
|
||||
return R.ok(deviceInfoDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 单据列表
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @param locationFlg 仓库flg
|
||||
* @param supplyType 单据类型
|
||||
* @return 订货单据分页列表
|
||||
*/
|
||||
@Override
|
||||
public R<?> getPage(MaterialSearchParam purchaseOrderSearchParam, Integer pageNo, Integer pageSize,
|
||||
String searchKey, HttpServletRequest request, String locationFlg, Integer supplyType) {
|
||||
// 判断哪个画面使用
|
||||
if (supplyType != null) {
|
||||
purchaseOrderSearchParam.setTypeEnum(supplyType);
|
||||
}
|
||||
String originalBusNoFlg = purchaseOrderSearchParam.getOriginalBusNoFlg();
|
||||
purchaseOrderSearchParam.setOriginalBusNoFlg(null);
|
||||
// 构建查询条件
|
||||
QueryWrapper<MaterialSearchParam> queryWrapper =
|
||||
HisQueryUtils.buildQueryWrapper(purchaseOrderSearchParam, searchKey,
|
||||
new HashSet<>(
|
||||
Arrays.asList(CommonConstants.FieldName.SupplyBusNo, CommonConstants.FieldName.ApplicantName)),
|
||||
request);
|
||||
// 设置排序
|
||||
queryWrapper.orderByDesc(CommonConstants.FieldName.SupplyBusNo);
|
||||
// 查询订货单分页列表
|
||||
Page<MaterialDto> purchaseOrderDtoPage =
|
||||
materialCommonMapper.getPage(new Page<>(pageNo, pageSize), queryWrapper, originalBusNoFlg, locationFlg);
|
||||
|
||||
purchaseOrderDtoPage.getRecords().forEach(e -> {
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
return R.ok(purchaseOrderDtoPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@Override
|
||||
public R<?> deleteOrder(String busNo) {
|
||||
// 根据原始单据号查询信息
|
||||
List<SupplyRequest> supplyRequest = supplyRequestService.getSupplyByOriginalBusNo(busNo);
|
||||
if (!supplyRequest.isEmpty()) {
|
||||
// 将原始单据号信息的原始单据号删除
|
||||
boolean flg = supplyRequestService.updateByBusNo(supplyRequest.get(0).getBusNo());
|
||||
if (!flg) {
|
||||
R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
|
||||
// 删除单据
|
||||
boolean result = supplyRequestService.removeByBusNo(busNo);
|
||||
return result ? R.ok(null, MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null))
|
||||
: R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,169 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialProfitLossOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialProfitLossOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资损益单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialProfitLossOrderServiceImpl implements IMaterialProfitLossOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.GENERAL_PROFIT_AND_LOSS.getValue(),
|
||||
SupplyCategory.GENERAL_PROFIT_AND_LOSS.getInfo()));
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.STOCKTAKING_PROFIT_AND_LOSS.getValue(),
|
||||
SupplyCategory.STOCKTAKING_PROFIT_AND_LOSS.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 损益单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 损益单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> profitLossOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
profitLossOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : profitLossOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(),item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(),item.getMinUnitCode_dictText()
|
||||
));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
return R.ok(profitLossOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_PRPFITLOSS.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑损益单
|
||||
*
|
||||
* @param profitLossOrderDtoList 损益信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditProfitLossOrder(List<MaterialDetailDto> profitLossOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(profitLossOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
Date applyTime = DateUtils.getNowDate();
|
||||
for (MaterialDetailDto item : profitLossOrderDtoList) {
|
||||
SupplyRequest supplyRequest =
|
||||
new SupplyRequest().setBusNo(item.getBusNo()).setTypeEnum(SupplyType.MATERIAL_PRPFITLOSS.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue()).setCategoryEnum(item.getCategoryEnum())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity()).setPrice(item.getPrice())
|
||||
.setTotalPrice(item.getTotalPrice()).setRetailPrice(item.getRetailPrice())
|
||||
.setTotalRetailPrice(item.getTotalRetailPrice()).setBatchInventory(item.getBatchInventory())
|
||||
.setSpecificationInventory(item.getSpecificationInventory()).setStartTime(item.getStartTime())
|
||||
.setEndTime(item.getEndTime()).setLotNumber(item.getLotNumber()).setTraceNo(item.getTraceNo())
|
||||
.setTraceNoUnitCode(item.getTraceNoUnitCode()).setSupplierId(item.getSupplierId())
|
||||
.setReason(item.getReason()).setPurposeTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setPurposeLocationId(item.getPurposeLocationId())
|
||||
.setApplicantId(item.getApplicantId()).setApplyTime(applyTime).setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,163 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialPurchaseOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialPurchaseOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资订货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialPurchaseOrderServiceImpl implements IMaterialPurchaseOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.NORMAL.getValue(),
|
||||
SupplyCategory.NORMAL.getInfo()));
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.PURCHASE_PLAN_GENERATION.getValue(),
|
||||
SupplyCategory.PURCHASE_PLAN_GENERATION.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 订货单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> purchaseOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
purchaseOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : purchaseOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(),item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(),item.getMinUnitCode_dictText()
|
||||
));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
|
||||
return R.ok(purchaseOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_PURCHASE.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑订货单
|
||||
*
|
||||
* @param purchaseOrderDtoList 订货信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditPurchaseOrder(List<MaterialDetailDto> purchaseOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(purchaseOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
for (MaterialDetailDto item : purchaseOrderDtoList) {
|
||||
SupplyRequest supplyRequest =
|
||||
new SupplyRequest().setBusNo(item.getBusNo()).setTypeEnum(SupplyType.MATERIAL_PURCHASE.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue()).setCategoryEnum(item.getCategoryEnum())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity())
|
||||
.setSpecificationInventory(item.getSpecificationInventory()).setPrice(item.getPrice())
|
||||
.setTotalPrice(item.getTotalPrice()).setRetailPrice(item.getRetailPrice())
|
||||
.setTotalRetailPrice(item.getTotalRetailPrice()).setPurposeTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setPurposeLocationId(item.getPurposeLocationId()).setSupplierId(item.getSupplierId())
|
||||
.setApplicantId(item.getApplicantId()).setApplyTime(item.getApplyTime()).setReason(item.getReason())
|
||||
.setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
}
|
||||
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,173 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReturnOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialReturnOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资退货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialReturnOrderServiceImpl implements IMaterialReturnOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.NORMAL.getValue(),
|
||||
SupplyCategory.NORMAL.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 退货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 退货单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> returnOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
returnOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : returnOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(), item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(), item.getMinUnitCode_dictText()));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
|
||||
return R.ok(returnOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_RETURN.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑退货单
|
||||
*
|
||||
* @param returnOrderDtoList 退货信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditReturnOrder(List<MaterialDetailDto> returnOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(returnOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
//添加原始单据号
|
||||
if(returnOrderDtoList.get(0).getOriginalBusNo()!=null){
|
||||
// 审批单据并返回单据详情
|
||||
List<SupplyRequest> agreedList = supplyRequestService.addOriginalBusNo(returnOrderDtoList.get(0).getOriginalBusNo(), returnOrderDtoList.get(0).getBusNo());
|
||||
if (agreedList.isEmpty()) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
Date applyTime = DateUtils.getNowDate();
|
||||
for (MaterialDetailDto item : returnOrderDtoList) {
|
||||
SupplyRequest supplyRequest =
|
||||
new SupplyRequest().setBusNo(item.getBusNo()).setTypeEnum(SupplyType.MATERIAL_RETURN.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue()).setCategoryEnum(item.getCategoryEnum())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity()).setPrice(item.getPrice())
|
||||
.setTotalPrice(item.getTotalPrice()).setRetailPrice(item.getRetailPrice())
|
||||
.setTotalRetailPrice(item.getTotalRetailPrice()).setBatchInventory(item.getBatchInventory())
|
||||
.setOccurrenceTime(item.getOccurrenceTime()).setEndTime(item.getEndTime())
|
||||
.setLotNumber(item.getLotNumber()).setInvoiceNo(item.getInvoiceNo()).setTraceNo(item.getTraceNo())
|
||||
.setTraceNoUnitCode(item.getTraceNoUnitCode()).setSupplierId(item.getSupplierId())
|
||||
.setReason(item.getReason()).setSourceTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setSourceLocationId(item.getSourceLocationId()).setApplicantId(item.getApplicantId())
|
||||
.setApplyTime(applyTime).setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,178 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReturnToWarehouseOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialReturnToWarehouseOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资退库单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialReturnToWarehouseOrderServiceImpl implements
|
||||
IMaterialReturnToWarehouseOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.NORMAL.getValue(),
|
||||
SupplyCategory.NORMAL.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 退库单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 退库单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> returnToWarehouseOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
returnToWarehouseOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : returnToWarehouseOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(),item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(),item.getMinUnitCode_dictText()
|
||||
));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
return R.ok(returnToWarehouseOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_PRODUCT_RETURN.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑退库单
|
||||
*
|
||||
* @param returnToWarehouseOrderDtoList 退库信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditReturnToWarehouseOrder(List<MaterialDetailDto> returnToWarehouseOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(returnToWarehouseOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
//添加原始单据号
|
||||
if(returnToWarehouseOrderDtoList.get(0).getOriginalBusNo()!=null){
|
||||
// 审批单据并返回单据详情
|
||||
List<SupplyRequest> agreedList = supplyRequestService.addOriginalBusNo(returnToWarehouseOrderDtoList.get(0).getOriginalBusNo(), returnToWarehouseOrderDtoList.get(0).getBusNo());
|
||||
if (agreedList.isEmpty()) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
Date applyTime = DateUtils.getNowDate();
|
||||
for (MaterialDetailDto item : returnToWarehouseOrderDtoList) {
|
||||
SupplyRequest supplyRequest = new SupplyRequest().setBusNo(item.getBusNo())
|
||||
.setTypeEnum(SupplyType.MATERIAL_PRODUCT_RETURN.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue()).setCategoryEnum(item.getCategoryEnum())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity()).setPrice(item.getPrice())
|
||||
.setTotalPrice(item.getTotalPrice()).setRetailPrice(item.getRetailPrice())
|
||||
.setTotalRetailPrice(item.getTotalRetailPrice()).setBatchInventory(item.getBatchInventory())
|
||||
.setSpecificationInventory(item.getSpecificationInventory()).setStartTime(item.getStartTime())
|
||||
.setEndTime(item.getEndTime()).setPractitionerId(item.getPractitionerId())
|
||||
.setLotNumber(item.getLotNumber()).setTraceNo(item.getTraceNo())
|
||||
.setTraceNoUnitCode(item.getTraceNoUnitCode()).setSupplierId(item.getSupplierId())
|
||||
.setReason(item.getReason()).setSourceTypeEnum(LocationForm.DEPARTMENT.getValue())
|
||||
.setSourceLocationId(item.getSourceLocationId()).setPurposeTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setPurposeLocationId(item.getPurposeLocationId())
|
||||
.setApplicantId(item.getApplicantId()).setApplyTime(applyTime).setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,185 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialStockInOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialStockInOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资进货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialStockInOrderServiceImpl implements IMaterialStockInOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption
|
||||
.add(new MaterialInitDto.IntegerOption(SupplyCategory.NORMAL.getValue(),
|
||||
SupplyCategory.NORMAL.getInfo()));
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(
|
||||
SupplyCategory.PRESENT.getValue(), SupplyCategory.PRESENT.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 进货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 进货单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> stockInOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
stockInOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
// 包装情况
|
||||
e.setPackagingConditionEnum_enumText(
|
||||
EnumUtils.getInfoByValue(PackagingCondition.class, e.getPackagingConditionEnum()));
|
||||
// 验收结果
|
||||
e.setAcceptanceResultEnum_enumText(
|
||||
EnumUtils.getInfoByValue(AcceptanceResult.class, e.getAcceptanceResultEnum()));
|
||||
});
|
||||
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : stockInOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(), item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(), item.getMinUnitCode_dictText()));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
return R.ok(stockInOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_STOCKIN.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑进货单
|
||||
*
|
||||
* @param stockInOrderDtoList 进货信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditStockInOrder(List<MaterialDetailDto> stockInOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(stockInOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
//添加原始单据号
|
||||
if(stockInOrderDtoList.get(0).getOriginalBusNo()!=null){
|
||||
// 审批单据并返回单据详情
|
||||
List<SupplyRequest> agreedList = supplyRequestService.addOriginalBusNo(stockInOrderDtoList.get(0).getOriginalBusNo(), stockInOrderDtoList.get(0).getBusNo());
|
||||
if (agreedList.isEmpty()) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
Date applyTime = DateUtils.getNowDate();
|
||||
for (MaterialDetailDto item : stockInOrderDtoList) {
|
||||
SupplyRequest supplyRequest = new SupplyRequest().setBusNo(item.getBusNo())
|
||||
.setTypeEnum(SupplyType.MATERIAL_STOCKIN.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue()).setCategoryEnum(item.getCategoryEnum())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity())
|
||||
.setBatchInventory(item.getBatchInventory()).setSpecificationInventory(item.getSpecificationInventory())
|
||||
.setPrice(item.getPrice()).setTotalPrice(item.getTotalPrice()).setRetailPrice(item.getRetailPrice())
|
||||
.setTotalRetailPrice(item.getTotalRetailPrice()).setStartTime(item.getStartTime())
|
||||
.setEndTime(item.getEndTime()).setPractitionerId(item.getPractitionerId())
|
||||
.setLotNumber(item.getLotNumber()).setInvoiceNo(item.getInvoiceNo()).setTraceNo(item.getTraceNo())
|
||||
.setTraceNoUnitCode(item.getTraceNoUnitCode()).setPurposeTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setPurposeLocationId(item.getPurposeLocationId()).setPackagingConditionEnum(item.getPackagingConditionEnum())
|
||||
.setAcceptanceResultEnum(item.getAcceptanceResultEnum()).setSupplierId(item.getSupplierId())
|
||||
.setApplicantId(item.getApplicantId()).setApplyTime(applyTime).setReason(item.getReason())
|
||||
.setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,181 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialStockOutOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialStockOutOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资出库单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialStockOutOrderServiceImpl implements IMaterialStockOutOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.IN_HOSPITAL_OUTBOUND.getValue(),
|
||||
SupplyCategory.IN_HOSPITAL_OUTBOUND.getInfo()));
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.OUT_OF_HOSPITAL_OUTBOUND.getValue(),
|
||||
SupplyCategory.OUT_OF_HOSPITAL_OUTBOUND.getInfo()));
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.OPTICAL_MATERIALS.getValue(),
|
||||
SupplyCategory.OPTICAL_MATERIALS.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 出库单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 出库单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> stockOutOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
stockOutOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
|
||||
});
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : stockOutOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(),item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(),item.getMinUnitCode_dictText()
|
||||
));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
|
||||
return R.ok(stockOutOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_STOCKOUT.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑出库单
|
||||
*
|
||||
* @param stockOutOrderDtoList 出库信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditStockOutOrder(List<MaterialDetailDto> stockOutOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(stockOutOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
//添加原始单据号
|
||||
if(stockOutOrderDtoList.get(0).getOriginalBusNo()!=null){
|
||||
// 审批单据并返回单据详情
|
||||
List<SupplyRequest> agreedList = supplyRequestService.addOriginalBusNo(stockOutOrderDtoList.get(0).getOriginalBusNo(), stockOutOrderDtoList.get(0).getBusNo());
|
||||
if (agreedList.isEmpty()) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00007, null));
|
||||
}
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
Date applyTime = DateUtils.getNowDate();
|
||||
for (MaterialDetailDto item : stockOutOrderDtoList) {
|
||||
SupplyRequest supplyRequest = new SupplyRequest().setBusNo(item.getBusNo())
|
||||
.setTypeEnum(SupplyType.MATERIAL_STOCKOUT.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue()).setCategoryEnum(item.getCategoryEnum())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity()).setPrice(item.getPrice())
|
||||
.setTotalPrice(item.getTotalPrice()).setRetailPrice(item.getRetailPrice())
|
||||
.setTotalRetailPrice(item.getTotalRetailPrice()).setBatchInventory(item.getBatchInventory())
|
||||
.setSpecificationInventory(item.getSpecificationInventory()).setStartTime(item.getStartTime())
|
||||
.setEndTime(item.getEndTime()).setPractitionerId(item.getPractitionerId())
|
||||
.setLotNumber(item.getLotNumber()).setTraceNo(item.getTraceNo())
|
||||
.setTraceNoUnitCode(item.getTraceNoUnitCode()).setSupplierId(item.getSupplierId())
|
||||
.setReason(item.getReason()).setSourceTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setSourceLocationId(item.getSourceLocationId()).setPurposeTypeEnum(LocationForm.DEPARTMENT.getValue())
|
||||
.setPurposeLocationId(item.getPurposeLocationId())
|
||||
.setApplicantId(item.getApplicantId()).setApplyTime(applyTime).setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,167 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialStocktakingOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialStocktakingOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资盘点单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialStocktakingOrderServiceImpl implements IMaterialStocktakingOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(
|
||||
SupplyCategory.GENERAL_STOCKTAKING.getValue(), SupplyCategory.GENERAL_STOCKTAKING.getInfo()));
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(
|
||||
SupplyCategory.MONTHLY_STOCKTAKING.getValue(), SupplyCategory.MONTHLY_STOCKTAKING.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 盘点单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 盘点单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> stocktakingOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
stocktakingOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : stocktakingOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(), item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(), item.getMinUnitCode_dictText()));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
return R.ok(stocktakingOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_STOCKTAKING.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑盘点单
|
||||
*
|
||||
* @param stocktakingOrderDtoList 盘点信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditStocktakingOrder(List<MaterialDetailDto> stocktakingOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList =
|
||||
supplyRequestService.getSupplyByBusNo(stocktakingOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
Date applyTime = DateUtils.getNowDate();
|
||||
for (MaterialDetailDto item : stocktakingOrderDtoList) {
|
||||
SupplyRequest supplyRequest = new SupplyRequest().setBusNo(item.getBusNo())
|
||||
.setTypeEnum(SupplyType.MATERIAL_STOCKTAKING.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue()).setCategoryEnum(item.getCategoryEnum())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity())
|
||||
.setTotalQuantity(item.getTotalQuantity()).setPrice(item.getPrice()).setTotalPrice(item.getTotalPrice())
|
||||
.setRetailPrice(item.getRetailPrice()).setTotalRetailPrice(item.getTotalRetailPrice())
|
||||
.setBatchInventory(item.getBatchInventory()).setLotNumber(item.getLotNumber()).setSupplierId(item.getSupplierId())
|
||||
.setTraceNo(item.getTraceNo()).setTraceNoUnitCode(item.getTraceNoUnitCode())
|
||||
.setReasonCode(item.getReasonCode()).setReason(item.getReason())
|
||||
.setPurposeTypeEnum(LocationForm.WAREHOUSE.getValue()).setPurposeLocationId(item.getPurposeLocationId())
|
||||
.setApplicantId(item.getApplicantId()).setApplyTime(applyTime).setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialTransferInOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialTransferInOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资调入单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialTransferInOrderServiceImpl implements IMaterialTransferInOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.NORMAL.getValue(),
|
||||
SupplyCategory.NORMAL.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 调入单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 调入单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> transferInOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
transferInOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : transferInOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(), item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(), item.getMinUnitCode_dictText()));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
|
||||
return R.ok(transferInOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_TRANSFERIN.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑调入单
|
||||
*
|
||||
* @param transferInOrderDtoList 调入信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditTransferInOrder(List<MaterialDetailDto> transferInOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(transferInOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
Date applyTime = DateUtils.getNowDate();
|
||||
for (MaterialDetailDto item : transferInOrderDtoList) {
|
||||
SupplyRequest supplyRequest = new SupplyRequest().setBusNo(item.getBusNo())
|
||||
.setTypeEnum(SupplyType.MATERIAL_TRANSFERIN.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity()).setRetailPrice(item.getPrice())
|
||||
.setTotalRetailPrice(item.getTotalPrice()).setBatchInventory(item.getBatchInventory())
|
||||
.setSpecificationInventory(item.getSpecificationInventory()).setEndTime(item.getEndTime())
|
||||
.setLotNumber(item.getLotNumber()).setTraceNo(item.getTraceNo())
|
||||
.setTraceNoUnitCode(item.getTraceNoUnitCode()).setSupplierId(item.getSupplierId())
|
||||
.setReason(item.getReason()).setSourceTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setSourceLocationId(item.getSourceLocationId()).setPurposeTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setPurposeLocationId(item.getPurposeLocationId())
|
||||
.setApplicantId(item.getApplicantId()).setApplyTime(applyTime).setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,165 @@
|
||||
package com.openhis.web.materialmanage.appservice.impl;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import javax.annotation.Resource;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.core.common.core.domain.R;
|
||||
import com.core.common.utils.AssignSeqUtil;
|
||||
import com.core.common.utils.DateUtils;
|
||||
import com.core.common.utils.MessageUtils;
|
||||
import com.openhis.common.constant.CommonConstants;
|
||||
import com.openhis.common.constant.PromptMsgConstant;
|
||||
import com.openhis.common.enums.*;
|
||||
import com.openhis.common.utils.EnumUtils;
|
||||
import com.openhis.web.inventorymanage.dto.ProductStocktakingInitDto;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialTransferOutOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialInitDto;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialCommonMapper;
|
||||
import com.openhis.web.materialmanage.mapper.MaterialTransferOutOrderMapper;
|
||||
import com.openhis.workflow.domain.SupplyRequest;
|
||||
import com.openhis.workflow.service.ISupplyRequestService;
|
||||
|
||||
/**
|
||||
* 物资调出单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Service
|
||||
public class MaterialTransferOutOrderServiceImpl implements IMaterialTransferOutOrderService {
|
||||
|
||||
@Resource
|
||||
private AssignSeqUtil assignSeqUtil;
|
||||
@Resource
|
||||
private ISupplyRequestService supplyRequestService;
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private MaterialCommonMapper materialCommonMapper;
|
||||
|
||||
/**
|
||||
* 初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> init() {
|
||||
|
||||
MaterialInitDto purchaseOrderInitDto = materialCommonService.init();
|
||||
|
||||
// 单据分类
|
||||
List<MaterialInitDto.IntegerOption> supplyCategoryOption = new ArrayList<>();
|
||||
supplyCategoryOption.add(new MaterialInitDto.IntegerOption(SupplyCategory.NORMAL.getValue(),
|
||||
SupplyCategory.NORMAL.getInfo()));
|
||||
|
||||
purchaseOrderInitDto.setSupplyCategoryOptions(supplyCategoryOption);
|
||||
|
||||
return R.ok(purchaseOrderInitDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 调出单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 调出单单据详情
|
||||
*/
|
||||
@Override
|
||||
public R<?> getDetailPage(String busNo, Integer pageNo, Integer pageSize) {
|
||||
|
||||
Page<MaterialDetailDto> transferOutOrderDtoDetailPage =
|
||||
materialCommonMapper.getDetailPage(new Page<>(pageNo, pageSize), busNo);
|
||||
|
||||
transferOutOrderDtoDetailPage.getRecords().forEach(e -> {
|
||||
// 单据分类
|
||||
e.setCategoryEnum_enumText(EnumUtils.getInfoByValue(SupplyCategory.class, e.getCategoryEnum()));
|
||||
// 单据状态
|
||||
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||
// 单据类型
|
||||
e.setTypeEnum_enumText(EnumUtils.getInfoByValue(SupplyType.class, e.getTypeEnum()));
|
||||
});
|
||||
|
||||
List<MaterialDetailDto.Option> unitList;
|
||||
for (MaterialDetailDto item : transferOutOrderDtoDetailPage.getRecords()) {
|
||||
unitList = new ArrayList<>();
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMaxUnitCode(), item.getMaxUnitCode_dictText()));
|
||||
unitList.add(new MaterialDetailDto.Option(item.getMinUnitCode(), item.getMinUnitCode_dictText()));
|
||||
|
||||
item.setUnitList(unitList);
|
||||
}
|
||||
|
||||
return R.ok(transferOutOrderDtoDetailPage);
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@Override
|
||||
public R<?> getBusNo() {
|
||||
|
||||
ProductStocktakingInitDto initDto = new ProductStocktakingInitDto();
|
||||
// 单据号
|
||||
initDto.setBusNo(assignSeqUtil.getSeqByDay(AssignSeqEnum.MATERIAL_TRANSFEROUT.getPrefix(), 4));
|
||||
|
||||
return R.ok(initDto);
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑调入单
|
||||
*
|
||||
* @param transferOutOrderDtoList 调入信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
|
||||
@Override
|
||||
public R<?> addOrEditTransferOutOrder(List<MaterialDetailDto> transferOutOrderDtoList) {
|
||||
// 请求数据取得
|
||||
List<SupplyRequest> requestList = supplyRequestService.getSupplyByBusNo(transferOutOrderDtoList.get(0).getBusNo());
|
||||
if (!requestList.isEmpty()) {
|
||||
// 请求id取得
|
||||
List<Long> requestIdList = requestList.stream().map(SupplyRequest::getId).collect(Collectors.toList());
|
||||
// 单据信息删除
|
||||
supplyRequestService.removeByIds(requestIdList);
|
||||
}
|
||||
|
||||
List<SupplyRequest> supplyRequestList = new ArrayList<>();
|
||||
Date applyTime = DateUtils.getNowDate();
|
||||
for (MaterialDetailDto item : transferOutOrderDtoList) {
|
||||
SupplyRequest supplyRequest = new SupplyRequest().setBusNo(item.getBusNo())
|
||||
.setTypeEnum(SupplyType.MATERIAL_TRANSFEROUT.getValue())
|
||||
.setStatusEnum(SupplyStatus.PENDING_REVIEW.getValue())
|
||||
.setItemTable(CommonConstants.TableName.ADM_DEVICE_DEFINITION).setItemId(item.getItemId())
|
||||
.setUnitCode(item.getUnitCode()).setItemQuantity(item.getItemQuantity()).setRetailPrice(item.getPrice())
|
||||
.setTotalRetailPrice(item.getTotalPrice()).setBatchInventory(item.getBatchInventory())
|
||||
.setSpecificationInventory(item.getSpecificationInventory()).setEndTime(item.getEndTime())
|
||||
.setLotNumber(item.getLotNumber()).setTraceNo(item.getTraceNo())
|
||||
.setTraceNoUnitCode(item.getTraceNoUnitCode()).setSupplierId(item.getSupplierId())
|
||||
.setReason(item.getReason()).setSourceTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setSourceLocationId(item.getSourceLocationId()).setPurposeTypeEnum(LocationForm.WAREHOUSE.getValue())
|
||||
.setPurposeLocationId(item.getPurposeLocationId())
|
||||
.setApplicantId(item.getApplicantId()).setApplyTime(applyTime).setRemake(item.getRemake());
|
||||
supplyRequestList.add(supplyRequest);
|
||||
}
|
||||
// 更新请求表
|
||||
boolean flg = supplyRequestService.saveOrUpdateBatch(supplyRequestList);
|
||||
if (!flg) {
|
||||
return R.fail(MessageUtils.createMessage(PromptMsgConstant.Common.M00011, null));
|
||||
}
|
||||
|
||||
return R.ok(MessageUtils.createMessage(PromptMsgConstant.Common.M00004, null));
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialProfitLossOrderService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资损益单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/profitLoss-order")
|
||||
@Slf4j
|
||||
public class MaterialProfitLossOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialProfitLossOrderService materialProfitLossOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
/**
|
||||
* 损益单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialProfitLossOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 损益单单据列表
|
||||
*
|
||||
* @param profitLossOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 损益单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/profitLoss-order-page")
|
||||
public R<?> getPage(MaterialSearchParam profitLossOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(profitLossOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
null, SupplyType.MATERIAL_PRPFITLOSS.getValue());
|
||||
}
|
||||
/**
|
||||
* 损益单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 损益单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/profitLoss-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialProfitLossOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialProfitLossOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑损益单
|
||||
*
|
||||
* @param profitLossOrderDtoList 损益信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-profitLossOrder")
|
||||
public R<?> addOrEditProfitLossOrder(@Validated @RequestBody List<MaterialDetailDto> profitLossOrderDtoList) {
|
||||
return materialProfitLossOrderService.addOrEditProfitLossOrder(profitLossOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-profitLossOrder")
|
||||
public R<?> deleteProfitLossOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.lossReportApproved(busNo);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialPurchaseOrderService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资订货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/purchase-order")
|
||||
@Slf4j
|
||||
public class MaterialPurchaseOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialPurchaseOrderService materialPurchaseOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
/**
|
||||
* 订货单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialPurchaseOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 订货单单据列表
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 订货单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/purchase-order-page")
|
||||
public R<?> getPage(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
null, SupplyType.MATERIAL_PURCHASE.getValue());
|
||||
}
|
||||
/**
|
||||
* 订货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 订货单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/purchase-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialPurchaseOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialPurchaseOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑订货单
|
||||
*
|
||||
* @param purchaseOrderDtoList 订货信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-purchaseOrder")
|
||||
public R<?> addOrEditPurchaseOrder(@Validated @RequestBody List<MaterialDetailDto> purchaseOrderDtoList) {
|
||||
return materialPurchaseOrderService.addOrEditPurchaseOrder(purchaseOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-purchaseOrder")
|
||||
public R<?> deletePurchaseOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.purchaseOrderAgreeApproval(busNo);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReturnOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资退货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/return-order")
|
||||
@Slf4j
|
||||
public class MaterialReturnOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialReturnOrderService materialReturnOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
|
||||
/**
|
||||
* 退货单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialReturnOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
/**
|
||||
* 退货单单据列表
|
||||
*
|
||||
* @param returnOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 退货单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/return-order-page")
|
||||
public R<?> getPage(MaterialSearchParam returnOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(returnOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
"1", SupplyType.MATERIAL_RETURN.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 退货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 退货单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/return-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialReturnOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialReturnOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑采购单
|
||||
*
|
||||
* @param returnOrderDtoList 采购信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-returnOrder")
|
||||
public R<?> addOrEditReturnOrder(@Validated @RequestBody List<MaterialDetailDto> returnOrderDtoList) {
|
||||
return materialReturnOrderService.addOrEditReturnOrder(returnOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-returnOrder")
|
||||
public R<?> deleteReturnOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.purchaseReturnApproved(busNo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReturnToWarehouseOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资退库单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/returnToWarehouse-order")
|
||||
@Slf4j
|
||||
public class MaterialReturnToWarehouseOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialReturnToWarehouseOrderService materialReturnToWarehouseOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
/**
|
||||
* 退库单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialReturnToWarehouseOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 退库单单据列表
|
||||
*
|
||||
* @param returnToWarehouseOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 退库单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/returnToWarehouse-order-page")
|
||||
public R<?> getPage(MaterialSearchParam returnToWarehouseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(returnToWarehouseOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
null, SupplyType.MATERIAL_PRODUCT_RETURN.getValue());
|
||||
}
|
||||
/**
|
||||
* 退库单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 退库单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/returnToWarehouse-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialReturnToWarehouseOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialReturnToWarehouseOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑退库单
|
||||
*
|
||||
* @param returnToWarehouseOrderDtoList 退库信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-returnToWarehouseOrder")
|
||||
public R<?> addOrEditReturnToWarehouseOrder(@Validated @RequestBody List<MaterialDetailDto> returnToWarehouseOrderDtoList) {
|
||||
return materialReturnToWarehouseOrderService.addOrEditReturnToWarehouseOrder(returnToWarehouseOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-returnToWarehouseOrder")
|
||||
public R<?> deleteReturnToWarehouseOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.returnIssueApproved(busNo);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialStockInOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资进货单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/stockIn-order")
|
||||
@Slf4j
|
||||
public class MaterialStockInOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialStockInOrderService materialStockInOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
/**
|
||||
* 进货单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialStockInOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 进货单单据列表
|
||||
*
|
||||
* @param stockInOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 进货单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/stockIn-order-page")
|
||||
public R<?> getPage(MaterialSearchParam stockInOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(stockInOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
null, SupplyType.MATERIAL_STOCKIN.getValue());
|
||||
}
|
||||
/**
|
||||
* 进货单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 进货单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/stockIn-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialStockInOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialStockInOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑进货单
|
||||
*
|
||||
* @param stockInOrderDtoList 进货信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-stockInOrder")
|
||||
public R<?> addOrEditStockInOrder(@Validated @RequestBody List<MaterialDetailDto> stockInOrderDtoList) {
|
||||
return materialStockInOrderService.addOrEditStockInOrder(stockInOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-stockInOrder")
|
||||
public R<?> deleteStockInOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.purchaseInventoryApproved(busNo);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialStockOutOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资出库单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/stockOut-order")
|
||||
@Slf4j
|
||||
public class MaterialStockOutOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialStockOutOrderService materialStockOutOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
/**
|
||||
* 出库单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialStockOutOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 出库单单据列表
|
||||
*
|
||||
* @param stockOutOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 出库单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/stockOut-order-page")
|
||||
public R<?> getPage(MaterialSearchParam stockOutOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(stockOutOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
"1", SupplyType.MATERIAL_STOCKOUT.getValue());
|
||||
}
|
||||
/**
|
||||
* 出库单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 出库单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/stockOut-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialStockOutOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialStockOutOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑出库单
|
||||
*
|
||||
* @param stockOutOrderDtoList 出库信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-stockOutOrder")
|
||||
public R<?> addOrEditStockOutOrder(@Validated @RequestBody List<MaterialDetailDto> stockOutOrderDtoList) {
|
||||
return materialStockOutOrderService.addOrEditStockOutOrder(stockOutOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-stockOutOrder")
|
||||
public R<?> deleteStockOutOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.requisitionIssueApproved(busNo);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,138 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialStocktakingOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资盘点单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/stocktaking-order")
|
||||
@Slf4j
|
||||
public class MaterialStocktakingOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialStocktakingOrderService materialStocktakingOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
/**
|
||||
* 盘点单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialStocktakingOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
|
||||
/**
|
||||
* 盘点单单据列表
|
||||
*
|
||||
* @param stocktakingOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 盘点单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/stocktaking-order-page")
|
||||
public R<?> getPage(MaterialSearchParam stocktakingOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(stocktakingOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
null, SupplyType.MATERIAL_STOCKTAKING.getValue());
|
||||
}
|
||||
/**
|
||||
* 盘点单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 盘点单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/stocktaking-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialStocktakingOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialStocktakingOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑盘点单
|
||||
*
|
||||
* @param stocktakingOrderDtoList 盘点信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-stocktakingOrder")
|
||||
public R<?> addOrEditStocktakingOrder(@Validated @RequestBody List<MaterialDetailDto> stocktakingOrderDtoList) {
|
||||
return materialStocktakingOrderService.addOrEditStocktakingOrder(stocktakingOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-stocktakingOrder")
|
||||
public R<?> deleteStocktakingOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.productStocktakingApproved(busNo);
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialTransferInOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资调入单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/transferIn-order")
|
||||
@Slf4j
|
||||
public class MaterialTransferInOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialTransferInOrderService materialTransferInOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
|
||||
/**
|
||||
* 调入单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialTransferInOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
/**
|
||||
* 调入单单据列表
|
||||
*
|
||||
* @param transferInOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 调入单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/transferIn-order-page")
|
||||
public R<?> getPage(MaterialSearchParam transferInOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(transferInOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
null, SupplyType.MATERIAL_TRANSFERIN.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 调入单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 调入单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/transferIn-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialTransferInOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialTransferInOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑采购单
|
||||
*
|
||||
* @param transferInOrderDtoList 采购信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-transferInOrder")
|
||||
public R<?> addOrEditTransferInOrder(@Validated @RequestBody List<MaterialDetailDto> transferInOrderDtoList) {
|
||||
return materialTransferInOrderService.addOrEditTransferInOrder(transferInOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-transferInOrder")
|
||||
public R<?> deleteTransferInOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.transferInAgreeApproved(busNo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,140 @@
|
||||
package com.openhis.web.materialmanage.controller;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
import javax.servlet.http.HttpServletRequest;
|
||||
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.validation.annotation.Validated;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import com.core.common.core.domain.R;
|
||||
import com.openhis.common.enums.LocationForm;
|
||||
import com.openhis.common.enums.SupplyType;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialCommonService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialReceiptApprovalService;
|
||||
import com.openhis.web.materialmanage.appservice.IMaterialTransferOutOrderService;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
|
||||
/**
|
||||
* 物资调出单
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@RestController
|
||||
@RequestMapping("/material/transferOut-order")
|
||||
@Slf4j
|
||||
public class MaterialTransferOutOrderController {
|
||||
|
||||
@Autowired
|
||||
private IMaterialTransferOutOrderService materialTransferOutOrderService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialCommonService materialCommonService;
|
||||
|
||||
@Autowired
|
||||
private IMaterialReceiptApprovalService materialReceiptApprovalService;
|
||||
|
||||
/**
|
||||
* 调出单初始化
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/init")
|
||||
public R<?> init() {
|
||||
return materialTransferOutOrderService.init();
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取器材
|
||||
*
|
||||
* @param purchaseOrderSearchParam 查询条件
|
||||
* @return 器材信息
|
||||
*/
|
||||
@GetMapping(value = "/device-info")
|
||||
public R<?> getDeviceInfo(MaterialSearchParam purchaseOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getDeviceInfo(purchaseOrderSearchParam, pageNo, pageSize, searchKey, request);
|
||||
}
|
||||
/**
|
||||
* 调出单单据列表
|
||||
*
|
||||
* @param transferOutOrderSearchParam 查询条件
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @param searchKey 模糊查询关键字
|
||||
* @param request 请求数据
|
||||
* @return 调出单据分页列表
|
||||
*/
|
||||
@GetMapping(value = "/transferOut-order-page")
|
||||
public R<?> getPage(MaterialSearchParam transferOutOrderSearchParam,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize,
|
||||
@RequestParam(name = "searchKey", required = false) String searchKey, HttpServletRequest request) {
|
||||
return materialCommonService.getPage(transferOutOrderSearchParam, pageNo, pageSize, searchKey, request,
|
||||
"1", SupplyType.MATERIAL_TRANSFEROUT.getValue());
|
||||
}
|
||||
|
||||
/**
|
||||
* 调出单单据详情
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @param pageNo 当前页码
|
||||
* @param pageSize 查询条数
|
||||
* @return 调出单单据详情
|
||||
*/
|
||||
@GetMapping(value = "/transferOut-order-detail-page")
|
||||
public R<?> getDetail(@RequestParam String busNo,
|
||||
@RequestParam(value = "pageNo", defaultValue = "1") Integer pageNo,
|
||||
@RequestParam(value = "pageSize", defaultValue = "10") Integer pageSize) {
|
||||
return materialTransferOutOrderService.getDetailPage(busNo, pageNo, pageSize);
|
||||
}
|
||||
/**
|
||||
* 获取单据号
|
||||
*
|
||||
* @return 初始化信息
|
||||
*/
|
||||
@GetMapping(value = "/busNo-init")
|
||||
public R<?> getBusNo() {
|
||||
return materialTransferOutOrderService.getBusNo();
|
||||
}
|
||||
|
||||
/**
|
||||
* 添加/编辑采购单
|
||||
*
|
||||
* @param transferOutOrderDtoList 采购信息
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/addOrEdit-transferOutOrder")
|
||||
public R<?> addOrEditTransferOutOrder(@Validated @RequestBody List<MaterialDetailDto> transferOutOrderDtoList) {
|
||||
return materialTransferOutOrderService.addOrEditTransferOutOrder(transferOutOrderDtoList);
|
||||
}
|
||||
|
||||
/**
|
||||
* 删除单据
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@DeleteMapping("/delete-transferOutOrder")
|
||||
public R<?> deleteTransferOutOrder(@RequestParam String busNo) {
|
||||
return materialCommonService.deleteOrder(busNo);
|
||||
}
|
||||
|
||||
/**
|
||||
* 同意审批
|
||||
*
|
||||
* @param busNo 单据号
|
||||
* @return 操作结果
|
||||
*/
|
||||
@PutMapping("/agree-approval")
|
||||
public R<?> agreeApproval(@RequestParam String busNo) {
|
||||
return materialReceiptApprovalService.transferOutAgreeApproved(busNo);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,212 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.materialmanage.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.IdType;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 单据详细信息
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MaterialDetailDto implements Serializable {
|
||||
|
||||
/** ID */
|
||||
@TableId(type = IdType.ASSIGN_ID)
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 单据号 */
|
||||
private String busNo;
|
||||
|
||||
/** 再生成单据号 */
|
||||
private String originalBusNo;
|
||||
|
||||
/** 药品编码 */
|
||||
private String itemBusNo;
|
||||
|
||||
/** 物品id */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long itemId;
|
||||
|
||||
/** 物品名称 */
|
||||
private String itemName;
|
||||
|
||||
/** 规格 */
|
||||
private String totalVolume;
|
||||
|
||||
/** 选择单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String unitCode;
|
||||
private String unitCode_dictText;
|
||||
|
||||
/** 常规单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String maxUnitCode;
|
||||
private String maxUnitCode_dictText;
|
||||
|
||||
/** 最小单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String minUnitCode;
|
||||
private String minUnitCode_dictText;
|
||||
|
||||
/** 拆零比 */
|
||||
private String partPercent;
|
||||
|
||||
/** 数量 */
|
||||
private BigDecimal itemQuantity;
|
||||
|
||||
/** 合计数量 */
|
||||
private BigDecimal totalQuantity;
|
||||
|
||||
/** 单价 */
|
||||
private BigDecimal price;
|
||||
|
||||
/** 总价 */
|
||||
private BigDecimal totalPrice;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 零价金额 */
|
||||
private BigDecimal totalRetailPrice;
|
||||
|
||||
/** 厂家/产地 */
|
||||
private String manufacturerText;
|
||||
|
||||
/** 批准文号 */
|
||||
private String approvalNumber;
|
||||
|
||||
/** 批次库存 */
|
||||
private BigDecimal batchInventory;
|
||||
/** 规格库存 */
|
||||
private BigDecimal specificationInventory;
|
||||
|
||||
/** 备注 */
|
||||
private String remake;
|
||||
|
||||
/** 理由类型 */
|
||||
private String reasonCode;
|
||||
|
||||
/** 摘要(理由) */
|
||||
private String reason;
|
||||
|
||||
/** 供应商 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_supplier")
|
||||
private Long supplierId;
|
||||
private String supplierId_dictText;
|
||||
|
||||
/** 源仓库类型 */
|
||||
private Integer sourceTypeEnum;
|
||||
/** 源仓库 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long sourceLocationId;
|
||||
|
||||
/** 目的仓库类型 */
|
||||
private Integer purposeTypeEnum;
|
||||
/** 目的仓库 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long purposeLocationId;
|
||||
|
||||
/** 采购员 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long applicantId;
|
||||
|
||||
/** 审批人 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long approverId;
|
||||
/** 审批时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date approvalTime;
|
||||
|
||||
/** 申请时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date applyTime;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 类型 */
|
||||
private Integer typeEnum;
|
||||
private String typeEnum_enumText;
|
||||
|
||||
/** 单据分类 */
|
||||
private Integer categoryEnum;
|
||||
private String categoryEnum_enumText;
|
||||
|
||||
/** 供应商联系人 */
|
||||
private String phone;
|
||||
|
||||
/** 仓库员 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long practitionerId;
|
||||
|
||||
/** 发票号 */
|
||||
private String invoiceNo;
|
||||
|
||||
/** 产品批号 */
|
||||
private String lotNumber;
|
||||
|
||||
/** 生产日期 */
|
||||
private Date startTime;
|
||||
|
||||
/** 失效日期 */
|
||||
private Date endTime;
|
||||
|
||||
/** 追溯码*/
|
||||
private String traceNo;
|
||||
|
||||
/** 追溯码单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String traceNoUnitCode;
|
||||
private String traceNoUnitCode_dictText;
|
||||
|
||||
/** 包装情况 */
|
||||
private Integer packagingConditionEnum;
|
||||
private String packagingConditionEnum_enumText;
|
||||
|
||||
/** 验收结果 */
|
||||
private Integer acceptanceResultEnum;
|
||||
private String acceptanceResultEnum_enumText;
|
||||
|
||||
/** 禁用日期 */
|
||||
private Date occurrenceTime;
|
||||
|
||||
/**
|
||||
* 单位列表
|
||||
*/
|
||||
private List<Option> unitList;
|
||||
|
||||
@Data
|
||||
public static class Option {
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String value;
|
||||
private String value_dictText;
|
||||
public Option(String value, String value_dictText) {
|
||||
this.value = value;
|
||||
this.value_dictText = value_dictText;
|
||||
}
|
||||
public Option() {
|
||||
}
|
||||
}
|
||||
|
||||
}
|
||||
@@ -0,0 +1,120 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.materialmanage.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 物资信息
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MaterialDeviceInfoDto implements Serializable {
|
||||
|
||||
/** 物品id */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
|
||||
/** 物品编号 */
|
||||
private String busNo;
|
||||
|
||||
/** 物品名称 */
|
||||
private String name;
|
||||
|
||||
/** 拼音码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 规格 */
|
||||
private String totalVolume;
|
||||
|
||||
/** 包装单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String unitCode;
|
||||
private String unitCode_dictText;
|
||||
|
||||
/** 最小单位 */
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String minUnitCode;
|
||||
private String minUnitCode_dictText;
|
||||
|
||||
/** 拆零比 */
|
||||
private BigDecimal partPercent;
|
||||
|
||||
/** 产品批号 */
|
||||
private String lotNumber;
|
||||
|
||||
|
||||
// /** 价格单位 */
|
||||
// @Dict(dictCode = "unit_code")
|
||||
// private String conditionUnitCode;
|
||||
// private String conditionUnitCode_dictText;
|
||||
|
||||
/** 单价 */
|
||||
private BigDecimal price;
|
||||
|
||||
/** 零售价 */
|
||||
private BigDecimal retailPrice;
|
||||
|
||||
/** 厂家/产地 */
|
||||
private String manufacturerText;
|
||||
|
||||
/** 批准文号 */
|
||||
private String approvalNumber;
|
||||
|
||||
/** 库存最小警戒线 */
|
||||
private BigDecimal itemMinQuantity;
|
||||
|
||||
/** 批次库存 */
|
||||
private BigDecimal batchInventory;
|
||||
/** 规格库存 */
|
||||
private BigDecimal specificationInventory;
|
||||
|
||||
/** 供应商 */
|
||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_supplier")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long supplierId;
|
||||
private String supplierId_dictText;
|
||||
|
||||
/** 仓库 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long locationId;
|
||||
|
||||
/** 生产日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date productionDate;
|
||||
|
||||
/** 失效日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date expirationDate;
|
||||
|
||||
/**
|
||||
* 单位列表
|
||||
*/
|
||||
private List<Option> unitList;
|
||||
|
||||
@Data
|
||||
public static class Option {
|
||||
@Dict(dictCode = "unit_code")
|
||||
private String value;
|
||||
private String value_dictText;
|
||||
public Option(String value, String value_dictText) {
|
||||
this.value = value;
|
||||
this.value_dictText = value_dictText;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,72 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.materialmanage.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.Date;
|
||||
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.common.annotation.Dict;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 单据信息
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MaterialDto implements Serializable {
|
||||
/** 单据号 */
|
||||
private String supplyBusNo;
|
||||
|
||||
/** 状态 */
|
||||
private Integer statusEnum;
|
||||
private String statusEnum_enumText;
|
||||
|
||||
/** 类型 */
|
||||
private Integer typeEnum;
|
||||
private String typeEnum_enumText;
|
||||
|
||||
/** 供应商 */
|
||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_supplier")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long supplierId;
|
||||
private String supplierId_dictText;
|
||||
|
||||
/** 仓库类型 */
|
||||
private Integer locationTypeEnum;
|
||||
private String locationTypeEnum_enumText;
|
||||
|
||||
/** 仓库 */
|
||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_location")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long locationId;
|
||||
private String locationId_dictText;
|
||||
|
||||
/** 采购员 */
|
||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long applicantId;
|
||||
private String applicantId_dictText;
|
||||
|
||||
/** 审批人 */
|
||||
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long approverId;
|
||||
private String approverId_dictText;
|
||||
|
||||
/** 审批时间 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date approvalTime;
|
||||
|
||||
/** 制单日期 */
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss", timezone = "GMT+8")
|
||||
private Date applyTime;
|
||||
}
|
||||
@@ -0,0 +1,147 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.materialmanage.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
import java.util.List;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
import com.openhis.administration.domain.Organization;
|
||||
import com.openhis.web.common.dto.LocationDto;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 单据初期信息
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MaterialInitDto implements Serializable {
|
||||
|
||||
/**
|
||||
* 单据号
|
||||
*/
|
||||
private String busNo;
|
||||
|
||||
/**
|
||||
* 库房类型列表
|
||||
*/
|
||||
private List<WarehouseOption> warehouseTypeOption;
|
||||
|
||||
/**
|
||||
* 库房列表
|
||||
*/
|
||||
private List<LongOption> warehouseOption;
|
||||
|
||||
/**
|
||||
* 供应商列表
|
||||
*/
|
||||
private List<SupplierOption> supplierOption;
|
||||
|
||||
/**
|
||||
* 人员列表
|
||||
*/
|
||||
private List<LongOption> practitionerOption;
|
||||
/**
|
||||
* 审批状态
|
||||
*/
|
||||
private List<IntegerOption> supplyStatusOptions;
|
||||
|
||||
/**
|
||||
* 单据类型
|
||||
*/
|
||||
private List<IntegerOption> supplyTypeOptions;
|
||||
|
||||
/**
|
||||
* 单据分类
|
||||
*/
|
||||
private List<IntegerOption> supplyCategoryOptions;
|
||||
/**
|
||||
* 包装情况
|
||||
*/
|
||||
private List<IntegerOption> packagingConditionOptions;
|
||||
/**
|
||||
* 包装情况
|
||||
*/
|
||||
private List<IntegerOption> acceptanceResultoryOptions;
|
||||
|
||||
/**
|
||||
* 仓库
|
||||
*/
|
||||
private List<LocationDto> WarehouseListOptions;
|
||||
/**
|
||||
* 科室
|
||||
*/
|
||||
private List<Organization> departmentListOptions;
|
||||
|
||||
@Data
|
||||
public static class LongOption {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long value;
|
||||
private String label;
|
||||
|
||||
public LongOption(Long value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class SupplierOption {
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long value;
|
||||
private String label;
|
||||
private String phone;
|
||||
|
||||
public SupplierOption(Long value, String label, String phone) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
this.phone = phone;
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class IntegerOption {
|
||||
private Integer value;
|
||||
private String label;
|
||||
|
||||
public IntegerOption(Integer value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class WarehouseOption {
|
||||
private Integer value;
|
||||
private String label;
|
||||
private List<LocationDto> locationOption;
|
||||
private List<WarehouseItemOption> orderOption;
|
||||
|
||||
public WarehouseOption(Integer value, String label,List<LocationDto> locationOption,List<WarehouseItemOption> orderOption) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
this.locationOption = locationOption;
|
||||
this.orderOption = orderOption;
|
||||
}
|
||||
}
|
||||
|
||||
@Data
|
||||
public static class WarehouseItemOption {
|
||||
private Integer value;
|
||||
private String label;
|
||||
|
||||
public WarehouseItemOption(Integer value, String label) {
|
||||
this.value = value;
|
||||
this.label = label;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
@@ -0,0 +1,59 @@
|
||||
/*
|
||||
* Copyright ©2023 CJB-CNIT Team. All rights reserved
|
||||
*/
|
||||
package com.openhis.web.materialmanage.dto;
|
||||
|
||||
import java.io.Serializable;
|
||||
|
||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||
|
||||
import lombok.Data;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
/**
|
||||
* 单据查询条件
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Data
|
||||
@Accessors(chain = true)
|
||||
public class MaterialSearchParam implements Serializable {
|
||||
|
||||
/** id */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long id;
|
||||
/** 单据号 */
|
||||
private String busNo;
|
||||
|
||||
/** 采购员 */
|
||||
private String applicantName;
|
||||
|
||||
/** 项目名 */
|
||||
private String name;
|
||||
|
||||
/** 拼音码 */
|
||||
private String pyStr;
|
||||
|
||||
/** 供应商id */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long supplierId;
|
||||
|
||||
/** 仓库类型 */
|
||||
private Integer locationTypeEnum;
|
||||
|
||||
/** 仓库 */
|
||||
@JsonSerialize(using = ToStringSerializer.class)
|
||||
private Long locationId;
|
||||
|
||||
/** 类型 */
|
||||
private Integer typeEnum;
|
||||
|
||||
/** 单据状态 */
|
||||
private Integer statusEnum;
|
||||
|
||||
|
||||
/** 再生成单据号flg */
|
||||
private String originalBusNoFlg;
|
||||
}
|
||||
@@ -0,0 +1,57 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.apache.ibatis.annotations.Param;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.toolkit.Constants;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDetailDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialDeviceInfoDto;
|
||||
import com.openhis.web.materialmanage.dto.MaterialSearchParam;
|
||||
|
||||
/**
|
||||
* 物资共通 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialCommonMapper {
|
||||
/**
|
||||
* 根据供应商获取器材
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询条件
|
||||
* @param locationId 仓库id
|
||||
* @return 药品信息
|
||||
*/
|
||||
|
||||
Page<MaterialDeviceInfoDto> getDeviceInfo(
|
||||
@Param("page") Page<MaterialDeviceInfoDto> page,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<MaterialSearchParam> queryWrapper,
|
||||
@Param("locationId") Long locationId,@Param("supplierId") Long supplierId);
|
||||
|
||||
/**
|
||||
* 查询订货单分页列表
|
||||
*
|
||||
* @param page 分页
|
||||
* @param queryWrapper 查询条件
|
||||
* @param originalBusNoFlg 再生成单据号flg
|
||||
* @param locationFlg 仓库flg
|
||||
* @return 订货单分页列表
|
||||
*/
|
||||
Page<MaterialDto> getPage(@Param("page") Page<MaterialDto> page,
|
||||
@Param(Constants.WRAPPER) QueryWrapper<MaterialSearchParam> queryWrapper, @Param("originalBusNoFlg") String originalBusNoFlg, @Param("locationFlg") String locationFlg);
|
||||
|
||||
/**
|
||||
* 查询单据详情
|
||||
*
|
||||
* @param page 分页
|
||||
* @param busNo 单据号
|
||||
* @return 单据详情
|
||||
*/
|
||||
Page<MaterialDetailDto> getDetailPage(@Param("page") Page<MaterialDetailDto> page,
|
||||
@Param("busNo") String busNo);
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资损益单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialProfitLossOrderMapper {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资订货单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialPurchaseOrderMapper {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资进货单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialReturnOrderMapper {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资退库单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialReturnToWarehouseOrderMapper {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资进货单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialStockInOrderMapper {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资出库单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialStockOutOrderMapper {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资盘点单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialStocktakingOrderMapper {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资调入单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialTransferInOrderMapper {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
package com.openhis.web.materialmanage.mapper;
|
||||
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
/**
|
||||
* 物资调出单 mapper
|
||||
*
|
||||
* @author yuxj
|
||||
* @date 2025-07-22
|
||||
*/
|
||||
@Repository
|
||||
public interface MaterialTransferOutOrderMapper {
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user