Преглед на файлове

修改桌台挂单,修改库存管理,修改账单

许智捷 преди 2 години
родител
ревизия
bbba89ca66
променени са 41 файла, в които са добавени 511 реда и са изтрити 172 реда
  1. 8 13
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusAgreementOrderFeeController.java
  2. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusOrderFeeController.java
  3. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusCustomerMapper.java
  4. 3 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusOrderFeeMapper.java
  5. 7 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusOrderFeeMapper.xml
  6. 11 11
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusRoomBookingOrdersMapper.xml
  7. 1 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusCustomerService.java
  8. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusOrderFeeService.java
  9. 4 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusCustomerServiceImpl.java
  10. 48 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusOrderFeeServiceImpl.java
  11. 72 10
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java
  12. 6 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ForwardFangTaiDateVo.java
  13. 3 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ForwardFangTaiQueryVo.java
  14. 6 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/finance/mapper/SummaryMapper.java
  15. 6 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/FwRoomLockMapper.java
  16. 9 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/FwRoomRepairMapper.java
  17. 4 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/IFwRoomLockService.java
  18. 4 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/IFwRoomRepairService.java
  19. 7 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/impl/FwRoomLockServiceImpl.java
  20. 11 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/impl/FwRoomRepairServiceImpl.java
  21. 17 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/vo/FwRoomLockVo.java
  22. 20 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/vo/FwRoomRepairVo.java
  23. 5 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/controller/KcDepositoryInGoodsController.java
  24. 111 61
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/controller/KcStockController.java
  25. 14 10
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/controller/KcStockDetailController.java
  26. 29 16
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/controller/KcSupplierInGoodsController.java
  27. 12 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/entity/KcDepositoryInGoods.java
  28. 6 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/entity/KcStockDetail.java
  29. 5 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/mapper/KcDepositoryInGoodsMapper.java
  30. 4 3
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/mapper/KcSupplierInGoodsMapper.java
  31. 2 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/service/IKcDepositoryInGoodsService.java
  32. 4 8
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/service/impl/KcDepositoryInGoodsServiceImpl.java
  33. 2 4
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/mapper/PosOrderGoodsDetailMapper.java
  34. 1 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/service/IPosOrderGoodsDetailService.java
  35. 2 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/service/impl/PosOrderGoodsDetailServiceImpl.java
  36. 5 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/Vo/CesGoodsVo.java
  37. 26 0
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesGoods.java
  38. 2 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesRoomsMapper.java
  39. 2 1
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/xml/CesRoomsMapper.xml
  40. 11 7
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesHousePriceSchemeServiceImpl.java
  41. 13 2
      jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomsServiceImpl.java

+ 8 - 13
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusAgreementOrderFeeController.java

@@ -33,29 +33,17 @@ import org.jeecg.modules.business.entity.*;
 import org.jeecg.modules.business.enums.*;
 import org.jeecg.modules.business.service.IBusAgreementOrderFeeService;
 import org.jeecg.modules.business.service.IBusCommodityRecordService;
+import org.jeecg.modules.business.service.IBusCustomerService;
 import org.jeecg.modules.business.vo.AgreementAccountVo;
-import org.jeecg.modules.order.entity.CesOrderRepair;
-import org.jeecg.modules.order.service.ICesOrderLeaseGoodsService;
 import org.jeecg.modules.rooms.entity.CesGoods;
 import org.jeecg.modules.rooms.service.CesGoodsServiceImpl;
-import org.jeecg.modules.rooms.service.CesStockTypeServiceImpl;
-import org.jeecg.modules.system.entity.SysCategory;
-import org.jeecgframework.poi.excel.ExcelImportUtil;
-import org.jeecgframework.poi.excel.def.NormalExcelConstants;
-import org.jeecgframework.poi.excel.entity.ExportParams;
-import org.jeecgframework.poi.excel.entity.ImportParams;
-import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.web.bind.annotation.*;
-import org.springframework.web.multipart.MultipartFile;
-import org.springframework.web.multipart.MultipartHttpServletRequest;
 import org.springframework.web.servlet.ModelAndView;
-import com.alibaba.fastjson.JSON;
 import io.swagger.annotations.Api;
 import io.swagger.annotations.ApiOperation;
 import org.jeecg.common.aspect.annotation.AutoLog;
-import org.apache.shiro.authz.annotation.RequiresPermissions;
 
  /**
  * @Description: 协议账单表
@@ -74,6 +62,9 @@ public class BusAgreementOrderFeeController extends JeecgController<BusAgreement
 	 private IBusCommodityRecordService busCommodityRecordService;
 	 @Resource
 	 private CesGoodsServiceImpl goodsService;
+	 @Resource
+	 private IBusCustomerService customerService;
+
 	/**
 	 * 分页列表查询
 	 *
@@ -104,6 +95,10 @@ public class BusAgreementOrderFeeController extends JeecgController<BusAgreement
 				item.setGuest("协议单位");
 			} else {
 				//根据关联的入住单找到客户信息
+				BusCustomer customer = customerService.getCustomerByOrderId(item.getOrderFeeId());
+				if (customer != null){
+					item.setGuest(customer.getName());
+				}
 			}
 		});
 		return Result.OK(pageList);

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/controller/BusOrderFeeController.java

@@ -144,10 +144,11 @@ public class BusOrderFeeController extends JeecgController<BusOrderFee, IBusOrde
 									 @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 									 @RequestParam(name="roomName",required=false) String roomName,
 									 @RequestParam(name="preferentialStatus",required=false) Integer preferentialStatus,
+									 @RequestParam(name="bookingOrderId",required=false) String bookingOrderId,
 									 @RequestParam(name="startTime" ,required=false) @JsonFormat(pattern = "yyyy-MM-dd")  @DateTimeFormat(pattern="yyyy-MM-dd") DateTime startTime,
 									 @RequestParam(name="endTime" ,required=false) @JsonFormat(pattern = "yyyy-MM-dd")  @DateTimeFormat(pattern="yyyy-MM-dd") DateTime endTime) {
 		 Page<RoomOrderFeeVo> page = new Page<>(pageNo, pageSize);
-		 IPage<RoomOrderFeeVo> pageList = busOrderFeeService.strikeBalancePage(page,roomName, preferentialStatus, startTime, endTime);
+		 IPage<RoomOrderFeeVo> pageList = busOrderFeeService.strikeBalancePage(page,roomName, preferentialStatus,bookingOrderId, startTime, endTime);
 		 return Result.OK(pageList);
 	 }
 

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusCustomerMapper.java

@@ -3,6 +3,7 @@ package org.jeecg.modules.business.mapper;
 import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.jeecg.modules.business.entity.BusCustomer;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 
@@ -14,4 +15,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface BusCustomerMapper extends BaseMapper<BusCustomer> {
 
+    @Select("select * from bus_customer bc \n" +
+            "left join bus_order_fee bof on bc.id = bof.contact_id \n" +
+            "where bof.id = #{orderId}")
+    BusCustomer getCustomerByOrderId(String orderId);
 }

+ 3 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/BusOrderFeeMapper.java

@@ -9,6 +9,8 @@ import org.jeecg.modules.business.entity.BusOrderFee;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
 import org.jeecg.modules.business.vo.RoomOrderFeeVo;
 
+import java.util.List;
+
 /**
  * @Description: bus_order_fee
  * @Author: jeecg-boot
@@ -19,6 +21,7 @@ public interface BusOrderFeeMapper extends BaseMapper<BusOrderFee> {
 
     IPage<RoomOrderFeeVo> strikeBalancePage(Page<RoomOrderFeeVo> page,@Param("roomName") String roomName,
                                             @Param("preferentialStatus") Integer preferentialStatus,
+                                            @Param("livingOrderIds") List<String> livingOrderIds,
                                             @Param("startTime") DateTime startTime,
                                             @Param("endTime") DateTime endTime);
 }

+ 7 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusOrderFeeMapper.xml

@@ -8,7 +8,14 @@
         where bof.fee_type = 1 and bof.return_item = 1
         <if test="roomName!=null and roomName!=''">and cr.name = #{roomName}</if>
         <if test="preferentialStatus!=null and preferentialStatus!=''">and bof.preferential_status = #{preferentialStatus}</if>
+        <if test="livingOrderIds!=null and livingOrderIds.size > 0">
+            and bof.living_order_id in
+            <foreach item="item" collection="livingOrderIds" open="(" separator="," close=")">
+                #{item}
+            </foreach>
+        </if>
         <if test="startTime!=null">and bof.create_time > #{startTime}</if>
         <if test="endTime!=null">and bof.create_time > #{endTime}</if>
+        order by bof.create_time desc
     </select>
 </mapper>

+ 11 - 11
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/mapper/xml/BusRoomBookingOrdersMapper.xml

@@ -92,33 +92,33 @@
 cus.id as customer_id,cus.`name` as customer_name,lo.arrival_time,lo.due_out_time,
 lo.booking_order_id
     from bus_booking_rooms br inner join bus_rooms_living_order lo
-    on br.id = lo.booking_room_id
-    inner join ces_rooms r
+    on br.id = lo.booking_room_id inner join ces_rooms r
     on r.id = br.room_id
     inner join ces_room_layout l
     on l.id = r.layout_id
-    inner join bus_customer cus
+    left join bus_customer cus
     on lo.contact_id = cus.id
     where l.hotel_id = #{hotelId}
+      and lo.settle_type != 1
 	AND l.invalid = 0
 	AND r.invalid = 0
 	and ((lo.arrival_time >= #{start} and lo.arrival_time &lt;=#{end}) or
 	 (lo.due_out_time >= #{start} and lo.due_out_time &lt;=#{end}))
     group by l.id,DATE_FORMAT(lo.due_out_time,'%Y-%m-%d'),lo.id,r.id
     UNION ALL
+
     select l.id as layout_id,l.`name` as layoutName,DATE_FORMAT(lo.arrival_time,'%Y-%m-%d') as enter_date,DATE_FORMAT(lo.due_out_time,'%Y-%m-%d') as leave_date, (-20) as settle_type,
     r.id as room_id,(r.`name`) as room_name, lo.id as living_id, lo.booking_orders_no as order_no , 0 as is_living,lo.contact_id,
     cus.id as customer_id,cus.`name` as customer_name,lo.arrival_time,lo.due_out_time,
     lo.id as booking_order_id
-    from bus_booking_rooms br inner join bus_room_booking_orders lo
-    on br.booking_orders_id = lo.id
-    inner join ces_rooms r
-    on r.id = br.room_id
-    inner join ces_room_layout l
-    on l.id = r.layout_id
-    inner join bus_customer cus
-    on lo.contact_id = cus.id
+    from bus_booking_rooms br
+    inner join bus_room_booking_orders lo on br.booking_orders_id = lo.id
+--     left join bus_rooms_living_order brlo on brlo.Booking_room_id = br.id
+    inner join ces_rooms r on r.id = br.room_id
+    inner join ces_room_layout l on l.id = r.layout_id
+    inner join bus_customer cus on lo.contact_id = cus.id
     where l.hotel_id = #{hotelId}
+--       and brlo.settle_type != 1
     AND l.invalid = 0
 	AND r.invalid = 0
 	and ((lo.arrival_time >= #{start} and lo.arrival_time &lt;=#{end}) or

+ 1 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusCustomerService.java

@@ -11,4 +11,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IBusCustomerService extends IService<BusCustomer> {
 
+    BusCustomer getCustomerByOrderId(String orderId);
 }

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/IBusOrderFeeService.java

@@ -23,5 +23,5 @@ public interface IBusOrderFeeService extends IService<BusOrderFee> {
 
     Boolean collectionBatch(List<BusOrderFee> busOrderFeeList, String hotelId);
 
-    IPage<RoomOrderFeeVo> strikeBalancePage(Page<RoomOrderFeeVo> page, String roomName, Integer preferentialStatus, DateTime startTime, DateTime endTime);
+    IPage<RoomOrderFeeVo> strikeBalancePage(Page<RoomOrderFeeVo> page, String roomName, Integer preferentialStatus,String bookingOrderId, DateTime startTime, DateTime endTime);
 }

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusCustomerServiceImpl.java

@@ -16,4 +16,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class BusCustomerServiceImpl extends ServiceImpl<BusCustomerMapper, BusCustomer> implements IBusCustomerService {
 
+    @Override
+    public BusCustomer getCustomerByOrderId(String orderId) {
+        return baseMapper.getCustomerByOrderId(orderId);
+    }
 }

+ 48 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusOrderFeeServiceImpl.java

@@ -4,6 +4,7 @@ import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
 import cn.hutool.core.util.StrUtil;
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.core.toolkit.IdWorker;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
@@ -12,6 +13,7 @@ import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.TokenUtils;
 import org.jeecg.modules.business.entity.*;
+import org.jeecg.modules.business.enums.AgreementOrderStatusEnum;
 import org.jeecg.modules.business.enums.FeeSubjectType;
 import org.jeecg.modules.business.mapper.BusOrderFeeMapper;
 import org.jeecg.modules.business.service.*;
@@ -23,6 +25,7 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import javax.annotation.Resource;
 import java.math.BigDecimal;;
+import java.text.SimpleDateFormat;
 import java.util.*;
 import java.util.stream.Collectors;
 
@@ -35,8 +38,6 @@ import java.util.stream.Collectors;
 @Service
 public class BusOrderFeeServiceImpl extends ServiceImpl<BusOrderFeeMapper, BusOrderFee> implements IBusOrderFeeService {
 
-
-
     @Resource
     IBusRoomPayTypeService payTypeService;
     @Resource
@@ -47,6 +48,10 @@ public class BusOrderFeeServiceImpl extends ServiceImpl<BusOrderFeeMapper, BusOr
     IBusOrderFeeGoodsService orderFeeGoodsService;
     @Resource
     IBusMarketAgreementUnitService marketAgreementUnitService;
+    @Resource
+    IBusAgreementOrderFeeService agreementOrderFeeService;
+    @Resource
+    IBusRoomsLivingOrderService roomsLivingOrderService;
 
     @Override
     public Boolean strikeBalance(List<BusOrderFee> busOrderFeeList) {
@@ -117,6 +122,7 @@ public class BusOrderFeeServiceImpl extends ServiceImpl<BusOrderFeeMapper, BusOr
                 if (CollUtil.isEmpty(agreementUnitIds) || agreementUnitIds.size() != marketAgreementUnitList.size()){
                     throw new JeecgBootException("协议单位匹配异常");
                 }
+                List<BusAgreementOrderFee> agreementOrderFeeList = new ArrayList<>();
                 busOrderFees.forEach(fee ->{
                     marketAgreementUnitList.stream().filter(agreement -> agreement.getId().equals(fee.getAgreementUnitId())).findFirst().ifPresent(agreement ->{
                         // 计算已用额度与当前退款的差价
@@ -127,9 +133,12 @@ public class BusOrderFeeServiceImpl extends ServiceImpl<BusOrderFeeMapper, BusOr
                         } else {
                             agreement.setAmountUsed(differMoney);
                         }
+                        BusAgreementOrderFee agreementOrderFee = addAgreementOrderFee(fee, agreement.getId(), false);
+                        agreementOrderFeeList.add(agreementOrderFee);
                     });
                 });
                 marketAgreementUnitService.updateBatchById(marketAgreementUnitList);
+                agreementOrderFeeService.saveBatch(agreementOrderFeeList);
             }
         });
         busOrderFeeList.forEach(e -> {
@@ -199,10 +208,12 @@ public class BusOrderFeeServiceImpl extends ServiceImpl<BusOrderFeeMapper, BusOr
                     .filter(StrUtil::isNotEmpty).distinct().collect(Collectors.toList());
             if (CollUtil.isNotEmpty(agreementUnitIds)){
                 List<BusMarketAgreementUnit> marketAgreementUnitList = marketAgreementUnitService.listByIds(agreementUnitIds);
+                List<BusAgreementOrderFee> agreementOrderFeeList = new ArrayList<>();
                 if (agreementUnitIds.size() != marketAgreementUnitList.size()){
                     throw new JeecgBootException("单位挂账匹配异常");
                 }
                 agreementUnitPayFee.forEach(fee -> {
+                    fee.setId(String.valueOf(IdWorker.getId()));
                     // 找出账单匹配的合同单位
                     BusMarketAgreementUnit marketAgreementUnit = marketAgreementUnitList.stream().filter(agreement ->
                             agreement.getId().equals(fee.getAgreementUnitId())).findFirst().get();
@@ -219,17 +230,50 @@ public class BusOrderFeeServiceImpl extends ServiceImpl<BusOrderFeeMapper, BusOr
                             && (marketAgreementUnit.getAmountUsed().compareTo(marketAgreementUnit.getBookkeeping()) > 0)){
                         throw new JeecgBootException(marketAgreementUnit.getCustomerName() + "超过记账额度");
                     }
+                    agreementOrderFeeList.add(addAgreementOrderFee(fee, marketAgreementUnit.getId(), true));
                 });
                 marketAgreementUnitService.updateBatchById(marketAgreementUnitList);
+                agreementOrderFeeService.saveBatch(agreementOrderFeeList);
             }
 
         });
         return saveBatch(busOrderFeeList);
     }
 
+    public BusAgreementOrderFee addAgreementOrderFee(BusOrderFee fee, String agreeUnitId, Boolean isCollect){
+        LoginUser user = TokenUtils.getAuthUser();
+        BusAgreementOrderFee agreementOrderFee = new BusAgreementOrderFee();
+        agreementOrderFee.setAgreementUnitId(agreeUnitId);
+        agreementOrderFee.setCreateUserId(user.getId());
+        agreementOrderFee.setOrderFeeId(fee.getId());
+        //生成订单号
+        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+        agreementOrderFee.setOrderNo("R"+sdf.format(System.currentTimeMillis()));
+        agreementOrderFee.setStatus(AgreementOrderStatusEnum.NOT_SETTLEMENT.getKey());
+        // 商品消费
+        agreementOrderFee.setType(3);
+        if (isCollect){
+            agreementOrderFee.setPayPrice(fee.getMoney());
+            agreementOrderFee.setProjectName("房费收款");
+        } else {
+            agreementOrderFee.setProjectName("房费退款");
+            agreementOrderFee.setPayPrice(fee.getMoney().multiply(new BigDecimal(-1)));
+        }
+        agreementOrderFee.setCreatedTime(new DateTime());
+        return agreementOrderFee;
+    }
+
     @Override
-    public IPage<RoomOrderFeeVo> strikeBalancePage(Page<RoomOrderFeeVo> page, String roomName, Integer preferentialStatus, DateTime startTime, DateTime endTime) {
-        IPage<RoomOrderFeeVo> feePage = baseMapper.strikeBalancePage(page,roomName, preferentialStatus, startTime, endTime);
+    public IPage<RoomOrderFeeVo> strikeBalancePage(Page<RoomOrderFeeVo> page, String roomName, Integer preferentialStatus,String bookingOrderId, DateTime startTime, DateTime endTime) {
+        List<String> livingOrderIds = null;
+        if(StrUtil.isNotEmpty(bookingOrderId)){
+            LambdaQueryWrapper<BusRoomsLivingOrder> queryWrapper = new LambdaQueryWrapper<>();
+            queryWrapper.select(BusRoomsLivingOrder::getId).eq(BusRoomsLivingOrder::getBookingOrderId,bookingOrderId);
+            List<BusRoomsLivingOrder> livingOrders = roomsLivingOrderService.list(queryWrapper);
+            livingOrderIds = livingOrders.stream().map(BusRoomsLivingOrder::getId).collect(Collectors.toList());
+        }
+
+        IPage<RoomOrderFeeVo> feePage = baseMapper.strikeBalancePage(page,roomName, preferentialStatus,livingOrderIds, startTime, endTime);
         List<String> ids = feePage.getRecords().stream().filter(e -> FeeSubjectType.SHANG_PIN.getKey().equals(e.getSubjectType()))
                 .map(RoomOrderFeeVo::getReturnFeeId).collect(Collectors.toList());
         if (!ids.isEmpty()){

+ 72 - 10
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/service/impl/BusRoomBookingOrdersServiceImpl.java

@@ -35,6 +35,8 @@ import org.jeecg.modules.fw.service.IFwRoomCleanService;
 import org.jeecg.modules.fw.service.IFwRoomExamineService;
 import org.jeecg.modules.fw.service.IFwRoomLockService;
 import org.jeecg.modules.fw.service.IFwRoomRepairService;
+import org.jeecg.modules.fw.vo.FwRoomLockVo;
+import org.jeecg.modules.fw.vo.FwRoomRepairVo;
 import org.jeecg.modules.pos.service.IPosJialiaoConfigDetailService;
 import org.jeecg.modules.pos.service.IPosMealSectionService;
 import org.jeecg.modules.rooms.Enum.RoomStatusEnum;
@@ -167,10 +169,13 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         {
             item.getOrderInfo().setCreateUser(user.getId());
         }
-        SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
-        item.getOrderInfo().setBookingOrdersNo("YD"+sdf.format(System.currentTimeMillis()));
+        if (StrUtil.isEmpty(item.getOrderInfo().getBookingOrdersNo())){
+            SimpleDateFormat sdf = new SimpleDateFormat("yyyyMMddHHmmssSSS");
+            item.getOrderInfo().setBookingOrdersNo("YD"+sdf.format(System.currentTimeMillis()));
+        }
         // 检测是否时间安排上有冲突
         List<String> roomIds = item.getRoomIds().stream().map(s->s.getRoomId()).collect(Collectors.toList());
+
         if(item.getConfirm() == null || !item.getConfirm()){
             if(roomIds.size() > 0) {
                 List<BusBookingRooms> bookingRooms = baseMapper.conflictBookingTime(item.getOrderInfo().getArrivalTime(),item.getOrderInfo().getDueOutTime(),roomIds);
@@ -254,7 +259,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             if(hotelId == null || hotelId.isEmpty()) throw  new JeecgBootException("参数错误,酒店id");
             item.getOrderInfo().setHotelId(hotelId);
             // 保存order
-            save(item.getOrderInfo());
+            saveOrUpdate(item.getOrderInfo());
             String bookingId = item.getOrderInfo().getId();
             // todo 判定是否有安排冲突的房间
             List<BusBookingRooms> bookingRooms = new ArrayList<>();
@@ -312,7 +317,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             // 处理预定每天的房型价格 End
 
             //<editor-fold msg="团队标志">
-            if(isTeam) {
+            if(isTeam && isLiving) {
                 BusTeam team = new BusTeam();
                 List<BusTeam> existTeams = teamService.list(Wrappers.<BusTeam>query().eq("is_delete", 0).eq("hotel_id", hotelId)
                         .eq("rel_type",1)); // 1团队房,2联房
@@ -333,9 +338,10 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
 
                 teamService.save(team);
             } else {
-                if(isLiving && item.getRoomIds().size() > 1) {
-                    addBusTeams(hotelId, bookingId);
-                }
+//                if(isLiving && item.getRoomIds().size() > 1) {
+//                if(item.getRoomIds().size() > 1) {
+//                    addBusTeams(hotelId, bookingId);
+//                }
             }
             //</editor-fold>
             roomsService.getReserveRoom();
@@ -346,7 +352,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
                 throw new JeecgBootException("请填写团队名称");
             if(item.getBatchRooms() == null || item.getBatchRooms().size() == 0)
                 throw  new JeecgBootException("请添加批次信息");
-            save(item.getOrderInfo());
+            saveOrUpdate(item.getOrderInfo());
             item.getBatchRooms().forEach(c->{
                 if(c.getArrivalTime() == null || c.getDueOutTime() == null)
                     throw new JeecgBootException("预抵时间和预离时间不能为空");
@@ -1100,11 +1106,22 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
     @Override
     @Transactional(rollbackFor = Exception.class)
     public String customerLiving(BookingOrderSaveDto livingData, Boolean isTeam, String hotelId) {
-        String bookingOrderNo = bookingOrderSave(livingData,isTeam,true,hotelId);
+        List<String> roomIds = livingData.getRoomIds().stream().map(BookingLayoutRoomsDto::getRoomId).collect(Collectors.toList());
+
+        // 是预约单先将预约单与房间关联删掉。因为原来这个接口是自己入住的接口,后来预定也要调这个接口,只能先将预定时添加的BusRoomBookingOrders关联表删掉,重新进行关联
+        if(StrUtil.isNotEmpty(livingData.getOrderInfo().getId())){
+            BusRoomBookingOrders bookingOrders = getById(livingData.getOrderInfo().getId());
+            bookingRoomsService.remove(Wrappers.<BusBookingRooms>lambdaQuery()
+                    .eq(BusBookingRooms::getBookingOrdersId,bookingOrders.getId()).in(BusBookingRooms::getRoomId,roomIds));
+        }
+        //不是预约单就先添加预约单
+        bookingOrderSave(livingData,isTeam,true,hotelId);
+        String bookingOrderNo = livingData.getOrderInfo().getBookingOrdersNo();
         if(bookingOrderNo != null && !bookingOrderNo.isEmpty()){
             BookingOrderEditVo bookingOrderVo =  getBookingInfoById(null,bookingOrderNo);
             // 散客取roomIds
             if(bookingOrderVo.getOrderInfo().getBookingOrdersType().equals(BookingOrdersType.NORMAL.getKey())) {
+                //
                 Map<String,String> roomOrderMap = bookingRoomToLiving(livingData, bookingOrderVo.getRoomIds(), bookingOrderVo,hotelId);
                 livingData.getLivingRoomDayPrices().forEach(g->{
                     String livingOrderId = roomOrderMap.get(g.getRoomId());
@@ -1755,10 +1772,25 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
         ForwardFangTaiVo result = new ForwardFangTaiVo();
         List<ForwardFangTaiDateVo> dateList = new ArrayList<>();
         List<LayoutRoomCountVo> roomCountVos = baseMapper.getLayoutRoomCount(hotelId);
-
+        List<FwRoomLockVo> roomLockList = fwRoomLockService.detailList();
+        List<FwRoomRepairVo> roomRepairList = fwRoomRepairService.detailList();
+//        fwRoomRepairService.list()
         Boolean finalIsContainLeave = isContainLeave;
+
         roomCountVos.forEach(t-> {
+            List<FwRoomLockVo> roomLockVos = roomLockList.stream().filter(lock -> StrUtil.equals(t.getLayoutId(), lock.getLayoutId())).collect(Collectors.toList());
             dayStrs.forEach(s-> {
+
+                Date date = null;
+                try {
+                    date = DateUtils.parseDate(s, "yyyy-MM-dd");
+                } catch (ParseException e) {
+                    throw new RuntimeException(e);
+                }
+                Calendar calendar = Calendar.getInstance();
+                calendar.setTime(date);
+                calendar.add(Calendar.DAY_OF_YEAR,1);
+                Date nextDate = calendar.getTime();
                 ForwardFangTaiDateVo tableCell = new ForwardFangTaiDateVo();
                 tableCell.setDate(s);
                 tableCell.setLayoutId(t.getLayoutId());
@@ -1766,6 +1798,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
                 List<ForwardFangTaiQueryVo> livingOrders = new ArrayList<>();
                 final int[] dayLeave = {0};
                 final int[] dayLiving = {0};
+                // 在住和预约
                 vos.forEach(c->{
                     try {
                         long enter = DateUtils.parseDate(c.getEnterDate(),"yyyy-MM-dd").getTime();
@@ -1789,6 +1822,34 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
                         e.printStackTrace();
                     }
                 });
+                // 维修
+                Date finalDate = date;
+                roomRepairList.forEach(repair -> {
+                    if (StrUtil.equals(t.getLayoutId(), repair.getLayoutId()) && repair.getStartDate().compareTo(finalDate) <= 0
+                            && repair.getEndDate().compareTo(nextDate) >= 0){
+                        ForwardFangTaiQueryVo repairForwardFangTai = new ForwardFangTaiQueryVo();
+                        repairForwardFangTai.setRoomId(repair.getRoomId());
+                        repairForwardFangTai.setRoomName(repair.getRoomName());
+                        repairForwardFangTai.setArrivalTime(repair.getStartDate());
+                        repairForwardFangTai.setDueOutTime(repair.getEndDate());
+                        repairForwardFangTai.setLayoutId(repair.getLayoutId());
+                        repairForwardFangTai.setLayoutName(repair.getLayoutName());
+                        repairForwardFangTai.setIsRepair(repair.getIsRepair());
+                        dayLiving[0] += 1;
+                        livingOrders.add(repairForwardFangTai);
+                    }
+                });
+                // 锁房
+                roomLockVos.forEach(lock -> {
+                    ForwardFangTaiQueryVo lockForwardFangTai = new ForwardFangTaiQueryVo();
+                    lockForwardFangTai.setRoomId(lock.getRoomId());
+                    lockForwardFangTai.setRoomName(lock.getRoomName());
+                    lockForwardFangTai.setLayoutId(lock.getLayoutId());
+                    lockForwardFangTai.setLayoutName(lock.getLayoutName());
+                    lockForwardFangTai.setIsLock(lock.getIsLock());
+                    dayLiving[0] += 1;
+                    livingOrders.add(lockForwardFangTai);
+                });
                 tableCell.setLeaveCount(dayLeave[0]);// 当天该房型预离数量
                 tableCell.setLeaveOrders(leaveOrders);// 当天预离订单
                 tableCell.setLivingCount(dayLiving[0]);// 当天在住数量
@@ -2479,6 +2540,7 @@ public class BusRoomBookingOrdersServiceImpl extends ServiceImpl<BusRoomBookingO
             BookingLayoutRoomsDto bkRoomItem = livingData.getRoomIds().stream().filter(s->s.getRoomId().equals(bkRoom.getRoomId())).findFirst().get();
             List<BusLivingCustomer> customers = bkRoomItem.getLivingCustomers();
             if(customers == null || customers.size() == 0) throw new JeecgBootException("请添加客户信息");
+            // 保存入住单
             String livingOrderId = bookingToLive(bkRoom.getId(), customers,hotelId,null, bkRoomItem.getRoomOrderInfo());
             // 费用关联到主房
             if(livingData.getOrderFees()!=null && livingData.getOrderFees().size() > 0 ) {

+ 6 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ForwardFangTaiDateVo.java

@@ -1,9 +1,9 @@
 package org.jeecg.modules.business.vo;
 
 import lombok.Data;
-import org.jeecg.modules.business.entity.BusRoomsLivingOrder;
+import org.jeecg.modules.fw.vo.FwRoomLockVo;
+import org.jeecg.modules.fw.vo.FwRoomRepairVo;
 
-import java.util.Date;
 import java.util.List;
 
 @Data
@@ -12,6 +12,10 @@ public class ForwardFangTaiDateVo {
     private String date;
     private Integer leaveCount;
     private Integer livingCount;
+    private Integer lockCount;
+    private Integer repairCount;
     private List<ForwardFangTaiQueryVo> leaveOrders;
     private List<ForwardFangTaiQueryVo> livingOrders;
+    private List<FwRoomLockVo> fwRoomLocks;
+    private List<FwRoomRepairVo> fwRoomRepairs;
 }

+ 3 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/business/vo/ForwardFangTaiQueryVo.java

@@ -27,4 +27,7 @@ public class ForwardFangTaiQueryVo {
     @JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd HH:mm")
     @DateTimeFormat(pattern="yyyy-MM-dd HH:mm")
     private Date dueOutTime;
+
+    private Boolean isRepair;
+    private Boolean isLock;
 }

+ 6 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/finance/mapper/SummaryMapper.java

@@ -139,7 +139,8 @@ public interface SummaryMapper extends BaseMapper<PosOrderGoodsPayment> {
             "where of.fee_type=2 and of.preferential_status=2" +
             "<if test='hotelId != null and hotelId !=\"\"'> and pty.hotel_id = #{hotelId} </if>" +
             "<if test='startTime != null'> and of.create_time &gt;= '${startTime}' </if>" +
-            "<if test='endTime != null'> and of.create_time &lt;= '${endTime}' </if>" +
+            "<if test='endTime != null'> and of.create_time &lt;= '${endTime}' </if> " +
+            "order by create_time desc" +
             "</script>")
     public List<HashMap<String, Object>> financePage(Page<HashMap<String, Object>> page, @Param("hotelId") String hotelId, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
 
@@ -160,7 +161,8 @@ public interface SummaryMapper extends BaseMapper<PosOrderGoodsPayment> {
             "where 1=1" +
             "<if test='hotelId != null and hotelId !=\"\"'> and ogp.hotel_id = #{hotelId} </if>" +
             "<if test='startTime != null'> and ogp.create_time &gt;= #{startTime} </if>" +
-            "<if test='endTime != null'> and ogp.create_time &lt;= #{endTime} </if>" +
+            "<if test='endTime != null'> and ogp.create_time &lt;= #{endTime} </if> " +
+            "order by ogp.create_time desc " +
             "</script>")
     public List<HashMap<String, Object>> postFinancePage(Page<HashMap<String, Object>> page, @Param("hotelId") String hotelId, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
 
@@ -184,7 +186,8 @@ public interface SummaryMapper extends BaseMapper<PosOrderGoodsPayment> {
             "where of.fee_type=2 and of.preferential_status=2" +
             "<if test='hotelId != null and hotelId !=\"\"'> and pty.hotel_id = #{hotelId} </if>" +
             "<if test='startTime != null'> and of.create_time &gt;= #{startTime} </if>" +
-            "<if test='endTime != null'> and of.create_time &lt;= #{endTime} </if>" +
+            "<if test='endTime != null'> and of.create_time &lt;= #{endTime} </if> " +
+            "order by create_time desc" +
             "</script>")
     public List<HashMap<String, Object>> roomFinancePage(Page<HashMap<String, Object>> page, @Param("hotelId") String hotelId, @Param("startTime") DateTime startTime, @Param("endTime") DateTime endTime);
 

+ 6 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/FwRoomLockMapper.java

@@ -3,8 +3,10 @@ package org.jeecg.modules.fw.mapper;
 import java.util.List;
 
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.jeecg.modules.fw.entity.FwRoomLock;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.fw.vo.FwRoomLockVo;
 
 /**
  * @Description: fw_room_lock
@@ -14,4 +16,8 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface FwRoomLockMapper extends BaseMapper<FwRoomLock> {
 
+    @Select("select frl.*,cr.layout_id,crl.name as layout_name,cr.name as room_name from fw_room_lock frl  " +
+            "inner join ces_rooms cr on cr.id = frl.room_id "+
+            "inner join ces_room_layout crl on crl.id = cr.layout_id ")
+    List<FwRoomLockVo> detailList();
 }

+ 9 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/mapper/FwRoomRepairMapper.java

@@ -1,10 +1,14 @@
 package org.jeecg.modules.fw.mapper;
 
+import java.util.Date;
 import java.util.List;
 
+import cn.hutool.core.date.DateTime;
 import org.apache.ibatis.annotations.Param;
+import org.apache.ibatis.annotations.Select;
 import org.jeecg.modules.fw.entity.FwRoomRepair;
 import com.baomidou.mybatisplus.core.mapper.BaseMapper;
+import org.jeecg.modules.fw.vo.FwRoomRepairVo;
 
 /**
  * @Description: fw_room_repair
@@ -14,4 +18,9 @@ import com.baomidou.mybatisplus.core.mapper.BaseMapper;
  */
 public interface FwRoomRepairMapper extends BaseMapper<FwRoomRepair> {
 
+    @Select("select frr.*,cr.layout_id,crl.name as layout_name,cr.name as room_name from fw_room_repair frr " +
+            "inner join ces_rooms cr on cr.id = frr.room_id " +
+            "inner join ces_room_layout crl on crl.id = cr.layout_id " +
+            " where frr.end_date > #{date};")
+    List<FwRoomRepairVo> detailList(Date date);
 }

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/IFwRoomLockService.java

@@ -2,6 +2,9 @@ package org.jeecg.modules.fw.service;
 
 import org.jeecg.modules.fw.entity.FwRoomLock;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.fw.vo.FwRoomLockVo;
+
+import java.util.List;
 
 /**
  * @Description: fw_room_lock
@@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IFwRoomLockService extends IService<FwRoomLock> {
 
+    List<FwRoomLockVo> detailList();
 }

+ 4 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/IFwRoomRepairService.java

@@ -2,6 +2,9 @@ package org.jeecg.modules.fw.service;
 
 import org.jeecg.modules.fw.entity.FwRoomRepair;
 import com.baomidou.mybatisplus.extension.service.IService;
+import org.jeecg.modules.fw.vo.FwRoomRepairVo;
+
+import java.util.List;
 
 /**
  * @Description: fw_room_repair
@@ -11,4 +14,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
  */
 public interface IFwRoomRepairService extends IService<FwRoomRepair> {
 
+    List<FwRoomRepairVo> detailList();
 }

+ 7 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/impl/FwRoomLockServiceImpl.java

@@ -3,10 +3,13 @@ package org.jeecg.modules.fw.service.impl;
 import org.jeecg.modules.fw.entity.FwRoomLock;
 import org.jeecg.modules.fw.mapper.FwRoomLockMapper;
 import org.jeecg.modules.fw.service.IFwRoomLockService;
+import org.jeecg.modules.fw.vo.FwRoomLockVo;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.util.List;
+
 /**
  * @Description: fw_room_lock
  * @Author: jeecg-boot
@@ -16,4 +19,8 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class FwRoomLockServiceImpl extends ServiceImpl<FwRoomLockMapper, FwRoomLock> implements IFwRoomLockService {
 
+    @Override
+    public List<FwRoomLockVo> detailList() {
+        return baseMapper.detailList();
+    }
 }

+ 11 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/service/impl/FwRoomRepairServiceImpl.java

@@ -3,10 +3,15 @@ package org.jeecg.modules.fw.service.impl;
 import org.jeecg.modules.fw.entity.FwRoomRepair;
 import org.jeecg.modules.fw.mapper.FwRoomRepairMapper;
 import org.jeecg.modules.fw.service.IFwRoomRepairService;
+import org.jeecg.modules.fw.vo.FwRoomRepairVo;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.List;
+
 /**
  * @Description: fw_room_repair
  * @Author: jeecg-boot
@@ -16,4 +21,10 @@ import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 @Service
 public class FwRoomRepairServiceImpl extends ServiceImpl<FwRoomRepairMapper, FwRoomRepair> implements IFwRoomRepairService {
 
+    @Override
+    public List<FwRoomRepairVo> detailList() {
+//        SimpleDateFormat format = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
+//        String nowDate = format.format(new Date());
+        return baseMapper.detailList(new Date());
+    }
 }

+ 17 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/vo/FwRoomLockVo.java

@@ -0,0 +1,17 @@
+package org.jeecg.modules.fw.vo;
+
+import lombok.Data;
+import org.jeecg.modules.fw.entity.FwRoomLock;
+
+@Data
+public class FwRoomLockVo extends FwRoomLock {
+
+    private String layoutId;
+    private String layoutName;
+    private String roomName;
+    private Boolean isLock;
+
+    public Boolean getIsLock(){
+        return true;
+    }
+}

+ 20 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/fw/vo/FwRoomRepairVo.java

@@ -0,0 +1,20 @@
+package org.jeecg.modules.fw.vo;
+
+import lombok.Data;
+import lombok.Getter;
+import lombok.Setter;
+import org.jeecg.modules.fw.entity.FwRoomRepair;
+
+@Setter
+@Getter
+public class FwRoomRepairVo extends FwRoomRepair {
+    private String layoutId;
+    private String layoutName;
+    private String roomName;
+    private Boolean isRepair;
+
+    public Boolean getIsRepair(){
+        return true;
+    }
+
+}

+ 5 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/controller/KcDepositoryInGoodsController.java

@@ -25,6 +25,8 @@ import lombok.extern.slf4j.Slf4j;
 
 import org.jeecg.modules.kc.service.IKcDepositoryService;
 import org.jeecg.modules.kc.service.IKcGoodsService;
+import org.jeecg.modules.rooms.Vo.CesGoodsVo;
+import org.jeecg.modules.rooms.entity.CesGoods;
 import org.jeecg.modules.rooms.entity.CesGoodsUnit;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -56,8 +58,7 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 public class KcDepositoryInGoodsController extends JeecgController<KcDepositoryInGoods, IKcDepositoryInGoodsService> {
 	@Autowired
 	private IKcDepositoryInGoodsService kcDepositoryInGoodsService;
-	@Autowired
-	private IKcGoodsService kcGoodsService;
+
 	@Autowired
 	private IKcDepositoryService kcDepositoryService;
 	/**
@@ -77,13 +78,14 @@ public class KcDepositoryInGoodsController extends JeecgController<KcDepositoryI
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								   HttpServletRequest req) {
 		Page<KcDepositoryInGoods> page = new Page<KcDepositoryInGoods>(pageNo, pageSize);
-		IPage<KcDepositoryInGoods> pageList = kcDepositoryInGoodsService.depositoryInGoodsList(page, kcDepositoryInGoods.getHotelId(), kcDepositoryInGoods.getGoodsName(), kcDepositoryInGoods.getDepositoryId());
+		IPage<KcDepositoryInGoods> pageList = service.depositoryInGoodsList(page, kcDepositoryInGoods);
 		pageList.getRecords().forEach(item -> {
 			KcDepository kcDepository = kcDepositoryService.getById(item.getDepositoryId());
 			if (kcDepository != null) {
 				item.setDepositoryName(kcDepository.getName());
 			}
 		});
+
 		return Result.OK(pageList);
 	}
 

+ 111 - 61
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/controller/KcStockController.java

@@ -8,10 +8,12 @@ import java.net.URLDecoder;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
 
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.date.DateTime;
 import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import org.apache.commons.lang3.ObjectUtils;
 import org.jeecg.common.api.vo.Result;
+import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.query.QueryGenerator;
 import org.jeecg.common.system.vo.DictModel;
 import org.jeecg.common.system.vo.LoginUser;
@@ -28,7 +30,9 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
 import org.jeecg.modules.pos.entity.PosType;
+import org.jeecg.modules.rooms.entity.CesGoods;
 import org.jeecg.modules.rooms.entity.CesGoodsUnit;
+import org.jeecg.modules.rooms.service.CesGoodsServiceImpl;
 import org.jeecg.modules.rooms.service.CesGoodsUnitServiceImpl;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -37,6 +41,8 @@ import org.jeecgframework.poi.excel.entity.ImportParams;
 import org.jeecgframework.poi.excel.view.JeecgEntityExcelView;
 import org.jeecg.common.system.base.controller.JeecgController;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.test.annotation.Rollback;
+import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.bind.annotation.*;
 import org.springframework.web.multipart.MultipartFile;
 import org.springframework.web.multipart.MultipartHttpServletRequest;
@@ -60,20 +66,23 @@ import org.apache.shiro.authz.annotation.RequiresPermissions;
 public class KcStockController extends JeecgController<KcStock, IKcStockService> {
 	@Autowired
 	private IKcStockService kcStockService;
-@Autowired
-private IKcSupplierInGoodsService kcSupplierInGoodsService;
-@Autowired
-private IKcGoodsService kcGoodsService;
-@Autowired
-private CesGoodsUnitServiceImpl cesGoodsUnitService;
-@Autowired
-private IKcDepositoryService kcDepositoryService;
-@Autowired
-private IKcSupplierService kcSupplierService;
-@Autowired
-private IKcStockDetailService kcStockDetailService;
-@Autowired
-private  IKcDepositoryInGoodsService kcDepositoryInGoodsService;
+	@Autowired
+	private IKcSupplierInGoodsService kcSupplierInGoodsService;
+	@Autowired
+	private IKcGoodsService kcGoodsService;
+	@Autowired
+	private CesGoodsUnitServiceImpl cesGoodsUnitService;
+	@Autowired
+	private IKcDepositoryService kcDepositoryService;
+	@Autowired
+	private IKcSupplierService kcSupplierService;
+	@Autowired
+	private IKcStockDetailService kcStockDetailService;
+	@Autowired
+	private  IKcDepositoryInGoodsService kcDepositoryInGoodsService;
+
+	 @Autowired
+	 private CesGoodsServiceImpl cesGoodsService;
 	/**
 	 * 分页列表查询
 	 *
@@ -183,24 +192,27 @@ private  IKcDepositoryInGoodsService kcDepositoryInGoodsService;
 			if (kcStock.getType().equals(2)) {
 				KcSupplierInGoods kcSupplierInGoods = kcSupplierInGoodsService.getById(kcStockDetail.getSupplierInGoodsId());
 				if (kcSupplierInGoods != null) {
-					KcGoods kcGoods = kcGoodsService.getById(kcSupplierInGoods.getGoodsId());
-					if (kcGoods != null) {
-						kcStockDetail.setKcGoods(kcGoods);
-						CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(kcGoods.getGoodUnit());
+					CesGoods cesGoods = cesGoodsService.getById(kcSupplierInGoods.getGoodsId());
+					if (cesGoods != null) {
+						kcStockDetail.setCesGoods(cesGoods);
+						kcStockDetail.setGoodId(cesGoods.getId());
+						CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(cesGoods.getGoodUnit());
 						if (cesGoodsUnit != null) {
-							stockInfo += kcGoods.getName() + kcStockDetail.getNum() + cesGoodsUnit.getName() + ",";
+							stockInfo += cesGoods.getName() + kcStockDetail.getNum() + cesGoodsUnit.getName() + ",";
 						}
 					}
 				}
 			} else if (kcStock.getType().equals(1)||kcStock.getType().equals(3)) {
+
 				KcDepositoryInGoods kcDepositoryInGoods = kcDepositoryInGoodsService.getById(kcStockDetail.getSupplierInGoodsId());
 				if (kcDepositoryInGoods != null) {
-					KcGoods kcGoods = kcGoodsService.getById(kcDepositoryInGoods.getGoodsId());
-					if (kcGoods != null) {
-						kcStockDetail.setKcGoods(kcGoods);
-						CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(kcGoods.getGoodUnit());
+					CesGoods cesGoods = cesGoodsService.getById(kcDepositoryInGoods.getGoodsId());
+					if (cesGoods != null) {
+						kcStockDetail.setCesGoods(cesGoods);
+						kcStockDetail.setGoodId(cesGoods.getId());
+						CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(cesGoods.getGoodUnit());
 						if (cesGoodsUnit != null) {
-							stockInfo += kcGoods.getName() + kcStockDetail.getNum() + cesGoodsUnit.getName() + ",";
+							stockInfo += cesGoods.getName() + kcStockDetail.getNum() + cesGoodsUnit.getName() + ",";
 						}
 					}
 				}
@@ -208,7 +220,6 @@ private  IKcDepositoryInGoodsService kcDepositoryInGoodsService;
 		}
 		kcStock.setStockInfo(stockInfo);
 		kcStockService.save(kcStock);
-
 		for (KcStockDetail kcStockDetail : kcStock.getStockDetailList()) {
 			kcStockDetail.setHotelId(kcStock.getHotelId());
 			kcStockDetail.setTenantId(TokenUtils.currentTenantId());
@@ -227,6 +238,7 @@ private  IKcDepositoryInGoodsService kcDepositoryInGoodsService;
 	  */
 	 @ApiOperation(value="审核", notes="审核")
 	 @PostMapping(value = "/audit")
+	 @Transactional(rollbackFor = Exception.class)
 	 public Result<String> audit(@RequestBody KcStock kcStock) {
 		 kcStockService.updateById(kcStock);
 		 if (kcStock.getStatus().equals(1)) {
@@ -235,48 +247,86 @@ private  IKcDepositoryInGoodsService kcDepositoryInGoodsService;
 				 lambdaQueryWrapper.eq(KcStockDetail::getStockId, kcStock.getCode());
 				 List<KcStockDetail> stockDetailList = kcStockDetailService.list(lambdaQueryWrapper);
 				 if (ObjectUtils.isNotEmpty(stockDetailList)) {
+					 List<KcDepositoryInGoods> depositoryInGoodsList = new ArrayList<>();
+					 List<CesGoods> goodsList = new ArrayList<>();
 					 for (KcStockDetail kcStockDetail : stockDetailList) {
+						 // 拿到当前仓库商品关联数据
 						 KcSupplierInGoods kcSupplierInGoods = kcSupplierInGoodsService.getById(kcStockDetail.getSupplierInGoodsId());
 						 if (kcSupplierInGoods != null) {
-							 KcGoods kcGoods = kcGoodsService.getById(kcSupplierInGoods.getGoodsId());
-							 if (kcGoods != null) {
-								 kcStockDetail.setKcGoods(kcGoods);
+							 CesGoods cesGoods = cesGoodsService.getById(kcSupplierInGoods.getGoodsId());
+							 if (cesGoods != null) {
+								 kcStockDetail.setCesGoods(cesGoods);
 							 }
 						 }
-						 if (ObjectUtils.isNotEmpty(kcStockDetail.getKcGoods())) {
-							 LambdaQueryWrapper<KcDepositoryInGoods> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
-							 lambdaQueryWrapper2.eq(KcDepositoryInGoods::getDepositoryId, kcStock.getDepositoryId());
-							 lambdaQueryWrapper2.eq(KcDepositoryInGoods::getGoodsId, kcStockDetail.getKcGoods().getId());
-							 KcDepositoryInGoods kcDepositoryInGoods = kcDepositoryInGoodsService.getOne(lambdaQueryWrapper2);
-							 if (kcDepositoryInGoods != null) {
-								 kcDepositoryInGoods.setNum(kcDepositoryInGoods.getNum() + kcStockDetail.getNum());
-							 } else {
-								 kcDepositoryInGoods = new KcDepositoryInGoods();
-								 kcDepositoryInGoods.setTenantId(kcStock.getTenantId());
-								 kcDepositoryInGoods.setHotelId(kcStock.getHotelId());
-								 kcDepositoryInGoods.setDepositoryId(kcStock.getDepositoryId());
-								 kcDepositoryInGoods.setGoodsId(kcStockDetail.getKcGoods().getId());
-								 kcDepositoryInGoods.setNum(kcStockDetail.getNum());
-							 }
-							 kcDepositoryInGoodsService.saveOrUpdate(kcDepositoryInGoods);
+						 if (ObjectUtils.isNotEmpty(kcStockDetail.getCesGoods())) {
+							 // 有商品入库后修改商品数量,成本价设置为最后一次的进价
+							 CesGoods cesGood = kcStockDetail.getCesGoods();
+							 cesGood.setBid(kcStockDetail.getPrice());
+							 cesGood.setInventory(cesGood.getInventory() + kcStockDetail.getNum());
+							 goodsList.add(cesGood);
+//							 LambdaQueryWrapper<KcDepositoryInGoods> lambdaQueryWrapper2 = new LambdaQueryWrapper<>();
+//							 lambdaQueryWrapper2.eq(KcDepositoryInGoods::getDepositoryId, kcStock.getDepositoryId());
+//							 lambdaQueryWrapper2.eq(KcDepositoryInGoods::getGoodsId, kcStockDetail.getCesGoods().getId());
+//							 KcDepositoryInGoods kcDepositoryInGoods = kcDepositoryInGoodsService.getOne(lambdaQueryWrapper2);
+
+
+//							 if (kcDepositoryInGoods != null) {
+//								 kcDepositoryInGoods.setNum(kcDepositoryInGoods.getNum() + kcStockDetail.getNum());
+//							 } else {
+							 KcDepositoryInGoods kcDepositoryInGoods = new KcDepositoryInGoods();
+							 kcDepositoryInGoods.setTenantId(kcStock.getTenantId());
+							 kcDepositoryInGoods.setHotelId(kcStock.getHotelId());
+							 kcDepositoryInGoods.setDepositoryId(kcStock.getDepositoryId());
+							 kcDepositoryInGoods.setGoodsId(cesGood.getId());
+							 kcDepositoryInGoods.setNum(kcStockDetail.getNum());
+							 kcDepositoryInGoods.setStockDetailId(kcStockDetail.getId());
+//							 }
+							 depositoryInGoodsList.add(kcDepositoryInGoods);
 						 }
 					 }
+					 System.out.println(depositoryInGoodsList.toString());
+					 kcDepositoryInGoodsService.saveBatch(depositoryInGoodsList);
+					 cesGoodsService.updateBatchById(goodsList);
 				 }
 			 } else if (kcStock.getType().equals(1)) {
 				 LambdaQueryWrapper<KcStockDetail> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 				 lambdaQueryWrapper.eq(KcStockDetail::getStockId, kcStock.getCode());
+				 // 循环的只会有一个仓库下的不同商品
 				 List<KcStockDetail> stockDetailList = kcStockDetailService.list(lambdaQueryWrapper);
+				 List<String> goodIds = stockDetailList.stream().map(KcStockDetail::getGoodId).collect(Collectors.toList());
+				 List<CesGoods> goodsList = cesGoodsService.listByIds(goodIds);
+				 List<KcDepositoryInGoods> depositoryInGoodsList = new ArrayList<>();
 				 if (ObjectUtils.isNotEmpty(stockDetailList)) {
 					 for (KcStockDetail kcStockDetail : stockDetailList) {
-						 KcDepositoryInGoods depositoryInGoods = kcDepositoryInGoodsService.getById(kcStockDetail.getSupplierInGoodsId());
-						 if (depositoryInGoods != null) {
-							 if (depositoryInGoods != null) {
-								 Integer num = depositoryInGoods.getNum() - kcStockDetail.getNum();
-								 if (num < 0) num = 0;
-								 depositoryInGoods.setNum(num);
-								 kcDepositoryInGoodsService.updateById(depositoryInGoods);
+					 QueryWrapper<KcDepositoryInGoods> queryWrapper = new QueryWrapper<>();
+					 queryWrapper.select("SUM(num) as num");
+					 queryWrapper.eq("depository_id", kcStock.getDepositoryId());
+					 queryWrapper.eq("goods_id", kcStockDetail.getGoodId());
+					 KcDepositoryInGoods kcDepositoryInGoodList = kcDepositoryInGoodsService.getOne(queryWrapper);
+					 if (kcDepositoryInGoodList.getNum() - kcStockDetail.getNum() < 0){
+						 throw new JeecgBootException("库存不足");
+					 }
+						 Optional<CesGoods> goodsOptional = goodsList.stream().filter(e -> e.getId().equals(kcStockDetail.getGoodId())).findFirst();
+						 if (goodsOptional.isPresent()){
+							 // 商品中库存是否足够
+							 int differ = goodsOptional.get().getInventory() - kcStockDetail.getNum();
+							 if (differ < 0){
+								 throw new JeecgBootException("库存不足");
 							 }
+							 goodsOptional.get().setInventory(differ);
+							 KcDepositoryInGoods kcDepositoryInGoods = new KcDepositoryInGoods();
+							 kcDepositoryInGoods.setTenantId(kcStock.getTenantId());
+							 kcDepositoryInGoods.setHotelId(kcStock.getHotelId());
+							 kcDepositoryInGoods.setDepositoryId(kcStock.getDepositoryId());
+							 kcDepositoryInGoods.setGoodsId(goodsOptional.get().getId());
+							 kcDepositoryInGoods.setNum(-kcStockDetail.getNum());
+							 kcDepositoryInGoods.setStockDetailId(kcStockDetail.getId());
+							 depositoryInGoodsList.add(kcDepositoryInGoods);
+						 }else {
+							 throw new JeecgBootException("未找到商品");
 						 }
+						 cesGoodsService.updateBatchById(goodsList);
+						 kcDepositoryInGoodsService.saveBatch(depositoryInGoodsList);
 					 }
 				 }
 			 } else if (kcStock.getType().equals(3)) {
@@ -320,24 +370,24 @@ private  IKcDepositoryInGoodsService kcDepositoryInGoodsService;
 			if (kcStock.getType().equals(2)) {
 				KcSupplierInGoods kcSupplierInGoods = kcSupplierInGoodsService.getById(kcStockDetail.getSupplierInGoodsId());
 				if (kcSupplierInGoods != null) {
-					KcGoods kcGoods = kcGoodsService.getById(kcSupplierInGoods.getGoodsId());
-					if (kcGoods != null) {
-						kcStockDetail.setKcGoods(kcGoods);
-						CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(kcGoods.getGoodUnit());
+					CesGoods cesGoods = cesGoodsService.getById(kcSupplierInGoods.getGoodsId());
+					if (cesGoods != null) {
+						kcStockDetail.setCesGoods(cesGoods);
+						CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(cesGoods.getGoodUnit());
 						if (cesGoodsUnit != null) {
-							stockInfo += kcGoods.getName() + kcStockDetail.getNum() + cesGoodsUnit.getName() + ",";
+							stockInfo += cesGoods.getName() + kcStockDetail.getNum() + cesGoodsUnit.getName() + ",";
 						}
 					}
 				}
 			} else if (kcStock.getType().equals(1)) {
 				KcDepositoryInGoods kcDepositoryInGoods = kcDepositoryInGoodsService.getById(kcStockDetail.getSupplierInGoodsId());
 				if (kcDepositoryInGoods != null) {
-					KcGoods kcGoods = kcGoodsService.getById(kcDepositoryInGoods.getGoodsId());
-					if (kcGoods != null) {
-						kcStockDetail.setKcGoods(kcGoods);
-						CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(kcGoods.getGoodUnit());
+					CesGoods cesGoods = cesGoodsService.getById(kcDepositoryInGoods.getGoodsId());
+					if (cesGoods != null) {
+						kcStockDetail.setCesGoods(cesGoods);
+						CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(cesGoods.getGoodUnit());
 						if (cesGoodsUnit != null) {
-							stockInfo += kcGoods.getName() + kcStockDetail.getNum() + cesGoodsUnit.getName() + ",";
+							stockInfo += cesGoods.getName() + kcStockDetail.getNum() + cesGoodsUnit.getName() + ",";
 						}
 					}
 				}

+ 14 - 10
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/controller/KcStockDetailController.java

@@ -24,7 +24,9 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
+import org.jeecg.modules.rooms.entity.CesGoods;
 import org.jeecg.modules.rooms.entity.CesGoodsUnit;
+import org.jeecg.modules.rooms.service.CesGoodsServiceImpl;
 import org.jeecg.modules.rooms.service.CesGoodsUnitServiceImpl;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
@@ -66,6 +68,8 @@ public class KcStockDetailController extends JeecgController<KcStockDetail, IKcS
 	private IKcStockService kcStockService;
 	@Autowired
 	private  IKcDepositoryInGoodsService kcDepositoryInGoodsService;
+	 @Autowired
+	 private CesGoodsServiceImpl cesGoodsService;
 	/**
 	 * 分页列表查询
 	 *
@@ -97,11 +101,11 @@ public class KcStockDetailController extends JeecgController<KcStockDetail, IKcS
 					KcDepositoryInGoods kcDepositoryInGoods = kcDepositoryInGoodsService.getById(record.getSupplierInGoodsId());
 					if (kcDepositoryInGoods != null) {
 						record.setStockNum(kcDepositoryInGoods.getNum());
-						KcGoods kcGoods = kcGoodsService.getById(kcDepositoryInGoods.getGoodsId());
-						if (kcGoods != null) {
-							record.setSpec(kcGoods.getSpec());
-							record.setName(kcGoods.getName());
-							CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(kcGoods.getGoodUnit());
+						CesGoods cesGoods = cesGoodsService.getById(kcDepositoryInGoods.getGoodsId());
+						if (cesGoods != null) {
+							record.setSpec(cesGoods.getSpec());
+							record.setName(cesGoods.getName());
+							CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(cesGoods.getGoodUnit());
 							if (cesGoodsUnit != null) {
 								record.setGoodUnit(cesGoodsUnit.getName());
 							}
@@ -110,11 +114,11 @@ public class KcStockDetailController extends JeecgController<KcStockDetail, IKcS
 				} else {
 					KcSupplierInGoods kcSupplierInGoods = kcSupplierInGoodsService.getById(record.getSupplierInGoodsId());
 					if (kcSupplierInGoods != null) {
-						KcGoods kcGoods = kcGoodsService.getById(kcSupplierInGoods.getGoodsId());
-						if (kcGoods != null) {
-							record.setSpec(kcGoods.getSpec());
-							record.setName(kcGoods.getName());
-							CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(kcGoods.getGoodUnit());
+						CesGoods cesGoods = cesGoodsService.getById(kcSupplierInGoods.getGoodsId());
+						if (cesGoods != null) {
+							record.setSpec(cesGoods.getSpec());
+							record.setName(cesGoods.getName());
+							CesGoodsUnit cesGoodsUnit = cesGoodsUnitService.getById(cesGoods.getGoodUnit());
 							if (cesGoodsUnit != null) {
 								record.setGoodUnit(cesGoodsUnit.getName());
 							}

+ 29 - 16
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/controller/KcSupplierInGoodsController.java

@@ -1,10 +1,7 @@
 package org.jeecg.modules.kc.controller;
 
 import java.math.BigDecimal;
-import java.util.ArrayList;
-import java.util.Arrays;
-import java.util.List;
-import java.util.Map;
+import java.util.*;
 import java.util.stream.Collectors;
 import java.io.IOException;
 import java.io.UnsupportedEncodingException;
@@ -33,7 +30,12 @@ import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import lombok.extern.slf4j.Slf4j;
 
+import org.jeecg.modules.rooms.entity.CesGoods;
 import org.jeecg.modules.rooms.entity.CesGoodsUnit;
+import org.jeecg.modules.rooms.entity.CesStockType;
+import org.jeecg.modules.rooms.service.CesGoodsServiceImpl;
+import org.jeecg.modules.rooms.service.CesGoodsUnitServiceImpl;
+import org.jeecg.modules.rooms.service.CesStockTypeServiceImpl;
 import org.jeecgframework.poi.excel.ExcelImportUtil;
 import org.jeecgframework.poi.excel.def.NormalExcelConstants;
 import org.jeecgframework.poi.excel.entity.ExportParams;
@@ -66,8 +68,14 @@ public class KcSupplierInGoodsController extends JeecgController<KcSupplierInGoo
 	private IKcSupplierInGoodsService kcSupplierInGoodsService;
 	@Autowired
 	private IKcGoodsService kcGoodsService;
+	 @Autowired
+	 private CesStockTypeServiceImpl cesStockTypeTypeService;
+	@Autowired
+	private CesGoodsServiceImpl goodsService;
 	@Autowired
 	private IKcGoodsTypeService kcGoodsTypeService;
+	 @Autowired
+	 private CesGoodsUnitServiceImpl cesGoodsUnitService;
 
 	/**
 	 * 分页列表查询
@@ -92,7 +100,7 @@ public class KcSupplierInGoodsController extends JeecgController<KcSupplierInGoo
 
 	 /**
 	  * 供货/待供货商品分页列表查询
-	  * @param kcGoods
+	  * @param cesGoods
 	  * @param pageNo
 	  * @param pageSize
 	  * @param supplierId 供应商id
@@ -103,27 +111,29 @@ public class KcSupplierInGoodsController extends JeecgController<KcSupplierInGoo
 	 //@AutoLog(value = "kc_supplier_in_goods-分页列表查询")
 	 @ApiOperation(value="kc_supplier_in_goods-分页列表查询", notes="kc_supplier_in_goods-分页列表查询")
 	 @GetMapping(value = "/goodsList")
-	 public Result<IPage<KcGoods>> goodsList(KcGoods kcGoods,
+	 public Result<IPage<CesGoods>> goodsList(CesGoods cesGoods,
 														   @RequestParam(name="pageNo", defaultValue="1") Integer pageNo,
 														   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 											 @RequestParam(name="supplierId",required = true) String supplierId,
 											 @RequestParam(name="inGoods",required = true) @JsonFormat() Boolean inGoods,
 														   HttpServletRequest req) {
-		 LambdaQueryWrapper<KcGoods> queryWrapper = QueryGenerator.initQueryWrapper(kcGoods, req.getParameterMap()).lambda();
+		 LambdaQueryWrapper<CesGoods> queryWrapper = QueryGenerator.initQueryWrapper(cesGoods, req.getParameterMap()).lambda();
+		 queryWrapper.eq(CesGoods::getInvalid,0);
 		 if (ObjectUtils.isEmpty(supplierId)) {
 			 return Result.error("请传入供应商id");
 		 }
 		 if (inGoods) {
-			 queryWrapper.exists("select 1 from kc_supplier_in_goods where goods_id=kc_goods.id and supplier_id=" + supplierId);
+			 queryWrapper.exists("select 1 from kc_supplier_in_goods where goods_id=ces_goods.id and supplier_id=" + supplierId);
 		 } else {
-			 queryWrapper.notExists("select 1 from kc_supplier_in_goods where goods_id=kc_goods.id and supplier_id=" + supplierId);
+			 queryWrapper.notExists("select 1 from kc_supplier_in_goods where goods_id=ces_goods.id and supplier_id=" + supplierId);
 		 }
-		 Page<KcGoods> page = new Page<KcGoods>(pageNo, pageSize);
-		 IPage<KcGoods> pageList = kcGoodsService.page(page, queryWrapper);
+		 Page<CesGoods> page = new Page<CesGoods>(pageNo, pageSize);
+		 IPage<CesGoods> pageList = goodsService.page(page, queryWrapper);
+		 List<CesGoodsUnit> goodsUnits = cesGoodsUnitService.list();
 		 pageList.getRecords().forEach(item -> {
-			 KcGoodsType kcGoodsType = kcGoodsTypeService.getById(item.getGoodType());
-			 if (kcGoodsType != null) {
-				 item.setGoodTypeName(kcGoodsType.getName());
+			 CesStockType cesStockType = cesStockTypeTypeService.getById(item.getGoodType());
+			 if (cesStockType != null) {
+				 item.setGoodTypeName(cesStockType.getName());
 			 }
 			 LambdaQueryWrapper<KcSupplierInGoods> lambdaQueryWrapper = new LambdaQueryWrapper<>();
 			 lambdaQueryWrapper.eq(KcSupplierInGoods::getSupplierId, supplierId);
@@ -132,6 +142,9 @@ public class KcSupplierInGoodsController extends JeecgController<KcSupplierInGoo
 			 if (kcSupplierInGoods != null) {
 				 item.setSupplierInGoodsId(kcSupplierInGoods.getId());
 			 }
+
+			 Optional<CesGoodsUnit> goodsUnit = goodsUnits.stream().filter(units -> units.getId().equals(item.getGoodUnit())).findFirst();
+			 goodsUnit.ifPresent(e -> item.setGoodsUnitName(e.getName()));
 		 });
 		 return Result.OK(pageList);
 	 }
@@ -180,8 +193,8 @@ public class KcSupplierInGoodsController extends JeecgController<KcSupplierInGoo
 	@ApiOperation(value="kc_supplier_in_goods-编辑", notes="kc_supplier_in_goods-编辑")
 	//@RequiresPermissions("kc:kc_supplier_in_goods:edit")
 	@RequestMapping(value = "/edit", method = {RequestMethod.PUT,RequestMethod.POST})
-	public Result<String> edit(@RequestBody KcSupplierInGoods kcSupplierInGoods) {
-		kcSupplierInGoodsService.updateById(kcSupplierInGoods);
+	public Result<String> edit(@RequestBody List<KcSupplierInGoods> kcSupplierInGoods) {
+		kcSupplierInGoodsService.updateBatchById(kcSupplierInGoods);
 		return Result.OK("编辑成功!");
 	}
 

+ 12 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/entity/KcDepositoryInGoods.java

@@ -8,6 +8,7 @@ import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.apache.poi.hpsf.Decimal;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.jeecg.common.aspect.annotation.Dict;
@@ -54,6 +55,17 @@ public class KcDepositoryInGoods implements Serializable {
 	@Excel(name = "总数", width = 15)
     @ApiModelProperty(value = "总数")
     private Integer num;
+	/**总数*/
+	@Excel(name = "库存详情id", width = 15)
+    @ApiModelProperty(value = "库存详情id")
+    private String stockDetailId;
+
+
+	@TableField(exist = false)
+	private Decimal price;
+
+	@TableField(exist = false)
+	private String stockCode;
 
 	@TableField(exist = false)
 	private String goodsName;

+ 6 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/entity/KcStockDetail.java

@@ -8,6 +8,7 @@ import java.math.BigDecimal;
 import com.baomidou.mybatisplus.annotation.*;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.modules.rooms.entity.CesGoods;
 import org.springframework.format.annotation.DateTimeFormat;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.jeecg.common.aspect.annotation.Dict;
@@ -46,6 +47,10 @@ public class KcStockDetail implements Serializable {
 	@Excel(name = "库存id", width = 15)
     @ApiModelProperty(value = "库存id")
     private String stockId;
+    /**库存id*/
+    @Excel(name = "商品id", width = 15)
+    @ApiModelProperty(value = "商品id")
+    private String goodId;
 	/**入库供货商品/出库仓库商品id*/
 	@Excel(name = "入库供货商品/出库仓库商品id", width = 15)
     @ApiModelProperty(value = "入库供货商品/出库仓库商品id")
@@ -60,7 +65,7 @@ public class KcStockDetail implements Serializable {
     private Integer num;
 
     @TableField(exist = false)
-    private KcGoods kcGoods;
+    private CesGoods cesGoods;
 
     @TableField(exist = false)
     private String goodUnit;

+ 5 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/mapper/KcDepositoryInGoodsMapper.java

@@ -25,12 +25,15 @@ public interface KcDepositoryInGoodsMapper extends BaseMapper<KcDepositoryInGood
      * @param depositoryId
      * @return
      */
-    @Select("<script>select sg.*,g.name as goods_name,g.stock_warning,gt.name as goods_unit_name,g.spec as goods_spec from kc_depository_in_goods sg inner join kc_goods g on g.id=sg.goods_id\n" +
+    @Select("<script>select sg.*,g.name as goods_name,g.stock_warning,gt.name as goods_unit_name,g.spec as goods_spec,ksd.price as price,ksd.stock_id as stock_code " +
+            "from kc_depository_in_goods sg inner join ces_goods g on g.id=sg.goods_id\n" +
             "left join ces_goods_unit gt on gt.id=g.good_unit\n" +
+            "inner join kc_stock_detail ksd on ksd.id = sg.stock_detail_id " +
             "where 1=1\n" +
+            "<if test='goodId != null and goodId !=\"\"'> and sg.goods_id = #{goodId} </if>"+
             "<if test='depositoryId != null and depositoryId !=\"\"'> and sg.depository_id = #{depositoryId} </if>"+
             "<if test='hotelId != null and hotelId !=\"\"'> and sg.hotel_id = #{hotelId} </if>"+
             "<if test='goodsName != null and goodsName !=\"\"'> and g.name like concat('%',#{goodsName},'%') </if>"+
             "</script>")
-    public List<KcDepositoryInGoods> depositoryInGoodsList(Page<KcDepositoryInGoods> page, String hotelId, String goodsName,String depositoryId);
+    public List<KcDepositoryInGoods> depositoryInGoodsList(Page<KcDepositoryInGoods> page, String hotelId, String goodsName,String depositoryId,String goodId);
 }

+ 4 - 3
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/mapper/KcSupplierInGoodsMapper.java

@@ -26,13 +26,14 @@ public interface KcSupplierInGoodsMapper extends BaseMapper<KcSupplierInGoods> {
      * @param goodsTypeId
      * @return
      */
-    @Select("<script>select sg.*,g.name as goods_name,gt.name as goods_type_name from kc_supplier_in_goods sg inner join kc_goods g on g.id=sg.goods_id\n" +
-            "left join kc_goods_type gt on gt.id=g.good_type\n" +
+    @Select("<script>select sg.*,g.name as goods_name,cst.name as goods_type_name " +
+            "from kc_supplier_in_goods sg inner join ces_goods g on g.id=sg.goods_id\n" +
+            "left join ces_stock_type cst on cst.id=g.good_type\n" +
             "where 1=1\n" +
             "<if test='supplierId != null and supplierId !=\"\"'> and sg.supplier_id = #{supplierId} </if>"+
             "<if test='hotelId != null and hotelId !=\"\"'> and sg.hotel_id = #{hotelId} </if>"+
             "<if test='goodsName != null and goodsName !=\"\"'> and g.name like concat('%',#{goodsName},'%') </if>"+
-            "<if test='goodsTypeId != null and goodsTypeId !=\"\"'> and gt.id = #{goodsTypeId} </if>"+
+            "<if test='goodsTypeId != null and goodsTypeId !=\"\"'> and cst.id = #{goodsTypeId} </if>"+
             "</script>")
     public List<KcSupplierInGoods> supplierInGoodsList(Page<KcSupplierInGoods> page, String hotelId, String goodsName,String goodsTypeId,String supplierId);
 }

+ 2 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/service/IKcDepositoryInGoodsService.java

@@ -14,10 +14,8 @@ public interface IKcDepositoryInGoodsService extends IService<KcDepositoryInGood
     /**
      * 仓库库存商品列表
      * @param page
-     * @param hotelId
-     * @param goodsName
-     * @param depositoryId
+     * @param kcDepositoryInGoods
      * @return
      */
-    public Page<KcDepositoryInGoods> depositoryInGoodsList(Page<KcDepositoryInGoods> page, String hotelId, String goodsName, String depositoryId);
+    public Page<KcDepositoryInGoods> depositoryInGoodsList(Page<KcDepositoryInGoods> page, KcDepositoryInGoods kcDepositoryInGoods);
 }

+ 4 - 8
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/kc/service/impl/KcDepositoryInGoodsServiceImpl.java

@@ -2,16 +2,13 @@ package org.jeecg.modules.kc.service.impl;
 
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import org.jeecg.modules.kc.entity.KcDepositoryInGoods;
-import org.jeecg.modules.kc.entity.KcSupplierInGoods;
 import org.jeecg.modules.kc.mapper.KcDepositoryInGoodsMapper;
-import org.jeecg.modules.kc.mapper.KcSupplierInGoodsMapper;
 import org.jeecg.modules.kc.service.IKcDepositoryInGoodsService;
 import org.springframework.stereotype.Service;
 
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 
 import javax.annotation.Resource;
-import java.util.List;
 
 /**
  * @Description: kc_depository_in_goods
@@ -27,12 +24,11 @@ public class KcDepositoryInGoodsServiceImpl extends ServiceImpl<KcDepositoryInGo
     /**
      * 仓库库存商品列表
      * @param page
-     * @param hotelId
-     * @param goodsName
-     * @param depositoryId
+     * @param kcDepositoryInGoods
      * @return
      */
-    public Page<KcDepositoryInGoods> depositoryInGoodsList(Page<KcDepositoryInGoods> page, String hotelId, String goodsName,String depositoryId){
-        return page.setRecords(kcDepositoryInGoodsMapper.depositoryInGoodsList(page, hotelId, goodsName,depositoryId));
+    public Page<KcDepositoryInGoods> depositoryInGoodsList(Page<KcDepositoryInGoods> page, KcDepositoryInGoods kcDepositoryInGoods){
+        return page.setRecords(kcDepositoryInGoodsMapper.depositoryInGoodsList(page,kcDepositoryInGoods.getHotelId(),
+                kcDepositoryInGoods.getGoodsName(), kcDepositoryInGoods.getDepositoryId(),kcDepositoryInGoods.getGoodsId()));
     }
 }

+ 2 - 4
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/mapper/PosOrderGoodsDetailMapper.java

@@ -17,8 +17,6 @@ public interface PosOrderGoodsDetailMapper extends BaseMapper<PosOrderGoodsDetai
 
     @Select("select pogd.*,cg.name as goods_name from pos_order_goods_detail pogd " +
             "left join ces_goods cg on pogd.goods_id =  cg.id " +
-            "where pogd.order_id = #{code} " +
-            "<foreach item='code' collection='codes' open='(' separator=',' close=')'> " +
-            "#{code} </foreach>")
-    List<PosOrderGoodsDetail> getGoodsDetail(List<String> codes);
+            "where pogd.order_id = #{code} ")
+    List<PosOrderGoodsDetail> getGoodsDetail(String codes);
 }

+ 1 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/service/IPosOrderGoodsDetailService.java

@@ -13,5 +13,5 @@ import java.util.List;
  */
 public interface IPosOrderGoodsDetailService extends IService<PosOrderGoodsDetail> {
 
-    List<PosOrderGoodsDetail> getGoodsDetail(List<String> code);
+    List<PosOrderGoodsDetail> getGoodsDetail(String code);
 }

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/pos/service/impl/PosOrderGoodsDetailServiceImpl.java

@@ -19,7 +19,7 @@ import java.util.List;
 public class PosOrderGoodsDetailServiceImpl extends ServiceImpl<PosOrderGoodsDetailMapper, PosOrderGoodsDetail> implements IPosOrderGoodsDetailService {
 
     @Override
-    public List<PosOrderGoodsDetail> getGoodsDetail(List<String> codes) {
-        return baseMapper.getGoodsDetail(codes);
+    public List<PosOrderGoodsDetail> getGoodsDetail(String code) {
+        return baseMapper.getGoodsDetail(code);
     }
 }

+ 5 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/Vo/CesGoodsVo.java

@@ -1,8 +1,11 @@
 package org.jeecg.modules.rooms.Vo;
 
 import lombok.Data;
+import org.jeecg.modules.kc.entity.KcDepositoryInGoods;
 import org.jeecg.modules.rooms.entity.CesGoods;
 
+import java.util.List;
+
 @Data
 public class CesGoodsVo extends CesGoods {
     private String hotelName;
@@ -14,4 +17,6 @@ public class CesGoodsVo extends CesGoods {
     private String stockGoodsName;
 
     private Double number;
+
+    private List<KcDepositoryInGoods> kcDepositoryInGoods;
 }

+ 26 - 0
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/entity/CesGoods.java

@@ -6,6 +6,8 @@ import com.baomidou.mybatisplus.extension.activerecord.Model;
 import java.time.LocalDateTime;
 import com.baomidou.mybatisplus.annotation.TableField;
 import java.io.Serializable;
+
+import io.swagger.annotations.ApiModelProperty;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -49,6 +51,16 @@ public class CesGoods extends Model<CesGoods> {
     private String name;
 
     /**
+     * 库存告警数
+     */
+    private String stockWarning;
+
+    /**
+     * 商品规格
+     */
+    private String spec;
+
+    /**
      * 商品口味IDS
      */
     private String foodTasteIds;
@@ -166,6 +178,20 @@ public class CesGoods extends Model<CesGoods> {
      */
     private Boolean isStock;
 
+    @TableField(exist = false)
+    @ApiModelProperty(value = "分类名称")
+    private String goodTypeName;
+
+    /**
+     * 供应商id
+     */
+    @TableField(exist = false)
+    private String supplierInGoodsId;
+
+    @TableField(exist = false)
+    @ApiModelProperty(value = "单位名称")
+    private String goodsUnitName;
+
     public static final String ID = "id";
 
     public static final String HOTEL_ID = "hotel_id";

+ 2 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/CesRoomsMapper.java

@@ -70,6 +70,6 @@ public interface CesRoomsMapper extends BaseMapper<CesRooms> {
     @Select("SELECT cr.* from bus_room_booking_orders brbo\n" +
             "inner join bus_booking_rooms bbr on brbo.id = bbr.booking_orders_id\n" +
             "inner join ces_rooms cr on bbr.room_id = cr.id\n" +
-            "where brbo.arrival_time > #{nowTime}")
-    List<CesRooms> getReserveRoom(@Param("nowTime") String nowTime);
+            "where brbo.arrival_time > #{nowDateStr} and brbo.arrival_time < #{tomorrowStr}")
+    List<CesRooms> getReserveRoom(@Param("nowDateStr") String nowDateStr, @Param("tomorrowStr") String tomorrowStr);
 }

+ 2 - 1
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/mapper/xml/CesRoomsMapper.xml

@@ -19,7 +19,8 @@
             WHERE
                 br.booking_type = 1
               AND br.room_id IS NOT NULL
-              AND (o.booking_status = 1 or o.booking_status = 3)
+--               And br.room_status = 1 Or br.room_status = 1
+              AND (o.booking_status = 2 or o.booking_status = 4)
               and TIMESTAMPDIFF(minute, ADDDATE(now(),INTERVAL 8 HOUR),o.arrival_time) > -2 -- 订单超过当前时间2分钟以后 则不算入已预定中 时间 > -2 算是正常预约,超过的一律算做超时订单
               AND (
                 ( o.arrival_time &lt;= #{startOf} AND o.due_out_time &gt;= #{startOf} ) -- 预抵时间在别的客人预定时间范围内

+ 11 - 7
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesHousePriceSchemeServiceImpl.java

@@ -2,6 +2,7 @@ package org.jeecg.modules.rooms.service;
 
 import cn.hutool.core.bean.BeanUtil;
 import cn.hutool.core.bean.copier.CopyOptions;
+import cn.hutool.core.collection.CollUtil;
 import cn.hutool.core.collection.CollectionUtil;
 import cn.hutool.core.util.StrUtil;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
@@ -118,13 +119,16 @@ public class CesHousePriceSchemeServiceImpl extends ServiceImpl<CesHousePriceSch
         queryWrapper.orderByAsc(CesHousePriceScheme.SORT);
         List<CesHousePriceScheme> cesHousePriceSchemes = cesHousePriceSchemeMapper.selectList(queryWrapper);
         List<String> idList = cesHousePriceSchemes.stream().map(CesHousePriceScheme :: getId).collect(Collectors.toList());
-        List<BusHousePriceSchemeLayout> priceSchemeLayouts = cesHousePriceSchemeMapper.queryLayoutBySchemeId(idList);
-        List<CesHousePriceSchemeVo> cesHousePriceSchemeVoList= BeanUtil.copyToList(cesHousePriceSchemes, CesHousePriceSchemeVo.class);
-        cesHousePriceSchemeVoList.stream().forEach(scheme -> {
-            List<BusHousePriceSchemeLayout> collect = priceSchemeLayouts.stream().
-                    filter(schemeLayout -> StrUtil.equals(scheme.getId(), schemeLayout.getSchemeId())).collect(Collectors.toList());
-            scheme.setHousePriceSchemeLayoutList(collect);
-        });
+        List<CesHousePriceSchemeVo> cesHousePriceSchemeVoList = new ArrayList<>();
+        if (CollUtil.isNotEmpty(idList)){
+            List<BusHousePriceSchemeLayout> priceSchemeLayouts = cesHousePriceSchemeMapper.queryLayoutBySchemeId(idList);
+            cesHousePriceSchemeVoList = BeanUtil.copyToList(cesHousePriceSchemes, CesHousePriceSchemeVo.class);
+            cesHousePriceSchemeVoList.stream().forEach(scheme -> {
+                List<BusHousePriceSchemeLayout> collect = priceSchemeLayouts.stream().
+                        filter(schemeLayout -> StrUtil.equals(scheme.getId(), schemeLayout.getSchemeId())).collect(Collectors.toList());
+                scheme.setHousePriceSchemeLayoutList(collect);
+            });
+        }
         return Result.ok(cesHousePriceSchemeVoList);
     }
 

+ 13 - 2
jeecg-module-system/jeecg-system-biz/src/main/java/org/jeecg/modules/rooms/service/CesRoomsServiceImpl.java

@@ -30,10 +30,12 @@ import org.springframework.stereotype.Service;
 import javax.annotation.Resource;
 import javax.transaction.Transactional;
 import java.math.BigDecimal;
+import java.text.SimpleDateFormat;
 import java.time.LocalDateTime;
 import java.time.format.DateTimeFormatter;
 import java.util.*;
 import java.util.concurrent.atomic.AtomicInteger;
+import java.util.logging.SimpleFormatter;
 import java.util.stream.Collectors;
 
 /**
@@ -440,8 +442,17 @@ public class CesRoomsServiceImpl extends ServiceImpl<CesRoomsMapper, CesRooms> i
     }
 
     public Boolean getReserveRoom() {
-        String nowTimeStr = DateTimeFormatter.ofPattern("yyyy-MM-dd HH:mm:ss").format(LocalDateTime.now());
-        List<CesRooms> CesRoomList = roomsMapper.getReserveRoom(nowTimeStr);
+
+        // 将Calendar设置为当前日期
+        SimpleDateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd");
+        Calendar calendar = Calendar.getInstance();
+        String nowDateStr = dateFormat.format(calendar.getTime());
+        calendar.add(Calendar.DAY_OF_YEAR, 1);
+        String tomorrowStr = dateFormat.format(calendar.getTime());
+
+        // 将日期增加1天
+        calendar.add(Calendar.DAY_OF_YEAR, 1);
+        List<CesRooms> CesRoomList = roomsMapper.getReserveRoom(nowDateStr, tomorrowStr);
         ArrayList<CesRooms> newCesRooms = new ArrayList<>();
         for (CesRooms cesRoom : CesRoomList){
             if (cesRoom.getRoomStatus() < 3){