server/system_service/src/main/java/com/doumee/core/utils/Constants.java
@@ -212,6 +212,19 @@ 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; } /** * 作业类型 0自有车卸货 1自有车装货 2外协车卸货 3外协车装货 4市公司外协车卸货 */ @@ -1235,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/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/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; /** * 运维合同账单信息表 @@ -56,8 +60,8 @@ @ApiModelProperty(value = "类型 0租赁条款 1物业条款 2租赁押金 3物业押金", example = "1") @ExcelColumn(name="类型 0租赁条款 1物业条款 2租赁押金 3物业押金") private Integer type; @ApiModelProperty(value = "状态 0未开始;1进行中;2已完成;", example = "1") @ExcelColumn(name="状态 0未开始;1进行中;2已完成;") @ApiModelProperty(value = "状态 0开始;1关闭;", example = "1") @ExcelColumn(name="状态 0开始;1关闭;") private Integer status; @ApiModelProperty(value = "开始时间") @@ -74,6 +78,17 @@ @ExcelColumn(name="结束时间") 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)") private Integer detailId; @@ -90,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/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/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())