server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -33,6 +33,7 @@ public static final String HK_TOKEN_VALIDITY = "HK_TOKEN_VALIDITY"; public static final String[] ALL_SPELL_LIST_FIRST = new String[]{"A", "B", "C", "D", "E", "F", "G","H","I","J","K","L","M","N","O","P","Q","R","S","T","U","V","W","X","Y","Z"}; public static final int ZERO = 0 ; public static final int SIX = 6 ; public static final int ONE = 1 ; public static final int TWO = 2 ; public static final String HK_PARAM ="HK_PARAM" ; @@ -209,6 +210,19 @@ public static final int depart = 3; public static final int custom = 4; public static final int self = -1; } public interface BillPayStatus{ //è®¿å®¢ç¶æ(0:æªç¾å°,1:å·²ç¾å°,2:å·²ç¾é,3:æ»ç,4:æªè®¿é®,5:èªå¨ç¾ç¦»,6:æªç¾é) int waitSign = 0; int signin= 1; int signout = 2; int noleave =3; int novisit =4; int autoOut =5; int noSignout =6; } /** @@ -477,6 +491,14 @@ } //ä¿ç两ä½å°æ°ä¸åèäºå ¥ d = d.setScale(4, BigDecimal.ROUND_HALF_UP); return d; } public static BigDecimal formatBigdecimal0Float(BigDecimal d) { if (d == null) { d = new BigDecimal(0.0); } //ä¿ç两ä½å°æ°ä¸åèäºå ¥ d = d.setScale(0, BigDecimal.ROUND_HALF_UP); return d; } public static BigDecimal formatBigdecimal2Float(BigDecimal d) { @@ -1226,6 +1248,7 @@ FN_DEVICE_FILE(5, "é宿å¡å¹³å°è®¾å¤ç±»åå¾ç ", "é宿å¡å¹³å°è®¾å¤ç±»åå¾ç "), FN_DEVICE_RECORD_FILE(6, "é宿å¡å¹³å°è¿ç»´è®°å½å¾ç ", "é宿å¡å¹³å°è¿ç»´è®°å½å¾ç "), FN_PATROL_POINT_FILE(7, "å·¡æ£ç¹éä»¶ ", "å·¡æ£ç¹éä»¶ "), FN_CONTRACT_BILL_FILE(8, "ååè´¦åéä»¶ ", "ååè´¦åéä»¶ "), ; // æååé private String name; server/system_service/src/main/java/com/doumee/core/utils/DateCompare.java
¶Ô±ÈÐÂÎļþ @@ -0,0 +1,117 @@ package com.doumee.core.utils; import lombok.Builder; import lombok.Data; import org.apache.commons.lang3.StringUtils; import java.math.BigDecimal; import java.math.RoundingMode; import java.sql.Timestamp; import java.text.DateFormat; import java.text.DateFormatSymbols; import java.text.ParseException; import java.text.SimpleDateFormat; import java.time.*; import java.time.temporal.ChronoUnit; import java.time.temporal.TemporalAdjusters; import java.util.Date; import java.util.*; /** * æ¥æå·¥å ·ç±» * @author: jiangping * @date: 2021å¹´7æ21æ¥09:27:13 */ @Builder @Data public class DateCompare { private int year; private int month; private int day; private BigDecimal yearFloat; private BigDecimal monthFloat; private int yearDays ; private int monthDays ; /** * 计ç®2ä¸ªæ¥æä¹é´ç¸å·®ç 以年ãæãæ¥ä¸ºåä½ï¼åèªè®¡ç®ç»ææ¯å¤å° * æ¯å¦ï¼2011-02-02 å° 2017-03-02 * 以年为åä½ç¸å·®ä¸ºï¼6å¹´ * 以æä¸ºåä½ç¸å·®ä¸ºï¼73个æ * 以æ¥ä¸ºåä½ç¸å·®ä¸ºï¼2220天 * @param fromDate * @param toDate * @return */ public static DateCompare dayCompare(Date fromDate,Date toDate,Date freeStart,Date freeEnd){ //å¼å§æ¶é´å¾å延伸ï¼é¤å»æææ¶æ fromDate = DateUtil.addDaysToDate(fromDate,getIntersectingDays(fromDate,toDate,freeStart,freeEnd)); if(toDate.getTime()<= fromDate.getTime()){ return DateCompare.builder().day(0).month(0).year(0).yearFloat(new BigDecimal(0)).monthFloat(new BigDecimal(0)).build(); } Calendar from = Calendar.getInstance(); from.setTime(fromDate); Calendar to = Calendar.getInstance(); to.setTime(toDate); //åªè¦å¹´æ int fromYear = from.get(Calendar.YEAR); int fromMonth = from.get(Calendar.MONTH); int toYear = to.get(Calendar.YEAR); int toMonth = to.get(Calendar.MONTH); int year = toYear - fromYear; int month = toYear * 12 + toMonth - (fromYear * 12 + fromMonth); int day = (int) ((to.getTimeInMillis() - from.getTimeInMillis()) / (24 * 3600 * 1000)); BigDecimal yearFloat = new BigDecimal(year) ; BigDecimal monthFloat = new BigDecimal(month) ; int yearDays = day - DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate) ; if(yearDays>0){ yearFloat = yearFloat.add(new BigDecimal(yearDays).divide(new BigDecimal(365), 2,RoundingMode.FLOOR)); } int monthDays = day - DateUtil.daysBetweenDates(DateUtil.addMonthToDate(fromDate,month),fromDate) ; if(monthDays>0){ monthFloat = monthFloat.add(new BigDecimal(monthDays).divide(new BigDecimal(30), 2,RoundingMode.FLOOR)); } return DateCompare.builder().day(day).month(month).year(year).yearFloat(yearFloat).monthFloat(monthFloat).yearDays(yearDays).monthDays(monthDays).build(); } public static DateCompare monthYearCompare(Date fromDate,Date toDate ){ //å¼å§æ¶é´å¾å延伸ï¼é¤å»æææ¶æ Calendar from = Calendar.getInstance(); from.setTime(fromDate); Calendar to = Calendar.getInstance(); to.setTime(toDate); //åªè¦å¹´æ int fromYear = from.get(Calendar.YEAR); int fromMonth = from.get(Calendar.MONTH); int toYear = to.get(Calendar.YEAR); int toMonth = to.get(Calendar.MONTH); int year = toYear - fromYear; int month = toYear * 12 + toMonth - (fromYear * 12 + fromMonth); int day = (int) ((to.getTimeInMillis() - from.getTimeInMillis()) / (24 * 3600 * 1000)); BigDecimal yearFloat = new BigDecimal(year) ; BigDecimal monthFloat = new BigDecimal(month) ; int yearDays = day - DateUtil.daysBetweenDates(DateUtil.addYearToDate(fromDate,year),fromDate) ; if(yearDays>0){ yearFloat = yearFloat.add(new BigDecimal(yearDays).divide(new BigDecimal(365), 2,RoundingMode.FLOOR)); } int monthDays = day - DateUtil.daysBetweenDates(DateUtil.addMonthToDate(fromDate,month),fromDate) ; if(monthDays>0){ monthFloat = monthFloat.add(new BigDecimal(monthDays).divide(new BigDecimal(30), 2,RoundingMode.FLOOR)); } return DateCompare.builder().day(day).month(month).year(year).yearFloat(yearFloat).monthFloat(monthFloat).yearDays(yearDays).monthDays(monthDays).build(); } public static int getIntersectingDays(Date start1, Date end1, Date start2, Date end2) { Date earlierStart = DateUtil.daysBetweenDates(start1,start2)>0? start1 : start2; Date laterEnd = DateUtil.daysBetweenDates(end2,end1)>0 ? end1 : end2; int days =DateUtil.daysBetweenDates(laterEnd,earlierStart ); return days>0?days:0 ; } } server/system_service/src/main/java/com/doumee/core/utils/DateUtil.java
@@ -3055,6 +3055,18 @@ calendar.add(Calendar.DATE, days);// return calendar.getTime(); } public static Date addYearToDate(Date date, int yeas) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.YEAR, yeas);// return calendar.getTime(); } public static Date addMonthToDate(Date date, int num) { Calendar calendar = Calendar.getInstance(); calendar.setTime(date); calendar.add(Calendar.MONTH, num);// return calendar.getTime(); } public static String afterDateToStr(Integer days){ Date date = new Date(); server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/MemberCloudController.java
@@ -382,7 +382,7 @@ @CloudRequiredPermission("business:member:create") public ApiResponse ywCreate(@RequestBody Member member,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { member.setLoginUserInfo(this.getLoginUser(token)); memberService.create(member); memberService.ywCreate(member); return ApiResponse.success("æä½æåï¼"); } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwCustomerCloudController.java
@@ -90,6 +90,6 @@ @GetMapping("/{id}") @CloudRequiredPermission("business:ywcustomer:query") public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywCustomerService.findById(id)); return ApiResponse.success(ywCustomerService.getDetail(id)); } } server/visits/dmvisit_admin/src/main/java/com/doumee/cloud/admin/YwFloorCloudController.java
@@ -43,7 +43,7 @@ @ApiOperation("æ ¹æ®IDå é¤") @GetMapping("/delete/{id}") @RequiresPermissions("business:ywfloor:delete") @CloudRequiredPermission("business:ywfloor:delete") public ApiResponse deleteById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywFloorService.deleteById(id,this.getLoginUser(token)); return ApiResponse.success(null); @@ -51,7 +51,7 @@ @ApiOperation("æ¹éå é¤") @GetMapping("/delete/batch") @RequiresPermissions("business:ywfloor:delete") @CloudRequiredPermission("business:ywfloor:delete") public ApiResponse deleteByIdInBatch(@RequestParam String ids,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { String [] idArray = ids.split(","); List<Integer> idList = new ArrayList<>(); @@ -64,7 +64,7 @@ @ApiOperation("æ ¹æ®IDä¿®æ¹") @PostMapping("/updateById") @RequiresPermissions("business:ywfloor:update") @CloudRequiredPermission("business:ywfloor:update") public ApiResponse updateById(@RequestBody YwFloor ywFloor,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { ywFloor.setLoginUserInfo(this.getLoginUser(token)); ywFloorService.updateById(ywFloor); @@ -73,7 +73,7 @@ @ApiOperation("å页æ¥è¯¢") @PostMapping("/page") @RequiresPermissions("business:ywfloor:query") @CloudRequiredPermission("business:ywfloor:query") public ApiResponse<PageData<YwFloor>> findPage (@RequestBody PageWrap<YwFloor> pageWrap,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token)); return ApiResponse.success(ywFloorService.findPage(pageWrap)); @@ -81,7 +81,7 @@ @ApiOperation("导åºExcel") @PostMapping("/exportExcel") @RequiresPermissions("business:ywfloor:exportExcel") @CloudRequiredPermission("business:ywfloor:exportExcel") public void exportExcel (@RequestBody PageWrap<YwFloor> pageWrap, HttpServletResponse response,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { pageWrap.getModel().setLoginUserInfo(this.getLoginUser(token)); ExcelExporter.build(YwFloor.class).export(ywFloorService.findPage(pageWrap).getRecords(), "è¿ç»´æ¥¼å±ä¿¡æ¯è¡¨", response); @@ -89,7 +89,7 @@ @ApiOperation("æ ¹æ®IDæ¥è¯¢") @GetMapping("/{id}") @RequiresPermissions("business:ywfloor:query") @CloudRequiredPermission("business:ywfloor:query") public ApiResponse findById(@PathVariable Integer id,@RequestHeader(Constants.HEADER_USER_TOKEN) String token) { return ApiResponse.success(ywFloorService.findById(id)); } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/Member.java
@@ -64,7 +64,7 @@ @ApiModelProperty(value = "ç±»å 0叿ºäººå 1æ®é访客 2å é¨äººå 3客æ·è系人", example = "1") private Integer type; @ApiModelProperty(value = "身份 0èæ¿ 1è¶ çº§ç®¡çå 2åå·¥", example = "1") @ApiModelProperty(value = "身份 0èæ¿/è¶ çº§ç®¡çå 1人äº/管çå 2åå·¥/æ®éåå·¥", example = "1") @ExcelColumn(name="身份 0èæ¿ 1è¶ çº§ç®¡çå 2åå·¥") private Integer highCheckor; @@ -130,7 +130,8 @@ private int memberCardCount; @ExcelColumn(name="å·¥å·",index = 18,width = 8) private String code; @ApiModelProperty(value = "访客年é¾") @ApiModelProperty(value = "çæ¥") @JsonFormat(pattern = "yyyy-MM-dd") private Date birthday; @@ -305,4 +306,10 @@ @ApiModelProperty(value = "æ¯å¦æ¥è¯¢åºå®äººåï¼0=å¦ï¼1=æ¯" ) @TableField(exist = false) private Integer querySpecial; @ApiModelProperty(value = "客æ·åç§°", example = "1") @TableField(exist = false) private String customerName; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContract.java
@@ -36,7 +36,6 @@ @ApiModelProperty(value = "å建æ¶é´") @ExcelColumn(name="å建æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date createDate; @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") @@ -45,7 +44,6 @@ @ApiModelProperty(value = "æ´æ°æ¶é´") @ExcelColumn(name="æ´æ°æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date editDate; @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") @@ -56,8 +54,8 @@ @ExcelColumn(name="夿³¨") private String remark; @ApiModelProperty(value = "ç¶æ 0æ£å¸¸ 1æå 2æ¥åº", example = "1") @ExcelColumn(name="ç¶æ 0æ£å¸¸ 1æå 2æ¥åº") @ApiModelProperty(value = "ç¶æ 0å¾ æ§è¡ 1æ§è¡ä¸ 2已尿 3å·²éç§", example = "1") @ExcelColumn(name="ç¶æ 0å¾ æ§è¡ 1æ§è¡ä¸ 2已尿 3å·²éç§") private Integer status; @ApiModelProperty(value = "ç±»å 0ç©ä¸ç§èµ 1ç©ä¸ 2ç§èµ", example = "1") @@ -66,7 +64,7 @@ @ApiModelProperty(value = "ç¼å·", example = "1") @ExcelColumn(name="ç¼å·") private Integer code; private String code; @ApiModelProperty(value = "ç»å人ç¼ç (å ³èsystem_user)", example = "1") @ExcelColumn(name="ç»å人ç¼ç (å ³èsystem_user)") @@ -74,17 +72,14 @@ @ApiModelProperty(value = "ç¾è®¢æ¥æ") @ExcelColumn(name="ç¾è®¢æ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date signDate; @ApiModelProperty(value = "å¼å§æ¥æ") @ExcelColumn(name="å¼å§æ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date startDate; @ApiModelProperty(value = "ç»ææ¥æ") @ExcelColumn(name="ç»ææ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date endDate; @ApiModelProperty(value = "项ç®ç¼ç ï¼å ³èyw_project)", example = "1") @@ -117,12 +112,10 @@ @ApiModelProperty(value = "ç§èµå ç§æå¼å§æ¥æ") @ExcelColumn(name="ç§èµå ç§æå¼å§æ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date zlFreeStartDate; @ApiModelProperty(value = "ç§èµå ç§æç»ææ¥æ") @ExcelColumn(name="ç§èµå ç§æç»ææ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date zlFreeEndDate; @ApiModelProperty(value = "ç©ä¸æ¼éï¼å ï¼", example = "1") @@ -135,17 +128,16 @@ @ApiModelProperty(value = "ç©ä¸å ç§æå¼å§æ¥æ") @ExcelColumn(name="ç©ä¸å ç§æå¼å§æ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date wyFreeStartDate; @ApiModelProperty(value = "ç©ä¸å ç§æç»ææ¥æ") @ExcelColumn(name="ç©ä¸å ç§æç»ææ¥æ") @JsonFormat(pattern = "yyyy-MM-dd") private Date wyFreeEndDate; @ApiModelProperty(value = "ç§èµæ»éé¢", example = "1") @ExcelColumn(name="ç§èµæ»éé¢") private BigDecimal zlTotalFee; @ApiModelProperty(value = "ç©ä¸è´¹æ»éé¢", example = "1") @ExcelColumn(name="ç©ä¸è´¹æ»éé¢") @@ -154,5 +146,29 @@ @ApiModelProperty(value = "éä»¶éå") @TableField(exist = false) private List<Multifile> fileList; @ApiModelProperty(value = "æ¿æºç¼ç éå") @TableField(exist = false) private List<Integer> roomIds; @ApiModelProperty(value = "ç§èµæ¡æ¬¾éå") @TableField(exist = false) private List<YwContractDetail> zlDetailList; @ApiModelProperty(value = "æ¿æºå¯¹è±¡éå") @TableField(exist = false) private List<YwRoom> roomList; @ApiModelProperty(value = "å ¬å¸åç§°") @TableField(exist = false) private String companyName; @ApiModelProperty(value = "ç§èµæ»é¢ç§¯", example = "1") @TableField(exist = false) private BigDecimal totalArea; @ApiModelProperty(value = "ç©ä¸æ¡æ¬¾éå") @TableField(exist = false) private List<YwContractDetail> wyDetailList; @ApiModelProperty(value = "éæ°å¼å§æ¶é´") @TableField(exist = false) private Date queryStartTime; @ApiModelProperty(value = "æ¥è¯¢ç»ææ¶é´") @TableField(exist = false) private Date queryEndTime; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractBill.java
@@ -1,7 +1,10 @@ package com.doumee.dao.business.model; import com.baomidou.mybatisplus.annotation.TableField; import com.doumee.core.annotation.excel.ExcelColumn; import com.doumee.core.model.LoginUserModel; import com.doumee.core.utils.Constants; import com.doumee.dao.system.model.Multifile; import io.swagger.annotations.ApiModel; import io.swagger.annotations.ApiModelProperty; import com.baomidou.mybatisplus.annotation.IdType; @@ -11,6 +14,7 @@ import com.fasterxml.jackson.annotation.JsonFormat; import java.util.Date; import java.math.BigDecimal; import java.util.List; /** * è¿ç»´ååè´¦åä¿¡æ¯è¡¨ @@ -33,7 +37,6 @@ @ApiModelProperty(value = "å建æ¶é´") @ExcelColumn(name="å建æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date createDate; @ApiModelProperty(value = "æ´æ°äººç¼ç ", example = "1") @@ -42,7 +45,6 @@ @ApiModelProperty(value = "æ´æ°æ¶é´") @ExcelColumn(name="æ´æ°æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date editDate; @ApiModelProperty(value = "æ¯å¦å é¤0å¦ 1æ¯", example = "1") @@ -52,20 +54,40 @@ @ApiModelProperty(value = "夿³¨") @ExcelColumn(name="夿³¨") private String remark; @ApiModelProperty(value = "ç¶æ 0æªå¼å§ï¼1è¿è¡ä¸ï¼2已宿ï¼", example = "1") @ExcelColumn(name="ç¶æ 0æªå¼å§ï¼1è¿è¡ä¸ï¼2已宿ï¼") @ApiModelProperty(value = "è´¦ååç§°") @ExcelColumn(name="è´¦ååç§°") private String title; @ApiModelProperty(value = "ç±»å 0ç§èµæ¡æ¬¾ 1ç©ä¸æ¡æ¬¾ 2ç§èµæ¼é 3ç©ä¸æ¼é", example = "1") @ExcelColumn(name="ç±»å 0ç§èµæ¡æ¬¾ 1ç©ä¸æ¡æ¬¾ 2ç§èµæ¼é 3ç©ä¸æ¼é") private Integer type; @ApiModelProperty(value = "ç¶æ 0å¼å§ï¼1å ³éï¼", example = "1") @ExcelColumn(name="ç¶æ 0å¼å§ï¼1å ³éï¼") private Integer status; @ApiModelProperty(value = "å¼å§æ¶é´") @ExcelColumn(name="å¼å§æ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date startDate; @ApiModelProperty(value = "å®é 仿¬¾æ¥") @ExcelColumn(name="å®é 仿¬¾æ¥") private Date actPayDate; @ApiModelProperty(value = "计å仿¬¾æ¥") @ExcelColumn(name="计å仿¬¾æ¥") private Date planPayDate; @ApiModelProperty(value = "ç»ææ¶é´") @ExcelColumn(name="ç»ææ¶é´") @JsonFormat(pattern = "yyyy-MM-dd") private Date endDate; @ApiModelProperty(value = "计å仿¬¾æ¥") @ExcelColumn(name="计å仿¬¾æ¥") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date planPayData; @ApiModelProperty(value = "å®é 仿¬¾æ¥") @ExcelColumn(name="å®é 仿¬¾æ¥") @JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss") private Date actPayData; @ApiModelProperty(value = "ååæ¡æ¬¾ç¼ç ï¼å ³èyw_contract_detail)", example = "1") @ExcelColumn(name="ååæ¡æ¬¾ç¼ç ï¼å ³èyw_contract_detail)") @@ -83,4 +105,41 @@ @ExcelColumn(name="æ»éé¢") private BigDecimal totleFee; @ApiModelProperty(value = "è´¹ç¨ç±»åï¼0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=æ¼éï¼3=ä¿è¯éï¼4=æ°´çµè´¹ï¼5=æé¡¹è´¹ï¼6=å ¶ä»", example = "1") @ExcelColumn(name="è´¹ç¨ç±»åï¼0=ç§èµè´¹ï¼1=ç©ä¸è´¹ï¼2=æ¼éï¼3=ä¿è¯éï¼4=æ°´çµè´¹ï¼5=æé¡¹è´¹ï¼6=å ¶ä»") private Integer costType; @ApiModelProperty(value = "è´¦åç±»åï¼0=æ¶æ¬¾ï¼1=仿¬¾", example = "1") @ExcelColumn(name="è´¦åç±»åï¼0=æ¶æ¬¾ï¼1=仿¬¾") private Integer billType; @ApiModelProperty(value = "æå±å ¬å¸", example = "1") @ExcelColumn(name="æå±å ¬å¸") private Integer companyId; @ApiModelProperty(value = "仿¬¾ç¶æï¼0=å¾ æ¶æ¬¾ï¼1=å·²ç»æ¸ ï¼2=é¨åç»æ¸ ï¼3=å¾ ä»æ¬¾") @ExcelColumn(name="仿¬¾ç¶æï¼0=å¾ æ¶æ¬¾ï¼1=å·²ç»æ¸ ï¼2=é¨åç»æ¸ ï¼3=å¾ ä»æ¬¾") private Integer payStatus; @ApiModelProperty(value = "客æ·åç§°ï¼ä»æ¬¾æ¹ï¼", example = "1") @TableField(exist = false) private String customerName; @ApiModelProperty(value = "åååç§°", example = "1") @TableField(exist = false) private String contractName; @ApiModelProperty(value = "å ¬å¸åç§°", example = "1") @TableField(exist = false) private String companyName; @ApiModelProperty(value = "éä»¶ä¿¡æ¯", example = "1") @TableField(exist = false) private List<Multifile> multifileList; @ApiModelProperty(value = "éä»¶ä¿¡æ¯", example = "1") @TableField(exist = false) private List<YwContractRoom> ywContractRoomList; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractDetail.java
@@ -86,6 +86,9 @@ @ApiModelProperty(value = "æåºç ", example = "1") @ExcelColumn(name="æåºç ") private Integer sortnum; @ApiModelProperty(value = "ç±»å 0ç§èµæ¡æ¬¾ 1ç©ä¸æ¡æ¬¾", example = "1") @ExcelColumn(name="ç±»å 0ç§èµæ¡æ¬¾ 1ç©ä¸æ¡æ¬¾") private Integer type; @ApiModelProperty(value = "æ»éé¢", example = "1") @ExcelColumn(name="æ»éé¢") server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwContractRoom.java
@@ -56,10 +56,14 @@ @ExcelColumn(name="æ¿æºç¼ç ï¼å ³èyw_room)") private Integer roomId; @ApiModelProperty(value = "ååç¼ç ï¼å ³èyw_contract)", example = "1") @ExcelColumn(name="ååç¼ç ï¼å ³èyw_contract)") @ApiModelProperty(value = "ååç¼ç æè´¦åç¼ç ï¼å ³èyw_contract)", example = "1") @ExcelColumn(name="ååç¼ç æè´¦åç¼ç ï¼å ³èyw_contract)") private Integer contractId; @ApiModelProperty(value = "å ³èç±»åï¼0=ååï¼1=ååè´¦å", example = "1") @ExcelColumn(name="å ³èç±»åï¼0=ååï¼1=ååè´¦å") private Integer type; @ApiModelProperty(value = "æåºç ", example = "1") @ExcelColumn(name="æåºç ") private Integer sortnum; server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwCustomer.java
@@ -154,4 +154,8 @@ @ApiModelProperty(value = "åå·¥åç§°") @TableField(exist = false) private String memberName; @ApiModelProperty(value = "è系人çµè¯") @TableField(exist = false) private String memberPhone; } server/visits/dmvisit_service/src/main/java/com/doumee/dao/business/model/YwFloor.java
@@ -53,6 +53,11 @@ @ExcelColumn(name="åç§°") private String name; @ApiModelProperty(value = "ç¼ç ") @ExcelColumn(name="ç¼ç ") private String code; @ApiModelProperty(value = "夿³¨") @ExcelColumn(name="夿³¨") private String remark; server/visits/dmvisit_service/src/main/java/com/doumee/service/business/YwCustomerService.java
@@ -64,6 +64,7 @@ */ YwCustomer findById(Integer id); YwCustomer getDetail(Integer id); /** * æ¡ä»¶æ¥è¯¢åæ¡è®°å½ * server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/MemberServiceImpl.java
@@ -2197,6 +2197,9 @@ Utils.MP.blankToNull(pageWrap.getModel()); Member model = pageWrap.getModel(); IPage iPage = memberMapper.selectJoinPage(page,Member.class,new MPJLambdaWrapper<Member>() .selectAll(Member.class) .selectAs(YwCustomer::getName,Member::getCustomerName) .leftJoin(YwCustomer.class,YwCustomer::getId,Member::getCustomerId) .eq(Member::getIsdeleted,Constants.ZERO) .eq(Member::getType,Constants.memberType.customer) .eq(Objects.nonNull(model)&&Objects.nonNull(model.getCustomerId()),Member::getCustomerId,model.getCustomerId()) server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwBuildingServiceImpl.java
@@ -126,7 +126,7 @@ .leftJoin(YwProject.class,YwProject::getId,YwBuilding::getProjectId); Utils.MP.blankToNull(pageWrap.getModel()); pageWrap.getModel().setIsdeleted(Constants.ZERO); queryWrapper.select("*,(select count(1) from yw_room a where a.isdeleted=0 and a.BUILDING_ID=t.id) as roomNum"+ queryWrapper.select(" (select count(1) from yw_room a where a.isdeleted=0 and a.BUILDING_ID=t.id) as roomNum "+ ",(select count(1) from yw_room a where a.isdeleted=0 and a.BUILDING_ID=t.id and a.IS_INVESTMENT=1) as roomRentNum"); if (pageWrap.getModel().getId() != null) { queryWrapper.eq(YwBuilding::getId, pageWrap.getModel().getId()); server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractBillServiceImpl.java
@@ -1,21 +1,32 @@ package com.doumee.service.business.impl; import com.doumee.core.constants.ResponseStatus; import com.doumee.core.exception.BusinessException; import com.doumee.core.model.LoginUserInfo; import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.Utils; import com.doumee.dao.business.YwContractBillMapper; import com.doumee.dao.business.YwContractRoomMapper; import com.doumee.dao.business.model.YwContractBill; import com.doumee.dao.business.model.YwContractRoom; import com.doumee.dao.system.MultifileMapper; import com.doumee.dao.system.model.Multifile; import com.doumee.service.business.YwContractBillService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.util.CollectionUtils; import java.math.BigDecimal; import java.util.Date; import java.util.List; import java.util.Objects; /** * è¿ç»´ååè´¦åä¿¡æ¯è¡¨Serviceå®ç° @@ -28,9 +39,65 @@ @Autowired private YwContractBillMapper ywContractBillMapper; @Autowired private YwContractRoomMapper ywContractRoomMapper; @Autowired private MultifileMapper multifileMapper; @Override public Integer create(YwContractBill ywContractBill) { if(Objects.isNull(ywContractBill) || Objects.isNull(ywContractBill.getContractId()) || Objects.isNull(ywContractBill.getTotleFee()) || Objects.isNull(ywContractBill.getPlanPayData()) || Objects.isNull(ywContractBill.getCostType()) || Objects.isNull(ywContractBill.getBillType()) || Objects.isNull(ywContractBill.getCompanyId()) || Objects.isNull(ywContractBill.getStartDate()) || Objects.isNull(ywContractBill.getEndDate()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } LoginUserInfo loginUserInfo = ywContractBill.getLoginUserInfo(); ywContractBill.setCreateDate(new Date()); ywContractBill.setCreator(loginUserInfo.getId()); ywContractBill.setIsdeleted(Constants.ZERO); ywContractBill.setStatus(Constants.ZERO); ywContractBillMapper.insert(ywContractBill); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractBill.getYwContractRoomList())){ for (YwContractRoom ywContractRoom:ywContractBill.getYwContractRoomList()) { if(Objects.isNull(ywContractRoom) || Objects.isNull(ywContractRoom.getRoomId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"è¯·éæ©æ¿æºæ°æ®"); } ywContractRoom.setCreateDate(new Date()); ywContractRoom.setCreator(loginUserInfo.getId()); ywContractRoom.setIsdeleted(Constants.ZERO); ywContractRoom.setContractId(ywContractBill.getId()); ywContractRoom.setType(Constants.ONE); } ywContractRoomMapper.insert(ywContractBill.getYwContractRoomList()); } if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractBill.getMultifileList())){ for (Multifile multifile:ywContractBill.getMultifileList()) { if(Objects.isNull(multifile) || StringUtils.isBlank(multifile.getFileurl()) || StringUtils.isBlank(multifile.getName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"éä»¶ä¿¡æ¯é误"); } multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); multifile.setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey()); multifile.setObjId(ywContractBill.getId()); } multifileMapper.insert(ywContractBill.getMultifileList()); } return ywContractBill.getId(); } @@ -55,7 +122,61 @@ @Override public void updateById(YwContractBill ywContractBill) { ywContractBillMapper.updateById(ywContractBill); if(Objects.isNull(ywContractBill) || Objects.isNull(ywContractBill.getId()) || Objects.isNull(ywContractBill.getContractId()) || Objects.isNull(ywContractBill.getTotleFee()) || Objects.isNull(ywContractBill.getPlanPayData()) || Objects.isNull(ywContractBill.getCostType()) || Objects.isNull(ywContractBill.getBillType()) || Objects.isNull(ywContractBill.getCompanyId()) || Objects.isNull(ywContractBill.getStartDate()) || Objects.isNull(ywContractBill.getEndDate()) || ywContractBill.getTotleFee().compareTo(BigDecimal.ZERO)<=Constants.ZERO ){ throw new BusinessException(ResponseStatus.BAD_REQUEST); } LoginUserInfo loginUserInfo = ywContractBill.getLoginUserInfo(); ywContractBill.setEditDate(new Date()); ywContractBill.setEditor(loginUserInfo.getId()); if(Constants.equalsInteger(ywContractBill.getBillType(),Constants.ZERO)){ ywContractBill.setPayStatus(Constants.ZERO); }else{ ywContractBill.setPayStatus(Constants.THREE); } ywContractBillMapper.insert(ywContractBill); if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractBill.getYwContractRoomList())){ for (YwContractRoom ywContractRoom:ywContractBill.getYwContractRoomList()) { if(Objects.isNull(ywContractRoom) || Objects.isNull(ywContractRoom.getRoomId())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"è¯·éæ©æ¿æºæ°æ®"); } ywContractRoom.setCreateDate(new Date()); ywContractRoom.setCreator(loginUserInfo.getId()); ywContractRoom.setIsdeleted(Constants.ZERO); ywContractRoom.setContractId(ywContractBill.getId()); ywContractRoom.setType(Constants.ONE); } ywContractRoomMapper.insert(ywContractBill.getYwContractRoomList()); } if(com.github.xiaoymin.knife4j.core.util.CollectionUtils.isNotEmpty(ywContractBill.getMultifileList())){ for (Multifile multifile:ywContractBill.getMultifileList()) { if(Objects.isNull(multifile) || StringUtils.isBlank(multifile.getFileurl()) || StringUtils.isBlank(multifile.getName())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"éä»¶ä¿¡æ¯é误"); } multifile.setCreator(loginUserInfo.getId()); multifile.setCreateDate(new Date()); multifile.setIsdeleted(Constants.ZERO); multifile.setObjType(Constants.MultiFile.FN_PATROL_POINT_FILE.getKey()); multifile.setObjId(ywContractBill.getId()); } multifileMapper.insert(ywContractBill.getMultifileList()); } } @Override server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwContractServiceImpl.java
@@ -6,27 +6,32 @@ import com.doumee.core.model.PageData; import com.doumee.core.model.PageWrap; import com.doumee.core.utils.Constants; import com.doumee.core.utils.DateCompare; import com.doumee.core.utils.DateUtil; import com.doumee.core.utils.Utils; import com.doumee.dao.business.YwContractMapper; import com.doumee.dao.business.YwCustomerMapper; import com.doumee.dao.business.YwProjectMapper; import com.doumee.dao.business.YwRoomMapper; import com.doumee.dao.business.*; import com.doumee.dao.business.dao.CompanyMapper; import com.doumee.dao.business.model.Company; import com.doumee.dao.business.model.YwContract; import com.doumee.dao.business.model.*; import com.doumee.dao.system.MultifileMapper; import com.doumee.dao.system.SystemUserMapper; import com.doumee.dao.system.model.Multifile; import com.doumee.dao.system.model.SystemUser; import com.doumee.service.business.YwContractService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.github.yulichang.wrapper.MPJLambdaWrapper; import org.apache.commons.lang3.StringUtils; import org.checkerframework.checker.units.qual.C; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.util.CollectionUtils; import java.util.Date; import java.util.List; import java.math.BigDecimal; import java.time.temporal.ChronoUnit; import java.util.*; /** * è¿ç»´ååä¿¡æ¯è¡¨Serviceå®ç° @@ -39,6 +44,12 @@ @Autowired private YwContractMapper ywContractMapper; @Autowired private YwContractDetailMapper ywContractDetailMapper; @Autowired private YwContractBillMapper ywContractBillMapper; @Autowired private MultifileMapper multifileMapper; @Autowired private CompanyMapper companyMapper; @Autowired private YwProjectMapper projectMapper; @@ -48,6 +59,8 @@ private SystemUserMapper systemUserMapper; @Autowired private YwCustomerMapper customerMapper; @Autowired private MemberMapper memberMapper; @Override @Transactional(rollbackFor = {BusinessException.class,Exception.class}) @@ -60,20 +73,490 @@ model.setStatus(Constants.ZERO); model.setEditDate(model.getCreateDate()); model.setEditor(model.getCreator()); model.setStatus(Constants.ZERO);//å¾ æ§è¡ ywContractMapper.insert(model); dealDetailListBiz(model);//å¤çæ¡æ¬¾ä¿¡æ¯ dealMultifileBiz(model);//å¤çéä»¶ä¿¡æ¯ return model.getId(); } private void isParamValidCreated(YwContract model) { if(model.getCompanyId()==null){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®çå ¬å¸ä¿¡æ¯"); private void dealDetailListBiz(YwContract model) { List<YwContractDetail> details = new ArrayList<>(); int num = 0; if(Constants.equalsInteger(model.getType(),Constants.ZERO ) || Constants.equalsInteger(model.getType(),Constants.ONE)){ for(YwContractDetail d :model.getZlDetailList()){ d.setCreateDate(model.getEditDate()); d.setCreator(model.getEditor()); d.setIsdeleted(Constants.ZERO); d.setContractId(model.getId()); d.setType(Constants.ZERO); d.setSortnum(num++); d.setStatus(Constants.ZERO); details.add(d); } } Company ywProject = companyMapper.selectById(model.getCompanyId()); if(ywProject ==null || Constants.equalsInteger(ywProject.getIsdeleted(),Constants.ONE) || !Constants.equalsInteger(ywProject.getType(),Constants.TWO)){ num = 0; if(Constants.equalsInteger(model.getType(),Constants.ZERO ) || Constants.equalsInteger(model.getType(),Constants.TWO)){ for(YwContractDetail d :model.getWyDetailList()){ d.setCreateDate(model.getEditDate()); d.setCreator(model.getEditor()); d.setIsdeleted(Constants.ZERO); d.setType(Constants.ONE); d.setContractId(model.getId()); d.setSortnum(num++); d.setStatus(Constants.ZERO); details.add(d); } } ywContractDetailMapper.insert(details);//æ¹éæå ¥æ¡æ¬¾ä¿¡æ¯ä¿¡æ¯ //å¤çè´¦åä¿¡æ¯ dealBillListBiz(model,details); } /** * æ¯ä»æ¹å¼ 0=䏿¬¡æ§ä»æ¬¾ï¼1=æ¯ä¸ä¸ªæä¸ä»ï¼2=å 个æä¸ä»ï¼3=ä¸å¹´ä¸ä» * @param model * @param details */ private void dealBillListBiz(YwContract model, List<YwContractDetail> details) { List<YwContractBill> billList = new ArrayList<>(); if(Constants.equalsInteger(model.getType(),Constants.ZERO ) || Constants.equalsInteger(model.getType(),Constants.ONE)){ //妿æç§èµæ¡æ¬¾ if(Constants.formatBigdecimal(model.getZlDeposit()).compareTo(new BigDecimal(0))>0){ //妿æç§èµæ¼é billList.add(initDepoistBill(Constants.THREE,model)); } if(Constants.equalsInteger(model.getZlPayType(), Constants.ZERO)){ //妿æ¯ä¸æ¬¡æ§ä»æ¸ billList.addAll(getBillsByParamOnce(model,details,model.getZlFreeStartDate(),model.getZlFreeEndDate())); }else if(Constants.equalsInteger(model.getZlPayType(), Constants.ONE)){ //妿æ¯ä¸ä¸ªæä¸ä» billList.addAll(getBillsByParam3Months(model,details,model.getZlFreeStartDate(),model.getZlFreeEndDate())); }else if(Constants.equalsInteger(model.getZlPayType(), Constants.TWO)){ //妿å 个æä¸ä» billList.addAll(getBillsByParam6Months(model,details,model.getZlFreeStartDate(),model.getZlFreeEndDate())); }else if(Constants.equalsInteger(model.getZlPayType(), Constants.THREE)){ //妿ä¸å¹´ä¸ä» billList.addAll(getBillsByParam1Year(model,details,model.getZlFreeStartDate(),model.getZlFreeEndDate())); } } if(Constants.equalsInteger(model.getType(),Constants.ZERO ) || Constants.equalsInteger(model.getType(),Constants.TWO)){ //妿ç©ä¸æ¡æ¬¾ if(Constants.formatBigdecimal(model.getWyDeposit()).compareTo(new BigDecimal(0))>0){ //妿æç§èµæ¼é billList.add(initDepoistBill(Constants.FOUR,model)); } if(Constants.equalsInteger(model.getWyPayType(), Constants.ZERO)){ //妿æ¯ä¸æ¬¡æ§ä»æ¸ billList.addAll(getBillsByParamOnce(model,details,model.getWyFreeStartDate(),model.getWyFreeEndDate())); }else if(Constants.equalsInteger(model.getWyPayType(), Constants.ONE)){ //妿æ¯ä¸ä¸ªæä¸ä» billList.addAll(getBillsByParam3Months(model,details,model.getWyFreeStartDate(),model.getWyFreeEndDate())); }else if(Constants.equalsInteger(model.getWyPayType(), Constants.TWO)){ //妿å 个æä¸ä» billList.addAll(getBillsByParam6Months(model,details,model.getWyFreeStartDate(),model.getWyFreeEndDate())); }else if(Constants.equalsInteger(model.getWyPayType(), Constants.THREE)){ //妿ä¸å¹´ä¸ä» billList.addAll(getBillsByParam1Year(model,details,model.getWyFreeStartDate(),model.getWyFreeEndDate())); } } for(int i=0;i<billList.size();i++){ billList.get(i).setSortnum(i+1); } ywContractBillMapper.insert(billList); } private YwContractBill initDepoistBill(int type, YwContract model) { YwContractBill bill = new YwContractBill(); bill.setCreateDate(model.getEditDate()); bill.setCreator(model.getEditor()); bill.setEditDate(model.getEditDate()); bill.setEditor(model.getEditor()); bill.setIsdeleted(Constants.ZERO); bill.setContractId(model.getId()); bill.setStatus(Constants.ZERO); bill.setStartDate(model.getStartDate()); bill.setEndDate(model.getEndDate()); bill.setType(type); bill.setTotleFee(type==Constants.THREE?model.getZlDeposit():model.getWyDeposit());//æ¼éè´¹ç¨ bill.setSortnum(0); bill.setTitle(type==Constants.THREE?"ç§èµæ¼é":"ç©ä¸æ¼é" ); return bill; } /** * 妿3个æä¸ä» * 仿¬¾å¨æç±»å 0=å æ¯å¹³ç±³å¤©ï¼1=å æ¯å¹³ç±³æï¼2=å æ¯å¹³ç±³å¹´ï¼3=å æ¯å¤©ï¼4=å æ¯æï¼5=å æ¯å¹´ï¼6=å æ¯åºï¼" * @param model * @param details * @return */ private Collection<? extends YwContractBill> getBillsByParam6Months(YwContract model, List<YwContractDetail> details, Date freeStart, Date freeEnd) { List<YwContractBill> list = new ArrayList<>(); for(YwContractDetail d : details){ List<Date> dateList = getCircleDatesBy6Month(d.getStartDate(),d.getEndDate()); if(dateList.size() ==0){ continue; } dealCircleDateBillBiz(dateList,model,d,freeStart,freeEnd,list); } return list; } /** * 妿3个æä¸ä» * 仿¬¾å¨æç±»å 0=å æ¯å¹³ç±³å¤©ï¼1=å æ¯å¹³ç±³æï¼2=å æ¯å¹³ç±³å¹´ï¼3=å æ¯å¤©ï¼4=å æ¯æï¼5=å æ¯å¹´ï¼6=å æ¯åºï¼" * @param model * @param details * @return */ private Collection<? extends YwContractBill> getBillsByParam3Months(YwContract model, List<YwContractDetail> details, Date freeStart, Date freeEnd) { List<YwContractBill> list = new ArrayList<>(); for(YwContractDetail d : details){ List<Date> dateList = getCircleDatesBy3Month(d.getStartDate(),d.getEndDate()); if(dateList.size() ==0){ continue; } dealCircleDateBillBiz(dateList,model,d,freeStart,freeEnd,list); } return list; } private List<Date> getCircleDatesBy6Month(Date startDate, Date endDate) { DateCompare dateCompare = DateCompare.monthYearCompare(startDate, endDate ); int months = dateCompare.getMonth(); int monthSix = months / 6;//6个æç»´åº¦æ°é int restMonth = months % 6;//å©ä½çæ´æ int monthDays = dateCompare.getMonthDays();//䏿»¡ä¸ä¸ªæçå¤©æ° Date date = new Date(); List<Date> list = new ArrayList<>(); for (int i = 0; i < monthSix; i++) { list.add(DateUtil.addMonthToDate(date,i*6)); } if(restMonth>0 || monthDays>0){ list.add(DateUtil.addDaysToDate(date,monthSix)); } return list; } private List<Date> getCircleDatesBy3Month(Date startDate, Date endDate) { DateCompare dateCompare = DateCompare.monthYearCompare(startDate, endDate ); int months = dateCompare.getMonth(); int monthThree = months / 3;//3个æç»´åº¦æ°é int restMonth = months % 3;//å©ä½çæ´æ int monthDays = dateCompare.getMonthDays();//䏿»¡ä¸ä¸ªæçå¤©æ° Date date = new Date(); List<Date> list = new ArrayList<>(); for (int i = 0; i < monthThree; i++) { list.add(DateUtil.addMonthToDate(date,i*3)); } if(restMonth>0 || monthDays>0){ list.add(DateUtil.addDaysToDate(date,monthThree)); } return list; } /** * 妿ä¸å¹´ä¸ä» * 仿¬¾å¨æç±»å 0=å æ¯å¹³ç±³å¤©ï¼1=å æ¯å¹³ç±³æï¼2=å æ¯å¹³ç±³å¹´ï¼3=å æ¯å¤©ï¼4=å æ¯æï¼5=å æ¯å¹´ï¼6=å æ¯åºï¼" * @param model * @param details * @return */ private List<YwContractBill> getBillsByParam1Year(YwContract model, List<YwContractDetail> details,Date freeStart,Date freeEnd) { List<YwContractBill> list = new ArrayList<>(); for(YwContractDetail d : details){ List<Date> dateList = getCircleDatesByYear(d.getStartDate(),d.getEndDate()); if(dateList.size() ==0){ continue; } dealCircleDateBillBiz(dateList,model,d,freeStart,freeEnd,list); } return list; } private void dealCircleDateBillBiz( List<Date> dateList ,YwContract model, YwContractDetail d, Date freeStart, Date freeEnd, List<YwContractBill> list ) { for(Date start : dateList){ Date end = DateUtil.addDaysToDate(DateUtil.addYearToDate(start,1),-1);//ç»ææ¥æä¸ºä¸ä¸ä¸ªå¨æçåä¸å¤© if(end.getTime()> d.getEndDate().getTime() ){ end = d.getEndDate(); } YwContractBill bill = initCreateBillModel(model,d ); bill.setStartDate(start);//è´¦åå¼å§ bill.setEndDate(end);//è´¦åç»æ bill.setPlanPayDate(DateUtil.addDaysToDate(d.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1)); BigDecimal totalFee =getTotalFeeByStartEnd(model,d,freeStart,freeEnd); bill.setTotleFee(totalFee); list.add(bill); } } private BigDecimal getTotalFeeByStartEnd(YwContract model, YwContractDetail d,Date freeStart,Date freeEnd) { BigDecimal totalFee = new BigDecimal(0); DateCompare dateCompare = DateCompare.dayCompare(d.getStartDate(),d.getEndDate(),freeStart,freeEnd); if(Constants.equalsInteger(d.getCircleType(),Constants.ZERO)){ //0=å æ¯å¹³ç±³å¤© int days = dateCompare.getDay(); BigDecimal areas = getAreasNumBYRooms(model.getRoomList()); totalFee = new BigDecimal(days).multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//æ»ä»·æ ¼ }else if(Constants.equalsInteger(d.getCircleType(),Constants.ONE)){ //1=å æ¯å¹³ç±³æ BigDecimal areas = getAreasNumBYRooms(model.getRoomList()); BigDecimal month =dateCompare.getMonthFloat(); totalFee = month.multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//æ»ä»·æ ¼ }else if(Constants.equalsInteger(d.getCircleType(),Constants.TWO)){ //2=å æ¯å¹³ç±³å¹´ BigDecimal areas = getAreasNumBYRooms(model.getRoomList()); BigDecimal year = dateCompare.getYearFloat(); totalFee = year.multiply(areas).multiply(Constants.formatBigdecimal(d.getPrice()));//æ»ä»·æ ¼ }else if(Constants.equalsInteger(d.getCircleType(),Constants.THREE)){ //3=å æ¯å¤© int days = dateCompare.getDay(); totalFee = new BigDecimal(days).multiply(Constants.formatBigdecimal(d.getPrice()));//æ»ä»·æ ¼ }else if(Constants.equalsInteger(d.getCircleType(),Constants.FOUR)){ //4=å æ¯æ BigDecimal month = dateCompare.getMonthFloat(); totalFee = month.multiply(Constants.formatBigdecimal(d.getPrice()));//æ»ä»·æ ¼ }else if(Constants.equalsInteger(d.getCircleType(),Constants.FIVE)){ //5=å æ¯å¹´ BigDecimal year = dateCompare.getYearFloat(); totalFee = year.multiply(Constants.formatBigdecimal(d.getPrice()));//æ»ä»·æ ¼ }else if(Constants.equalsInteger(d.getCircleType(),Constants.SIX)){ //6=å æ¯åº totalFee =Constants.formatBigdecimal(d.getPrice()); } if(Constants.equalsInteger(model.getRoundedUp(),Constants.ONE)){ //å¦æå¼ºå¶åæ´ totalFee = Constants.formatBigdecimal0Float(totalFee); }else{ //åèäºå ¥ä¸¤ä½å°æ° totalFee = Constants.formatBigdecimal2Float(totalFee); } return totalFee; } private List<Date> getCircleDatesByYear(Date startDate, Date endDate ) { DateCompare dateCompare = DateCompare.monthYearCompare(startDate, endDate ); int years = dateCompare.getYear(); int yeardays = dateCompare.getYearDays(); Date date = new Date(); List<Date> list = new ArrayList<>(); for (int i = 0; i < years; i++) { list.add(DateUtil.addYearToDate(date,i)); } if(yeardays>0){ list.add(DateUtil.addYearToDate(date,years)); } return list; } /** * 䏿¬¡æ§ä»æ¬¾è´¦å * 仿¬¾å¨æç±»å 0=å æ¯å¹³ç±³å¤©ï¼1=å æ¯å¹³ç±³æï¼2=å æ¯å¹³ç±³å¹´ï¼3=å æ¯å¤©ï¼4=å æ¯æï¼5=å æ¯å¹´ï¼6=å æ¯åºï¼" * @param model * @param details * @return */ private List<YwContractBill> getBillsByParamOnce(YwContract model, List<YwContractDetail> details,Date freeStart,Date freeEnd) { List<YwContractBill> list = new ArrayList<>(); for(YwContractDetail d : details){ YwContractBill bill = initCreateBillModel(model,d); bill.setStartDate(d.getStartDate());//è´¦åå¼å§ bill.setEndDate(d.getEndDate());//è´¦åç»æ bill.setPlanPayDate(DateUtil.addDaysToDate(d.getStartDate(),Constants.formatIntegerNum(d.getAdvanceDays()) * -1)); bill.setTotleFee(getTotalFeeByStartEnd(model,d,freeStart,freeEnd)); list.add(bill); } return list; } private YwContractBill initCreateBillModel(YwContract model,YwContractDetail d) { YwContractBill bill = new YwContractBill(); bill.setCreateDate(model.getEditDate()); bill.setCreator(model.getEditor()); bill.setEditDate(model.getEditDate()); bill.setEditor(model.getEditor()); bill.setIsdeleted(Constants.ZERO); bill.setContractId(model.getId()); bill.setStatus(Constants.ZERO); bill.setDetailId(d.getId()); bill.setType(d.getType()); return bill; } private BigDecimal getAreasNumBYRooms(List<YwRoom> roomList) { BigDecimal data= new BigDecimal(0); for(YwRoom r :roomList){ data = data.add(Constants.formatBigdecimal(r.getArea())); } return data; } private void dealMultifileBiz(YwContract model) { List<Multifile> fileList = new ArrayList<>(); if(model.getFileList()!=null && model.getFileList().size()>0){ for (int i = 0; i < model.getFileList().size(); i++) { Multifile multifile = model.getFileList().get(i); if(StringUtils.isBlank(multifile.getFileurl())){ continue; } multifile.setCreateDate(model.getEditDate()); multifile.setCreator(model.getEditor()); multifile.setIsdeleted(Constants.ZERO); multifile.setObjId(model.getId()); multifile.setCreator(model.getCreator()); multifile.setObjType(Constants.MultiFile.YW_WORKORDER_PROBLEM.getKey()); multifile.setSortnum(i+1); fileList.add(multifile); } } if(fileList.size()>0){ multifileMapper.insert(fileList); } } private void isParamValidCreated(YwContract model) { if(model.getType()==null || model.getType()>2 || model.getType()<0 ||model.getUserId() == null ||model.getStartDate() == null ||model.getEndDate() == null ||model.getSignDate() == null ||model.getProjectId() == null ||model.getCompanyId() == null ||model.getRoundedUp() == null ||model.getRenterId() == null ||model.getMemberId() == null ||model.getRoomIds() == null ||model.getRoomIds().size() == 0 ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·æé¡µé¢è¦æ±å¡«åååä¿¡æ¯"); } if(model.getEndDate().getTime()<= model.getStartDate().getTime()){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ååæææç»ææ¶é´ä¸å¾æ©äºå¼å§æ¶é´ï¼"); } if(Constants.equalsInteger(model.getType(),Constants.ZERO ) || Constants.equalsInteger(model.getType(),Constants.ONE)){ if( model.getZlDeposit() == null ||model.getZlPayType() == null || model.getZlPayType()>3 || model.getZlPayType()<0 ||model.getZlDetailList()==null ||model.getZlDetailList().size() ==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·æé¡µé¢è¦æ±å¡«åç§èµæ¡æ¬¾ä¿¡æ¯"); } if(!(model.getZlFreeEndDate()==null && model.getZlFreeStartDate()==null) && ( (model.getZlFreeEndDate()!=null && model.getZlFreeStartDate()==null) ||(model.getZlFreeEndDate()==null && model.getZlFreeStartDate()!=null) ||model.getZlFreeEndDate().getTime()<= model.getZlFreeStartDate().getTime()) ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®çç§èµæ¡æ¬¾å ç§æä¿¡æ¯ï¼"); } for(YwContractDetail d :model.getZlDetailList()){ if( d.getStartDate() == null ||d.getEndDate() == null ||d.getPrice() == null ||d.getCircleType() == null || d.getCircleType()>6 || d.getCircleType()<0 ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·æé¡µé¢è¦æ±å¡«åç§èµæ¡æ¬¾ä¿¡æ¯!"); } if(d.getEndDate().getTime()<= d.getStartDate().getTime()){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç§èµæ¡æ¬¾æææç»ææ¶é´ä¸å¾æ©äºå¼å§æ¶é´ï¼"); } if(!Constants.equalsInteger(model.getWyPayType(),Constants.ZERO) && Constants.equalsInteger(d.getCircleType(),Constants.SIX)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç§èµæ¡æ¬¾åªæéæ©ä¸æ¬¡æ§ä»æ¬¾æ¶ï¼æè½éæ©è¯¥ææ¯åºæ¶è´¹ï¼"); } } } if(Constants.equalsInteger(model.getType(),Constants.ZERO ) || Constants.equalsInteger(model.getType(),Constants.TWO)){ if( model.getWyDeposit() == null ||model.getWyPayType() == null || model.getWyPayType()>3 || model.getWyPayType()<0 ||model.getWyDetailList()==null ||model.getWyDetailList().size() ==0 ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·æé¡µé¢è¦æ±å¡«åç©ä¸æ¡æ¬¾ä¿¡æ¯"); } if(!(model.getWyFreeEndDate()==null && model.getWyFreeStartDate()==null) && ( (model.getWyFreeEndDate()!=null && model.getWyFreeStartDate()==null) ||(model.getWyFreeEndDate()==null && model.getWyFreeStartDate()!=null) ||model.getWyFreeEndDate().getTime()<= model.getWyFreeStartDate().getTime())){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®çç©ä¸æ¡æ¬¾å ç§æä¿¡æ¯ï¼"); } for(YwContractDetail d :model.getWyDetailList()){ if( d.getStartDate() == null ||d.getEditDate() == null ||d.getPrice() == null ||d.getCircleType() == null || d.getCircleType()>6 || d.getCircleType()<0 ){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·æé¡µé¢è¦æ±å¡«åç©ä¸æ¡æ¬¾ä¿¡æ¯!"); } if(d.getEndDate().getTime()<= d.getStartDate().getTime()){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç©ä¸æ¡æ¬¾æææç»ææ¶é´ä¸å¾æ©äºå¼å§æ¶é´ï¼"); } if(!Constants.equalsInteger(model.getWyPayType(),Constants.ZERO) && Constants.equalsInteger(d.getCircleType(),Constants.SIX)){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼ç©ä¸æ¡æ¬¾åªæéæ©ä¸æ¬¡æ§ä»æ¬¾æ¶ï¼æè½éæ©è¯¥ææ¯åºæ¶è´¹ï¼"); } } } YwProject project = projectMapper.selectById(model.getCompanyId()); if(project ==null || Constants.equalsInteger(project.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®ç项ç®ä¿¡æ¯ï¼"); } List<YwRoom> rooms = roomMapper.selectList(new QueryWrapper<YwRoom>().lambda() .eq(YwRoom::getIsdeleted,Constants.ZERO) .in(YwRoom::getId,model.getRoomIds()) .eq(YwRoom::getProjectId,model.getProjectId()) ); if(rooms ==null || rooms.size()==0){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼è¯·éæ©å¯¹åºé¡¹ç®ä¸æ£ç¡®çæ¿æºä¿¡æ¯"); } if(rooms.size() != rooms.size()){ throw new BusinessException(ResponseStatus.BAD_REQUEST.getCode(),"对ä¸èµ·ï¼å卿 æçæ¿æºä¿¡æ¯ï¼"); } YwCustomer customer = customerMapper.selectById(model.getRenterId()); if(customer ==null || Constants.equalsInteger(customer.getIsdeleted(),Constants.ONE)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼éæ©ç§å®¢ä¿¡æ¯ä¸åå¨ï¼è¯·è¿åå·æ°éè¯ï¼"); } Member member = memberMapper.selectOne(new QueryWrapper<Member>().lambda() .eq(Member::getIsdeleted,Constants.ZERO) .eq(Member::getType,Constants.THREE) .eq(Member::getCustomerId,model.getRenterId()) .eq(Member::getId,model.getMemberId()) .last("limit 1")); if(member ==null ){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼éæ©ç§å®¢è系人信æ¯ä¸åå¨ï¼è¯·è¿åå·æ°éè¯ï¼"); } Company company = companyMapper.selectById(model.getCompanyId()); if(company ==null || Constants.equalsInteger(company.getIsdeleted(),Constants.ONE) || !Constants.equalsInteger(company.getType(),Constants.TWO)){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼è¯·éæ©æ£ç¡®çå ¬å¸ä¿¡æ¯ï¼"); } SystemUser user = systemUserMapper.selectById(model.getUserId()); if(user ==null || (user.getDeleted()!=null && user.getDeleted()) ){ throw new BusinessException(ResponseStatus.DATA_EMPTY.getCode(),"对ä¸èµ·ï¼ç»å人信æ¯ä¸åå¨ï¼è¯·å°è¯å·æ°é¡µé¢éè¯ï¼"); } } @@ -132,112 +615,116 @@ @Override public PageData<YwContract> findPage(PageWrap<YwContract> pageWrap) { IPage<YwContract> page = new Page<>(pageWrap.getPage(), pageWrap.getCapacity()); QueryWrapper<YwContract> queryWrapper = new QueryWrapper<>(); MPJLambdaWrapper<YwContract> queryWrapper = new MPJLambdaWrapper<>(); queryWrapper.selectAll(YwContract.class ) .selectAs(Company::getName,YwContract::getCompanyName ) .select("(select sum(r.area) from yw_contract_room cr left join yw_room r on r.id = cr.room_id where r.isdeleted=0 and cr.contract_id =t.id)",YwContract::getTotalArea ) .leftJoin(Company.class,Company::getId,YwContract::getCompanyId); Utils.MP.blankToNull(pageWrap.getModel()); if (pageWrap.getModel().getId() != null) { queryWrapper.lambda().eq(YwContract::getId, pageWrap.getModel().getId()); queryWrapper.eq(YwContract::getId, pageWrap.getModel().getId()); } if (pageWrap.getModel().getCreator() != null) { queryWrapper.lambda().eq(YwContract::getCreator, pageWrap.getModel().getCreator()); queryWrapper.eq(YwContract::getCreator, pageWrap.getModel().getCreator()); } if (pageWrap.getModel().getCreateDate() != null) { queryWrapper.lambda().ge(YwContract::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); queryWrapper.lambda().le(YwContract::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); queryWrapper.ge(YwContract::getCreateDate, Utils.Date.getStart(pageWrap.getModel().getCreateDate())); queryWrapper.le(YwContract::getCreateDate, Utils.Date.getEnd(pageWrap.getModel().getCreateDate())); } if (pageWrap.getModel().getEditor() != null) { queryWrapper.lambda().eq(YwContract::getEditor, pageWrap.getModel().getEditor()); queryWrapper.eq(YwContract::getEditor, pageWrap.getModel().getEditor()); } if (pageWrap.getModel().getEditDate() != null) { queryWrapper.lambda().ge(YwContract::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); queryWrapper.lambda().le(YwContract::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); queryWrapper.ge(YwContract::getEditDate, Utils.Date.getStart(pageWrap.getModel().getEditDate())); queryWrapper.le(YwContract::getEditDate, Utils.Date.getEnd(pageWrap.getModel().getEditDate())); } if (pageWrap.getModel().getIsdeleted() != null) { queryWrapper.lambda().eq(YwContract::getIsdeleted, pageWrap.getModel().getIsdeleted()); queryWrapper.eq(YwContract::getIsdeleted, pageWrap.getModel().getIsdeleted()); } if (pageWrap.getModel().getRemark() != null) { queryWrapper.lambda().eq(YwContract::getRemark, pageWrap.getModel().getRemark()); queryWrapper.eq(YwContract::getRemark, pageWrap.getModel().getRemark()); } if (pageWrap.getModel().getStatus() != null) { queryWrapper.lambda().eq(YwContract::getStatus, pageWrap.getModel().getStatus()); queryWrapper.eq(YwContract::getStatus, pageWrap.getModel().getStatus()); } if (pageWrap.getModel().getType() != null) { queryWrapper.lambda().eq(YwContract::getType, pageWrap.getModel().getType()); queryWrapper.eq(YwContract::getType, pageWrap.getModel().getType()); } if (pageWrap.getModel().getCode() != null) { queryWrapper.lambda().eq(YwContract::getCode, pageWrap.getModel().getCode()); queryWrapper.eq(YwContract::getCode, pageWrap.getModel().getCode()); } if (pageWrap.getModel().getUserId() != null) { queryWrapper.lambda().eq(YwContract::getUserId, pageWrap.getModel().getUserId()); queryWrapper.eq(YwContract::getUserId, pageWrap.getModel().getUserId()); } if (pageWrap.getModel().getSignDate() != null) { queryWrapper.lambda().ge(YwContract::getSignDate, Utils.Date.getStart(pageWrap.getModel().getSignDate())); queryWrapper.lambda().le(YwContract::getSignDate, Utils.Date.getEnd(pageWrap.getModel().getSignDate())); queryWrapper.ge(YwContract::getSignDate, Utils.Date.getStart(pageWrap.getModel().getSignDate())); queryWrapper.le(YwContract::getSignDate, Utils.Date.getEnd(pageWrap.getModel().getSignDate())); } if (pageWrap.getModel().getStartDate() != null) { queryWrapper.lambda().ge(YwContract::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())); queryWrapper.lambda().le(YwContract::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate())); queryWrapper.ge(YwContract::getStartDate, Utils.Date.getStart(pageWrap.getModel().getStartDate())); queryWrapper.le(YwContract::getStartDate, Utils.Date.getEnd(pageWrap.getModel().getStartDate())); } if (pageWrap.getModel().getEndDate() != null) { queryWrapper.lambda().ge(YwContract::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())); queryWrapper.lambda().le(YwContract::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate())); queryWrapper.ge(YwContract::getEndDate, Utils.Date.getStart(pageWrap.getModel().getEndDate())); queryWrapper.le(YwContract::getEndDate, Utils.Date.getEnd(pageWrap.getModel().getEndDate())); } if (pageWrap.getModel().getProjectId() != null) { queryWrapper.lambda().eq(YwContract::getProjectId, pageWrap.getModel().getProjectId()); queryWrapper.eq(YwContract::getProjectId, pageWrap.getModel().getProjectId()); } if (pageWrap.getModel().getRoundedUp() != null) { queryWrapper.lambda().eq(YwContract::getRoundedUp, pageWrap.getModel().getRoundedUp()); queryWrapper.eq(YwContract::getRoundedUp, pageWrap.getModel().getRoundedUp()); } if (pageWrap.getModel().getCompanyId() != null) { queryWrapper.lambda().eq(YwContract::getCompanyId, pageWrap.getModel().getCompanyId()); queryWrapper.eq(YwContract::getCompanyId, pageWrap.getModel().getCompanyId()); } if (pageWrap.getModel().getRenterId() != null) { queryWrapper.lambda().eq(YwContract::getRenterId, pageWrap.getModel().getRenterId()); queryWrapper.eq(YwContract::getRenterId, pageWrap.getModel().getRenterId()); } if (pageWrap.getModel().getMemberId() != null) { queryWrapper.lambda().eq(YwContract::getMemberId, pageWrap.getModel().getMemberId()); queryWrapper.eq(YwContract::getMemberId, pageWrap.getModel().getMemberId()); } if (pageWrap.getModel().getZlDeposit() != null) { queryWrapper.lambda().eq(YwContract::getZlDeposit, pageWrap.getModel().getZlDeposit()); queryWrapper.eq(YwContract::getZlDeposit, pageWrap.getModel().getZlDeposit()); } if (pageWrap.getModel().getZlPayType() != null) { queryWrapper.lambda().eq(YwContract::getZlPayType, pageWrap.getModel().getZlPayType()); queryWrapper.eq(YwContract::getZlPayType, pageWrap.getModel().getZlPayType()); } if (pageWrap.getModel().getZlFreeStartDate() != null) { queryWrapper.lambda().ge(YwContract::getZlFreeStartDate, Utils.Date.getStart(pageWrap.getModel().getZlFreeStartDate())); queryWrapper.lambda().le(YwContract::getZlFreeStartDate, Utils.Date.getEnd(pageWrap.getModel().getZlFreeStartDate())); queryWrapper.ge(YwContract::getZlFreeStartDate, Utils.Date.getStart(pageWrap.getModel().getZlFreeStartDate())); queryWrapper.le(YwContract::getZlFreeStartDate, Utils.Date.getEnd(pageWrap.getModel().getZlFreeStartDate())); } if (pageWrap.getModel().getZlFreeEndDate() != null) { queryWrapper.lambda().ge(YwContract::getZlFreeEndDate, Utils.Date.getStart(pageWrap.getModel().getZlFreeEndDate())); queryWrapper.lambda().le(YwContract::getZlFreeEndDate, Utils.Date.getEnd(pageWrap.getModel().getZlFreeEndDate())); queryWrapper.ge(YwContract::getZlFreeEndDate, Utils.Date.getStart(pageWrap.getModel().getZlFreeEndDate())); queryWrapper.le(YwContract::getZlFreeEndDate, Utils.Date.getEnd(pageWrap.getModel().getZlFreeEndDate())); } if (pageWrap.getModel().getWyDeposit() != null) { queryWrapper.lambda().eq(YwContract::getWyDeposit, pageWrap.getModel().getWyDeposit()); queryWrapper.eq(YwContract::getWyDeposit, pageWrap.getModel().getWyDeposit()); } if (pageWrap.getModel().getWyPayType() != null) { queryWrapper.lambda().eq(YwContract::getWyPayType, pageWrap.getModel().getWyPayType()); queryWrapper.eq(YwContract::getWyPayType, pageWrap.getModel().getWyPayType()); } if (pageWrap.getModel().getWyFreeStartDate() != null) { queryWrapper.lambda().ge(YwContract::getWyFreeStartDate, Utils.Date.getStart(pageWrap.getModel().getWyFreeStartDate())); queryWrapper.lambda().le(YwContract::getWyFreeStartDate, Utils.Date.getEnd(pageWrap.getModel().getWyFreeStartDate())); queryWrapper.ge(YwContract::getWyFreeStartDate, Utils.Date.getStart(pageWrap.getModel().getWyFreeStartDate())); queryWrapper.le(YwContract::getWyFreeStartDate, Utils.Date.getEnd(pageWrap.getModel().getWyFreeStartDate())); } if (pageWrap.getModel().getWyFreeEndDate() != null) { queryWrapper.lambda().ge(YwContract::getWyFreeEndDate, Utils.Date.getStart(pageWrap.getModel().getWyFreeEndDate())); queryWrapper.lambda().le(YwContract::getWyFreeEndDate, Utils.Date.getEnd(pageWrap.getModel().getWyFreeEndDate())); queryWrapper.ge(YwContract::getWyFreeEndDate, Utils.Date.getStart(pageWrap.getModel().getWyFreeEndDate())); queryWrapper.le(YwContract::getWyFreeEndDate, Utils.Date.getEnd(pageWrap.getModel().getWyFreeEndDate())); } if (pageWrap.getModel().getZlTotalFee() != null) { queryWrapper.lambda().eq(YwContract::getZlTotalFee, pageWrap.getModel().getZlTotalFee()); queryWrapper.eq(YwContract::getZlTotalFee, pageWrap.getModel().getZlTotalFee()); } if (pageWrap.getModel().getWyTotalFee() != null) { queryWrapper.lambda().eq(YwContract::getWyTotalFee, pageWrap.getModel().getWyTotalFee()); queryWrapper.eq(YwContract::getWyTotalFee, pageWrap.getModel().getWyTotalFee()); } for(PageWrap.SortData sortData: pageWrap.getSorts()) { if (sortData.getDirection().equalsIgnoreCase(PageWrap.DESC)) { queryWrapper.orderByDesc(sortData.getProperty()); } else { queryWrapper.orderByAsc(sortData.getProperty()); } if (pageWrap.getModel().getCompanyName() != null) { queryWrapper.like(Company::getName, pageWrap.getModel().getCompanyName()); } return PageData.from(ywContractMapper.selectPage(page, queryWrapper)); queryWrapper.ge(Objects.nonNull(pageWrap.getModel().getQueryStartTime()), YwContract::getStartDate, pageWrap.getModel().getQueryStartTime()) .le(Objects.nonNull(pageWrap.getModel().getQueryEndTime()), YwContract::getEndDate, pageWrap.getModel().getQueryEndTime()); queryWrapper.orderByDesc(YwContract::getCreateDate ); return PageData.from(ywContractMapper.selectJoinPage(page, YwContract.class,queryWrapper)); } @Override server/visits/dmvisit_service/src/main/java/com/doumee/service/business/impl/YwCustomerServiceImpl.java
@@ -50,7 +50,7 @@ @Transactional(rollbackFor = {BusinessException.class,Exception.class}) public Integer create(YwCustomer ywCustomer) { if(Objects.isNull(ywCustomer) || Objects.nonNull(ywCustomer.getType()) || Objects.isNull(ywCustomer.getType()) || StringUtils.isBlank(ywCustomer.getName()) || Objects.isNull(ywCustomer.getMember()) || StringUtils.isBlank(ywCustomer.getMember().getName()) @@ -72,8 +72,8 @@ member.setCreateDate(new Date()); member.setIsdeleted(Constants.ZERO); member.setStatus(Constants.ZERO); member.setCompanyType(ywCustomer.getId()); member.setType(Constants.memberType.customer); member.setCustomerId(ywCustomer.getId()); this.checkMember(member); memberMapper.insert(member); @@ -128,7 +128,7 @@ @Override public void updateById(YwCustomer ywCustomer) { if(Objects.isNull(ywCustomer) || Objects.nonNull(ywCustomer.getType()) || Objects.isNull(ywCustomer.getType()) || StringUtils.isBlank(ywCustomer.getName()) || Objects.isNull(ywCustomer.getMemberId()) ){ @@ -156,6 +156,7 @@ return ywCustomerMapper.selectById(id); } @Override public YwCustomer getDetail(Integer id) { YwCustomer ywCustomer = ywCustomerMapper.selectById(id); if(Objects.isNull(ywCustomer)){ @@ -189,6 +190,7 @@ queryWrapper .selectAll(YwCustomer.class) .selectAs(Member::getName,YwCustomer::getMemberName) .selectAs(Member::getPhone,YwCustomer::getMemberPhone) .leftJoin(Member.class,Member::getId,YwCustomer::getMemberId) .eq(YwCustomer::getIsdeleted,Constants.ZERO) .like(Objects.nonNull(model)&&StringUtils.isNotBlank(model.getName()),YwCustomer::getName,model.getName())