diff --git a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java index fac59e3e..d72d8475 100644 --- a/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java +++ b/jero-boot-base/jero-boot-base-core/src/main/java/com/jero/common/system/base/controller/JeroController.java @@ -80,6 +80,25 @@ public class JeroController> { return mv; } + /** + * 导出excel + * + * @param + */ + protected ModelAndView exportListXls(List object, Class clazz, String title) { + // Step.3 AutoPoi 导出Excel + ModelAndView mv = new ModelAndView(new JeecgEntityExcelView()); + mv.addObject(NormalExcelConstants.FILE_NAME, title); //此处设置的filename无效 ,前端会重更新设置一下 + mv.addObject(NormalExcelConstants.CLASS, clazz); + //update-begin--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置-------------------- + ExportParams exportParams=new ExportParams(title, title); + exportParams.setImageBasePath(upLoadPath); + //update-end--Author:liusq Date:20210126 for:图片导出报错,ImageBasePath未设置---------------------- + mv.addObject(NormalExcelConstants.PARAMS,exportParams); + mv.addObject(NormalExcelConstants.DATA_LIST, null); + return mv; + } + /** * 根据权限导出excel,传入导出字段参数 * diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/VO/PayWorkingGroupVO.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/VO/PayWorkingGroupVO.java index 2f1b6a4f..f750bd9e 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/VO/PayWorkingGroupVO.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/VO/PayWorkingGroupVO.java @@ -2,9 +2,13 @@ package com.jero.project.VO; import com.jero.project.entity.PayWorkingGroup; import lombok.Data; +import lombok.EqualsAndHashCode; +import lombok.experimental.Accessors; import java.io.Serializable; @Data +@Accessors(chain = true) +@EqualsAndHashCode(callSuper = false) public class PayWorkingGroupVO extends PayWorkingGroup implements Serializable { private PayWorkingGroupPayment obj; } diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/common/PayProjectCommon.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/common/PayProjectCommon.java index b802f7ba..75a879b8 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/common/PayProjectCommon.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/common/PayProjectCommon.java @@ -52,7 +52,7 @@ public class PayProjectCommon { */ public final static String PROJECT_TYPE1 = "1"; /** - * + * 工作组项目 */ public final static String PROJECT_TYPE2 = "2"; /** diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java index 8816e68d..0bdc5a36 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayCommonProjectController.java @@ -60,7 +60,6 @@ public class PayCommonProjectController extends JeroController queryWrapperPayPaymentRecord = new LambdaQueryWrapper<>(); diff --git a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java index 64791c4e..629f2168 100644 --- a/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java +++ b/jero-boot-incoming-payment/src/main/java/com/jero/project/controller/PayWorkingGroupSubItemController.java @@ -1,20 +1,38 @@ package com.jero.project.controller; import java.util.Arrays; +import java.util.List; +import java.util.Objects; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import com.alibaba.fastjson.JSONObject; +import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.jero.common.api.vo.Result; +import com.jero.common.exception.JeroBootException; import com.jero.common.system.base.controller.JeroController; import com.jero.common.system.query.QueryGenerator; +import com.jero.common.util.ValidUtil; +import com.jero.mail.service.IPayMailBillService; +import com.jero.mail.vo.MailBillVO; +import com.jero.payment.entity.PayPaymentRecord; +import com.jero.payment.service.IPayPaymentRecordService; +import com.jero.project.common.PayProjectCommon; +import com.jero.project.entity.PayWorkingGroup; import com.jero.project.entity.PayWorkingGroupSubItem; +import com.jero.project.service.IPayWorkingGroupService; import com.jero.project.service.IPayWorkingGroupSubItemService; import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper; import com.baomidou.mybatisplus.core.metadata.IPage; import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.jero.temporary.entity.PayCompanyManagementTemporary; +import com.jero.temporary.entity.PayContactsManagementTemporary; +import com.jero.temporary.service.IPayCompanyManagementTemporaryService; +import com.jero.temporary.service.IPayContactsManagementTemporaryService; import lombok.extern.slf4j.Slf4j; import org.apache.commons.lang3.StringUtils; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.transaction.annotation.Transactional; import org.springframework.web.bind.annotation.*; import org.springframework.web.servlet.ModelAndView; import io.swagger.annotations.Api; @@ -32,6 +50,16 @@ import io.swagger.annotations.ApiOperation; public class PayWorkingGroupSubItemController extends JeroController { @Autowired private IPayWorkingGroupSubItemService payWorkingGroupSubitemService; + @Autowired + private IPayCompanyManagementTemporaryService payCompanyManagementTemporaryService; + @Autowired + private IPayContactsManagementTemporaryService payContactsManagementTemporaryService; + @Autowired + private IPayPaymentRecordService payPaymentRecordService; + @Autowired + private IPayMailBillService payMailBillService; + @Autowired + private IPayWorkingGroupService payWorkingGroupService; /** * 分页列表查询 @@ -48,9 +76,10 @@ public class PayWorkingGroupSubItemController extends JeroController 50){ + if(!StringUtils.isBlank(payWorkingGroupSubitem.getChargeCompanyTemporaryName()) && payWorkingGroupSubitem.getChargeCompanyTemporaryName().length() > 50){ return Result.error("成员单位长度不能大于50个字符"); } + // todo 缺少到账,开票,邮寄记录查询 QueryWrapper queryWrapper = QueryGenerator.initQueryWrapper(payWorkingGroupSubitem, req.getParameterMap()); Page page = new Page(pageNo, pageSize); IPage pageList = payWorkingGroupSubitemService.page(page, queryWrapper); @@ -60,28 +89,132 @@ public class PayWorkingGroupSubItemController extends JeroController add(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubitem) { - payWorkingGroupSubitemService.save(payWorkingGroupSubitem); + @Transactional + public Result add(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) { + StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem); + if(!StringUtils.isBlank(msg)){ + return Result.error(msg.toString()); + } + try { + // 编辑保存前再次校验来款项目是否存在 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayWorkingGroupSubItem::getChargeCompanyId,payWorkingGroupSubItem.getChargeCompanyId()); + queryWrapper.eq(PayWorkingGroupSubItem::getContactsIdOne,payWorkingGroupSubItem.getContactsIdOne()); + PayWorkingGroupSubItem payWorkingGroupSubItemNew = payWorkingGroupSubitemService.getOne(queryWrapper); + // 企业和联系人同时存在,则校验不通过 + if(!Objects.isNull(payWorkingGroupSubItemNew)) { + return Result.error("工作组成员已存在!"); + } + }catch (Exception e){ + log.info("工作组成员-添加异常",e); + return Result.error("工作组成员已存在!"); + } + PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorkingGroupSubItem.getWorkingGroupId()); + if(Objects.isNull(payWorkingGroup)){ + return Result.error("工作组不存在!"); + } + + payWorkingGroupSubItem = setPayWorkingGroupSubItem(payWorkingGroupSubItem); + payWorkingGroupSubItem.setPack(PayProjectCommon.PACKAGING0); + payWorkingGroupSubItem.setInAccount(PayProjectCommon.IN_ACCOUNT0); + payWorkingGroupSubItem.setMakeInvoice(PayProjectCommon.MAKE_INVOICE0); + payWorkingGroupSubItem.setMail(PayProjectCommon.MAIL0); + payWorkingGroupSubitemService.save(payWorkingGroupSubItem); return Result.OK("添加成功!"); } /** * 编辑 * - * @param payWorkingGroupSubitem + * @param payWorkingGroupSubItem * @return */ @ApiOperation(value="工作组成员-编辑", notes="工作组成员-编辑") @PostMapping(value = "/edit") - public Result edit(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubitem) { - payWorkingGroupSubitemService.updateById(payWorkingGroupSubitem); + public Result edit(@RequestBody PayWorkingGroupSubItem payWorkingGroupSubItem) { + StringBuilder msg = ValidUtil.validateAll(payWorkingGroupSubItem); + if(!StringUtils.isBlank(msg)){ + return Result.error(msg.toString()); + } + try { + // 编辑保存前再次校验来款项目是否存在 + LambdaQueryWrapper queryWrapper = new LambdaQueryWrapper<>(); + queryWrapper.eq(PayWorkingGroupSubItem::getChargeCompanyId,payWorkingGroupSubItem.getChargeCompanyId()); + queryWrapper.eq(PayWorkingGroupSubItem::getContactsIdOne,payWorkingGroupSubItem.getContactsIdOne()); + PayWorkingGroupSubItem payWorkingGroupSubItemNew = payWorkingGroupSubitemService.getOne(queryWrapper); + // 来款项目存在,并且编辑id与查询不同,则校验不通过 + if(!Objects.isNull(payWorkingGroupSubItemNew) + && !Objects.equals(payWorkingGroupSubItemNew.getId(),payWorkingGroupSubItem.getId())) { + return Result.error("工作组成员已存在!"); + } + }catch (Exception e){ + log.info("工作组成员-编辑异常",e); + return Result.error("工作组成员已存在!"); + } + PayWorkingGroup payWorkingGroup = payWorkingGroupService.getById(payWorkingGroupSubItem.getWorkingGroupId()); + if(Objects.isNull(payWorkingGroup)){ + return Result.error("工作组不存在!"); + } + payWorkingGroupSubItem = setPayWorkingGroupSubItem(payWorkingGroupSubItem); + payWorkingGroupSubitemService.updateById(payWorkingGroupSubItem); return Result.OK("编辑成功!"); } + + /** + * @Description 插入企业信息,联系人信息到临时表,更新项目记录 + * @Author lqt + * @Date 2021/8/31 + * @Param payCommonProject + * @Return + * @Exception + */ + private PayWorkingGroupSubItem setPayWorkingGroupSubItem(PayWorkingGroupSubItem payWorkingGroupSubItem){ + // 企业 + PayCompanyManagementTemporary chargeCompanyName = payCompanyManagementTemporaryService.insertCompanyManagementTemporary(payWorkingGroupSubItem.getChargeCompanyId()); + if(Objects.isNull(chargeCompanyName)){ + throw new JeroBootException("企业名称为空!"); + } + payWorkingGroupSubItem.setChargeCompanyTemporaryId(chargeCompanyName.getId()); + payWorkingGroupSubItem.setChargeCompanyTemporaryName(chargeCompanyName.getCompanyName()); + // 企业联系人一 + PayContactsManagementTemporary contactsNameOne = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getContactsIdOne()); + if(Objects.isNull(contactsNameOne)){ + throw new JeroBootException("企业联系人一名称为空!"); + } + payWorkingGroupSubItem.setContactsTemporaryIdOne(contactsNameOne.getId()); + payWorkingGroupSubItem.setContactsTemporaryNameOne(contactsNameOne.getName()); + if(!StringUtils.isBlank(payWorkingGroupSubItem.getContactsIdTwo())){ + // 企业联系人二 + PayContactsManagementTemporary contactsNameTwo = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getContactsIdTwo()); + if(Objects.isNull(contactsNameTwo)){ + throw new JeroBootException("企业联系人二名称为空!"); + } + payWorkingGroupSubItem.setContactsTemporaryIdTwo(contactsNameTwo.getId()); + payWorkingGroupSubItem.setContactsTemporaryNameTwo(contactsNameTwo.getName()); + } + if(!StringUtils.isBlank(payWorkingGroupSubItem.getContactsIdThree())){ + // 企业联系人三 + PayContactsManagementTemporary contactsNameThree = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getContactsIdThree()); + if(Objects.isNull(contactsNameThree)){ + throw new JeroBootException("企业联系人三名称为空!"); + } + payWorkingGroupSubItem.setContactsTemporaryIdThree(contactsNameThree.getId()); + payWorkingGroupSubItem.setContactsTemporaryNameThree(contactsNameThree.getName()); + } + // 邮寄联系人 + PayContactsManagementTemporary mailContactsName = payContactsManagementTemporaryService.insertContactsManagementTemporary(payWorkingGroupSubItem.getMailContactsId()); + if(Objects.isNull(mailContactsName)){ + throw new JeroBootException("邮寄联系人名称为空!"); + } + payWorkingGroupSubItem.setMailContactsTemporaryId(mailContactsName.getId()); + payWorkingGroupSubItem.setMailContactsTemporaryName(mailContactsName.getName()); + return payWorkingGroupSubItem; + } /** * 通过id删除 @@ -92,6 +225,9 @@ public class PayWorkingGroupSubItemController extends JeroController delete(@RequestParam(name="id",required=true) String id) { + if(StringUtils.isBlank(id)){ + return Result.error("id不能为空!"); + } payWorkingGroupSubitemService.removeById(id); return Result.OK("删除成功!"); } @@ -105,6 +241,15 @@ public class PayWorkingGroupSubItemController extends JeroController deleteBatch(@RequestParam(name="ids",required=true) String ids) { + if(StringUtils.isBlank(ids)){ + return Result.error("id不能为空!"); + } + String[] s = ids.split(","); + for (String s1 : s) { + if(StringUtils.isBlank(s1)){ + return Result.error("id不能为空!"); + } + } this.payWorkingGroupSubitemService.removeByIds(Arrays.asList(ids.split(","))); return Result.OK("批量删除成功!"); } @@ -122,6 +267,22 @@ public class PayWorkingGroupSubItemController extends JeroController queryWrapperPayPaymentRecord = new LambdaQueryWrapper<>(); + queryWrapperPayPaymentRecord.eq(PayPaymentRecord::getProjectId,payWorkingGroupSubitem.getId()); + List payPaymentRecordList = payPaymentRecordService.list(queryWrapperPayPaymentRecord); + json.put("payPaymentRecord",payPaymentRecordList); + // 开票邮寄记录 + List listMailBillVO = payMailBillService.selectMailBillVO(payWorkingGroupSubitem.getId(), PayProjectCommon.PROJECT_TYPE2); + json.put("mailBill",listMailBillVO); return Result.OK(payWorkingGroupSubitem); } @@ -134,9 +295,20 @@ public class PayWorkingGroupSubItemController extends JeroController0 && <总金额(半满标志))*/ - @Excel(name = "到账(1:全额(对勾),2:0(X),3:>0 && <总金额(半满标志))", width = 15) @ApiModelProperty(value = "到账(1:全额(对勾),2:0(X),3:>0 && <总金额(半满标志))") private java.lang.Integer inAccount; /**开票(1:全额(对勾),2:0(X),3:>0 && <总金额(半满标志))*/ - @Excel(name = "开票(1:全额(对勾),2:0(X),3:>0 && <总金额(半满标志))", width = 15) @ApiModelProperty(value = "开票(1:全额(对勾),2:0(X),3:>0 && <总金额(半满标志))") private java.lang.Integer makeInvoice; /**邮寄((1:全额(对勾),2:0(X),3:>0 && <总金额(半满标志)))*/ - @Excel(name = "邮寄((1:全额(对勾),2:0(X),3:>0 && <总金额(半满标志)))", width = 15) @ApiModelProperty(value = "邮寄((1:全额(对勾),2:0(X),3:>0 && <总金额(半满标志)))") private java.lang.Integer mail; /**催款次数*/