导入和导入模板上传

product
tengxi 2 years ago
parent 312f7d9e14
commit aea8863eb3

@ -13,6 +13,7 @@ import io.swagger.annotations.ApiOperation;
import jnpf.base.ActionResult; import jnpf.base.ActionResult;
import jnpf.base.NoDataSourceBind; import jnpf.base.NoDataSourceBind;
import jnpf.base.UserInfo; import jnpf.base.UserInfo;
import jnpf.base.entity.BillRuleEntity;
import jnpf.base.util.OptimizeUtil; import jnpf.base.util.OptimizeUtil;
import jnpf.base.vo.DownloadVO; import jnpf.base.vo.DownloadVO;
import jnpf.base.vo.PageListVO; import jnpf.base.vo.PageListVO;
@ -27,9 +28,14 @@ import jnpf.contractfile.service.ContractFileService;
import jnpf.contractfile.service.Contract_item0Service; import jnpf.contractfile.service.Contract_item0Service;
import jnpf.contractfile.service.Contract_item1Service; import jnpf.contractfile.service.Contract_item1Service;
import jnpf.exception.DataException; import jnpf.exception.DataException;
import jnpf.model.EmployeeModel;
import jnpf.model.UploaderVO; import jnpf.model.UploaderVO;
import jnpf.model.employee.EmployeeImportVO;
import jnpf.permission.model.user.vo.UserExportVO;
import jnpf.permission.model.user.vo.UserImportVO;
import jnpf.util.*; import jnpf.util.*;
import jnpf.util.enums.FileTypeEnum; import jnpf.util.enums.FileTypeEnum;
import jnpf.util.enums.ModuleTypeEnum;
import jnpf.util.file.UploadUtil; import jnpf.util.file.UploadUtil;
import jnpf.utils.YozoUtils; import jnpf.utils.YozoUtils;
import lombok.Cleanup; import lombok.Cleanup;
@ -44,6 +50,7 @@ import org.springframework.web.bind.annotation.*;
import org.springframework.web.multipart.MultipartFile; import org.springframework.web.multipart.MultipartFile;
import javax.validation.Valid; import javax.validation.Valid;
import java.io.File;
import java.io.FileOutputStream; import java.io.FileOutputStream;
import java.io.IOException; import java.io.IOException;
import java.io.InputStream; import java.io.InputStream;
@ -52,8 +59,8 @@ import java.util.List;
import java.util.Map; import java.util.Map;
/** /**
*
* contractFile * contractFile
*
* @ V3.2.0 * @ V3.2.0
* @ LINKAGE-BOOT * @ LINKAGE-BOOT
* @ LINKAGE-BOOT * @ LINKAGE-BOOT
@ -61,7 +68,7 @@ import java.util.Map;
*/ */
@Slf4j @Slf4j
@RestController @RestController
@Api(tags = "contractFile" , value = "example") @Api(tags = "contractFile", value = "example")
@RequestMapping("/api/example/ContractFile") @RequestMapping("/api/example/ContractFile")
public class ContractFileController { public class ContractFileController {
@ -85,28 +92,27 @@ public class ContractFileController {
private YozoUtils yozoUtils; private YozoUtils yozoUtils;
/** /**
* *
* *
* @param contractFilePagination * @param contractFilePagination
* @return * @return
*/ */
@PostMapping("/getList") @PostMapping("/getList")
public ActionResult list(@RequestBody ContractFilePagination contractFilePagination)throws IOException{ public ActionResult list(@RequestBody ContractFilePagination contractFilePagination) throws IOException {
List<ContractFileEntity> list= contractFileService.getList(contractFilePagination); List<ContractFileEntity> list = contractFileService.getList(contractFilePagination);
//处理id字段转名称若无需转或者为空可删除 //处理id字段转名称若无需转或者为空可删除
for(ContractFileEntity entity:list){ for (ContractFileEntity entity : list) {
entity.setApproval(generaterSwapUtil.switchSelectValue(entity.getApproval() ,"开" ,"关")); entity.setApproval(generaterSwapUtil.switchSelectValue(entity.getApproval(), "开", "关"));
} }
List<ContractFileListVO> listVO=JsonUtil.getJsonToList(list,ContractFileListVO.class); List<ContractFileListVO> listVO = JsonUtil.getJsonToList(list, ContractFileListVO.class);
for(ContractFileListVO contractFileVO:listVO){ for (ContractFileListVO contractFileVO : listVO) {
} }
PageListVO vo=new PageListVO(); PageListVO vo = new PageListVO();
vo.setList(listVO); vo.setList(listVO);
PaginationVO page=JsonUtil.getJsonToBean(contractFilePagination,PaginationVO.class); PaginationVO page = JsonUtil.getJsonToBean(contractFilePagination, PaginationVO.class);
vo.setPagination(page); vo.setPagination(page);
return ActionResult.success(vo); return ActionResult.success(vo);
} }
@ -121,198 +127,248 @@ public class ContractFileController {
@PostMapping @PostMapping
@Transactional @Transactional
public ActionResult create(@RequestBody @Valid ContractFileCrForm contractFileCrForm) throws DataException { public ActionResult create(@RequestBody @Valid ContractFileCrForm contractFileCrForm) throws DataException {
String mainId =RandomUtil.uuId(); String mainId = RandomUtil.uuId();
UserInfo userInfo=userProvider.get(); UserInfo userInfo = userProvider.get();
ContractFileEntity entity = JsonUtil.getJsonToBean(contractFileCrForm, ContractFileEntity.class); ContractFileEntity entity = JsonUtil.getJsonToBean(contractFileCrForm, ContractFileEntity.class);
entity.setId(mainId); entity.setId(mainId);
contractFileService.save(entity); contractFileService.save(entity);
List<Contract_item0Entity> Contract_item0List = JsonUtil.getJsonToList(contractFileCrForm.getContract_item0List(),Contract_item0Entity.class); List<Contract_item0Entity> Contract_item0List = JsonUtil.getJsonToList(contractFileCrForm.getContract_item0List(), Contract_item0Entity.class);
for(Contract_item0Entity entitys : Contract_item0List){ for (Contract_item0Entity entitys : Contract_item0List) {
entitys.setId(RandomUtil.uuId()); entitys.setId(RandomUtil.uuId());
entitys.setContractId(entity.getId()); entitys.setContractId(entity.getId());
contract_item0Service.save(entitys);
}
List<Contract_item1Entity> Contract_item1List = JsonUtil.getJsonToList(contractFileCrForm.getContract_item1List(), Contract_item1Entity.class);
for (Contract_item1Entity entitys : Contract_item1List) {
entitys.setId(RandomUtil.uuId());
entitys.setContractId(entity.getId());
contract_item1Service.save(entitys);
}
return ActionResult.success("创建成功");
}
contract_item0Service.save(entitys);
}
List<Contract_item1Entity> Contract_item1List = JsonUtil.getJsonToList(contractFileCrForm.getContract_item1List(),Contract_item1Entity.class); /**
for(Contract_item1Entity entitys : Contract_item1List){ *
entitys.setId(RandomUtil.uuId()); *
entitys.setContractId(entity.getId()); * @return
*/
contract_item1Service.save(entitys); @ApiOperation("模板下载")
} @GetMapping("/TemplateDownload")
public ActionResult<DownloadVO> TemplateDownload() {
UserInfo userInfo = userProvider.get();
DownloadVO vo = DownloadVO.builder().build();
try {
vo.setName("合同档案信息.xlsx");
vo.setUrl(UploaderUtil.uploaderFile("/api/file/DownloadModel?encryption=", userInfo.getId() + "#" + "合同档案信息" +
".xlsx" + "#" + "Temporary"));
} catch (Exception e) {
log.error("信息导出Excel错误:" + e.getMessage());
}
return ActionResult.success(vo);
}
/**
* (excel)
*
* @return
*/
@ApiOperation("上传文件")
@PostMapping("/Uploader")
public ActionResult Uploader() {
List<MultipartFile> list = UpUtil.getFileAll();
MultipartFile file = list.get(0);
if (file.getOriginalFilename().endsWith(".xlsx") || file.getOriginalFilename().endsWith(".xls")) {
String filePath = configValueUtil.getTemporaryFilePath();
String fileName = RandomUtil.uuId() + "." + UpUtil.getFileType(file);
fileName = XSSEscape.escape(fileName);
//上传文件
FileUtil.upFile(file, filePath, fileName);
DownloadVO vo = DownloadVO.builder().build();
vo.setName(fileName);
return ActionResult.success(vo);
} else {
return ActionResult.fail("选择文件不符合导入");
}
return ActionResult.success("创建成功"); }
}
/**
*
*
* @return
*/
@ApiOperation("导入预览")
@GetMapping("/ImportPreview")
public ActionResult ImportPreview(String fileName) {
String filePath = configValueUtil.getTemporaryFilePath();
File temporary = new File(XSSEscape.escapePath(filePath + fileName));
//得到数据
List<ContractFileModel> personList = ExcelUtil.importExcel(temporary, 0, 1, ContractFileModel.class);
//预览数据
Map<String, Object> map = contractFileService.importPreview(personList);
return ActionResult.success(map);
}
/** /**
* *
* *
* @return * @return
*/ */
@ApiOperation("模板下载") @ApiOperation("导入数据")
@GetMapping("/templateDownload") @PostMapping("/ImportData")
public ActionResult<DownloadVO> TemplateDownload(){ public ActionResult ImportData(@RequestBody ContractFileModel data) {
UserInfo userInfo=userProvider.get(); List<ContractFileModel> dataList = JsonUtil.getJsonToList(data.getList(), ContractFileModel.class);
DownloadVO vo=DownloadVO.builder().build(); //导入数据
try{ ContractfileImportVO result = contractFileService.importData(dataList);
vo.setName("职员信息.xlsx"); return ActionResult.success(result);
vo.setUrl(UploaderUtil.uploaderFile("/api/Common/DownloadModel?encryption=" ,userInfo.getId()+"#"+"职员信息.xlsx"+"#"+"Temporary"));
}catch(Exception e){
log.error("信息导出Excel错误:{}" ,e.getMessage());
}
return ActionResult.success(vo);
} }
/** /**
* Excel * Excel
* *
* @return * @return
*/ */
@ApiOperation("导出Excel") @ApiOperation("导出Excel")
@GetMapping("/Actions/Export") @GetMapping("/Actions/Export")
public ActionResult Export(ContractFilePaginationExportModel contractFilePaginationExportModel) throws IOException { public ActionResult Export(ContractFilePaginationExportModel contractFilePaginationExportModel) throws IOException {
if (StringUtil.isEmpty(contractFilePaginationExportModel.getSelectKey())){ if (StringUtil.isEmpty(contractFilePaginationExportModel.getSelectKey())) {
return ActionResult.fail("请选择导出字段"); return ActionResult.fail("请选择导出字段");
} }
ContractFilePagination contractFilePagination=JsonUtil.getJsonToBean(contractFilePaginationExportModel, ContractFilePagination.class); ContractFilePagination contractFilePagination = JsonUtil.getJsonToBean(contractFilePaginationExportModel, ContractFilePagination.class);
List<ContractFileEntity> list= contractFileService.getTypeList(contractFilePagination,contractFilePaginationExportModel.getDataType()); List<ContractFileEntity> list = contractFileService.getTypeList(contractFilePagination, contractFilePaginationExportModel.getDataType());
//处理id字段转名称若无需转或者为空可删除 //处理id字段转名称若无需转或者为空可删除
for(ContractFileEntity entity:list){ for (ContractFileEntity entity : list) {
entity.setApproval(generaterSwapUtil.switchSelectValue(entity.getApproval() ,"开" ,"关")); entity.setApproval(generaterSwapUtil.switchSelectValue(entity.getApproval(), "开", "关"));
} }
List<ContractFileListVO> listVO=JsonUtil.getJsonToList(list,ContractFileListVO.class); List<ContractFileListVO> listVO = JsonUtil.getJsonToList(list, ContractFileListVO.class);
for(ContractFileListVO contractFileVO:listVO){ for (ContractFileListVO contractFileVO : listVO) {
} }
//转换为map输出 //转换为map输出
List<Map<String, Object>>mapList=JsonUtil.getJsonToListMap(JsonUtil.getObjectToStringDateFormat(listVO,"yyyy-MM-dd HH:mm:ss")); List<Map<String, Object>> mapList = JsonUtil.getJsonToListMap(JsonUtil.getObjectToStringDateFormat(listVO, "yyyy-MM-dd HH:mm:ss"));
String[]keys=!StringUtil.isEmpty(contractFilePaginationExportModel.getSelectKey())?contractFilePaginationExportModel.getSelectKey().split(","):new String[0]; String[] keys = !StringUtil.isEmpty(contractFilePaginationExportModel.getSelectKey()) ? contractFilePaginationExportModel.getSelectKey().split(",") : new String[0];
UserInfo userInfo=userProvider.get(); UserInfo userInfo = userProvider.get();
DownloadVO vo=this.creatModelExcel(configValueUtil.getTemporaryFilePath(),mapList,keys,userInfo); DownloadVO vo = this.creatModelExcel(configValueUtil.getTemporaryFilePath(), mapList, keys, userInfo);
return ActionResult.success(vo); return ActionResult.success(vo);
} }
//导出表格 //导出表格
public DownloadVO creatModelExcel(String path,List<Map<String, Object>>list,String[]keys,UserInfo userInfo){ public DownloadVO creatModelExcel(String path, List<Map<String, Object>> list, String[] keys, UserInfo userInfo) {
DownloadVO vo=DownloadVO.builder().build(); DownloadVO vo = DownloadVO.builder().build();
List<ExcelExportEntity> entitys=new ArrayList<>(); List<ExcelExportEntity> entitys = new ArrayList<>();
if(keys.length>0){ if (keys.length > 0) {
for(String key:keys){ for (String key : keys) {
switch(key){ switch (key) {
case "contractType" : case "contractType":
entitys.add(new ExcelExportEntity("合同类型 " ,"contractType")); entitys.add(new ExcelExportEntity("合同类型 ", "contractType"));
break; break;
case "contractCode" : case "contractCode":
entitys.add(new ExcelExportEntity("合同编码" ,"contractCode")); entitys.add(new ExcelExportEntity("合同编码", "contractCode"));
break; break;
case "contractName" : case "contractName":
entitys.add(new ExcelExportEntity("合同名称" ,"contractName")); entitys.add(new ExcelExportEntity("合同名称", "contractName"));
break; break;
case "status" : case "status":
entitys.add(new ExcelExportEntity("合同状态" ,"status")); entitys.add(new ExcelExportEntity("合同状态", "status"));
break; break;
case "bidOpeningDate" : case "bidOpeningDate":
entitys.add(new ExcelExportEntity("开标日期" ,"bidOpeningDate")); entitys.add(new ExcelExportEntity("开标日期", "bidOpeningDate"));
break; break;
case "startDate" : case "startDate":
entitys.add(new ExcelExportEntity("开始日期" ,"startDate")); entitys.add(new ExcelExportEntity("开始日期", "startDate"));
break; break;
case "auditDate" : case "auditDate":
entitys.add(new ExcelExportEntity("审核日期" ,"auditDate")); entitys.add(new ExcelExportEntity("审核日期", "auditDate"));
break; break;
case "completionDate" : case "completionDate":
entitys.add(new ExcelExportEntity("供货完成日期" ,"completionDate")); entitys.add(new ExcelExportEntity("供货完成日期", "completionDate"));
break; break;
case "closingDate" : case "closingDate":
entitys.add(new ExcelExportEntity("关闭日期" ,"closingDate")); entitys.add(new ExcelExportEntity("关闭日期", "closingDate"));
break; break;
case "collectionCycle" : case "collectionCycle":
entitys.add(new ExcelExportEntity("回款周期(日)" ,"collectionCycle")); entitys.add(new ExcelExportEntity("回款周期(日)", "collectionCycle"));
break; break;
case "signingDate" : case "signingDate":
entitys.add(new ExcelExportEntity("签订日期" ,"signingDate")); entitys.add(new ExcelExportEntity("签订日期", "signingDate"));
break; break;
case "endDate" : case "endDate":
entitys.add(new ExcelExportEntity("截止日期" ,"endDate")); entitys.add(new ExcelExportEntity("截止日期", "endDate"));
break; break;
case "code" : case "code":
entitys.add(new ExcelExportEntity("供应商/客户编" ,"code")); entitys.add(new ExcelExportEntity("供应商/客户编", "code"));
break; break;
case "name" : case "name":
entitys.add(new ExcelExportEntity("供应商/客户名" ,"name")); entitys.add(new ExcelExportEntity("供应商/客户名", "name"));
break; break;
case "contractNo" : case "contractNo":
entitys.add(new ExcelExportEntity("对方合同号" ,"contractNo")); entitys.add(new ExcelExportEntity("对方合同号", "contractNo"));
break; break;
case "currency" : case "currency":
entitys.add(new ExcelExportEntity("币种 " ,"currency")); entitys.add(new ExcelExportEntity("币种 ", "currency"));
break; break;
case "num" : case "num":
entitys.add(new ExcelExportEntity("数量" ,"num")); entitys.add(new ExcelExportEntity("数量", "num"));
break; break;
case "amount" : case "amount":
entitys.add(new ExcelExportEntity("金额" ,"amount")); entitys.add(new ExcelExportEntity("金额", "amount"));
break; break;
case "organization" : case "organization":
entitys.add(new ExcelExportEntity("库存组织" ,"organization")); entitys.add(new ExcelExportEntity("库存组织", "organization"));
break; break;
case "remark" : case "remark":
entitys.add(new ExcelExportEntity("备注" ,"remark")); entitys.add(new ExcelExportEntity("备注", "remark"));
break; break;
case "classification" : case "classification":
entitys.add(new ExcelExportEntity("合同分类 " ,"classification")); entitys.add(new ExcelExportEntity("合同分类 ", "classification"));
break; break;
case "declarationDate" : case "declarationDate":
entitys.add(new ExcelExportEntity("申报日期" ,"declarationDate")); entitys.add(new ExcelExportEntity("申报日期", "declarationDate"));
break; break;
case "deptCode" : case "deptCode":
entitys.add(new ExcelExportEntity("部门编码" ,"deptCode")); entitys.add(new ExcelExportEntity("部门编码", "deptCode"));
break; break;
case "creatorusername" : case "creatorusername":
entitys.add(new ExcelExportEntity("录入人" ,"creatorusername")); entitys.add(new ExcelExportEntity("录入人", "creatorusername"));
break; break;
case "deptName" : case "deptName":
entitys.add(new ExcelExportEntity("部门名称" ,"deptName")); entitys.add(new ExcelExportEntity("部门名称", "deptName"));
break; break;
case "approval" : case "approval":
entitys.add(new ExcelExportEntity("集团审批" ,"approval")); entitys.add(new ExcelExportEntity("集团审批", "approval"));
break; break;
default: default:
break; break;
}
} }
} }
}
ExportParams exportParams = new ExportParams(null, "表单信息"); ExportParams exportParams = new ExportParams(null, "表单信息");
exportParams.setType(ExcelType.XSSF); exportParams.setType(ExcelType.XSSF);
try{ try {
@Cleanup Workbook workbook = new HSSFWorkbook(); @Cleanup Workbook workbook = new HSSFWorkbook();
if (entitys.size()>0){ if (entitys.size() > 0) {
workbook = ExcelExportUtil.exportExcel(exportParams, entitys, list); workbook = ExcelExportUtil.exportExcel(exportParams, entitys, list);
} }
String name = "表单信息" + DateUtil.dateNow("yyyyMMdd") + "_" + RandomUtil.uuId() + ".xlsx"; String name = "表单信息" + DateUtil.dateNow("yyyyMMdd") + "_" + RandomUtil.uuId() + ".xlsx";
String fileName = configValueUtil.getTemporaryFilePath() + name; String fileName = configValueUtil.getTemporaryFilePath() + name;
@Cleanup FileOutputStream output = new FileOutputStream(XSSEscape.escapePath(fileName)); @Cleanup FileOutputStream output = new FileOutputStream(XSSEscape.escapePath(fileName));
workbook.write(output); workbook.write(output);
//上传文件 //上传文件
UploadUtil.uploadFile(configValueUtil.getFileType(), fileName, FileTypeEnum.TEMPORARY, name); UploadUtil.uploadFile(configValueUtil.getFileType(), fileName, FileTypeEnum.TEMPORARY, name);
vo.setName(name); vo.setName(name);
vo.setUrl(UploaderUtil.uploaderFile(userInfo.getId() + "#" + name + "#" + "Temporary")); vo.setUrl(UploaderUtil.uploaderFile(userInfo.getId() + "#" + name + "#" + "Temporary"));
} catch (Exception e) { } catch (Exception e) {
log.error("信息导出Excel错误:{}", e.getMessage()); log.error("信息导出Excel错误:{}", e.getMessage());
e.printStackTrace(); e.printStackTrace();
@ -329,109 +385,98 @@ public class ContractFileController {
*/ */
@DeleteMapping("/batchRemove/{ids}") @DeleteMapping("/batchRemove/{ids}")
@Transactional @Transactional
public ActionResult batchRemove(@PathVariable("ids") String ids){ public ActionResult batchRemove(@PathVariable("ids") String ids) {
String[] idList = ids.split(","); String[] idList = ids.split(",");
int i =0; int i = 0;
for (String allId : idList){ for (String allId : idList) {
this.delete(allId); this.delete(allId);
i++; i++;
} }
if (i == 0 ){ if (i == 0) {
return ActionResult.fail("删除失败"); return ActionResult.fail("删除失败");
} }
return ActionResult.success("删除成功"); return ActionResult.success("删除成功");
} }
/** /**
* *
* *
* @param id * @param id
* @return * @return
*/ */
@GetMapping("/{id}") @GetMapping("/{id}")
public ActionResult<ContractFileInfoVO> info(@PathVariable("id") String id){ public ActionResult<ContractFileInfoVO> info(@PathVariable("id") String id) {
ContractFileEntity entity= contractFileService.getInfo(id); ContractFileEntity entity = contractFileService.getInfo(id);
ContractFileInfoVO vo=JsonUtil.getJsonToBean(entity, ContractFileInfoVO.class); ContractFileInfoVO vo = JsonUtil.getJsonToBean(entity, ContractFileInfoVO.class);
//子表 //子表
List<Contract_item0Entity> Contract_item0List = contractFileService.GetContract_item0List(id); List<Contract_item0Entity> Contract_item0List = contractFileService.GetContract_item0List(id);
for(Contract_item0Entity contract_item0Entity : Contract_item0List){ for (Contract_item0Entity contract_item0Entity : Contract_item0List) {
} }
vo.setContract_item0List(JsonUtil.getJsonToList(Contract_item0List,Contract_item0Model.class )); vo.setContract_item0List(JsonUtil.getJsonToList(Contract_item0List, Contract_item0Model.class));
List<Contract_item1Entity> Contract_item1List = contractFileService.GetContract_item1List(id); List<Contract_item1Entity> Contract_item1List = contractFileService.GetContract_item1List(id);
for(Contract_item1Entity contract_item1Entity : Contract_item1List){ for (Contract_item1Entity contract_item1Entity : Contract_item1List) {
} }
vo.setContract_item1List(JsonUtil.getJsonToList(Contract_item1List,Contract_item1Model.class )); vo.setContract_item1List(JsonUtil.getJsonToList(Contract_item1List, Contract_item1Model.class));
//副表 //副表
return ActionResult.success(vo); return ActionResult.success(vo);
} }
/** /**
* () * ()
* *
* @param id * @param id
* @return * @return
*/ */
@GetMapping("/detail/{id}") @GetMapping("/detail/{id}")
public ActionResult<ContractFileInfoVO> detailInfo(@PathVariable("id") String id){ public ActionResult<ContractFileInfoVO> detailInfo(@PathVariable("id") String id) {
ContractFileEntity entity= contractFileService.getInfo(id); ContractFileEntity entity = contractFileService.getInfo(id);
ContractFileInfoVO vo=JsonUtil.getJsonToBean(entity, ContractFileInfoVO.class); ContractFileInfoVO vo = JsonUtil.getJsonToBean(entity, ContractFileInfoVO.class);
//子表数据转换 //子表数据转换
List<Contract_item0Entity> jg_contract_item0List = contractFileService.GetContract_item0List(id); List<Contract_item0Entity> jg_contract_item0List = contractFileService.GetContract_item0List(id);
List<Contract_item0Model> jg_contract_item0ModelList = JsonUtil.getJsonToList(jg_contract_item0List,Contract_item0Model.class); List<Contract_item0Model> jg_contract_item0ModelList = JsonUtil.getJsonToList(jg_contract_item0List, Contract_item0Model.class);
for(Contract_item0Model jg_contract_item0Model : jg_contract_item0ModelList){ for (Contract_item0Model jg_contract_item0Model : jg_contract_item0ModelList) {
} }
vo.setContract_item0List(jg_contract_item0ModelList); vo.setContract_item0List(jg_contract_item0ModelList);
List<Contract_item1Entity> jg_contract_item1List = contractFileService.GetContract_item1List(id); List<Contract_item1Entity> jg_contract_item1List = contractFileService.GetContract_item1List(id);
List<Contract_item1Model> jg_contract_item1ModelList = JsonUtil.getJsonToList(jg_contract_item1List,Contract_item1Model.class); List<Contract_item1Model> jg_contract_item1ModelList = JsonUtil.getJsonToList(jg_contract_item1List, Contract_item1Model.class);
for(Contract_item1Model jg_contract_item1Model : jg_contract_item1ModelList){ for (Contract_item1Model jg_contract_item1Model : jg_contract_item1ModelList) {
jg_contract_item1Model.setEnclosure(generaterSwapUtil.getFileNameInJson(jg_contract_item1Model.getEnclosure())); jg_contract_item1Model.setEnclosure(generaterSwapUtil.getFileNameInJson(jg_contract_item1Model.getEnclosure()));
} }
vo.setContract_item1List(jg_contract_item1ModelList); vo.setContract_item1List(jg_contract_item1ModelList);
//附表数据转换 //附表数据转换
//添加到详情表单对象中 //添加到详情表单对象中
vo.setApproval(generaterSwapUtil.switchSelectValue(vo.getApproval() ,"开" ,"关")); vo.setApproval(generaterSwapUtil.switchSelectValue(vo.getApproval(), "开", "关"));
return ActionResult.success(vo); return ActionResult.success(vo);
} }
/** /**
* *
* *
* @param id * @param id
* @return * @return
*/ */
@PutMapping("/{id}") @PutMapping("/{id}")
@Transactional @Transactional
public ActionResult update(@PathVariable("id") String id,@RequestBody @Valid ContractFileUpForm contractFileUpForm) throws DataException { public ActionResult update(@PathVariable("id") String id, @RequestBody @Valid ContractFileUpForm contractFileUpForm) throws DataException {
UserInfo userInfo=userProvider.get(); UserInfo userInfo = userProvider.get();
ContractFileEntity entity= contractFileService.getInfo(id); ContractFileEntity entity = contractFileService.getInfo(id);
if(entity!=null){ if (entity != null) {
ContractFileEntity subentity=JsonUtil.getJsonToBean(contractFileUpForm, ContractFileEntity.class); ContractFileEntity subentity = JsonUtil.getJsonToBean(contractFileUpForm, ContractFileEntity.class);
contractFileService.update(id, subentity); contractFileService.update(id, subentity);
QueryWrapper<Contract_item0Entity> Contract_item0queryWrapper = new QueryWrapper<>(); QueryWrapper<Contract_item0Entity> Contract_item0queryWrapper = new QueryWrapper<>();
Contract_item0queryWrapper.lambda().eq(Contract_item0Entity::getContractId, entity.getId()); Contract_item0queryWrapper.lambda().eq(Contract_item0Entity::getContractId, entity.getId());
contract_item0Service.remove(Contract_item0queryWrapper); contract_item0Service.remove(Contract_item0queryWrapper);
List<Contract_item0Entity> Contract_item0List = JsonUtil.getJsonToList(contractFileUpForm.getContract_item0List(),Contract_item0Entity.class); List<Contract_item0Entity> Contract_item0List = JsonUtil.getJsonToList(contractFileUpForm.getContract_item0List(), Contract_item0Entity.class);
for(Contract_item0Entity entitys : Contract_item0List){ for (Contract_item0Entity entitys : Contract_item0List) {
entitys.setId(RandomUtil.uuId()); entitys.setId(RandomUtil.uuId());
@ -444,39 +489,38 @@ public class ContractFileController {
Contract_item1queryWrapper.lambda().eq(Contract_item1Entity::getContractId, entity.getId()); Contract_item1queryWrapper.lambda().eq(Contract_item1Entity::getContractId, entity.getId());
contract_item1Service.remove(Contract_item1queryWrapper); contract_item1Service.remove(Contract_item1queryWrapper);
List<Contract_item1Entity> Contract_item1List = JsonUtil.getJsonToList(contractFileUpForm.getContract_item1List(),Contract_item1Entity.class); List<Contract_item1Entity> Contract_item1List = JsonUtil.getJsonToList(contractFileUpForm.getContract_item1List(), Contract_item1Entity.class);
for(Contract_item1Entity entitys : Contract_item1List){ for (Contract_item1Entity entitys : Contract_item1List) {
entitys.setId(RandomUtil.uuId()); entitys.setId(RandomUtil.uuId());
entitys.setContractId(entity.getId()); entitys.setContractId(entity.getId());
contract_item1Service.save(entitys); contract_item1Service.save(entitys);
} }
return ActionResult.success("更新成功"); return ActionResult.success("更新成功");
}else{ } else {
return ActionResult.fail("更新失败,数据不存在"); return ActionResult.fail("更新失败,数据不存在");
} }
} }
/**
/** *
* *
* * @param id
* @param id * @return
* @return */
*/
@DeleteMapping("/{id}") @DeleteMapping("/{id}")
@Transactional @Transactional
public ActionResult delete(@PathVariable("id") String id){ public ActionResult delete(@PathVariable("id") String id) {
ContractFileEntity entity= contractFileService.getInfo(id); ContractFileEntity entity = contractFileService.getInfo(id);
if(entity!=null){ if (entity != null) {
contractFileService.delete(entity); contractFileService.delete(entity);
QueryWrapper<Contract_item0Entity> queryWrapperContract_item0=new QueryWrapper<>(); QueryWrapper<Contract_item0Entity> queryWrapperContract_item0 = new QueryWrapper<>();
queryWrapperContract_item0.lambda().eq(Contract_item0Entity::getContractId,entity.getId()); queryWrapperContract_item0.lambda().eq(Contract_item0Entity::getContractId, entity.getId());
contract_item0Service.remove(queryWrapperContract_item0); contract_item0Service.remove(queryWrapperContract_item0);
QueryWrapper<Contract_item1Entity> queryWrapperContract_item1=new QueryWrapper<>(); QueryWrapper<Contract_item1Entity> queryWrapperContract_item1 = new QueryWrapper<>();
queryWrapperContract_item1.lambda().eq(Contract_item1Entity::getContractId,entity.getId()); queryWrapperContract_item1.lambda().eq(Contract_item1Entity::getContractId, entity.getId());
contract_item1Service.remove(queryWrapperContract_item1); contract_item1Service.remove(queryWrapperContract_item1);
} }
@ -484,7 +528,6 @@ public class ContractFileController {
} }
/** /**
* *
* *
@ -492,14 +535,14 @@ public class ContractFileController {
* @return * @return
*/ */
@PostMapping("/getListByCustomer") @PostMapping("/getListByCustomer")
public ActionResult getListByCustomer(@RequestBody ContractFileEntity contractFileEntity)throws IOException{ public ActionResult getListByCustomer(@RequestBody ContractFileEntity contractFileEntity) throws IOException {
LambdaQueryWrapper<ContractFileEntity> queryWrapper = new LambdaQueryWrapper<ContractFileEntity>(); LambdaQueryWrapper<ContractFileEntity> queryWrapper = new LambdaQueryWrapper<ContractFileEntity>();
queryWrapper.eq(ContractFileEntity::getContractType, "1"); queryWrapper.eq(ContractFileEntity::getContractType, "1");
queryWrapper.eq(ContractFileEntity::getStatus, "1"); queryWrapper.eq(ContractFileEntity::getStatus, "1");
if(StringUtils.isNotEmpty(contractFileEntity.getCode())){ if (StringUtils.isNotEmpty(contractFileEntity.getCode())) {
queryWrapper.eq(ContractFileEntity::getCode, contractFileEntity.getCode()); queryWrapper.eq(ContractFileEntity::getCode, contractFileEntity.getCode());
} }
if(StringUtils.isNotEmpty(contractFileEntity.getName())){ if (StringUtils.isNotEmpty(contractFileEntity.getName())) {
queryWrapper.eq(ContractFileEntity::getName, contractFileEntity.getName()); queryWrapper.eq(ContractFileEntity::getName, contractFileEntity.getName());
} }
queryWrapper.orderByAsc(ContractFileEntity::getBidOpeningDate); queryWrapper.orderByAsc(ContractFileEntity::getBidOpeningDate);
@ -556,8 +599,8 @@ public class ContractFileController {
vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/annex/", fileName)); vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/annex/", fileName));
} else if (type.equalsIgnoreCase(FileTypeEnum.ANNEXPIC)) { } else if (type.equalsIgnoreCase(FileTypeEnum.ANNEXPIC)) {
vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/annex/", fileName)); vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/annex/", fileName));
}else { } else {
vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/"+type.toLowerCase()+"/", fileName)); vo.setUrl(UploaderUtil.uploaderImg("/api/file/Image/" + type.toLowerCase() + "/", fileName));
} }
//上传到永中 //上传到永中

@ -3,6 +3,7 @@
package jnpf.contractfile.model.contractfile; package jnpf.contractfile.model.contractfile;
import jnpf.permission.model.user.vo.UserExportVO;
import lombok.Data; import lombok.Data;
import com.fasterxml.jackson.annotation.JsonProperty; import com.fasterxml.jackson.annotation.JsonProperty;
import java.util.List; import java.util.List;
@ -131,4 +132,6 @@ public class ContractFileInfoVO{
/** 子表数据 **/ /** 子表数据 **/
@JsonProperty("contract_item1List") @JsonProperty("contract_item1List")
private List<Contract_item1Model> contract_item1List; private List<Contract_item1Model> contract_item1List;
private List<ContractFileInfoVO> list;
} }

@ -0,0 +1,48 @@
package jnpf.contractfile.model.contractfile;
import cn.afterturn.easypoi.excel.annotation.Excel;
import lombok.Data;
import java.util.List;
/**
*
* @author Allen Pan
* @version V3.4.1
* @copyright
*
*/
@Data
public class ContractFileModel {
@Excel(name = "合同编码")
private String contractCode;
@Excel(name = "合同名称")
private String contractName;
@Excel(name = "对方合同号")
private String contractNo;
@Excel(name = "合同类型")
private String contractType;
@Excel(name = "合同分类")
private String classification;
@Excel(name = "申报日期")
private String declarationDate;
@Excel(name = "供应商/客户")
private String name;
@Excel(name = "数量")
private String num;
@Excel(name = "金额")
private String amount;
@Excel(name = "部门名称")
private String deptName;
@Excel(name = "备注")
private String remark;
@Excel(name = "录入人")
private String creatorusername;
@Excel(name = "合同状态")
private String status;
@Excel(name = "集团审批")
private String approval;
private List<ContractFileModel> list;
private String creatorTime;
}

@ -0,0 +1,36 @@
package jnpf.contractfile.model.contractfile;
import jnpf.contractfile.model.contractfile.ContractFileModel;
import lombok.Data;
import java.util.List;
/**
*
* @author Allen Pan
* @version V3.4.1
* @copyright
*
*/
@Data
public class ContractfileImportVO {
/**
*
*/
private int snum;
/**
*
*/
private int fnum;
/**
* (0, 1)
*/
private int resultType;
/**
*
*/
private List<ContractFileModel> failResult;
}

@ -1,10 +1,21 @@
package jnpf.contractfile.service; package jnpf.contractfile.service;
import jnpf.base.ActionResult;
import jnpf.base.entity.BillRuleEntity;
import jnpf.contractfile.entity.Contract_item0Entity; import jnpf.contractfile.entity.Contract_item0Entity;
import jnpf.contractfile.entity.Contract_item1Entity; import jnpf.contractfile.entity.Contract_item1Entity;
import jnpf.contractfile.entity.ContractFileEntity; import jnpf.contractfile.entity.ContractFileEntity;
import com.baomidou.mybatisplus.extension.service.IService; import com.baomidou.mybatisplus.extension.service.IService;
import jnpf.contractfile.model.contractfile.ContractFileInfoVO;
import jnpf.contractfile.model.contractfile.ContractFileModel;
import jnpf.contractfile.model.contractfile.ContractFilePagination; import jnpf.contractfile.model.contractfile.ContractFilePagination;
import jnpf.contractfile.model.contractfile.ContractfileImportVO;
import jnpf.exception.DataException;
import jnpf.model.EmployeeModel;
import jnpf.model.employee.EmployeeImportVO;
import jnpf.permission.model.user.vo.UserExportVO;
import jnpf.permission.model.user.vo.UserImportVO;
import java.util.*; import java.util.*;
/** /**
* *
@ -29,6 +40,22 @@ public interface ContractFileService extends IService<ContractFileEntity> {
void create(ContractFileEntity entity); void create(ContractFileEntity entity);
boolean update( String id, ContractFileEntity entity); boolean update( String id, ContractFileEntity entity);
/**
*
*
* @param personList
* @return
*/
Map<String, Object> importPreview(List<ContractFileModel> personList);
/**
*
*
* @param dt
*/
ContractfileImportVO importData(List<ContractFileModel> dt);
// 子表方法 // 子表方法
List<Contract_item0Entity> GetContract_item0List(String id); List<Contract_item0Entity> GetContract_item0List(String id);

@ -2,16 +2,23 @@ package jnpf.contractfile.service.impl;
import jnpf.contractfile.entity.*; import jnpf.contractfile.entity.*;
import jnpf.contractfile.mapper.ContractFileMapper; import jnpf.contractfile.mapper.ContractFileMapper;
import jnpf.contractfile.model.contractfile.ContractFileModel;
import jnpf.contractfile.model.contractfile.ContractfileImportVO;
import jnpf.contractfile.service.*; import jnpf.contractfile.service.*;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import cn.hutool.core.util.ObjectUtil; import cn.hutool.core.util.ObjectUtil;
import jnpf.entity.EmployeeEntity;
import jnpf.model.EmployeeModel;
import jnpf.model.employee.EmployeeImportVO;
import jnpf.permission.model.authorize.AuthorizeConditionModel; import jnpf.permission.model.authorize.AuthorizeConditionModel;
import jnpf.contractfile.model.contractfile.ContractFilePagination; import jnpf.contractfile.model.contractfile.ContractFilePagination;
import jnpf.permission.service.AuthorizeService; import jnpf.permission.service.AuthorizeService;
import java.lang.reflect.Field; import java.lang.reflect.Field;
import com.baomidou.mybatisplus.annotation.TableField; import com.baomidou.mybatisplus.annotation.TableField;
@ -21,10 +28,10 @@ import org.springframework.beans.factory.annotation.Autowired;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page; import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import jnpf.util.*; import jnpf.util.*;
import java.util.*; import java.util.*;
/** /**
*
* contractFile * contractFile
* V3.2.0 * V3.2.0
* LINKAGE-BOOT * LINKAGE-BOOT
@ -32,7 +39,7 @@ import java.util.*;
* 2023-01-04 * 2023-01-04
*/ */
@Service @Service
public class ContractFileServiceImpl extends ServiceImpl<ContractFileMapper, ContractFileEntity> implements ContractFileService{ public class ContractFileServiceImpl extends ServiceImpl<ContractFileMapper, ContractFileEntity> implements ContractFileService {
@Autowired @Autowired
@ -49,245 +56,406 @@ public class ContractFileServiceImpl extends ServiceImpl<ContractFileMapper, Con
private Contract_item1Service contract_item1Service; private Contract_item1Service contract_item1Service;
@Override @Override
public List<ContractFileEntity> getList(ContractFilePagination contractFilePagination){ public List<ContractFileEntity> getList(ContractFilePagination contractFilePagination) {
String userId=userProvider.get().getUserId(); String userId = userProvider.get().getUserId();
List<String> AllIdList =new ArrayList(); List<String> AllIdList = new ArrayList();
int total=0; int total = 0;
int contractFileNum =0; int contractFileNum = 0;
QueryWrapper<ContractFileEntity> contractFileQueryWrapper=new QueryWrapper<>(); QueryWrapper<ContractFileEntity> contractFileQueryWrapper = new QueryWrapper<>();
int contract_item0Num =0; int contract_item0Num = 0;
QueryWrapper<Contract_item0Entity> contract_item0QueryWrapper=new QueryWrapper<>(); QueryWrapper<Contract_item0Entity> contract_item0QueryWrapper = new QueryWrapper<>();
int contract_item1Num =0; int contract_item1Num = 0;
QueryWrapper<Contract_item1Entity> contract_item1QueryWrapper=new QueryWrapper<>(); QueryWrapper<Contract_item1Entity> contract_item1QueryWrapper = new QueryWrapper<>();
boolean pcPermission = false; boolean pcPermission = false;
boolean appPermission = false; boolean appPermission = false;
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc"); boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
if(isPc && pcPermission){ if (isPc && pcPermission) {
if (!userProvider.get().getIsAdministrator()){ if (!userProvider.get().getIsAdministrator()) {
Object contractFileObj=authorizeService.getCondition(new AuthorizeConditionModel(contractFileQueryWrapper,contractFilePagination.getMenuId(),"contractFile")); Object contractFileObj = authorizeService.getCondition(new AuthorizeConditionModel(contractFileQueryWrapper, contractFilePagination.getMenuId(), "contractFile"));
if (ObjectUtil.isEmpty(contractFileObj)){ if (ObjectUtil.isEmpty(contractFileObj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
contractFileQueryWrapper = (QueryWrapper<ContractFileEntity>)contractFileObj; contractFileQueryWrapper = (QueryWrapper<ContractFileEntity>) contractFileObj;
contractFileNum++; contractFileNum++;
} }
Object contract_item0Obj=authorizeService.getCondition(new AuthorizeConditionModel(contract_item0QueryWrapper,contractFilePagination.getMenuId(),"contract_item0")); Object contract_item0Obj = authorizeService.getCondition(new AuthorizeConditionModel(contract_item0QueryWrapper, contractFilePagination.getMenuId(), "contract_item0"));
if (ObjectUtil.isEmpty(contract_item0Obj)){ if (ObjectUtil.isEmpty(contract_item0Obj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
contract_item0QueryWrapper = (QueryWrapper<Contract_item0Entity>)contract_item0Obj; contract_item0QueryWrapper = (QueryWrapper<Contract_item0Entity>) contract_item0Obj;
contract_item0Num++; contract_item0Num++;
} }
Object contract_item1Obj=authorizeService.getCondition(new AuthorizeConditionModel(contract_item1QueryWrapper,contractFilePagination.getMenuId(),"contract_item1")); Object contract_item1Obj = authorizeService.getCondition(new AuthorizeConditionModel(contract_item1QueryWrapper, contractFilePagination.getMenuId(), "contract_item1"));
if (ObjectUtil.isEmpty(contract_item1Obj)){ if (ObjectUtil.isEmpty(contract_item1Obj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
contract_item1QueryWrapper = (QueryWrapper<Contract_item1Entity>)contract_item1Obj; contract_item1QueryWrapper = (QueryWrapper<Contract_item1Entity>) contract_item1Obj;
contract_item1Num++; contract_item1Num++;
}
} }
} }
} if (!isPc && appPermission) {
if(!isPc && appPermission){ if (!userProvider.get().getIsAdministrator()) {
if (!userProvider.get().getIsAdministrator()){ Object contractFileObj = authorizeService.getCondition(new AuthorizeConditionModel(contractFileQueryWrapper, contractFilePagination.getMenuId(), "contractFile"));
Object contractFileObj=authorizeService.getCondition(new AuthorizeConditionModel(contractFileQueryWrapper,contractFilePagination.getMenuId(),"contractFile")); if (ObjectUtil.isEmpty(contractFileObj)) {
if (ObjectUtil.isEmpty(contractFileObj)){ return new ArrayList<>();
return new ArrayList<>(); } else {
} else { contractFileQueryWrapper = (QueryWrapper<ContractFileEntity>) contractFileObj;
contractFileQueryWrapper = (QueryWrapper<ContractFileEntity>)contractFileObj; contractFileNum++;
contractFileNum++; }
}
Object contract_item0Obj = authorizeService.getCondition(new AuthorizeConditionModel(contract_item0QueryWrapper, contractFilePagination.getMenuId(), "contract_item0"));
Object contract_item0Obj=authorizeService.getCondition(new AuthorizeConditionModel(contract_item0QueryWrapper,contractFilePagination.getMenuId(),"contract_item0")); if (ObjectUtil.isEmpty(contract_item0Obj)) {
if (ObjectUtil.isEmpty(contract_item0Obj)){ return new ArrayList<>();
return new ArrayList<>(); } else {
} else { contract_item0QueryWrapper = (QueryWrapper<Contract_item0Entity>) contract_item0Obj;
contract_item0QueryWrapper = (QueryWrapper<Contract_item0Entity>)contract_item0Obj; contract_item0Num++;
contract_item0Num++; }
}
Object contract_item1Obj = authorizeService.getCondition(new AuthorizeConditionModel(contract_item1QueryWrapper, contractFilePagination.getMenuId(), "contract_item1"));
if (ObjectUtil.isEmpty(contract_item1Obj)) {
return new ArrayList<>();
} else {
contract_item1QueryWrapper = (QueryWrapper<Contract_item1Entity>) contract_item1Obj;
contract_item1Num++;
}
Object contract_item1Obj=authorizeService.getCondition(new AuthorizeConditionModel(contract_item1QueryWrapper,contractFilePagination.getMenuId(),"contract_item1")); }
if (ObjectUtil.isEmpty(contract_item1Obj)){ }
return new ArrayList<>(); if (AllIdList.size() > 0) {
} else {
contract_item1QueryWrapper = (QueryWrapper<Contract_item1Entity>)contract_item1Obj;
contract_item1Num++;
}
}
}
if(AllIdList.size()>0){
contractFileQueryWrapper.lambda().in(ContractFileEntity::getId, AllIdList); contractFileQueryWrapper.lambda().in(ContractFileEntity::getId, AllIdList);
} }
//排序 //排序
if(StringUtil.isEmpty(contractFilePagination.getSidx())){ if (StringUtil.isEmpty(contractFilePagination.getSidx())) {
contractFileQueryWrapper.lambda().orderByDesc(ContractFileEntity::getId); contractFileQueryWrapper.lambda().orderByDesc(ContractFileEntity::getId);
}else{ } else {
try { try {
String sidx = contractFilePagination.getSidx(); String sidx = contractFilePagination.getSidx();
ContractFileEntity contractFileEntity = new ContractFileEntity(); ContractFileEntity contractFileEntity = new ContractFileEntity();
Field declaredField = contractFileEntity.getClass().getDeclaredField(sidx); Field declaredField = contractFileEntity.getClass().getDeclaredField(sidx);
declaredField.setAccessible(true); declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value(); String value = declaredField.getAnnotation(TableField.class).value();
contractFileQueryWrapper="asc".equals(contractFilePagination.getSort().toLowerCase())?contractFileQueryWrapper.orderByAsc(value):contractFileQueryWrapper.orderByDesc(value); contractFileQueryWrapper = "asc".equals(contractFilePagination.getSort().toLowerCase()) ? contractFileQueryWrapper.orderByAsc(value) : contractFileQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if((total>0 && AllIdList.size()>0) || total==0){ if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<ContractFileEntity> page=new Page<>(contractFilePagination.getCurrentPage(), contractFilePagination.getPageSize()); Page<ContractFileEntity> page = new Page<>(contractFilePagination.getCurrentPage(), contractFilePagination.getPageSize());
IPage<ContractFileEntity> userIPage=this.page(page, contractFileQueryWrapper); IPage<ContractFileEntity> userIPage = this.page(page, contractFileQueryWrapper);
return contractFilePagination.setData(userIPage.getRecords(),userIPage.getTotal()); return contractFilePagination.setData(userIPage.getRecords(), userIPage.getTotal());
}else{ } else {
List<ContractFileEntity> list = new ArrayList(); List<ContractFileEntity> list = new ArrayList();
return contractFilePagination.setData(list, list.size()); return contractFilePagination.setData(list, list.size());
} }
} }
@Override @Override
public List<ContractFileEntity> getTypeList(ContractFilePagination contractFilePagination,String dataType){ public List<ContractFileEntity> getTypeList(ContractFilePagination contractFilePagination, String dataType) {
String userId=userProvider.get().getUserId(); String userId = userProvider.get().getUserId();
List<String> AllIdList =new ArrayList(); List<String> AllIdList = new ArrayList();
int total=0; int total = 0;
int contractFileNum =0; int contractFileNum = 0;
QueryWrapper<ContractFileEntity> contractFileQueryWrapper=new QueryWrapper<>(); QueryWrapper<ContractFileEntity> contractFileQueryWrapper = new QueryWrapper<>();
int contract_item0Num =0; int contract_item0Num = 0;
QueryWrapper<Contract_item0Entity> contract_item0QueryWrapper=new QueryWrapper<>(); QueryWrapper<Contract_item0Entity> contract_item0QueryWrapper = new QueryWrapper<>();
int contract_item1Num =0; int contract_item1Num = 0;
QueryWrapper<Contract_item1Entity> contract_item1QueryWrapper=new QueryWrapper<>(); QueryWrapper<Contract_item1Entity> contract_item1QueryWrapper = new QueryWrapper<>();
boolean pcPermission = false; boolean pcPermission = false;
boolean appPermission = false; boolean appPermission = false;
boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc"); boolean isPc = ServletUtil.getHeader("jnpf-origin").equals("pc");
if(isPc && pcPermission){ if (isPc && pcPermission) {
if (!userProvider.get().getIsAdministrator()){ if (!userProvider.get().getIsAdministrator()) {
Object contractFileObj=authorizeService.getCondition(new AuthorizeConditionModel(contractFileQueryWrapper,contractFilePagination.getMenuId(),"contractFile")); Object contractFileObj = authorizeService.getCondition(new AuthorizeConditionModel(contractFileQueryWrapper, contractFilePagination.getMenuId(), "contractFile"));
if (ObjectUtil.isEmpty(contractFileObj)){ if (ObjectUtil.isEmpty(contractFileObj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
contractFileQueryWrapper = (QueryWrapper<ContractFileEntity>)contractFileObj; contractFileQueryWrapper = (QueryWrapper<ContractFileEntity>) contractFileObj;
contractFileNum++; contractFileNum++;
} }
Object contract_item0Obj=authorizeService.getCondition(new AuthorizeConditionModel(contract_item0QueryWrapper,contractFilePagination.getMenuId(),"contract_item0")); Object contract_item0Obj = authorizeService.getCondition(new AuthorizeConditionModel(contract_item0QueryWrapper, contractFilePagination.getMenuId(), "contract_item0"));
if (ObjectUtil.isEmpty(contract_item0Obj)){ if (ObjectUtil.isEmpty(contract_item0Obj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
contract_item0QueryWrapper = (QueryWrapper<Contract_item0Entity>)contract_item0Obj; contract_item0QueryWrapper = (QueryWrapper<Contract_item0Entity>) contract_item0Obj;
contract_item0Num++; contract_item0Num++;
} }
Object contract_item1Obj=authorizeService.getCondition(new AuthorizeConditionModel(contract_item1QueryWrapper,contractFilePagination.getMenuId(),"contract_item1")); Object contract_item1Obj = authorizeService.getCondition(new AuthorizeConditionModel(contract_item1QueryWrapper, contractFilePagination.getMenuId(), "contract_item1"));
if (ObjectUtil.isEmpty(contract_item1Obj)){ if (ObjectUtil.isEmpty(contract_item1Obj)) {
return new ArrayList<>(); return new ArrayList<>();
} else { } else {
contract_item1QueryWrapper = (QueryWrapper<Contract_item1Entity>)contract_item1Obj; contract_item1QueryWrapper = (QueryWrapper<Contract_item1Entity>) contract_item1Obj;
contract_item1Num++; contract_item1Num++;
}
} }
} }
} if (!isPc && appPermission) {
if(!isPc && appPermission){ if (!userProvider.get().getIsAdministrator()) {
if (!userProvider.get().getIsAdministrator()){ Object contractFileObj = authorizeService.getCondition(new AuthorizeConditionModel(contractFileQueryWrapper, contractFilePagination.getMenuId(), "contractFile"));
Object contractFileObj=authorizeService.getCondition(new AuthorizeConditionModel(contractFileQueryWrapper,contractFilePagination.getMenuId(),"contractFile")); if (ObjectUtil.isEmpty(contractFileObj)) {
if (ObjectUtil.isEmpty(contractFileObj)){ return new ArrayList<>();
return new ArrayList<>(); } else {
} else { contractFileQueryWrapper = (QueryWrapper<ContractFileEntity>) contractFileObj;
contractFileQueryWrapper = (QueryWrapper<ContractFileEntity>)contractFileObj; contractFileNum++;
contractFileNum++; }
}
Object contract_item0Obj = authorizeService.getCondition(new AuthorizeConditionModel(contract_item0QueryWrapper, contractFilePagination.getMenuId(), "contract_item0"));
if (ObjectUtil.isEmpty(contract_item0Obj)) {
return new ArrayList<>();
} else {
contract_item0QueryWrapper = (QueryWrapper<Contract_item0Entity>) contract_item0Obj;
contract_item0Num++;
}
Object contract_item1Obj = authorizeService.getCondition(new AuthorizeConditionModel(contract_item1QueryWrapper, contractFilePagination.getMenuId(), "contract_item1"));
if (ObjectUtil.isEmpty(contract_item1Obj)) {
return new ArrayList<>();
} else {
contract_item1QueryWrapper = (QueryWrapper<Contract_item1Entity>) contract_item1Obj;
contract_item1Num++;
}
Object contract_item0Obj=authorizeService.getCondition(new AuthorizeConditionModel(contract_item0QueryWrapper,contractFilePagination.getMenuId(),"contract_item0"));
if (ObjectUtil.isEmpty(contract_item0Obj)){
return new ArrayList<>();
} else {
contract_item0QueryWrapper = (QueryWrapper<Contract_item0Entity>)contract_item0Obj;
contract_item0Num++;
}
}
Object contract_item1Obj=authorizeService.getCondition(new AuthorizeConditionModel(contract_item1QueryWrapper,contractFilePagination.getMenuId(),"contract_item1")); }
if (ObjectUtil.isEmpty(contract_item1Obj)){ if (AllIdList.size() > 0) {
return new ArrayList<>(); contractFileQueryWrapper.lambda().in(ContractFileEntity::getId, AllIdList);
} else { }
contract_item1QueryWrapper = (QueryWrapper<Contract_item1Entity>)contract_item1Obj;
contract_item1Num++;
}
}
}
if(AllIdList.size()>0){
contractFileQueryWrapper.lambda().in(ContractFileEntity::getId, AllIdList);
}
//排序 //排序
if(StringUtil.isEmpty(contractFilePagination.getSidx())){ if (StringUtil.isEmpty(contractFilePagination.getSidx())) {
contractFileQueryWrapper.lambda().orderByDesc(ContractFileEntity::getId); contractFileQueryWrapper.lambda().orderByDesc(ContractFileEntity::getId);
}else{ } else {
try { try {
String sidx = contractFilePagination.getSidx(); String sidx = contractFilePagination.getSidx();
ContractFileEntity contractFileEntity = new ContractFileEntity(); ContractFileEntity contractFileEntity = new ContractFileEntity();
Field declaredField = contractFileEntity.getClass().getDeclaredField(sidx); Field declaredField = contractFileEntity.getClass().getDeclaredField(sidx);
declaredField.setAccessible(true); declaredField.setAccessible(true);
String value = declaredField.getAnnotation(TableField.class).value(); String value = declaredField.getAnnotation(TableField.class).value();
contractFileQueryWrapper="asc".equals(contractFilePagination.getSort().toLowerCase())?contractFileQueryWrapper.orderByAsc(value):contractFileQueryWrapper.orderByDesc(value); contractFileQueryWrapper = "asc".equals(contractFilePagination.getSort().toLowerCase()) ? contractFileQueryWrapper.orderByAsc(value) : contractFileQueryWrapper.orderByDesc(value);
} catch (NoSuchFieldException e) { } catch (NoSuchFieldException e) {
e.printStackTrace(); e.printStackTrace();
} }
} }
if("0".equals(dataType)){ if ("0".equals(dataType)) {
if((total>0 && AllIdList.size()>0) || total==0){ if ((total > 0 && AllIdList.size() > 0) || total == 0) {
Page<ContractFileEntity> page=new Page<>(contractFilePagination.getCurrentPage(), contractFilePagination.getPageSize()); Page<ContractFileEntity> page = new Page<>(contractFilePagination.getCurrentPage(), contractFilePagination.getPageSize());
IPage<ContractFileEntity> userIPage=this.page(page, contractFileQueryWrapper); IPage<ContractFileEntity> userIPage = this.page(page, contractFileQueryWrapper);
return contractFilePagination.setData(userIPage.getRecords(),userIPage.getTotal()); return contractFilePagination.setData(userIPage.getRecords(), userIPage.getTotal());
}else{ } else {
List<ContractFileEntity> list = new ArrayList(); List<ContractFileEntity> list = new ArrayList();
return contractFilePagination.setData(list, list.size()); return contractFilePagination.setData(list, list.size());
} }
}else{ } else {
return this.list(contractFileQueryWrapper); return this.list(contractFileQueryWrapper);
} }
} }
@Override @Override
public ContractFileEntity getInfo(String id){ public ContractFileEntity getInfo(String id) {
QueryWrapper<ContractFileEntity> queryWrapper=new QueryWrapper<>(); QueryWrapper<ContractFileEntity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(ContractFileEntity::getId,id); queryWrapper.lambda().eq(ContractFileEntity::getId, id);
return this.getOne(queryWrapper); return this.getOne(queryWrapper);
} }
@Override @Override
public void create(ContractFileEntity entity){ public void create(ContractFileEntity entity) {
this.save(entity); this.save(entity);
} }
@Override @Override
public boolean update(String id, ContractFileEntity entity){ public boolean update(String id, ContractFileEntity entity) {
entity.setId(id); entity.setId(id);
return this.updateById(entity); return this.updateById(entity);
} }
@Override //预览
public Map<String, Object> importPreview(List<ContractFileModel> personList) {
List<Map<String, Object>> dataRow = new ArrayList<>();
List<Map<String, Object>> columns = new ArrayList<>();
if (personList != null) {
for (int i = 0; i < personList.size(); i++) {
Map<String, Object> dataRowMap = new HashMap<>();
ContractFileModel model = personList.get(i);
dataRowMap.put("contractCode", model.getContractCode());
dataRowMap.put("contractName", model.getContractName());
dataRowMap.put("contractNo", model.getContractNo());
dataRowMap.put("contractType", model.getContractType());
dataRowMap.put("classification", model.getClassification());
dataRowMap.put("declarationDate", model.getDeclarationDate());
dataRowMap.put("name", model.getName());
dataRowMap.put("num", model.getNum());
dataRowMap.put("amount", model.getAmount());
dataRowMap.put("deptName", model.getDeptName());
dataRowMap.put("remark", model.getRemark());
dataRowMap.put("creatorusername", model.getCreatorusername());
dataRowMap.put("status", model.getStatus());
dataRowMap.put("approval", model.getApproval());
dataRow.add(dataRowMap);
}
for (int i = 1; i < 15; i++) {
Map<String, Object> columnsMap = new HashMap<>();
columnsMap.put("AllowDBNull", true);
columnsMap.put("AutoIncrement", false);
columnsMap.put("AutoIncrementSeed", 0);
columnsMap.put("AutoIncrementStep", 1);
columnsMap.put("Caption", this.getColumns(i));
columnsMap.put("ColumnMapping", 1);
columnsMap.put("ColumnName", this.getColumns(i));
columnsMap.put("Container", null);
columnsMap.put("DataType", "System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089");
columnsMap.put("DateTimeMode", 3);
columnsMap.put("DefaultValue", null);
columnsMap.put("DesignMode", false);
columnsMap.put("Expression", "");
columnsMap.put("ExtendedProperties", "");
columnsMap.put("MaxLength", -1);
columnsMap.put("Namespace", "");
columnsMap.put("Ordinal", 0);
columnsMap.put("Prefix", "");
columnsMap.put("ReadOnly", false);
columnsMap.put("Site", null);
columnsMap.put("Table", personList);
columnsMap.put("Unique", false);
columns.add(columnsMap);
}
}
Map<String, Object> map = new HashMap<>();
map.put("dataRow", dataRow);
map.put("columns", columns);
return map;
}
//导入
@Override @Override
public void delete(ContractFileEntity entity){ public ContractfileImportVO importData(List<ContractFileModel> dt) {
if(entity!=null){ for (ContractFileModel model : dt) {
model.setCreatorTime(DateUtil.cstFormat(model.getCreatorTime()));
model.setNum(DateUtil.cstFormat(model.getNum()));
if (model.getContractType() != null) {
if (model.getContractType().equals("采购合同")) {
model.setContractType("0");
} else if (model.getContractType().equals("销售合同")) {
model.setContractType("1");
}
}
if (model.getClassification() != null) {
if (model.getClassification().equals("采购类")) {
model.setClassification("0");
} else if (model.getClassification().equals("销售类")) {
model.setClassification("1");
}
}
if (model.getStatus() != null) {
if (model.getStatus().equals("合同进行中")) {
model.setStatus("0");
} else if (model.getStatus().equals("合同审批中")) {
model.setStatus("1");
} else if (model.getStatus().equals("合同审批结束")) {
model.setStatus("2");
}
}
}
List<ContractFileEntity> entitys = JsonUtil.getJsonToList(dt, ContractFileEntity.class);
//记录成功了几条
int sum = 0;
//记录第几条失败
int num = 0;
List<ContractFileEntity> errList = new ArrayList<>();
for (ContractFileEntity entity : entitys) {
entity.setId(RandomUtil.uuId());
entity.setCreatoruserid(userProvider.get().getUserId());
entity.setCreatortime(new Date());
try {
this.baseMapper.insert(entity);
sum++;
} catch (Exception e) {
errList.add(entity);
num++;
log.error("导入第" + (num + 1) + "条数据失败");
}
}
ContractfileImportVO vo = new ContractfileImportVO();
vo.setSnum(sum);
vo.setFnum(num);
if (vo.getFnum() > 0) {
vo.setResultType(1);
vo.setFailResult(JsonUtil.getJsonToList(errList, ContractFileModel.class));
return vo;
} else {
vo.setResultType(0);
return vo;
}
}
@Override
public void delete(ContractFileEntity entity) {
if (entity != null) {
this.removeById(entity.getId()); this.removeById(entity.getId());
} }
} }
//子表方法 //子表方法
@Override @Override
public List<Contract_item0Entity> GetContract_item0List(String id){ public List<Contract_item0Entity> GetContract_item0List(String id) {
QueryWrapper<Contract_item0Entity> queryWrapper = new QueryWrapper<>(); QueryWrapper<Contract_item0Entity> queryWrapper = new QueryWrapper<>();
queryWrapper.lambda().eq(Contract_item0Entity::getContractId, id); queryWrapper.lambda().eq(Contract_item0Entity::getContractId, id);
return contract_item0Service.list(queryWrapper); return contract_item0Service.list(queryWrapper);
} }
@Override
public List<Contract_item1Entity> GetContract_item1List(String id){ @Override
QueryWrapper<Contract_item1Entity> queryWrapper = new QueryWrapper<>(); public List<Contract_item1Entity> GetContract_item1List(String id) {
queryWrapper.lambda().eq(Contract_item1Entity::getContractId, id); QueryWrapper<Contract_item1Entity> queryWrapper = new QueryWrapper<>();
return contract_item1Service.list(queryWrapper); queryWrapper.lambda().eq(Contract_item1Entity::getContractId, id);
} return contract_item1Service.list(queryWrapper);
}
//列表子表数据方法 //列表子表数据方法
private String getKey(String key) {
Map<String, String> map = new HashMap<>();
map.put("工号", "F_EnCode");
map.put("姓名", "F_FullName");
map.put("性别", "F_Gender");
map.put("部门", "F_DepartmentName");
map.put("岗位", "F_PositionName");
map.put("用工性质", "F_WorkingNature");
map.put("身份证号", "F_IDNumber");
map.put("联系电话", "F_Telephone");
map.put("出生年月", "F_Birthday");
map.put("参加工作", "F_AttendWorkTime");
map.put("最高学历", "F_Education");
map.put("所学专业", "F_Major");
map.put("毕业院校", "F_GraduationAcademy");
map.put("毕业时间", "F_GraduationTime");
return map.get(key);
}
private String getColumns(Integer key) {
Map<Integer, String> map = new HashMap<>();
map.put(1, "合同编码");
map.put(2, "合同名称");
map.put(3, "对方合同号");
map.put(4, "合同类型");
map.put(5, "合同分类");
map.put(6, "申报日期");
map.put(7, "供应商");
map.put(8, "数量");
map.put(9, "金额");
map.put(10, "部门名称");
map.put(11, "备注");
map.put(12, "录入人");
map.put(13, "单据状态");
map.put(14, "集团审批");
return map.get(key);
}
} }

@ -237,6 +237,7 @@ public class BillRuleServiceImpl extends ServiceImpl<BillRuleMapper, BillRuleEnt
return ActionResult.fail(MsgCode.EXIST002.get()); return ActionResult.fail(MsgCode.EXIST002.get());
} }
try { try {
this.save(entity); this.save(entity);
} catch (Exception e) { } catch (Exception e) {
throw new DataException(MsgCode.IMP003.get()); throw new DataException(MsgCode.IMP003.get());

@ -0,0 +1,25 @@
import request from '@/utils/request'
// 导入
export function ImportData(data) {
return request({
url: '/api/example/ContractFile/ImportData',
method: 'post',
data
})
}
// 导入预览
export function ImportPreview(data) {
return request({
url: '/api/example/ContractFile/ImportPreview',
method: 'get',
data
})
}
//模板下载
export function TemplateDownload() {
return request({
url: '/api/example/ContractFile/TemplateDownload',
method: 'get'
})
}

@ -171,4 +171,4 @@ export default {
} }
} }
} }
</script> </script>

@ -0,0 +1,264 @@
<template>
<el-dialog title="批量导入" :close-on-click-modal="false" :visible.sync="visible"
class="JNPF-dialog JNPF-dialog_center JNPF-dialog-import" lock-scroll width="1000px">
<el-steps :active="active" align-center>
<el-step title="上传文件"></el-step>
<el-step title="数据预览"></el-step>
<el-step title="导入数据"></el-step>
</el-steps>
<div class="import-main" v-show="active==1">
<div class="upload">
<div class="up_left">
<img src="@/assets/images/upload.png">
</div>
<div class="up_right">
<p class="title">上传填好的数据表</p>
<p class="tip">文件后缀名必须是xls或xlsx文件大小不超过500KB最多支持导入1000条数据</p>
<el-upload :action="define.comUrl+'/api/example/ContractFile/Uploader'"
:headers="{ Authorization: $store.getters.token}" :on-success="handleSuccess"
:on-remove="handleRemove" :before-remove="beforeRemove" :on-change="handleChange"
:file-list="fileList" accept=".xls,.xlsx" :before-upload="beforeUpload"
class="upload-area">
<el-button type="text">上传文件</el-button>
</el-upload>
</div>
</div>
<div class="upload">
<div class="up_left">
<img src="@/assets/images/import.png">
</div>
<div class="up_right">
<p class="title">填写导入数据信息</p>
<p class="tip">请按照数据模板的格式准备导入数据模板中的表头名称不可更改表头行不能删除</p>
<el-button type="text" @click="templateDownload"></el-button>
</div>
</div>
</div>
<div class="import-main" v-show="active==2">
<JNPF-table v-loading="listLoading" :data="list">
<el-table-column prop="contractCode" label="合同编码" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.contractCode" />
</template>
</el-table-column>
<el-table-column prop="contractName" label="合同名称" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.contractName" />
</template>
</el-table-column>
<el-table-column prop="contractNo" label="对方合同号" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.contractNo" />
</template>
</el-table-column>
<el-table-column prop="contractType" label="合同类型" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.contractType" />
</template>
</el-table-column>
<el-table-column prop="classification" label="合同分类" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.classification" />
</template>
</el-table-column>
<el-table-column prop="declarationDate" label="申报日期" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.declarationDate" />
</template>
</el-table-column>
<el-table-column prop="name" label="供应商/客户" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.name" />
</template>
</el-table-column>
<el-table-column prop="num" label="数量" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.num" />
</template>
</el-table-column>
<el-table-column prop="amount" label="金额" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.amount" />
</template>
</el-table-column>
<el-table-column prop="deptName" label="部门名称" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.deptName" />
</template>
</el-table-column>
<el-table-column prop="remark" label="备注" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.remark" />
</template>
</el-table-column>
<el-table-column prop="creatorusername" label="录入人" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.creatorusername" />
</template>
</el-table-column>
<el-table-column prop="status" label="合同状态" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.status" />
</template>
</el-table-column>
<el-table-column prop="approval" label="集团审批" width="150">
<template slot-scope="scope">
<el-input v-model="scope.row.approval" />
</template>
</el-table-column>
<el-table-column label="操作" fixed="right" width="50">
<template slot-scope="scope">
<el-button size="mini" type="text" class="JNPF-table-delBtn"
@click="handleDel(scope.$index)">删除</el-button>
</template>
</el-table-column>
</JNPF-table>
</div>
<div class="import-main" v-show="active==3">
<div class="success" v-if="!result.resultType">
<img src="@/assets/images/success.png" alt="">
<p class="success-title">批量导入成功</p>
<p class="success-tip">您已成功导入{{result.snum}}条数据</p>
</div>
<div class="unsuccess" v-if="result.resultType">
<el-alert title="错误提醒:导入失败数据展示" type="warning" show-icon :closable="false" />
<div class="upload error-show">
<div class="up_left">
<img class="" src="@/assets/images/tip.png">
</div>
<div class="up_right">
<p class="tip">正常数量条数<el-link type="success" :underline="false">{{result.snum}}
</el-link>
</p>
<p class="tip">异常数量条数<el-link type="danger" :underline="false">{{result.fnum}}
</el-link>
</p>
</div>
</div>
<p class="contips">以下文件数据为导入异常数据</p>
<JNPF-table :data="resultList" height="280px">
<el-table-column prop="contractCode" label="合同编码" width="100" />
<el-table-column prop="contractName" label="合同名称" width="100" />
<el-table-column prop="contractNo" label="对方合同号" width="80" />
<el-table-column prop="contractType" label="合同类型 0采购合同1销售合同" width="120" />
<el-table-column prop="classification" label="合同分类 0采购类1销售类" width="120" />
<el-table-column prop="declarationDate" label="申报日期" width="100" />
<el-table-column prop="name" label="供应商/客户" width="150" />
<el-table-column prop="num" label="数量" width="100" />
<el-table-column prop="amount" label="金额" width="100" />
<el-table-column prop="deptName" label="部门名称" width="100" />
<el-table-column prop="remark" label="备注" width="100" />
<el-table-column prop="creatorusername" label="录入人" width="120" />
<el-table-column prop="status" label="单据状态" width="150" />
<el-table-column prop="approval" label="集团审批" width="100" />
</JNPF-table>
</div>
</div>
<span slot="footer" class="dialog-footer">
<el-button @click="cancel()" v-if="active == 1"> </el-button>
<el-button @click="prev" v-if="active == 2"></el-button>
<el-button @click="next" type="primary" v-if="active < 3" :loading="btnLoading"
:disabled="active == 1 && !fileName">下一步
</el-button>
<el-button @click="cancel(true)" type="primary" v-else> </el-button>
</span>
</el-dialog>
</template>
<script>
import { TemplateDownload, ImportData,ImportPreview} from '@/api/scm/contractfile'
export default {
data() {
return {
visible: false,
btnLoading: false,
listLoading: false,
fileName: '',
fileList: [],
active: 1,
list: [],
resultList: [],
result: {
resultType: 0,
snum: 0,
fnum: 0
}
}
},
methods: {
prev() {
if (this.active == 1) return
this.active--
},
next() {
if (this.active == 2) {
if (!this.list.length) return this.$message({ message: '导入数据为空', type: 'warning' })
this.btnLoading = true
ImportData({ list: this.list }).then(res => {
this.result = res.data
this.resultList = res.data.failResult
this.btnLoading = false
this.active++
}).catch(() => { this.btnLoading = false })
}
if (this.active == 1) {
if (!this.fileList.length || !this.fileName) return this.$message({ message: '请先上传文件', type: 'warning' })
this.btnLoading = true
ImportPreview({ fileName: this.fileName }).then(res => {
this.list = res.data.dataRow
this.btnLoading = false
this.active++
}).catch(() => { this.btnLoading = false })
}
},
cancel(isRefresh) {
this.visible = false
if (isRefresh) this.$emit('refresh')
},
init() {
this.active = 1
this.fileList = []
this.fileName = ''
this.visible = true
},
handleDel(index) {
this.list.splice(index, 1)
},
templateDownload() {
TemplateDownload().then(res => {
this.jnpf.downloadFile(res.data.url)
})
},
beforeUpload(file) {
let isRightSize = file.size / 1024 < 500
if (!isRightSize) this.$message.error(`文件大小不能超过500KB`)
return isRightSize
},
handleRemove(file, fileList) {
this.fileList = []
},
beforeRemove(file, fileList) {
return this.$confirm(`确定移除 ${file.name}`).catch(() => { })
},
handleChange(file, fileList) {
this.fileList = fileList.slice(-1)
},
handleSuccess(res, file, fileList) {
if (res.code == 200) {
this.fileList = fileList.slice(-1)
this.fileName = res.data.name
} else {
this.fileList = fileList.filter(o => o.uid != file.uid)
this.$message({ message: res.msg, type: 'error', duration: 1000 })
}
}
}
}
</script>

@ -31,8 +31,10 @@
<!-- </el-button>--> <!-- </el-button>-->
<el-button type="text" icon="el-icon-download" @click="exportData()"> <el-button type="text" icon="el-icon-download" @click="exportData()">
</el-button> </el-button>
<!-- <el-button type="text" icon="el-icon-delete" @click="handleBatchRemoveDel()">-->
<!-- </el-button>--> <el-button type="text" icon="el-icon-upload2" @click="uploadForm"></el-button>
</div> </div>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" content="刷新" placement="top"> <el-tooltip effect="dark" content="刷新" placement="top">
@ -54,7 +56,13 @@
{{ scope.row.contractType | dynamicText(contractTypeOptions) }} {{ scope.row.contractType | dynamicText(contractTypeOptions) }}
</template> </template>
</el-table-column> </el-table-column>
<el-table-column prop="classification" label="合同分类 " width="120" align="center" sortable/>
<el-table-column prop="classification" label="合同分类 " width="120" align="center" sortable>
<template slot-scope="scope">
{{ scope.row.classification | dynamicText(classificationOptions) }}
</template>
</el-table-column>
<el-table-column prop="declarationDate" label="申报日期" width="120" align="center" sortable/> <el-table-column prop="declarationDate" label="申报日期" width="120" align="center" sortable/>
<el-table-column prop="name" label="供应商/客户名" width="200" align="center" sortable/> <el-table-column prop="name" label="供应商/客户名" width="200" align="center" sortable/>
<el-table-column prop="num" label="数量" width="120" align="center" sortable/> <el-table-column prop="num" label="数量" width="120" align="center" sortable/>
@ -98,10 +106,15 @@
<JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/> <JNPF-Form v-if="formVisible" ref="JNPFForm" @refresh="refresh"/>
<ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/> <ExportBox v-if="exportBoxVisible" ref="ExportBox" @download="download"/>
<Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/> <Detail v-if="detailVisible" ref="Detail" @refresh="detailVisible=false"/>
<ImportForm v-if="importFormVisible" ref="importForm" @refresh="reset()" />
</div> </div>
</template> </template>
<script> <script>
import ImportForm from './ImportForm'
import request from '@/utils/request' import request from '@/utils/request'
import { import {
getDictionaryDataSelector getDictionaryDataSelector
@ -113,11 +126,14 @@
} from '@/api/systemData/dataInterface' } from '@/api/systemData/dataInterface'
import Detail from './Detail' import Detail from './Detail'
export default { export default {
components: { components: {
JNPFForm, JNPFForm,
ExportBox, ExportBox,
Detail Detail,
ImportForm
}, },
data() { data() {
return { return {
@ -142,6 +158,9 @@
sidx: '' sidx: ''
}, },
formVisible: false, formVisible: false,
importFormVisible: false,
exportBoxVisible: false, exportBoxVisible: false,
columnList: [{ columnList: [{
prop: 'contractCode', prop: 'contractCode',
@ -202,10 +221,10 @@
], ],
contractTypeOptions: [{ contractTypeOptions: [{
'fullName': '采购合同', 'fullName': '采购合同',
'id': '1' 'id': '0'
}, { }, {
'fullName': '销售合同', 'fullName': '销售合同',
'id': '2' 'id': '1'
}, },
{ {
'fullName': '租赁合同', 'fullName': '租赁合同',
@ -225,7 +244,21 @@
statusOptions: [{ statusOptions: [{
"fullName": "进行中", "fullName": "进行中",
"id": "1" "id": "0",
},{
"fullName": "审批中",
"id": "1",
},{
"fullName": "审批结束",
"id": "2"
}],
classificationOptions: [{
"fullName": "采购类",
"id": "0",
},{
"fullName": "销售类",
"id": "1",
}], }],
contractTypeProps: { contractTypeProps: {
@ -381,6 +414,13 @@
this.query[key] = undefined this.query[key] = undefined
} }
this.search() this.search()
},
uploadForm() {
this.importFormVisible = true
this.$nextTick(() => {
this.$refs.importForm.init()
})
} }
} }
} }

@ -21,9 +21,11 @@
</el-row> </el-row>
<div class="JNPF-common-layout-main JNPF-flex-main"> <div class="JNPF-common-layout-main JNPF-flex-main">
<div class="JNPF-common-head"> <div class="JNPF-common-head">
<topOpts @add="addOrUpdateHandle()"> <topOpts @add="addOrUpdateHandle()">
<upload-btn url="/api/system/BillRule/Action/Import" @on-success="initData" /> <upload-btn url="/api/system/BillRule/Action/Import" @on-success="initData" />
</topOpts> </topOpts>
<div class="JNPF-common-head-right"> <div class="JNPF-common-head-right">
<el-tooltip effect="dark" :content="$t('common.refresh')" placement="top"> <el-tooltip effect="dark" :content="$t('common.refresh')" placement="top">
<el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false" <el-link icon="icon-ym icon-ym-Refresh JNPF-common-head-icon" :underline="false"
@ -31,6 +33,7 @@
</el-tooltip> </el-tooltip>
</div> </div>
</div> </div>
<JNPF-table v-loading="listLoading" :data="tableList"> <JNPF-table v-loading="listLoading" :data="tableList">
<el-table-column prop="fullName" label="业务名称" min-width="200" /> <el-table-column prop="fullName" label="业务名称" min-width="200" />
<el-table-column prop="enCode" label="业务编码" width="200" /> <el-table-column prop="enCode" label="业务编码" width="200" />

Loading…
Cancel
Save