Bläddra i källkod

Merge branch 'dev' of http://192.168.1.220:10080/Amoy2/wlyy2.0 into dev

 Conflicts:
	common/common-entity/sql记录
liubing 3 år sedan
förälder
incheckning
6ea420e9d3

+ 15 - 0
common/common-entity/sql记录

@ -1392,6 +1392,21 @@ ALTER table base_patient_sos_contacts add column update_info VARCHAR(1000) defau
-- 20210828
alter table base_patient add `sign_status` tinyint(1) DEFAULT NULL COMMENT '签约状态 1已签约 0未签约';
-- 20210831 已执行
CREATE TABLE `base_admin_service_dynamic` (
  `id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主键id',
  `patient` varchar(255) DEFAULT NULL COMMENT '居民code',
  `name` varchar(50) DEFAULT NULL COMMENT '居民姓名',
  `type` int(1) DEFAULT NULL COMMENT '1上门辅导   2生活照料',
  `number` varchar(20) DEFAULT NULL COMMENT '工单编号',
  `value` varchar(255) DEFAULT NULL COMMENT '操作',
  `doctor` varchar(255) DEFAULT NULL COMMENT '接单医生code',
  `doctor_name` varchar(255) DEFAULT NULL COMMENT '接单医生',
  `create_time` datetime DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COMMENT='调度分析,管理员调度实时动态';
--20210831
CREATE TABLE `wlyy_patient_safe_area` (
  `id` int(11) NOT NULL AUTO_INCREMENT,

+ 92 - 0
common/common-entity/src/main/java/com/yihu/jw/entity/door/BaseAdminServiceDynamic.java

@ -0,0 +1,92 @@
package com.yihu.jw.entity.door;
/***
 * @ClassName: BaseAdminServiceDynamic
 * @Description:
 * @Auther: shi kejing
 * @Date: 2021/8/31 15:24
 */
import com.yihu.jw.entity.iot.gateway.IdEntity;
import javax.persistence.Entity;
import javax.persistence.SequenceGenerator;
import javax.persistence.Table;
@Entity
@Table(name = "base_admin_service_dynamic")
@SequenceGenerator(name="id_generated", sequenceName="base_admin_service_dynamic")
public class BaseAdminServiceDynamic extends IdEntity {
    private String patient;
    private String name;
    private Integer type;  //1上门辅导   2生活照料
    private String number;
    private String value;
    private String createTime;
    private String doctor;
    private String doctorName;
    public String getPatient() {
        return patient;
    }
    public void setPatient(String patient) {
        this.patient = patient;
    }
    public String getName() {
        return name;
    }
    public void setName(String name) {
        this.name = name;
    }
    public Integer getType() {
        return type;
    }
    public void setType(Integer type) {
        this.type = type;
    }
    public String getNumber() {
        return number;
    }
    public void setNumber(String number) {
        this.number = number;
    }
    public String getValue() {
        return value;
    }
    public void setValue(String value) {
        this.value = value;
    }
    public String getCreateTime() {
        return createTime;
    }
    public void setCreateTime(String createTime) {
        this.createTime = createTime;
    }
    public String getDoctor() {
        return doctor;
    }
    public void setDoctor(String doctor) {
        this.doctor = doctor;
    }
    public String getDoctorName() {
        return doctorName;
    }
    public void setDoctorName(String doctorName) {
        this.doctorName = doctorName;
    }
}

+ 15 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/dao/lifeCare/BaseAdminServiceDynamicDao.java

@ -0,0 +1,15 @@
package com.yihu.jw.care.dao.lifeCare;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
import com.yihu.jw.entity.door.BaseAdminServiceDynamic;
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
import org.springframework.data.repository.PagingAndSortingRepository;
/***
 * @ClassName: BaseAdminServiceDynamicDao
 * @Description:
 * @Auther: shi kejing
 * @Date: 2021/8/31 15:28
 */
public interface BaseAdminServiceDynamicDao extends PagingAndSortingRepository<BaseAdminServiceDynamic, String>, JpaSpecificationExecutor<BaseAdminServiceDynamic> {
}

+ 113 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/endpoint/admin/AdminDoorCoachOrderController.java

@ -0,0 +1,113 @@
package com.yihu.jw.care.endpoint.admin;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.endpoint.BaseController;
import com.yihu.jw.care.service.admin.AdminDoorCoachOrderService;
import com.yihu.jw.care.service.doorCoach.DoctorDoorCoachOrderService;
import com.yihu.jw.restmodel.ResponseContant;
import com.yihu.jw.restmodel.web.endpoint.EnvelopRestEndpoint;
import io.swagger.annotations.Api;
import io.swagger.annotations.ApiOperation;
import io.swagger.annotations.ApiParam;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.MediaType;
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import java.util.ArrayList;
import java.util.List;
/***
 * @ClassName: AdminDoorCoachOrderController
 * @Description: 管理员调度端终端
 * @Auther: shi kejing
 * @Date: 2021/8/31 14:38
 */
@RestController
@RequestMapping(value = "/admin/doorCoach/serviceOrder", produces = MediaType.APPLICATION_JSON_UTF8_VALUE)
@Api(description = "医生端-上门辅导")
public class AdminDoorCoachOrderController extends EnvelopRestEndpoint {
    @Autowired
    private DoctorDoorCoachOrderService doctorDoorCoachOrderService;
    @Autowired
    private AdminDoorCoachOrderService adminDoorCoachOrderService;
    private BaseController baseController = new BaseController();
    @GetMapping(value = "queryBriefList")
    @ApiOperation(value = "调度员查询工单列表")
    public String queryBriefList(
            @ApiParam(name = "dispatcher", value = "调度员code") @RequestParam(value = "dispatcher", required = true) String dispatcher,
            @ApiParam(name = "hospital", value = "调度员所在机构code") @RequestParam(value = "hospital", required = true) String hospital,
            @ApiParam(name = "orderNumber", value = "工单号") @RequestParam(value = "orderNumber", required = false) String orderNumber,
            @ApiParam(name = "patientName", value = "工单服务对象姓名") @RequestParam(value = "patientName", required = false) String patientName,
            @ApiParam(name = "phone", value = "发起工单的居民的联系方式") @RequestParam(value = "phone", required = false) String phone,
            @ApiParam(name = "status", value = "工单状态") @RequestParam(value = "status", required = false) Integer status,
            @ApiParam(name = "patientType", value = "居民类型") @RequestParam(value = "patientType", required = false) String patientType,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1") @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15") @RequestParam(value = "size") int size) {
        try{
            JSONObject result = doctorDoorCoachOrderService.queryBriefList(dispatcher,hospital, orderNumber, patientName, phone, status,patientType, page, size);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return baseController.error(-1,result.getString(ResponseContant.resultMsg));
            }
            int count = result.getIntValue(ResponseContant.count);
            JSONObject object = new JSONObject();
            object.put("total",count);
            object.put("detailModelList",result.get(ResponseContant.resultMsg));
            object.put("currPage",page);
            object.put("pageSize",size);
            return baseController.write(200,"查询成功","data",object);
        }catch (Exception e){
            return baseController.errorResult(e);
        }
    }
    @GetMapping(value = "queryDoctorList")
    @ApiOperation(value = "服务人员列表(医生列表)")
    public String queryDoctorList(
            @ApiParam(name = "hospital", value = "调度员所在的机构code") @RequestParam(value = "hospital", required = false) String hospital,
            @ApiParam(name = "doctorName", value = "医生姓名") @RequestParam(value = "doctorName", required = false) String doctorName,
            @ApiParam(name = "status", value = "医生接单状态,状态为全部时不传") @RequestParam(value = "status", required = false) String status,
            @ApiParam(name = "patient", value = "居民code") @RequestParam(value = "patient", required = false) String patient,
            @ApiParam(name = "page", value = "分页大小", required = true, defaultValue = "1") @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true, defaultValue = "15") @RequestParam(value = "size") int size) {
        try{
            doctorDoorCoachOrderService.initDoorStatus(hospital);
            JSONObject result = doctorDoorCoachOrderService.queryDoctorList(patient,hospital, doctorName, status, page, size);
            if (result.getIntValue(ResponseContant.resultFlag) == ResponseContant.fail) {
                return baseController.error(-1,result.getString(ResponseContant.resultMsg));
            }
            int count = result.getIntValue(ResponseContant.count);
            JSONObject object = new JSONObject();
            object.put("total",count);
            if (count > 0){
                object.put("detailModelList",result.get(ResponseContant.resultMsg));
            }else {
                List list = new ArrayList();
                object.put("detailModelList",list);
            }
            object.put("currPage",page);
            object.put("pageSize",size);
            return baseController.write(200,"查询成功","data",object);
        }catch (Exception e){
            return baseController.errorResult(e);
        }
    }
    @GetMapping(value = "getServiceDynamic")
    @ApiOperation(value = "管理员调度实时动态")
    public String getServiceDynamic(
            @ApiParam(name = "page", value = "分页大小", required = true) @RequestParam(value = "page") int page,
            @ApiParam(name = "size", value = "页码", required = true) @RequestParam(value = "size") int size) {
        try{
            return baseController.write(200,"查询成功","data",adminDoorCoachOrderService.getServiceDynamic(page,size));
        }catch (Exception e){
            return baseController.errorResult(e);
        }
    }
}

+ 32 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/admin/AdminDoorCoachOrderService.java

@ -0,0 +1,32 @@
package com.yihu.jw.care.service.admin;
import com.yihu.jw.care.dao.lifeCare.BaseAdminServiceDynamicDao;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.jdbc.core.JdbcTemplate;
import org.springframework.stereotype.Service;
import java.util.List;
import java.util.Map;
/***
 * @ClassName: AdminDoorCoachOrderService
 * @Description:
 * @Auther: shi kejing
 * @Date: 2021/8/31 16:40
 */
@Service
public class AdminDoorCoachOrderService {
    @Autowired
    private BaseAdminServiceDynamicDao baseAdminServiceDynamicDao;
    @Autowired
    private JdbcTemplate jdbcTemplate;
    public List<Map<String , Object>> getServiceDynamic(Integer page,Integer size){
        size = (page-1)*size;
        String sql = "SELECT * FROM base_admin_service_dynamic ORDER BY create_time DESC LIMIT "+page+","+size+"";
        List<Map<String , Object>> list = jdbcTemplate.queryForList(sql);
        return list;
    }
}

+ 50 - 1
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doorCoach/DoctorDoorCoachOrderService.java

@ -4,6 +4,7 @@ import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.fasterxml.jackson.databind.ObjectMapper;
import com.yihu.jw.care.dao.doorCoach.*;
import com.yihu.jw.care.dao.lifeCare.BaseAdminServiceDynamicDao;
import com.yihu.jw.care.service.consult.ConsultTeamService;
import com.yihu.jw.care.util.EntranceUtil;
import com.yihu.jw.care.util.MessageUtil;
@ -17,6 +18,7 @@ import com.yihu.jw.entity.base.org.BaseOrgDO;
import com.yihu.jw.entity.base.patient.BasePatientDO;
import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.care.doorCoach.*;
import com.yihu.jw.entity.door.BaseAdminServiceDynamic;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
import com.yihu.jw.hospital.prescription.dao.PrescriptionDao;
@ -94,7 +96,8 @@ public class DoctorDoorCoachOrderService {
    private BaseOrgDao hospitalDao;
    @Autowired
    private ConsultTeamService consultTeamService;
    @Autowired
    private BaseAdminServiceDynamicDao baseAdminServiceDynamicDao;
    @Autowired
    private MessageDao messageDao;
    @Autowired
@ -401,6 +404,21 @@ public class DoctorDoorCoachOrderService {
        baseDoorCoachOrderDao.save(doorServiceOrder);
        try {
            BaseAdminServiceDynamic adminServiceDynamic = new BaseAdminServiceDynamic();
            adminServiceDynamic.setCreateTime(DateUtil.getTime());
            adminServiceDynamic.setName(doorServiceOrder.getPatientName());
            adminServiceDynamic.setPatient(doorServiceOrder.getPatient());
            adminServiceDynamic.setDoctor(doorServiceOrder.getDoctor());
            adminServiceDynamic.setDoctorName(doorServiceOrder.getDoctorName());
            adminServiceDynamic.setNumber(doorServiceOrder.getNumber());
            adminServiceDynamic.setType(1);
            adminServiceDynamic.setValue("已接单,工单编号:");
            baseAdminServiceDynamicDao.save(adminServiceDynamic);
        }catch (Exception e) {
            logger.info(e.getMessage());
        }
        systemMessageDao.orderMessageDel(doorServiceOrder.getDoctor(),orderId);
        if(doorServiceOrder.getType() == null|| doorServiceOrder.getType() != 3) {
@ -491,6 +509,21 @@ public class DoctorDoorCoachOrderService {
        doorServiceOrder.setCancelReason(reason);   // 拒绝原因
        doorServiceOrder.setCancelTime(new Date());
        try {
            BaseAdminServiceDynamic baseAdminServiceDynamic = new BaseAdminServiceDynamic();
            baseAdminServiceDynamic.setCreateTime(DateUtil.getTime());
            baseAdminServiceDynamic.setName(doorServiceOrder.getPatientName());
            baseAdminServiceDynamic.setPatient(doorServiceOrder.getPatient());
            baseAdminServiceDynamic.setDoctor(doorServiceOrder.getDoctor());
            baseAdminServiceDynamic.setDoctorName(doorServiceOrder.getDoctorName());
            baseAdminServiceDynamic.setNumber(doorServiceOrder.getNumber());
            baseAdminServiceDynamic.setType(1);
            baseAdminServiceDynamic.setValue("已拒单,工单编号:");
            baseAdminServiceDynamicDao.save(baseAdminServiceDynamic);
        }catch (Exception e) {
            logger.info(e.getMessage());
        }
        baseDoorCoachOrderDao.save(doorServiceOrder);
    }
@ -599,6 +632,22 @@ public class DoctorDoorCoachOrderService {
        one.setPatientConfirmFinishTime(new Date());
        // 更新记录
        this.setUpdateColumnInfo(one);
        try {
            BaseAdminServiceDynamic baseAdminServiceDynamic = new BaseAdminServiceDynamic();
            baseAdminServiceDynamic.setType(1);
            baseAdminServiceDynamic.setValue("已完成服务,工单编号:");
            baseAdminServiceDynamic.setNumber(one.getNumber());
            baseAdminServiceDynamic.setDoctorName(one.getDoctorName());
            baseAdminServiceDynamic.setDoctor(one.getDoctor());
            baseAdminServiceDynamic.setPatient(one.getPatient());
            baseAdminServiceDynamic.setName(one.getPatientName());
            baseAdminServiceDynamic.setCreateTime(DateUtil.getTime());
            baseAdminServiceDynamicDao.save(baseAdminServiceDynamic);
        }catch (Exception e){
            logger.info(e.getMessage());
        }
        // 计算保存服务总的支付费用
        Integer times = patientDoorCoachOrderService.countPatientDoorTimes(one.getPatient());
        String jsonData = this.serverPackagePriceByOrderId(orderId);

+ 20 - 0
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/doorCoach/PatientDoorCoachOrderService.java

@ -3,6 +3,7 @@ package com.yihu.jw.care.service.doorCoach;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.doorCoach.*;
import com.yihu.jw.care.dao.lifeCare.BaseAdminServiceDynamicDao;
import com.yihu.jw.care.service.consult.ConsultTeamService;
import com.yihu.jw.care.service.message.BaseServiceNewsService;
import com.yihu.jw.care.service.pay.PayService;
@ -16,6 +17,7 @@ import com.yihu.jw.entity.base.wx.BasePatientWechatDo;
import com.yihu.jw.entity.care.doorCoach.*;
import com.yihu.jw.entity.care.lifeCare.LifeCareFeeDetailDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
import com.yihu.jw.entity.door.BaseAdminServiceDynamic;
import com.yihu.jw.entity.hospital.message.SystemMessageDO;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.hospital.message.dao.SystemMessageDao;
@ -103,6 +105,8 @@ public class PatientDoorCoachOrderService extends BaseJpaService<BaseDoorCoachOr
    private PayService payService;
    @Autowired
    private BusinessOrderDao businessOrderDao;
    @Autowired
    private BaseAdminServiceDynamicDao baseAdminServiceDynamicDao;
    /**
     * 创建上门辅导服务工单
@ -190,6 +194,22 @@ public class PatientDoorCoachOrderService extends BaseJpaService<BaseDoorCoachOr
            orderDO.setType(2);
        }
        orderDO.setServiceStatus("1");
        try {
            BaseAdminServiceDynamic baseAdminServiceDynamic = new BaseAdminServiceDynamic();
            baseAdminServiceDynamic.setDoctorName(orderDO.getDoctorName());
            baseAdminServiceDynamic.setDoctor(orderDO.getDoctor());
            baseAdminServiceDynamic.setName(orderDO.getPatientName());
            baseAdminServiceDynamic.setPatient(orderDO.getPatient());
            baseAdminServiceDynamic.setType(1);
            baseAdminServiceDynamic.setValue("创建了上门辅导申请");
            baseAdminServiceDynamic.setCreateTime(DateUtil.getTime());
            baseAdminServiceDynamic.setName(orderDO.getNumber());
            baseAdminServiceDynamicDao.save(baseAdminServiceDynamic);
        }catch (Exception e) {
            logger.info(e.getMessage());
        }
        this.save(orderDO);
        result.put("orderId",orderDO.getId());
        result.put(ResponseContant.resultFlag, ResponseContant.success);

+ 36 - 5
svr/svr-cloud-care/src/main/java/com/yihu/jw/care/service/lifeCare/LifeCareOrderService.java

@ -2,10 +2,7 @@ package com.yihu.jw.care.service.lifeCare;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.yihu.jw.care.dao.lifeCare.LifeCareCancelLogDao;
import com.yihu.jw.care.dao.lifeCare.LifeCareFeeDetailDao;
import com.yihu.jw.care.dao.lifeCare.LifeCareItemDictDao;
import com.yihu.jw.care.dao.lifeCare.LifeCareOrderDao;
import com.yihu.jw.care.dao.lifeCare.*;
import com.yihu.jw.care.dao.team.BaseTeamMemberDao;
import com.yihu.jw.care.service.common.OrderNoService;
import com.yihu.jw.care.service.message.BaseServiceNewsService;
@ -23,6 +20,7 @@ import com.yihu.jw.entity.care.lifeCare.LifeCareCancelLogDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareFeeDetailDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareItemDictDO;
import com.yihu.jw.entity.care.lifeCare.LifeCareOrderDO;
import com.yihu.jw.entity.door.BaseAdminServiceDynamic;
import com.yihu.jw.entity.order.BusinessOrderDO;
import com.yihu.jw.order.dao.BusinessOrderDao;
import com.yihu.jw.org.dao.BaseOrgDao;
@ -91,7 +89,8 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
    private BusinessOrderDao businessOrderDao;
    @Autowired
    private BaseTeamMemberDao baseTeamMemberDao;
    @Autowired
    private BaseAdminServiceDynamicDao baseAdminServiceDynamicDao;
    /**
     * 记录完成情况
     * @param orderId
@ -135,6 +134,22 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
        lifeCareOrderDO.setCompleteRemark(completeRemark);
        lifeCareOrderDO.setCompleteTime(new Date());
        lifeCareOrderDao.save(lifeCareOrderDO);
        try {
            BaseAdminServiceDynamic baseAdminServiceDynamic = new BaseAdminServiceDynamic();
            baseAdminServiceDynamic.setCreateTime(DateUtil.getTime());
            baseAdminServiceDynamic.setType(2);
            baseAdminServiceDynamic.setNumber(lifeCareOrderDO.getNumber());
            baseAdminServiceDynamic.setValue("完成了生活照料");
            baseAdminServiceDynamic.setPatient(lifeCareOrderDO.getPatient());
            baseAdminServiceDynamic.setName(lifeCareOrderDO.getPatientName());
            baseAdminServiceDynamic.setDoctor(lifeCareOrderDO.getDoctor());
            baseAdminServiceDynamic.setDoctorName(lifeCareOrderDO.getDoctorName());
            baseAdminServiceDynamicDao.save(baseAdminServiceDynamic);
        }catch (Exception e) {
            logger.info(e.getMessage());
        }
        return 0;
    }
@ -553,6 +568,22 @@ public class LifeCareOrderService extends BaseJpaService<LifeCareOrderDO, LifeCa
        orderDO.setNumber(orderNoService.getOrderNo(1));
        orderDO.setCreateTime(new Date());
        orderDO.setStatus(0);//待付款状态
        try {
            BaseAdminServiceDynamic baseAdminServiceDynamic = new BaseAdminServiceDynamic();
            baseAdminServiceDynamic.setValue("申请了生活照料");
            baseAdminServiceDynamic.setType(2);
            baseAdminServiceDynamic.setNumber(orderDO.getNumber());
            baseAdminServiceDynamic.setDoctorName(orderDO.getDoctorName());
            baseAdminServiceDynamic.setDoctor(orderDO.getDoctor());
            baseAdminServiceDynamic.setPatient(orderDO.getPatient());
            baseAdminServiceDynamic.setNumber(orderDO.getPatientName());
            baseAdminServiceDynamic.setCreateTime(DateUtil.getTime());
            baseAdminServiceDynamicDao.save(baseAdminServiceDynamic);
        } catch (Exception e) {
            logger.info(e.getMessage());
        }
        this.save(orderDO);
        result.put("orderId",orderDO.getId());
        orderDO.setTotalFee(new BigDecimal(0));