From 2c2238054747fd00564c098930ac32c7e1aa902f Mon Sep 17 00:00:00 2001 From: luozukai Date: Tue, 16 Apr 2019 13:10:38 +0800 Subject: [PATCH] =?UTF-8?q?[=E5=AE=A1=E6=89=B9=E6=B5=81][=E4=BF=AE?= =?UTF-8?q?=E6=94=B9][=E5=AE=8C=E5=96=84=E8=B4=A6=E5=8D=95=E5=AE=A1?= =?UTF-8?q?=E6=89=B9]?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/iformall/domain/po/WxShop.java | 22 +++ .../java/com/iformall/enums/EnumChart.java | 6 +- .../com/iformall/mapper/WxShopMapper.java | 2 +- .../service/impl/WxChartServiceImpl.java | 53 ++++++++ .../service/impl/WxFlowServiceImpl.java | 1 - .../impl/WxRentContractServiceImpl.java | 126 +++++++++++------- .../java/com/iformall/utils/DateUtils.java | 17 +++ .../main/resources/mapper/WxShopMapper.xml | 17 +++ 8 files changed, 190 insertions(+), 54 deletions(-) diff --git a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java index e3138dad8..3df60c6c3 100644 --- a/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java +++ b/mallinkService/src/main/java/com/iformall/domain/po/WxShop.java @@ -126,6 +126,13 @@ public class WxShop implements Serializable { @io.swagger.annotations.ApiModelProperty(value = "是否删除1是0否", name = " ") private Integer isDel; + //开始时间 + @Transient + private Date startdate; + //结束时间 + @Transient + private Date enddate; + public Integer getIsDel() { return isDel; } @@ -224,6 +231,21 @@ public class WxShop implements Serializable { public void setUpdateDate(Date _updateDate) { updateDate = _updateDate; } + public Date getStartdate() { + return startdate; + } + + public void setStartdate(Date startdate) { + this.startdate = startdate; + } + + public Date getEnddate() { + return enddate; + } + + public void setEnddate(Date enddate) { + this.enddate = enddate; + } public String getImgUrl() { return imgUrl; diff --git a/mallinkService/src/main/java/com/iformall/enums/EnumChart.java b/mallinkService/src/main/java/com/iformall/enums/EnumChart.java index 8a5313bbd..8a82405d4 100644 --- a/mallinkService/src/main/java/com/iformall/enums/EnumChart.java +++ b/mallinkService/src/main/java/com/iformall/enums/EnumChart.java @@ -53,7 +53,11 @@ public enum EnumChart { SALE_CARD(45, "卡营销数据"), SALE_COUPON(46, "卷营销数据"), SALE_PRESS(47, "砍价营销数据"), - SALE_GROUP(48, "拼团营销数据"),; + SALE_GROUP(48, "拼团营销数据"), + + + INDEX_SHOP_RENT(49, "商铺出租数据"), + ; public static EnumChart getEnum(Integer code) { for (EnumChart value : values()) { diff --git a/mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java b/mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java index 4dd3b3bf6..c69d8e01f 100644 --- a/mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java +++ b/mallinkService/src/main/java/com/iformall/mapper/WxShopMapper.java @@ -31,5 +31,5 @@ public interface WxShopMapper extends CommonMapper { List findShopVoList(Map map); - + Long getCountByWxShop(WxShop wxShop); } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java index 8750e01a3..169cdfedd 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxChartServiceImpl.java @@ -274,6 +274,11 @@ public class WxChartServiceImpl implements WxChartDataService { return getSaleGroupAnalysis(paramsMap, tenantId, startdate); } + //首页商铺出租数据 + if (chart.equals(EnumChart.INDEX_SHOP_RENT.getCode())) { + return getIndexShopRentData(tenantId, startdate); + } + return new ResultData(ErrorCode.REPORT_TYPE_UNKNOWN); } @@ -2191,4 +2196,52 @@ public class WxChartServiceImpl implements WxChartDataService { return map; } + /** + * 首页商铺出租数据 + * @param tenantId + * @return + */ + private ResultData getIndexShopRentData(String tenantId, String startDateStr) { + HashMap datamap = new HashMap<>(); + Date startDate = DateUtils.getDateFromString(startDateStr,"yyyy-MM-dd").getTime(); + Date endDate = DateUtils.getLastDayForMonth(startDate); + WxShop query = new WxShop(); + query.setTenantId(tenantId); + query.setStartdate(startDate); + query.setEnddate(endDate); + + query.setType(null); + Long total = wxShopMapper.getCountByWxShop(query); + query.setType(EnumRentShopType.SHOP.getCode()); + Long totalShop = wxShopMapper.getCountByWxShop(query); + query.setType(EnumRentShopType.POINT.getCode()); + Long totalPoint = wxShopMapper.getCountByWxShop(query); + + query.setType(null); + query.setStatus(EnumShopStatus.RENT.getCode()); + Long rentTotal = wxShopMapper.getCountByWxShop(query); + query.setType(EnumRentShopType.SHOP.getCode()); + Long rentTotalShop = wxShopMapper.getCountByWxShop(query); + query.setType(EnumRentShopType.POINT.getCode()); + Long rentTotalPoint = wxShopMapper.getCountByWxShop(query); + + query.setType(null); + query.setStatus(EnumShopStatus.NOT_RENT.getCode()); + Long notRentTotal = wxShopMapper.getCountByWxShop(query); + query.setType(EnumRentShopType.SHOP.getCode()); + Long notRentTotalShop = wxShopMapper.getCountByWxShop(query); + query.setType(EnumRentShopType.POINT.getCode()); + Long notRentTotalPoint = wxShopMapper.getCountByWxShop(query); + + datamap.put("total",total); + datamap.put("totalShop",totalShop); + datamap.put("totalPoint",totalPoint); + datamap.put("rentTotal",rentTotal); + datamap.put("rentTotalShop",rentTotalShop); + datamap.put("rentTotalPoint",rentTotalPoint); + datamap.put("notRentTotal",notRentTotal); + datamap.put("notRentTotalShop",notRentTotalShop); + datamap.put("notRentTotalPoint",notRentTotalPoint); + return new ResultData(datamap); + } } diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java index c7bf04b16..2ac6e0fe3 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxFlowServiceImpl.java @@ -33,7 +33,6 @@ import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Propagation; import org.springframework.transaction.annotation.Transactional; - import javax.servlet.http.HttpServletResponse; import java.io.InputStream; import java.io.OutputStream; diff --git a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java index 64f64468d..66367b531 100644 --- a/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java +++ b/mallinkService/src/main/java/com/iformall/service/impl/WxRentContractServiceImpl.java @@ -321,68 +321,58 @@ public class WxRentContractServiceImpl implements WxRentContractService { wxBillRent.setIsPreview(EnumIsPreview.YES.getCode()); List resultList = wxBillRentMapper.findList(wxBillRent); - // 更新 + //更新 ResultData resultData = getResultDataForUpdate(record, userId); if (resultData.code != Result.SUCCESS) { return resultData; } - if (record.getReceivePeriod() != null && record.getLease() != null && record.getPrice() != null - && !record.getReceivePeriod().equals(0) && !record.getLease().equals(0) && !record.getPrice().equals(0)) { - if (dbRent.getRentShopType().equals(EnumRentShopType.SHOP.getCode())) { - //删除预账单,重新生成 - wxBillRentMapper.deletePreviewBill(record); - resultList = buildRent(new WxMerchant(), null, record, EnumIsPreview.YES.getCode()); + //有改变,删除预账单,重新生成 + if (record.getReceivePeriod() != null && record.getLease() != null && record.getPrice() != null) { + boolean change = false; + if (CollectionUtils.isEmpty(resultList)) { + change = true; + } else if (record.getAdjustPeriod().intValue() != dbRent.getAdjustPeriod().intValue()) { + change = true; } else { - boolean change = false; - if (CollectionUtils.isEmpty(resultList)) { - change = true; - } else if (record.getAdjustPeriod().intValue() != dbRent.getAdjustPeriod().intValue()) { - change = true; - } else { - if (record.getReceivePeriod() != null && record.getLease() != null && record.getPrice() != null) { - if (record.getType().equals(EnumRentContractType.RENT_BY_AREA.getCode())) { - if (!record.getReceivePeriod().equals(dbRent.getReceivePeriod()) - || !record.getLease().equals(dbRent.getLease()) - || !record.getType().equals(dbRent.getType()) - || !record.getPrice().equals(dbRent.getPrice()) - || !record.getAdjustRatio().replaceAll("\\s*", "").equals(dbRent.getAdjustRatio().replaceAll("\\s*", "")) - || !DateUtils.date2String(record.getRentalStartDate(), "yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(), "yyyy-MM-dd")) - ) { - change = true; - } - } else if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { - if (!record.getReceivePeriod().equals(dbRent.getReceivePeriod()) - || !record.getLease().equals(dbRent.getLease()) - || !record.getType().equals(dbRent.getType()) - || !record.getRevenue().equals(dbRent.getRevenue()) - || !record.getPayRatio().equals(dbRent.getPayRatio()) - || !DateUtils.date2String(record.getRentalStartDate(), "yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(), "yyyy-MM-dd")) - ) { - change = true; - } - } else if (record.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { - if (!record.getReceivePeriod().equals(dbRent.getReceivePeriod()) - || !record.getLease().equals(dbRent.getLease()) - || !record.getType().equals(dbRent.getType()) - || !record.getPrice().equals(dbRent.getPrice()) - || !record.getPayRatio().equals(dbRent.getPayRatio()) - || !DateUtils.date2String(record.getRentalStartDate(), "yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(), "yyyy-MM-dd")) - ) { - change = true; - } - } + if (record.getType().equals(EnumRentContractType.RENT_BY_AREA.getCode())) { + if (!record.getReceivePeriod().equals(dbRent.getReceivePeriod()) + || !record.getLease().equals(dbRent.getLease()) + || !record.getType().equals(dbRent.getType()) + || !record.getPrice().equals(dbRent.getPrice()) + || !record.getAdjustRatio().replaceAll("\\s*", "").equals(dbRent.getAdjustRatio().replaceAll("\\s*", "")) + || !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd")) + ) { + change = true; + } + } else if (record.getType().equals(EnumRentContractType.RENT_BY_JOINT.getCode())) { + if (!record.getReceivePeriod().equals(dbRent.getReceivePeriod()) + || !record.getLease().equals(dbRent.getLease()) + || !record.getType().equals(dbRent.getType()) + || !record.getRevenue().equals(dbRent.getRevenue()) + || !record.getPayRatio().equals(dbRent.getPayRatio()) + || !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd")) + ) { + change = true; + } + } else if (record.getType().equals(EnumRentContractType.RENT_BY_AREA_AND_JOINT.getCode())) { + if (!record.getReceivePeriod().equals(dbRent.getReceivePeriod()) + || !record.getLease().equals(dbRent.getLease()) + || !record.getType().equals(dbRent.getType()) + || !record.getPrice().equals(dbRent.getPrice()) + || !record.getPayRatio().equals(dbRent.getPayRatio()) + || !DateUtils.date2String(record.getRentalStartDate(),"yyyy-MM-dd").equals(DateUtils.date2String(dbRent.getRentalStartDate(),"yyyy-MM-dd")) + ) { + change = true; } - } - //有改变,删除预账单,重新生成 - if (change) { - wxBillRentMapper.deletePreviewBill(record); - resultList = buildRent(new WxMerchant(), null, record, EnumIsPreview.YES.getCode()); } } + if (change) { + wxBillRentMapper.deletePreviewBill(record); + resultList = buildRent(new WxMerchant(), null, record, EnumIsPreview.YES.getCode()); + } } - //启动审批流 if(record.getFlowParams() != null){ record.getFlowParams().put("businessId",record.getId().toString()); @@ -1085,6 +1075,40 @@ public class WxRentContractServiceImpl implements WxRentContractService { int allCount = wxRentContractMapper.selectCount(wxRentContract); resultData.put("allCount", allCount); + //审核流程中止 + List collect = wxRentContractMapper.getRentInvalidList(wxRentContract).stream() + .map(r -> r.getId()).collect(Collectors.toList()); + if (!CollectionUtils.isEmpty(collect)) { + for (Long id:collect) { + try { + logger.info("合同id:{},开始停止...",id); + //结束审批流 by luozukai + List tasks = taskService.createTaskQuery().processDefinitionKey(WxFlowServiceImpl.getFlowKeyByType(1)) + .processVariableValueEquals("businessId",id).list(); + if (!CollectionUtils.isEmpty(tasks)) { + for (Task task:tasks) { + logger.info("合同id:{},taskid:{}",id,task.getId()); + runtimeService.deleteProcessInstance(task.getProcessInstanceId(), "合同作废"); + } + } + // 修改合同审核状态 + WxRentContract rentContract = new WxRentContract(); + rentContract.setId(id); + rentContract.setApplyStatus(EnumRentContractAppStatus.CANCLE.getCode()); + updateApplyStatus(rentContract); + + // 保存审批历史入 + WxFlowRecord updateRecord = new WxFlowRecord(); + updateRecord.setBusinessId(id); + updateRecord.setStatus(EnumFlowRecordStatus.CANCLE.getCode()); + updateRecord.setBusinessType(1); + wxFlowRecordService.saveOrUpdate(updateRecord); + }catch (Exception e){ + logger.error("deleteProcessInstance error",e); + } + } + } + //待签约 wxRentContract.setStatus(EnumRentContractStatus.WAIT_SIGN.getCode()); int waitSignCount = wxRentContractMapper.queryRentContractWaitSignStatus(wxRentContract); diff --git a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java index 77cee4dc8..1c466d402 100755 --- a/mallinkService/src/main/java/com/iformall/utils/DateUtils.java +++ b/mallinkService/src/main/java/com/iformall/utils/DateUtils.java @@ -969,6 +969,23 @@ public class DateUtils { ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); return ca.getTime(); } + + /** + * 获取指定月的最后一天 + * @return + */ + public static Date getLastDayForMonth(String date){ + try { + Calendar ca = Calendar.getInstance(); + ca.setTime(new SimpleDateFormat("yyyy-MM-dd").parse(date)); + ca.set(Calendar.DAY_OF_MONTH, ca.getActualMaximum(Calendar.DAY_OF_MONTH)); + return ca.getTime(); + } catch (ParseException e) { + e.printStackTrace(); + } + return null; + } + /** * 获取指定日期n个月后的最后一天 * @return diff --git a/mallinkService/src/main/resources/mapper/WxShopMapper.xml b/mallinkService/src/main/resources/mapper/WxShopMapper.xml index 728e5a59c..1d93df54c 100644 --- a/mallinkService/src/main/resources/mapper/WxShopMapper.xml +++ b/mallinkService/src/main/resources/mapper/WxShopMapper.xml @@ -499,4 +499,21 @@ and m.id=#{merchantId} + +