Merge branch 'master' of https://codeup.aliyun.com/61c0318acd8b75daa5a125f7/medical/openhis
This commit is contained in:
@@ -7,6 +7,9 @@ import java.util.HashSet;
|
|||||||
|
|
||||||
import javax.servlet.http.HttpServletRequest;
|
import javax.servlet.http.HttpServletRequest;
|
||||||
|
|
||||||
|
import com.core.common.utils.AgeCalculatorUtil;
|
||||||
|
import com.openhis.common.enums.*;
|
||||||
|
import com.openhis.common.utils.EnumUtils;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
@@ -18,8 +21,6 @@ import com.core.common.utils.MessageUtils;
|
|||||||
import com.core.common.utils.bean.BeanUtils;
|
import com.core.common.utils.bean.BeanUtils;
|
||||||
import com.openhis.common.constant.CommonConstants;
|
import com.openhis.common.constant.CommonConstants;
|
||||||
import com.openhis.common.constant.PromptMsgConstant;
|
import com.openhis.common.constant.PromptMsgConstant;
|
||||||
import com.openhis.common.enums.SupplyCategory;
|
|
||||||
import com.openhis.common.enums.SupplyType;
|
|
||||||
import com.openhis.common.utils.HisQueryUtils;
|
import com.openhis.common.utils.HisQueryUtils;
|
||||||
import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService;
|
import com.openhis.web.inventorymanage.appservice.IPurchaseInventoryAppService;
|
||||||
import com.openhis.web.inventorymanage.dto.InventoryReceiptDto;
|
import com.openhis.web.inventorymanage.dto.InventoryReceiptDto;
|
||||||
@@ -39,9 +40,6 @@ import com.openhis.workflow.service.ISupplyRequestService;
|
|||||||
@Service
|
@Service
|
||||||
public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppService {
|
public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppService {
|
||||||
|
|
||||||
@Autowired
|
|
||||||
private SupplyRequestMapper supplyRequestMapper;
|
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private PurchaseInventoryMapper purchaseInventoryMapper;
|
private PurchaseInventoryMapper purchaseInventoryMapper;
|
||||||
|
|
||||||
@@ -72,6 +70,11 @@ public class PurchaseInventoryAppServiceImpl implements IPurchaseInventoryAppSer
|
|||||||
// 查询入库单据分页列表
|
// 查询入库单据分页列表
|
||||||
Page<InventoryReceiptPageDto> inventoryReceiptPage = purchaseInventoryMapper.selectInventoryReceiptPage(
|
Page<InventoryReceiptPageDto> inventoryReceiptPage = purchaseInventoryMapper.selectInventoryReceiptPage(
|
||||||
new Page<>(pageNo, pageSize), queryWrapper, SupplyType.PURCHASE_INVENTORY.getValue());
|
new Page<>(pageNo, pageSize), queryWrapper, SupplyType.PURCHASE_INVENTORY.getValue());
|
||||||
|
|
||||||
|
inventoryReceiptPage.getRecords().forEach(e -> {
|
||||||
|
// 单据状态
|
||||||
|
e.setStatusEnum_enumText(EnumUtils.getInfoByValue(SupplyStatus.class, e.getStatusEnum()));
|
||||||
|
});
|
||||||
return R.ok(inventoryReceiptPage);
|
return R.ok(inventoryReceiptPage);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -222,20 +222,37 @@ public class ReceiptApprovalAppServiceImpl implements IReceiptApprovalAppService
|
|||||||
// 生成请求的命中值
|
// 生成请求的命中值
|
||||||
String lotUnitCondition =
|
String lotUnitCondition =
|
||||||
String.format(CommonConstants.Common.COMMA, supplyRequest.getLotNumber(), supplyRequest.getUnitCode());
|
String.format(CommonConstants.Common.COMMA, supplyRequest.getLotNumber(), supplyRequest.getUnitCode());
|
||||||
String lotMinUnitCondition = String.format(CommonConstants.Common.COMMA, supplyRequest.getLotNumber(),
|
|
||||||
supplyRequest.getMinUnitCode());
|
|
||||||
|
|
||||||
for (ItemChargeDetailDto detail : details) {
|
for (ItemChargeDetailDto detail : details) {
|
||||||
// 判断请求中的命中值是否命中了定价的条件
|
|
||||||
boolean isConditionMatched = lotUnitCondition.equals(detail.getConditionValue())
|
|
||||||
|| lotMinUnitCondition.equals(detail.getConditionValue());
|
|
||||||
|
|
||||||
// 如果未命中或命中价格不同,则新增数据
|
// 将字符串按逗号分割
|
||||||
if (isConditionMatched || !lotUnitCondition.equals(detail.getConditionValue())) {
|
String[] parts = detail.getConditionValue().split(",", 2);
|
||||||
resultList.add(this.addChargeItemDefApp(lotMinUnitCondition, supplyRequest.getMinSellPrice(),
|
|
||||||
detail.getDefinitionId()));
|
// 判断是否有至少两部分,且单位部分与入库单位相等
|
||||||
resultList.add(this.addChargeItemDefApp(lotUnitCondition, supplyRequest.getSellPrice(),
|
if (parts.length > 1 && parts[1].trim().equals(supplyRequest.getUnitCode())) {
|
||||||
detail.getDefinitionId()));
|
// 判断请求中的命中值是否命中了定价的条件
|
||||||
|
boolean isConditionMatched = lotUnitCondition.equals(detail.getConditionValue());
|
||||||
|
|
||||||
|
// 如果未命中或命中价格不同,则新增数据
|
||||||
|
if (!isConditionMatched || supplyRequest.getPrice().compareTo(detail.getUnitPrice()) != 0) {
|
||||||
|
// 判断入库单位是大单位还是小单位
|
||||||
|
if (supplyRequest.getUnitCode().equals(detail.getUnitCode())) {
|
||||||
|
resultList.add(this.addChargeItemDefApp(
|
||||||
|
String.format(CommonConstants.Common.COMMA, supplyRequest.getLotNumber(),
|
||||||
|
detail.getMinUnitCode()),
|
||||||
|
supplyRequest.getMinSellPrice(), detail.getDefinitionId()));
|
||||||
|
resultList.add(this.addChargeItemDefApp(lotUnitCondition, supplyRequest.getSellPrice(),
|
||||||
|
detail.getDefinitionId()));
|
||||||
|
} else {
|
||||||
|
resultList
|
||||||
|
.add(this.addChargeItemDefApp(
|
||||||
|
String.format(CommonConstants.Common.COMMA, supplyRequest.getLotNumber(),
|
||||||
|
detail.getUnitCode()),
|
||||||
|
supplyRequest.getMinSellPrice(), detail.getDefinitionId()));
|
||||||
|
resultList.add(this.addChargeItemDefApp(lotUnitCondition, supplyRequest.getMinSellPrice(),
|
||||||
|
detail.getDefinitionId()));
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -3,6 +3,7 @@
|
|||||||
*/
|
*/
|
||||||
package com.openhis.web.inventorymanage.assembler;
|
package com.openhis.web.inventorymanage.assembler;
|
||||||
|
|
||||||
|
import java.math.RoundingMode;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Date;
|
import java.util.Date;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
@@ -112,6 +113,22 @@ public class InventoryManageAssembler {
|
|||||||
// 最小单位
|
// 最小单位
|
||||||
.setMinUnitCode(supplyItemDetailDto.getMinUnitCode());
|
.setMinUnitCode(supplyItemDetailDto.getMinUnitCode());
|
||||||
|
|
||||||
|
if (supplyItemDetailDto.getItemUnit().equals(supplyItemDetailDto.getUnitCode())) {
|
||||||
|
inventoryItem
|
||||||
|
// 包装数量
|
||||||
|
.setBaseQuantity(supplyItemDetailDto.getItemQuantity())
|
||||||
|
// 拆零数量(拆零比×包装数量)
|
||||||
|
.setMinQuantity(
|
||||||
|
supplyItemDetailDto.getPartPercent().multiply(supplyItemDetailDto.getItemQuantity()));
|
||||||
|
} else if (supplyItemDetailDto.getItemUnit().equals(supplyItemDetailDto.getMinUnitCode())) {
|
||||||
|
inventoryItem
|
||||||
|
// 拆零数量
|
||||||
|
.setMinQuantity(supplyItemDetailDto.getItemQuantity())
|
||||||
|
// 包装数量(拆零数量÷拆零比)
|
||||||
|
.setBaseQuantity(supplyItemDetailDto.getItemQuantity().divide(supplyItemDetailDto.getPartPercent(),
|
||||||
|
RoundingMode.HALF_UP));
|
||||||
|
}
|
||||||
|
|
||||||
chargeItemList.add(chargeItem);
|
chargeItemList.add(chargeItem);
|
||||||
inventoryItemList.add(inventoryItem);
|
inventoryItemList.add(inventoryItem);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,7 @@ import com.baomidou.mybatisplus.annotation.IdType;
|
|||||||
import com.baomidou.mybatisplus.annotation.TableId;
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
|
import com.openhis.common.annotation.Dict;
|
||||||
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
@@ -36,20 +37,24 @@ public class InventoryReceiptPageDto implements Serializable {
|
|||||||
|
|
||||||
/** 状态 */
|
/** 状态 */
|
||||||
private Integer statusEnum;
|
private Integer statusEnum;
|
||||||
|
private String statusEnum_enumText;
|
||||||
|
|
||||||
/** 供应商 */
|
/** 供应商 */
|
||||||
private Long supplierId;
|
private Long supplierId;
|
||||||
|
|
||||||
/** 目的仓库 */
|
/** 目的仓库 */
|
||||||
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_location")
|
||||||
private Long purposeLocationId;
|
private Long purposeLocationId;
|
||||||
|
|
||||||
/** 审批人 */
|
/** 审批人 */
|
||||||
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
||||||
private Long approverId;
|
private Long approverId;
|
||||||
|
|
||||||
/** 审批时间 */
|
/** 审批时间 */
|
||||||
private Date approvalTime;
|
private Date approvalTime;
|
||||||
|
|
||||||
/** 申请人 */
|
/** 申请人 */
|
||||||
|
@Dict(dictCode = "id", dictText = "name", dictTable = "adm_practitioner")
|
||||||
private Long applicantId;
|
private Long applicantId;
|
||||||
|
|
||||||
/** 申请时间 */
|
/** 申请时间 */
|
||||||
|
|||||||
@@ -41,4 +41,10 @@ public class ItemChargeDetailDto implements Serializable {
|
|||||||
|
|
||||||
/** 基础价格 */
|
/** 基础价格 */
|
||||||
private BigDecimal sellPrice;
|
private BigDecimal sellPrice;
|
||||||
|
|
||||||
|
/** 药品单位 */
|
||||||
|
private String unitCode;
|
||||||
|
|
||||||
|
/** 最小单位 */
|
||||||
|
private String minUnitCode;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,7 +10,6 @@ import java.util.Date;
|
|||||||
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
import com.fasterxml.jackson.databind.annotation.JsonSerialize;
|
||||||
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
import com.fasterxml.jackson.databind.ser.std.ToStringSerializer;
|
||||||
|
|
||||||
import liquibase.pro.packaged.S;
|
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.experimental.Accessors;
|
import lombok.experimental.Accessors;
|
||||||
|
|
||||||
@@ -93,6 +92,9 @@ public class SupplyItemDetailDto implements Serializable {
|
|||||||
/** 最小单位 */
|
/** 最小单位 */
|
||||||
private String minUnitCode;
|
private String minUnitCode;
|
||||||
|
|
||||||
|
/** 拆零比 */
|
||||||
|
private BigDecimal partPercent;
|
||||||
|
|
||||||
/** 费用定价ID */
|
/** 费用定价ID */
|
||||||
private Long definitionId;
|
private Long definitionId;
|
||||||
|
|
||||||
|
|||||||
@@ -70,6 +70,7 @@
|
|||||||
T2.wb_str,
|
T2.wb_str,
|
||||||
T2.unit_code,
|
T2.unit_code,
|
||||||
T2.min_unit_code,
|
T2.min_unit_code,
|
||||||
|
T2.part_percent,
|
||||||
T3.id AS definition_id,
|
T3.id AS definition_id,
|
||||||
T4.amount AS base_amount,
|
T4.amount AS base_amount,
|
||||||
T4.id AS applicability_id
|
T4.id AS applicability_id
|
||||||
@@ -94,10 +95,14 @@
|
|||||||
T1.price AS sell_price,
|
T1.price AS sell_price,
|
||||||
T2.condition_lotnumber,
|
T2.condition_lotnumber,
|
||||||
T2.condition_unit_code,
|
T2.condition_unit_code,
|
||||||
T2.amount AS unit_price
|
T2.amount AS unit_price,
|
||||||
|
T3.unit_code,
|
||||||
|
T3.min_unit_code
|
||||||
FROM adm_charge_item_definition AS T1
|
FROM adm_charge_item_definition AS T1
|
||||||
LEFT JOIN adm_charge_item_def_app AS T2
|
LEFT JOIN adm_charge_item_def_app AS T2
|
||||||
ON T1.id = T2.definition_id
|
ON T1.id = T2.definition_id
|
||||||
|
LEFT JOIN med_medication_definition AS T3
|
||||||
|
ON T1.instance_id = T3.id
|
||||||
WHERE T1.instance_id IN
|
WHERE T1.instance_id IN
|
||||||
<foreach collection="itemIdList" item="itemId" separator="," open="(" close=")">
|
<foreach collection="itemIdList" item="itemId" separator="," open="(" close=")">
|
||||||
#{itemId}
|
#{itemId}
|
||||||
|
|||||||
@@ -14,34 +14,35 @@ import lombok.Getter;
|
|||||||
*/
|
*/
|
||||||
@Getter
|
@Getter
|
||||||
@AllArgsConstructor
|
@AllArgsConstructor
|
||||||
public enum SupplyStatus {
|
public enum SupplyStatus implements HisEnumInterface {
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 待审核
|
* 待审核
|
||||||
*/
|
*/
|
||||||
PENDING_APPROVAL(1, "待审核"),
|
PENDING_APPROVAL(1, "1", "待审核"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 审核中
|
* 审核中
|
||||||
*/
|
*/
|
||||||
APPROVAL(2, "审核中"),
|
APPROVAL(2, "2", "审核中"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 同意
|
* 同意
|
||||||
*/
|
*/
|
||||||
AGREE(3, "同意"),
|
AGREE(3, "3", "同意"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 驳回
|
* 驳回
|
||||||
*/
|
*/
|
||||||
REJECT(4, "驳回"),
|
REJECT(4, "4", "驳回"),
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 已撤回
|
* 已撤回
|
||||||
*/
|
*/
|
||||||
WITHDRAW(9, "已撤回");
|
WITHDRAW(9, "5", "已撤回");
|
||||||
|
|
||||||
private Integer value;
|
private Integer value;
|
||||||
|
private String code;
|
||||||
private String info;
|
private String info;
|
||||||
|
|
||||||
public static SupplyStatus getByValue(Integer value) {
|
public static SupplyStatus getByValue(Integer value) {
|
||||||
|
|||||||
@@ -71,9 +71,6 @@ public class SupplyRequest extends HisBaseEntity {
|
|||||||
/** 物品计量单位 */
|
/** 物品计量单位 */
|
||||||
private String unitCode;
|
private String unitCode;
|
||||||
|
|
||||||
/** 拆零单位 */
|
|
||||||
private String minUnitCode;
|
|
||||||
|
|
||||||
/** 请求细节 */
|
/** 请求细节 */
|
||||||
private String detailJson;
|
private String detailJson;
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user