deb
This commit is contained in:
parent
e6f9eab4f8
commit
253190d255
|
|
@ -40,9 +40,8 @@ public class StatisticsController extends BaseController {
|
|||
LocalDateTime beginTime = DateUtil.getDateTime(begin);
|
||||
LocalDateTime endTime = DateUtil.getDateTime(end);
|
||||
|
||||
// RevenueOverviewVo revenueOverview = statisticsService.getRevenueOverview(beginTime, endTime);
|
||||
// return success(revenueOverview);
|
||||
return success();
|
||||
RevenueOverviewVo revenueOverview = statisticsService.getRevenueOverview(beginTime, endTime);
|
||||
return success(revenueOverview);
|
||||
}
|
||||
|
||||
|
||||
|
|
@ -56,15 +55,8 @@ public class StatisticsController extends BaseController {
|
|||
|
||||
@RequestMapping("expiryDateWarning")
|
||||
public Result<List<Map<String, Object>>> expiryDateWarning() {
|
||||
// QueryWrapper<InventoryGoodsView> inventoryQuery = new QueryWrapper<>();
|
||||
// inventoryQuery.select("*,EXTRACT(EPOCH FROM AGE(expiry_date,CURRENT_DATE))/" + Constants.OneDaySecond + " as remaining_days");
|
||||
// inventoryQuery.apply("CURRENT_DATE + INTERVAL '1 day' * expiry_warn_days >= expiry_date");
|
||||
// inventoryQuery.orderByAsc("expiry_date");
|
||||
//
|
||||
// List<Map<String, Object>> maps = iInventoryGoodsViewService.listMaps(inventoryQuery);
|
||||
inventoryService.expiryDateWarning();
|
||||
// return success(maps);
|
||||
return success();
|
||||
List<Map<String, Object>> maps = inventoryService.expiryDateWarning();
|
||||
return success(maps);
|
||||
}
|
||||
|
||||
@RequestMapping("getPersonPayOverview")
|
||||
|
|
|
|||
|
|
@ -2,6 +2,10 @@ package com.syjiaer.clinic.server.mapper.inventory;
|
|||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.syjiaer.clinic.server.entity.inventory.Inventory;
|
||||
import org.apache.ibatis.annotations.Select;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
|
||||
/**
|
||||
|
|
@ -13,6 +17,10 @@ import com.syjiaer.clinic.server.entity.inventory.Inventory;
|
|||
* @since 2025-04-17
|
||||
*/
|
||||
public interface InventoryMapper extends BaseMapper<Inventory> {
|
||||
|
||||
@Select("SELECT" +
|
||||
" inventory.*,goods.expiry_warn_days,goods.unit_price,EXTRACT(EPOCH FROM AGE(expiry_date, CURRENT_DATE)) / 86400 AS remaining_days" +
|
||||
" FROM inventory LEFT JOIN goods ON inventory.good_id = goods.id" +
|
||||
" WHERE CURRENT_DATE + INTERVAL '1 day' * goods.expiry_warn_days >= inventory.expiry_date AND inventory.whole_number !=0")
|
||||
List<Map<String, Object>> selectExpiryWarn();
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -245,10 +245,13 @@ public class InventoryService extends BaseService {
|
|||
}
|
||||
|
||||
|
||||
|
||||
public void expiryDateWarning() {
|
||||
// inventoryMapper.selectListB
|
||||
|
||||
/**
|
||||
* 查询即将过期的库存
|
||||
* @return
|
||||
*/
|
||||
public List<Map<String, Object>> expiryDateWarning() {
|
||||
List<Map<String, Object>> maps = inventoryMapper.selectExpiryWarn();
|
||||
return maps;
|
||||
}
|
||||
|
||||
|
||||
|
|
|
|||
|
|
@ -98,7 +98,7 @@ public class PatientRegistrationService extends BaseService {
|
|||
registration.setOrganizationSectionId(section.getId());
|
||||
patientRegistrationMapper.insert(registration);
|
||||
//医保挂号
|
||||
if (mdtrtCertType == null && mdtrtCertNo == null){
|
||||
if (mdtrtCertType == null || mdtrtCertNo == null || mdtrtCertType.isEmpty() || mdtrtCertNo.isEmpty()){
|
||||
return registration;
|
||||
}
|
||||
|
||||
|
|
|
|||
|
|
@ -39,8 +39,12 @@ public class SocialIcpcDiagnoseService extends BaseService {
|
|||
List<String> code_list = new ArrayList<>();
|
||||
DateTimeFormatter dateTimeFormatter = DateUtil.getDateTimeFormatter(DateUtil.DATE_TIME_FORMAT);
|
||||
List<SocialIcpcDiagnosis> list = new ArrayList<>();
|
||||
String next_version_name = "";
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
if (i==0){
|
||||
next_version_name = jsonObject.getString("ver");
|
||||
}
|
||||
if (!jsonObject.getString("vali_flag").equals("1")) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -75,12 +79,19 @@ public class SocialIcpcDiagnoseService extends BaseService {
|
|||
list.add(socialIcpcDiagnosis);
|
||||
code_list.add(socialIcpcDiagnosis.getCode());
|
||||
}
|
||||
if (next_version_name.isEmpty()){
|
||||
return next_version_name;
|
||||
}
|
||||
socialDirectoryVersionService.saveVersion(1361, pre_version_name, next_version_name, list.size());
|
||||
if(list.isEmpty()){
|
||||
return null;
|
||||
}
|
||||
QueryWrapper<SocialIcpcDiagnosis> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("code", code_list);
|
||||
socialIcpcDiagnosisMapper.delete(queryWrapper);
|
||||
socialIcpcDiagnosisMapper.insert(list, 100);
|
||||
socialDirectoryVersionService.saveVersion(1361, pre_version_name, list.get(0).getVer(), list.size());
|
||||
return list.get(0).getVer();
|
||||
|
||||
return next_version_name;
|
||||
}catch (JSONException e){
|
||||
log.error(e.toString());
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -38,8 +38,12 @@ public class SocialIcpcItemService extends BaseService {
|
|||
List<String> code_list = new ArrayList<>();
|
||||
DateTimeFormatter dateTimeFormatter = DateUtil.getDateTimeFormatter(DateUtil.DATE_TIME_FORMAT);
|
||||
List<SocialIcpcItem> list = new ArrayList<>();
|
||||
String next_version_name = "";
|
||||
for (int i = 0; i < jsonArray.size(); i++) {
|
||||
JSONObject jsonObject = jsonArray.getJSONObject(i);
|
||||
if (i==0){
|
||||
next_version_name = jsonObject.getString("ver");
|
||||
}
|
||||
if (!jsonObject.getString("vali_flag").equals("1")) {
|
||||
continue;
|
||||
}
|
||||
|
|
@ -77,12 +81,18 @@ public class SocialIcpcItemService extends BaseService {
|
|||
list.add(socialIcpcItem);
|
||||
code_list.add(socialIcpcItem.getCode());
|
||||
}
|
||||
if (next_version_name.isEmpty()){
|
||||
return next_version_name;
|
||||
}
|
||||
socialDirectoryVersionService.saveVersion(1362, pre_version_name, next_version_name, list.size());
|
||||
if (list.isEmpty()){
|
||||
return null;
|
||||
}
|
||||
QueryWrapper<SocialIcpcItem> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.in("code", code_list);
|
||||
socialIcpcItemMapper.delete(queryWrapper);
|
||||
socialIcpcItemMapper.insert(list, 100);
|
||||
socialDirectoryVersionService.saveVersion(1362, pre_version_name, list.get(0).getVer(), list.size());
|
||||
return list.get(0).getVer();
|
||||
return next_version_name;
|
||||
}catch (JSONException e){
|
||||
log.error(e.toString());
|
||||
return null;
|
||||
|
|
|
|||
|
|
@ -1,6 +1,17 @@
|
|||
package com.syjiaer.clinic.server.service.statistics;
|
||||
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.syjiaer.clinic.server.common.enums.GoodsTypeEnum;
|
||||
import com.syjiaer.clinic.server.common.enums.RetailOrderPayTypeEnum;
|
||||
import com.syjiaer.clinic.server.common.enums.RetailOrderStatusEnum;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeGoodsList;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeItemList;
|
||||
import com.syjiaer.clinic.server.entity.charge.ChargeOrder;
|
||||
import com.syjiaer.clinic.server.entity.statistics.GoodsTypeRevenue;
|
||||
import com.syjiaer.clinic.server.entity.statistics.PayTypeRevenue;
|
||||
import com.syjiaer.clinic.server.entity.statistics.RevenueOverviewVo;
|
||||
import com.syjiaer.clinic.server.mapper.charge.ChargeGoodsListMapper;
|
||||
import com.syjiaer.clinic.server.mapper.charge.ChargeOrderMapper;
|
||||
import com.syjiaer.clinic.server.service.BaseService;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
|
@ -13,7 +24,70 @@ import java.util.Map;
|
|||
|
||||
@Service
|
||||
public class StatisticsService extends BaseService {
|
||||
@Autowired
|
||||
private ChargeOrderMapper chargeOrderMapper;
|
||||
@Autowired
|
||||
private ChargeGoodsListMapper chargeGoodsListMapper;
|
||||
public RevenueOverviewVo getRevenueOverview(LocalDateTime begin, LocalDateTime end) {
|
||||
RevenueOverviewVo overviewVo = new RevenueOverviewVo();
|
||||
QueryWrapper<ChargeOrder> queryWrapper = new QueryWrapper<>();
|
||||
queryWrapper.select("sum(total_price) as total_revenue,count(*) as total_order_count");
|
||||
queryWrapper.ge("pay_time", begin);
|
||||
queryWrapper.le("pay_time", end);
|
||||
queryWrapper.eq("status", RetailOrderStatusEnum.FINISHED.getCode());
|
||||
Map<String, Object> map = chargeOrderMapper.selectMaps(queryWrapper).get(0);
|
||||
overviewVo.setTotalRevenue((BigDecimal) map.getOrDefault("total_revenue",new BigDecimal(0)));
|
||||
overviewVo.setTotalOrderCount((Long) map.getOrDefault("total_order_count",new BigDecimal(0)));
|
||||
//
|
||||
// queryWrapper.isNotNull("vip_id");
|
||||
// Map<String, Object> vipMap = retailOrderService.getMap(queryWrapper);
|
||||
// overviewVo.setVipRevenue((BigDecimal) vipMap.getOrDefault("total_revenue",new BigDecimal(0)));
|
||||
// overviewVo.setVipOrderCount((Long) vipMap.getOrDefault("total_order_count",new BigDecimal(0)));
|
||||
|
||||
QueryWrapper<ChargeOrder> payTypeQuery = new QueryWrapper<>();
|
||||
payTypeQuery.ge("pay_time", begin);
|
||||
payTypeQuery.le("pay_time", end);
|
||||
payTypeQuery.eq("status", RetailOrderStatusEnum.FINISHED.getCode());
|
||||
List<ChargeOrder> chargeOrders = chargeOrderMapper.selectList(payTypeQuery);
|
||||
|
||||
payTypeQuery.select("pay_type,sum(total_price) as total_revenue");
|
||||
payTypeQuery.groupBy("pay_type");
|
||||
|
||||
List<Map<String, Object>> payTypeMaps = chargeOrderMapper.selectMaps(payTypeQuery);
|
||||
List<PayTypeRevenue> payTypeRevenueList = new ArrayList<>();
|
||||
for (Map<String, Object> payTypeMap : payTypeMaps) {
|
||||
PayTypeRevenue revenue = new PayTypeRevenue();
|
||||
revenue.setName(RetailOrderPayTypeEnum.getByCode((Integer) payTypeMap.get("pay_type")).getDesc());
|
||||
revenue.setTotalRevenue((BigDecimal) payTypeMap.getOrDefault("total_revenue",new BigDecimal(0)));
|
||||
payTypeRevenueList.add(revenue);
|
||||
}
|
||||
overviewVo.setPayTypeRevenue(payTypeRevenueList);
|
||||
List<String> retailOrderCodes = chargeOrders.stream().map(ChargeOrder::getCode).toList();
|
||||
QueryWrapper<ChargeGoodsList> retailListQuery = new QueryWrapper<>();
|
||||
retailListQuery.select("type,sum(sub_total_price) as total_revenue");
|
||||
retailListQuery.groupBy("type");
|
||||
retailListQuery.ge("create_time", begin);
|
||||
retailListQuery.le("create_time", end);
|
||||
List<Map<String, Object>> goodsTypeMaps = new ArrayList<>();
|
||||
if (!retailOrderCodes.isEmpty() ){
|
||||
retailListQuery.in("charge_order_code",retailOrderCodes);
|
||||
goodsTypeMaps = chargeGoodsListMapper.selectMaps(retailListQuery);
|
||||
}
|
||||
|
||||
|
||||
List<GoodsTypeRevenue> goodsTypeRevenuesList = new ArrayList<>();
|
||||
for (Map<String, Object> goodsTypeMap : goodsTypeMaps) {
|
||||
GoodsTypeRevenue goodsTypeRevenue = new GoodsTypeRevenue();
|
||||
goodsTypeRevenue.setName(GoodsTypeEnum.getByType((Integer) goodsTypeMap.get("type")).getDesc());
|
||||
goodsTypeRevenue.setTotalRevenue((BigDecimal) goodsTypeMap.getOrDefault("total_revenue",new BigDecimal(0)));
|
||||
goodsTypeRevenuesList.add(goodsTypeRevenue);
|
||||
}
|
||||
overviewVo.setGoodsTypeRevenue(goodsTypeRevenuesList);
|
||||
|
||||
|
||||
|
||||
return overviewVo;
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue