完成需求66,67,68

This commit is contained in:
sunzheng
2023-12-26 15:59:41 +08:00
parent 9482c364bf
commit 900d6d9ec3
14 changed files with 213 additions and 11 deletions
+9
View File
@@ -2,3 +2,12 @@
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1739214868996505601', '1739213908475723777', '导出', '', NULL, NULL, NULL, 2, 'meetingPackStatistics:export', '1', 2.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-12-25 17:21:52', NULL, NULL, 0, 0, '1', 0, 0);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1739214686250680322', '1739213908475723777', '查询', NULL, NULL, NULL, NULL, 2, 'meetingPackStatistics:search', '1', 1.00, 0, NULL, 1, 1, 0, 0, NULL, 'LKGLZ', '2023-12-25 17:21:09', NULL, NULL, 0, 0, '1', 0, 0);
INSERT INTO `sys_permission`(`id`, `parent_id`, `name`, `url`, `component`, `component_name`, `redirect`, `menu_type`, `perms`, `perms_type`, `sort_no`, `always_show`, `icon`, `is_route`, `is_leaf`, `keep_alive`, `hidden`, `description`, `create_by`, `create_time`, `update_by`, `update_time`, `del_flag`, `rule_flag`, `status`, `internal_or_external`, `external_terminal_show`) VALUES ('1739213908475723777', '1437320526513905666', '会议打包统计', '/statisticalReport/meetingPackStatistics', 'statisticalReport/MeetingPackStatistics', NULL, NULL, 1, NULL, '1', 12.00, 0, NULL, 1, 0, 0, 0, NULL, 'LKGLZ', '2023-12-25 17:18:03', NULL, NULL, 0, 0, '1', 0, 0);
-- pay_common_project表新增estimated_arrival_date(预估到账日期)字段
ALTER TABLE `pay_common_project` ADD COLUMN `estimated_arrival_date` date COMMENT '预估到账日期';
-- pay_member_project_subitem表新增estimated_arrival_date(预估到账日期)字段
ALTER TABLE `pay_member_project_subitem` ADD COLUMN `estimated_arrival_date` date COMMENT '预估到账日期';
-- pay_working_group_subitem表新增estimated_arrival_date(预估到账日期)字段
ALTER TABLE `pay_working_group_subitem` ADD COLUMN `estimated_arrival_date` date COMMENT '预估到账日期';
@@ -1,6 +1,8 @@
package com.jero.member.controller;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
@@ -8,6 +10,7 @@ import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import cn.hutool.core.util.NumberUtil;
import cn.hutool.core.util.ObjectUtil;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.jero.common.api.vo.Result;
@@ -83,6 +86,21 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
@RequestParam(name = "pageSize", defaultValue = "10") Integer pageSize,
HttpServletRequest req) {
QueryWrapper<PayMemberProjectSubitem> queryWrapper = QueryGenerator.initQueryWrapper(payMemberProjectSubitem, req.getParameterMap());
// 预计到账开始日期
String estimatedArrivalStartDate = payMemberProjectSubitem.getEstimatedArrivalStartDate();
// 预计到账结束日期
String estimatedArrivalEndDate = payMemberProjectSubitem.getEstimatedArrivalEndDate();
if (ObjectUtil.isNotEmpty(estimatedArrivalStartDate) && ObjectUtil.isNotEmpty(estimatedArrivalEndDate)) {
queryWrapper.lambda().ge(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalStartDate);
queryWrapper.lambda().le(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalEndDate);
}
if (ObjectUtil.isNotEmpty(estimatedArrivalStartDate) && ObjectUtil.isEmpty(estimatedArrivalEndDate)) {
queryWrapper.lambda().ge(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalStartDate);
}
if (ObjectUtil.isEmpty(estimatedArrivalEndDate) && ObjectUtil.isNotEmpty(estimatedArrivalEndDate)) {
queryWrapper.lambda().le(PayMemberProjectSubitem::getEstimatedArrivalDate,estimatedArrivalEndDate);
}
LoginUser sysUser = (LoginUser) SecurityUtils.getSubject().getPrincipal();
if (!rolePermissionService.getRolePermission("safeguardMember:search")) {
queryWrapper.eq("pmp.director_id",sysUser.getId());
@@ -144,6 +162,9 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
@ApiOperation(value = "会员项目成员表-添加", notes = "会员项目成员表-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayMemberProjectSubitem payMemberProjectSubitem) {
if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
memberProjectService.check(payMemberProjectSubitem.getProjectId(),"safeguardMember:add");
ValidUtil.validate(payMemberProjectSubitem);
memberProjectSubitemService.add(payMemberProjectSubitem);
@@ -158,6 +179,9 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
@ApiOperation(value = "会员项目成员表-编辑", notes = "会员项目成员表-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayMemberProjectSubitem payMemberProjectSubitem) {
if (Objects.isNull(payMemberProjectSubitem.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
memberProjectSubitemService.check(payMemberProjectSubitem.getId(),"safeguardMember:edit");
ValidUtil.validate(payMemberProjectSubitem);
memberProjectSubitemService.editById(payMemberProjectSubitem);
@@ -283,6 +307,18 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
projectSubitemExcel.setProjectId(projectId);
PayMemberProjectSubitem projectSubitem = new PayMemberProjectSubitem();
errorMessage.addAll(ValidUtil.validateReturnListWithNum(projectSubitemExcel,errorRowNum));
// 校验预估到账日期
String estimatedArrivalDate = projectSubitemExcel.getEstimatedArrivalDate();
if (Objects.isNull(estimatedArrivalDate)) {
errorMessage.add("" + errorRowNum + "行:预估到账日期不能为空");
}else {
try {
LocalDate.parse(estimatedArrivalDate, DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}catch (Exception e) {
errorMessage.add("" + errorRowNum + "行:预估到账日期格式不正确");
}
}
//待确收金额
String amountReceivable = projectSubitemExcel.getAmountReceivable();
if (errorMessage.isEmpty()) {
@@ -320,11 +356,13 @@ public class PayMemberProjectSubitemController extends JeroController<PayMemberP
//复制属性
BeanUtils.copyProperties(projectSubitemExcel, projectSubitem);
try {
//ValidUtil.validate(projectSubitem);
memberProjectSubitemService.add(projectSubitem);
} catch (JeroBootException e) {
errorMessage.add("" + errorRowNum + "行:" + e.getMessage());
if (errorMessage.isEmpty()) {
try {
//ValidUtil.validate(projectSubitem);
memberProjectSubitemService.add(projectSubitem);
} catch (JeroBootException e) {
errorMessage.add("" + errorRowNum + "行:" + e.getMessage());
}
}
}
if (!errorMessage.isEmpty()) {
@@ -385,5 +385,24 @@ public class PayMemberProjectSubitem implements Serializable {
//@TableField(exist = false)
//private String postContactName;
/**预计到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账日期")
@Excel(name = "预计到账日期", width = 15,orderNum = "5")
private String estimatedArrivalDate;
/**预计到账开始日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账开始的日期")
@TableField(exist = false)
private String estimatedArrivalStartDate;
/**预计到账结束日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账结束的日期")
@TableField(exist = false)
private String estimatedArrivalEndDate;
}
@@ -44,5 +44,8 @@
<select id="getPage" resultMap="MemberProjectSubitemResultMap">
select pmps.* from pay_member_project_subitem pmps left join pay_member_project pmp on pmps.project_id = pmp.id
${ew.customSqlSegment}
<where>
</where>
</select>
</mapper>
@@ -1,6 +1,7 @@
package com.jero.member.vo;
import com.baomidou.mybatisplus.annotation.IdType;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
@@ -113,4 +114,32 @@ public class PayMemberProjectSubitemExcel {
@NotBlank(message = "需要发票不能为空")
private String needInvoice;
/**预计到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账日期")
@Excel(name = "预计到账日期", width = 15,orderNum = "5")
private String estimatedArrivalDate;
@Excel(name = "邮寄联系人手机号", width = 17, orderNum = "4")
@ApiModelProperty(value = "邮寄联系人手机号")
@TableField(exist = false)
private String postContactPhone;
@Excel(name = "邮寄联系人邮箱", width = 15, orderNum = "5")
@ApiModelProperty(value = "邮寄联系人邮箱")
@TableField(exist = false)
private String postContactMail;
@Excel(name = "邮寄联系人通讯地址", width = 19, orderNum = "6")
@ApiModelProperty(value = "邮寄联系人地址")
@TableField(exist = false)
private String postContactAddress;
@Excel(name = "邮寄联系人邮政编码", width = 19, orderNum = "7")
@ApiModelProperty(value = "邮寄联系人邮编")
@TableField(exist = false)
private String contactPostCode;
}
@@ -371,6 +371,9 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
@ApiOperation(value="普通项目管理-添加", notes="普通项目管理-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayCommonProject payCommonProject) {
if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -390,6 +393,9 @@ public class PayCommonProjectController extends JeroController<PayCommonProject,
@ApiOperation(value="普通项目管理-编辑", notes="普通项目管理-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayCommonProject payCommonProject) {
if (Objects.isNull(payCommonProject.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
StringBuilder msg = ValidUtil.validateAll(payCommonProject);
if(!StringUtils.isBlank(msg)){
return Result.error(msg.toString());
@@ -357,6 +357,9 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
@ApiOperation(value = "工作组成员-添加", notes = "工作组成员-添加")
@PostMapping(value = "/add")
public Result<?> add(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
if (Objects.isNull(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
if (!StringUtils.isBlank(msg)) {
return Result.error(msg.toString());
@@ -376,6 +379,9 @@ public class PayWorkingGroupSubItemController extends JeroController<PayWorkingG
@ApiOperation(value = "工作组成员-编辑", notes = "工作组成员-编辑")
@PostMapping(value = "/edit")
public Result<?> edit(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) {
if (Objects.isNull(payWorkingGroupSubItem.getEstimatedArrivalDate())) {
return Result.error("预估到账日期不能为空");
}
StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem);
if (!StringUtils.isBlank(msg)) {
return Result.error(msg.toString());
@@ -319,4 +319,25 @@ public class PayCommonProject implements Serializable {
@ApiModelProperty(value = "未税金额")
@JsonFormat(shape = JsonFormat.Shape.STRING)
private BigDecimal noTaxAmount;
/**预计到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账日期")
private String estimatedArrivalDate;
/**预计到账开始日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账开始的日期")
@TableField(exist = false)
private String estimatedArrivalStartDate;
/**预计到账结束日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账结束的日期")
@TableField(exist = false)
private String estimatedArrivalEndDate;
}
@@ -19,6 +19,8 @@ import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.time.LocalDate;
import java.util.Date;
import java.util.List;
/**
@@ -162,6 +164,14 @@ public class PayWorkingGroupSubItem implements Serializable {
/**收费通知文件id*/
@ApiModelProperty(value = "收费通知文件id")
private java.lang.String chargeNoticeId;
/**预计到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账日期")
@Excel(name = "预计到账日期",width = 15,format = "yyyy-MM-dd")
private String estimatedArrivalDate;
/**打包(1:是,0:否)*/
@ApiModelProperty(value = "打包(1:是,0:否)")
private java.lang.Integer pack;
@@ -585,4 +595,18 @@ public class PayWorkingGroupSubItem implements Serializable {
@ApiModelProperty(value = "标签")
@Size(max = 32,message = "标签名称长度不能大于50个字符")
private String label;
/**预计到账开始日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账开始的日期")
@TableField(exist = false)
private String estimatedArrivalStartDate;
/**预计到账结束日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账结束的日期")
@TableField(exist = false)
private String estimatedArrivalEndDate;
}
@@ -41,7 +41,8 @@
pcp.payment_status,
pcp.tax,
pcp.tax_rate,
pcp.no_tax_amount
pcp.no_tax_amount,
pcp.estimated_arrival_date
FROM pay_common_project pcp
left join sys_user su on pcp.principal_id = su.id
LEFT JOIN pay_payment_record ppr ON ppr.project_id = pcp.id
@@ -73,6 +74,12 @@
<if test="payCommonProject.principal != null and payCommonProject.principal != ''">
AND pcp.principal_id = #{payCommonProject.principal}
</if>
<if test="payCommonProject.estimatedArrivalStartDate != null">
AND pcp.estimated_arrival_date &gt;= #{payCommonProject.estimatedArrivalStartDate}
</if>
<if test="payCommonProject.estimatedArrivalEndDate != null">
AND pcp.estimated_arrival_date &lt;= #{payCommonProject.estimatedArrivalEndDate}
</if>
</where>
GROUP BY pcp.id ORDER BY pcp.create_time DESC
</select>
@@ -44,7 +44,8 @@
pwgs.tax,
pwgs.tax_rate,
pwgs.no_tax_amount,
pwgs.label
pwgs.label,
pwgs.estimated_arrival_date
FROM pay_working_group_subitem pwgs
LEFT JOIN pay_payment_record ppr ON ppr.project_id = pwgs.id
<where>
@@ -68,6 +69,12 @@
<if test="payWorkingGroupSubItem.label != null and payWorkingGroupSubItem.label != ''">
and label LIKE concat('%',#{payWorkingGroupSubItem.label},'%')
</if>
<if test="payWorkingGroupSubItem.estimatedArrivalStartDate != null">
AND pwgs.estimated_arrival_date &gt;= #{payWorkingGroupSubItem.estimatedArrivalStartDate}
</if>
<if test="payWorkingGroupSubItem.estimatedArrivalEndDate != null">
AND pwgs.estimated_arrival_date &lt;= #{payWorkingGroupSubItem.estimatedArrivalEndDate}
</if>
</where>
GROUP BY pwgs.id
ORDER BY pwgs.create_time desc
@@ -56,11 +56,13 @@ import com.jero.temporary.service.IPayContactsManagementTemporaryService;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.lang3.StringUtils;
import org.apache.poi.ss.usermodel.DataFormat;
import org.apache.shiro.SecurityUtils;
import org.jeecgframework.poi.excel.ExcelImportCheckUtil;
import org.jeecgframework.poi.excel.ExcelImportUtil;
import org.jeecgframework.poi.excel.entity.ImportParams;
import org.springframework.core.env.Environment;
import org.springframework.format.annotation.DateTimeFormat;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
@@ -71,6 +73,9 @@ import javax.servlet.http.HttpServletRequest;
import java.io.File;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.text.SimpleDateFormat;
import java.time.LocalDate;
import java.time.format.DateTimeFormatter;
import java.util.*;
import java.util.stream.Collectors;
@@ -129,6 +134,8 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
@Resource
PayWorkingGroupSubItemContactsMapper payWorkingGroupSubItemContactsMapper;
private static final String DATE_FORMAT = "yyyy-MM-dd";
@Override
public IPage<PayWorkingGroupSubItem> queryPageList(Page<PayWorkingGroupSubItem> page, PayWorkingGroupSubItem payWorkingGroupSubitem,String paymentDate) {
@@ -583,6 +590,22 @@ public class PayWorkingGroupSubItemServiceImpl extends ServiceImpl<PayWorkingGro
msg.append("工作组不存在 ");
}
if(StringUtils.isBlank(msg)) {
// 校验预估到账日期
list.forEach(
p -> {
String estimatedArrivalDate = p.getEstimatedArrivalDate();
if (Objects.isNull(estimatedArrivalDate)) {
msg.append("").append(list.indexOf(p) + 3).append("行预估到账日期不能为空,请修改。<br/>");
}else {
try {
LocalDate.parse(estimatedArrivalDate,DateTimeFormatter.ofPattern("yyyy-MM-dd"));
}catch (Exception e) {
msg.append("").append(list.indexOf(p) + 3).append("行预估到账日期格式不正确,请修改。<br/>");
}
}
}
);
// 获取工作组成员
LambdaQueryWrapper<PayWorkingGroupSubItem> query = new LambdaQueryWrapper<>();
query.eq(PayWorkingGroupSubItem::getWorkingGroupId, workGroupId);
@@ -4,10 +4,12 @@ import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import org.springframework.format.annotation.DateTimeFormat;
import javax.validation.constraints.DecimalMax;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
/**
* @Description: pay_working_group_subitem
@@ -63,6 +65,14 @@ public class PayWorkingGroupSubItemExcel implements Serializable {
@Excel(name = "收费通知号", width = 15)
@ApiModelProperty(value = "收费通知号")
private String chargeNoticeNo;
/**预计到账日期*/
@JsonFormat(timezone = "GMT+8",pattern = "yyyy-MM-dd")
@DateTimeFormat(pattern="yyyy-MM-dd")
@ApiModelProperty(value = "预计到账日期")
@Excel(name = "预计到账日期",width = 15)
private String estimatedArrivalDate;
/**
* 打包
*/
@@ -136,15 +136,15 @@ spring:
connectionProperties: druid.stat.mergeSql\=true;druid.stat.slowSqlMillis\=5000
datasource:
master:
url: jdbc:p6spy:mysql://10.10.10.44:3306/income_payments_online_test?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
url: jdbc:p6spy:mysql://lijiarao.cn:3306/income_payments_prod?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&allowPublicKeyRetrieval=true&serverTimezone=Asia/Shanghai
username: root
password: hzwlsoft.com
password: 704670af746903fa
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
# 多数据源配置
multi-datasource1:
url: jdbc:p6spy:mysql://10.10.10.44:3306/standards_association?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&serverTimezone=Asia/Shanghai
url: jdbc:p6spy:mysql://lijiarao.cn:3306/standards_association?characterEncoding=UTF-8&useUnicode=true&useSSL=false&tinyInt1isBit=false&serverTimezone=Asia/Shanghai
username: root
password: hzwlsoft.com
password: 704670af746903fa
driver-class-name: com.p6spy.engine.spy.P6SpyDriver
redis:
database: 14