Browse Source

房态管理-房价管理-导出

liujunqiang 2 years atrás
parent
commit
15a87925c7

+ 7 - 0
mhotel/src/com/happy/action/HousePriceAction.java

@@ -82,4 +82,11 @@ public class HousePriceAction extends BaseController implements ModelDriven<Hous
             put("data", housePriceService.queryPageHistory(housePriceDto, page, rows));
             put("data", housePriceService.queryPageHistory(housePriceDto, page, rows));
         }}.toString());
         }}.toString());
     }
     }
+
+    /**
+     * 导出表格数据 房态管理-房价管理-改价记录
+     */
+    public void exportHistory() {
+        housePriceService.exportHistory(housePriceDto);
+    }
 }
 }

+ 14 - 6
mhotel/src/com/happy/dao/impl/HousePriceDaoImpl.java

@@ -60,20 +60,28 @@ public class HousePriceDaoImpl implements HousePriceDao {
 
 
     @Override
     @Override
     public List<HousePriceDto> queryListThree(HousePriceDto housePriceDto, Integer pageNumber, Integer pageSize) {
     public List<HousePriceDto> queryListThree(HousePriceDto housePriceDto, Integer pageNumber, Integer pageSize) {
-        final String SQL_HEAD = "select t.* from(select t1.id, t1.house_id, t2.h_name as houseName, group_concat(replace(t1.set_date, ',', ' 至 ')) as set_date, t1.price, t1.create_id, date_format(t1.create_date, '%Y-%m-%d %H:%i:%s') as operationTime from house_price t1 left join house t2 on t1.status = t2.status and t1.manager_id = t2.manager_id and t1.house_id = t2.id where t1.status = 1";
+        final String SQL_HEAD = "select t.* from(select t1.id, t1.house_id, t2.h_name as houseName, group_concat(replace(t1.set_date, ',', ' 至 ')) as set_date, t1.price, t3.corpn_name as operationName, date_format(t1.create_date, '%Y-%m-%d %H:%i:%s') as operationTime from house_price t1 left join house t2 on t1.status = t2.status and t1.manager_id = t2.manager_id and t1.house_id = t2.id left join admin_manager t3 on t1.create_id = t3.id where t1.status = 1";
+        StringBuilder sql = new StringBuilder(SQL_HEAD);
+        if (StringUtils.isNotBlank(housePriceDto.getOperationName())) {
+            sql.append(" and t3.corpn_name like concat('%', :operationName, '%')");
+        }
         final String SQL_TAIL = " group by t1.id) t order by t.operationTime desc";
         final String SQL_TAIL = " group by t1.id) t order by t.operationTime desc";
         Map<String, Object> paramMap = buildParamMap(housePriceDto, pageNumber, pageSize);
         Map<String, Object> paramMap = buildParamMap(housePriceDto, pageNumber, pageSize);
-        StringBuilder sql = buildSqlHousePrice(SQL_HEAD, SQL_TAIL, housePriceDto, pageNumber, pageSize);
-        return namedParameterJdbcTemplate.query(sql.toString(), paramMap, new BeanPropertyRowMapper<>(HousePriceDto.class));
+        StringBuilder sqlLast = buildSqlHousePrice(sql.toString(), SQL_TAIL, housePriceDto, pageNumber, pageSize);
+        return namedParameterJdbcTemplate.query(sqlLast.toString(), paramMap, new BeanPropertyRowMapper<>(HousePriceDto.class));
     }
     }
 
 
     @Override
     @Override
     public int queryTotalThree(HousePriceDto housePriceDto) {
     public int queryTotalThree(HousePriceDto housePriceDto) {
-        final String SQL_HEAD = "select count(1) from (select 1 from house_price t1 left join house t2 on t1.status = t2.status and t1.manager_id = t2.manager_id and t1.house_id = t2.id where t1.status = 1";
+        final String SQL_HEAD = "select count(1) from (select 1 from house_price t1 left join house t2 on t1.status = t2.status and t1.manager_id = t2.manager_id and t1.house_id = t2.id left join admin_manager t3 on t1.create_id = t3.id where t1.status = 1";
+        StringBuilder sql = new StringBuilder(SQL_HEAD);
+        if (StringUtils.isNotBlank(housePriceDto.getOperationName())) {
+            sql.append(" and t3.corpn_name like concat('%', :operationName, '%')");
+        }
         final String SQL_TAIL = ") t";
         final String SQL_TAIL = ") t";
         Map<String, Object> paramMap = buildParamMap(housePriceDto, null, null);
         Map<String, Object> paramMap = buildParamMap(housePriceDto, null, null);
-        StringBuilder sql = buildSqlHousePrice(SQL_HEAD, SQL_TAIL, housePriceDto, null, null);
-        return namedParameterJdbcTemplate.queryForObject(sql.toString(), paramMap, Integer.class);
+        StringBuilder sqlLast = buildSqlHousePrice(sql.toString(), SQL_TAIL, housePriceDto, null, null);
+        return namedParameterJdbcTemplate.queryForObject(sqlLast.toString(), paramMap, Integer.class);
     }
     }
 
 
     /**
     /**

+ 4 - 0
mhotel/src/com/happy/dto/HousePriceDto.java

@@ -25,4 +25,8 @@ public class HousePriceDto extends HousePrice {
      * 查询条件 房态管理-房价管理-改价记录-操作时间
      * 查询条件 房态管理-房价管理-改价记录-操作时间
      */
      */
     public String operationTime;
     public String operationTime;
+    /**
+     * 查询条件 房态管理-房价管理-改价记录-操作人
+     */
+    public String operationName;
 }
 }

+ 5 - 0
mhotel/src/com/happy/service/HousePriceService.java

@@ -43,4 +43,9 @@ public interface HousePriceService {
      * @param managerId 商家id
      * @param managerId 商家id
      */
      */
     List<House> queryHouseListByManagerId(String managerId);
     List<House> queryHouseListByManagerId(String managerId);
+
+    /**
+     * 导出表格数据 房态管理-房价管理-改价记录
+     */
+    void exportHistory(HousePriceDto housePriceDto);
 }
 }

+ 5 - 3
mhotel/src/com/happy/service/impl/HouseNumberStatusImplService.java

@@ -126,7 +126,7 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
             List<JSONObject> result = new ArrayList<>();
             List<JSONObject> result = new ArrayList<>();
             houseList.forEach(house -> houseNumberList.forEach(houseNumber -> {
             houseList.forEach(house -> houseNumberList.forEach(houseNumber -> {
                 if (houseNumber.getHouseId().equals(house.getId())) {
                 if (houseNumber.getHouseId().equals(house.getId())) {
-                    JSONObject houseJsonObject = new JSONObject();
+                    JSONObject houseJsonObject = new JSONObject(new LinkedHashMap<>());
                     houseJsonObject.put("id", house.getId());
                     houseJsonObject.put("id", house.getId());
                     houseJsonObject.put("houseName", house.gethName());
                     houseJsonObject.put("houseName", house.gethName());
                     String numberName = houseNumber.getNumberName();
                     String numberName = houseNumber.getNumberName();
@@ -201,6 +201,7 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
     @Override
     @Override
     public void modifyStatusBatch(HouseNumberStatusDto houseNumberStatusDto) {
     public void modifyStatusBatch(HouseNumberStatusDto houseNumberStatusDto) {
         Integer status = houseNumberStatusDto.getStatus();
         Integer status = houseNumberStatusDto.getStatus();
+        String createId = houseNumberStatusDto.getCreateId();
         boolean isStatusEqualsThree = status == 3;
         boolean isStatusEqualsThree = status == 3;
         boolean isStatusEqualsFour = status == 4;
         boolean isStatusEqualsFour = status == 4;
         List<String> dateStrListBetween;
         List<String> dateStrListBetween;
@@ -219,7 +220,7 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
                 HouseNumberStatus houseNumberStatus = new HouseNumberStatus();
                 HouseNumberStatus houseNumberStatus = new HouseNumberStatus();
                 houseNumberStatus.setNumberId(houseNumberId);
                 houseNumberStatus.setNumberId(houseNumberId);
                 houseNumberStatus.setStatus(status);
                 houseNumberStatus.setStatus(status);
-                houseNumberStatus.setCreateId("");
+                houseNumberStatus.setCreateId(createId);
                 houseNumberStatus.setCreateDate(dataTime);
                 houseNumberStatus.setCreateDate(dataTime);
                 if (isStatusEqualsThree) {
                 if (isStatusEqualsThree) {
                     houseNumberStatus.setId(Func.newGuid());
                     houseNumberStatus.setId(Func.newGuid());
@@ -248,6 +249,7 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
     @Override
     @Override
     public void modifyStatus(HouseNumberStatusDto houseNumberStatusDto) {
     public void modifyStatus(HouseNumberStatusDto houseNumberStatusDto) {
         Integer status = houseNumberStatusDto.getStatus();
         Integer status = houseNumberStatusDto.getStatus();
+        String createId = houseNumberStatusDto.getCreateId();
         boolean isStatusEqualsThree = status == 3;
         boolean isStatusEqualsThree = status == 3;
         boolean isStatusEqualsFour = status == 4;
         boolean isStatusEqualsFour = status == 4;
         Date dataTime = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
         Date dataTime = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
@@ -256,7 +258,7 @@ public class HouseNumberStatusImplService implements HouseNumberStatusService {
             BeanUtils.copyProperties(houseNumberStatusDto, houseNumberStatus);
             BeanUtils.copyProperties(houseNumberStatusDto, houseNumberStatus);
             houseNumberStatus.setId(Func.newGuid());
             houseNumberStatus.setId(Func.newGuid());
             houseNumberStatus.setCreateDate(dataTime);
             houseNumberStatus.setCreateDate(dataTime);
-            houseNumberStatus.setCreateId("");
+            houseNumberStatus.setCreateId(createId);
             houseNumberStatusDao.saveBatch(Collections.singletonList(houseNumberStatus));
             houseNumberStatusDao.saveBatch(Collections.singletonList(houseNumberStatus));
         } else {
         } else {
             houseNumberStatusDto.setModifyDate(dataTime);
             houseNumberStatusDto.setModifyDate(dataTime);

+ 46 - 4
mhotel/src/com/happy/service/impl/HousePriceServiceImpl.java

@@ -4,7 +4,10 @@ import com.alibaba.fastjson.JSONObject;
 import com.happy.Model.House;
 import com.happy.Model.House;
 import com.happy.Model.HousePrice;
 import com.happy.Model.HousePrice;
 import com.happy.Until.DateUtil;
 import com.happy.Until.DateUtil;
+import com.happy.Until.Excel.toExcel;
 import com.happy.Until.Func;
 import com.happy.Until.Func;
+import com.happy.Until.ResponseUtil;
+import com.happy.Until.UUIDUtil;
 import com.happy.dao.HouseDao;
 import com.happy.dao.HouseDao;
 import com.happy.dao.HousePriceDao;
 import com.happy.dao.HousePriceDao;
 import com.happy.dto.HousePriceDto;
 import com.happy.dto.HousePriceDto;
@@ -12,6 +15,8 @@ import com.happy.dto.IPage;
 import com.happy.service.HousePriceService;
 import com.happy.service.HousePriceService;
 import lombok.SneakyThrows;
 import lombok.SneakyThrows;
 import org.apache.commons.lang.StringUtils;
 import org.apache.commons.lang.StringUtils;
+import org.apache.struts2.ServletActionContext;
+import org.springframework.beans.BeanUtils;
 import org.springframework.stereotype.Service;
 import org.springframework.stereotype.Service;
 
 
 import javax.annotation.Resource;
 import javax.annotation.Resource;
@@ -31,12 +36,11 @@ public class HousePriceServiceImpl implements HousePriceService {
         List<HousePrice> housePriceList = new ArrayList<>();
         List<HousePrice> housePriceList = new ArrayList<>();
         Date now = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
         Date now = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
         priceList.forEach(item -> {
         priceList.forEach(item -> {
-            item.setCreateId("");
             item.setCreateDate(now);
             item.setCreateDate(now);
             item.setStatus(1);
             item.setStatus(1);
             dateList.forEach(date -> {
             dateList.forEach(date -> {
                 HousePrice housePrice = new HousePrice();
                 HousePrice housePrice = new HousePrice();
-                org.springframework.beans.BeanUtils.copyProperties(item, housePrice);
+                BeanUtils.copyProperties(item, housePrice);
                 housePrice.setId(Func.newGuid());
                 housePrice.setId(Func.newGuid());
                 housePrice.setSetDate(date);
                 housePrice.setSetDate(date);
                 housePriceList.add(housePrice);
                 housePriceList.add(housePrice);
@@ -50,7 +54,6 @@ public class HousePriceServiceImpl implements HousePriceService {
     public void modifyPrice(HousePriceDto housePriceDto) {
     public void modifyPrice(HousePriceDto housePriceDto) {
         Date now = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
         Date now = DateUtil.formateDate(DateUtil.getCurrentDate(), DateUtil.Time_Formatter_Second);
         housePriceDto.setId(Func.newGuid());
         housePriceDto.setId(Func.newGuid());
-        housePriceDto.setCreateId("");
         housePriceDto.setCreateDate(now);
         housePriceDto.setCreateDate(now);
         housePriceDto.setStatus(1);
         housePriceDto.setStatus(1);
         housePriceDao.insertBatch(Collections.singletonList(housePriceDto));
         housePriceDao.insertBatch(Collections.singletonList(housePriceDto));
@@ -75,7 +78,7 @@ public class HousePriceServiceImpl implements HousePriceService {
 
 
             List<Date> dateListBetween = DateUtil.getDateListBetween(startDate, endDate);
             List<Date> dateListBetween = DateUtil.getDateListBetween(startDate, endDate);
             pageList.forEach(item -> {
             pageList.forEach(item -> {
-                JSONObject jsonObject = new JSONObject();
+                JSONObject jsonObject = new JSONObject(new LinkedHashMap<>());
                 jsonObject.put("id", item.getHouseId());
                 jsonObject.put("id", item.getHouseId());
                 jsonObject.put("houseName", item.getHouseName());
                 jsonObject.put("houseName", item.getHouseName());
                 dateListBetween.forEach(date -> jsonObject.put(DateUtil.parseDateToStr(date, DateUtil.Time_Formatter_Day), getPrice(date, item, housePriceDtoList)));
                 dateListBetween.forEach(date -> jsonObject.put(DateUtil.parseDateToStr(date, DateUtil.Time_Formatter_Day), getPrice(date, item, housePriceDtoList)));
@@ -114,6 +117,45 @@ public class HousePriceServiceImpl implements HousePriceService {
         return houseDao.queryList(sqlx);
         return houseDao.queryList(sqlx);
     }
     }
 
 
+    @Override
+    public void exportHistory(HousePriceDto housePriceDto) {
+        if (StringUtils.isBlank(housePriceDto.getManagerId())) return;
+        List<HousePriceDto> list = housePriceDao.queryListThree(housePriceDto, null, null);
+        if (list.isEmpty()) return;
+        // List<Vector<Object>> vectorsList = new ArrayList<>();
+        List<Vector> vectorsList = new ArrayList<>();
+        list.forEach(housePrice -> {
+            Vector columnValue = new Vector<>();
+            columnValue.add(housePrice.getHouseName());
+            columnValue.add(housePrice.getSetDate());
+            columnValue.add(housePrice.getPrice());
+            columnValue.add(housePrice.getOperationName());
+            columnValue.add(housePrice.getOperationTime());
+            vectorsList.add(columnValue);
+        });
+        // 项目路径地址
+        String path = ServletActionContext.getRequest().getSession().getServletContext()
+                .getRealPath("/download/");// File.separator
+        Vector<String> columnName = new Vector<>();
+        columnName.add("房型");
+        columnName.add("价格日期");
+        columnName.add("修改后价格");
+        columnName.add("操作人");
+        columnName.add("操作时间");
+        String filePathName = "改价记录" + UUIDUtil.generateID() + "Report.xls";
+
+        // 导出文件
+        new toExcel().book(vectorsList, path + filePathName,
+                "sheet1", columnName);
+        String url = "https://chtech.ncjti.edu.cn/hotelReservation/mhotel";
+        JSONObject result = new JSONObject();
+        result.put("downurl", url + "/download/" + filePathName);
+        result.put("code", 200);
+        result.put("message", "导出成功");
+        ResponseUtil.writeJson(ServletActionContext.getResponse(),
+                result.toString());
+    }
+
     /**
     /**
      * 获取房型指定日期的价格
      * 获取房型指定日期的价格
      *
      *