|
@ -1,10 +1,12 @@
|
|
package com.yihu.jw.care.service.lifeCare;
|
|
package com.yihu.jw.care.service.lifeCare;
|
|
|
|
|
|
|
|
import com.alibaba.fastjson.JSONArray;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.alibaba.fastjson.JSONObject;
|
|
import com.yihu.jw.care.dao.lifeCare.LifeCareCancelLogDao;
|
|
import com.yihu.jw.care.dao.lifeCare.LifeCareCancelLogDao;
|
|
import com.yihu.jw.care.dao.lifeCare.LifeCareFeeDetailDao;
|
|
import com.yihu.jw.care.dao.lifeCare.LifeCareFeeDetailDao;
|
|
import com.yihu.jw.care.dao.lifeCare.LifeCareItemDictDao;
|
|
import com.yihu.jw.care.dao.lifeCare.LifeCareItemDictDao;
|
|
import com.yihu.jw.care.dao.lifeCare.LifeCareOrderDao;
|
|
import com.yihu.jw.care.dao.lifeCare.LifeCareOrderDao;
|
|
|
|
import com.yihu.jw.care.service.common.OrderNoService;
|
|
import com.yihu.jw.care.util.MessageUtil;
|
|
import com.yihu.jw.care.util.MessageUtil;
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
import com.yihu.jw.doctor.dao.BaseDoctorDao;
|
|
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
|
|
import com.yihu.jw.doctor.dao.BaseDoctorHospitalDao;
|
|
@ -21,9 +23,11 @@ import com.yihu.jw.patient.dao.BasePatientDao;
|
|
import com.yihu.jw.restmodel.ResponseContant;
|
|
import com.yihu.jw.restmodel.ResponseContant;
|
|
import com.yihu.jw.restmodel.web.PageEnvelop;
|
|
import com.yihu.jw.restmodel.web.PageEnvelop;
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
import com.yihu.jw.util.common.IdCardUtil;
|
|
|
|
import com.yihu.jw.util.date.DateUtil;
|
|
import com.yihu.jw.util.entity.EntityUtils;
|
|
import com.yihu.jw.util.entity.EntityUtils;
|
|
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
|
|
import com.yihu.jw.wechat.dao.BasePatientWechatDao;
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
import com.yihu.mysql.query.BaseJpaService;
|
|
|
|
import org.apache.commons.collections.CollectionUtils;
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
import org.apache.commons.collections.map.HashedMap;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.apache.commons.lang3.StringUtils;
|
|
import org.slf4j.Logger;
|
|
import org.slf4j.Logger;
|
|
@ -70,6 +74,29 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
private BaseOrgDao baseOrgDao;
|
|
private BaseOrgDao baseOrgDao;
|
|
@Autowired
|
|
@Autowired
|
|
private BaseDoctorDao doctorDao;
|
|
private BaseDoctorDao doctorDao;
|
|
|
|
@Autowired
|
|
|
|
private OrderNoService orderNoService;
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 记录完成情况
|
|
|
|
* @param orderId
|
|
|
|
* @param conclusionImgs
|
|
|
|
* @param conclusionRemark
|
|
|
|
*/
|
|
|
|
public Integer updateConclusion(String orderId,String conclusionImgs,String conclusionRemark,String doctorId){
|
|
|
|
LifeCareOrderDO lifeCareOrderDO = lifeCareOrderDao.findOne(orderId);
|
|
|
|
if(!lifeCareOrderDO.getStatus().equals(LifeCareOrderDO.Status.signIn.getType())){
|
|
|
|
return 1;
|
|
|
|
}
|
|
|
|
if(!doctorId.equals(lifeCareOrderDO.getSignDoctor())){
|
|
|
|
return 2;
|
|
|
|
}
|
|
|
|
lifeCareOrderDO.setConclusionImgs(conclusionImgs);
|
|
|
|
lifeCareOrderDO.setConclusionRemark(conclusionRemark);
|
|
|
|
lifeCareOrderDO.setConclusionTime(new Date());
|
|
|
|
lifeCareOrderDao.save(lifeCareOrderDO);
|
|
|
|
return 0;
|
|
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|
|
* 记录完成情况
|
|
* 记录完成情况
|
|
@ -77,18 +104,23 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
* @param complereImgs
|
|
* @param complereImgs
|
|
* @param completeRemark
|
|
* @param completeRemark
|
|
*/
|
|
*/
|
|
public void completeOrder(String orderId,String complereImgs,String completeRemark,String doctorId){
|
|
|
|
|
|
public Integer completeOrder(String orderId,String complereImgs,String completeRemark,String doctorId){
|
|
BaseDoctorDO doctorDO = doctorDao.findById(doctorId);
|
|
BaseDoctorDO doctorDO = doctorDao.findById(doctorId);
|
|
LifeCareOrderDO lifeCareOrderDO = lifeCareOrderDao.findOne(orderId);
|
|
LifeCareOrderDO lifeCareOrderDO = lifeCareOrderDao.findOne(orderId);
|
|
if(lifeCareOrderDO.getStatus().equals(LifeCareOrderDO.Status.waitForAccept.getType())){
|
|
|
|
lifeCareOrderDO.setDoctor(doctorId);
|
|
|
|
lifeCareOrderDO.setDoctorName(doctorDO.getName());
|
|
|
|
lifeCareOrderDO.setStatus(2);
|
|
|
|
lifeCareOrderDO.setCompleteImgs(complereImgs);
|
|
|
|
lifeCareOrderDO.setCompleteRemark(completeRemark);
|
|
|
|
lifeCareOrderDO.setCompleteTime(new Date());
|
|
|
|
lifeCareOrderDao.save(lifeCareOrderDO);
|
|
|
|
|
|
if(!lifeCareOrderDO.getStatus().equals(LifeCareOrderDO.Status.signIn.getType())){
|
|
|
|
return 1;
|
|
}
|
|
}
|
|
|
|
if(!doctorId.equals(lifeCareOrderDO.getSignDoctor())){
|
|
|
|
return 2;
|
|
|
|
}
|
|
|
|
lifeCareOrderDO.setDoctor(doctorId);
|
|
|
|
lifeCareOrderDO.setDoctorName(doctorDO.getName());
|
|
|
|
lifeCareOrderDO.setStatus(2);
|
|
|
|
lifeCareOrderDO.setCompleteImgs(complereImgs);
|
|
|
|
lifeCareOrderDO.setCompleteRemark(completeRemark);
|
|
|
|
lifeCareOrderDO.setCompleteTime(new Date());
|
|
|
|
lifeCareOrderDao.save(lifeCareOrderDO);
|
|
|
|
return 0;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
@ -140,9 +172,10 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
sql += " WHERE a.hospital = ? group BY a.status";
|
|
sql += " WHERE a.hospital = ? group BY a.status";
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, hospital);
|
|
List<Map<String, Object>> list = jdbcTemplate.queryForList(sql, hospital);
|
|
Map<String, Integer> map = new HashMap<>();
|
|
Map<String, Integer> map = new HashMap<>();
|
|
//状态 待服务 1、已完成 2 、已取消 -1
|
|
|
|
|
|
//状态 待服务 1、已完成 2 、已取消 -1 已签到 3
|
|
map.put("1",0);
|
|
map.put("1",0);
|
|
map.put("2",0);
|
|
map.put("2",0);
|
|
|
|
map.put("3",0);
|
|
map.put("-1",0);
|
|
map.put("-1",0);
|
|
int total = 0;
|
|
int total = 0;
|
|
for (Map<String, Object> one:list){
|
|
for (Map<String, Object> one:list){
|
|
@ -200,7 +233,7 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
" ( base_life_care_order o " +
|
|
" ( base_life_care_order o " +
|
|
" LEFT JOIN base_patient p ON o.patient = p.id ) "+
|
|
" LEFT JOIN base_patient p ON o.patient = p.id ) "+
|
|
" WHERE " +
|
|
" WHERE " +
|
|
" o.hospital = '{hospital}' and o.type != 3 " +buffer+
|
|
|
|
|
|
" o.hospital = '{hospital}' " +buffer+
|
|
" AND ( o.`status` = {status} OR -100 = {status} ) " +
|
|
" AND ( o.`status` = {status} OR -100 = {status} ) " +
|
|
" ORDER BY o.create_time desc " +
|
|
" ORDER BY o.create_time desc " +
|
|
" LIMIT {start},{end};";
|
|
" LIMIT {start},{end};";
|
|
@ -319,6 +352,7 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
//状态 待服务 1、已完成 2 、已取消 -1
|
|
//状态 待服务 1、已完成 2 、已取消 -1
|
|
res.put("1",0);
|
|
res.put("1",0);
|
|
res.put("2",0);
|
|
res.put("2",0);
|
|
|
|
res.put("3",0);
|
|
res.put("-1",0);
|
|
res.put("-1",0);
|
|
String countSql = "SELECT " +
|
|
String countSql = "SELECT " +
|
|
" count(o.id) as count, " +
|
|
" count(o.id) as count, " +
|
|
@ -401,6 +435,7 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
|
|
/**
|
|
/**
|
|
* 申请生活照料
|
|
* 申请生活照料
|
|
*
|
|
*
|
|
@ -413,40 +448,33 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
|
|
|
JSONObject result = new JSONObject();
|
|
JSONObject result = new JSONObject();
|
|
JSONObject jsonObjectParam;
|
|
JSONObject jsonObjectParam;
|
|
|
|
LifeCareOrderDO orderDO = null;
|
|
try {
|
|
try {
|
|
jsonObjectParam = JSONObject.parseObject(jsonData);
|
|
jsonObjectParam = JSONObject.parseObject(jsonData);
|
|
if (jsonObjectParam.getJSONObject("order").getInteger("type")==1||jsonObjectParam.getJSONObject("order").getInteger("type")==2){
|
|
|
|
|
|
orderDO = EntityUtils.jsonToEntity(jsonObjectParam.get("order").toString(), LifeCareOrderDO.class);
|
|
|
|
Integer type = orderDO.getType();
|
|
|
|
if (type==1||type==2){
|
|
//本人或家人代发起
|
|
//本人或家人代发起
|
|
BasePatientDO patientDO = patientDao.findById(proxyPatient);
|
|
BasePatientDO patientDO = patientDao.findById(proxyPatient);
|
|
jsonObjectParam.put("proxyPatient",proxyPatient);
|
|
|
|
jsonObjectParam.put("proxyPatientName",patientDO.getName());
|
|
|
|
jsonObjectParam.put("proxyPatientPhone",patientDO.getMobile());
|
|
|
|
}
|
|
|
|
if (jsonObjectParam.getJSONObject("order").getInteger("type")==3) {//医生代发起
|
|
|
|
|
|
orderDO.setProxyPatient(proxyPatient);
|
|
|
|
orderDO.setProxyPatientName(patientDO.getName());
|
|
|
|
orderDO.setProxyPatientPhone(patientDO.getMobile());
|
|
|
|
}else if (type==3) {
|
|
|
|
//医生代发起
|
|
BaseDoctorDO doctorDO = doctorDao.findById(proxyPatient);
|
|
BaseDoctorDO doctorDO = doctorDao.findById(proxyPatient);
|
|
jsonObjectParam.put("proxyPatient",proxyPatient);
|
|
|
|
jsonObjectParam.put("proxyPatientName",doctorDO.getName());
|
|
|
|
jsonObjectParam.put("proxyPatientPhone",doctorDO.getMobile());
|
|
|
|
|
|
orderDO.setProxyPatient(proxyPatient);
|
|
|
|
orderDO.setProxyPatientName(doctorDO.getName());
|
|
|
|
orderDO.setProxyPatientPhone(doctorDO.getMobile());
|
|
}
|
|
}
|
|
|
|
|
|
} catch (Exception e) {
|
|
} catch (Exception e) {
|
|
|
|
e.printStackTrace();
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
String failMsg = "参数转换成JSON对象异常:" + e.getMessage();
|
|
String failMsg = "参数转换成JSON对象异常:" + e.getMessage();
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
logger.error(failMsg);
|
|
logger.error(failMsg);
|
|
return result;
|
|
return result;
|
|
}
|
|
}
|
|
LifeCareOrderDO orderDO = null;
|
|
|
|
try {
|
|
|
|
orderDO = EntityUtils.jsonToEntity(jsonObjectParam.get("order").toString(), LifeCareOrderDO.class);
|
|
|
|
} catch (Exception e) {
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
|
String failMsg = "生活照料工单服务基本信息:" + e.getMessage();
|
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
|
logger.error(failMsg);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
orderDO.setCreateTime(new Date());
|
|
|
|
orderDO.setCreateUser(orderDO.getProxyPatient());
|
|
orderDO.setCreateUser(orderDO.getProxyPatient());
|
|
orderDO.setCreateUserName(orderDO.getProxyPatientName());
|
|
orderDO.setCreateUserName(orderDO.getProxyPatientName());
|
|
|
|
|
|
@ -470,14 +498,9 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
BaseOrgDO orgDO = baseOrgDao.findByCode(orderDO.getHospital());
|
|
BaseOrgDO orgDO = baseOrgDao.findByCode(orderDO.getHospital());
|
|
orderDO.setHospitalName(orgDO.getName());
|
|
orderDO.setHospitalName(orgDO.getName());
|
|
}
|
|
}
|
|
|
|
|
|
|
|
orderDO.setNumber(orderNoService.getOrderNo(1));
|
|
orderDO.setCreateTime(new Date());
|
|
orderDO.setCreateTime(new Date());
|
|
//判断创建生活照料类型,发起类型(1本人发起 2家人待预约 3医生代预约)
|
|
|
|
if(orderDO.getProxyPatient().equals(orderDO.getPatient())){
|
|
|
|
orderDO.setType(1);
|
|
|
|
}else if(!orderDO.getProxyPatient().equals(orderDO.getPatient())){
|
|
|
|
orderDO.setType(2);
|
|
|
|
}
|
|
|
|
|
|
orderDO.setStatus(1);
|
|
this.save(orderDO);
|
|
this.save(orderDO);
|
|
result.put("orderId",orderDO.getId());
|
|
result.put("orderId",orderDO.getId());
|
|
|
|
|
|
@ -498,7 +521,7 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
totalFee = new BigDecimal(0);
|
|
totalFee = new BigDecimal(0);
|
|
}
|
|
}
|
|
|
|
|
|
for ( LifeCareFeeDetailDO feeDetailDO : feeDetailDOList) {
|
|
|
|
|
|
for (LifeCareFeeDetailDO feeDetailDO : feeDetailDOList) {
|
|
try {
|
|
try {
|
|
//工单主表中记录总费用
|
|
//工单主表中记录总费用
|
|
totalFee = totalFee.add(feeDetailDO.getFee().multiply(BigDecimal.valueOf(feeDetailDO.getNumber())));
|
|
totalFee = totalFee.add(feeDetailDO.getFee().multiply(BigDecimal.valueOf(feeDetailDO.getNumber())));
|
|
@ -542,6 +565,30 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
return false;
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public boolean orderWithFeeDelete(JSONObject jsonObjectParam,LifeCareOrderDO orderDO) {
|
|
|
|
BigDecimal totalFee = orderDO.getTotalFee();
|
|
|
|
//删除的服务项
|
|
|
|
JSONArray itemArray = jsonObjectParam.getJSONArray("deleteItemArr");
|
|
|
|
if (!CollectionUtils.isEmpty(itemArray)) {
|
|
|
|
List<LifeCareFeeDetailDO> list = new ArrayList<>();
|
|
|
|
//删除的服务项要减去服务项费用
|
|
|
|
BigDecimal itemFee = new BigDecimal(0);
|
|
|
|
for(Object oneId : itemArray) {
|
|
|
|
JSONObject oneIdJson = (JSONObject) oneId;
|
|
|
|
LifeCareFeeDetailDO doorFeeDetail = lifeCareFeeDetailDao.findOne(String.valueOf(oneIdJson.get("id")));
|
|
|
|
if(doorFeeDetail.getPayStatus()==0){
|
|
|
|
doorFeeDetail.setStatus(3);
|
|
|
|
doorFeeDetail.setUpdateTime(new Date());
|
|
|
|
list.add(doorFeeDetail);
|
|
|
|
itemFee = itemFee.add(doorFeeDetail.getFee().multiply(BigDecimal.valueOf(doorFeeDetail.getNumber())));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
lifeCareFeeDetailDao.save(list);
|
|
|
|
}
|
|
|
|
return false;
|
|
|
|
}
|
|
|
|
|
|
public PageEnvelop getPatientOrderList(String patient, Integer status, int page, int size) {
|
|
public PageEnvelop getPatientOrderList(String patient, Integer status, int page, int size) {
|
|
page = page>0?page-1:0;
|
|
page = page>0?page-1:0;
|
|
|
|
|
|
@ -561,4 +608,138 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 签到保存
|
|
|
|
* @param orderId
|
|
|
|
* @param signTime
|
|
|
|
* @param signWay
|
|
|
|
* @param signLocation
|
|
|
|
* @param signImg
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
public LifeCareOrderDO signIn(String orderId, String signTime, Integer signWay, String signLocation,
|
|
|
|
String signImg, String twoDimensionalCode,String doctorId) throws Exception {
|
|
|
|
LifeCareOrderDO lifeCareOrderDO = this.lifeCareOrderDao.findOne(orderId);
|
|
|
|
if(!LifeCareOrderDO.Status.waitForAccept.getType().equals(lifeCareOrderDO.getStatus())){
|
|
|
|
//待服务状态才能签到
|
|
|
|
logger.info("签到失败"+lifeCareOrderDO.getId()+":"+lifeCareOrderDO.getStatus());
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
lifeCareOrderDO.setDoctorSignTime(DateUtil.strToDate(signTime));
|
|
|
|
lifeCareOrderDO.setDoctorSignWay(signWay);
|
|
|
|
// 签到方式-2扫码时,需要去解析地址
|
|
|
|
lifeCareOrderDO.setDoctorSignLocation(signLocation);
|
|
|
|
lifeCareOrderDO.setDoctorSignImg(StringUtils.isEmpty(signImg) ? null : signImg);
|
|
|
|
//3 已签到
|
|
|
|
lifeCareOrderDO.setStatus(3);
|
|
|
|
BaseDoctorDO doctorDO = doctorDao.findById(doctorId);
|
|
|
|
lifeCareOrderDO.setSignDoctor(doctorId);
|
|
|
|
lifeCareOrderDO.setSignDoctorName(doctorDO.getName());
|
|
|
|
lifeCareOrderDO.setUpdateTime(new Date());
|
|
|
|
lifeCareOrderDO.setUpdateUser(doctorId);
|
|
|
|
lifeCareOrderDO.setUpdateUserName(doctorDO.getName());
|
|
|
|
if(signWay == 4 ){//扫码签到
|
|
|
|
if (twoDimensionalCode.equals(lifeCareOrderDO.getNumber())){
|
|
|
|
lifeCareOrderDO = lifeCareOrderDao.save(lifeCareOrderDO);
|
|
|
|
return lifeCareOrderDO;
|
|
|
|
}else {
|
|
|
|
logger.info("扫码签到失败");
|
|
|
|
return null;
|
|
|
|
}
|
|
|
|
}else {
|
|
|
|
lifeCareOrderDO = lifeCareOrderDao.save(lifeCareOrderDO);
|
|
|
|
return lifeCareOrderDO;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 生活照料代预约-- 废弃用原来的接口
|
|
|
|
* @param jsonData
|
|
|
|
* @param doctorCode
|
|
|
|
* @return
|
|
|
|
*/
|
|
|
|
@Transactional
|
|
|
|
public JSONObject proxyCreate(String jsonData,String doctorCode) {
|
|
|
|
JSONObject result = new JSONObject();
|
|
|
|
JSONObject jsonObjectParam;
|
|
|
|
try {
|
|
|
|
jsonObjectParam = JSONObject.parseObject(jsonData);
|
|
|
|
} catch (Exception e) {
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
|
String failMsg = "参数转换成JSON对象异常:" + e.getMessage();
|
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
|
logger.error(failMsg);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
LifeCareOrderDO orderDO = null;
|
|
|
|
try {
|
|
|
|
orderDO = EntityUtils.jsonToEntity(jsonObjectParam.get("order").toString(), LifeCareOrderDO.class);
|
|
|
|
} catch (Exception e) {
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
|
String failMsg = "生活照料工单服务基本信息:" + e.getMessage();
|
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
|
logger.error(failMsg);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
|
|
if(StringUtils.isEmpty(orderDO.getPatient())){
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
|
String failMsg = "当前服务对象code为空,请联系管理员检查参数!patient = " + orderDO.getPatient();
|
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
|
logger.error(failMsg);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
//医生代预约
|
|
|
|
orderDO.setType(3);
|
|
|
|
BaseDoctorDO doctorDO = doctorDao.findById(doctorCode);
|
|
|
|
orderDO.setProxyPatient(doctorCode);
|
|
|
|
orderDO.setProxyPatientName(doctorDO.getName());
|
|
|
|
orderDO.setProxyPatientPhone(doctorDO.getMobile());
|
|
|
|
//判断工单是否已存在,新建或者编辑
|
|
|
|
if(StringUtils.isBlank(orderDO.getId())) {
|
|
|
|
//已取消的订单也可以申请
|
|
|
|
boolean bool = lifeCareOrderDao.existsByPatientAndStatusIn(orderDO.getPatient(),
|
|
|
|
new Integer[]{LifeCareOrderDO.Status.waitForAccept.getType()
|
|
|
|
});
|
|
|
|
|
|
|
|
if(bool){
|
|
|
|
String failMsg = "当前服务对象存在未完成的生活照料,请先完成该服务!";
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
|
logger.error(failMsg);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
orderDO.setNumber(orderNoService.getOrderNo(1));
|
|
|
|
orderDO.setHospital(jsonObjectParam.getJSONObject("hospital").get("code").toString());
|
|
|
|
orderDO.setCreateTime(new Date());
|
|
|
|
orderDO.setCreateUser(orderDO.getProxyPatient());
|
|
|
|
orderDO.setCreateUserName(orderDO.getProxyPatientName());
|
|
|
|
}else {
|
|
|
|
LifeCareOrderDO serviceOrderDO = lifeCareOrderDao.findOne(orderDO.getId());
|
|
|
|
// 删除出诊医生或服务项
|
|
|
|
Boolean b = this.orderWithFeeDelete(jsonObjectParam, serviceOrderDO);
|
|
|
|
if(b){
|
|
|
|
String failMsg = "删除服务项失败!";
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.fail);
|
|
|
|
result.put(ResponseContant.resultMsg, failMsg);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
orderDO.setNumber(serviceOrderDO.getNumber());
|
|
|
|
orderDO.setHospital(serviceOrderDO.getHospital());
|
|
|
|
orderDO.setUpdateTime(new Date());
|
|
|
|
orderDO.setUpdateUser(orderDO.getProxyPatient());
|
|
|
|
orderDO.setUpdateUserName(orderDO.getProxyPatientName());
|
|
|
|
}
|
|
|
|
orderDO.setStatus(2);
|
|
|
|
orderDO.setType(3);
|
|
|
|
this.save(orderDO);
|
|
|
|
result.put("orderId",orderDO.getId());
|
|
|
|
//新增工单与服务项费用关联关系
|
|
|
|
if (orderWithPackageItemFeeAdd(result, jsonObjectParam, orderDO,doctorCode)) {return result;}
|
|
|
|
|
|
|
|
result.put(ResponseContant.resultFlag, ResponseContant.success);
|
|
|
|
return result;
|
|
|
|
}
|
|
|
|
|
|
}
|
|
}
|