Selaa lähdekoodia

订单签收发送医生签收任务

wjj 1 viikko sitten
vanhempi
commit
95ce39b480

+ 4 - 0
fs-service/src/main/java/com/fs/his/mapper/FsSopDoctorTaskMapper.java

@@ -73,4 +73,8 @@ public interface FsSopDoctorTaskMapper extends BaseMapper<FsSopDoctorTask>{
      */
     @Select("SELECT count(*) FROM fs_sop_doctor_task WHERE doctor_member_sales_id = #{memberSalesId}")
     Long selectUnprocessedDoctorTaskCount(@Param("memberSalesId") Long memberSalesId);
+
+    //根据订单号查询签收处理的医生任务
+    @Select("SELECT count(*) FROM fs_sop_doctor_task WHERE order_code = #{orderCode} AND handle_type = 1 AND `status` = 1")
+    Integer selectReceiveOrder(@Param("orderCode") String orderCode);
 }

+ 31 - 0
fs-service/src/main/java/com/fs/his/service/impl/FsStoreOrderServiceImpl.java

@@ -333,6 +333,9 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
 
     //ERP 类型到服务的映射
     private Map<Integer, IErpOrderService> erpServiceMap;
+    @Autowired
+    private FsSopDoctorTaskMapper fsSopDoctorTaskMapper;
+
     @PostConstruct
     public void initErpServiceMap() {
         erpServiceMap = new HashMap<>();
@@ -705,6 +708,34 @@ public class FsStoreOrderServiceImpl implements IFsStoreOrderService {
         int i = fsStoreOrderMapper.updateFsStoreOrder(o1);
         fsStoreOrderLogsService.create(order.getOrderId(), FsStoreOrderLogEnum.FINISH_ORDER.getValue(),
                 opeName + " " +FsStoreOrderLogEnum.FINISH_ORDER.getDesc());
+
+        try {
+            FsSopDoctorTask task = redisCache.getCacheObject("doctorMemberSales:" + order.getOrderCode());
+            if (task != null) {
+                Integer receiveOrder = fsSopDoctorTaskMapper.selectReceiveOrder(order.getOrderCode());
+                if (receiveOrder != null && receiveOrder > 0) {
+                    //存在签收提醒任务
+                    FsSopDoctorTask doctorTask = new FsSopDoctorTask();
+                    doctorTask.setRemark(order.getOrderCode()+":已签收,随访客户指导用药");
+                    doctorTask.setDoctorId(task.getDoctorId());
+                    doctorTask.setDoctorMemberSalesId(task.getDoctorMemberSalesId());
+                    doctorTask.setQwExternalContactId(task.getQwExternalContactId());
+                    doctorTask.setStatus(0);
+                    doctorTask.setCreateTime(DateTime.now());
+                    doctorTask.setCompanyUserId(task.getCompanyUserId());
+                    doctorTask.setUserId(task.getUserId());
+                    fsSopDoctorTaskMapper.insertFsSopDoctorTask(doctorTask);
+                } else {
+                    throw new CustomException("没有签收任务数据");
+                }
+            } else {
+                throw new CustomException("没有签收数据");
+            }
+
+        } catch (Exception e) {
+            logger.info("添加医生签收任务失败,订单号,失败原因:{},{},",order.getOrderCode(),e.getMessage());
+            //throw new RuntimeException(e);
+        }
         return i;
     }
 

+ 1 - 0
fs-service/src/main/java/com/fs/qw/service/impl/FsDoctorMemberSalesServiceImpl.java

@@ -42,6 +42,7 @@ public class FsDoctorMemberSalesServiceImpl extends ServiceImpl<FsDoctorMemberSa
     @Autowired
     private QwExternalContactMapper externalContactMapper;
 
+    @Transactional
     @Override
     public R push(MemberSalesParam param) {