|
@ -0,0 +1,176 @@
|
|
|
package com.yihu.wlyy.service.app.sign;
|
|
|
|
|
|
import com.alibaba.fastjson.JSONObject;
|
|
|
import com.yihu.wlyy.entity.patient.SignFamily;
|
|
|
import com.yihu.wlyy.entity.service.Service;
|
|
|
import com.yihu.wlyy.entity.service.ServiceItem;
|
|
|
import com.yihu.wlyy.entity.service.SignFamilyService;
|
|
|
import com.yihu.wlyy.entity.service.SignFamilyServiceItem;
|
|
|
import com.yihu.wlyy.repository.patient.SignFamilyDao;
|
|
|
import com.yihu.wlyy.repository.service.ServiceDao;
|
|
|
import com.yihu.wlyy.repository.service.ServiceItemDao;
|
|
|
import com.yihu.wlyy.repository.service.SignFamilyServiceDao;
|
|
|
import com.yihu.wlyy.repository.service.SignFamilyServiceItemDao;
|
|
|
import org.springframework.beans.BeanUtils;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.jdbc.core.BeanPropertyRowMapper;
|
|
|
import org.springframework.jdbc.core.JdbcTemplate;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
import org.springframework.util.StringUtils;
|
|
|
|
|
|
import java.util.ArrayList;
|
|
|
import java.util.Date;
|
|
|
import java.util.List;
|
|
|
import java.util.UUID;
|
|
|
|
|
|
/**
|
|
|
* Created by chenweida on 2017/8/8.
|
|
|
* 签约服务 服务类型
|
|
|
*/
|
|
|
@org.springframework.stereotype.Service
|
|
|
public class SignFamilyServiceService {
|
|
|
@Autowired
|
|
|
private ServiceDao serviceDao;
|
|
|
@Autowired
|
|
|
private ServiceItemDao serviceItemDao;
|
|
|
@Autowired
|
|
|
private SignFamilyDao signFamilyDao;
|
|
|
@Autowired
|
|
|
private SignFamilyServiceDao signFamilyServiceDao;
|
|
|
@Autowired
|
|
|
private SignFamilyServiceItemDao signFamilyServiceItemDao;
|
|
|
@Autowired
|
|
|
private JdbcTemplate jdbcTemplate;
|
|
|
|
|
|
/**
|
|
|
* 给患者批量分配服务
|
|
|
*
|
|
|
* @param patients 患者code
|
|
|
* @param serviceCode 服务code
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@Transactional
|
|
|
public JSONObject patientsAddService(List<String> patients, String serviceCode) throws Exception {
|
|
|
JSONObject jo = new JSONObject();
|
|
|
List<String> errorPatient = new ArrayList<>();
|
|
|
Service service = serviceDao.findByCode(serviceCode);
|
|
|
List<ServiceItem> serviceItems = serviceItemDao.findByServiceCode(serviceCode);
|
|
|
|
|
|
List<SignFamilyService> saveSignFamilyServiceList = new ArrayList<>();
|
|
|
List<SignFamilyServiceItem> saveSignFamilyServiceItemeList = new ArrayList<>();
|
|
|
|
|
|
for (String patientCode : patients) {
|
|
|
//判断患者是否有已经扣费的签约
|
|
|
SignFamily sgnFamily = this.getSignFamily(patientCode);
|
|
|
if (sgnFamily == null || sgnFamily.getNum() == 0 || sgnFamily.getNum() == null) {
|
|
|
errorPatient.add(patientCode);
|
|
|
continue;
|
|
|
}
|
|
|
//添加服务
|
|
|
SignFamilyService signFamilyService = new SignFamilyService();
|
|
|
signFamilyService.setServiceCode(service.getCode());
|
|
|
String signServiceCode = UUID.randomUUID().toString();
|
|
|
signFamilyService.setCode(signServiceCode);
|
|
|
signFamilyService.setCreateTime(new Date());
|
|
|
signFamilyService.setSignCode(sgnFamily.getCode());
|
|
|
signFamilyService.setSignTime(new Date());
|
|
|
signFamilyService.setDel(1);
|
|
|
saveSignFamilyServiceList.add(signFamilyService);
|
|
|
//添加服务项
|
|
|
for (ServiceItem oneServiceItem : serviceItems) {
|
|
|
SignFamilyServiceItem signFamilyServiceItem = new SignFamilyServiceItem();
|
|
|
signFamilyServiceItem.setCode(UUID.randomUUID().toString());
|
|
|
signFamilyServiceItem.setCreateTime(new Date());
|
|
|
signFamilyServiceItem.setDel(1);
|
|
|
signFamilyServiceItem.setServiceCode(service.getCode());
|
|
|
signFamilyServiceItem.setServiceItemCode(oneServiceItem.getCode());
|
|
|
signFamilyServiceItem.setSignCode(sgnFamily.getCode());
|
|
|
signFamilyServiceItem.setSignServiceCode(signServiceCode);
|
|
|
saveSignFamilyServiceItemeList.add(signFamilyServiceItem);
|
|
|
}
|
|
|
}
|
|
|
signFamilyServiceDao.save(saveSignFamilyServiceList);
|
|
|
signFamilyServiceItemDao.save(saveSignFamilyServiceItemeList);
|
|
|
|
|
|
jo.put("status", 1);//执行成功
|
|
|
jo.put("errorPatients", errorPatient);//未成功的患者
|
|
|
return jo;
|
|
|
}
|
|
|
|
|
|
|
|
|
/**
|
|
|
* 给患者分配服务
|
|
|
*
|
|
|
* @param patient 患者code
|
|
|
* @param serviceCode 服务code
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
@Transactional
|
|
|
public boolean patientAddService(String patient, String serviceCode) throws Exception {
|
|
|
Service service = serviceDao.findByCode(serviceCode);
|
|
|
List<ServiceItem> serviceItems = serviceItemDao.findByServiceCode(serviceCode);
|
|
|
|
|
|
|
|
|
//判断患者是否有已经扣费的签约
|
|
|
SignFamily sgnFamily = this.getSignFamily(patient);
|
|
|
|
|
|
//添加服务
|
|
|
SignFamilyService signFamilyService = new SignFamilyService();
|
|
|
signFamilyService.setServiceCode(service.getCode());
|
|
|
String signServiceCode = UUID.randomUUID().toString();
|
|
|
signFamilyService.setCode(signServiceCode);
|
|
|
signFamilyService.setCreateTime(new Date());
|
|
|
signFamilyService.setSignCode(sgnFamily.getCode());
|
|
|
signFamilyService.setSignTime(new Date());
|
|
|
signFamilyService.setDel(1);
|
|
|
//添加服务项
|
|
|
List<SignFamilyServiceItem> saveSignFamilyServiceItemeList = new ArrayList<>();
|
|
|
for (ServiceItem oneServiceItem : serviceItems) {
|
|
|
SignFamilyServiceItem signFamilyServiceItem = new SignFamilyServiceItem();
|
|
|
signFamilyServiceItem.setCode(UUID.randomUUID().toString());
|
|
|
signFamilyServiceItem.setCreateTime(new Date());
|
|
|
signFamilyServiceItem.setDel(1);
|
|
|
signFamilyServiceItem.setServiceCode(service.getCode());
|
|
|
signFamilyServiceItem.setServiceItemCode(oneServiceItem.getCode());
|
|
|
signFamilyServiceItem.setSignCode(sgnFamily.getCode());
|
|
|
signFamilyServiceItem.setSignServiceCode(signServiceCode);
|
|
|
saveSignFamilyServiceItemeList.add(signFamilyServiceItem);
|
|
|
}
|
|
|
|
|
|
signFamilyServiceDao.save(signFamilyService);
|
|
|
signFamilyServiceItemDao.save(saveSignFamilyServiceItemeList);
|
|
|
return true;
|
|
|
}
|
|
|
|
|
|
/**
|
|
|
* 查找患者有哪些服务项
|
|
|
*
|
|
|
* @param patient 患者code
|
|
|
* @param serviceCode 服务code
|
|
|
* @return
|
|
|
* @throws Exception
|
|
|
*/
|
|
|
public List<ServiceItem> getPatientServiceItem(String patient, String serviceCode) throws Exception {
|
|
|
StringBuffer sql = new StringBuffer(" SELECT " +
|
|
|
" s.* " +
|
|
|
" FROM " +
|
|
|
" wlyy_service_item s, " +
|
|
|
" wlyy_sign_family_service_item si " +
|
|
|
" WHERE " +
|
|
|
" s.`code` = si.service_item_code ");
|
|
|
if (!StringUtils.isEmpty(patient)) {
|
|
|
sql.append(" and si.patient = '" + patient + "'");
|
|
|
}
|
|
|
if (!StringUtils.isEmpty(serviceCode)) {
|
|
|
sql.append(" and si.service_code = '" + serviceCode + "'");
|
|
|
}
|
|
|
return jdbcTemplate.query(sql.toString(), new BeanPropertyRowMapper(ServiceItem.class));
|
|
|
}
|
|
|
|
|
|
|
|
|
private SignFamily getSignFamily(String patient) {
|
|
|
String sql = "select count(id) num,code from wlyy_sign_family where patient='" + patient + "' ";
|
|
|
List<SignFamily> signFamilies = jdbcTemplate.query(sql, new BeanPropertyRowMapper(SignFamily.class));
|
|
|
return signFamilies.get(0);
|
|
|
}
|
|
|
}
|