Procházet zdrojové kódy

更新内容:
1. 剔除“网上购买筛选”
2. 解决登录报错信息

alibct před 2 roky
rodič
revize
c3a92f4f1b

+ 7 - 0
src/main/java/com/pavis/ctr/audit/common/constant/Constants.java

@@ -123,6 +123,13 @@ public class Constants {
      */
     public static final String MULTI_UPLOAD_MARK = "3";
 
+    /**
+     * 网上购买标记
+     */
+    public static final String WSGM = "网上购买";
+
+    public static final String WSGM_FLAG = "7";
+
 }
 
 

+ 2 - 2
src/main/java/com/pavis/ctr/audit/common/utils/ConvertObjUtils.java

@@ -25,7 +25,7 @@ public class ConvertObjUtils {
         auditTripResultVo.setUserId(auditTripResult.getUserId());
         auditTripResultVo.setAuditConclusion(auditTripResult.getAuditConclusion());
         auditTripResultVo.setAuditStatus(auditTripResult.getAuditStatus());
-        auditTripResultVo.setListUUID(auditTripResult.getListUUID());
+        auditTripResultVo.setListUuid(auditTripResult.getListUuid());
         auditTripResultVo.setAuditTotalNum(auditTotalNum);
         auditTripResultVo.setUserGetAuditNum(userGetAuditNum);
         auditTripResultVo.setAuditError(auditTripResult.getAuditError());
@@ -55,7 +55,7 @@ public class ConvertObjUtils {
         auditTripResult.setAuditStatus(auditTripResultVo.getAuditStatus());
         auditTripResult.setAuditConclusion(auditTripResultVo.getAuditConclusion());
         auditTripResult.setAuditError(auditTripResultVo.getAuditError());
-        auditTripResult.setListUUID(auditTripResultVo.getListUUID());
+        auditTripResult.setListUuid(auditTripResultVo.getListUuid());
         auditTripResult.setUpdateBy(SecurityUtils.getUsername());
         auditTripResult.setUpdateTime(DateUtils.getNowDate());
         auditTripResult.setRemark(auditTripResultVo.getRemark());

+ 1 - 0
src/main/java/com/pavis/ctr/audit/common/utils/SecurityUtils.java

@@ -45,6 +45,7 @@ public class SecurityUtils {
         try {
             return (LoginUser) getAuthentication().getPrincipal();
         } catch (Exception e) {
+            e.printStackTrace();
             throw new ServiceException("获取用户信息异常", HttpStatus.UNAUTHORIZED);
         }
     }

+ 1 - 1
src/main/java/com/pavis/ctr/audit/framework/aspect/LogAspect.java

@@ -123,7 +123,7 @@ public class LogAspect {
             sysLog.setCostTime(System.currentTimeMillis()-TIME_THREADLOCAL.get());
 
             //保存数据库
-//            AsyncManager.me().execute(AsyncFactory.recordOper(sysLog));
+           // AsyncManager.me().execute(AsyncFactory.recordOper(sysLog));
             sysLogService.insertSysLog(sysLog);
         }catch (Exception exp){
 

+ 1 - 1
src/main/java/com/pavis/ctr/audit/framework/config/SecurityConfig.java

@@ -114,7 +114,7 @@ public class SecurityConfig extends WebSecurityConfigurerAdapter {
                 // 静态资源,可匿名访问
                 .antMatchers(HttpMethod.GET, "/", "/*.html", "/**/*.html", "/**/*.css", "/**/*.js", "/profile/**").permitAll()
                 .antMatchers("/swagger-ui/**", "/swagger-resources/**", "/webjars/**", "/*/api-docs", "/druid/**").permitAll()
-                .antMatchers("/init/auditTrip/**", "/update/auditTrip/**").permitAll()
+                .antMatchers("/init/auditTrip/**", "/update/auditTrip/**","/init/shopname").permitAll()
                 // 除上面外的所有请求全部需要鉴权认证
                 .anyRequest().authenticated()
                 .and()

+ 5 - 0
src/main/java/com/pavis/ctr/audit/framework/security/handle/LogoutSuccessHandlerImpl.java

@@ -5,6 +5,7 @@ import com.pavis.ctr.audit.common.utils.ServletUtils;
 import com.pavis.ctr.audit.common.utils.StringUtilsEx;
 import com.pavis.ctr.audit.framework.security.LoginUser;
 import com.pavis.ctr.audit.framework.security.service.TokenService;
+import com.pavis.ctr.audit.project.service.IAuditTripResultService;
 import com.pavis.ctr.audit.web.domain.AjaxResult;
 import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.context.annotation.Configuration;
@@ -23,6 +24,8 @@ import javax.servlet.http.HttpServletResponse;
 public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler {
     @Autowired
     private TokenService tokenService;
+    @Autowired
+    private IAuditTripResultService auditTripResultService;
 
     /**
      * 退出处理
@@ -33,6 +36,8 @@ public class LogoutSuccessHandlerImpl implements LogoutSuccessHandler {
     public void onLogoutSuccess(HttpServletRequest request, HttpServletResponse response, Authentication authentication) {
         LoginUser loginUser = tokenService.getLoginUser(request);
         if (StringUtilsEx.isNotNull(loginUser)) {
+            // 清空审核中数据
+            auditTripResultService.emptyAuditedTrip(loginUser.getUserId(), loginUser.getUsername());
             // 删除用户缓存记录
             tokenService.delLoginUser(loginUser.getToken());
         }

+ 13 - 0
src/main/java/com/pavis/ctr/audit/project/controller/InitAuditTripController.java

@@ -53,6 +53,19 @@ public class InitAuditTripController {
         }
     }
 
+    @ApiOperation("初始化网上购买类型的小票到待审核库")
+    @GetMapping("/init/shopname")
+    public AjaxResult initAuditTripByShopName() {
+        // 获取需要初始化的小票数据
+        List<OcrTrip> ocrTrips = ocrTripService.getAuditTripByShopName();
+        if (ocrTrips != null && ocrTrips.size() > 0) {
+            int auditTripSize = auditTripMainService.adaptAuditTrip(ocrTrips);
+            return AjaxResult.success(String.format("初始化成功,待审核小票数量为:%d", auditTripSize));
+        } else {
+            return AjaxResult.success("没有需要初始化的审核数据!");
+        }
+    }
+
     @ApiOperation("更新某个datedir的数据")
     @GetMapping("/update/auditTrip/{datedir}")
     public AjaxResult updateAuditTripByDateDir(@PathVariable("datedir") String dateDir) {

+ 1 - 1
src/main/java/com/pavis/ctr/audit/project/controller/SubmitResultController.java

@@ -28,7 +28,7 @@ public class SubmitResultController {
         // 返回剩余审核数(只要是没被审核的都会被返回)
         int resultNum = auditTripResultService.AuditResultNum(null, null, null);
         // 返回提取数据的已审核数
-        int surplusNum = auditTripResultService.AuditResultNum(auditTripResultVo.getUserId(), 1, auditTripResultVo.getListUUID());
+        int surplusNum = auditTripResultService.AuditResultNum(auditTripResultVo.getUserId(), 1, auditTripResultVo.getListUuid());
         // 返回提取的未审核数
         int auditedNum = auditTripResultVo.getUserGetAuditNum() - surplusNum;
         AuditTripResultVo AuditedTripVo = auditTripResultService.getResultVoByUploadId(auditTripResultVo.getUploadId());

+ 8 - 8
src/main/java/com/pavis/ctr/audit/project/controller/SysLoginController.java

@@ -1,6 +1,7 @@
 package com.pavis.ctr.audit.project.controller;
 
 
+import com.alibaba.fastjson2.JSON;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
 import com.pavis.ctr.audit.common.constant.Constants;
@@ -55,7 +56,6 @@ public class SysLoginController {
      * @return 结果
      */
     @ApiOperation("登录接口")
-    @Log(title = "用户登录")
     @PostMapping("/login")
     public AjaxResult login(@RequestBody LoginBody loginBody) {
         String token = null;
@@ -68,12 +68,11 @@ public class SysLoginController {
             return error;
         }
         AjaxResult ajax = AjaxResult.success();
-        //返回待审核总数
+        // 返回待审核总数
         int auditResultNum = auditTripResultService.AuditResultNum(null, null, null);
         ajax.put("auditTotalNum", auditResultNum);
         ajax.put(Constants.TOKEN, token);
         return ajax;
-
     }
 
     /**
@@ -85,15 +84,16 @@ public class SysLoginController {
     @GetMapping("getInfo")
     public AjaxResult getInfo() {
         SysUser user = SecurityUtils.getLoginUser().getUser();
+        System.out.println("getInfo:" + JSON.toJSONString(user));
         // 角色集合
         Set<String> roles = permissionService.getRolePermission(user);
-        //返回当前用户下剩余多少未审核的数量
+        // 返回当前用户下剩余多少未审核的数量
         int userAuditResultNum = auditTripResultService.AuditResultNum(user.getUserId(), 2, null);
-        //未审核(status不是0也不是2)且user_id为空
+        // 未审核(status不是0也不是2)且user_id为空
         int auditResultNotUserIdNum = auditTripResultService.AuditResultNotUserIdNum();
-        //可提取数为当前用户下未审核的数量+user_id为空的数量
-        int totalNum = userAuditResultNum+auditResultNotUserIdNum;
-        //返回user增强类型对象
+        // 可提取数为当前用户下未审核的数量+user_id为空的数量
+        int totalNum = userAuditResultNum + auditResultNotUserIdNum;
+        // 返回user增强类型对象
         SysUserVo sysUserVo = ConvertObjUtils.converUser(user, totalNum);
         AjaxResult ajax = AjaxResult.success();
         ajax.put("user", sysUserVo);

+ 8 - 6
src/main/java/com/pavis/ctr/audit/project/domain/AuditTripResult.java

@@ -1,5 +1,6 @@
 package com.pavis.ctr.audit.project.domain;
 
+import com.baomidou.mybatisplus.annotation.TableId;
 import com.pavis.ctr.audit.web.domain.BaseEntity;
 import org.apache.commons.lang3.builder.ToStringBuilder;
 import org.apache.commons.lang3.builder.ToStringStyle;
@@ -12,6 +13,7 @@ public class AuditTripResult extends BaseEntity {
     /**
      * 小票唯一ID
      */
+    @TableId
     private String uploadId;
     /**
      * 审核员ID
@@ -52,7 +54,7 @@ public class AuditTripResult extends BaseEntity {
     /**
      * listUUID
      */
-    private String listUUID;
+    private String listUuid;
 
     /**
      * 日期文件夹
@@ -104,12 +106,12 @@ public class AuditTripResult extends BaseEntity {
         this.auditError = auditError;
     }
 
-    public String getListUUID() {
-        return listUUID;
+    public String getListUuid() {
+        return listUuid;
     }
 
-    public void setListUUID(String listUUID) {
-        this.listUUID = listUUID;
+    public void setListUuid(String listUuid) {
+        this.listUuid = listUuid;
     }
 
     public String getDateDir() {
@@ -140,7 +142,7 @@ public class AuditTripResult extends BaseEntity {
                 .append("createTime", getCreateTime())
                 .append("updateBy", getUpdateBy())
                 .append("updateTime", getUpdateTime())
-                .append("listUUID", getListUUID())
+                .append("listUUID", getListUuid())
                 .append("dateDir", getDateDir())
                 .append("mergeImgUrl", getMergeImgUrl())
                 .append("remark", getRemark()).toString();

+ 4 - 0
src/main/java/com/pavis/ctr/audit/project/domain/OcrTrip.java

@@ -249,6 +249,10 @@ public class OcrTrip {
             // 购买日期为空,优先级4
             return Constants.LACK_PURCHASE_DATE;
         }
+        // 网上购买,暂不更新等待通知
+        // if (StringUtils.isNotBlank(this.shopName) && StringUtils.equals(Constants.WSGM, this.shopName)) {
+        //     return Constants.WSGM_FLAG;
+        // }
         return this.errReason;
     }
 }

+ 12 - 4
src/main/java/com/pavis/ctr/audit/project/mapper/AuditTripResultMapper.java

@@ -12,6 +12,14 @@ import java.util.List;
  */
 
 public interface AuditTripResultMapper extends BaseMapper<AuditTripResult> {
+
+    /**
+     *
+     * @param auditTripResultList
+     * @return
+     */
+    boolean updateRestoreAuditTrip(@Param("restoreAuditTrip") List<AuditTripResult> auditTripResultList);
+
     /**
      * 把当天新增待审核的数据添加到result中
      *
@@ -51,15 +59,15 @@ public interface AuditTripResultMapper extends BaseMapper<AuditTripResult> {
      * @param uploadIdList
      * @return
      */
-    List<AuditTripResult> selectByUserIdList(@Param("uploadId") List<String> uploadIdList,String listUUID);
+    List<AuditTripResult> selectByUserIdList(@Param("uploadId") List<String> uploadIdList,String listUuid);
 
     /**
      * 给提取的数据赋值一个uuid
-     * @param listUUID
+     * @param listUuid
      * @param uploadIdList
      * @return
      */
-    boolean updateListUUID(@Param("uploadIdList") List<String> uploadIdList,@Param("listUUID") String listUUID);
+    boolean updateListUUID(@Param("uploadIdList") List<String> uploadIdList,@Param("listUuid") String listUuid);
 
 
     /**
@@ -86,7 +94,7 @@ public interface AuditTripResultMapper extends BaseMapper<AuditTripResult> {
      * @param userId
      * @return
      */
-    int AuditResultNum(@Param("userId") Long userId,@Param("statusNum") Integer statusNum,@Param("listUUID") String listUUID);
+    int AuditResultNum(@Param("userId") Long userId,@Param("statusNum") Integer statusNum,@Param("listUuid") String listUuid);
 
 
     /**

+ 8 - 0
src/main/java/com/pavis/ctr/audit/project/service/IAuditTripResultService.java

@@ -15,6 +15,14 @@ import java.util.List;
 
 public interface IAuditTripResultService extends IService<AuditTripResult> {
 
+    /**
+     * 清空审核中的数据
+     *
+     * @param userId 用户id
+     * @param username 用户名称
+     */
+    void emptyAuditedTrip(Long userId,String username);
+
     /**
      * 把当天新增待审核的数据添加到result中
      *

+ 8 - 0
src/main/java/com/pavis/ctr/audit/project/service/IOcrTripService.java

@@ -34,4 +34,12 @@ public interface IOcrTripService extends IService<OcrTrip> {
      * @return 需要同步到待审核库的数据
      */
     List<OcrTrip> updateAuditTripByDateDir(String dateDir);
+
+
+    /**
+     * 根据shopname获取小票数据
+     *
+     * @return 需要审核的小票数据
+     */
+    List<OcrTrip> getAuditTripByShopName();
 }

+ 27 - 15
src/main/java/com/pavis/ctr/audit/project/service/impl/AuditTripResultServiceImpl.java

@@ -49,6 +49,21 @@ public class AuditTripResultServiceImpl extends ServiceImpl<AuditTripResultMappe
     @Autowired
     private BosClient client;
 
+    @Override
+    public void emptyAuditedTrip(Long userId ,String username) {
+        List<AuditTripResult> auditTripResults = query().eq("user_id", userId).eq("audit_status", 2).list();
+        if (auditTripResults != null && auditTripResults.size() > 0) {
+            for (AuditTripResult auditTripResult : auditTripResults) {
+                auditTripResult.setUserId(null);
+                auditTripResult.setAuditStatus(0);
+                auditTripResult.setUpdateTime(DateUtils.getNowDate());
+                auditTripResult.setUpdateBy(username);
+                auditTripResult.setListUuid(null);
+            }
+            baseMapper.updateRestoreAuditTrip(auditTripResults);
+        }
+    }
+
     /**
      * 把当天新增待审核的数据id和状态添加到result中
      *
@@ -97,13 +112,13 @@ public class AuditTripResultServiceImpl extends ServiceImpl<AuditTripResultMappe
      * @return
      */
     @Override
-    public List<AuditTripResult> selectByUserIdList(List<String> uploadIdList, String listUUID) {
-        return baseMapper.selectByUserIdList(uploadIdList, listUUID);
+    public List<AuditTripResult> selectByUserIdList(List<String> uploadIdList, String listUuid) {
+        return baseMapper.selectByUserIdList(uploadIdList, listUuid);
     }
 
     @Override
-    public boolean updateListUUID(List<String> uploadIdList, String listUUID) {
-        return baseMapper.updateListUUID(uploadIdList, listUUID);
+    public boolean updateListUUID(List<String> uploadIdList, String listUuid) {
+        return baseMapper.updateListUUID(uploadIdList, listUuid);
     }
 
     /**
@@ -233,8 +248,8 @@ public class AuditTripResultServiceImpl extends ServiceImpl<AuditTripResultMappe
      * @return
      */
     @Override
-    public int AuditResultNum(Long userId, Integer statusNum, String listUUID) {
-        return baseMapper.AuditResultNum(userId, statusNum, listUUID);
+    public int AuditResultNum(Long userId, Integer statusNum, String listUuid) {
+        return baseMapper.AuditResultNum(userId, statusNum, listUuid);
     }
 
     /**
@@ -317,11 +332,6 @@ public class AuditTripResultServiceImpl extends ServiceImpl<AuditTripResultMappe
                 })
                 .collect(Collectors.toList());
         List<AuditTripDet> detList = auditTripResultVo.getDetList();
-        // 减轻resultVo的传递数据量
-        auditTripResultVo.setImgList(null);
-        auditTripResultVo.setDetList(null);
-        AuditTripResult auditTripResult = ConvertObjUtils.converResult(auditTripResultVo);
-        AuditTripMain auditTripMain = ConvertObjUtils.converMain(auditTripResultVo);
         // 调用sql语句更新det 和 img,调用更新resultSQL
         // 暂时不需要更新提交的img信息,标注信息会在img标注完成后就提交了
         if (imgList != null && imgList.size() > 0) {
@@ -330,6 +340,11 @@ public class AuditTripResultServiceImpl extends ServiceImpl<AuditTripResultMappe
         if (detList != null && detList.size() > 0) {
             auditTripDetMapper.updateSubmitDet(detList);
         }
+        // 减轻resultVo的传递数据量
+        auditTripResultVo.setImgList(null);
+        auditTripResultVo.setDetList(null);
+        AuditTripResult auditTripResult = ConvertObjUtils.converResult(auditTripResultVo);
+        AuditTripMain auditTripMain = ConvertObjUtils.converMain(auditTripResultVo);
         if (imgs.size() > 0) {
             String dstPic = basePath + auditTripResultVo.getUploadId() + ".jpg";
             String[] imgArr = new String[imgs.size()];
@@ -343,10 +358,7 @@ public class AuditTripResultServiceImpl extends ServiceImpl<AuditTripResultMappe
         }
         boolean updateSubmitTripResObj = baseMapper.updateSubmitTripResObj(auditTripResult);
         boolean updateSubmitMainObj = auditTripMainMapper.updateSubmitMainObj(auditTripMain);
-        if (updateSubmitTripResObj && updateSubmitMainObj) {
-            return true;
-        }
-        return false;
+        return updateSubmitTripResObj && updateSubmitMainObj;
     }
 
     /**

+ 27 - 0
src/main/java/com/pavis/ctr/audit/project/service/impl/OcrTripServiceImpl.java

@@ -64,6 +64,7 @@ public class OcrTripServiceImpl extends ServiceImpl<OcrTripMapper, OcrTrip> impl
     /**
      * 筛选满足条件的待审核小票信息
      * 缺少购买日期、缺少购买总金额、缺少商品明细、购买日期超过28天、OCR判断为多渠道上传
+     *
      * @param ocrTrips 需要筛选的小票信息
      * @return 筛选后的小票信息
      */
@@ -107,4 +108,30 @@ public class OcrTripServiceImpl extends ServiceImpl<OcrTripMapper, OcrTrip> impl
         }
         return null;
     }
+
+    @Override
+    public List<OcrTrip> getAuditTripByShopName() {
+        // 1. 获取ocr_trip中对应shopname的数据
+        List<OcrTrip> ocrTrips = query().eq("shop_name", Constants.WSGM).list();
+        if (ocrTrips == null || ocrTrips.size() == 0) {
+            return null;
+        }
+        List<String> uploadIds = getAuditOcrTrips(ocrTrips)
+                .stream()
+                .map(OcrTrip::getUploadId)
+                .collect(Collectors.toList());
+        // 2. 获取audit_trip_main中的所有数据
+        List<String> auditUploadIds = auditTripMainService.query().list()
+                .stream()
+                .map(AuditTripMain::getUploadId)
+                .collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(uploadIds) && CollectionUtils.isNotEmpty(auditUploadIds)) {
+            // 计算两个集合的差集
+            Collection<String> subtract = CollectionUtils.subtract(uploadIds, auditUploadIds);
+            if (CollectionUtils.isNotEmpty(subtract)) {
+                return query().in("upload_id", subtract).list();
+            }
+        }
+        return null;
+    }
 }

+ 17 - 7
src/main/resources/mybatis/mapper/AuditTripResultMapper.xml

@@ -14,7 +14,7 @@
         <result property="updateBy" column="update_by"/>
         <result property="updateTime" column="update_time"/>
         <result property="remark" column="remark"/>
-        <result property="listUUID" column="list_uuid"/>
+        <result property="listUuid" column="list_uuid"/>
     </resultMap>
 
 
@@ -33,6 +33,16 @@
             where upload_id=#{item}
         </foreach>
     </update>
+
+    <update id="updateRestoreAuditTrip" parameterType="List">
+        <foreach collection="restoreAuditTrip" item="item" open="" close="" separator=";">
+            update audit_trip_result
+            set user_id=#{item.userId},audit_status=#{item.auditStatus},update_time=#{item.updateTime},list_uuid=#{item.listUuid},update_by=#{item.updateBy}
+            where upload_id=#{item.uploadId}
+        </foreach>
+    </update>
+
+
     <update id="updateSubmitTripResObj" >
         update audit_trip_result
         set user_id = #{userId},
@@ -49,7 +59,7 @@
     <update id="updateListUUID">
         <foreach collection="uploadIdList" item="item" open="" close="" separator=";">
             update audit_trip_result
-            set list_uuid=#{listUUID}
+            set list_uuid=#{listUuid}
             where upload_id=#{item}
         </foreach>
     </update>
@@ -79,13 +89,13 @@
                 <if test="userId==null and statusNum!=null and statusNum==null">
                     audit_status=#{statusNum};
                 </if>
-                <if test="listUUID!=null and listUUID!='' and userId!=null and userId!=''">
-                    user_id=#{userId} and audit_status=#{statusNum} and list_uuid=#{listUUID};
+                <if test="listUuid!=null and listUuid!='' and userId!=null and userId!=''">
+                    user_id=#{userId} and audit_status=#{statusNum} and list_uuid=#{listUuid};
                 </if>
-                <if test="listUUID==null and userId!=null and statusNum!=null">
+                <if test="listUuid==null and userId!=null and statusNum!=null">
                     user_id=#{userId} and audit_status=#{statusNum};
                 </if>
-                <if test="listUUID==null and userId==null and statusNum==null">
+                <if test="listUuid==null and userId==null and statusNum==null">
                     audit_status=0 or audit_status=2;
                 </if>
             </where>
@@ -108,7 +118,7 @@
     <select id="selectByUserIdList" resultMap="AuditTripResult">
         select upload_id,user_id,audit_status,audit_conclusion,audit_error,create_by,create_time,list_uuid
         from audit_trip_result
-        where list_uuid=#{listUUID} and upload_id in
+        where list_uuid=#{listUuid} and upload_id in
         <foreach collection="uploadId" item="item" open="(" close=")" separator=",">
             #{item}
         </foreach>