JAVA全系列 教程
3762个小节阅读:7094.9k
目录
C语言快速入门
JAVA全系列 教程
面向对象的程序设计语言
Python全系列 教程
Python3.x版本,未来主流的版本
人工智能 教程
顺势而为,AI创新未来
大厂算法 教程
算法,程序员自我提升必经之路
C++ 教程
一门通用计算机编程语言
微服务 教程
目前业界流行的框架组合
web前端全系列 教程
通向WEB技术世界的钥匙
大数据全系列 教程
站在云端操控万千数据
AIGC全能工具班
A A
White Night
参数名称 | 是否必须 |
---|---|
regId | 是 |
返回JSON数据
名称 | 类型 | 其他信息 |
---|---|---|
msg | String | |
code | int |
创建CareOrderDto、CareOrderItemDto、CareOrderFormDto
修改CareService,增加相关方法
xxxxxxxxxx
/**
* 保存处方及详情信息
* @param careOrderFormDto
* @return
*/
int saveCareOrderItem(CareOrderFormDto careOrderFormDto);
/**
* 根据处方详情ID查询处方详情数据
* @param itemId
* @return
*/
CareOrderItem queryCareOrderItemByItemId(String itemId);
/**
* 根据详情ID删除详情信息
* @param itemId
* @return
*/
int deleteCareOrderItemByItemId(String itemId);
修改CareServiceImpl
xxxxxxxxxx
@Override
public int saveCareOrderItem(CareOrderFormDto careOrderFormDto) {
CareOrderDto careOrderDto = careOrderFormDto.getCareOrder();
CareOrder careOrder=new CareOrder();
BeanUtil.copyProperties(careOrderDto,careOrder);
careOrder.setCreateBy(careOrderDto.getSimpleUser().getUserName());
careOrder.setCreateTime(DateUtil.date());
int i=this.careOrderMapper.insert(careOrder);//保存处方主表
List<CareOrderItemDto> careOrderItems = careOrderFormDto.getCareOrderItems();
//保存详情数据
for (CareOrderItemDto careOrderItemDto : careOrderItems) {
CareOrderItem careOrderItem=new CareOrderItem();
BeanUtil.copyProperties(careOrderItemDto,careOrderItem);
careOrderItem.setCoId(careOrder.getCoId());
careOrderItem.setCreateTime(DateUtil.date());
careOrderItem.setStatus(Constants.ORDER_DETAILS_STATUS_0);//未支付
careOrderItem.setItemId(IdGeneratorSnowflake.generatorIdWithProfix(Constants.ID_PROFIX_ITEM));
this.careOrderItemMapper.insert(careOrderItem);
}
return i;
}
@Override
public CareOrderItem queryCareOrderItemByItemId(String itemId) {
return this.careOrderItemMapper.selectById(itemId);
}
@Override
public int deleteCareOrderItemByItemId(String itemId) {
//注意点,如果删除了,要更新careOrder主表的all_amount
CareOrderItem careOrderItem=this.careOrderItemMapper.selectById(itemId);
String coId=careOrderItem.getCoId();//取出主表ID
//删除
int i=this.careOrderItemMapper.deleteById(itemId);
//再根据coID查询还存在的详情数据
QueryWrapper<CareOrderItem> qw=new QueryWrapper<>();
qw.eq(CareOrderItem.COL_CO_ID,coId);
List<CareOrderItem> careOrderItems=this.careOrderItemMapper.selectList(qw);
if(careOrderItems!=null&&careOrderItems.size()>0){
//重新计算总价格
BigDecimal allAmount=new BigDecimal("0");
for (CareOrderItem orderItem : careOrderItems) {
allAmount=allAmount.add(orderItem.getAmount());
}
//再根据coId查询主表的数据
CareOrder careOrder=this.careOrderMapper.selectById(coId);
//更新主表的数据
careOrder.setAllAmount(allAmount);
this.careOrderMapper.updateById(careOrder);
}else{
//说明没有详情了,直接干掉主表里面的数据
this.careOrderMapper.deleteById(coId);
}
return i;
}
修改CareController
xxxxxxxxxx
/**
* 保存处方及详情信息
*/
@PostMapping("saveCareOrderItem")
public AjaxResult saveCareOrderItem(@RequestBody @Validated CareOrderFormDto careOrderFormDto){
//根据病例ID查询病历信息
CareHistory careHistory=this.careService.queryCareHistoryByChId(careOrderFormDto.getCareOrder().getChId());
if(null==careHistory){
return AjaxResult.fail("病历ID不存在,请核对后再提交");
}
careOrderFormDto.getCareOrder().setCoId(IdGeneratorSnowflake.generatorIdWithProfix(Constants.ID_PROFIX_CO));
careOrderFormDto.getCareOrder().setPatientId(careHistory.getPatientId());
careOrderFormDto.getCareOrder().setPatientName(careHistory.getPatientName());
careOrderFormDto.getCareOrder().setUserId(ShiroSecurityUtils.getCurrentUser().getUserId());
careOrderFormDto.getCareOrder().setSimpleUser(ShiroSecurityUtils.getCurrentSimpleUser());
return AjaxResult.toAjax(this.careService.saveCareOrderItem(careOrderFormDto));
}
/**
* 根据处方详情ID删除处方详情【只能删除未支付的】
*/
@DeleteMapping("deleteCareOrderItemById/{itemId}")
public AjaxResult deleteCareOrderItemById(@PathVariable String itemId){
CareOrderItem careOrderItem=this.careService.queryCareOrderItemByItemId(itemId);
if(null==careOrderItem){
return AjaxResult.fail("处方详情ID不存在");
}
if(!careOrderItem.getStatus().equals(Constants.ORDER_DETAILS_STATUS_0)){
return AjaxResult.fail("【"+itemId+"】不是未支付状态,不能删除");
}
return AjaxResult.toAjax(this.careService.deleteCareOrderItemByItemId(itemId));
}
/**
*完成就诊
*/
@PostMapping("visitComplete/{regId}")
public AjaxResult visitComplete(@PathVariable String regId){
Registration registration=this.registrationService.queryRegistrationByRegId(regId);
if(null==registration){
return AjaxResult.fail("【"+regId+"】挂号单号不存在,请核对后再提交");
}
if(!registration.getRegStatus().equals(Constants.REG_STATUS_2)){
return AjaxResult.fail("【"+regId+"】状态不是就诊中状态,不能完成就诊");
}
//更改挂号单的状态
return AjaxResult.toAjax(this.careService.visitComplete(regId));
}
完成就诊/doctor/care/visitComplete/{regId}