Commit 4ce29477 authored by zhangwanglin's avatar zhangwanglin

Merge branch 'uat_ch_master' into dev_20230801_addCard

parents 6654fa1f cca7e3f7
...@@ -119,6 +119,17 @@ public class AccountController { ...@@ -119,6 +119,17 @@ public class AccountController {
return result; return result;
} }
/**
* 批量退回
*
* @return
*/
@PostMapping("/batchAccountReturn")
public Result batchAccountReturn(AccountTaskReqVO accountTaskReqVO){
List<AccountTaskExecuteReqVO> accountTaskExecuteReqVOS = accountTaskReqVO.getAccountTaskList();
Result result = accountService.batchAccountReturn(accountTaskExecuteReqVOS);
return result;
}
@GetMapping("/getOtherPlace") @GetMapping("/getOtherPlace")
public Result otherPlaceHandler(String programId){ public Result otherPlaceHandler(String programId){
...@@ -249,8 +260,11 @@ public class AccountController { ...@@ -249,8 +260,11 @@ public class AccountController {
*/ */
@GetMapping("/queryAccountsDeclareList") @GetMapping("/queryAccountsDeclareList")
public Result<Page<ChDisabDetailAccountsResp>> queryAccountsDeclareList(@RequestHeader("Authorization") String token,Integer pageNum, Integer pageSize,SrvOrganListReq srvOrganListReq) { public Result<Page<ChDisabDetailAccountsResp>> queryAccountsDeclareList(@RequestHeader("Authorization") String token,Integer pageNum, Integer pageSize,SrvOrganListReq srvOrganListReq) {
List<String> accountsStatusList = Arrays.asList("0", "1","2"); String accountsStatus = srvOrganListReq.getAccountsStatus();
if(StringUtils.isEmpty(accountsStatus)) {
List<String> accountsStatusList = Arrays.asList("0", "1", "2");
srvOrganListReq.setAccountsStatusList(accountsStatusList); srvOrganListReq.setAccountsStatusList(accountsStatusList);
}
long srvOrganId = TokenParsingUtil.TokenParsing(token, "srvOrganId"); long srvOrganId = TokenParsingUtil.TokenParsing(token, "srvOrganId");
if(srvOrganId !=0) { if(srvOrganId !=0) {
srvOrganListReq.setSrvOrganId(srvOrganId); srvOrganListReq.setSrvOrganId(srvOrganId);
...@@ -261,6 +275,28 @@ public class AccountController { ...@@ -261,6 +275,28 @@ public class AccountController {
return Result.success(chAssessDetailAccounts); return Result.success(chAssessDetailAccounts);
} }
/**
* 基金申报导出
* @param
* @return
*/
@GetMapping("/accountsDeclareExport")
public void accountsDeclareExport(@RequestHeader("Authorization") String token,SrvOrganListReq req,HttpServletResponse response){
long srvOrganId = TokenParsingUtil.TokenParsing(token, "srvOrganId");
if(srvOrganId !=0) {
req.setSrvOrganId(srvOrganId);
}
Workbook workbook = accountService.accountsDeclareExport(req);
// 命名表格
String fileName = "accountsDeclare.xlsx";
FileUtils.exportResponse(workbook,fileName,response);
}
/** /**
* 暂缓列表查询 * 暂缓列表查询
* @param * @param
...@@ -413,7 +449,7 @@ public class AccountController { ...@@ -413,7 +449,7 @@ public class AccountController {
} }
@RequestMapping("/accountReturn") @RequestMapping("/accountReturn")
public Result accountReturn(SrvTaskRespVO srvTaskRespVO) { public Result accountReturn(AccountTaskExecuteReqVO srvTaskRespVO) {
Result result = accountService.accountReturn(srvTaskRespVO); Result result = accountService.accountReturn(srvTaskRespVO);
return result; return result;
......
...@@ -46,4 +46,7 @@ public interface ChDisabAccountsDetailMapper extends BaseMapper<ChDisabDetailAcc ...@@ -46,4 +46,7 @@ public interface ChDisabAccountsDetailMapper extends BaseMapper<ChDisabDetailAcc
int queryTaskDetailDisable(TaskDetailDisableVO taskDetailDisableVO); int queryTaskDetailDisable(TaskDetailDisableVO taskDetailDisableVO);
List<AccountDeclareExportResp> queryAccountsDeclareExport(SrvOrganListReq req);
} }
\ No newline at end of file
...@@ -6,8 +6,11 @@ import com.hungraim.ltc.pojo.entity.account.ChDisabFreeRdInfo; ...@@ -6,8 +6,11 @@ import com.hungraim.ltc.pojo.entity.account.ChDisabFreeRdInfo;
import com.hungraim.ltc.pojo.entity.account.OverallCostListRespVO; import com.hungraim.ltc.pojo.entity.account.OverallCostListRespVO;
import com.hungraim.ltc.pojo.entity.account.OverallCostReqVO; import com.hungraim.ltc.pojo.entity.account.OverallCostReqVO;
import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.springframework.stereotype.Repository; import org.springframework.stereotype.Repository;
import java.util.List;
/** /**
* @author zwl * @author zwl
* @ClassName ChDisabFreeRdInfoMapper * @ClassName ChDisabFreeRdInfoMapper
...@@ -19,5 +22,7 @@ import org.springframework.stereotype.Repository; ...@@ -19,5 +22,7 @@ import org.springframework.stereotype.Repository;
public interface ChDisabFreeRdInfoMapper extends BaseMapper<ChDisabFreeRdInfo> { public interface ChDisabFreeRdInfoMapper extends BaseMapper<ChDisabFreeRdInfo> {
Page<OverallCostListRespVO> queryFreeRdInfo(Page page, OverallCostReqVO req); Page<OverallCostListRespVO> queryFreeRdInfo(Page page, OverallCostReqVO req);
List<String> selectByAccountsId(@Param("accountsId")Long accountsId,@Param("dealType") int dealType);
} }
...@@ -39,6 +39,8 @@ public interface AccountService extends IService<ChDisabAccounts> { ...@@ -39,6 +39,8 @@ public interface AccountService extends IService<ChDisabAccounts> {
Workbook accountsDeclareExport(SrvOrganListReq req);
Page<NursingRecordsRespVO> queryNursingRecords(NursingReqVO nursingReqVO); Page<NursingRecordsRespVO> queryNursingRecords(NursingReqVO nursingReqVO);
...@@ -75,5 +77,7 @@ public interface AccountService extends IService<ChDisabAccounts> { ...@@ -75,5 +77,7 @@ public interface AccountService extends IService<ChDisabAccounts> {
void placeOtherTaskQuery(); void placeOtherTaskQuery();
//退回 //退回
Result accountReturn(SrvTaskRespVO srvTaskRespVO); Result accountReturn(AccountTaskExecuteReqVO srvTaskRespVO);
Result batchAccountReturn(List<AccountTaskExecuteReqVO> srvTaskListRespVO);
} }
...@@ -136,7 +136,30 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis ...@@ -136,7 +136,30 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
@Override @Override
public Page<SrvOrganAccountListResp> searchSrvOrganAccountList(SrvOrganListReq srvOrganListReq) { public Page<SrvOrganAccountListResp> searchSrvOrganAccountList(SrvOrganListReq srvOrganListReq) {
List<Long> organIds = baseAccountService.getOrganIds(srvOrganListReq.getOrganId(), srvOrganListReq.getIsInvolveChild()); List<Long> organIds = baseAccountService.getOrganIds(srvOrganListReq.getOrganId(), srvOrganListReq.getIsInvolveChild());
return disabAccountsMapper.searchSrvOrganAccountList(new Page<>(srvOrganListReq.getPageNum(), srvOrganListReq.getPageSize()), organIds, srvOrganListReq); Page<SrvOrganAccountListResp> srvOrganAccountListRespPage = disabAccountsMapper.searchSrvOrganAccountList(new Page<>(srvOrganListReq.getPageNum(), srvOrganListReq.getPageSize()), organIds, srvOrganListReq);
List<SrvOrganAccountListResp> records = srvOrganAccountListRespPage.getRecords();
for (SrvOrganAccountListResp record : records) {
Short accountsStatus = record.getAccountsStatus();
if(accountsStatus == 4){
Long accountsId = record.getAccountsId();
// 1 补发 2 扣减
List<String> list = chDisabFreeRdInfoMapper.selectByAccountsId(accountsId, 1);
// 补发
record.setReissueReason(list);
List<String> list1 = chDisabFreeRdInfoMapper.selectByAccountsId(accountsId, 2);
// 扣减
record.setDeductionReason(list1);
Date accountsTime = record.getAccountsTime();
String accountsTimeStr = DateUtils.dateToStr(accountsTime);
Date firstDayOfMonth = DateUtils.getFirstDayOfMonth(DateUtils.strToDate(accountsTimeStr));
record.setSvrStartTime(DateUtils.dateToStr(firstDayOfMonth));
Date date = DateUtils.getlastDayOfMonth(DateUtils.strToDate(accountsTimeStr));
record.setSvrEndTime(DateUtils.dateToStr(date));
}
}
return srvOrganAccountListRespPage;
} }
...@@ -488,15 +511,70 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis ...@@ -488,15 +511,70 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
return workbook; return workbook;
} }
@Override
public Workbook accountsDeclareExport(SrvOrganListReq req) {
List<AccountDeclareExportResp> accountDeclareExportResps = chDisabAccountsDetailMapper.queryAccountsDeclareExport(req);
ExportParams exportParams = new ExportParams();
exportParams.setType(ExcelType.XSSF); //对应xlsx
Workbook workbook = ExcelExportUtil.exportExcel(exportParams, AccountDeclareExportResp.class, accountDeclareExportResps);
return workbook;
}
@Override @Override
public Page<ChDisabDetailAccountsResp> queryOrganAccountsDetail(Integer pageNum, Integer pageSize,SrvOrganListReq srvOrganListReq) { public Page<ChDisabDetailAccountsResp> queryOrganAccountsDetail(Integer pageNum, Integer pageSize,SrvOrganListReq srvOrganListReq) {
return chDisabAccountsDetailMapper.queryOrganAccountsDetail(new Page<>(pageNum, pageSize),srvOrganListReq); Page<ChDisabDetailAccountsResp> chDisabDetailAccountsRespPage = chDisabAccountsDetailMapper.queryOrganAccountsDetail(new Page<>(pageNum, pageSize), srvOrganListReq);
List<ChDisabDetailAccountsResp> records = chDisabDetailAccountsRespPage.getRecords();
for (ChDisabDetailAccountsResp record : records) {
Integer status = record.getStatus();
if(status == 1){
BigDecimal reportableAmount = new BigDecimal(0);
BigDecimal institutionsDeserve = new BigDecimal(0);
BigDecimal personalDeserve = new BigDecimal(0);
String accountsStartTime = record.getAccountsStartTime();
if(StringUtils.isEmpty(accountsStartTime)){
accountsStartTime = record.getAccountsTime()+"-01";
}
Date date = DateUtils.strToDate(accountsStartTime);
int daysOfMonth = getDaysOfMonth(date);
String modeName = record.getModeName();
if ("上门".equals(modeName)) {
reportableAmount = new BigDecimal(1200);
institutionsDeserve = new BigDecimal(960);
personalDeserve = new BigDecimal(240);
} else if ("养老".equals(modeName)) {
reportableAmount = new BigDecimal(50).multiply(new BigDecimal(daysOfMonth));
institutionsDeserve = reportableAmount.multiply(new BigDecimal("0.7"));
personalDeserve = reportableAmount.multiply(new BigDecimal("0.3"));
} else if ("医疗".equals(modeName) && "1".equals(record.getLevelCode())) {
reportableAmount = new BigDecimal(80).multiply(new BigDecimal(daysOfMonth));
institutionsDeserve = reportableAmount.multiply(new BigDecimal("0.7"));
personalDeserve = reportableAmount.multiply(new BigDecimal("0.3"));
// 二级及以上医疗机构其限额为 100 元/人/天,由长期护理保险基金支付 70%,个人支付 30%;
} else if ("医疗".equals(modeName) && (!"1".equals(record.getLevelCode()))) {
reportableAmount = new BigDecimal(100).multiply(new BigDecimal(daysOfMonth));
institutionsDeserve = reportableAmount.multiply(new BigDecimal("0.7"));
personalDeserve = reportableAmount.multiply(new BigDecimal("0.3"));
}
record.setReportableAmount(reportableAmount.toString());
record.setInstitutionsDeserve(institutionsDeserve.toString());
record.setPersonalDeserve(personalDeserve.toString());
} }
}
return chDisabDetailAccountsRespPage;
}
public static int getDaysOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
@Override @Override
public Page<NursingRecordsRespVO> queryNursingRecords(NursingReqVO nursingReqVO) { public Page<NursingRecordsRespVO> queryNursingRecords(NursingReqVO nursingReqVO) {
String modeName = nursingReqVO.getModeName(); String modeName = nursingReqVO.getModeName();
...@@ -1137,21 +1215,33 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis ...@@ -1137,21 +1215,33 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
} }
} }
//退回 /**
*@desc 退回
* 1、根据服务机构,时间,失能人员,服务方式查询结算明细表
* 2、删除完成项目表的数据
* 3、查询计划表是否还有已完成的任务,有就只更新状态,
* 只有一条记录结算明细表需要退回费用,并更新服务计划详情表状态
**/
@Override @Override
@Transactional(rollbackFor = Exception.class) @Transactional(rollbackFor = Exception.class)
public Result accountReturn(SrvTaskRespVO srvTaskRespVO){ public Result accountReturn(AccountTaskExecuteReqVO srvTaskRespVO){
Long taskDetailId = srvTaskRespVO.getTaskDetailId(); Result result = accountReturnHandler(srvTaskRespVO);
return result;
}
public Result accountReturnHandler(AccountTaskExecuteReqVO srvTaskRespVO) {
Long taskDetailId = Long.valueOf(srvTaskRespVO.getTaskDetailId());
String disabInfoId = srvTaskRespVO.getDisabInfoId(); String disabInfoId = srvTaskRespVO.getDisabInfoId();
String srvModeName = srvTaskRespVO.getSrvModeName(); String srvModeName = srvTaskRespVO.getSrvModeName();
String srvPlanTime = srvTaskRespVO.getSrvDate(); String srvPlanTime = srvTaskRespVO.getSrvDate();
Date date = DateUtils.strToDate(srvPlanTime); Date date = DateUtils.strToDate(srvPlanTime);
String srvOrganId = srvTaskRespVO.getSrvOrganId(); String srvOrganId = srvTaskRespVO.getSrvOrganId();
Long itemId = srvTaskRespVO.getItemId(); String itemId = srvTaskRespVO.getItemId();
log.info("AccountServiceImpl====accountReturn===taskDetailId:{},disabInfoId:{},srvPlanTime:{},itemId:{}",taskDetailId,disabInfoId,srvPlanTime,itemId); log.info("AccountServiceImpl====accountReturn===taskDetailId:{},disabInfoId:{},srvPlanTime:{},itemId:{}", taskDetailId, disabInfoId, srvPlanTime, itemId);
ChDisabDetailAccounts chDisabDetailAccounts = chDisabAccountsDetailMapper.queryDisabDetailAccounts(String.valueOf(srvOrganId), DateUtils.dateToStrYm(date), disabInfoId, srvModeName); ChDisabDetailAccounts chDisabDetailAccounts = chDisabAccountsDetailMapper.queryDisabDetailAccounts(String.valueOf(srvOrganId), DateUtils.dateToStrYm(date), disabInfoId, srvModeName);
Short status = chDisabDetailAccounts.getStatus(); Short status = chDisabDetailAccounts.getStatus();
if(status != 0){ if (status != 0) {
return Result.failed("此任务已提交申报,不可再操作,请联系管理员"); return Result.failed("此任务已提交申报,不可再操作,请联系管理员");
} }
// 删除 chSrvTaskFinishItemStream // 删除 chSrvTaskFinishItemStream
...@@ -1159,21 +1249,24 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis ...@@ -1159,21 +1249,24 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
.eq(ChSrvTaskFinishItem::getTaskDetailId, taskDetailId) .eq(ChSrvTaskFinishItem::getTaskDetailId, taskDetailId)
.eq(ChSrvTaskFinishItem::getItemId, itemId); .eq(ChSrvTaskFinishItem::getItemId, itemId);
int delete = chSrvTaskFinishItemMapper.delete(chSrvTaskFinishItem); int delete = chSrvTaskFinishItemMapper.delete(chSrvTaskFinishItem);
LambdaQueryWrapper<ChSrvPlan> queryWrapper= new LambdaQueryWrapper<>(); LambdaQueryWrapper<ChSrvPlan> queryWrapper = new LambdaQueryWrapper<>();
queryWrapper.eq(ChSrvPlan::getTaskDetailId,taskDetailId); // 一个失能人员对应多个护理人员的情况,需要用时间统计
//queryWrapper.eq(ChSrvPlan::getTaskDetailId,taskDetailId);
queryWrapper.eq(ChSrvPlan::getSrvPlanTime, date);
queryWrapper.eq(ChSrvPlan::getDisabInfoId, disabInfoId);
queryWrapper.eq(ChSrvPlan::getIsStatus, (short) 4); queryWrapper.eq(ChSrvPlan::getIsStatus, (short) 4);
List<ChSrvPlan> srvPlanList = chSrvPlanMapper.selectList(queryWrapper); List<ChSrvPlan> srvPlanList = chSrvPlanMapper.selectList(queryWrapper);
int size = srvPlanList.size(); int size = srvPlanList.size();
log.info("accountReturn===paln===size:{}",size); log.info("accountReturn===paln===size:{}", size);
// 大于1说明还有已完成的任务,不退回,只更新状态 等于1结算退回费用 // 大于1说明还有已完成的任务,不退回,只更新状态 等于1结算退回费用
try {
ChSrvPlan chSrvPlan = new ChSrvPlan(); ChSrvPlan chSrvPlan = new ChSrvPlan();
chSrvPlan.setIsStatus(0L); chSrvPlan.setIsStatus(0L);
chSrvPlan.setIsBill(0L); chSrvPlan.setIsBill(0L);
chSrvPlan.setLcd(new Date()); chSrvPlan.setLcd(new Date());
chSrvPlan.setPlanID(srvTaskRespVO.getPlanId()); chSrvPlan.setPlanID(Long.valueOf(srvTaskRespVO.getPlanId()));
chSrvPlanMapper.updateById(chSrvPlan); chSrvPlanMapper.updateById(chSrvPlan);
if(size == 1){ if (size == 1) {
BigDecimal accountsAllCost = chDisabDetailAccounts.getAccountsAllCost(); BigDecimal accountsAllCost = chDisabDetailAccounts.getAccountsAllCost();
if (accountsAllCost.compareTo(BigDecimal.ZERO) == 0) { if (accountsAllCost.compareTo(BigDecimal.ZERO) == 0) {
return Result.success("当前费用为0,不再进行费用退回"); return Result.success("当前费用为0,不再进行费用退回");
...@@ -1181,7 +1274,7 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis ...@@ -1181,7 +1274,7 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
BigDecimal accountsOverallCost = chDisabDetailAccounts.getAccountsOverallCost(); BigDecimal accountsOverallCost = chDisabDetailAccounts.getAccountsOverallCost();
BigDecimal accountsPersonalCost = chDisabDetailAccounts.getAccountsPersonalCost(); BigDecimal accountsPersonalCost = chDisabDetailAccounts.getAccountsPersonalCost();
BigDecimal allCost = new BigDecimal(0); BigDecimal allCost = new BigDecimal(0);
BigDecimal overCost= new BigDecimal(0); BigDecimal overCost = new BigDecimal(0);
BigDecimal personCost = new BigDecimal(0); BigDecimal personCost = new BigDecimal(0);
if ("养老".equals(srvModeName)) { if ("养老".equals(srvModeName)) {
allCost = BigDecimal.valueOf(50); allCost = BigDecimal.valueOf(50);
...@@ -1213,8 +1306,23 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis ...@@ -1213,8 +1306,23 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
ChSrvTaskDetail ca = new ChSrvTaskDetail(); ChSrvTaskDetail ca = new ChSrvTaskDetail();
ca.setStatus((short) 0); ca.setStatus((short) 0);
ca.setTaskDetailId(Long.valueOf(taskDetailId)); ca.setTaskDetailId(Long.valueOf(taskDetailId));
ca.setLcd(new Date());
chSrvTaskDetailMapper.updateById(ca); chSrvTaskDetailMapper.updateById(ca);
}
return Result.success();
}
@Override
@Transactional(rollbackFor = Exception.class)
public Result batchAccountReturn(List<AccountTaskExecuteReqVO> srvTaskListRespVO){
try {
for (AccountTaskExecuteReqVO srvTaskRespVO : srvTaskListRespVO) {
Result result = accountReturnHandler(srvTaskRespVO);
if(!ResultCode.SUCCESS.getCode().equals(result.getCode())){
return result;
}
} }
} catch (Exception e) { } catch (Exception e) {
log.error("==============accountReturn error:{}",e); log.error("==============accountReturn error:{}",e);
...@@ -1224,3 +1332,5 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis ...@@ -1224,3 +1332,5 @@ public class AccountServiceImpl extends ServiceImpl<ChDisabAccountsMapper, ChDis
} }
} }
...@@ -15,12 +15,14 @@ ...@@ -15,12 +15,14 @@
o.SRV_ORGAN_NAME srvOrganName, o.SRV_ORGAN_NAME srvOrganName,
o.SRV_ORGAN_ID srvOrganId, o.SRV_ORGAN_ID srvOrganId,
info.REAL_NAME realName, info.REAL_NAME realName,
info.CERTI_CODE certiCode,
info.DISAB_INFO_ID disabInfoId, info.DISAB_INFO_ID disabInfoId,
d.DEDUCTION_AMOUNT deductionAmount, d.DEDUCTION_AMOUNT deductionAmount,
d.REISSUE_AMOUNT reissueAmount, d.REISSUE_AMOUNT reissueAmount,
d.ACCOUNTS_DETAIL_ID accountsDetailId, d.ACCOUNTS_DETAIL_ID accountsDetailId,
d.STATUS, d.STATUS,
d.ACCOUNTS_ID accountsId d.ACCOUNTS_ID accountsId,
o.LEVEL_CODE levelCode
from CH_DISAB_ACCOUNTS_DETAIL d from CH_DISAB_ACCOUNTS_DETAIL d
left join CH_DISABLE_INFO info on d.DISAB_INFO_ID = info.DISAB_INFO_ID left join CH_DISABLE_INFO info on d.DISAB_INFO_ID = info.DISAB_INFO_ID
left join CH_DISABLE_APPLY apply on info.APPLY_ID=apply.APPLY_ID left join CH_DISABLE_APPLY apply on info.APPLY_ID=apply.APPLY_ID
...@@ -64,6 +66,62 @@ ...@@ -64,6 +66,62 @@
order by info.DISAB_INFO_ID order by info.DISAB_INFO_ID
</select> </select>
<select id="queryAccountsDeclareExport" resultType="com.hungraim.ltc.pojo.vo.account.AccountDeclareExportResp">
select
d.MODE_NAME modeName,
to_char(d.ACCOUNTS_START_TIME,'yyyy-MM-dd') accountsStartTime,
to_char(d.ACCOUNTS_END_TIME,'yyyy-MM-dd') accountsEndTime,
to_char(d.ACCOUNTS_TIME,'yyyy-MM') accountsTime,
d.ACCOUNTS_ALL_COST accountsAllCost,
d.ACCOUNTS_OVERALL_COST accountsOverallCost,
d.ACCOUNTS_PERSONAL_COST accountsPersonalCost,
d.TASK_DETAIL_ID taskDetailId,
(select district_name from ch_fnd_district dis where apply.MEDICAL_AREA = dis.district_code) medicalArea,
o.SRV_ORGAN_NAME srvOrganName,
o.SRV_ORGAN_ID srvOrganId,
info.REAL_NAME realName,
info.DISAB_INFO_ID disabInfoId,
d.DEDUCTION_AMOUNT deductionAmount,
d.REISSUE_AMOUNT reissueAmount,
d.ACCOUNTS_DETAIL_ID accountsDetailId,
DECODE(d.STATUS, '0','未申报','1', '已申报','2','已暂缓') status,
d.ACCOUNTS_ID accountsId
from CH_DISAB_ACCOUNTS_DETAIL d
left join CH_DISABLE_INFO info on d.DISAB_INFO_ID = info.DISAB_INFO_ID
left join CH_DISABLE_APPLY apply on info.APPLY_ID=apply.APPLY_ID
left join CH_SRV_ORGAN o on d.SRV_ORGAN_ID = o.SRV_ORGAN_ID
<where>
d.mode_name <![CDATA[ <>]]> '异地'
<if test="modeId != null and modeId != ''">
and DECODE(d.mode_name, '医疗','1','养老', '2','上门','3', '异地', '4') = #{modeId}
</if>
<if test="accountsStatus != null and accountsStatus != ''">
and d.status = #{accountsStatus}
</if>
<if test="realName != null and realName != ''">
AND info.real_name LIKE CONCAT('%',CONCAT(#{realName},'%'))
</if>
<if test="srvOrganId != null and srvOrganId != '' and srvOrganId!=0">
and d.SRV_ORGAN_ID = #{srvOrganId}
</if>
<if test="accountsTime != null and accountsTime != ''">
AND to_char(d.ACCOUNTS_TIME,'yyyy-MM') = #{accountsTime}
</if>
<if test='accountsStatusList != null and accountsStatusList.size()>0'>
AND d.status IN
<foreach collection="accountsStatusList" open="(" close=")" item="accountsStatusList" separator=",">
#{accountsStatusList}
</foreach>
</if>
</where>
order by info.DISAB_INFO_ID
</select>
<select id="queryNursingRecords" resultType="com.hungraim.ltc.pojo.entity.account.NursingRecordsRespVO"> <select id="queryNursingRecords" resultType="com.hungraim.ltc.pojo.entity.account.NursingRecordsRespVO">
select organ.SRV_ORGAN_NAME srvOrganName, select organ.SRV_ORGAN_NAME srvOrganName,
to_char(plan.SRV_PLAN_TIME,'yyyy-MM-dd') srvPlanTime, to_char(plan.SRV_PLAN_TIME,'yyyy-MM-dd') srvPlanTime,
......
...@@ -47,7 +47,8 @@ ...@@ -47,7 +47,8 @@
to_char(t1.SVR_END_TIME,'yyyy-MM-dd') svrEndTime, to_char(t1.SVR_END_TIME,'yyyy-MM-dd') svrEndTime,
t1.TOTAL_ALLOCATED_EXPENSES totalAllocatedExpenses, t1.TOTAL_ALLOCATED_EXPENSES totalAllocatedExpenses,
t1.REISSUE_AMOUNT_TOTAL reissueAmountTotal, t1.REISSUE_AMOUNT_TOTAL reissueAmountTotal,
t1.DEDUCTION_AMOUNT_TOTAL deductionAmountTotal t1.DEDUCTION_AMOUNT_TOTAL deductionAmountTotal,
(select count(1) from CH_DISAB_ACCOUNTS_DETAIL d where d.ACCOUNTS_ID =t1.ACCOUNTS_ID and d.STATUS = 1) personDay
FROM FROM
CH_DISAB_ACCOUNTS t1 CH_DISAB_ACCOUNTS t1
LEFT JOIN CH_SRV_ORGAN t2 ON t1.SRV_ORGAN_ID = t2.SRV_ORGAN_ID LEFT JOIN CH_SRV_ORGAN t2 ON t1.SRV_ORGAN_ID = t2.SRV_ORGAN_ID
......
...@@ -48,5 +48,14 @@ ...@@ -48,5 +48,14 @@
<select id="selectByAccountsId" resultType="java.lang.String">
select f.real_name||':'||i.REMARKS from CH_DISAB_FREE_RD_INFO i left join CH_DISAB_ACCOUNTS_DETAIL d on
i.ACCOUNTS_DETAIL_ID = d.ACCOUNTS_DETAIL_ID left join CH_DISABLE_INFO f
on d.DISAB_INFO_ID = f.DISAB_INFO_ID
where i.ACCOUNTS_ID = #{accountsId} and
i.DEAL_TYPE = #{dealType}
</select>
</mapper> </mapper>
\ No newline at end of file
...@@ -45,7 +45,7 @@ public class OrganServiceImpl implements OrganService { ...@@ -45,7 +45,7 @@ public class OrganServiceImpl implements OrganService {
List<Long> organIds = new ArrayList<>(); List<Long> organIds = new ArrayList<>();
if (organId != null && organId != 0) { if (organId != null && organId != 0) {
organIds.add(organId); organIds.add(organId);
if (isInvolveChild) { if (isInvolveChild!=null && isInvolveChild) {
getOrganList(organId, organIds); getOrganList(organId, organIds);
} }
} }
......
...@@ -53,6 +53,8 @@ public class ChDisabDetailAccountsResp implements Serializable { ...@@ -53,6 +53,8 @@ public class ChDisabDetailAccountsResp implements Serializable {
private String realName; private String realName;
private String certiCode;
private String taskDetailId; private String taskDetailId;
private String deductionAmount; private String deductionAmount;
...@@ -67,5 +69,18 @@ public class ChDisabDetailAccountsResp implements Serializable { ...@@ -67,5 +69,18 @@ public class ChDisabDetailAccountsResp implements Serializable {
private Integer status; private Integer status;
// 可报金额
private String reportableAmount;
// 机构应得
private String institutionsDeserve;
// 个人应得
private String personalDeserve;
private String levelCode;
private static final long serialVersionUID = 1L; private static final long serialVersionUID = 1L;
} }
\ No newline at end of file
package com.hungraim.ltc.pojo.vo.account;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
/**
* @author zwl
* @ClassName AccountDeclareExportResp
* @description 基金申报导出
* @date 2023/7/19 17:04
**/
@Data
public class AccountDeclareExportResp {
@Excel(name = "统筹区",width = 20)
private String medicalArea;
@Excel(name = "账单月份",width = 20)
private String accountsTime;
@Excel(name = "失能人员",width = 20)
private String realName;
/**
* 护理机构名称
*/
@Excel(name = "护理机构名称",width = 20)
private String srvOrganName;
/**
* 护理机构名称
*/
@Excel(name = "服务方式",width = 20)
private String modeName;
/**
* 总费用
*/
@Excel(name = "总费用合计",width = 20)
private String accountsAllCost;
/**
* 统筹费用
*/
@Excel(name = "统筹支出合计",width = 20)
private String accountsOverallCost;
/**
* 个人支付
*/
@Excel(name = "自付合计",width = 20)
private String accountsPersonalCost;
@Excel(name = "申报状态")
private String status;
}
...@@ -7,6 +7,7 @@ import org.springframework.format.annotation.DateTimeFormat; ...@@ -7,6 +7,7 @@ import org.springframework.format.annotation.DateTimeFormat;
import java.math.BigDecimal; import java.math.BigDecimal;
import java.util.Date; import java.util.Date;
import java.util.List;
@Data @Data
public class SrvOrganAccountListResp { public class SrvOrganAccountListResp {
...@@ -97,5 +98,20 @@ public class SrvOrganAccountListResp { ...@@ -97,5 +98,20 @@ public class SrvOrganAccountListResp {
*/ */
private String reviewRemark; private String reviewRemark;
/**
*人次/人天
*/
private String personDay;
/**
*扣费原因
*/
private List<String> deductionReason;
/**
*补费原因
*/
private List<String> reissueReason;
} }
...@@ -964,6 +964,14 @@ public class DateUtils { ...@@ -964,6 +964,14 @@ public class DateUtils {
return day.equals(nowDay); return day.equals(nowDay);
} }
public static int getDaysOfMonth(Date date) {
Calendar calendar = Calendar.getInstance();
calendar.setTime(date);
return calendar.getActualMaximum(Calendar.DAY_OF_MONTH);
}
public static void main(String[] args) {
System.out.println(getDaysOfMonth(new Date()));
}
} }
...@@ -52,7 +52,7 @@ public class ResourceServerConfig { ...@@ -52,7 +52,7 @@ public class ResourceServerConfig {
.jwtAuthenticationConverter(jwtAuthenticationConverter()); .jwtAuthenticationConverter(jwtAuthenticationConverter());
http.authorizeExchange() http.authorizeExchange()
.pathMatchers("/api/oauth/token","/api.system/role/getRoleResource", .pathMatchers("/api/oauth/token","/api.system/role/getRoleResource",
"/api.system/resource/getManinMenu","/oauth/*","/api/oauth/genKeyPair","/api.system/user/updatePassword").permitAll() "/api.system/resource/getManinMenu","/oauth/*","/api/oauth/genKeyPair","/api.system/user/updatePassword","/api.governance/nursing/*").permitAll()
.anyExchange().access(authorizationManager) .anyExchange().access(authorizationManager)
.and() .and()
.exceptionHandling() .exceptionHandling()
......
...@@ -367,8 +367,12 @@ public class BuildBedController { ...@@ -367,8 +367,12 @@ public class BuildBedController {
* @return * @return
*/ */
@GetMapping("/chSrvTaskDetailQuery") @GetMapping("/chSrvTaskDetailQuery")
public Result chSrvTaskDetailQuery(ChSrvTaskDetailVo vo) throws ParseException { public Result chSrvTaskDetailQuery(@RequestHeader("Authorization") String token,ChSrvTaskDetailVo vo) throws ParseException {
Page<ChSrvTaskDetailVo> page = new Page<>(vo.getPageNum(), vo.getPageSize()); Page<ChSrvTaskDetailVo> page = new Page<>(vo.getPageNum(), vo.getPageSize());
Integer srvOrganId = TokenParsingUtil.TokenParsing(token, "srvOrganId");
if(srvOrganId != null) {
vo.setSrvOrganId(String.valueOf(srvOrganId));
}
page = buildBedService.chSrvTaskDetailQuery(page,vo); page = buildBedService.chSrvTaskDetailQuery(page,vo);
if(page.getSize()>0){ if(page.getSize()>0){
return Result.success(page); return Result.success(page);
......
...@@ -46,6 +46,10 @@ ...@@ -46,6 +46,10 @@
<if test="vo.srvOrganName != null and vo.srvOrganName != ''"> <if test="vo.srvOrganName != null and vo.srvOrganName != ''">
AND organ.SRV_ORGAN_NAME LIKE '%' || #{vo.srvOrganName} || '%' AND organ.SRV_ORGAN_NAME LIKE '%' || #{vo.srvOrganName} || '%'
</if> </if>
<if test="vo.srvOrganId != null and vo.srvOrganId != '' and vo.srvOrganId!=0">
and organ.SRV_ORGAN_ID = #{vo.srvOrganId}
</if>
<if test="vo.modeName != null and vo.modeName != ''"> <if test="vo.modeName != null and vo.modeName != ''">
AND mode1.MODE_NAME = #{vo.modeName} AND mode1.MODE_NAME = #{vo.modeName}
</if> </if>
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment