bug修改

This commit is contained in:
梁琦涛
2021-10-08 11:22:46 +08:00
parent 532983fefa
commit b02031e449
17 changed files with 466 additions and 99 deletions
@@ -78,7 +78,7 @@ public class PayIncomeContractCommon {
/**
* 支出合同excel表头
*/
public final static List<String> LIST_SPENDING_CONTRACT = Arrays.asList("合同编号","合同名称","签订单位名称","签订单位联系人","是否开口","负责人",
public final static List<String> LIST_SPENDING_CONTRACT = Arrays.asList("合同编号","合同名称","签订单位","签订单位联系人","是否开口","负责人",
"部门名称","签订合同总金额","税率","未税金额","合同签订日期","合同终止日期","合同约定主要时点",
"应收金额","已收金额","未收金额","账款状态","合同约定付款次数","是否打包","打包年份");
/**
@@ -492,11 +492,16 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
@RequiresPermissions("revenueContract:export")
@ApiOperation(value="收入合同-导出excel", notes="收入合同-导出excel")
@RequestMapping(value = "/exportXls")
public ModelAndView exportXls(HttpServletRequest request, PayIncomeContract payIncomeContract) {
// Step.1 组装查询条件
QueryWrapper<PayIncomeContract> queryWrapper = QueryGenerator.initQueryWrapper(payIncomeContract, request.getParameterMap());
// Step.2 获取导出数据
List<PayIncomeContract> pageList = payIncomeContractService.list(queryWrapper);
public ModelAndView exportXls(HttpServletRequest request, PayIncomeContract payIncomeContract,
@RequestParam(name="chargeStatus",required = false) String chargeStatus,
@RequestParam(name="projectName",required = false) String projectName,
@RequestParam(name="startTime",required = false) String startTime,
@RequestParam(name="endTime",required = false) String endTime) {
if(Objects.equals(chargeStatus,PayIncomeContractCommon.CHARGE_STATUS0)){
chargeStatus = "";
}
List<PayIncomeContract> pageList = payIncomeContractService.queryList( payIncomeContract,chargeStatus,projectName,startTime,endTime);
List<PayIncomeContract> exportList = null;
// 过滤选中数据
@@ -535,9 +540,9 @@ public class PayIncomeContractController extends JeroController<PayIncomeContrac
listSub.forEach(p1->{
int n = listSub.indexOf(p1) + 1;
map.put("phaseName" + n,p1.getPhaseName());
map.put("accountsReceivableAmount" + n,String.valueOf(p1.getAccountsReceivableAmount()));
map.put("accountsReceivableAmount" + n,Objects.isNull(p1.getAccountsReceivableAmount()) ? "" : String.valueOf(p1.getAccountsReceivableAmount()));
map.put("accountsReceivableTime" + n, DateUtils.date2Str(p1.getAccountsReceivableTime(),new SimpleDateFormat("yyyy-MM-dd")));
map.put("paidAmount" + n,String.valueOf(p1.getPaidAmount()));
map.put("paidAmount" + n,Objects.isNull(p1.getPaidAmount()) ? "" : String.valueOf(p1.getPaidAmount()));
map.put("paidTime" + n,DateUtils.date2Str(p1.getPaidTime(),new SimpleDateFormat("yyyy-MM-dd")));
});
}
@@ -4,6 +4,7 @@ import java.text.SimpleDateFormat;
import java.util.*;
import java.util.stream.Collectors;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -53,13 +54,13 @@ import io.swagger.annotations.ApiOperation;
@RequestMapping("/contract/paySpendingContract")
@Slf4j
public class PaySpendingContractController extends JeroController<PaySpendingContract, IPaySpendingContractService> {
@Autowired
@Resource
private IPaySpendingContractService paySpendingContractService;
@Autowired
@Resource
private IPaySpendingContractInstallmentService paySpendingContractInstallmentService;
@Autowired
@Resource
private Environment env;
@Autowired
@Resource
private ISysBaseAPI sysBaseAPI;
/**
@@ -243,12 +244,13 @@ public class PaySpendingContractController extends JeroController<PaySpendingCon
@RequiresPermissions("expenditureContract:export")
@GetMapping(value = "/exportXls")
@ApiOperation(value="支出合同-导出excel", notes="支出合同-导出excel")
public ModelAndView exportXls(HttpServletRequest request, PaySpendingContract paySpendingContract) {
public ModelAndView exportXls(HttpServletRequest request, PaySpendingContract paySpendingContract,
@RequestParam(name="startTime",required = false) String startTime,
@RequestParam(name="endTime",required = false) String endTime) {
// Step.1 组装查询条件
QueryWrapper<PaySpendingContract> queryWrapper = QueryGenerator.initQueryWrapper(paySpendingContract, request.getParameterMap());
// Step.2 获取导出数据
List<PaySpendingContract> pageList = paySpendingContractService.list(queryWrapper);
List<PaySpendingContract> pageList = paySpendingContractService.queryList( paySpendingContract.getContractNum(),
paySpendingContract.getContractName(),startTime,endTime);
List<PaySpendingContract> exportList = null;
// 过滤选中数据
@@ -49,4 +49,19 @@ public interface PayIncomeContractMapper extends BaseMapper<PayIncomeContract> {
* @Exception
*/
List<ProjectOutput> getAssociated(@Param("contractId") String contractId);
/**
* @Description excel 导出列表
* @Author lqt
* @Date 2021/9/3
* @Param payIncomeContract 收入合同
* @Param chargeStatus 来款状态
* @Param startTime 开始时间
* @Param endTime 结束时间
* @Return
* @Exception
*/
List<PayIncomeContract> queryList(@Param("payIncomeContract") PayIncomeContract payIncomeContract,
@Param("chargeStatus") String chargeStatus,@Param("projectName") String projectName,
@Param("startTime") String startTime, @Param("endTime") String endTime);
}
@@ -7,6 +7,8 @@ import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.jero.contract.entity.PaySpendingContract;
import org.apache.ibatis.annotations.Param;
import java.util.List;
/**
* @Description: pay_spending_contract
* @Author: jeecg-boot
@@ -27,4 +29,16 @@ public interface PaySpendingContractMapper extends BaseMapper<PaySpendingContrac
@Param("contractName") String contractName,@Param("startTime") String startTime,
@Param("endTime") String endTime);
/**
* @Description excel导出
* @Author lqt
* @Date 2021/9/8
* @Param
* @Return
* @Exception
*/
List<PaySpendingContract> queryList(@Param("contractNum") String contractNum,
@Param("contractName") String contractName,@Param("startTime") String startTime,
@Param("endTime") String endTime);
}
@@ -40,10 +40,10 @@
pic.update_time AS updateTime,
(
select if(count(*) > 0,1,0) from pay_income_contract_installment
where contract_id = pic.id AND accounts_receivable_time &lt; DATE_FORMAT(NOW(),'%Y-%m-%d')
AND accounts_receivable_amount != 0 AND accounts_receivable_amount > paid_amount
) AS chargeStatus,
GROUP_CONCAT(project.projectName) AS associatedProject
where contract_id = pic.id AND accounts_receivable_time is not null AND accounts_receivable_time &lt; DATE_FORMAT( NOW(), '%Y-%m-%d' )
AND accounts_receivable_amount != 0 AND accounts_receivable_amount > if(paid_amount is null or paid_amount = '',0,paid_amount)
) AS chargeStatus,
GROUP_CONCAT(project.projectName ORDER BY project.id DESC) AS associatedProject
FROM pay_income_contract pic
LEFT JOIN pay_income_contract_associated pica ON pica.contract_id = pic.id
LEFT JOIN
@@ -198,4 +198,95 @@
</where>
group by pic.id order by pic.create_time desc
</select>
<select id="queryList" resultType="com.jero.contract.entity.PayIncomeContract">
SELECT * FROM
(
SELECT
pic.id,
pic.contract_num AS contractNum,
pic.contract_name AS contractName,
pic.signed_company_id AS signedCompanyId,
pic.signed_company_temporary_id AS signedCompanyTemporaryId,
pic.signed_company_temporary_name AS signedCompanyTemporaryName,
pic.signed_contacts_id AS signedContactsId,
pic.signed_contacts_temporary_id AS signedContactsTemporaryId,
pic.signed_contacts_temporary_name AS signedContactsTemporaryName,
pic.opening,
pic.principal_id AS principalId,
pic.principal_name AS principalName,
pic.department_name AS departmentName,
pic.contract_amount AS contractAmount,
pic.rate,
pic.no_tax_amount AS noTaxAmount,
pic.contract_date AS contractDate,
pic.termination_date AS terminationDate,
pic.contract_time_points AS contractTimePoints,
pic.accounts_receivable_amount AS accountsReceivableAmount,
pic.amount_received AS amountReceived,
pic.outstanding_amount AS outstandingAmount,
pic.account_status AS accountStatus,
pic.contract_payment_times AS contractPaymentTimes,
pic.pack,
pic.pack_year AS packYear,
pic.status,
if(pic.status = 2,1,0) as statusOrder,
pic.create_by AS createBy,
pic.create_time AS createTime,
pic.update_by AS updateBy,
pic.update_time AS updateTime,
(
select if(count(*) > 0,1,0) from pay_income_contract_installment
where contract_id = pic.id AND accounts_receivable_time is not null AND accounts_receivable_time &lt; DATE_FORMAT( NOW(), '%Y-%m-%d' )
AND accounts_receivable_amount != 0 AND accounts_receivable_amount > if(paid_amount is null or paid_amount = '',0,paid_amount)
) AS chargeStatus,
GROUP_CONCAT(project.projectName ORDER BY project.id DESC) AS associatedProject
FROM pay_income_contract pic
LEFT JOIN pay_income_contract_associated pica ON pica.contract_id = pic.id
LEFT JOIN
(
SELECT id,charge_project AS projectName FROM pay_common_project
UNION ALL
SELECT pwgs.id,pwg.working_group_project AS projectName FROM pay_working_group_subitem pwgs
LEFT JOIN pay_working_group pwg ON pwg.id = pwgs.working_group_id
WHERE pwg.working_group_project IS NOT NULL AND pwg.working_group_project != ''
UNION ALL
SELECT sit.id,meeting.meeting_name AS projectName FROM pay_meeting meeting
INNER JOIN pay_meeting_situation sit ON meeting.id = sit.meeting_id
WHERE meeting.meeting_name IS NOT NULL AND meeting.meeting_name != ''
UNION ALL
SELECT msub.id,pmp.project_name AS projectName FROM pay_member_project pmp
INNER JOIN pay_member_project_subitem msub ON pmp.id = msub.project_id
WHERE pmp.project_name IS NOT NULL AND pmp.project_name != ''
UNION ALL
SELECT tmsub.id,tmember.project_name AS projectName FROM tb_member_project tmember
INNER JOIN tb_member_project_subitem tmsub ON tmember.id=tmsub.project_id
where tmember.project_name IS NOT NULL AND tmember.project_name != ''
) project ON project.id = pica.project_id
GROUP BY pic.id
) aa
<where>
<if test="payIncomeContract.contractNum != null and payIncomeContract.contractNum != ''">
AND aa.contractNum LIKE CONCAT('%',CONCAT(#{payIncomeContract.contractNum},'%'))
</if>
<if test="payIncomeContract.contractName != null and payIncomeContract.contractName != ''">
AND aa.contractName LIKE CONCAT('%',CONCAT(#{payIncomeContract.contractName},'%'))
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT(aa.createTime,'%Y-%m-%d') >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT(aa.createTime,'%Y-%m-%d') &lt;= #{endTime}
</if>
<if test="payIncomeContract.status != null and payIncomeContract.status != ''">
AND aa.status = #{payIncomeContract.status}
</if>
<if test="chargeStatus != null and chargeStatus != ''">
AND aa.chargeStatus = #{chargeStatus}
</if>
<if test="projectName != null and projectName != ''">
AND aa.associatedProject LIKE CONCAT('%',CONCAT(#{projectName},'%'))
</if>
</where>
ORDER BY aa.chargeStatus desc,aa.statusOrder desc, aa.createTime desc
</select>
</mapper>
@@ -35,10 +35,10 @@
update_by AS updateBy,
update_time AS updateTime,
(select if(count(*) > 0,1,0) from pay_spending_contract_installment
where contract_id = pay_spending_contract.id AND accounts_receivable_time &lt; DATE_FORMAT(NOW(),'%Y-%m-%d')
AND accounts_receivable_amount != 0 AND accounts_receivable_amount > paid_amount
where contract_id = psc.id AND accounts_receivable_time is not null AND accounts_receivable_time &lt; DATE_FORMAT( NOW(), '%Y-%m-%d' )
AND accounts_receivable_amount != 0 AND accounts_receivable_amount > if(paid_amount is null or paid_amount = '',0,paid_amount)
) AS chargeStatus
FROM pay_spending_contract
FROM pay_spending_contract psc
<where>
<if test="contractNum != null and contractNum != ''">
AND contract_num LIKE CONCAT('%',CONCAT(#{contractNum},'%'))
@@ -54,6 +54,59 @@
</if>
</where>
ORDER BY chargeStatus desc,create_time desc
</select>
<select id="queryList" resultType="com.jero.contract.entity.PaySpendingContract">
SELECT
id,
contract_num AS contractNum,
contract_name AS contractName,
signed_company_id AS signedCompanyId,
signed_company_temporary_id AS signedCompanyTemporaryId,
signed_company_temporary_name AS signedCompanyTemporaryName,
signed_contacts_id AS signedContactsId,
signed_contacts_temporary_id AS signedContactsTemporaryId,
signed_contacts_temporary_name AS signedContactsTemporaryName,
opening,
principal_id AS principaId,
principal_name AS principalName,
department_name AS departmentName,
contract_amount AS contractAmount,
rate,
no_tax_amount AS noTaxAmount,
contract_date AS contractDate,
termination_date AS terminationDate,
contract_time_points AS contractTimPoints,
accounts_receivable_amount AS accountsReceivableAmount,
amount_received AS amountReceived,
outstanding_amount AS outstandingAmount,
account_status AS accountStatus,
contract_payment_times AS contractPaymentTimes,
pack,
pack_year AS packYear,
create_by AS createBy,
create_time AS createTime,
update_by AS updateBy,
update_time AS updateTime,
(select if(count(*) > 0,1,0) from pay_spending_contract_installment
where contract_id = psc.id AND accounts_receivable_time is not null AND accounts_receivable_time &lt; DATE_FORMAT( NOW(), '%Y-%m-%d' )
AND accounts_receivable_amount != 0 AND accounts_receivable_amount > if(paid_amount is null or paid_amount = '',0,paid_amount)
) AS chargeStatus
FROM pay_spending_contract psc
<where>
<if test="contractNum != null and contractNum != ''">
AND contract_num LIKE CONCAT('%',CONCAT(#{contractNum},'%'))
</if>
<if test="contractName != null and contractName != ''">
AND contract_name LIKE CONCAT('%',CONCAT(#{contractName},'%'))
</if>
<if test="startTime != null and startTime != ''">
AND DATE_FORMAT(create_time,'%Y-%m-%d') >= #{startTime}
</if>
<if test="endTime != null and endTime != ''">
AND DATE_FORMAT(create_time,'%Y-%m-%d') &lt;= #{endTime}
</if>
</where>
ORDER BY chargeStatus desc,create_time desc
</select>
</mapper>
@@ -181,4 +181,18 @@ public interface IPayIncomeContractService extends IService<PayIncomeContract> {
* @Exception
*/
void insertPayIncomeContract(PayIncomeContract payIncomeContract,String projectId,Integer projectType);
/**
* @Description excel 导出列表
* @Author lqt
* @Date 2021/9/3
* @Param payIncomeContract 收入合同
* @Param chargeStatus 来款状态
* @Param startTime 开始时间
* @Param endTime 结束时间
* @Return
* @Exception
*/
List<PayIncomeContract> queryList(PayIncomeContract payIncomeContract, String chargeStatus,String projectName, String startTime, String endTime);
}
@@ -71,4 +71,13 @@ public interface IPaySpendingContractService extends IService<PaySpendingContrac
* @Exception
*/
void importExcel(HttpServletRequest req);
/**
* @Description excel导出
* @Author lqt
* @Date 2021/9/8
* @Param
* @Return
* @Exception
*/
List<PaySpendingContract> queryList(String contractNum,String contractName,String startTime,String endTime);
}
@@ -971,7 +971,7 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
throw new JeroBootException("收入合同不存在!");
}
if(!Objects.equals(payIncomeContractStatus.getStatus(),PayIncomeContractCommon.STATUS1)
&& Objects.equals(payIncomeContractStatus.getStatus(),PayIncomeContractCommon.STATUS4)){
&& !Objects.equals(payIncomeContractStatus.getStatus(),PayIncomeContractCommon.STATUS4)){
throw new JeroBootException("收入合同不可删除!");
}
payIncomeContractService.removeById(id);
@@ -1089,4 +1089,9 @@ public class PayIncomeContractServiceImpl extends ServiceImpl<PayIncomeContractM
payIncomeContractAssociatedService.save(payIncomeContractAssociated);
}
}
@Override
public List<PayIncomeContract> queryList(PayIncomeContract payIncomeContract, String chargeStatus, String projectName, String startTime, String endTime) {
return payIncomeContractMapper.queryList(payIncomeContract, chargeStatus, projectName, startTime, endTime);
}
}
@@ -479,7 +479,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
}else{
sb.append("第").append(n + 1).append("行,负责人不能为空,请修改!");
}
if(!Objects.isNull(paySpendingContract.getPack()) && StringUtils.isBlank(paySpendingContract.getPackYear())){
if(!Objects.isNull(paySpendingContract.getPack()) && Objects.equals(paySpendingContract.getPack(),PayIncomeContractCommon.PACK1) && StringUtils.isBlank(paySpendingContract.getPackYear())){
sb.append("第").append(n + 1).append("行,打包年份不能为空,请修改!");
}
if(!Objects.isNull(paySpendingContract.getAccountsReceivableAmount()) && !Objects.isNull(paySpendingContract.getAmountReceived())
@@ -517,7 +517,7 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
}else{
paySpendingContract.setAccountStatus(PayIncomeContractCommon.ACCOUNT_STATUS1);
}
paySpendingContract.setNoTaxAmount(paySpendingContract.getContractAmount().divide(new BigDecimal("1").add(paySpendingContract.getRate().divide(new BigDecimal("100")))));
paySpendingContract.setNoTaxAmount((Objects.isNull(paySpendingContract.getContractAmount()) ? new BigDecimal("0.00") : paySpendingContract.getContractAmount()).divide(new BigDecimal("1").add(paySpendingContract.getRate().divide(new BigDecimal("100"))),2,BigDecimal.ROUND_HALF_UP));
setPaySpendingContractAdd(paySpendingContract);
paySpendingContractService.save(paySpendingContract);
List<PaySpendingContractInstallment> listPaySpendingContractInstallment = p.getListInstallment();
@@ -535,6 +535,11 @@ public class PaySpendingContractServiceImpl extends ServiceImpl<PaySpendingContr
}
}
@Override
public List<PaySpendingContract> queryList(String contractNum, String contractName, String startTime, String endTime) {
return paySpendingContractMapper.queryList( contractNum, contractName, startTime, endTime);
}
private PaySpendingContract setPaySpendingContractExcel(Map<Integer,String> map,Map<String, String> mapOpening,Map<String, String> mapPack,
int n,StringBuilder sb){
@@ -1,13 +1,7 @@
package com.jero.contract.vo;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.jero.common.aspect.annotation.Dict;
import io.swagger.annotations.ApiModelProperty;
import lombok.Data;
import org.jeecgframework.poi.excel.annotation.Excel;
import javax.validation.constraints.Max;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
@@ -21,7 +15,7 @@ public class PaySpendingContractExcelModel implements Serializable {
@Excel(name = "合同名称", width = 15)
private String contractName;
/**临时签订单位名称*/
@Excel(name = "签订单位名称", width = 15)
@Excel(name = "签订单位", width = 15)
private String signedCompanyTemporaryName;
/**临时签订单位联系人名称*/
@Excel(name = "签订单位联系人", width = 15)