This commit is contained in:
LiJianZhao 2025-05-07 11:45:00 +08:00
parent 4145455f9b
commit 5964502e59
9 changed files with 93 additions and 42 deletions

View File

@ -18,7 +18,6 @@ import java.util.List;
public class IM2204 extends BaseInputModel{
@IMField(key = "feedetail", name = "费用明细列表", required = true)
private List<Feedetail> feedetail;
@Data
public static class Feedetail {
@IMField(key = "feedetl_sn", name = "费用明细流水号", required = true)

View File

@ -20,8 +20,7 @@ public class IM2206A extends BaseInputModel{
@IMField(key = "data", name = "数据", required = true)
private Data data;
@Getter
@Setter
@lombok.Data
public static class Data{
@IMField(key = "psn_no", name = "人员编号", required = true)
private String psn_no;

View File

@ -1,6 +1,7 @@
package com.syjiaer.clinic.server.common.api.input;
import com.syjiaer.clinic.server.common.api.annotations.IMField;
import lombok.Data;
import lombok.Getter;
import lombok.Setter;
import lombok.ToString;
@ -16,8 +17,7 @@ public class IM2207A extends BaseInputModel{
@IMField(key = "data", name = "数据", required = true)
private Data data;
@Getter
@Setter
@lombok.Data
public static class Data{
@IMField(key = "psn_no", name = "人员编号", required = true)
private String psn_no;

View File

@ -10,6 +10,7 @@ import com.syjiaer.clinic.server.entity.charge.ChargeLog;
import com.syjiaer.clinic.server.entity.charge.ChargeOrder;
import com.syjiaer.clinic.server.entity.charge.dto.ChargeQuery;
import com.syjiaer.clinic.server.entity.charge.dto.ChargeSaveDto;
import com.syjiaer.clinic.server.entity.charge.vo.ChargeDetailVo;
import com.syjiaer.clinic.server.service.charge.ChargeService;
import com.syjiaer.clinic.server.service.charge.vo.RetailOrderDailyChargingReportVo;
import org.springframework.beans.factory.annotation.Autowired;
@ -31,9 +32,14 @@ public class ChargeController extends BaseController {
ChargeOrder chargeOrder = chargeService.save(dto);
return success(chargeOrder.getCode());
}
@RequestMapping("/listDetail")
public Result<Page<ChargeDetailVo>> listDetail() {
ChargeQuery chargeQuery = parmsUtil.getObject("query", ChargeQuery.class);
return success(chargeService.pageDetailList(chargeQuery));
}
@RequestMapping("/list")
public Result<Object> list() {
public Result<Page<ChargeOrder>> list() {
ChargeQuery chargeQuery = parmsUtil.getObject("query", ChargeQuery.class);
return success(chargeService.pageList(chargeQuery));
}
@ -46,9 +52,9 @@ public class ChargeController extends BaseController {
return success();
}
@RequestMapping("/getByCode")
public Result<Object> getByCode() {
public Result<ChargeDetailVo> getByCode() {
String code = parmsUtil.getString("code");
return success(chargeService.getByCode(code));
return success(chargeService.getDetail(code));
}

View File

@ -83,4 +83,6 @@ public class PatientController extends BaseController {
}
}

View File

@ -19,7 +19,7 @@ import lombok.experimental.Accessors;
* </p>
*
* @author NiuZiYuan
* @since 2025-04-30
* @since 2025-05-07
*/
@Getter
@Setter
@ -88,4 +88,13 @@ public class PatientInfo implements Serializable {
@ApiModelProperty("生日")
private LocalDate birthday;
@ApiModelProperty("最后就诊时间")
private LocalDateTime lastVisitTime;
@ApiModelProperty("既往史")
private String beforeMedicalHistory;
@ApiModelProperty("过敏史")
private String allergyHistory;
}

View File

@ -252,9 +252,23 @@ public class ChargeService extends BaseService {
return chargeOrder;
}
public Page<ChargeDetailVo> pageDetailList(ChargeQuery query) {
Page<ChargeOrder> page = pageList(query);
List<ChargeDetailVo> detailList = new ArrayList<>();
for (ChargeOrder chargeOrder : page.getList()){
detailList.add(getDetail(chargeOrder.getCode()));
}
Page<ChargeDetailVo> pageResult = new Page<>();
pageResult.setTotal_page(page.getTotal_page());
pageResult.setTotal_count(page.getTotal_count());
pageResult.setList(detailList);
return pageResult;
}
public Page<ChargeDetailVo> pageList(ChargeQuery query) {
public Page<ChargeOrder> pageList(ChargeQuery query) {
QueryWrapper<ChargeOrder> queryWrapper = new QueryWrapper<>();
if (query.getPageSize() == null || query.getPageSize() == 0) {
query.setPageSize(Constants.DetailPageSize);
@ -265,12 +279,23 @@ public class ChargeService extends BaseService {
if (query.getPatientName() != null) {
queryWrapper.like("patient_name", query.getPatientName());
}
if (query.getPatientId() != null){
if (query.getPatientId() != null) {
queryWrapper.eq("patient_id", query.getPatientId());
}
Page<ChargeOrder> orderPage = pageHelper(query.getPageNum(), query.getPageSize(), queryWrapper, chargeOrderMapper, "create_datetime", false);
List<ChargeDetailVo> voList = new ArrayList<>();
for (ChargeOrder chargeOrder : orderPage.getList()) {
return pageHelper(query.getPageNum(), query.getPageSize(), queryWrapper, chargeOrderMapper, "create_datetime", false);
}
/**
* 获取订单详细信息
* @param code
* @return
*/
public ChargeDetailVo getDetail(String code) {
QueryWrapper<ChargeOrder> queryWrapper = new QueryWrapper<>();
queryWrapper.eq("code", code);
queryWrapper.last("limit 1");
ChargeOrder chargeOrder = chargeOrderMapper.selectOne(queryWrapper);
ChargeDetailVo detailVo = new ChargeDetailVo();
BeanUtils.copyProperties(chargeOrder, detailVo);
detailVo.setDiagnosisMedicalRecord(diagnosisMedicalRecordMapper.selectByDiagnosisCode(chargeOrder.getDiagnosisCode()));
@ -278,13 +303,8 @@ public class ChargeService extends BaseService {
detailVo.setServiceDetail(chargeItemListMapper.selectByCode(chargeOrder.getCode()));
detailVo.setGoodsDetail(chargeGoodsListMapper.selectByCode(chargeOrder.getCode()));
voList.add(detailVo);
}
Page<ChargeDetailVo> resultPage = new Page<>();
resultPage.setList(voList);
resultPage.setTotal_page(orderPage.getTotal_page());
resultPage.setTotal_count(orderPage.getTotal_count());
return resultPage;
return detailVo;
}
// @Transactional(rollbackFor = Exception.class)
@ -352,7 +372,7 @@ public class ChargeService extends BaseService {
log.setSocialType(InventorySocialTypeEnum.INVENTORY_SURPLUS.getType());
}
inventoryLogMapper.insert(logs);
this.recordChargeInventoryLog(logs,order);
this.recordChargeInventoryLog(logs, order);
}
//记录收费日志
this.recordChargeLog(order, ChargeSourceEnum.CHARGE, ChargeTypeEnum.CHARGE);
@ -535,7 +555,7 @@ public class ChargeService extends BaseService {
if (divisor.compareTo(BigDecimal.ZERO) == 0) {
// 处理除数为零的情况例如抛出自定义异常或返回默认值
value.setGrossProfitRate("0.00%");
}else {
} else {
value.setGrossProfitRate(String.format("%.2f%%", grossMargin.divide(value.getTotalMoney(), 4, RoundingMode.HALF_UP).multiply(new BigDecimal("100"))));
}
value.setDate(LocalDate.parse(key));
@ -589,16 +609,16 @@ public class ChargeService extends BaseService {
/**
* 收款 退款 记录
*/
public void recordChargeLog(ChargeOrder chargeOrder, ChargeSourceEnum sourceEnum, ChargeTypeEnum chargeType){
public void recordChargeLog(ChargeOrder chargeOrder, ChargeSourceEnum sourceEnum, ChargeTypeEnum chargeType) {
ChargeLog chargeLog = new ChargeLog();
String customer = null;
if (chargeOrder.getPatientId() != null){
if (chargeOrder.getPatientId() != null) {
PatientInfo patient = patientInfoMapper.selectById(chargeOrder.getPatientId());
customer = patient.getName();
}else if (chargeOrder.getSocialUserId() != null){
} else if (chargeOrder.getSocialUserId() != null) {
SocialUser socialUser = socialUserMapper.selectById(chargeOrder.getSocialUserId());
customer = socialUser.getPsnName();
}else {
} else {
customer = "-";
}
chargeLog.setSource(sourceEnum.getType());
@ -609,7 +629,7 @@ public class ChargeService extends BaseService {
chargeLog.setNetReceipts(chargeOrder.getTotalPrice());
chargeLog.setDiscount(chargeOrder.getTotalPrice().subtract(chargeOrder.getPreTotalPrice()));
chargeLog.setPayType(chargeOrder.getPayType());
if (chargeOrder.getSalePersonId() != null){
if (chargeOrder.getSalePersonId() != null) {
OrganizationMember organizationMember = organizationMemberMapper.selectById(chargeOrder.getSalePersonId());
chargeLog.setSalePersonName(organizationMember.getName());
chargeLog.setSalePersonId(chargeOrder.getSalePersonId());
@ -618,12 +638,13 @@ public class ChargeService extends BaseService {
chargeLog.setProjectCode(chargeOrder.getCode());
chargeLogMapper.insert(chargeLog);
}
/**
* 销售库存变更 日志
*/
public void recordChargeInventoryLog(List<InventoryLog> logs,ChargeOrder chargeOrder){
public void recordChargeInventoryLog(List<InventoryLog> logs, ChargeOrder chargeOrder) {
List<ChargeInventoryLog> chargeInventoryLogs = new ArrayList<>();
for (InventoryLog log : logs){
for (InventoryLog log : logs) {
ChargeInventoryLog chargeInventoryLog = new ChargeInventoryLog();
chargeInventoryLog.setChargeOrderCode(chargeOrder.getCode());
chargeInventoryLog.setGoodsId(log.getGoodsId());
@ -633,14 +654,14 @@ public class ChargeService extends BaseService {
chargeInventoryLog.setTrdnFlag(false);
chargeInventoryLog.setUnit(dbGoods.getPackagingUnit());
chargeInventoryLog.setNumber(log.getChangeWholeNumber());
if (log.getChangeFragmentNumber() != 0 ){
if (log.getChangeFragmentNumber() != 0) {
chargeInventoryLog.setTrdnFlag(true);
chargeInventoryLog.setUnit(dbGoods.getMinPackagingUnit());
chargeInventoryLog.setNumber(log.getChangeWholeNumber()*dbGoods.getMinPackagingNumber()+log.getChangeFragmentNumber());
chargeInventoryLog.setNumber(log.getChangeWholeNumber() * dbGoods.getMinPackagingNumber() + log.getChangeFragmentNumber());
}
QueryWrapper<ChargeGoodsList> listWrapper = new QueryWrapper<>();
listWrapper.eq("charge_order_code",chargeOrder.getCode());
listWrapper.eq("goods_id",log.getGoodsId());
listWrapper.eq("charge_order_code", chargeOrder.getCode());
listWrapper.eq("goods_id", log.getGoodsId());
ChargeGoodsList chargeGoodsList = chargeGoodsListMapper.selectOne(listWrapper);
chargeInventoryLog.setFeedetlSn(chargeGoodsList.getFeedetlSn());
chargeInventoryLog.setCreateTime(LocalDateTime.now());
@ -657,6 +678,7 @@ public class ChargeService extends BaseService {
/**
* 获取收费记录
*
* @return
*/
public Page<ChargeLog> getChargeRecordPageList() {
@ -664,4 +686,6 @@ public class ChargeService extends BaseService {
Page<ChargeLog> page = pageHelper(1, 20, queryWrapper, chargeLogMapper, "charge_time", false);
return page;
}
}

View File

@ -181,6 +181,14 @@ public class MedicalRecordService extends BaseService {
diagnosisMedicalGoodsListMapper.insert(goodsLists);
PatientInfo updatePatient = new PatientInfo();
updatePatient.setId(saveDto.getPatientId());
updatePatient.setLastVisitTime(now);
updatePatient.setAllergyHistory(saveDto.getDiagnosisMedicalRecord().getAllergyHistory());
updatePatient.setBeforeMedicalHistory(saveDto.getDiagnosisMedicalRecord().getBeforeMedicalHistory());
patientInfoMapper.updateById(updatePatient);
System.out.println(saveDto.getDiagnosisMedicalRecord().getDiagnosisDetail());
List<SocialDiagnose> diagnoseList = JSONArray.parseArray(saveDto.getDiagnosisMedicalRecord().getDiagnosisDetail(),SocialDiagnose.class);
socialDiagnoseService.updateNumAddOne(diagnoseList);

View File

@ -97,7 +97,11 @@ public class ItemService extends BaseService {
public List<Item> search(String keyword){
QueryWrapper<Item> queryWrapper = new QueryWrapper<>();
if (keyword != null && !keyword.isEmpty()){
queryWrapper.like("item_name", keyword.toUpperCase());
String upperKeyword = keyword.toUpperCase();
queryWrapper.like("item_name", upperKeyword);
queryWrapper.or().like("pinyin_full", upperKeyword);
queryWrapper.or().like("pinyin_first", upperKeyword);
}
queryWrapper.orderByDesc("use_num","update_datetime");
queryWrapper.last("limit 20");