ltkj-admin/src/main/java/com/ltkj/web/controller/service/TjSysAsyncServiceImpl.java
@@ -12,6 +12,7 @@ import com.ltkj.hosp.domain.*; import com.ltkj.hosp.service.*; import com.ltkj.hosp.vodomain.AddNewReservationConfirm; import com.ltkj.hosp.vodomain.LineChartsVo; import com.ltkj.hosp.vodomain.PieChartVo; import com.ltkj.hosp.vodomain.QjDomainVo; import com.ltkj.mall.mallOrderUtils.TjConstants; @@ -989,7 +990,8 @@ //首页折线图数据 private AjaxResult getLineCharts() { List<Map<Object, Object>> line = orderService.getLine(); // List<Map<Object, Object>> line = orderService.getLine(); List<LineChartsVo> line = orderService.getLine(); Collections.reverse(line); return AjaxResult.success("折线图数据", line); } @@ -1495,7 +1497,14 @@ String summary = remark.getSummary(); if (null != summary) { String[] split = summary.split(";"); parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(Arrays.asList(split))); // List<Long> longList = new ArrayList<>(); // for (String str : split) { // if(!"".equals(str)){ // longList.add(Long.valueOf(str)); // } // } // parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(longList)); parent.put("parentAdvice", tjAdviceService.getAdviceStringsByIds(Arrays.asList(split))); } else { parent.put("parentAdvice", null); ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjCheckController.java
@@ -488,7 +488,14 @@ String summary = remark.getSummary(); if (null != summary) { String[] split = summary.split(";"); parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(Arrays.asList(split))); // List<Long> longList = new ArrayList<>(); // for (String str : split) { // if(!"".equals(str)){ // longList.add(Long.valueOf(str)); // } // } // parent.put("parentAdvice", tjAdviceService.getAdviceStringByIds(longList)); parent.put("parentAdvice", tjAdviceService.getAdviceStringsByIds(Arrays.asList(split))); } else { parent.put("parentAdvice", null); ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjHomePageController.java
@@ -459,7 +459,8 @@ } private AjaxResult getResult() { List<Map<Object, Object>> line = orderService.getLine(); // List<Map<Object, Object>> line = orderService.getLine(); List<LineChartsVo> line = orderService.getLine(); Collections.reverse(line); return AjaxResult.success("折线图数据", line); } ltkj-admin/src/main/java/com/ltkj/web/controller/system/TjTollCollectorController.java
@@ -13,6 +13,7 @@ import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.ltkj.common.core.domain.entity.SysDictData; import com.ltkj.common.core.redis.RedisCache; import com.ltkj.common.utils.SecurityUtils; import com.ltkj.common.utils.StringUtils; import com.ltkj.framework.config.MatchUtils; @@ -60,7 +61,8 @@ private ITjCustomerService tjCustomerService; @Resource private ISysDictDataService dictDataService; @Resource private RedisCache redisCache; /** * 查询收费员日结列表 */ @@ -140,10 +142,15 @@ collectorDetail.setAccountId(tjTollCollector.getAccountId()); collectorDetailService.save(collectorDetail); } for (String id : tjTollCollector.getIds()) { TjFlowingWater water = tjFlowingWaterService.getById(id); water.setIsCheckout("Y"); tjFlowingWaterService.updateById(water); if(redisCache.hasKey("longList"+tjTollCollector.getTollCollectorId())){ List<Long> longList= redisCache.getCacheObject("longList" + tjTollCollector.getTollCollectorId()); for (Long id : longList) { TjFlowingWater water = tjFlowingWaterService.getById(id); water.setIsCheckout(tjTollCollector.getId()); water.setUpdateTime(new Date()); tjFlowingWaterService.updateById(water); } redisCache.deleteObject("longList"+tjTollCollector.getTollCollectorId()); } return AjaxResult.success(accountId); } @@ -160,23 +167,13 @@ if (!userId.equals(tollCollectorId)) { return AjaxResult.error("非当前用户禁止操作"); } // LambdaQueryWrapper<TjTollCollector> wqq = new LambdaQueryWrapper<>(); // wqq.orderByDesc(TjTollCollector::getCreateTime); // List<TjTollCollector> list = tjTollCollectorService.list(wqq); // if (null != list && list.size() > 0) { // TjTollCollector collector = list.get(0); // if (null != collector && !collector.getId().equals(id)) { // return AjaxResult.error("请撤销最后一次结账记录"); // } // } String ids = tjTollCollectorService.getTjTollCollectorByLastOne(); if (null != ids && !id.equals(ids)) { return AjaxResult.error("请撤销最后一次结账记录"); } // TjTollCollector collector = tjTollCollectorService.getById(id); TjTollCollector collector = tjTollCollectorService.getTjTollCollectorById(id); if (null != collector) { if("Y".equals(collector.getIsHz())){ if(null !=collector.getIsHz()){ return AjaxResult.error("该账单已汇总不可撤销"); } LambdaQueryWrapper<TjTollCollectorDetail> wq = new LambdaQueryWrapper<>(); @@ -184,11 +181,11 @@ collectorDetailService.remove(wq); tjTollCollectorService.removeById(collector); LambdaQueryWrapper<TjFlowingWater> wqq1 = new LambdaQueryWrapper<>(); wqq1.eq(TjFlowingWater::getIsCheckout, "Y"); wqq1.between(TjFlowingWater::getUpdateTime, collector.getAccountBeginTime(), collector.getAccountEndTime()); wqq1.eq(TjFlowingWater::getIsCheckout,id); List<TjFlowingWater> waterList = tjFlowingWaterService.list(wqq1); for (TjFlowingWater tjFlowingWater : waterList) { tjFlowingWater.setIsCheckout("N"); tjFlowingWater.setIsCheckout(null); tjFlowingWater.setUpdateTime(new Date()); tjFlowingWaterService.updateById(tjFlowingWater); } return AjaxResult.success("该账单已成功撤销"); @@ -230,11 +227,16 @@ Map<String, Object> map = new HashMap<>(); LambdaQueryWrapper<TjFlowingWater> wq = new LambdaQueryWrapper<>(); wq.eq(TjFlowingWater::getTollCollectorId, userId); wq.eq(TjFlowingWater::getIsCheckout, "N"); wq.isNull(TjFlowingWater::getIsCheckout); wq.ne(TjFlowingWater::getPayStasus,0); wq.between(TjFlowingWater::getUpdateTime, beginTime, endTime); Page<TjFlowingWater> page =new Page<>(pageNum,pageSize); Page<TjFlowingWater> waterPage = tjFlowingWaterService.page(page, wq); //缓存所统计的流水id List<Long> longList = tjFlowingWaterService.getFlowingWaterIdList(userId, beginTime, endTime); redisCache.setCacheObject("longList"+userId,longList); List<TjFlowingWater> list1 = waterPage.getRecords(); List<TjFlowingWater> list = tjFlowingWaterService.list(wq); for (TjFlowingWater tjFlowingWater : list1) { ltkj-common/src/main/java/com/ltkj/common/core/redis/RedisCache.java
@@ -43,7 +43,7 @@ * @param key 缓存的键值 * @param value 缓存的值 */ public <T> void setCacheObject(final String key, final T value) { public <T> void setCacheObject(final String key, final Object value) { redisTemplate.opsForValue().set(key, value); } @@ -211,9 +211,8 @@ * * @param key Redis键 * @param hKey Hash键 * @param value 值 */ public <T> void setCacheMapValue(final String key, final String hKey, final T value) { public <T> void setCacheMapValue(final String key, final String hKey, final Object value) { redisTemplate.opsForHash().put(key, hKey, value); } ltkj-hosp/src/main/java/com/ltkj/hosp/domain/TjFlowingWater.java
@@ -1,5 +1,6 @@ package com.ltkj.hosp.domain; import com.baomidou.mybatisplus.annotation.FieldStrategy; import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableId; import com.fasterxml.jackson.annotation.JsonFormat; @@ -171,6 +172,7 @@ */ @Excel(name = "是否结账",dictType="sys_yes_no") @ApiModelProperty(value = "是否结账") @TableField(updateStrategy = FieldStrategy.IGNORED) private String isCheckout; private String remarks; ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TbTransitionMapper.java
@@ -79,7 +79,10 @@ public boolean deletedTbTransitionListByCusIdAndPac(String cusId); //根据身份证号和套餐id查询和项目id @Select("SELECT * FROM tb_transition WHERE cus_id=#{cusId} AND ISNULL(pac_id) AND pro_id =#{proId}") // @Select("SELECT * FROM tb_transition WHERE cus_id=#{cusId} AND ISNULL(pac_id) AND pro_id =#{proId}") // public List<TbTransition> getTbTransitionListByCusIdAndPacIdAndProId(@Param("cusId") String cusId,@Param("proId") String proId); @Select("SELECT * FROM tb_transition WHERE cus_id=#{cusId} AND pro_id =#{proId}") public List<TbTransition> getTbTransitionListByCusIdAndPacIdAndProId(@Param("cusId") String cusId,@Param("proId") String proId); @Select("SELECT DISTINCT pac_id FROM tb_transition WHERE cus_id=#{cusId} AND !ISNULL(pac_id)") ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjFlowingWaterMapper.java
@@ -1,11 +1,13 @@ package com.ltkj.hosp.mapper; import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ltkj.hosp.domain.TjFlowingWater; import com.ltkj.hosp.domain.TjOrderDetail; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; /** @@ -81,4 +83,14 @@ @Select("SELECT GROUP_CONCAT(a.pro_name ) proname FROM tj_charging_standard a WHERE a.tj_num=#{orderId}") String getproNameByOrderId(String orderId); @Select("\n" + "SELECT a.tj_serial_number FROM tj_flowing_water a " + "WHERE a.deleted=0 " + "AND a.toll_collector_id=#{userId}" + "AND ISNULL(a.is_checkout)" + "AND a.pay_stasus !=0 " + "AND a.update_time BETWEEN #{beginTime} AND #{endTime}") List<Long> getFlowingWaterIdList(@Param("userId") String userId,@Param("beginTime") Date beginTime,@Param("endTime") Date endTime); } ltkj-hosp/src/main/java/com/ltkj/hosp/mapper/TjOrderMapper.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper; import com.ltkj.hosp.domain.TjOrder; import com.ltkj.hosp.vodomain.LineChartsVo; import org.apache.ibatis.annotations.Mapper; import org.apache.ibatis.annotations.Param; import org.apache.ibatis.annotations.Select; @@ -81,6 +82,30 @@ List<TjOrder> getOrderList1(); // @Select("select aa.date,\n" + // " sum(if(c.tj_type='团队', ifnull(c.coun,0),0)) as tdcoun,\n" + // " sum(if(c.tj_type='个人', ifnull(c.coun,0),0)) as grcoun,\n" + // " sum(if(c.tj_type='报告', ifnull(c.coun,0),0)) as bgcoun \n" + // " from (\n" + // " SELECT date_sub(CURDATE(),interval @i:=@i+1 day) as date\n" + // " from (select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all \n" + // " select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all \n" + // " select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all \n" + // " select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all select 1 union all \n" + // " select 1 union all select 1) as a,\n" + // " (select @i:= -1) b) aa \n" + // " left join (\n" + // " select date_format(create_time, '%Y-%m-%d') dat, tj_type, count(*) coun\n" + // " from tj_order where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(create_time)\n" + // " group by date_format(create_time, '%Y-%m-%d'),tj_type\n" + // " union\n" + // " select date_format(report_time, '%Y-%m-%d') dat, '报告' tj_type, count(*) coun\n" + // " from tj_order where DATE_SUB(CURDATE(), INTERVAL 30 DAY) <= date(create_time)\n" + // " group by date_format(report_time, '%Y-%m-%d')\n" + // " ) c on c.dat =aa.date\n" + // "group by aa.date") // List<Map<Object, Object>> getLine(); @Select("select aa.date,\n" + " sum(if(c.tj_type='团队', ifnull(c.coun,0),0)) as tdcoun,\n" + " sum(if(c.tj_type='个人', ifnull(c.coun,0),0)) as grcoun,\n" + @@ -103,7 +128,7 @@ " group by date_format(report_time, '%Y-%m-%d')\n" + " ) c on c.dat =aa.date\n" + "group by aa.date") List<Map<Object, Object>> getLine(); List<LineChartsVo> getLine(); @Select("SELECT * FROM tj_order WHERE tj_number RLIKE #{tjNum} AND deleted='0' ORDER BY create_time DESC") ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjAdviceService.java
@@ -62,7 +62,7 @@ public int deleteTjAdviceById(Long id); public String getAdviceStringByIds(List<String> aList); public String getAdviceStringsByIds(List<String> aList); List<TjAdvice> getAdviceStringByIds(String[] aList); ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjFlowingWaterService.java
@@ -1,5 +1,6 @@ package com.ltkj.hosp.service; import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.extension.service.IService; @@ -66,4 +67,6 @@ String getDiscount(String orderId); String getproNameByOrderId(String orderId); List<Long> getFlowingWaterIdList(String userId, Date beginTime,Date endTime); } ltkj-hosp/src/main/java/com/ltkj/hosp/service/ITjOrderService.java
@@ -6,6 +6,7 @@ import com.baomidou.mybatisplus.extension.service.IService; import com.ltkj.hosp.domain.TjOrder; import com.ltkj.hosp.vodomain.LineChartsVo; /** * 体检记录Service接口 @@ -83,7 +84,8 @@ public List<TjOrder> getOrderList1(); public List<Map<Object, Object>> getLine(); // public List<Map<Object, Object>> getLine(); public List<LineChartsVo> getLine(); public List<TjOrder> getOrderListByLikeTjNum(String tjNum); ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjAdviceServiceImpl.java
@@ -91,7 +91,7 @@ } @Override public String getAdviceStringByIds(List<String> aList) { public String getAdviceStringsByIds(List<String> aList) { return tjAdviceMapper.getAdviceStringByIds(aList); } ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjFlowingWaterServiceImpl.java
@@ -1,5 +1,6 @@ package com.ltkj.hosp.service.impl; import java.util.Date; import java.util.List; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; @@ -107,4 +108,9 @@ public String getproNameByOrderId(String orderId) { return tjFlowingWaterMapper.getproNameByOrderId(orderId); } @Override public List<Long> getFlowingWaterIdList(String userId, Date beginTime, Date endTime) { return tjFlowingWaterMapper.getFlowingWaterIdList(userId,beginTime,endTime); } } ltkj-hosp/src/main/java/com/ltkj/hosp/service/impl/TjOrderServiceImpl.java
@@ -13,6 +13,7 @@ import com.ltkj.hosp.service.IDictCompService; import com.ltkj.hosp.service.ITjCustomerService; import com.ltkj.hosp.service.ITjPackageService; import com.ltkj.hosp.vodomain.LineChartsVo; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import com.ltkj.hosp.mapper.TjOrderMapper; @@ -152,8 +153,14 @@ return tjOrderMapper.getOrderList1(); } // @Override // public List<Map<Object, Object>> getLine() { // // return tjOrderMapper.getLine(); // } @Override public List<Map<Object, Object>> getLine() { public List<LineChartsVo> getLine() { return tjOrderMapper.getLine(); } ltkj-hosp/src/main/java/com/ltkj/hosp/vodomain/LineChartsVo.java
New file @@ -0,0 +1,24 @@ package com.ltkj.hosp.vodomain; import com.fasterxml.jackson.annotation.JsonFormat; import lombok.Data; import org.springframework.format.annotation.DateTimeFormat; import java.util.Date; /** * @Company: 西安路泰科技有限公司 * @Author: zjh * @Date: 2023/11/2 10:44 */ @Data public class LineChartsVo { @JsonFormat(pattern = "yyyy-MM-dd") @DateTimeFormat(pattern = "yyyy-MM-dd") private Date date; private Integer bgcoun; private Integer grcoun; private Integer tdcoun; }