todo:营养餐
This commit is contained in:
parent
a8a1b53794
commit
c6f2967e70
@ -15,6 +15,7 @@ import com.ruoyi.system.fantang.service.IFtFoodDemandDaoService;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.security.access.prepost.PreAuthorize;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.*;
|
||||
|
||||
import java.util.Arrays;
|
||||
@ -76,40 +77,14 @@ public class FtCateringDaoController extends BaseController {
|
||||
@PreAuthorize("@ss.hasPermi('fantang:catering:add')")
|
||||
@Log(title = "配餐功能", businessType = BusinessType.INSERT)
|
||||
@PostMapping
|
||||
@Transactional
|
||||
public AjaxResult add(@RequestBody FtCateringDao ftCateringDao) {
|
||||
List<Integer> types = ftCateringDao.getTypes();
|
||||
for (Integer type : types) {
|
||||
Long patientId = ftCateringDao.getPatientId();
|
||||
FtCateringDao ftCatering = new FtCateringDao();
|
||||
ftCatering.setPatientId(patientId);
|
||||
ftCatering.setNumber(ftCateringDao.getNumber());
|
||||
ftCatering.setFrequency(ftCateringDao.getFrequency());
|
||||
ftCatering.setCateringUsage(ftCateringDao.getCateringUsage());
|
||||
ftCatering.setFlag(true);
|
||||
ftCatering.setCreateAt(new Date());
|
||||
ftCatering.setType(type);
|
||||
iFtCateringDaoService.save(ftCatering);
|
||||
|
||||
// 如果属于加餐,新增一条病患配餐记录,否则修改
|
||||
if (type == 4) {
|
||||
FtFoodDemandDao foodDemandDao = new FtFoodDemandDao();
|
||||
foodDemandDao.setPatientId(patientId);
|
||||
foodDemandDao.setType(type);
|
||||
foodDemandDao.setNutritionFoodId(ftCateringDao.getNumber());
|
||||
foodDemandDao.setCreateAt(new Date());
|
||||
foodDemandDao.setNutritionFoodFlag(0);
|
||||
iFtFoodDemandDaoService.save(foodDemandDao);
|
||||
} else {
|
||||
QueryWrapper<FtFoodDemandDao> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("patient_id", patientId);
|
||||
wrapper.eq("type", type);
|
||||
FtFoodDemandDao foodDemandDao = iFtFoodDemandDaoService.getOne(wrapper);
|
||||
foodDemandDao.setNutritionFoodId(ftCateringDao.getNumber());
|
||||
foodDemandDao.setUpdateAt(new Date());
|
||||
foodDemandDao.setNutritionFoodFlag(0);
|
||||
iFtFoodDemandDaoService.updateById(foodDemandDao);
|
||||
}
|
||||
}
|
||||
// 添加一个病人新增 4 条营养配餐记录
|
||||
List<FtCateringDao> ftCateringList = iFtCateringDaoService.addNutritionCatering(ftCateringDao);
|
||||
|
||||
// 更新病人报餐配置表
|
||||
iFtFoodDemandDaoService.updateDayFoodDemand(ftCateringList);
|
||||
|
||||
return AjaxResult.success("新增成功");
|
||||
}
|
||||
@ -125,6 +100,7 @@ public class FtCateringDaoController extends BaseController {
|
||||
Long patientId = ftCateringDao.getPatientId();
|
||||
Integer type = ftCateringDao.getType();
|
||||
Long number = ftCateringDao.getNumber();
|
||||
Boolean flag = ftCateringDao.getFlag();
|
||||
|
||||
QueryWrapper<FtFoodDemandDao> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("patient_id", patientId);
|
||||
@ -132,6 +108,7 @@ public class FtCateringDaoController extends BaseController {
|
||||
FtFoodDemandDao foodDemandDao = iFtFoodDemandDaoService.getOne(wrapper);
|
||||
foodDemandDao.setNutritionFoodId(number);
|
||||
foodDemandDao.setUpdateAt(new Date());
|
||||
foodDemandDao.setNutritionFoodFlag(flag);
|
||||
iFtFoodDemandDaoService.updateById(foodDemandDao);
|
||||
|
||||
return toAjax(iFtCateringDaoService.updateById(ftCateringDao) ? 1 : 0);
|
||||
@ -144,6 +121,46 @@ public class FtCateringDaoController extends BaseController {
|
||||
@Log(title = "配餐功能", businessType = BusinessType.DELETE)
|
||||
@DeleteMapping("/{ids}")
|
||||
public AjaxResult remove(@PathVariable Long[] ids) {
|
||||
return toAjax(iFtCateringDaoService.removeByIds(Arrays.asList(ids)) ? 1 : 0);
|
||||
return AjaxResult.success(iFtCateringDaoService.deleteByPatientId(ids));
|
||||
}
|
||||
|
||||
/**
|
||||
* 作废营养配餐数据
|
||||
*/
|
||||
@PutMapping("/cancel/{ids}")
|
||||
@Transactional
|
||||
public AjaxResult cancel(@PathVariable Long[] ids) {
|
||||
System.out.println(Arrays.toString(ids));
|
||||
|
||||
// 根据病人 id 修改营养配餐启用标志
|
||||
iFtCateringDaoService.cancelByPatientId(ids);
|
||||
|
||||
// 根据病人 id 修改报餐配置表营养餐启用标志
|
||||
iFtFoodDemandDaoService.cancelNutritionByPatientId(ids);
|
||||
|
||||
return AjaxResult.success("已作废");
|
||||
}
|
||||
|
||||
/**
|
||||
* 根据病人 id 查找营养配餐数据
|
||||
*/
|
||||
@GetMapping("/getByPatient/{patientId}")
|
||||
public AjaxResult getByPatient(@PathVariable Long patientId) {
|
||||
QueryWrapper<FtCateringDao> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("patient_id", patientId);
|
||||
wrapper.eq("type", 1);
|
||||
return AjaxResult.success(iFtCateringDaoService.getOne(wrapper));
|
||||
}
|
||||
|
||||
/**
|
||||
* 拷贝并新增
|
||||
*/
|
||||
@PostMapping("/copyAndAdd")
|
||||
public AjaxResult copyAndAdd(@RequestBody FtCateringDao ftCateringDao) {
|
||||
|
||||
System.out.println(ftCateringDao);
|
||||
|
||||
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
@ -44,14 +44,11 @@ public class FtReportMealsDaoController extends BaseController {
|
||||
@GetMapping("/getLastSettlementDate/{patientId}")
|
||||
public AjaxResult getLastSettlementDate(@PathVariable("patientId") Long patientId) {
|
||||
|
||||
QueryWrapper<FtReportMealsDao> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("patient_id", patientId);
|
||||
wrapper.eq("settlement_flag", 1);
|
||||
wrapper.orderByDesc("settlement_at");
|
||||
wrapper.last("limit 1");
|
||||
FtReportMealsDao ftReportMealsDao = iFtReportMealsDaoService.getOne(wrapper);
|
||||
Date createAt = ftReportMealsDao.getCreateAt();
|
||||
Date settlementAt = ftReportMealsDao.getSettlementAt();
|
||||
// 获取最近一次已结算的报餐记录,如果首次结算则返回
|
||||
FtReportMealsDao reportMealsDao = iFtReportMealsDaoService.getLastReportMeals(patientId);
|
||||
|
||||
Date createAt = reportMealsDao.getCreateAt();
|
||||
Date settlementAt = reportMealsDao.getSettlementAt();
|
||||
ReportMealsDayEntity reportMealsDayEntity = new ReportMealsDayEntity();
|
||||
if (settlementAt == null) {
|
||||
long betweenDays = DateUtil.between(createAt, new Date(), DateUnit.DAY);
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.ruoyi.system.fantang.domain;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableField;
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
@ -12,6 +13,7 @@ import lombok.ToString;
|
||||
import lombok.experimental.Accessors;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 配餐功能对象 ft_catering
|
||||
@ -41,6 +43,12 @@ public class FtCateringDao extends FtCateringVo {
|
||||
*/
|
||||
private Long patientId;
|
||||
|
||||
/**
|
||||
* 病人 ids
|
||||
*/
|
||||
@TableField(exist = false)
|
||||
private List<Long> patientIds;
|
||||
|
||||
/**
|
||||
* 正餐类型
|
||||
*/
|
||||
|
@ -125,7 +125,7 @@ public class FtFoodDemandDao extends BasePatient implements Serializable {
|
||||
/**
|
||||
* 营养餐标志
|
||||
**/
|
||||
private Integer nutritionFoodFlag;
|
||||
private Boolean nutritionFoodFlag;
|
||||
|
||||
/**
|
||||
* 营养餐名
|
||||
|
@ -16,4 +16,10 @@ public interface IFtCateringDaoService extends IService<FtCateringDao> {
|
||||
List<FtCateringDao> listNewFormatter(FtCateringDao ftCateringDao);
|
||||
|
||||
FtCateringDao getByIdNewFormatter(Long id);
|
||||
|
||||
List<FtCateringDao> addNutritionCatering(FtCateringDao ftCateringDao);
|
||||
|
||||
Integer deleteByPatientId(Long[] ids);
|
||||
|
||||
Integer cancelByPatientId(Long[] ids);
|
||||
}
|
||||
|
@ -1,6 +1,7 @@
|
||||
package com.ruoyi.system.fantang.service;
|
||||
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import com.ruoyi.system.fantang.domain.FtCateringDao;
|
||||
import com.ruoyi.system.fantang.domain.FtFoodDemandDao;
|
||||
import com.ruoyi.system.fantang.domain.FtOrderDao;
|
||||
import com.ruoyi.system.fantang.domain.FtReportMealsDao;
|
||||
@ -30,4 +31,8 @@ public interface IFtFoodDemandDaoService extends IService<FtFoodDemandDao> {
|
||||
List<FtOrderDao> getStatisticsOfMonth(Date day);
|
||||
|
||||
List<FtReportMealsDao> getStatisticsFoodDemand();
|
||||
|
||||
Integer updateDayFoodDemand(List<FtCateringDao> ftCateringList);
|
||||
|
||||
Integer cancelNutritionByPatientId(Long[] ids);
|
||||
}
|
||||
|
@ -31,5 +31,7 @@ public interface IFtReportMealsDaoService extends IService<FtReportMealsDao> {
|
||||
Integer settleMeals(Long settlementId, Long patientId, String lastBillingDate, String selectBillingDate);
|
||||
|
||||
ReportMealsPriceEntity sumTotalPrice(Long patientId, Date lastBillingDate, Date selectBillingDate);
|
||||
|
||||
FtReportMealsDao getLastReportMeals(Long patientId);
|
||||
}
|
||||
|
||||
|
@ -1,11 +1,15 @@
|
||||
package com.ruoyi.system.fantang.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.system.fantang.domain.FtCateringDao;
|
||||
import com.ruoyi.system.fantang.mapper.FtCateringDaoMapper;
|
||||
import com.ruoyi.system.fantang.service.IFtCateringDaoService;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
@ -26,4 +30,73 @@ public class FtCateringDaoServiceImpl extends ServiceImpl<FtCateringDaoMapper, F
|
||||
public FtCateringDao getByIdNewFormatter(Long id) {
|
||||
return this.baseMapper.getByIdNewFormatter(id);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FtCateringDao> addNutritionCatering(FtCateringDao ftCateringDao) {
|
||||
|
||||
List<FtCateringDao> list = new ArrayList<>();
|
||||
|
||||
List<Integer> types = ftCateringDao.getTypes();
|
||||
|
||||
List<Long> patientIds = ftCateringDao.getPatientIds();
|
||||
|
||||
for (Long patientId : patientIds) {
|
||||
|
||||
for (int i = 1; i < 5; i++) {
|
||||
FtCateringDao cateringDao = new FtCateringDao();
|
||||
cateringDao.setPatientId(patientId);
|
||||
cateringDao.setNumber(ftCateringDao.getNumber());
|
||||
cateringDao.setFrequency(ftCateringDao.getFrequency());
|
||||
cateringDao.setCateringUsage(ftCateringDao.getCateringUsage());
|
||||
cateringDao.setCreateAt(new Date());
|
||||
cateringDao.setType(i);
|
||||
|
||||
for (Integer type : types) {
|
||||
if (i == type) {
|
||||
cateringDao.setFlag(true);
|
||||
break;
|
||||
} else {
|
||||
cateringDao.setFlag(false);
|
||||
}
|
||||
}
|
||||
|
||||
this.baseMapper.insert(cateringDao);
|
||||
list.add(cateringDao);
|
||||
}
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer deleteByPatientId(Long[] ids) {
|
||||
|
||||
int rows = 0;
|
||||
|
||||
for (Long id : ids) {
|
||||
QueryWrapper<FtCateringDao> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("patient_id", id);
|
||||
rows += this.baseMapper.delete(wrapper);
|
||||
}
|
||||
|
||||
return rows;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer cancelByPatientId(Long[] ids) {
|
||||
|
||||
int rows = 0;
|
||||
|
||||
FtCateringDao ftCateringDao = new FtCateringDao();
|
||||
ftCateringDao.setFlag(false);
|
||||
ftCateringDao.setUpdateAt(new Date());
|
||||
|
||||
for (Long id : ids) {
|
||||
UpdateWrapper<FtCateringDao> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("patient_id", id);
|
||||
rows += this.baseMapper.update(ftCateringDao, wrapper);
|
||||
}
|
||||
|
||||
return rows;
|
||||
}
|
||||
}
|
||||
|
@ -1,7 +1,10 @@
|
||||
package com.ruoyi.system.fantang.service.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.system.fantang.domain.FtCateringDao;
|
||||
import com.ruoyi.system.fantang.domain.FtFoodDemandDao;
|
||||
import com.ruoyi.system.fantang.domain.FtOrderDao;
|
||||
import com.ruoyi.system.fantang.domain.FtReportMealsDao;
|
||||
@ -69,4 +72,44 @@ public class FtFoodDemandDaoServiceImpl extends ServiceImpl<FtFoodDemandDaoMappe
|
||||
public List<FtReportMealsDao> getStatisticsFoodDemand() {
|
||||
return this.baseMapper.getStatisticsFoodDemand();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer updateDayFoodDemand(List<FtCateringDao> ftCateringList) {
|
||||
|
||||
int rows = 0;
|
||||
|
||||
Long patientId = ftCateringList.get(0).getPatientId();
|
||||
QueryWrapper<FtFoodDemandDao> wrapper = new QueryWrapper<>();
|
||||
wrapper.eq("patient_id", patientId);
|
||||
wrapper.orderByAsc("type");
|
||||
List<FtFoodDemandDao> foodDemandList = this.baseMapper.selectList(wrapper);
|
||||
|
||||
for (int i = 0; i < 4; i++) {
|
||||
FtFoodDemandDao foodDemand = foodDemandList.get(i);
|
||||
foodDemand.setNutritionFoodId(ftCateringList.get(i).getNumber());
|
||||
foodDemand.setNutritionFoodFlag(ftCateringList.get(i).getFlag());
|
||||
foodDemand.setUpdateAt(new Date());
|
||||
rows += this.baseMapper.updateById(foodDemand);
|
||||
}
|
||||
|
||||
return rows;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Integer cancelNutritionByPatientId(Long[] ids) {
|
||||
|
||||
int rows = 0;
|
||||
|
||||
FtFoodDemandDao foodDemand = new FtFoodDemandDao();
|
||||
foodDemand.setNutritionFoodFlag(false);
|
||||
foodDemand.setUpdateAt(new Date());
|
||||
|
||||
for (Long id : ids) {
|
||||
UpdateWrapper<FtFoodDemandDao> wrapper = new UpdateWrapper<>();
|
||||
wrapper.eq("patient_id", id);
|
||||
rows += this.baseMapper.update(foodDemand, wrapper);
|
||||
}
|
||||
|
||||
return rows;
|
||||
}
|
||||
}
|
||||
|
@ -1,5 +1,6 @@
|
||||
package com.ruoyi.system.fantang.service.impl;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import com.ruoyi.system.fantang.domain.FtReportMealsDao;
|
||||
import com.ruoyi.system.fantang.entity.ReportMealsDayEntity;
|
||||
@ -11,7 +12,6 @@ import com.ruoyi.system.fantang.vo.FtReportMealVo;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@ -70,4 +70,31 @@ public class FtReportMealsDaoServiceImpl extends ServiceImpl<FtReportMealsDaoMap
|
||||
public ReportMealsPriceEntity sumTotalPrice(Long patientId, Date lastBillingDate, Date selectBillingDate) {
|
||||
return this.baseMapper.sumTotalPrice(patientId, lastBillingDate, selectBillingDate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public FtReportMealsDao getLastReportMeals(Long patientId) {
|
||||
|
||||
// 获取最近一条已结算的报餐记录
|
||||
QueryWrapper<FtReportMealsDao> flag1Wrapper = new QueryWrapper<>();
|
||||
flag1Wrapper.eq("patient_id", patientId);
|
||||
flag1Wrapper.eq("settlement_flag", 1);
|
||||
flag1Wrapper.orderByDesc("settlement_at");
|
||||
flag1Wrapper.last("limit 1");
|
||||
FtReportMealsDao flag1ReportMealsDao = this.baseMapper.selectOne(flag1Wrapper);
|
||||
|
||||
// 如果是首次结算
|
||||
if (flag1ReportMealsDao == null) {
|
||||
|
||||
// 获取最近一条报餐
|
||||
QueryWrapper<FtReportMealsDao> flag0Wrapper = new QueryWrapper<>();
|
||||
flag0Wrapper.eq("patient_id", patientId);
|
||||
flag0Wrapper.eq("settlement_flag", 1);
|
||||
flag0Wrapper.orderByDesc("settlement_at");
|
||||
flag0Wrapper.last("limit 0");
|
||||
|
||||
return this.baseMapper.selectOne(flag0Wrapper);
|
||||
}
|
||||
|
||||
return flag1ReportMealsDao;
|
||||
}
|
||||
}
|
||||
|
@ -26,6 +26,15 @@ export function addCatering(data) {
|
||||
})
|
||||
}
|
||||
|
||||
// 拷贝并新增配餐功能
|
||||
export function copyAndAdd(data) {
|
||||
return request({
|
||||
url: '/fantang/catering/copyAndAdd',
|
||||
method: 'post',
|
||||
data: data
|
||||
})
|
||||
}
|
||||
|
||||
// 修改配餐功能
|
||||
export function updateCatering(data) {
|
||||
return request({
|
||||
@ -43,6 +52,14 @@ export function delCatering(id) {
|
||||
})
|
||||
}
|
||||
|
||||
// 作废
|
||||
export function cancelCatering(id) {
|
||||
return request({
|
||||
url: '/fantang/catering/cancel/' + id,
|
||||
method: 'put'
|
||||
})
|
||||
}
|
||||
|
||||
// 导出配餐功能
|
||||
export function exportCatering(query) {
|
||||
return request({
|
||||
@ -50,4 +67,12 @@ export function exportCatering(query) {
|
||||
method: 'get',
|
||||
params: query
|
||||
})
|
||||
}
|
||||
}
|
||||
|
||||
// 根据病人 id 查找
|
||||
export function getByPatient(id) {
|
||||
return request({
|
||||
url: '/fantang/catering/getByPatient/' + id,
|
||||
method: 'get'
|
||||
})
|
||||
}
|
||||
|
@ -101,7 +101,7 @@
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click=""
|
||||
@click="handleCancel"
|
||||
v-hasPermi="['fantang:catering:remove']"
|
||||
>作废
|
||||
</el-button>
|
||||
@ -134,7 +134,7 @@
|
||||
icon="el-icon-delete"
|
||||
size="mini"
|
||||
:disabled="multiple"
|
||||
@click=""
|
||||
@click="handleCopyAndAdd"
|
||||
v-hasPermi="['fantang:catering:remove']"
|
||||
>拷贝并新增
|
||||
</el-button>
|
||||
@ -188,15 +188,15 @@
|
||||
<el-table-column label="配餐频次" align="center" prop="frequency"/>
|
||||
<el-table-column label="正餐类型" align="center" prop="type" :formatter="typeFormat"/>
|
||||
<el-table-column label="营养配餐" align="center" prop="foodName"/>
|
||||
<el-table-column label="用法" align="center" prop="cateringUsage"/>
|
||||
<el-table-column label="描述" align="center" prop="cateringDescribe"/>
|
||||
<el-table-column label="启用标示" align="center" prop="flag"/>
|
||||
<el-table-column label="用法" align="center" prop="cateringUsage" :formatter="cateringUsageFormat"/>
|
||||
<!-- <el-table-column label="描述" align="center" prop="cateringDescribe"/>-->
|
||||
<el-table-column label="启用标志" align="center" prop="flag" :formatter="formatFlag"/>
|
||||
<el-table-column label="创建时间" align="center" prop="createAt" width="180">
|
||||
<template slot-scope="scope">
|
||||
<span>{{ parseTime(scope.row.createAt, '{y}-{m}-{d}') }}</span>
|
||||
</template>
|
||||
</el-table-column>
|
||||
<el-table-column label="更新人" align="center" prop="updateBy"/>
|
||||
<!-- <el-table-column label="更新人" align="center" prop="updateBy"/>-->
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@ -207,14 +207,6 @@
|
||||
v-hasPermi="['fantang:catering:edit']"
|
||||
>修改
|
||||
</el-button>
|
||||
<el-button
|
||||
size="mini"
|
||||
type="text"
|
||||
icon="el-icon-delete"
|
||||
@click="handleDelete(scope.row)"
|
||||
v-hasPermi="['fantang:catering:remove']"
|
||||
>删除
|
||||
</el-button>
|
||||
</template>
|
||||
</el-table-column>
|
||||
</el-table>
|
||||
@ -300,15 +292,14 @@
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="配餐频次" prop="frequency">
|
||||
<!-- <el-select v-model="form.frequency" placeholder="频次" :disabled="true">-->
|
||||
<!-- <el-option-->
|
||||
<!-- v-for="item in frequencyOptions"-->
|
||||
<!-- :key="item.label"-->
|
||||
<!-- :label="item.label"-->
|
||||
<!-- :value="item.label"-->
|
||||
<!-- ></el-option>-->
|
||||
<!-- </el-select>-->
|
||||
<el-input v-model="form.frequency" placeholder="频次"/>
|
||||
<el-select v-model="form.frequency" placeholder="请选择频次">
|
||||
<el-option
|
||||
v-for="item in frequencyOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
@ -396,12 +387,118 @@
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row>
|
||||
<el-col>
|
||||
<el-form-item label="启用标志">
|
||||
<el-switch
|
||||
v-model="form.flag"
|
||||
active-color="#13ce66"
|
||||
inactive-color="#ff4949"
|
||||
active-text="启用"
|
||||
inactive-text="关闭">
|
||||
</el-switch>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
|
||||
<!-- 拷贝并新增对话框 -->
|
||||
<el-dialog :title="title" :visible.sync="copyItem" width="600px" append-to-body>
|
||||
<el-form ref="copyItemForm" :model="copyItemForm" :rules="copyItemFormRules" label-width="80px">
|
||||
<el-form-item label="科室" prop="departId">
|
||||
<el-select v-model="copyItemForm.departId"
|
||||
placeholder="请选择科室"
|
||||
@change="changeDepart">
|
||||
<el-option
|
||||
v-for="item in departOptions"
|
||||
:key="item.departName"
|
||||
:label="item.departName"
|
||||
:value="item.departId"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<el-form-item label="病人" prop="patientIds">
|
||||
<el-select v-model="copyItemForm.patientIds" placeholder="请选择病人" multiple>
|
||||
<el-option
|
||||
v-for="item in patientOptions"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.patientId"
|
||||
>
|
||||
<span style="float: left">{{ item.name }}</span>
|
||||
<span style="float: right; color: #8492a6; font-size: 13px; margin-right:16px">{{ item.bedId }}</span>
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
<!-- <el-form-item label="床号" prop="bedId">-->
|
||||
<!-- <el-input v-model="form.bedId" placeholder="床号" :disabled="true"/>-->
|
||||
<!-- </el-form-item>-->
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="配餐号" prop="number">
|
||||
<el-select v-model="copyItemForm.number" placeholder="请选择配餐号">
|
||||
<el-option
|
||||
v-for="item in numberOptions"
|
||||
:key="item.name"
|
||||
:label="item.name"
|
||||
:value="item.id"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="用法" prop="cateringUsage">
|
||||
<el-select v-model="copyItemForm.cateringUsage" placeholder="请选择用法">
|
||||
<el-option
|
||||
v-for="item in cateringUsageOptions"
|
||||
:key="item.label"
|
||||
:label="item.label"
|
||||
:value="item.value"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
<el-row :gutter="10">
|
||||
<el-col :span="12">
|
||||
<el-form-item label="正餐类型" prop="types">
|
||||
<el-select v-model="copyItemForm.types"
|
||||
multiple
|
||||
@change="changeDinnerType"
|
||||
placeholder="请选择正餐类型">
|
||||
<el-option
|
||||
v-for="dict in typeOptions"
|
||||
:key="dict.dictValue"
|
||||
:label="dict.dictLabel"
|
||||
:value="parseInt(dict.dictValue)"
|
||||
></el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
<el-col :span="12">
|
||||
<el-form-item label="配餐频次" prop="frequency">
|
||||
<el-select v-model="copyItemForm.frequency" placeholder="请选择频次">
|
||||
<el-option
|
||||
v-for="item in frequencyOptions"
|
||||
:key="item.value"
|
||||
:label="item.label"
|
||||
:value="item.value">
|
||||
</el-option>
|
||||
</el-select>
|
||||
</el-form-item>
|
||||
</el-col>
|
||||
</el-row>
|
||||
</el-form>
|
||||
<div slot="footer" class="dialog-footer">
|
||||
<el-button type="primary" @click="submitCopyForm">确 定</el-button>
|
||||
<el-button @click="cancel">取 消</el-button>
|
||||
</div>
|
||||
</el-dialog>
|
||||
</div>
|
||||
</template>
|
||||
|
||||
@ -417,12 +514,26 @@ import {
|
||||
import {listDepart} from "@/api/fantang/depart";
|
||||
import {getBedIdById, selectPatientByDepartId} from "@/api/fantang/patient";
|
||||
import {listNutritionFood} from "@/api/fantang/nutritionFood";
|
||||
import {cancelCatering, copyAndAdd, getByPatient} from "../../../api/fantang/catering";
|
||||
|
||||
export default {
|
||||
name: "Catering",
|
||||
components: {},
|
||||
data() {
|
||||
return {
|
||||
frequencyOptions: [{
|
||||
value: 'qd',
|
||||
label: 'qd'
|
||||
}, {
|
||||
value: 'bid',
|
||||
label: 'bid'
|
||||
}, {
|
||||
value: 'tid',
|
||||
label: 'tid'
|
||||
}, {
|
||||
value: 'qn',
|
||||
label: 'qn'
|
||||
}],
|
||||
// 配餐列表
|
||||
numberOptions: [],
|
||||
// 用法列表
|
||||
@ -449,6 +560,7 @@ export default {
|
||||
loading: true,
|
||||
// 选中数组
|
||||
ids: [],
|
||||
names: [],
|
||||
// 非单个禁用
|
||||
single: true,
|
||||
// 非多个禁用
|
||||
@ -465,6 +577,8 @@ export default {
|
||||
open: false,
|
||||
// 修改弹出层
|
||||
modifyItem: false,
|
||||
// 拷贝并新增弹出层
|
||||
copyItem: false,
|
||||
// 正餐类型字典
|
||||
typeOptions: [],
|
||||
// 查询参数
|
||||
@ -479,8 +593,53 @@ export default {
|
||||
},
|
||||
// 表单参数
|
||||
form: {},
|
||||
// 拷贝并新增表单
|
||||
copyItemForm: {},
|
||||
// 拷贝并新增表单校验
|
||||
copyItemFormRules: {
|
||||
departId: [
|
||||
{required: true, message: "部门不能为空", trigger: "blur"}
|
||||
],
|
||||
patientIds: [
|
||||
{required: true, message: "病人不能为空", trigger: "blur"}
|
||||
],
|
||||
types: [
|
||||
{required: true, message: "正餐类型不能为空", trigger: "blur"}
|
||||
],
|
||||
cateringUsage: [
|
||||
{required: true, message: "用法不能为空", trigger: "blur"}
|
||||
],
|
||||
frequency: [
|
||||
{required: true, message: "频次不能为空", trigger: "blur"}
|
||||
],
|
||||
number: [
|
||||
{required: true, message: "配餐号不能为空", trigger: "blur"}
|
||||
],
|
||||
},
|
||||
// 表单校验
|
||||
rules: {}
|
||||
rules: {
|
||||
departId: [
|
||||
{required: true, message: "部门不能为空", trigger: "blur"}
|
||||
],
|
||||
patientId: [
|
||||
{required: true, message: "姓名不能为空", trigger: "blur"}
|
||||
],
|
||||
bedId: [
|
||||
{required: true, message: "床号不能为空", trigger: "blur"}
|
||||
],
|
||||
types: [
|
||||
{required: true, message: "正餐类型不能为空", trigger: "blur"}
|
||||
],
|
||||
cateringUsage: [
|
||||
{required: true, message: "用法不能为空", trigger: "blur"}
|
||||
],
|
||||
frequency: [
|
||||
{required: true, message: "频次不能为空", trigger: "blur"}
|
||||
],
|
||||
number: [
|
||||
{required: true, message: "配餐号不能为空", trigger: "blur"}
|
||||
],
|
||||
}
|
||||
};
|
||||
},
|
||||
created() {
|
||||
@ -497,9 +656,25 @@ export default {
|
||||
})
|
||||
},
|
||||
methods: {
|
||||
cateringUsageFormat(row) {
|
||||
if (row.cateringUsage === 1 || row.cateringUsage === '1') {
|
||||
return "鼻饲";
|
||||
} else if (row.cateringUsage === 2 || row.cateringUsage === '2') {
|
||||
return "口服";
|
||||
} else {
|
||||
return " ";
|
||||
}
|
||||
},
|
||||
|
||||
formatFlag(row) {
|
||||
if (row.flag === true) {
|
||||
return "启用";
|
||||
} else if (row.flag === false) {
|
||||
return "禁用";
|
||||
}
|
||||
},
|
||||
// 控制合并列
|
||||
objectSpanMethod({row, column, rowIndex, columnIndex}) {
|
||||
objectSpanMethod({rowIndex, columnIndex}) {
|
||||
if (columnIndex === 1) {
|
||||
if (rowIndex % 4 === 0) {
|
||||
return {
|
||||
@ -537,7 +712,19 @@ export default {
|
||||
colspan: 0
|
||||
};
|
||||
}
|
||||
}else if (columnIndex === 4) {
|
||||
} else if (columnIndex === 4) {
|
||||
if (rowIndex % 4 === 0) {
|
||||
return {
|
||||
rowspan: 4,
|
||||
colspan: 1
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
rowspan: 0,
|
||||
colspan: 0
|
||||
};
|
||||
}
|
||||
} else if (columnIndex === 0) {
|
||||
if (rowIndex % 4 === 0) {
|
||||
return {
|
||||
rowspan: 4,
|
||||
@ -554,14 +741,20 @@ export default {
|
||||
|
||||
// 响应营养配餐用餐安排多选列表
|
||||
changeDinnerType(value) {
|
||||
if (value.length === 1)
|
||||
if (value.length === 1) {
|
||||
this.form.frequency = 'qd';
|
||||
else if (value.length === 2)
|
||||
this.copyItemForm.frequency = 'qd';
|
||||
} else if (value.length === 2) {
|
||||
this.form.frequency = 'bid';
|
||||
else if (value.length === 3)
|
||||
this.copyItemForm.frequency = 'bid';
|
||||
} else if (value.length === 3) {
|
||||
this.form.frequency = 'tid';
|
||||
else if (value.length === 4)
|
||||
this.copyItemForm.frequency = 'tid';
|
||||
} else if (value.length === 4) {
|
||||
this.form.frequency = 'qn';
|
||||
this.copyItemForm.frequency = 'qn';
|
||||
}
|
||||
|
||||
},
|
||||
// 响应科室信息切换
|
||||
changeDepart(value) {
|
||||
@ -571,12 +764,16 @@ export default {
|
||||
},
|
||||
// 相应病人信息切换
|
||||
changePatient(value) {
|
||||
const _this = this;
|
||||
getBedIdById(value).then(response => {
|
||||
console.log("aaaaaaa", response);
|
||||
_this.form.bedId = response.msg;
|
||||
console.log(_this.form.bedId);
|
||||
})
|
||||
setTimeout(() => {
|
||||
getBedIdById(value).then(response => {
|
||||
console.log("aaaaaaa", response);
|
||||
console.log("value", value);
|
||||
this.form.bedId = response.msg;
|
||||
console.log('this.form.patientid', this.form.patientId)
|
||||
})
|
||||
}, 200);
|
||||
|
||||
console.log('this.form.patientid', this.form.patientId)
|
||||
},
|
||||
/** 查询配餐功能列表 */
|
||||
getList() {
|
||||
@ -596,6 +793,7 @@ export default {
|
||||
cancel() {
|
||||
this.open = false;
|
||||
this.modifyItem = false;
|
||||
this.copyItem = false;
|
||||
this.reset();
|
||||
},
|
||||
// 表单重置
|
||||
@ -616,6 +814,23 @@ export default {
|
||||
cateringDescribe: null
|
||||
};
|
||||
this.resetForm("form");
|
||||
|
||||
this.copyItemForm = {
|
||||
id: null,
|
||||
patientId: null,
|
||||
type: null,
|
||||
number: null,
|
||||
frequency: null,
|
||||
cateringUsage: null,
|
||||
isReplace: null,
|
||||
flag: null,
|
||||
updateAt: null,
|
||||
updateBy: null,
|
||||
createAt: null,
|
||||
createBy: null,
|
||||
cateringDescribe: null
|
||||
};
|
||||
this.resetForm("copyItemForm");
|
||||
},
|
||||
/** 搜索按钮操作 */
|
||||
handleQuery() {
|
||||
@ -629,7 +844,8 @@ export default {
|
||||
},
|
||||
// 多选框选中数据
|
||||
handleSelectionChange(selection) {
|
||||
this.ids = selection.map(item => item.id)
|
||||
this.ids = selection.map(item => item.patientId)
|
||||
this.names = selection.map(item => item.name);
|
||||
this.single = selection.length !== 1
|
||||
this.multiple = !selection.length
|
||||
},
|
||||
@ -650,6 +866,35 @@ export default {
|
||||
this.title = "修改配餐";
|
||||
});
|
||||
},
|
||||
// 拷贝并新增
|
||||
handleCopyAndAdd(row) {
|
||||
this.reset();
|
||||
const id = row.id || this.ids;
|
||||
if (this.ids.length > 1) {
|
||||
this.msgError("只能选择一条记录进行拷贝并新增")
|
||||
} else {
|
||||
getByPatient(id).then(response => {
|
||||
console.log(response.data)
|
||||
this.copyItemForm.cateringUsage = response.data.cateringUsage;
|
||||
this.copyItemForm.frequency = response.data.frequency;
|
||||
this.copyItemForm.number = response.data.number;
|
||||
this.copyItem = true;
|
||||
})
|
||||
}
|
||||
},
|
||||
/** 拷贝并新增提交按钮 */
|
||||
submitCopyForm() {
|
||||
this.$refs["copyItemForm"].validate(valid => {
|
||||
if (valid) {
|
||||
console.log(this.copyItemForm);
|
||||
copyAndAdd(this.copyItemForm).then(response => {
|
||||
this.msgSuccess("新增成功");
|
||||
this.copyItem = false;
|
||||
this.getList();
|
||||
})
|
||||
}
|
||||
})
|
||||
},
|
||||
/** 提交按钮 */
|
||||
submitForm() {
|
||||
this.$refs["form"].validate(valid => {
|
||||
@ -673,8 +918,9 @@ export default {
|
||||
},
|
||||
/** 删除按钮操作 */
|
||||
handleDelete(row) {
|
||||
const ids = row.id || this.ids;
|
||||
this.$confirm('是否确认删除配餐功能编号为"' + ids + '"的数据项?', "警告", {
|
||||
const ids = row.patientId || this.ids;
|
||||
console.log("ids-----", ids);
|
||||
this.$confirm('是否确认删除 “' + this.names + '” 的营养配餐数据?', "警告", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
@ -685,6 +931,21 @@ export default {
|
||||
this.msgSuccess("删除成功");
|
||||
})
|
||||
},
|
||||
// 作废按钮
|
||||
handleCancel(row) {
|
||||
const ids = row.patientId || this.ids;
|
||||
console.log("ids-----", ids);
|
||||
this.$confirm('是否作废 “' + this.names + '” 的营养配餐数据?', "警告", {
|
||||
confirmButtonText: "确定",
|
||||
cancelButtonText: "取消",
|
||||
type: "warning"
|
||||
}).then(function () {
|
||||
return cancelCatering(ids);
|
||||
}).then(() => {
|
||||
this.getList();
|
||||
this.msgSuccess("已作废");
|
||||
})
|
||||
},
|
||||
/** 导出按钮操作 */
|
||||
handleExport() {
|
||||
const queryParams = this.queryParams;
|
||||
|
@ -82,7 +82,8 @@
|
||||
<right-toolbar :showSearch.sync="showSearch" @queryTable="getList"></right-toolbar>
|
||||
</el-row>
|
||||
|
||||
<el-table v-loading="loading" :data="foodDemandList" @selection-change="handleSelectionChange" border>
|
||||
<el-table v-loading="loading" :data="foodDemandList" @selection-change="handleSelectionChange"
|
||||
:span-method="objectSpanMethod" border>
|
||||
<!-- <el-table-column type="selection" width="55" align="center"/>-->
|
||||
<el-table-column label="id" align="center" prop="id" v-if="false"/>
|
||||
<!-- <el-table-column label="住院号" align="center" prop="hospitalId"/>-->
|
||||
@ -95,8 +96,10 @@
|
||||
<el-table-column label="加肉" align="center" prop="meat" width="80px" :formatter="formatMeat"/>
|
||||
<el-table-column label="加饭" align="center" prop="rice" width="80px" :formatter="formatRice"/>
|
||||
<el-table-column label="加蛋" align="center" prop="egg" width="80px"/>
|
||||
<el-table-column label="营养配餐" align="center" prop="nutritionFood" width="120px"/>
|
||||
<el-table-column label="启用状态" align="center" prop="flag" width="80px" :formatter="formatFlag"/>
|
||||
<el-table-column label="营养配餐" align="center" prop="nutritionFood" width="130px"/>
|
||||
<el-table-column label="营养配餐启用状态" align="center" prop="nutritionFoodFlag" width="130px"
|
||||
:formatter="formatNutritionFoodFlag"/>
|
||||
<el-table-column label="操作" align="center" class-name="small-padding fixed-width">
|
||||
<template slot-scope="scope">
|
||||
<el-button
|
||||
@ -116,6 +119,7 @@
|
||||
:total="total"
|
||||
:page.sync="queryParams.pageNum"
|
||||
:limit.sync="queryParams.pageSize"
|
||||
:page-sizes="[12, 24]"
|
||||
@pagination="getList"
|
||||
/>
|
||||
|
||||
@ -237,7 +241,7 @@ export default {
|
||||
// 查询参数
|
||||
queryParams: {
|
||||
pageNum: 1,
|
||||
pageSize: 10,
|
||||
pageSize: 12,
|
||||
flag: null,
|
||||
name: null,
|
||||
bedId: null,
|
||||
@ -275,6 +279,48 @@ export default {
|
||||
});
|
||||
},
|
||||
methods: {
|
||||
|
||||
// 控制合并列
|
||||
objectSpanMethod({rowIndex, columnIndex}) {
|
||||
if (columnIndex === 1) {
|
||||
if (rowIndex % 4 === 0) {
|
||||
return {
|
||||
rowspan: 4,
|
||||
colspan: 1
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
rowspan: 0,
|
||||
colspan: 0
|
||||
};
|
||||
}
|
||||
} else if (columnIndex === 2) {
|
||||
if (rowIndex % 4 === 0) {
|
||||
return {
|
||||
rowspan: 4,
|
||||
colspan: 1
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
rowspan: 0,
|
||||
colspan: 0
|
||||
};
|
||||
}
|
||||
} else if (columnIndex === 0) {
|
||||
if (rowIndex % 4 === 0) {
|
||||
return {
|
||||
rowspan: 4,
|
||||
colspan: 1
|
||||
};
|
||||
} else {
|
||||
return {
|
||||
rowspan: 0,
|
||||
colspan: 0
|
||||
};
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
formatFlag(row) {
|
||||
if (row.flag === true) {
|
||||
return "启用";
|
||||
@ -284,6 +330,15 @@ export default {
|
||||
return "";
|
||||
}
|
||||
},
|
||||
formatNutritionFoodFlag(row) {
|
||||
if (row.nutritionFoodFlag === true) {
|
||||
return "启用";
|
||||
} else if (row.nutritionFoodFlag === false) {
|
||||
return "禁用";
|
||||
} else {
|
||||
return " ";
|
||||
}
|
||||
},
|
||||
// 格式化菜单回显文字
|
||||
formatFoods(row) {
|
||||
const _this = this;
|
||||
@ -368,7 +423,8 @@ export default {
|
||||
rice: null,
|
||||
egg: null,
|
||||
orderInfo: null,
|
||||
flag: null
|
||||
flag: null,
|
||||
nutritionFoodFlag: null,
|
||||
};
|
||||
this.resetForm("form");
|
||||
},
|
||||
|
Loading…
x
Reference in New Issue
Block a user