From 05e12628b54ce5ddee818f4fcef0b7738a8936f9 Mon Sep 17 00:00:00 2001 From: "1378012178@qq.com" <1378012178@qq.com> Date: Mon, 22 Sep 2025 17:07:39 +0800 Subject: [PATCH] =?UTF-8?q?=E6=B7=BB=E5=8A=A0=E9=95=BF=E8=80=85=E3=80=81?= =?UTF-8?q?=E4=BF=AE=E6=94=B9=E5=AE=B6=E5=B1=9E=E4=BF=A1=E6=81=AF=EF=BC=9A?= =?UTF-8?q?=E9=80=9A=E7=9F=A5=E7=AE=A1=E7=90=86=E5=BD=A2=E6=80=81=E6=96=B0?= =?UTF-8?q?=E5=A2=9E/=E4=BF=AE=E6=94=B9=E5=AE=B6=E5=B1=9E=E4=BF=A1?= =?UTF-8?q?=E6=81=AF?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/nu/modules/nubill/api/INuBillApi.java | 10 ++ .../INuEmployeesAdvisoryInfoService.java | 2 +- .../NuEmployeesAdvisoryInfoServiceImpl.java | 4 +- .../com/nu/modules/nubill/entity/NuBill.java | 105 ++++++++++++++++++ .../modules/nubill/mapper/NuBillMapper.java | 19 ++++ .../nubill/mapper/xml/NuBillMapper.xml | 40 +++++++ .../nubill/service/INuBillService.java | 14 +++ .../service/impl/NuBillServiceImpl.java | 29 +++++ .../nu/modules/wechat/elder/api/ElderApi.java | 1 + .../wechat/nubaseinfo/api/NuBaseInfoApi.java | 57 ++++++++-- .../main/java/com/nu/dto/ElderInfoMQDto.java | 4 + .../java/com/nu/entity/ElderInfoEntity.java | 4 + .../main/java/com/nu/entity/NuBillEntity.java | 80 +++++++++++++ 13 files changed, 358 insertions(+), 11 deletions(-) create mode 100644 nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/nubill/api/INuBillApi.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/entity/NuBill.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/mapper/NuBillMapper.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/mapper/xml/NuBillMapper.xml create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/service/INuBillService.java create mode 100644 nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/service/impl/NuBillServiceImpl.java create mode 100644 nursing-unit-common/src/main/java/com/nu/entity/NuBillEntity.java diff --git a/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/nubill/api/INuBillApi.java b/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/nubill/api/INuBillApi.java new file mode 100644 index 0000000..71d04ca --- /dev/null +++ b/nursing-unit-admin/nu-admin-api/nu-admin-local-api/src/main/java/com/nu/modules/nubill/api/INuBillApi.java @@ -0,0 +1,10 @@ +package com.nu.modules.nubill.api; + +import com.nu.entity.NuBillEntity; + +import java.util.List; + +public interface INuBillApi { + + List queryByOpenId(NuBillEntity params); +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/INuEmployeesAdvisoryInfoService.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/INuEmployeesAdvisoryInfoService.java index ae8e269..e345301 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/INuEmployeesAdvisoryInfoService.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/INuEmployeesAdvisoryInfoService.java @@ -1,8 +1,8 @@ package com.nu.modules.employees.service; +import com.baomidou.mybatisplus.extension.service.IService; import com.nu.dto.EmployeesStatusMQDto; import com.nu.modules.employees.entity.NuEmployeesAdvisoryInfo; -import com.baomidou.mybatisplus.extension.service.IService; /** * @Description: 员工咨询信息 diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/impl/NuEmployeesAdvisoryInfoServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/impl/NuEmployeesAdvisoryInfoServiceImpl.java index 6ddb6f8..84b7ba5 100644 --- a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/impl/NuEmployeesAdvisoryInfoServiceImpl.java +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/employees/service/impl/NuEmployeesAdvisoryInfoServiceImpl.java @@ -2,6 +2,7 @@ package com.nu.modules.employees.service.impl; import cn.hutool.json.JSONObject; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.nu.dto.EmployeesStatusMQDto; import com.nu.modules.EmployessInfo.api.IEmployessAdvisioryInfoApi; import com.nu.modules.EmployessInfo.entity.EmployeesAdvisoryInfoEntity; @@ -12,7 +13,6 @@ import com.nu.modules.weixin.utils.TemplateMessageSender; import com.nu.modules.weixin.utils.WechatMiniProgramUtils; import org.apache.commons.compress.utils.Lists; import org.apache.commons.lang.StringUtils; -import org.jeecg.common.api.vo.Result; import org.jeecg.common.constant.CommonConstant; import org.jeecg.common.system.api.ISysBaseAPI; import org.jeecg.common.util.DateUtils; @@ -21,8 +21,6 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; -import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; - import java.util.HashMap; import java.util.List; import java.util.Map; diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/entity/NuBill.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/entity/NuBill.java new file mode 100644 index 0000000..d8110fb --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/entity/NuBill.java @@ -0,0 +1,105 @@ +package com.nu.modules.nubill.entity; + +import java.io.Serializable; +import java.io.UnsupportedEncodingException; +import java.util.Date; +import java.math.BigDecimal; + +import com.baomidou.mybatisplus.annotation.*; +import org.jeecg.common.constant.ProvinceCityArea; +import org.jeecg.common.util.SpringContextUtils; +import lombok.Data; +import com.fasterxml.jackson.annotation.JsonFormat; +import org.springframework.format.annotation.DateTimeFormat; +import org.jeecgframework.poi.excel.annotation.Excel; +import org.jeecg.common.aspect.annotation.Dict; +import io.swagger.annotations.ApiModel; +import io.swagger.annotations.ApiModelProperty; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; + +/** + * @Description: 护理单元费用明细 + * @Author: jeecg-boot + * @Date: 2025-09-17 + * @Version: V1.0 + */ +@Data +@TableName("nu_nu_bill") +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) +@ApiModel(value="nu_nu_bill对象", description="护理单元费用明细") +public class NuBill implements Serializable { + private static final long serialVersionUID = 1L; + + /**id*/ + @TableId(type = IdType.ASSIGN_ID) + @ApiModelProperty(value = "ID") + private java.lang.String id; + /**护理单元编号*/ + @Excel(name = "护理单元编号", width = 15) + @ApiModelProperty(value = "护理单元编号") + private java.lang.String nuId; + /**长者ID*/ + @Excel(name = "长者ID", width = 15) + @ApiModelProperty(value = "长者ID") + private java.lang.Integer elderId; + /**家属open_id*/ + @Excel(name = "家属open_id", width = 15) + @ApiModelProperty(value = "家属open_id") + private java.lang.String openId; + /**变动金额:正为充值/退款,负为消费*/ + @Excel(name = "变动金额:正为充值/退款,负为消费", width = 15) + @ApiModelProperty(value = "变动金额:正为充值/退款,负为消费") + private java.math.BigDecimal amount; + /**本次操作后余额(防计算误差)*/ + @Excel(name = "本次操作后余额(防计算误差)", width = 15) + @ApiModelProperty(value = "本次操作后余额(防计算误差)") + private java.math.BigDecimal balanceAfter; + /**费用类型bill_type:电费,水费,充值,退款等 */ + @Excel(name = "费用类型bill_type:电费,水费,充值,退款等 ", width = 15) + @ApiModelProperty(value = "费用类型bill_type:电费,水费,充值,退款等 ") + private java.lang.String type; + /**备注*/ + @Excel(name = "备注", width = 15) + @ApiModelProperty(value = "备注") + private java.lang.String remark; + /**createdTime*/ + @Excel(name = "createdTime", width = 20, format = "yyyy-MM-dd HH:mm:ss") + @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm:ss") + @DateTimeFormat(pattern="yyyy-MM-dd HH:mm:ss") + @ApiModelProperty(value = "createdTime") + private java.util.Date createTime; + + /** + * 护理单元名称 + */ + @TableField(exist = false) + private String nuName; + + /** + * 长者姓名 + */ + @TableField(exist = false) + private String elderName; + + /** + * 费用类型名称 + */ + @TableField(exist = false) + private String typeName; + + /** + * 机构名称 + */ + @TableField(exist = false) + private String departName; + + /** + * 护理单元余额 + */ + @TableField(exist = false) + private BigDecimal balance; + + +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/mapper/NuBillMapper.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/mapper/NuBillMapper.java new file mode 100644 index 0000000..20c4d8c --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/mapper/NuBillMapper.java @@ -0,0 +1,19 @@ +package com.nu.modules.nubill.mapper; + +import java.util.List; + +import com.nu.entity.NuBillEntity; +import org.apache.ibatis.annotations.Param; +import com.nu.modules.nubill.entity.NuBill; +import com.baomidou.mybatisplus.core.mapper.BaseMapper; + +/** + * @Description: 护理单元费用明细 + * @Author: jeecg-boot + * @Date: 2025-09-17 + * @Version: V1.0 + */ +public interface NuBillMapper extends BaseMapper { + + List queryByOpenId(@Param("dto") NuBillEntity dto); +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/mapper/xml/NuBillMapper.xml b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/mapper/xml/NuBillMapper.xml new file mode 100644 index 0000000..399892b --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/mapper/xml/NuBillMapper.xml @@ -0,0 +1,40 @@ + + + + + + diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/service/INuBillService.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/service/INuBillService.java new file mode 100644 index 0000000..aa77e88 --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/service/INuBillService.java @@ -0,0 +1,14 @@ +package com.nu.modules.nubill.service; + +import com.nu.modules.nubill.entity.NuBill; +import com.baomidou.mybatisplus.extension.service.IService; + +/** + * @Description: 护理单元费用明细 + * @Author: jeecg-boot + * @Date: 2025-09-17 + * @Version: V1.0 + */ +public interface INuBillService extends IService { + +} diff --git a/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/service/impl/NuBillServiceImpl.java b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/service/impl/NuBillServiceImpl.java new file mode 100644 index 0000000..78bde51 --- /dev/null +++ b/nursing-unit-admin/nu-admin-biz/src/main/java/com/nu/modules/nubill/service/impl/NuBillServiceImpl.java @@ -0,0 +1,29 @@ +package com.nu.modules.nubill.service.impl; + +import cn.hutool.core.bean.BeanUtil; +import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.nu.entity.NuBillEntity; +import com.nu.modules.nubill.api.INuBillApi; +import com.nu.modules.nubill.entity.NuBill; +import com.nu.modules.nubill.mapper.NuBillMapper; +import com.nu.modules.nubill.service.INuBillService; +import org.springframework.stereotype.Service; + +import java.util.List; + +/** + * @Description: 护理单元费用明细 + * @Author: jeecg-boot + * @Date: 2025-09-17 + * @Version: V1.0 + */ +@Service +public class NuBillServiceImpl extends ServiceImpl implements INuBillService, INuBillApi { + + @Override + public List queryByOpenId(NuBillEntity params) { + List list = baseMapper.queryByOpenId(params); + return BeanUtil.copyToList(list,NuBillEntity.class); + } +} diff --git a/nursing-unit-api/src/main/java/com/nu/modules/wechat/elder/api/ElderApi.java b/nursing-unit-api/src/main/java/com/nu/modules/wechat/elder/api/ElderApi.java index 35f4283..ea874fe 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/wechat/elder/api/ElderApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/wechat/elder/api/ElderApi.java @@ -132,6 +132,7 @@ public class ElderApi { //切换数据源整理好数据放到返回结果中 DynamicDataSourceContextHolder.push(orgCode); ElderInfoMQDto mqdto = new ElderInfoMQDto(); + mqdto.setGuardianId(nuBizAdvisoryInfo.getId());//家属(用户)id mqdto.setGuardianOpenId(nuBizAdvisoryInfo.getOpenId());//联系人openId mqdto.setGuardianName(nuBizAdvisoryInfo.getName());//联系人姓名 mqdto.setGuardianPhone(nuBizAdvisoryInfo.getTel());//联系人电话 diff --git a/nursing-unit-api/src/main/java/com/nu/modules/wechat/nubaseinfo/api/NuBaseInfoApi.java b/nursing-unit-api/src/main/java/com/nu/modules/wechat/nubaseinfo/api/NuBaseInfoApi.java index b4b2a4e..5774da9 100644 --- a/nursing-unit-api/src/main/java/com/nu/modules/wechat/nubaseinfo/api/NuBaseInfoApi.java +++ b/nursing-unit-api/src/main/java/com/nu/modules/wechat/nubaseinfo/api/NuBaseInfoApi.java @@ -4,14 +4,12 @@ import com.alibaba.fastjson.JSONObject; import com.baomidou.dynamic.datasource.toolkit.DynamicDataSourceContextHolder; import com.google.common.collect.Maps; import com.nu.dto.NuBaseInfoMQDto; -import com.nu.entity.ElderInfoEntity; -import com.nu.entity.HumidDeviceEntity; -import com.nu.entity.NuBaseElderEntity; -import com.nu.entity.NuBaseInfoEntity; +import com.nu.entity.*; import com.nu.modules.baseinfo.api.INuBaseInfoApi; import com.nu.modules.elder.api.IElderInfoApi; import com.nu.modules.humiddevice.api.IHumidDeviceApi; import com.nu.modules.nubaseelder.api.INuBaseElderApi; +import com.nu.modules.nubill.api.INuBillApi; import com.nu.utils.RabbitMQUtil; import lombok.extern.slf4j.Slf4j; import org.apache.commons.compress.utils.Lists; @@ -22,9 +20,7 @@ import org.springframework.beans.BeanUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.web.bind.annotation.*; -import java.util.HashMap; -import java.util.List; -import java.util.Map; +import java.util.*; import java.util.stream.Collectors; /** @@ -47,6 +43,8 @@ public class NuBaseInfoApi { private ISysBaseAPI sysBaseAPI; @Autowired private RabbitMQUtil rabbitMQUtil; + @Autowired + private INuBillApi nuBillApi; /** * 绑定护理单元 @@ -64,6 +62,51 @@ public class NuBaseInfoApi { return Result.ok(); } + /** + * 查询家属缴费明细 + * + * @param openId + * @return + */ + @GetMapping("/queryBillList") + public Result> queryBillList(@RequestParam("openId") String openId) { + //护理单元信息 + List nuElderList = nuBaseElderApi.queryByOpenId(openId); + if (nuElderList == null || nuElderList.size() == 0) { + return Result.ok(List.of()); + } + + //key:orgCode value:nuid逗号拼接的字符串 + Map orgCodeToNuIdMap = nuElderList.stream() + .filter(entity -> entity.getOrgCode() != null && entity.getNuId() != null) + .collect(Collectors.groupingBy( + NuBaseElderEntity::getOrgCode, + Collectors.mapping(NuBaseElderEntity::getNuId, Collectors.joining(",")) + )); + + List result = Lists.newArrayList(); + for (Map.Entry entry : orgCodeToNuIdMap.entrySet()) { + String orgCode = entry.getKey(); +// String nuIds = entry.getValue(); + + //切换数据源整理好数据放到返回结果中 + DynamicDataSourceContextHolder.push(orgCode); + NuBillEntity params = new NuBillEntity(); + params.setOpenId(openId); + List list = nuBillApi.queryByOpenId(params); + if (list == null || list.size() == 0) { + continue; + } + DynamicDataSourceContextHolder.clear(); + result.addAll(list); + } + + List sortedResult = result.stream() + .sorted(Comparator.comparing(NuBillEntity::getCreateTime, Comparator.nullsLast(Date::compareTo)).reversed()) + .collect(Collectors.toList()); + return Result.ok(sortedResult); + } + /** * 获取用户下对应的护理单元及老人信息 * diff --git a/nursing-unit-common/src/main/java/com/nu/dto/ElderInfoMQDto.java b/nursing-unit-common/src/main/java/com/nu/dto/ElderInfoMQDto.java index 13c81be..37767ea 100644 --- a/nursing-unit-common/src/main/java/com/nu/dto/ElderInfoMQDto.java +++ b/nursing-unit-common/src/main/java/com/nu/dto/ElderInfoMQDto.java @@ -111,6 +111,10 @@ public class ElderInfoMQDto implements Serializable { * 当前状态 0咨询 1入住 2留床 3退住 */ private String currentState; + /** + * 监护人id + */ + private String guardianId; /** * 监护人openId */ diff --git a/nursing-unit-common/src/main/java/com/nu/entity/ElderInfoEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/ElderInfoEntity.java index 674c024..a25bf39 100644 --- a/nursing-unit-common/src/main/java/com/nu/entity/ElderInfoEntity.java +++ b/nursing-unit-common/src/main/java/com/nu/entity/ElderInfoEntity.java @@ -111,6 +111,10 @@ public class ElderInfoEntity implements Serializable { * 当前状态 0咨询 1入住 2留床 3退住 */ private String currentState; + /** + * 监护人id + */ + private String guardianId; /** * 监护人openId */ diff --git a/nursing-unit-common/src/main/java/com/nu/entity/NuBillEntity.java b/nursing-unit-common/src/main/java/com/nu/entity/NuBillEntity.java new file mode 100644 index 0000000..0f976e3 --- /dev/null +++ b/nursing-unit-common/src/main/java/com/nu/entity/NuBillEntity.java @@ -0,0 +1,80 @@ +package com.nu.entity; + +import com.baomidou.mybatisplus.annotation.TableField; +import lombok.Data; + +import java.io.Serializable; +import java.math.BigDecimal; +import java.util.Date; + +/** + * @Description: 护理单元费用明细 + * @Author: jeecg-boot + * @Date: 2025-09-17 + * @Version: V1.0 + */ +@Data +public class NuBillEntity implements Serializable { + private static final long serialVersionUID = 1L; + + /** + * id + */ + private String id; + /** + * 护理单元编号 + */ + private String nuId; + /** + * 长者ID + */ + private Integer elderId; + /** + * 家属open_id + */ + private String openId; + /** + * 变动金额:正为充值/退款,负为消费 + */ + private BigDecimal amount; + /** + * 本次操作后余额(防计算误差) + */ + private BigDecimal balanceAfter; + /** + * 费用类型bill_type:电费,水费,充值,退款等 + */ + private String type; + /** + * 备注 + */ + private String remark; + /** + * createdTime + */ + private Date createTime; + /** + * 护理单元名称 + */ + private String nuName; + + /** + * 长者姓名 + */ + private String elderName; + + /** + * 费用类型名称 + */ + private String typeName; + + /** + * 机构名称 + */ + private String departName; + + /** + * 护理单元余额 + */ + private BigDecimal balance; +}