Kaynağa Gözat

1.薪资邮件ftl模板调整
2.Freemarker toString方法优化
3.列表查询接口优化

GouGengquan 4 gün önce
ebeveyn
işleme
a1c454c155

+ 3 - 2
biz-base/src/main/java/com/dayou/controller/HrPayslipEmailController.java

@@ -1,5 +1,6 @@
 package com.dayou.controller;
 
+import com.dayou.vo.HrPayslipEmailVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import lombok.extern.slf4j.Slf4j;
 import org.springframework.beans.factory.annotation.Autowired;
@@ -40,8 +41,8 @@ public class HrPayslipEmailController extends BaseController {
      * 人力资源_薪资(工资条)通知邮件列表
      */
     @GetMapping("/page")
-    public RestResponse<Page<HrPayslipEmail>> page(HrPayslipEmail hrPayslipEmail, Page page) {
-        Page<HrPayslipEmail> pages = hrPayslipEmailService.selectPage(page, hrPayslipEmail);
+    public RestResponse<Page<HrPayslipEmailVO>> page(HrPayslipEmailVO hrPayslipEmail, Page page) {
+        Page<HrPayslipEmailVO> pages = hrPayslipEmailService.selectPage(page, hrPayslipEmail);
         return RestResponse.data(pages);
     }
 

+ 15 - 21
biz-base/src/main/resources/ftl/hr/payslip_email.ftl

@@ -1,9 +1,9 @@
 <div lang="ZH-CN" style="word-wrap:break-word;text-justify-trim:punctuation">
     <div class="WordSection1" style="layout-grid:15.6pt">
-        <p class="MsoNormal" style="text-indent:21.0pt">您好!以下是您<span lang="EN-US">${year}</span>年<span lang="EN-US">${month}</span>月的工资明细,请注意查收,如有疑问请及时与人力行政部联系!
+        <p class="MsoNormal" style="text-indent:21.0pt">您好!以下是您<span lang="EN-US">${year}</span>年<span
+                    lang="EN-US">${month}</span>月的工资明细,请注意查收,如有疑问请及时与人力行政部联系!
         </p>
         <p class="MsoNormal"><span lang="EN-US">
-                <o:p>&nbsp;</o:p>
             </span></p>
         <table class="MsoTableGrid" border="1" cellspacing="0" cellpadding="0"
                style="border-collapse:collapse;border:none">
@@ -41,6 +41,16 @@
             <tr>
                 <td width="138" valign="top"
                     style="width:103.7pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
+                    <p class="MsoNormal">工资总额</p>
+                </td>
+                <td width="138" valign="top" colspan="3"
+                    style="width:103.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
+                    <p class="MsoNormal"><span lang="EN-US">${grossSalary}</span></p>
+                </td>
+            </tr>
+            <tr>
+                <td width="138" valign="top"
+                    style="width:103.7pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
                     <p class="MsoNormal">基本工资</p>
                 </td>
                 <td width="138" valign="top"
@@ -151,22 +161,10 @@
                     style="width:103.7pt;border:solid windowtext 1.0pt;border-top:none;padding:0cm 5.4pt 0cm 5.4pt">
                     <p class="MsoNormal">应发合计</p>
                 </td>
-                <td width="138" valign="top"
+                <td width="138" valign="top" colspan="3"
                     style="width:103.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
                     <p class="MsoNormal"><span lang="EN-US">${grossPay}</span></p>
                 </td>
-                <td width="138" valign="top"
-                    style="width:103.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
-                    <p class="MsoNormal"><span lang="EN-US">
-                                <o:p>&nbsp;</o:p>
-                            </span></p>
-                </td>
-                <td width="138" valign="top"
-                    style="width:103.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
-                    <p class="MsoNormal"><span lang="EN-US">
-                                <o:p>&nbsp;</o:p>
-                            </span></p>
-                </td>
             </tr>
             <tr>
                 <td width="138" valign="top"
@@ -197,14 +195,12 @@
                 </td>
                 <td width="138" valign="top"
                     style="width:103.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
-                    <p class="MsoNormal">应扣合计<span>
-                                <o:p>&nbsp;</o:p>
+                    <p class="MsoNormal"><span>应扣合计
                             </span></p>
                 </td>
                 <td width="138" valign="top"
                     style="width:103.7pt;border-top:none;border-left:none;border-bottom:solid windowtext 1.0pt;border-right:solid windowtext 1.0pt;padding:0cm 5.4pt 0cm 5.4pt">
-                    <p class="MsoNormal">${totalDeductions}<span lang="EN-US">
-                                <o:p>&nbsp;</o:p>
+                    <p class="MsoNormal"><span lang="EN-US">${totalDeductions}
                             </span></p>
                 </td>
             </tr>
@@ -221,11 +217,9 @@
             </tbody>
         </table>
         <p class="MsoNormal"><span lang="EN-US">
-                <o:p>&nbsp;</o:p>
             </span></p>
         <p class="MsoNormal">大友评估公司感谢您的努力工作!</p>
         <p class="MsoNormal"><span lang="EN-US">
-                <o:p>&nbsp;</o:p>
             </span></p>
         <p class="MsoNormal" align="right" style="text-align:right">人力行政部</p>
     </div>

+ 1 - 4
common/src/main/java/com/dayou/utils/Freemarker.java

@@ -48,7 +48,7 @@ public class Freemarker {
      * @param templateName 模板文件名称
      * @return
      */
-    public Template getTemplate(String templateName) {
+    private Template getTemplate(String templateName) {
         logger.debug("Freemarker getTemplate");
         try {
             Template template = configuration.getTemplate(templateName);
@@ -100,9 +100,6 @@ public class Freemarker {
             getInstance(templatePath);
             Template template = getTemplate(templateName);
             return FreeMarkerTemplateUtils.processTemplateIntoString(template,root);
-        } catch (FileNotFoundException e) {
-            e.printStackTrace();
-            throw new RuntimeException(e);
         } catch (IOException e) {
             e.printStackTrace();
             throw new RuntimeException(e);

+ 11 - 0
dao/src/main/java/com/dayou/mapper/HrPayslipEmailMapper.java

@@ -1,7 +1,10 @@
 package com.dayou.mapper;
 
+import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.dayou.entity.HrPayslipEmail;
 import com.dayou.dao.CustomBaseMapper;
+import com.dayou.vo.HrPayslipEmailVO;
+import org.apache.ibatis.annotations.Param;
 
 /**
  * <p>
@@ -13,4 +16,12 @@ import com.dayou.dao.CustomBaseMapper;
  */
 public interface HrPayslipEmailMapper extends CustomBaseMapper<HrPayslipEmail> {
 
+    /**
+     * 分页查询邮件发送记录
+     * @param page 分页
+     * @param hrPayslipEmail 查询参数
+     * @return Page<HrPayslipEmailVO>
+     */
+    Page<HrPayslipEmailVO> selectPage(@Param("page") Page page, @Param("hrPayslipEmail") HrPayslipEmailVO hrPayslipEmail);
+
 }

+ 27 - 0
dao/src/main/resources/mapper/HrPayslipEmailMapper.xml

@@ -27,5 +27,32 @@
         modified,
         operator_id, sender_email, recipient_email, recipient_name, id_no, department, send_time, sending_status, failure_reason
     </sql>
+    <select id="selectPage" resultType="com.dayou.vo.HrPayslipEmailVO">
+        SELECT email.id,
+               operator_id,
+               sender_email,
+               recipient_email,
+               recipient_name,
+               email.id_no,
+               department,
+               send_time,
+               sending_status,
+               failure_reason,
+               email.deleted,
+               email.created,
+               email.modified,
+               user.name AS operatorName
+        FROM hr_payslip_email AS email
+        LEFT JOIN user ON user.id = email.operator_id
+        WHERE email.deleted = 0
+        <if test="hrPayslipEmail != null">
+            <if test="hrPayslipEmail.recipientEmail != null">
+                AND email.recipient_email = #{hrPayslipEmail.recipientEmail}
+            </if>
+            <if test="hrPayslipEmail.recipientName != null">
+                AND email.recipient_name = #{hrPayslipEmail.recipientName}
+            </if>
+        </if>
+    </select>
 
 </mapper>

+ 16 - 0
domain/src/main/java/com/dayou/vo/HrPayslipEmailVO.java

@@ -0,0 +1,16 @@
+package com.dayou.vo;
+
+import com.dayou.entity.HrPayslipEmail;
+import lombok.Data;
+import lombok.EqualsAndHashCode;
+
+@EqualsAndHashCode(callSuper = true)
+@Data
+public class HrPayslipEmailVO extends HrPayslipEmail {
+
+    /**
+     * 操作人
+     */
+    private String operatorName;
+
+}

+ 8 - 1
service/src/main/java/com/dayou/service/IHrPayslipEmailService.java

@@ -3,6 +3,7 @@ import com.dayou.entity.HrPayslipEmail;
 import com.baomidou.mybatisplus.extension.service.IService;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import com.dayou.vo.HrPayslipEmailVO;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.springframework.web.multipart.MultipartFile;
 
@@ -18,7 +19,13 @@ import java.io.IOException;
  */
 public interface IHrPayslipEmailService extends IService<HrPayslipEmail> {
 
-        Page<HrPayslipEmail> selectPage(Page page,HrPayslipEmail hrPayslipEmail);
+        /**
+         * 分页查询邮件发送记录
+         * @param page 分页
+         * @param hrPayslipEmail 查询参数
+         * @return Page<HrPayslipEmailVO>
+         */
+        Page<HrPayslipEmailVO> selectPage(Page page, HrPayslipEmailVO hrPayslipEmail);
 
         HrPayslipEmail detail(Long id);
 

+ 15 - 8
service/src/main/java/com/dayou/service/impl/HrPayslipEmailServiceImpl.java

@@ -3,27 +3,24 @@ package com.dayou.service.impl;
 import com.dayou.configuration.MailSenderConfig;
 import com.dayou.dto.PayslipMailMessageDTO;
 import com.dayou.entity.HrPayslipEmail;
-import com.dayou.exception.ErrorCode;
 import com.dayou.mapper.HrPayslipEmailMapper;
 import com.dayou.service.IHrPayslipEmailService;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
 import com.dayou.utils.ExcelPlusUtil;
 import com.dayou.utils.Freemarker;
 import com.dayou.utils.LoginContext;
-import org.springframework.mail.MailException;
+import com.dayou.vo.HrPayslipEmailVO;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.mail.javamail.JavaMailSenderImpl;
 import org.springframework.mail.javamail.MimeMessageHelper;
 import org.springframework.stereotype.Service;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
-import org.springframework.transaction.annotation.Transactional;
 import org.springframework.web.multipart.MultipartFile;
 
-import java.io.IOException;
 import java.time.LocalDateTime;
 import java.util.*;
 
-import javax.mail.MessagingException;
 import javax.mail.internet.MimeMessage;
 
 /**
@@ -43,10 +40,18 @@ public class HrPayslipEmailServiceImpl extends ServiceImpl<HrPayslipEmailMapper,
         this.senderConfig = senderConfig;
     }
 
+    @Autowired
+    HrPayslipEmailMapper hrPayslipEmailMapper;
+
+    /**
+     * 分页查询邮件发送记录
+     * @param page 分页
+     * @param hrPayslipEmail 查询参数
+     * @return Page<HrPayslipEmailVO>
+     */
     @Override
-    @SuppressWarnings("unchecked")
-    public Page<HrPayslipEmail> selectPage(Page page, HrPayslipEmail hrPayslipEmail) {
-        return this.page(page, new QueryWrapper<HrPayslipEmail>(hrPayslipEmail));
+    public Page<HrPayslipEmailVO> selectPage(Page page, HrPayslipEmailVO hrPayslipEmail) {
+        return hrPayslipEmailMapper.selectPage(page, hrPayslipEmail);
     }
 
     @Override
@@ -139,6 +144,8 @@ public class HrPayslipEmailServiceImpl extends ServiceImpl<HrPayslipEmailMapper,
         dataMap.put("partTimeAllowance", dto.getPartTimeAllowance());
         dataMap.put("confidentialityAllowance", dto.getConfidentialityAllowance());
         dataMap.put("otherAllowance", dto.getOtherAllowance());
+        dataMap.put("totalDeductions", dto.getTotalDeductions());
+        dataMap.put("grossSalary", dto.getGrossSalary());
         Freemarker freemarker = new Freemarker();
         return freemarker.toString("/ftl/hr", "payslip_email.ftl", dataMap);
     }