Commit af2026af authored by hongguangwu's avatar hongguangwu

合同优化-待提交

parent 0e998c48
...@@ -717,6 +717,8 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr ...@@ -717,6 +717,8 @@ public class TEmployeeContractInfoServiceImpl extends ServiceImpl<TEmployeeContr
errorInfo.append(EmployeeConstants.CONTRACT_NO_IN_USE); errorInfo.append(EmployeeConstants.CONTRACT_NO_IN_USE);
} else { } else {
insert.setContractName(contractInfo.getContractName()); insert.setContractName(contractInfo.getContractName());
insert.setContractSubName(contractInfo.getContractSubName());
insert.setReason(contractInfo.getReason());
insert.setSubjectUnit(contractInfo.getSubjectUnit()); insert.setSubjectUnit(contractInfo.getSubjectUnit());
insert.setContractParty(contractInfo.getContractParty()); insert.setContractParty(contractInfo.getContractParty());
insert.setContractType(contractInfo.getContractType()); insert.setContractType(contractInfo.getContractType());
......
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.controller;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.common.log.annotation.SysLog;
import com.yifu.cloud.plus.v1.yifu.social.entity.TForecastLibrary;
import com.yifu.cloud.plus.v1.yifu.social.service.TForecastLibraryService;
import io.swagger.v3.oas.annotations.Operation;
import io.swagger.v3.oas.annotations.security.SecurityRequirement;
import io.swagger.v3.oas.annotations.tags.Tag;
import lombok.RequiredArgsConstructor;
import lombok.SneakyThrows;
import org.springframework.http.HttpHeaders;
import org.springframework.security.access.prepost.PreAuthorize;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile;
import javax.servlet.http.HttpServletResponse;
import java.util.List;
/**
* 预估费用
*
* @author hgw
* @date 2022-07-18 16:21:40
*/
@RestController
@RequiredArgsConstructor
@RequestMapping("/tforecastlibrary")
@Tag(name = "预估费用管理")
@SecurityRequirement(name = HttpHeaders.AUTHORIZATION)
public class TForecastLibraryController {
private final TForecastLibraryService tForecastLibraryService;
/**
* 简单分页查询
*
* @param page 分页对象
* @param tForecastLibrary 预估费用
* @return
*/
@Operation(description = "简单分页查询")
@GetMapping("/page")
public R<IPage<TForecastLibrary>> getTForecastLibraryPage(Page<TForecastLibrary> page, TForecastLibrary tForecastLibrary) {
return new R<>(tForecastLibraryService.getTForecastLibraryPage(page, tForecastLibrary));
}
/**
* 不分页查询
*
* @param tForecastLibrary 预估费用
* @return
*/
@Operation(summary = "不分页查询", description = "不分页查询")
@PostMapping("/noPage")
//@PreAuthorize("@pms.hasPermission('social_tforecastlibrary_get')" )
public R<List<TForecastLibrary>> getTForecastLibraryNoPage(@RequestBody TForecastLibrary tForecastLibrary) {
return R.ok(tForecastLibraryService.noPageDiy(tForecastLibrary));
}
/**
* 通过id查询预估费用
*
* @param id id
* @return R
*/
@Operation(summary = "通过id查询", description = "通过id查询:hasPermission('social_tforecastlibrary_get')")
@GetMapping("/{id}")
@PreAuthorize("@pms.hasPermission('social_tforecastlibrary_get')")
public R<TForecastLibrary> getById(@PathVariable("id") String id) {
return R.ok(tForecastLibraryService.getById(id));
}
/**
* 新增预估费用
*
* @param tForecastLibrary 预估费用
* @return R
*/
@Operation(summary = "新增预估费用", description = "新增预估费用:hasPermission('social_tforecastlibrary_add')")
@SysLog("新增预估费用")
@PostMapping
@PreAuthorize("@pms.hasPermission('social_tforecastlibrary_add')")
public R<Boolean> save(@RequestBody TForecastLibrary tForecastLibrary) {
return R.ok(tForecastLibraryService.save(tForecastLibrary));
}
/**
* 修改预估费用
*
* @param tForecastLibrary 预估费用
* @return R
*/
@Operation(summary = "修改预估费用", description = "修改预估费用:hasPermission('social_tforecastlibrary_edit')")
@SysLog("修改预估费用")
@PutMapping
@PreAuthorize("@pms.hasPermission('social_tforecastlibrary_edit')")
public R<Boolean> updateById(@RequestBody TForecastLibrary tForecastLibrary) {
return R.ok(tForecastLibraryService.updateById(tForecastLibrary));
}
/**
* 通过id删除预估费用
*
* @param id id
* @return R
*/
@Operation(summary = "通过id删除预估费用", description = "通过id删除预估费用:hasPermission('social_tforecastlibrary_del')")
@SysLog("通过id删除预估费用")
@DeleteMapping("/{id}")
@PreAuthorize("@pms.hasPermission('social_tforecastlibrary_del')")
public R<Boolean> removeById(@PathVariable String id) {
return R.ok(tForecastLibraryService.removeById(id));
}
/**
* 预估费用 批量导出
*
* @author hgw
* @date 2022-07-18 16:21:40
**/
@Operation(description = "导出预估费用 hasPermission('social_tforecastlibrary-export')")
@PostMapping("/export")
@PreAuthorize("@pms.hasPermission('social_tforecastlibrary-export')")
public void export(HttpServletResponse response, @RequestBody TForecastLibrary searchVo) {
tForecastLibraryService.listExport(response, searchVo);
}
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.mapper;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.yifu.cloud.plus.v1.yifu.social.entity.TForecastLibrary;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
/**
* 预估费用
*
* @author hgw
* @date 2022-07-18 16:21:40
*/
@Mapper
public interface TForecastLibraryMapper extends BaseMapper<TForecastLibrary> {
/**
* 预估费用简单分页查询
*
* @param tForecastLibrary 预估费用
* @return
*/
IPage<TForecastLibrary> getTForecastLibraryPage(Page<TForecastLibrary> page, @Param("tForecastLibrary") TForecastLibrary tForecastLibrary);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.service;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.IService;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ErrorMessage;
import com.yifu.cloud.plus.v1.yifu.common.core.util.R;
import com.yifu.cloud.plus.v1.yifu.social.entity.TForecastLibrary;
import javax.servlet.http.HttpServletResponse;
import java.io.InputStream;
import java.util.List;
/**
* 预估费用
*
* @author hgw
* @date 2022-07-18 16:21:40
*/
public interface TForecastLibraryService extends IService<TForecastLibrary> {
/**
* 预估费用简单分页查询
*
* @param tForecastLibrary 预估费用
* @return
*/
IPage<TForecastLibrary> getTForecastLibraryPage(Page<TForecastLibrary> page, TForecastLibrary tForecastLibrary);
void listExport(HttpServletResponse response, TForecastLibrary searchVo);
List<TForecastLibrary> noPageDiy(TForecastLibrary searchVo);
}
/*
* Copyright (c) 2018-2025, lengleng All rights reserved.
*
* Redistribution and use in source and binary forms, with or without
* modification, are permitted provided that the following conditions are met:
*
* Redistributions of source code must retain the above copyright notice,
* this list of conditions and the following disclaimer.
* Redistributions in binary form must reproduce the above copyright
* notice, this list of conditions and the following disclaimer in the
* documentation and/or other materials provided with the distribution.
* Neither the name of the yifu4cloud.com developer nor the names of its
* contributors may be used to endorse or promote products derived from
* this software without specific prior written permission.
* Author: lengleng (wangiegie@gmail.com)
*/
package com.yifu.cloud.plus.v1.yifu.social.service.impl;
import com.alibaba.excel.EasyExcel;
import com.alibaba.excel.ExcelWriter;
import com.alibaba.excel.write.metadata.WriteSheet;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import com.yifu.cloud.plus.v1.yifu.common.core.constant.CommonConstants;
import com.yifu.cloud.plus.v1.yifu.common.core.util.Common;
import com.yifu.cloud.plus.v1.yifu.common.core.util.DateUtil;
import com.yifu.cloud.plus.v1.yifu.common.core.util.ExcelUtil;
import com.yifu.cloud.plus.v1.yifu.common.mybatis.base.BaseEntity;
import com.yifu.cloud.plus.v1.yifu.social.entity.TForecastLibrary;
import com.yifu.cloud.plus.v1.yifu.social.mapper.TForecastLibraryMapper;
import com.yifu.cloud.plus.v1.yifu.social.service.TForecastLibraryService;
import lombok.extern.log4j.Log4j2;
import org.springframework.stereotype.Service;
import javax.servlet.ServletOutputStream;
import javax.servlet.http.HttpServletResponse;
import java.io.IOException;
import java.net.URLEncoder;
import java.util.ArrayList;
import java.util.List;
/**
* 预估费用
*
* @author hgw
* @date 2022-07-18 16:21:40
*/
@Log4j2
@Service
public class TForecastLibraryServiceImpl extends ServiceImpl<TForecastLibraryMapper, TForecastLibrary> implements TForecastLibraryService {
/**
* 预估费用简单分页查询
*
* @param tForecastLibrary 预估费用
* @return
*/
@Override
public IPage<TForecastLibrary> getTForecastLibraryPage(Page<TForecastLibrary> page, TForecastLibrary tForecastLibrary) {
return baseMapper.getTForecastLibraryPage(page, tForecastLibrary);
}
/**
* 预估费用批量导出
*
* @param searchVo 预估费用
* @return
*/
@Override
public void listExport(HttpServletResponse response, TForecastLibrary searchVo) {
String fileName = "预估费用批量导出" + DateUtil.getThisTime() + ".xlsx";
//获取要导出的列表
List<TForecastLibrary> list = new ArrayList<>();
long count = noPageCountDiy(searchVo);
ServletOutputStream out = null;
try {
out = response.getOutputStream();
response.setContentType("multipart/form-data");
response.setCharacterEncoding("utf-8");
response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8"));
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,然后文件流会自动关闭
//EasyExcel.write(out, TEmpBadRecord.class).sheet("预估费用").doWrite(list)
ExcelWriter excelWriter = EasyExcel.write(out, TForecastLibrary.class).build();
int index = 0;
if (count > CommonConstants.ZERO_INT) {
for (int i = 0; i <= count; ) {
// 获取实际记录
searchVo.setLimitStart(i);
searchVo.setLimitEnd(CommonConstants.EXCEL_EXPORT_LIMIT);
list = noPageDiy(searchVo);
if (Common.isNotNull(list)) {
ExcelUtil<TForecastLibrary> util = new ExcelUtil<>(TForecastLibrary.class);
for (TForecastLibrary vo : list) {
util.convertEntity(vo, null, null, null);
}
}
if (Common.isNotNull(list)) {
WriteSheet writeSheet = EasyExcel.writerSheet("预估费用" + index).build();
excelWriter.write(list, writeSheet);
index++;
}
i = i + CommonConstants.EXCEL_EXPORT_LIMIT;
if (Common.isNotNull(list)) {
list.clear();
}
}
} else {
WriteSheet writeSheet = EasyExcel.writerSheet("预估费用" + index).build();
excelWriter.write(list, writeSheet);
}
if (Common.isNotNull(list)) {
list.clear();
}
out.flush();
excelWriter.finish();
} catch (Exception e) {
log.error("执行异常", e);
} finally {
try {
if (null != out) {
out.close();
}
} catch (IOException e) {
log.error("执行异常", e);
}
}
}
@Override
public List<TForecastLibrary> noPageDiy(TForecastLibrary searchVo) {
LambdaQueryWrapper<TForecastLibrary> wrapper = buildQueryWrapper(searchVo);
if (Common.isNotNull(searchVo.getIdList())) {
wrapper.in(TForecastLibrary::getId, searchVo.getIdList());
}
if (searchVo.getLimitStart() >= 0 && searchVo.getLimitEnd() > 0) {
wrapper.last(" limit " + searchVo.getLimitStart() + "," + searchVo.getLimitEnd());
}
wrapper.orderByDesc(BaseEntity::getCreateTime);
return baseMapper.selectList(wrapper);
}
private Long noPageCountDiy(TForecastLibrary searchVo) {
LambdaQueryWrapper<TForecastLibrary> wrapper = buildQueryWrapper(searchVo);
if (Common.isNotNull(searchVo.getIdList())) {
wrapper.in(TForecastLibrary::getId, searchVo.getIdList());
}
return baseMapper.selectCount(wrapper);
}
private LambdaQueryWrapper buildQueryWrapper(TForecastLibrary entity) {
LambdaQueryWrapper<TForecastLibrary> wrapper = Wrappers.lambdaQuery();
if (Common.isNotNull(entity.getCreateTimeStart())) {
wrapper.ge(TForecastLibrary::getCreateTime, entity.getCreateTimeStart());
}
if (Common.isNotNull(entity.getCreateTimeEnd())) {
wrapper.le(TForecastLibrary::getCreateTime, entity.getCreateTimeEnd());
}
if (Common.isNotNull(entity.getCreateName())) {
wrapper.eq(TForecastLibrary::getCreateName, entity.getCreateName());
}
return wrapper;
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment