szq vor 5 Jahren
Ursprung
Commit
b95a46c784

+ 31 - 0
src/main/java/com/miyzh/dao/OrderDetailDao.java

@@ -0,0 +1,31 @@
+package com.miyzh.dao;
+
+import com.miyzh.entity.OrderDetailTemp;
+import org.apache.ibatis.annotations.Mapper;
+
+import java.util.List;
+
+@Mapper
+public interface OrderDetailDao {
+
+    // 西药销售明细记录(自费)
+    List<OrderDetailTemp> listClcMedOrder(String clinicId);
+
+    // 西药销售明细记录(医保)
+    List<OrderDetailTemp> listInsMedOrder(String clinicId);
+
+    // 中药销售明细记录(自费)
+    List<OrderDetailTemp> listClcChinaMedOrder(String clinicId);
+
+    // 中药销售明细记录(医保)
+    List<OrderDetailTemp> listInsChinaMedOrder(String clinicId);
+
+    // 住院结算销售明细记录(自费)
+    List<OrderDetailTemp> listHosSettlementOrder(String clinicId);
+
+    // 住院结算销售明细记录(医保)
+    List<OrderDetailTemp> listInsHosSettlementOrder(String clinicId);
+
+
+
+}

+ 7 - 0
src/main/java/com/miyzh/entity/MedicineReturnTemp.java

@@ -1,6 +1,7 @@
 package com.miyzh.entity;
 
 import lombok.Data;
+import org.springframework.beans.BeanUtils;
 
 @Data
 public class MedicineReturnTemp extends MedicineReturn {
@@ -13,6 +14,12 @@ public class MedicineReturnTemp extends MedicineReturn {
 
     private String returnTime; //出库时间
 
+    public static MedicineReturn temp2MedRet(MedicineReturnTemp medicineStorageTemp) {
+        MedicineReturn medicineReturn = new MedicineReturn();
+        BeanUtils.copyProperties(medicineStorageTemp, medicineReturn);
+        return medicineReturn;
+    }
+
 }
 
 

+ 1 - 0
src/main/java/com/miyzh/entity/MedicineStorage.java

@@ -9,6 +9,7 @@ public class MedicineStorage extends Medicine {
     private String storageQuantity; //实际入库数量
 
 
+
 }
 
 

+ 7 - 0
src/main/java/com/miyzh/entity/MedicineStorageTemp.java

@@ -1,6 +1,7 @@
 package com.miyzh.entity;
 
 import lombok.Data;
+import org.springframework.beans.BeanUtils;
 
 @Data
 public class MedicineStorageTemp extends MedicineStorage {
@@ -11,6 +12,12 @@ public class MedicineStorageTemp extends MedicineStorage {
 
     private String storageTime; //入库时间
 
+
+    public static MedicineStorage temp2MedSto(MedicineStorageTemp medicineStorageTemp) {
+        MedicineStorage medicineStorage = new MedicineStorage();
+        BeanUtils.copyProperties(medicineStorageTemp, medicineStorage);
+        return medicineStorage;
+    }
 }
 
 

+ 21 - 0
src/main/java/com/miyzh/entity/OrderDetail.java

@@ -0,0 +1,21 @@
+package com.miyzh.entity;
+
+import lombok.Data;
+
+@Data
+public class OrderDetail extends Medicine {
+
+    private String num; //数量
+
+    private String isUnpacking; //拆包标志
+
+    private String queryTime; //查询时间
+
+    private String storePrecordCode; //采购记录编码(医药机构)
+
+    private String storeStorageCode; //入库编码(医药机构)
+
+    private String recipeNo; //处方编码
+
+
+}

+ 58 - 0
src/main/java/com/miyzh/entity/OrderDetailTemp.java

@@ -0,0 +1,58 @@
+package com.miyzh.entity;
+
+import lombok.Data;
+import org.springframework.beans.BeanUtils;
+
+@Data
+public class OrderDetailTemp extends OrderDetail {
+
+    private String misNo; //医保结算单号
+
+    private String settledTypeNo; //结算方式编码
+
+    private String settledTypeName; //结算方式名称
+
+    private String settledstatus; //结算状态
+
+    private String totalAmt; //订单总金额
+
+    private String insuranceAmt; //医保结算金额
+
+    private String operater; //操作员
+
+    private String saleDate; //销售日期
+
+    private String saleTime; //销售时间
+
+    private String buyMedPerson; //购药人
+
+    private String sex; //性别
+
+    private String age; //年龄
+
+    private String idCard; //身份证号
+
+    private String credentialNum; //医保卡号
+
+    private String storeOrderNo; //处方ID
+
+    private String visitCode; //就诊编号
+
+    private String num; //数量
+
+    private String isUnpacking; // 是否拆零
+
+    private String queryTime; // 查询时间
+
+
+    public static OrderDetail temp2OrderDetail(OrderDetailTemp orderDetailTemp) {
+        OrderDetail orderDetail = new OrderDetail();
+        BeanUtils.copyProperties(orderDetailTemp, orderDetail);
+        return orderDetail;
+    }
+
+
+
+}
+
+

+ 9 - 1
src/main/java/com/miyzh/entity/dto/MedicineReturnDto.java

@@ -7,7 +7,7 @@ import lombok.Data;
 import java.util.List;
 
 @Data
-public class MedicineReturnDto extends MedicineReturnTemp {
+public class MedicineReturnDto {
 
     private String storeCode; // 医药机构编码
 
@@ -19,4 +19,12 @@ public class MedicineReturnDto extends MedicineReturnTemp {
 
     private List<MedicineReturn> medicineInfos; //药品/耗材列表
 
+    private String storeReturnCode; //机构出库编码
+
+    private String storeStorageCode; //机构入库编码
+
+    private String returnMan; //出库人
+
+    private String returnTime; //出库时间
+
 }

+ 7 - 2
src/main/java/com/miyzh/entity/dto/MedicineStorageDto.java

@@ -1,13 +1,12 @@
 package com.miyzh.entity.dto;
 
 import com.miyzh.entity.MedicineStorage;
-import com.miyzh.entity.MedicineStorageTemp;
 import lombok.Data;
 
 import java.util.List;
 
 @Data
-public class MedicineStorageDto extends MedicineStorageTemp {
+public class MedicineStorageDto{
 
     private String storeCode; //医药机构编码
 
@@ -17,6 +16,12 @@ public class MedicineStorageDto extends MedicineStorageTemp {
 
     private String storePurchaseType; // 采购平台标识
 
+    private String storeStorageCode; //机构入库编码
+
+    private String storageMan; //入库人
+
+    private String storageTime; //入库时间
+
     private List<MedicineStorage> medicineInfos; //药品/耗材列表
 
 }

+ 11 - 10
src/main/java/com/miyzh/entity/OrderDetails.java

@@ -1,9 +1,17 @@
-package com.miyzh.entity;
+package com.miyzh.entity.dto;
 
+import com.miyzh.entity.MedicineReturn;
+import com.miyzh.entity.MedicineReturnTemp;
+import com.miyzh.entity.OrderDetail;
+import com.miyzh.entity.OrderDetailTemp;
 import lombok.Data;
 
+import java.util.List;
+
 @Data
-public class OrderDetails extends Medicine {
+public class OrderDetailDto{
+
+    private String storeCode; // 医药机构编码
 
     private String storeOrderNo; //机构销售订单编号
 
@@ -35,14 +43,7 @@ public class OrderDetails extends Medicine {
 
     private String credentialNum; //医保卡号
 
-    private String storeStorageCode; //入库编码
-
-    private String recipeNo; //处方编码
-
-    private String num; //数量
-
-    private String isUnpacking; //拆包标志
+    private List<OrderDetail> orderDetails; // 订单列表
 
-    private String queryTime; //查询时间
 
 }

+ 7 - 1
src/main/java/com/miyzh/service/BaseService.java

@@ -1,5 +1,6 @@
 package com.miyzh.service;
 
+import com.miyzh.dao.OrderDetailDao;
 import com.miyzh.entity.Clinic;
 import com.miyzh.entity.MedicineReturn;
 import lombok.extern.slf4j.Slf4j;
@@ -24,6 +25,9 @@ public class BaseService {
     @Autowired
     private MedicineReturnService medicineReturnService;
 
+    @Autowired
+    private OrderDetailService orderDetailService;
+
     private class OutStore {
         private static final String MED_OUT = "1"; //西药销售出库记录
         private static final String CHI_MED_OUT = "2"; //中药销售出库记录
@@ -59,7 +63,7 @@ public class BaseService {
 
             // 入库
 //            medicineStorageService.uploadMedicine(clinicList, InStore.MED_PUR);
-            medicineStorageService.uploadMedicine(clinicList, InStore.CHI_MED_PUR);
+//            medicineStorageService.uploadMedicine(clinicList, InStore.CHI_MED_PUR);
 //            medicineStorageService.uploadMedicine(clinicList, InStore.MED_MED_INBOUND);
 //            medicineStorageService.uploadMedicine(clinicList, InStore.CHI_MED_INBOUND);
 //            medicineStorageService.uploadMedicine(clinicList, InStore.MED_INV);
@@ -76,6 +80,8 @@ public class BaseService {
 //            medicineReturnService.uploadMedicine(clinicList, OutStore.CHI_MED_INV);
 
             // 销售明细
+            orderDetailService.uploadMedicine(clinicList, "1");
+
 
             long syncTime = System.currentTimeMillis();
             log.info("总耗时--{}", startTime - syncTime);

+ 2 - 10
src/main/java/com/miyzh/service/MedicineReturnService.java

@@ -133,11 +133,7 @@ public class MedicineReturnService {
                 medicineReturnDto.setStoreReturnCode(msMap.getKey());
                 List<MedicineReturn> list = msMap.getValue()
                         .stream()
-                        .map(e -> {
-                            MedicineReturn medicineReturn = new MedicineReturn();
-                            BeanUtils.copyProperties(e, medicineReturn);
-                            return medicineReturn;
-                        })
+                        .map(MedicineReturnTemp::temp2MedRet)
                         .collect(Collectors.toList());
                 medicineReturnDto.setMedicineInfos(list);
                 this.upload(medicineReturnDto);
@@ -218,11 +214,7 @@ public class MedicineReturnService {
                         medicineReturnDto.setStoreReturnCode(msMap.getKey());
                         List<MedicineReturn> list = msMap.getValue()
                                 .stream()
-                                .map(e -> {
-                                    MedicineReturn medicineReturn = new MedicineReturn();
-                                    BeanUtils.copyProperties(e, medicineReturn);
-                                    return medicineReturn;
-                                })
+                                .map(MedicineReturnTemp::temp2MedRet)
                                 .collect(Collectors.toList());
                         medicineReturnDto.setMedicineInfos(list);
                         this.upload(medicineReturnDto);

+ 2 - 10
src/main/java/com/miyzh/service/MedicineStorageService.java

@@ -115,11 +115,7 @@ public class MedicineStorageService {
                 medicineStorageDto.setStoreStorageCode(msMap.getKey());
                 List<MedicineStorage> list = msMap.getValue()
                         .stream()
-                        .map(e -> {
-                            MedicineStorage medicineStorage = new MedicineStorage();
-                            BeanUtils.copyProperties(e, medicineStorage);
-                            return medicineStorage;
-                        })
+                        .map(MedicineStorageTemp::temp2MedSto)
                         .collect(Collectors.toList());
                 medicineStorageDto.setMedicineInfos(list);
                 this.upload(medicineStorageDto);
@@ -186,11 +182,7 @@ public class MedicineStorageService {
                         medicineStorageDto.setStoreStorageCode(msMap.getKey());
                         List<MedicineStorage> list = msMap.getValue()
                                 .stream()
-                                .map(e -> {
-                                    MedicineStorage medicineStorage = new MedicineStorage();
-                                    BeanUtils.copyProperties(e, medicineStorage);
-                                    return medicineStorage;
-                                })
+                                .map(MedicineStorageTemp::temp2MedSto)
                                 .collect(Collectors.toList());
                         medicineStorageDto.setMedicineInfos(list);
                         this.upload(medicineStorageDto);

+ 10 - 8
src/main/java/com/miyzh/service/MedicineStoreService.java

@@ -45,6 +45,7 @@ public class MedicineStoreService {
         storeInfo.setCheckMan("");
         storeInfo.setCheckTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")));
         for(Clinic clinic : clinicList) {
+            System.out.println(clinic.getStoreCode());
             storeInfo.setStoreCode(clinic.getStoreCode());
             PageInfo<MedicineStore> page = PageHelper.startPage(1, pageSize).doSelectPageInfo(() -> {
                 medicineStoreDao.listMedicineStore(clinic.getClinicId());
@@ -62,7 +63,7 @@ public class MedicineStoreService {
             }
         };
         long syncTime = System.currentTimeMillis();
-        log.info("uploadMedicine方法执行用时--{}", startTime - syncTime);
+        log.info("西药库存同步方法执行用时--{}", startTime - syncTime);
     };
 
     @Async
@@ -89,18 +90,19 @@ public class MedicineStoreService {
             }
         };
         long syncTime = System.currentTimeMillis();
-        log.info("uploadChinaMedicine方法执行用时--{}", startTime - syncTime);
+        log.info("中药库存同步方法执行用时--{}", startTime - syncTime);
     };
 
     public void upload (MedicineStoreDto storeInfo) throws Exception {
         ObjectMapper objectMapper = new ObjectMapper();
         String params = objectMapper.writeValueAsString(storeInfo);
-        BaseResult baseResult = RestTemplateUtil.postHttp(url, params);
-        if (baseResult.isSuccess()) {
-            log.info(storeInfo.getStoreCode() + baseResult.getMessage());
-        } else {
-            log.error(storeInfo.getStoreCode() + baseResult.getMessage());
-        }
+        System.out.println(params);
+//        BaseResult baseResult = RestTemplateUtil.postHttp(url, params);
+//        if (null != baseResult && baseResult.isSuccess()) {
+//            log.info(storeInfo.getStoreCode() + baseResult.getMessage());
+//        } else {
+//            log.error(storeInfo.getStoreCode() + baseResult.getMessage());
+//        }
 
 
     }

+ 176 - 0
src/main/java/com/miyzh/service/OrderDetailService.java

@@ -0,0 +1,176 @@
+package com.miyzh.service;
+
+import com.fasterxml.jackson.core.JsonProcessingException;
+import com.fasterxml.jackson.databind.ObjectMapper;
+import com.github.pagehelper.PageHelper;
+import com.github.pagehelper.PageInfo;
+import com.miyzh.dao.ClinicDao;
+import com.miyzh.dao.MedicineStoreDao;
+import com.miyzh.dao.OrderDetailDao;
+import com.miyzh.entity.*;
+import com.miyzh.entity.dto.MedicineReturnDto;
+import com.miyzh.entity.dto.MedicineStoreDto;
+import com.miyzh.entity.dto.OrderDetailDto;
+import com.mysql.cj.util.StringUtils;
+import lombok.extern.slf4j.Slf4j;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
+import org.springframework.scheduling.annotation.Async;
+import org.springframework.stereotype.Service;
+
+import java.time.LocalDateTime;
+import java.time.format.DateTimeFormatter;
+import java.util.HashMap;
+import java.util.List;
+import java.util.Map;
+import java.util.stream.Collectors;
+
+/**
+ * 结算明细
+ */
+
+@Slf4j
+@Service
+public class OrderDetailService {
+
+    @Autowired
+    private ClinicDao clinicDao;
+    @Autowired
+    private OrderDetailDao orderDetailDao;
+    @Value ("${postApi.orderUrl}")
+    private String url;
+    @Value("${postApi.pageSize}")
+    private int pageSize;
+
+    private static final String CLI_SET = "1"; // 门诊结算明细
+    private static final String CLI_HOS = "2"; // 住院结算明细
+
+    @Async
+    public void uploadMedicine(List<Clinic> clinicList, String flag) throws InterruptedException, JsonProcessingException {
+        long startTime = System.currentTimeMillis();
+        PageInfo<OrderDetailTemp> page = new PageInfo<>();
+        for(Clinic clinic : clinicList) {
+            switch (flag) {
+                case CLI_SET:
+                    page = PageHelper.startPage(1, pageSize).doSelectPageInfo(() -> {
+                        orderDetailDao.listClcMedOrder(clinic.getClinicId());
+                    });
+                    break;
+                case CLI_HOS:
+                    page = PageHelper.startPage(1, pageSize).doSelectPageInfo(() -> {
+                        orderDetailDao.listHosSettlementOrder(clinic.getClinicId());
+                    });
+                    break;
+            }
+            if (page.getTotal() == 0) {
+                continue;
+            }
+            Map<String, List<OrderDetailTemp>> map = new HashMap<>();
+            if (CLI_SET.equals(flag)) {
+                map =  page.getList().stream().collect(Collectors.groupingBy(OrderDetailTemp::getStoreOrderNo));
+            } else {
+                map =  page.getList().stream().collect(Collectors.groupingBy(OrderDetailTemp::getVisitCode));
+            }
+
+            for(Map.Entry<String, List<OrderDetailTemp>> msMap:map.entrySet()){
+                OrderDetailDto orderDetailDto = new OrderDetailDto();
+                orderDetailDto.setStoreCode(clinic.getStoreCode());
+                if (CLI_SET.equals(flag)) {
+                    orderDetailDto.setStoreOrderNo(msMap.getValue().get(0).getStoreOrderNo());
+                } else {
+                    orderDetailDto.setStoreOrderNo(msMap.getValue().get(0).getVisitCode());
+                }
+                if (StringUtils.isNullOrEmpty(msMap.getValue().get(0).getMisNo())) {
+                    orderDetailDto.setMisNo("99999999");
+                } else {
+                    orderDetailDto.setMisNo(msMap.getValue().get(0).getMisNo());
+                }
+                orderDetailDto.setSettledTypeNo(msMap.getValue().get(0).getSettledTypeNo());
+                orderDetailDto.setSettledTypeName(msMap.getValue().get(0).getSettledTypeName());
+                orderDetailDto.setSettledstatus(msMap.getValue().get(0).getSettledstatus());
+                orderDetailDto.setTotalAmt(msMap.getValue().get(0).getTotalAmt());
+                orderDetailDto.setInsuranceAmt(msMap.getValue().get(0).getInsuranceAmt());
+                orderDetailDto.setOperater(msMap.getValue().get(0).getOperater());
+                orderDetailDto.setSaleDate(msMap.getValue().get(0).getSaleDate());
+                orderDetailDto.setSaleTime(msMap.getValue().get(0).getSaleTime());
+                orderDetailDto.setBuyMedPerson(msMap.getValue().get(0).getBuyMedPerson());
+                orderDetailDto.setSex(msMap.getValue().get(0).getSex());
+                orderDetailDto.setAge(msMap.getValue().get(0).getAge());
+                orderDetailDto.setIdCard(msMap.getValue().get(0).getIdCard());
+                orderDetailDto.setCredentialNum(msMap.getValue().get(0).getCredentialNum());
+                List<OrderDetail> list = msMap.getValue()
+                        .stream()
+                        .map(OrderDetailTemp::temp2OrderDetail)
+                        .collect(Collectors.toList());
+                orderDetailDto.setOrderDetails(list);
+                this.upload(orderDetailDto);
+            }
+            if (page.getPages() > 1) {
+                PageInfo<OrderDetailTemp> page1 = new PageInfo<>();
+                for(int i = 2; i <= page.getPages(); i++) {
+                    switch (flag) {
+                        case CLI_SET:
+                            page = PageHelper.startPage(1, pageSize).doSelectPageInfo(() -> {
+                                orderDetailDao.listClcMedOrder(clinic.getClinicId());
+                            });
+                            break;
+                        case CLI_HOS:
+                            page = PageHelper.startPage(1, pageSize).doSelectPageInfo(() -> {
+                                orderDetailDao.listHosSettlementOrder(clinic.getClinicId());
+                            });
+                            break;
+                    }
+                    Map<String, List<OrderDetailTemp>> map1 = new HashMap<>();
+                    if (CLI_SET.equals(flag)) {
+                        map1 =  page.getList().stream().collect(Collectors.groupingBy(OrderDetailTemp::getStoreOrderNo));
+                    } else {
+                        map1 =  page.getList().stream().collect(Collectors.groupingBy(OrderDetailTemp::getVisitCode));
+                    }
+                    for(Map.Entry<String, List<OrderDetailTemp>> msMap:map1.entrySet()){
+                        OrderDetailDto orderDetailDto = new OrderDetailDto();
+                        orderDetailDto.setStoreCode(clinic.getStoreCode());
+                        if (CLI_SET.equals(flag)) {
+                            orderDetailDto.setStoreOrderNo(msMap.getValue().get(0).getStoreOrderNo());
+                        } else {
+                            orderDetailDto.setStoreOrderNo(msMap.getValue().get(0).getVisitCode());
+                        }
+                        if (StringUtils.isNullOrEmpty(msMap.getValue().get(0).getMisNo())) {
+                            orderDetailDto.setMisNo("99999999");
+                        } else {
+                            orderDetailDto.setMisNo(msMap.getValue().get(0).getMisNo());
+                        }
+                        orderDetailDto.setSettledTypeNo(msMap.getValue().get(0).getSettledTypeNo());
+                        orderDetailDto.setSettledTypeName(msMap.getValue().get(0).getSettledTypeName());
+                        orderDetailDto.setSettledstatus(msMap.getValue().get(0).getSettledstatus());
+                        orderDetailDto.setTotalAmt(msMap.getValue().get(0).getTotalAmt());
+                        orderDetailDto.setInsuranceAmt(msMap.getValue().get(0).getInsuranceAmt());
+                        orderDetailDto.setOperater(msMap.getValue().get(0).getOperater());
+                        orderDetailDto.setSaleDate(msMap.getValue().get(0).getSaleDate());
+                        orderDetailDto.setSaleTime(msMap.getValue().get(0).getSaleTime());
+                        orderDetailDto.setBuyMedPerson(msMap.getValue().get(0).getBuyMedPerson());
+                        orderDetailDto.setSex(msMap.getValue().get(0).getSex());
+                        orderDetailDto.setAge(msMap.getValue().get(0).getAge());
+                        orderDetailDto.setIdCard(msMap.getValue().get(0).getIdCard());
+                        orderDetailDto.setCredentialNum(msMap.getValue().get(0).getCredentialNum());
+                        List<OrderDetail> list = msMap.getValue()
+                                .stream()
+                                .map(OrderDetailTemp::temp2OrderDetail)
+                                .collect(Collectors.toList());
+                        orderDetailDto.setOrderDetails(list);
+                        this.upload(orderDetailDto);
+                    }
+                }
+            }
+        };
+        long syncTime = System.currentTimeMillis();
+        log.info("执行用时--{}", startTime - syncTime);
+    };
+
+    public void upload (Object o) throws JsonProcessingException {
+        ObjectMapper objectMapper = new ObjectMapper();
+        String params = objectMapper.writeValueAsString(o);
+        System.out.println(params);
+//            System.out.println(objectMapper.writeValueAsString(RestTemplateUtil.postHttp(url, params)));
+    }
+
+}

+ 0 - 99
src/main/java/com/miyzh/service/OrderDetailUploadService.java

@@ -1,99 +0,0 @@
-package com.miyzh.service;
-
-import com.fasterxml.jackson.core.JsonProcessingException;
-import com.fasterxml.jackson.databind.ObjectMapper;
-import com.github.pagehelper.PageHelper;
-import com.github.pagehelper.PageInfo;
-import com.miyzh.dao.ClinicDao;
-import com.miyzh.dao.MedicineStoreDao;
-import com.miyzh.entity.Clinic;
-import com.miyzh.entity.MedicineStore;
-import com.miyzh.entity.dto.MedicineStoreDto;
-import lombok.extern.slf4j.Slf4j;
-import org.springframework.beans.factory.annotation.Autowired;
-import org.springframework.beans.factory.annotation.Value;
-import org.springframework.scheduling.annotation.Async;
-import org.springframework.stereotype.Service;
-
-import java.time.LocalDateTime;
-import java.time.format.DateTimeFormatter;
-import java.util.List;
-
-/**
- * 库存信息同步
- */
-
-@Slf4j
-@Service
-public class OrderDetailUploadService {
-
-    @Autowired
-    private ClinicDao clinicDao;
-    @Autowired
-    private MedicineStoreDao medicineStoreDao;
-    @Value ("${postApi.storeUrl}")
-    private String url;
-    @Value("${postApi.pageSize}")
-    private int pageSize;
-
-    @Async
-    public void uploadMedicine(List<Clinic> clinicList) throws InterruptedException, JsonProcessingException {
-        long startTime = System.currentTimeMillis();
-        MedicineStoreDto storeInfo = new MedicineStoreDto();
-        storeInfo.setCheckMan("");
-        storeInfo.setCheckTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")));
-        for(Clinic clinic : clinicList) {
-            storeInfo.setStoreCode(clinic.getStoreCode());
-            PageInfo<MedicineStore> page = PageHelper.startPage(1, pageSize).doSelectPageInfo(() -> {
-                medicineStoreDao.listMedicineStore(clinic.getClinicId());
-            });
-            storeInfo.setMedicineInfos(page.getList());
-            this.upload(storeInfo);
-            if (page.getPages() > 1) {
-                for(int i = 2; i <= page.getPages(); i++) {
-                    PageHelper.startPage(i, pageSize).doSelectPageInfo(() -> {
-                        medicineStoreDao.listMedicineStore(clinic.getClinicId());
-                    });
-                    storeInfo.setMedicineInfos(page.getList());
-                    this.upload(storeInfo);
-                }
-            }
-        };
-        long syncTime = System.currentTimeMillis();
-        log.info("1方法执行用时--{}", startTime - syncTime);
-    };
-
-    @Async
-    public void uploadChinaMedicine(List<Clinic> clinicList) throws JsonProcessingException {
-        long startTime = System.currentTimeMillis();
-        MedicineStoreDto storeInfo = new MedicineStoreDto();
-        storeInfo.setCheckMan("");
-        storeInfo.setCheckTime(LocalDateTime.now().format(DateTimeFormatter.ofPattern("yyyy-MM-dd hh:mm:ss")));
-        for(Clinic clinic : clinicList) {
-            storeInfo.setStoreCode(clinic.getStoreCode());
-            PageInfo<MedicineStore> page = PageHelper.startPage(1, pageSize).doSelectPageInfo(() -> {
-                medicineStoreDao.listChinaMedicineStore(clinic.getClinicId());
-            });
-            storeInfo.setMedicineInfos(page.getList());
-            this.upload(storeInfo);
-            if (page.getPages() > 1) {
-                for(int i = 2; i <= page.getPages(); i++) {
-                    PageHelper.startPage(i, pageSize).doSelectPageInfo(() -> {
-                        medicineStoreDao.listChinaMedicineStore(clinic.getClinicId());
-                    });
-                    storeInfo.setMedicineInfos(page.getList());
-                    this.upload(storeInfo);
-                }
-            }
-        };
-        long syncTime = System.currentTimeMillis();
-        log.info("2方法执行用时--{}", startTime - syncTime);
-    };
-
-    public void upload (Object o) throws JsonProcessingException {
-        ObjectMapper objectMapper = new ObjectMapper();
-        String params = objectMapper.writeValueAsString(o);
-//            System.out.println(objectMapper.writeValueAsString(RestTemplateUtil.postHttp(url, params)));
-    }
-
-}

+ 1 - 1
src/main/resources/application-szq.yml

@@ -82,7 +82,7 @@ postApi:
   storeUrl: http://15.72.176.14/mhis-pisp/api/pis/inventory-balance/upload
   sorageUrl: http://15.72.176.14/mhis-pisp/api/pis/storagein-records/upload
   returnUrl: http://15.72.176.14/mhis-pisp/api/pis/storageout-records/upload
-  orderDetailUrl: http://15.72.176.14/mhis-pisp/api/pis/order-details/upload
+  orderUrl: http://15.72.176.14/mhis-pisp/api/pis/order-details/upload
 
 
 

+ 1 - 1
src/main/resources/mapper/MedicineMapper.xml

@@ -27,7 +27,7 @@
         <!--批次号-->
         <result column="batch_no" jdbcType="VARCHAR" property="batchNo" />
         <!--有效期-->
-        <result column="validity" jdbcType="VARCHAR" property="validity" />
+        <result column="medicine_deadline" jdbcType="VARCHAR" property="validity" />
         <!--生产日期-->
         <result column="manufacture_time" jdbcType="VARCHAR" property="manufactureTime" />
         <!--条形码-->

+ 321 - 51
src/main/resources/mapper/MedicineReturnMapper.xml

@@ -17,22 +17,150 @@
 
     <!--西药销售出库记录-->
     <select id="listMedicineOutbound" resultMap="BaseResultMap" parameterType="java.lang.String">
-
+        SELECT
+            ccm.medicine_category as item_type,
+            IF
+                ( length( cm.med_ins_backup_id ) > 0, cm.med_ins_backup_id, cm.medicine_id ) AS store_medicine_code,
+                cm.medicine_c_name AS store_medicine_name,
+                cm.medicine_c_name AS store_medicine_trade_name,
+                ifnull( idm.formulation, " " ) AS dosage_id,
+                cm.medicine_dosage_forms AS dosage_name,
+                cm.medicine_specifications AS specification,
+                cm.medicine_manufacturer_name AS manufacturer,
+                cm.medicine_place AS place,
+                idm.medicine_package AS pack,
+                " " AS model,
+                cso.timestamp_number AS batch_no,
+                csd.stock_date AS manufacture_time,
+                csd.medicine_deadline AS medicine_deadline,
+                '00000000' AS bar_code,
+                "" AS regist_no,
+                cso.medicine_manufacturer_name AS delivery_company,
+                "999999999" AS distributor,
+                '' AS store_storage_code,
+                sum( cso.change_number ) AS return_quantity,
+                cso.stock_bid AS price,
+                cso.retail_price AS retail_price,
+                "" AS plat_item_code,
+                "" AS plat_item_name,
+                idm.standard_menu_code AS item_code,
+                idm.insurance_medicine_name AS item_name,
+                cso.create_name AS return_man,
+                cso.create_time AS return_time
+            FROM
+                clc_stock_outbound cso
+                LEFT JOIN clc_medicine cm ON cso.medicine_id = cm.medicine_id
+                AND cso.clinic_id = cm.clinic_id
+                LEFT JOIN clc_stock_detail csd ON csd.timestamp_number = cso.timestamp_number
+                LEFT JOIN ins_d_medicine idm ON idm.medicine_id = cso.medicine_id
+                AND idm.clinic_id = cso.clinic_id
+            WHERE
+                cso.clinic_id = #{clinicId}
+                AND cso.change_type IN ( 1, 2 )
     </select>
 
     <!--中药销售出库记录-->
     <select id="listChinaMedicineOutbound" resultMap="BaseResultMap" parameterType="java.lang.String">
-
+        SELECT
+            ccm.medicine_category as item_type,
+            IF
+                ( length( ccm.med_ins_backup_id ) > 0, ccm.med_ins_backup_id, ccm.medicine_id ) AS store_medicine_code,
+                ccm.medicine_name AS store_medicine_name,
+                ccm.medicine_name AS store_medicine_trade_name,
+                ifnull( idm.formulation, " " ) AS dosage_id,
+                ccm.medicine_rate_last AS dosage_name,
+                ccm.medicine_specifications AS specification,
+                ccm.medicine_manufacturer_name AS manufacturer,
+                ccm.medicine_address AS place,
+                idm.medicine_package AS pack,
+                " " AS model,
+                ccso.timestamp_number AS batch_no,
+                ccsp.stock_date AS manufacture_time,
+                ccsp.medicine_deadline AS medicine_deadline,
+                '00000000' AS bar_code,
+                "" AS regist_no,
+                ccso.medicine_manufacturer_name AS delivery_company,
+                "999999999" AS distributor,
+                '' AS store_storage_code,
+                sum( ccso.change_number ) AS return_quantity,
+                ccso.stock_bid AS price,
+                ccso.retail_price AS retail_price,
+                "" AS plat_item_code,
+                "" AS plat_item_name,
+                idm.standard_menu_code AS item_code,
+                idm.insurance_medicine_name AS item_name,
+                ccso.create_name AS return_man,
+                ccso.create_time AS return_time
+            FROM
+                clc_china_stock_outbound ccso
+                LEFT JOIN clc_china_medicine ccm ON ccso.medicine_id = ccm.medicine_id
+                AND ccso.clinic_id = ccm.clinic_id
+                LEFT JOIN clc_china_stock_profit ccsp ON ccsp.timestamp_number = ccso.timestamp_number
+                LEFT JOIN ins_d_medicine idm ON idm.medicine_id = ccso.medicine_id
+                AND idm.clinic_id = ccso.clinic_id
+            WHERE
+                ccso.clinic_id = #{clinicId}
+                AND ccso.change_type IN ( 1, 2 )
     </select>
 
     <!--西药损耗/领用出库记录-->
     <select id="listMedicineOutTreasury" resultMap="BaseResultMap" parameterType="java.lang.String">
-
+        SELECT DISTINCT
+            ccm.medicine_category as item_type,
+            IF (
+                length(cm.med_ins_backup_id) > 0,
+                cm.med_ins_backup_id,
+                cm.medicine_id
+            ) AS store_medicine_code,
+             cm.medicine_c_name AS store_medicine_name,
+             cm.medicine_c_name AS store_medicine_trade_name,
+             ifnull(idm.formulation, " ") AS dosage_id,
+             cm.medicine_dosage_forms AS dosage_name,
+             cm.medicine_specifications AS specification,
+             cm.medicine_manufacturer_name AS manufacturer,
+             cm.medicine_place AS place,
+             idm.medicine_package AS pack,
+             " " AS model,
+             cod.batch_number AS batch_no,
+             cod.stock_date AS manufacture_time,
+             cod.deadline_date AS medicine_deadline,
+             '00000000' AS bar_code,
+             "" AS regist_no,
+             cod.medicine_manufacture AS delivery_company,
+             "999999999" AS distributor,
+             '' AS store_storage_code,
+             sum(cod.out_num) AS return_quantity,
+             cod.stock_price AS price,
+             cod.sale_price AS retail_price,
+             "" AS plat_item_code,
+             "" AS plat_item_name,
+             idm.standard_menu_code AS item_code,
+             idm.insurance_medicine_name AS item_name,
+             co.create_userName AS return_man,
+             co.create_time AS return_time
+         FROM
+            clc_outtreasury_detail cod,
+            clc_medicine cm,
+            clc_outtreasury co,
+            ins_d_medicine idm
+         WHERE
+            cod.medicine_id = cm.medicine_id
+            AND cod.clinic_id = cm.clinic_id
+            AND cod.clinic_id = co.clinic_id
+            AND cod.outtreasury_id = co.id
+            AND cm.medicine_id = idm.medicine_id
+            AND cm.clinic_id = idm.clinic_id
+            AND cod.clinic_id = #{clinicId}
+            AND cod.biz_type = 1
+         ORDER BY
+            co.create_time,
+            cod.medicine_id
     </select>
 
     <!--中药损耗/领用出库记录-->
     <select id="listChinaMedicineOutTreasury" resultMap="BaseResultMap" parameterType="java.lang.String">
         SELECT DISTINCT
+            cCm.medicine_category as item_type,
             IF (
                 length(ccm.med_ins_backup_id) > 0,
                 ccm.med_ins_backup_id,
@@ -63,8 +191,7 @@
              idm.standard_menu_code AS item_code,
              idm.insurance_medicine_name AS item_name,
              co.create_userName AS return_man,
-             co.create_time AS return_time,
-              AS store_return_code
+             co.create_time AS return_time
              FROM
                 clc_outtreasury_detail cod,
                 clc_china_medicine ccm,
@@ -84,34 +211,68 @@
                 cod.medicine_id
     </select>
 
-    <!--西药销售出库记录-->
-    <select id="listChinaMedicineStore" resultMap="BaseResultMap" parameterType="java.lang.String">
-
-    </select>
-
     <!--西药采购退货出库记录-->
     <select id="listMedicineBack" resultMap="BaseResultMap" parameterType="java.lang.String">
-
+        SELECT DISTINCT
+            cm.medicine_category as item_type,
+            IF
+                ( length( cm.med_ins_backup_id ) > 0, cm.med_ins_backup_id, cm.medicine_id ) AS store_medicine_code,
+                cm.medicine_c_name AS store_medicine_name,
+                cm.medicine_c_name AS store_medicine_trade_name,
+                ifnull( idm.formulation, " " ) AS dosage_id,
+                cm.medicine_dosage_forms AS dosage_name,
+                cm.medicine_specifications AS specification,
+                cm.medicine_manufacturer_name AS manufacturer,
+                cm.medicine_place AS place,
+                idm.medicine_package AS pack,
+                " " AS model,
+                cpbd.stock_purchase_number AS batch_no,
+                csd.medicine_deadline AS medicine_deadline,
+                csd.stock_date AS manufacture_time,
+                '00000000' AS bar_code,
+                "" AS regist_no,
+                cpb.supplier_name AS delivery_company,
+                "999999999" AS distributor,
+                '' AS store_storage_code,
+                sum( cpbd.return_count ) AS return_quantity,
+                cpbd.stock_price AS price,
+                cpbd.current_sale_price AS retail_price,
+                "" AS plat_item_code,
+                "" AS plat_item_name,
+                idm.standard_menu_code AS item_code,
+                idm.insurance_medicine_name AS item_name,
+                cpb.create_userName AS return_man,
+                cpb.create_time AS return_time
+            FROM
+                clc_purchase_back_detail cpbd,
+                clc_medicine cm,
+                clc_purchase_back cpb,
+                ins_d_medicine AS idm,
+                clc_stock_detail csd
+            WHERE
+                cpbd.medicine_id = cm.medicine_id
+                AND cpbd.clinic_id = cm.clinic_id
+                AND cpbd.clinic_id = cpb.clinic_id
+                AND cpb.id = cpbd.back_id
+                AND cm.medicine_id = idm.medicine_id
+                AND cm.clinic_id = idm.clinic_id
+                AND cpbd.stock_purchase_number = csd.stock_purchase_number
+                AND cpbd.clinic_id = #{clinicId}
+                AND cpb.biz_type in (1, 2, 3)
+            ORDER BY
+                cpb.create_time,
+                cpbd.medicine_id
     </select>
 
     <!--中药采购退货出库记录-->
     <select id="listChinaMedicineBack" resultMap="BaseResultMap" parameterType="java.lang.String">
-
-    </select>
-
-    <!--西药盘点盘亏出库记录-->
-    <select id="listMedicineInventory" resultMap="BaseResultMap" parameterType="java.lang.String">
-
-    </select>
-
-    <!--中药盘点盘亏出库记录-->
-    <select id="listChinaMedicineInventory" resultMap="BaseResultMap" parameterType="java.lang.String">
         SELECT DISTINCT
-        IF (
-            length(ccm.med_ins_backup_id) > 0,
-            ccm.med_ins_backup_id,
-            ccm.medicine_id
-            ) AS store_medicine_cide,
+            ccm.medicine_category as item_type,
+            IF (
+                length(ccm.med_ins_backup_id) > 0,
+                ccm.med_ins_backup_id,
+                ccm.medicine_id
+            ) AS store_medicine_code,
              ccm.medicine_name AS store_medicine_name,
              ccm.medicine_name AS store_medicine_trade_name,
              ifnull(idm.formulation, " ") AS dosage_id,
@@ -121,41 +282,150 @@
              ccm.medicine_address AS place,
              idm.medicine_package AS pack,
              " " AS model,
-             cid.batch_number AS batch_no,
-             cid.stock_date AS medicine_deadline,
-             cid.deadline_date AS manufacture_time,
-             '00000000' AS bar_cide,
+             cpbd.stock_purchase_number AS batch_no,
+             ccsp.medicine_deadline AS medicine_deadline,
+             ccsp.stock_date AS manufacture_time,
+             '00000000' AS bar_code,
              "" AS regist_no,
-             cid.medicine_manufacture AS delivery_company,
+             cpb.supplier_name AS delivery_company,
              "999999999" AS distributor,
-             '' AS store_storage_cide,
-             sum(cid.stock_num) AS return_quantity,
-             cid.stock_price AS price,
-             cid.sale_price AS retail_price,
-             "" AS plat_item_cide,
+             '' AS store_storage_code,
+             sum(cpbd.return_count) AS return_quantity,
+             cpbd.stock_price AS price,
+             cpbd.current_sale_price AS retail_price,
+             "" AS plat_item_code,
              "" AS plat_item_name,
-             idm.standard_menu_code AS item_cide,
+             idm.standard_menu_code AS item_code,
              idm.insurance_medicine_name AS item_name,
-             ci.create_userName AS return_man,
-             ci.create_time AS return_time
+             cpb.create_userName AS return_man,
+             cpb.create_time AS return_time
         FROM
-            clc_inventory_detail cid,
+            clc_purchase_back_detail cpbd,
             clc_china_medicine ccm,
-            clc_inventory ci ,
-            ins_d_medicine as idm
+            clc_purchase_back cpb,
+            ins_d_medicine as idm,
+            clc_china_stock_profit ccsp
         WHERE
-            cid.medicine_id = ccm.medicine_id
-            AND cid.clinic_id = ccm.clinic_id
-            AND cid.clinic_id = ci.clinic_id
-            AND cid.inventory_id = ci.id
+            cpbd.medicine_id = ccm.medicine_id
+            AND cpbd.clinic_id = ccm.clinic_id
+            AND cpbd.clinic_id = cpb.clinic_id
+            AND cpb.id = cpbd.back_id
             AND ccm.medicine_id = idm.medicine_id
             AND ccm.clinic_id = idm.clinic_id
-            AND cid.inventory_type = 2
-            AND cid.clinic_id = #{clinicId}
-            AND cid.biz_type IN ( 4 )
+            AND cpbd.stock_purchase_number = ccsp.stock_purchase_number
+            AND cpbd.clinic_id = #{clinicId}
+            AND cpb.biz_type = 4
         ORDER BY
-            ci.create_time,
-            cid.medicine_id
+            cpb.create_time,
+            cpbd.medicine_id
+    </select>
+
+    <!--西药盘点盘亏出库记录-->
+    <select id="listMedicineInventory" resultMap="BaseResultMap" parameterType="java.lang.String">
+        SELECT DISTINCT
+            cm.medicine_category as item_type,
+            IF
+                ( length( cm.med_ins_backup_id ) > 0, cm.med_ins_backup_id, cm.medicine_id ) AS store_medicine_cide,
+                cm.medicine_c_name AS store_medicine_name,
+                cm.medicine_c_name AS store_medicine_trade_name,
+                ifnull( idm.formulation, " " ) AS dosage_id,
+                cm.medicine_dosage_forms AS dosage_name,
+                cm.medicine_specifications AS specification,
+                cm.medicine_manufacturer_name AS manufacturer,
+                cm.medicine_place AS place,
+                idm.medicine_package AS pack,
+                " " AS model,
+                cid.batch_number AS batch_no,
+                cid.stock_date AS manufacture_time,
+                cid.deadline_date AS medicine_deadline,
+                '00000000' AS bar_cide,
+                "" AS regist_no,
+                cid.medicine_manufacture AS delivery_company,
+                "999999999" AS distributor,
+                '' AS store_storage_cide,
+                sum( cid.stock_num ) AS return_quantity,
+                cid.stock_price AS price,
+                cid.sale_price AS retail_price,
+                "" AS plat_item_cide,
+                "" AS plat_item_name,
+                idm.standard_menu_code AS item_cide,
+                idm.insurance_medicine_name AS item_name,
+                ci.create_userName AS return_man,
+                ci.create_time AS return_time
+            FROM
+                clc_inventory_detail cid,
+                clc_medicine cm,
+                clc_inventory ci,
+                ins_d_medicine AS idm
+            WHERE
+                cid.medicine_id = cm.medicine_id
+                AND cid.clinic_id = cm.clinic_id
+                AND cid.clinic_id = ci.clinic_id
+                AND cid.inventory_id = ci.id
+                AND cm.medicine_id = idm.medicine_id
+                AND cm.clinic_id = idm.clinic_id
+                AND cid.inventory_type = 2
+                AND cid.clinic_id = #{clinicId}
+
+                AND cid.biz_type IN ( 1, 2, 3 )
+            ORDER BY
+                ci.create_time,
+                cid.medicine_id
+    </select>
+
+    <!--中药盘点盘亏出库记录-->
+    <select id="listChinaMedicineInventory" resultMap="BaseResultMap" parameterType="java.lang.String">
+        SELECT DISTINCT
+            ccm.medicine_category as item_type,
+            IF (
+                length(ccm.med_ins_backup_id) > 0,
+                ccm.med_ins_backup_id,
+                ccm.medicine_id
+                ) AS store_medicine_cide,
+                 ccm.medicine_name AS store_medicine_name,
+                 ccm.medicine_name AS store_medicine_trade_name,
+                 ifnull(idm.formulation, " ") AS dosage_id,
+                 ccm.medicine_rate_last AS dosage_name,
+                 ccm.medicine_specifications AS specification,
+                 ccm.medicine_manufacturer_name AS manufacturer,
+                 ccm.medicine_address AS place,
+                 idm.medicine_package AS pack,
+                 " " AS model,
+                 cid.batch_number AS batch_no,
+                 cid.stock_date AS manufacture_time,
+                 cid.deadline_date AS medicine_deadline,
+                 '00000000' AS bar_cide,
+                 "" AS regist_no,
+                 cid.medicine_manufacture AS delivery_company,
+                 "999999999" AS distributor,
+                 '' AS store_storage_cide,
+                 sum(cid.stock_num) AS return_quantity,
+                 cid.stock_price AS price,
+                 cid.sale_price AS retail_price,
+                 "" AS plat_item_cide,
+                 "" AS plat_item_name,
+                 idm.standard_menu_code AS item_cide,
+                 idm.insurance_medicine_name AS item_name,
+                 ci.create_userName AS return_man,
+                 ci.create_time AS return_time
+            FROM
+                clc_inventory_detail cid,
+                clc_china_medicine ccm,
+                clc_inventory ci ,
+                ins_d_medicine as idm
+            WHERE
+                cid.medicine_id = ccm.medicine_id
+                AND cid.clinic_id = ccm.clinic_id
+                AND cid.clinic_id = ci.clinic_id
+                AND cid.inventory_id = ci.id
+                AND ccm.medicine_id = idm.medicine_id
+                AND ccm.clinic_id = idm.clinic_id
+                AND cid.inventory_type = 2
+                AND cid.clinic_id = #{clinicId}
+                AND cid.biz_type = 4
+            ORDER BY
+                ci.create_time,
+                cid.medicine_id
     </select>
 
 

+ 164 - 13
src/main/resources/mapper/MedicineStorageMapper.xml

@@ -29,8 +29,8 @@
             cm.medicine_unit AS pack,
             " " as model,
             csi.stock_batch_number as batch_no,
-            csi.create_time as medicine_deadline,
-            csi.medicine_deadline as manufacture_time,
+            csi.create_time as manufacture_time,
+            csi.medicine_deadline as medicine_deadline,
             cm.medicine_barcode as bar_code,
             "" as regist_no,
             csi.stock_channel as delivery_company,
@@ -74,6 +74,7 @@
     <!--中药采购入库记录-->
     <select id="listChinaMedicinePurchase" resultMap="BaseResultMap" parameterType="java.lang.String">
         SELECT DISTINCT
+            ccm.medicine_category as item_type,
             IF (
                 length(ccm.med_ins_backup_id) > 0,
                 ccm.med_ins_backup_id,
@@ -89,8 +90,8 @@
              idm.medicine_package AS pack,
              " " AS model,
              ccssf.stock_batch_number AS batch_no,
-             ccssf.create_time AS medicine_deadline,
-             ccssf.medicine_deadline AS manufacture_time,
+             ccssf.create_time AS manufacture_time,
+             ccssf.medicine_deadline AS medicine_deadline,
              '00000000' AS bar_code,
              "" AS regist_no,
              ccssf.stock_channel AS delivery_company,
@@ -113,7 +114,7 @@
                 clc_china_stock cs
             WHERE
                 cp.id = ccssf.purchase_id
-                AND .cp.clinic_id = ccssf.clinic_id
+                AND cp.clinic_id = ccssf.clinic_id
                 AND ccm.medicine_id = ccssf.medicine_id
                 AND ccm.clinic_id = ccssf.clinic_id
                 AND ccm.medicine_id = idm.medicine_id
@@ -133,27 +134,177 @@
 
     <!--西药销售退回入库记录-->
     <select id="listMedicineOutbound" resultMap="BaseResultMap" parameterType="java.lang.String">
-
+        SELECT DISTINCT
+            cm.medicine_category AS item_type,
+            IF
+                ( length( cm.med_ins_backup_id )> 0, cm.med_ins_backup_id, cm.medicine_id ) AS store_medicine_code,
+                cm.medicine_c_name AS store_medicine_name,
+                cm.medicine_name_goods AS store_medicine_trade_name,
+                ifnull( idm.formulation, " " ) AS dosage_id,
+                cm.medicine_dosage_forms AS dosage_name,
+                cm.medicine_specifications AS specification,
+                cm.medicine_manufacturer_name AS manufacturer,
+                cm.medicine_place AS place,
+                cm.medicine_unit AS pack,
+                " " AS model,
+                csi.stock_batch_number AS batch_no,
+                csi.create_time AS manufacture_time,
+                csi.medicine_deadline AS medicine_deadline,
+                cm.medicine_barcode AS bar_code,
+                "" AS regist_no,
+                csi.stock_channel AS delivery_company,
+                "999999999" AS distributor,
+                cp.purchase_no AS store_storage_code,
+                sum( csi.stock_change_number ) AS storage_quantity,
+                csi.stock_bid AS price,
+                cs.medicine_retail_price AS retail_price,
+                "" AS plat_item_code,
+                "" AS plat_item_name,
+                idm.standard_menu_code AS item_code,
+                idm.insurance_medicine_name AS item_name,
+                cpb.create_username AS storage_man,
+                cpb.create_time AS storage_time
+            FROM
+                clc_medicine cm,
+                clc_stock_inbound csi,
+                clc_purchase_back cpb,
+                ins_d_medicine idm,
+                clc_purchase cp,
+                clc_stock cs
+            WHERE
+                csi.medicine_id = cm.medicine_id
+                AND csi.clinic_id = cm.clinic_id
+                AND idm.medicine_id = cm.medicine_id
+                AND idm.clinic_id = cm.clinic_id
+                AND csi.stock_change_type = '02'
+                AND csi.purchase_id = cpb.purchase_id
+                AND cpb.purchase_id = cp.id
+                AND cs.clinic_id = csi.clinic_id
+                AND cs.medicine_id = csi.medicine_id
+                AND csi.clinic_id = #{clinicId}
+            GROUP BY
+                csi.medicine_id
+            ORDER BY
+                csi.medicine_id
     </select>
 
     <!--中药销售退回入库记录-->
     <select id="listChinaMedicineOutbound" resultMap="BaseResultMap" parameterType="java.lang.String">
-
+        SELECT DISTINCT
+            ccm.medicine_category AS item_type,
+            IF
+                ( length( ccm.med_ins_backup_id )> 0, ccm.med_ins_backup_id, ccm.medicine_id ) AS store_medicine_code,
+                ccm.medicine_name AS store_medicine_name,
+                ccm.medicine_name AS store_medicine_trade_name,
+                ifnull( idm.formulation, " " ) AS dosage_id,
+                ccm.medicine_rate_last AS dosage_name,
+                ccm.medicine_specifications AS specification,
+                ccm.medicine_manufacturer_name AS manufacturer,
+                ccm.medicine_address AS place,
+                ccm.medicine_unit AS pack,
+                " " AS model,
+                csi.stock_batch_number AS batch_no,
+                csi.stock_date AS manufacture_time,
+                csi.medicine_deadline AS medicine_deadline,
+                '00000000' AS bar_code,
+                "" AS regist_no,
+                csi.stock_channel AS delivery_company,
+                "999999999" AS distributor,
+                cp.purchase_no AS store_storage_code,
+                sum( csi.stock_change_number ) AS storage_quantity,
+                csi.stock_bid AS price,
+                ccssf.current_sale_price AS retail_price,
+                "" AS plat_item_code,
+                "" AS plat_item_name,
+                idm.standard_menu_code AS item_code,
+                idm.insurance_medicine_name AS item_name,
+                cpb.create_username AS storage_man,
+                cpb.create_time AS storage_time
+            FROM
+                clc_china_medicine ccm,
+                clc_china_stock_profit csi,
+                clc_purchase_back cpb,
+                ins_d_medicine idm,
+                clc_purchase cp,
+                clc_china_stock_storage_flow ccssf
+            WHERE
+                csi.medicine_id = ccm.medicine_id
+                AND csi.clinic_id = ccm.clinic_id
+                AND idm.medicine_id = ccm.medicine_id
+                AND idm.clinic_id = ccm.clinic_id
+                AND ccssf.stock_change_type = '02'
+                AND ccssf.stock_purchase_number = cpb.purchase_id
+                AND cpb.purchase_id = cp.id
+                AND ccssf.clinic_id = csi.clinic_id
+                AND ccssf.medicine_id = csi.medicine_id
+                AND csi.clinic_id = #{clinicId}
+            GROUP BY
+                csi.medicine_id
+            ORDER BY
+                csi.medicine_id
     </select>
 
     <!--西药盘点盘盈入库记录-->
     <select id="listMedicineInventory" resultMap="BaseResultMap" parameterType="java.lang.String">
-
+        SELECT DISTINCT
+            cm.medicine_category as item_type,
+            IF
+                ( length( cm.med_ins_backup_id ) > 0, cm.med_ins_backup_id, cm.medicine_id ) AS store_medicine_code,
+                cm.medicine_c_name AS store_medicine_name,
+                cm.medicine_c_name AS store_medicine_trade_name,
+                ifnull( idm.formulation, " " ) AS dosage_id,
+                cm.medicine_dosage_forms AS dosage_name,
+                cm.medicine_specifications AS specification,
+                cm.medicine_manufacturer_name AS manufacturer,
+                cm.medicine_place AS place,
+                idm.medicine_package AS pack,
+                " " AS model,
+                cid.batch_number AS batch_no,
+                cid.stock_date AS manufacture_time,
+                cid.deadline_date AS medicine_deadline,
+                '00000000' AS bar_cide,
+                "" AS regist_no,
+                cid.medicine_manufacture AS delivery_company,
+                "999999999" AS distributor,
+                '' AS store_storage_cide,
+                sum( cid.stock_num ) AS return_quantity,
+                cid.stock_price AS price,
+                cid.sale_price AS retail_price,
+                "" AS plat_item_cide,
+                "" AS plat_item_name,
+                idm.standard_menu_code AS item_cide,
+                idm.insurance_medicine_name AS item_name,
+                ci.create_userName AS return_man,
+                ci.create_time AS return_time
+            FROM
+                clc_inventory_detail cid,
+                clc_medicine cm,
+                clc_inventory ci,
+                ins_d_medicine AS idm
+            WHERE
+                cid.medicine_id = cm.medicine_id
+                AND cid.clinic_id = cm.clinic_id
+                AND cid.clinic_id = ci.clinic_id
+                AND cid.inventory_id = ci.id
+                AND cm.medicine_id = idm.medicine_id
+                AND cm.clinic_id = idm.clinic_id
+                AND cid.inventory_type = 1
+                AND cid.clinic_id = #{clinicId}
+                AND cid.biz_type IN ( 1, 2, 3 )
+            ORDER BY
+                ci.create_time,
+                cid.medicine_id
     </select>
 
-    <!--中药盘点盘盈入库记-->
+    <!--中药盘点盘盈入库-->
     <select id="listChinaMedicineInventory" resultMap="BaseResultMap" parameterType="java.lang.String">
         SELECT DISTINCT
+            ccm.medicine_category as item_type,
             IF (
                 length(ccm.med_ins_backup_id) > 0,
                 ccm.med_ins_backup_id,
                 ccm.medicine_id
-                ) AS store_medicine_cide,
+                ) AS store_medicine_code,
                  ccm.medicine_name AS store_medicine_name,
                  ccm.medicine_name AS store_medicine_trade_name,
                  ifnull(idm.formulation, " ") AS dosage_id,
@@ -164,8 +315,8 @@
                  idm.medicine_package AS pack,
                  " " AS model,
                  cid.batch_number AS batch_no,
-                 cid.stock_date AS medicine_deadline,
-                 cid.deadline_date AS manufacture_time,
+                 cid.stock_date AS manufacture_time,
+                 cid.deadline_date AS medicine_deadline,
                  '00000000' AS bar_cide,
                  "" AS regist_no,
                  cid.medicine_manufacture AS delivery_company,
@@ -194,7 +345,7 @@
                 AND ccm.clinic_id = idm.clinic_id
                 AND cid.inventory_type = 1
                 AND cid.clinic_id = #{clinicId}
-                AND cid.biz_type IN ( 4 )
+                AND cid.biz_type = 4
             ORDER BY
                 ci.create_time,
                 cid.medicine_id

+ 4 - 4
src/main/resources/mapper/MedicineStoreMapper.xml

@@ -23,8 +23,8 @@
         idm.medicine_package as pack,
         " " as model,
         csd.stock_batch_number as batch_no,
-        csd.create_time as medicine_deadline,
-        csd.medicine_deadline as manufacture_time,
+        csd.create_time as manufacture_time,
+        csd.medicine_deadline as medicine_deadline,
         cm.medicine_barcode as bar_code,
         "" as regist_no,
         csd.stock_channel as delivery_company,
@@ -67,8 +67,8 @@
         idm.medicine_package as pack,
         " " as model,
         ccsp.stock_batch_number as batch_no,
-        ccm.create_time as medicine_deadline,
-        ccsp.medicine_deadline as manufacture_time,
+        ccm.create_time as manufacture_time,
+        ccsp.medicine_deadline as medicine_deadline,
         "0000000000000" as bar_code,
         "" as regist_no,
         ccsp.stock_channel as delivery_company,

+ 117 - 0
src/main/resources/mapper/OrderDetailMapper.xml

@@ -0,0 +1,117 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+<mapper namespace="com.miyzh.dao.OrderDetailDao">
+    <resultMap id="BaseResultMap" type="com.miyzh.entity.OrderDetailTemp" extends="com.miyzh.dao.MedicineDao.BaseResultMap">
+        <!--医保结算单号-->
+        <result column="mis_no" jdbcType="VARCHAR" property="misNo" />
+        <!--结算方式编码-->
+        <result column="settled_type_no" jdbcType="VARCHAR" property="settledTypeNo" />
+        <!--结算方式名称-->
+        <result column="settled_type_name" jdbcType="VARCHAR" property="settledTypeName" />
+        <!--结算状态-->
+        <result column="settledstatus" jdbcType="VARCHAR" property="settledstatus" />
+        <!--订单总金额-->
+        <result column="total_amt" jdbcType="VARCHAR" property="totalAmt" />
+        <!--医保结算金额-->
+        <result column="insurance_amt" jdbcType="VARCHAR" property="insuranceAmt" />
+        <!--操作员-->
+        <result column="operater" jdbcType="VARCHAR" property="operater" />
+        <!--销售日期-->
+        <result column="sale_date" jdbcType="VARCHAR" property="saleDate" />
+        <!--销售时间-->
+        <result column="sale_time" jdbcType="VARCHAR" property="saleTime" />
+        <!--购药人-->
+        <result column="buy_med_person" jdbcType="VARCHAR" property="buyMedPerson" />
+        <!--性别-->
+        <result column="sex" jdbcType="VARCHAR" property="sex" />
+        <!--年龄-->
+        <result column="age" jdbcType="VARCHAR" property="age" />
+        <!--身份证号-->
+        <result column="id_card" jdbcType="VARCHAR" property="idCard" />
+        <!--医保卡号-->
+        <result column="credential_num" jdbcType="VARCHAR" property="credentialNum" />
+        <!--处方ID-->
+        <result column="store_order_no" jdbcType="VARCHAR" property="storeOrderNo" />
+        <!--采购记录编码-->
+        <result column="store_precord_code" jdbcType="VARCHAR" property="storePrecordCode" />
+        <!--入库编码-->
+        <result column="store_storage_code" jdbcType="VARCHAR" property="storeStorageCode" />
+        <!--入库编码-->
+        <result column="num" jdbcType="VARCHAR" property="num" />
+        <!--是否拆零-->
+        <result column="is_unpacking" jdbcType="VARCHAR" property="isUnpacking" />
+        <!--查询时间-->
+        <result column="query_time" jdbcType="VARCHAR" property="queryTime" />
+    </resultMap>
+
+    <select id="listClcMedOrder" resultMap="BaseResultMap" parameterType="java.lang.String">
+        SELECT
+            cpi.prescription_id AS store_order_no,
+            '99999999' AS mis_no,
+            states AS settledstatus,
+            cpi.price AS total_amt,
+            0 AS insurance_amt,
+            cso.doctor_name AS operater,
+            SUBSTR( cso.stock_date, 1, 10 ) AS sale_date,
+            cso.stock_date AS sale_time,
+            cso.patient_name AS buy_med_person,
+            '0000000000000' AS credential_num,
+            IF( cm.medicine_category = '04', 2, 1 ) AS item_type,
+            cm.medicine_c_name AS store_medicine_name,
+            cm.medicine_id AS store_medicine_code,
+            '' AS plat_item_code,
+            '' AS plat_item_name,
+            idm.med_ins_backup_id AS item_code,
+            idm.insurance_medicine_name AS item_name,
+            '0000000000000' AS store_precord_code,
+            '0000000000000' AS store_storage_code,
+            cpi.prescription_id AS recipe_no,
+            ifnull( idm.formulation, " " ) AS dosage_id,
+            cm.medicine_dosage_forms AS dosage_name,
+            cm.medicine_specifications AS specification,
+            cm.medicine_manufacturer_name AS manufacturer,
+            cm.medicine_place AS place,
+            idm.medicine_package AS pack,
+            " " AS model,
+            csd.stock_batch_number AS batch_no,
+            csd.create_time AS manufacture_time,
+            csd.medicine_deadline AS medicine_deadline,
+            cm.medicine_barcode AS bar_code,
+            "" AS regist_no,
+            csd.stock_channel AS delivery_company,
+            "999999999" AS distributor,
+            csd.stock_bid AS price,
+            idm.sale_price AS retail_price,
+            cso.change_number as num,
+            cso.if_piece as is_unpacking
+        FROM
+            clc_stock_outbound cso
+        LEFT JOIN clc_prescription_info cpi ON cpi.prescription_id = cso.prescription_id
+        AND cso.clinic_id = cpi.clinic_id
+        LEFT JOIN ins_clinic_settlement ics ON cpi.prescription_id = ics.prescription_id
+        LEFT JOIN clc_medicine cm ON cso.medicine_id = cm.medicine_id
+        LEFT JOIN ins_d_medicine idm ON cso.medicine_id = idm.medicine_id
+        LEFT JOIN clc_stock_detail csd ON cso.timestamp_number = csd.timestamp_number and cso.medicine_id = csd.medicine_id
+        WHERE
+            cso.clinic_id = #{clinicId}
+        AND cpi.prescription_type = 0
+        and cso.source_type = 1
+        AND ics.id IS NULL
+        GROUP BY
+            cso.id
+    </select>
+
+    <select id="listInsCliSettlementOrder" resultMap="BaseResultMap" parameterType="java.lang.String">
+
+    </select>
+
+    <select id="listHosSettlementOrder" resultMap="BaseResultMap" parameterType="java.lang.String">
+
+    </select>
+
+    <select id="listInsHosSettlementOrder" resultMap="BaseResultMap" parameterType="java.lang.String">
+
+    </select>
+
+
+</mapper>