Browse Source

feat:
1. 修改配置参数为Double类型,避免数据问题
2,修改SQL语句
3. 其他对应修改

Jing.Li 4 năm trước cách đây
mục cha
commit
b514c15283

+ 10 - 10
sql/db.sql

@@ -11,20 +11,20 @@ CREATE TABLE `c_schedule_task` (
 CREATE TABLE `c_statistic_config` (
     `id` varchar(36) NOT NULL COMMENT '主键ID',
     `business_type` int(5) DEFAULT NULL COMMENT '业务类型Code',
-    `value` int(5) DEFAULT NULL COMMENT '业务数据配置',
+    `value` double(6,2) DEFAULT NULL COMMENT '业务数据配置',
     `status` int(1) DEFAULT NULL COMMENT '是否生效',
     `remark` varchar(255) DEFAULT NULL COMMENT '备注',
     PRIMARY KEY (`id`)
 ) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT='yideb-audit-statistic,业务配置表';
 
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('1', 1001, 5, 1, '药店注册');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('1', 1001, 5.1, 1, '药店注册');
 INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('10', 1010, 30, 1, '药店处方量Top数据量');
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('11', 1011, 5, 1, '地图');
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('2', 1002, 5, 1, '处方总量');
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('3', 1003, 5, 1, '发生业务医生');
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('4', 1004, 5, 1, '发生业务药师');
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('5', 1005, 5, 1, '日新增药店趋势');
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('6', 1006, 5, 1, '日处方趋势统计');
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('7', 1007, 1, 1, '处方药销量Top');
-INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('8', 1008, 5, 1, '药店处方量Top');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('11', 1011, 5.1, 1, '地图');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('2', 1002, 5.1, 1, '处方总量');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('3', 1003, 5.1, 1, '发生业务医生');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('4', 1004, 5.1, 1, '发生业务药师');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('5', 1005, 5.1, 1, '日新增药店趋势');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('6', 1006, 5.1, 1, '日处方趋势统计');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('7', 1007, 5.1, 1, '处方药销量Top');
+INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('8', 1008, 1, 1, '药店处方量Top');
 INSERT INTO `c_statistic_config`(`id`, `business_type`, `value`, `status`, `remark`) VALUES ('9', 1009, 30, 1, '处方药销量Top数据量');

+ 0 - 2
src/main/java/com/yideb/audit/config/GlobalConstant.java

@@ -12,8 +12,6 @@ package com.yideb.audit.config;
 
 public class GlobalConstant {
 
-	public static final Integer DEFAULT_TOP_NUMBER = 30;
-
 	/**
 	 * 是否枚举
 	 */

+ 3 - 3
src/main/java/com/yideb/audit/controller/DailyHistoryController.java

@@ -48,7 +48,7 @@ public class DailyHistoryController {
 		List<BasicVo> dailyPrescriptions = bottomService.dailyPrescriptions(endTime);
 
 		// 插入hub数据库
-		Integer prescriptionAddDayMultiple = getConfig().getOrDefault(GlobalConstant.BusinessType.AUDIT_ADD_DAY.getCode(), 1);
+		Double prescriptionAddDayMultiple = getConfig().getOrDefault(GlobalConstant.BusinessType.AUDIT_ADD_DAY.getCode(), 5.0);
 
 		prescriptionTrendService.batchInsert(dailyPrescriptions, prescriptionAddDayMultiple);
 		log.info("dailyPrescriptions 处理结束");
@@ -63,14 +63,14 @@ public class DailyHistoryController {
 		List<BasicVo> dailyStores = bottomService.dailyStores(endTime);
 
 		// 插入hub数据库
-		Integer storeAddDayMultiple = getConfig().getOrDefault(GlobalConstant.BusinessType.STORE_ADD_DAY.getCode(), 1);
+		Double storeAddDayMultiple = getConfig().getOrDefault(GlobalConstant.BusinessType.STORE_ADD_DAY.getCode(), 5.0);
 		storeTrendService.batchInsert(dailyStores, storeAddDayMultiple);
 		log.info("dailyStores 处理结束");
 
 		return RetData.success("全量插入日药店数据成功");
 	}
 
-	private Map<Integer, Integer> getConfig() {
+	private Map<Integer, Double> getConfig() {
 		return statisticConfigService.allConfigs();
 	}
 }

+ 1 - 1
src/main/java/com/yideb/audit/entity/audit/StatisticConfig.java

@@ -33,7 +33,7 @@ public class StatisticConfig extends Model<StatisticConfig> {
     /**
      * 业务数据配置
      */
-    private Integer value;
+    private Double value;
 
     /**
      * 是否生效

+ 1 - 1
src/main/java/com/yideb/audit/service/audit/IStatisticConfigService.java

@@ -20,5 +20,5 @@ public interface IStatisticConfigService extends IService<StatisticConfig> {
 	 *
 	 * @return
 	 */
-	Map<Integer, Integer> allConfigs();
+	Map<Integer, Double> allConfigs();
 }

+ 1 - 1
src/main/java/com/yideb/audit/service/audit/impl/StatisticConfigServiceImpl.java

@@ -32,7 +32,7 @@ public class StatisticConfigServiceImpl extends ServiceImpl<StatisticConfigMappe
 	private StatisticConfigMapper configMapper;
 
 	@Override
-	public Map<Integer, Integer> allConfigs() {
+	public Map<Integer, Double> allConfigs() {
 		QueryWrapper<StatisticConfig> wrapper = new QueryWrapper<>();
 		wrapper.eq("status", GlobalConstant.YesOrNo.YES.getCode());
 		List<StatisticConfig> statisticConfigs = configMapper.selectList(wrapper);

+ 1 - 1
src/main/java/com/yideb/audit/service/hub/IAreaStoreService.java

@@ -17,5 +17,5 @@ import java.util.List;
  */
 public interface IAreaStoreService extends IService<AreaStore> {
 
-	Boolean batchService(List<MapVo> list, Integer areaStoreMultiple);
+	Boolean batchService(List<MapVo> list, Double areaStoreMultiple);
 }

+ 1 - 1
src/main/java/com/yideb/audit/service/hub/IMedicineRankService.java

@@ -17,5 +17,5 @@ import java.util.List;
  */
 public interface IMedicineRankService extends IService<MedicineRank> {
 
-	Boolean batchService(List<BasicVo> list, Integer medicineTopMultiple);
+	Boolean batchService(List<BasicVo> list, Double medicineTopMultiple);
 }

+ 1 - 1
src/main/java/com/yideb/audit/service/hub/IPrescriptionRankService.java

@@ -17,5 +17,5 @@ import java.util.List;
  */
 public interface IPrescriptionRankService extends IService<PrescriptionRank> {
 
-	Boolean batchService(List<BasicVo> list, Integer storeTopMultiple);
+	Boolean batchService(List<BasicVo> list, Double storeTopMultiple);
 }

+ 2 - 2
src/main/java/com/yideb/audit/service/hub/IPrescriptionTrendService.java

@@ -17,7 +17,7 @@ import java.util.List;
  */
 public interface IPrescriptionTrendService extends IService<PrescriptionTrend> {
 
-	Boolean insert(List<BasicVo> list, Integer prescriptionAddDayMultiple);
+	Boolean insert(List<BasicVo> list, Double prescriptionAddDayMultiple);
 
-	Boolean batchInsert(List<BasicVo> list, Integer prescriptionAddDayMultiple);
+	Boolean batchInsert(List<BasicVo> list, Double prescriptionAddDayMultiple);
 }

+ 2 - 2
src/main/java/com/yideb/audit/service/hub/IStoreTrendService.java

@@ -17,7 +17,7 @@ import java.util.List;
  */
 public interface IStoreTrendService extends IService<StoreTrend> {
 
-	Boolean insert(List<BasicVo> list, Integer storeAddDayMultiple);
+	Boolean insert(List<BasicVo> list, Double storeAddDayMultiple);
 
-	Boolean batchInsert(List<BasicVo> list, Integer storeAddDayMultiple);
+	Boolean batchInsert(List<BasicVo> list, Double storeAddDayMultiple);
 }

+ 2 - 2
src/main/java/com/yideb/audit/service/hub/impl/AreaStoreServiceImpl.java

@@ -27,7 +27,7 @@ import java.util.List;
 @Service
 public class AreaStoreServiceImpl extends ServiceImpl<AreaStoreMapper, AreaStore> implements IAreaStoreService {
 	@Override
-	public Boolean batchService(List<MapVo> list, Integer areaStoreMultiple) {
+	public Boolean batchService(List<MapVo> list, Double areaStoreMultiple) {
 		if (CollectionUtil.isEmpty(list)) {
 			return Boolean.FALSE;
 		}
@@ -39,7 +39,7 @@ public class AreaStoreServiceImpl extends ServiceImpl<AreaStoreMapper, AreaStore
 			areaStore.setId(IdUtil.simpleUUID());
 			areaStore.setProvince(v.getProvince());
 			areaStore.setCity(v.getCity());
-			areaStore.setNumber(v.getValue() * areaStoreMultiple);
+			areaStore.setNumber((int) (v.getValue() * areaStoreMultiple));
 			areaStores.add(areaStore);
 		});
 

+ 2 - 2
src/main/java/com/yideb/audit/service/hub/impl/MedicineRankServiceImpl.java

@@ -27,7 +27,7 @@ import java.util.List;
 @Service
 public class MedicineRankServiceImpl extends ServiceImpl<MedicineRankMapper, MedicineRank> implements IMedicineRankService {
 	@Override
-	public Boolean batchService(List<BasicVo> list, Integer medicineTopMultiple) {
+	public Boolean batchService(List<BasicVo> list, Double medicineTopMultiple) {
 		if (CollectionUtil.isEmpty(list)) {
 			return Boolean.FALSE;
 		}
@@ -38,7 +38,7 @@ public class MedicineRankServiceImpl extends ServiceImpl<MedicineRankMapper, Med
 			MedicineRank rank = new MedicineRank();
 			rank.setId(IdUtil.simpleUUID());
 			rank.setMedicineName(v.getKey());
-			rank.setNumber(v.getValue() * medicineTopMultiple);
+			rank.setNumber((int) (v.getValue() * medicineTopMultiple));
 			ranks.add(rank);
 		});
 

+ 2 - 2
src/main/java/com/yideb/audit/service/hub/impl/PrescriptionRankServiceImpl.java

@@ -28,7 +28,7 @@ import java.util.List;
 public class PrescriptionRankServiceImpl extends ServiceImpl<PrescriptionRankMapper, PrescriptionRank> implements IPrescriptionRankService {
 
 	@Override
-	public Boolean batchService(List<BasicVo> list, Integer storeTopMultiple) {
+	public Boolean batchService(List<BasicVo> list, Double storeTopMultiple) {
 		if (CollectionUtil.isEmpty(list)) {
 			return Boolean.FALSE;
 		}
@@ -39,7 +39,7 @@ public class PrescriptionRankServiceImpl extends ServiceImpl<PrescriptionRankMap
 			PrescriptionRank rank = new PrescriptionRank();
 			rank.setId(IdUtil.simpleUUID());
 			rank.setClinicName(v.getKey());
-			rank.setNumber(v.getValue() * storeTopMultiple);
+			rank.setNumber((int) (v.getValue() * storeTopMultiple));
 			ranks.add(rank);
 		});
 

+ 4 - 4
src/main/java/com/yideb/audit/service/hub/impl/PrescriptionTrendServiceImpl.java

@@ -28,7 +28,7 @@ import java.util.List;
 public class PrescriptionTrendServiceImpl extends ServiceImpl<PrescriptionTrendMapper, PrescriptionTrend> implements IPrescriptionTrendService {
 
 	@Override
-	public Boolean insert(List<BasicVo> list, Integer prescriptionAddDayMultiple) {
+	public Boolean insert(List<BasicVo> list, Double prescriptionAddDayMultiple) {
 		if (CollectionUtil.isEmpty(list)) {
 			return Boolean.FALSE;
 		}
@@ -42,12 +42,12 @@ public class PrescriptionTrendServiceImpl extends ServiceImpl<PrescriptionTrendM
 		PrescriptionTrend trend = new PrescriptionTrend();
 		trend.setId(IdUtil.simpleUUID());
 		trend.setStatisticDate(basicVo.getKey());
-		trend.setNumber(basicVo.getValue() * prescriptionAddDayMultiple);
+		trend.setNumber((int) (basicVo.getValue() * prescriptionAddDayMultiple));
 		return save(trend);
 	}
 
 	@Override
-	public Boolean batchInsert(List<BasicVo> list, Integer prescriptionAddDayMultiple) {
+	public Boolean batchInsert(List<BasicVo> list, Double prescriptionAddDayMultiple) {
 		if (CollectionUtil.isEmpty(list)) {
 			return Boolean.FALSE;
 		}
@@ -60,7 +60,7 @@ public class PrescriptionTrendServiceImpl extends ServiceImpl<PrescriptionTrendM
 			PrescriptionTrend trend = new PrescriptionTrend();
 			trend.setId(IdUtil.simpleUUID());
 			trend.setStatisticDate(v.getKey());
-			trend.setNumber(v.getValue() * prescriptionAddDayMultiple);
+			trend.setNumber((int) (v.getValue() * prescriptionAddDayMultiple));
 			trends.add(trend);
 		});
 

+ 4 - 4
src/main/java/com/yideb/audit/service/hub/impl/StoreTrendServiceImpl.java

@@ -28,7 +28,7 @@ import java.util.List;
 public class StoreTrendServiceImpl extends ServiceImpl<StoreTrendMapper, StoreTrend> implements IStoreTrendService {
 
 	@Override
-	public Boolean insert(List<BasicVo> list, Integer storeAddDayMultiple) {
+	public Boolean insert(List<BasicVo> list, Double storeAddDayMultiple) {
 		if (CollectionUtil.isEmpty(list)) {
 			return Boolean.FALSE;
 		}
@@ -42,12 +42,12 @@ public class StoreTrendServiceImpl extends ServiceImpl<StoreTrendMapper, StoreTr
 		StoreTrend trend = new StoreTrend();
 		trend.setId(IdUtil.simpleUUID());
 		trend.setStatisticDate(basicVo.getKey());
-		trend.setNumber(basicVo.getValue() * storeAddDayMultiple);
+		trend.setNumber((int) (basicVo.getValue() * storeAddDayMultiple));
 		return save(trend);
 	}
 
 	@Override
-	public Boolean batchInsert(List<BasicVo> list, Integer storeAddDayMultiple) {
+	public Boolean batchInsert(List<BasicVo> list, Double storeAddDayMultiple) {
 		if (CollectionUtil.isEmpty(list)) {
 			return Boolean.FALSE;
 		}
@@ -60,7 +60,7 @@ public class StoreTrendServiceImpl extends ServiceImpl<StoreTrendMapper, StoreTr
 			StoreTrend trend = new StoreTrend();
 			trend.setId(IdUtil.simpleUUID());
 			trend.setStatisticDate(v.getKey());
-			trend.setNumber(v.getValue() * storeAddDayMultiple);
+			trend.setNumber((int) (v.getValue() * storeAddDayMultiple));
 			trends.add(trend);
 		});
 

+ 8 - 8
src/main/java/com/yideb/audit/task/BottomScheduleTask.java

@@ -53,14 +53,14 @@ public class BottomScheduleTask {
 
 		// 读取数据库配置
 		log.info("读取配置表信息开始");
-		Map<Integer, Integer> configMap = statisticConfigService.allConfigs();
-		Integer storeAddDayMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.STORE_ADD_DAY.getCode(), 1);
-		Integer prescriptionAddDayMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.AUDIT_ADD_DAY.getCode(), 1);
-		Integer storeTopMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.STORE_TOP_10.getCode(), 1);
-		Integer storeTopLevel = configMap.getOrDefault(GlobalConstant.BusinessType.STORE_TOP_LEVEL.getCode(), GlobalConstant.DEFAULT_TOP_NUMBER);
-		Integer medicineTopMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.MEDICINE_TOP_10.getCode(), 1);
-		Integer medicineTopLevel = configMap.getOrDefault(GlobalConstant.BusinessType.MEDICINE_TOP_LEVEL.getCode(), GlobalConstant.DEFAULT_TOP_NUMBER);
-		Integer areaStoreMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.AREA_STORE.getCode(), 1);
+		Map<Integer, Double> configMap = statisticConfigService.allConfigs();
+		Double storeAddDayMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.STORE_ADD_DAY.getCode(), 5.1);
+		Double prescriptionAddDayMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.AUDIT_ADD_DAY.getCode(), 5.1);
+		Double storeTopMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.STORE_TOP_10.getCode(), 1.0);
+		Integer storeTopLevel = configMap.getOrDefault(GlobalConstant.BusinessType.STORE_TOP_LEVEL.getCode(), 30.0).intValue();
+		Double medicineTopMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.MEDICINE_TOP_10.getCode(), 5.1);
+		Integer medicineTopLevel = configMap.getOrDefault(GlobalConstant.BusinessType.MEDICINE_TOP_LEVEL.getCode(), 30.0).intValue();
+		Double areaStoreMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.AREA_STORE.getCode(), 5.1);
 		log.info("读取配置表信息结束");
 		log.info("读取配置表,花费时间:{}", System.currentTimeMillis() - startTime);
 

+ 12 - 12
src/main/java/com/yideb/audit/task/TopScheduleTask.java

@@ -41,11 +41,11 @@ public class TopScheduleTask {
 		long startTime = System.currentTimeMillis();
 		// 读取数据库配置
 		log.info("读取配置表信息开始");
-		Map<Integer, Integer> configMap = statisticConfigService.allConfigs();
-		Integer storeMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.STORE.getCode(), 1);
-		Integer prescriptionMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.PRESCRIPTION.getCode(), 1);
-		Integer acceptMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.ACCEPT.getCode(), 1);
-		Integer auditMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.AUDIT.getCode(), 1);
+		Map<Integer, Double> configMap = statisticConfigService.allConfigs();
+		Double storeMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.STORE.getCode(), 5.0);
+		Double prescriptionMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.PRESCRIPTION.getCode(), 5.0);
+		Double acceptMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.ACCEPT.getCode(), 5.0);
+		Double auditMultiple = configMap.getOrDefault(GlobalConstant.BusinessType.AUDIT.getCode(), 5.0);
 		log.info("读取配置表信息结束");
 		log.info("读取配置表,花费时间:{}", System.currentTimeMillis() - startTime);
 
@@ -78,13 +78,13 @@ public class TopScheduleTask {
 
 		// 写数据
 		dataVo.setId(IdUtil.simpleUUID());
-		dataVo.setTotalClinicRegCount(totalClinicRegCount * storeMultiple);
-		dataVo.setTotalPrescriptionCount(totalPrescriptionCount * prescriptionMultiple);
-		dataVo.setWeekClinicRegCount(weekClinicRegCount * storeMultiple);
-		dataVo.setTodayPrescriptionCount(todayPrescriptionCount * prescriptionMultiple);
-		dataVo.setTodayClinicCount(todayClinicCount * storeMultiple);
-		dataVo.setTodayDoctorCount(todayDoctorCount * acceptMultiple);
-		dataVo.setTodayPharmacistCount(todayPharmacistCount * auditMultiple);
+		dataVo.setTotalClinicRegCount((int) (totalClinicRegCount * storeMultiple));
+		dataVo.setTotalPrescriptionCount((int) (totalPrescriptionCount * prescriptionMultiple));
+		dataVo.setWeekClinicRegCount((int) (weekClinicRegCount * storeMultiple));
+		dataVo.setTodayPrescriptionCount((int) (todayPrescriptionCount * prescriptionMultiple));
+		dataVo.setTodayClinicCount((int) (todayClinicCount * storeMultiple));
+		dataVo.setTodayDoctorCount((int) (todayDoctorCount * acceptMultiple));
+		dataVo.setTodayPharmacistCount((int) (todayPharmacistCount * auditMultiple));
 
 		log.info("写数据到远程数据库开始");
 		basicStatisticService.flushDb(dataVo);

+ 2 - 1
src/main/resources/mapper/audit/BottomMapper.xml

@@ -61,7 +61,8 @@
         FROM
             clc_prescription_med
         WHERE
-            clinic_id IN (SELECT clinic_id FROM c_cooperation_clinic WHERE type = 1)
+            medicine_date > '2018-11-21'
+            AND clinic_id IN (SELECT clinic_id FROM c_cooperation_clinic WHERE type = 1)
         GROUP BY
             medicine_name
         ORDER BY