Sfoglia il codice sorgente

人员到账比例

yq 3 anni fa
parent
commit
21aafc2219

+ 27 - 1
pom.xml

@@ -92,7 +92,33 @@
         <dependency>
             <groupId>org.springframework.boot</groupId>
             <artifactId>spring-boot-starter-log4j2</artifactId>
-            <version>2.6.2</version>
+            <exclusions>
+                <exclusion>
+                    <groupId>org.apache.logging.log4j</groupId>
+                    <artifactId>log4j-api</artifactId>
+                </exclusion>
+                <exclusion>
+                    <groupId>org.apache.logging.log4j</groupId>
+                    <artifactId>log4j-core</artifactId>
+                </exclusion>
+            </exclusions>
+        </dependency>
+
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-api</artifactId>
+            <version>2.17.2</version>
+        </dependency>
+        <dependency>
+            <groupId>org.apache.logging.log4j</groupId>
+            <artifactId>log4j-core</artifactId>
+            <version>2.17.2</version>
+            <exclusions>
+                <exclusion>
+                    <artifactId>log4j-api</artifactId>
+                    <groupId>org.apache.logging.log4j</groupId>
+                </exclusion>
+            </exclusions>
         </dependency>
 
         <dependency>

+ 15 - 0
src/main/java/com/usky/dxtop/controller/web/business/StaffController.java

@@ -52,6 +52,21 @@ public class StaffController {
         staffRadioService.addList(list);
         return ApiResult.success();
     }
+
+    /**
+     * 根据部门批量新增
+     * @param deptId 部门编号
+     * @param isBinding 是否绑定
+     * @param radioId 比例id
+     * @return
+     */
+    @PutMapping("/addListByDept")
+    public ApiResult addListByDept(@RequestParam Long deptId,@RequestParam Boolean isBinding,@RequestParam Long radioId){
+        staffRadioService.addListByDept(deptId,isBinding,radioId);
+        return ApiResult.success();
+    }
+
+
     /**
      * 人员比例
      * @return

+ 2 - 1
src/main/java/com/usky/dxtop/mapper/StaffMapper.java

@@ -26,7 +26,8 @@ public interface StaffMapper extends BaseMapper<Staff> {
                      @Param("endTime") Date endTime,
                      @Param("name") String name,
                      @Param("phone") String phone,
-                     @Param("card") String card);
+                     @Param("card") String card,
+                             @Param("deptId") Long deptId);
 
 
     Staff one(@Param("id") String id,

+ 2 - 0
src/main/java/com/usky/dxtop/model/StaffRadio.java

@@ -1,5 +1,6 @@
 package com.usky.dxtop.model;
 
+import com.baomidou.mybatisplus.annotation.TableField;
 import lombok.Data;
 import lombok.EqualsAndHashCode;
 import lombok.experimental.Accessors;
@@ -34,6 +35,7 @@ public class StaffRadio implements Serializable {
     private Long radioId;
 
 
+    @TableField(exist = false)
     private boolean delFlag;
 
 }

+ 3 - 0
src/main/java/com/usky/dxtop/service/StaffRadioService.java

@@ -24,6 +24,9 @@ public interface StaffRadioService extends IService<StaffRadio> {
      */
     void addList(List<StaffRadio> list);
 
+
+    boolean addListByDept(Long deptId,Boolean isBinding,Long radioId);
+
     /**
      * 人员比例
      * @return

+ 1 - 2
src/main/java/com/usky/dxtop/service/impl/OrderServiceImpl.java

@@ -655,8 +655,7 @@ public class OrderServiceImpl extends ServiceImpl<OrderMapper, Order> implements
             }
             //添加身份信息和充值到账比例
             LambdaQueryWrapper<StaffRadio> queryWrapper = Wrappers.lambdaQuery();
-            queryWrapper.eq(StaffRadio::getStaffId,order.getUserId())
-                    .eq(StaffRadio::isDelFlag,0);
+            queryWrapper.eq(StaffRadio::getStaffId,order.getUserId());
             StaffRadio staffRadio = staffRadioService.getOne(queryWrapper);
             Optional.ofNullable(staffRadio).ifPresent(sf ->{
                 TopRadio topRadio = topRadioService.getById(staffRadio.getRadioId());

+ 53 - 7
src/main/java/com/usky/dxtop/service/impl/StaffRadioServiceImpl.java

@@ -1,15 +1,24 @@
 package com.usky.dxtop.service.impl;
 
+import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
+import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
 import com.baomidou.mybatisplus.core.toolkit.Wrappers;
 import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
+import com.usky.dxtop.common.enums.BusinessStatus;
+import com.usky.dxtop.common.exception.CustomException;
 import com.usky.dxtop.mapper.StaffRadioMapper;
+import com.usky.dxtop.model.Staff;
 import com.usky.dxtop.model.StaffRadio;
+import com.usky.dxtop.service.DeptService;
 import com.usky.dxtop.service.StaffRadioService;
+import com.usky.dxtop.service.StaffService;
+import org.springframework.beans.factory.annotation.Autowired;
 import org.springframework.stereotype.Service;
 
 import java.util.List;
 import java.util.Map;
+import java.util.stream.Collectors;
 
 /**
  * <p>
@@ -22,18 +31,55 @@ import java.util.Map;
 @Service
 public class StaffRadioServiceImpl extends ServiceImpl<StaffRadioMapper, StaffRadio> implements StaffRadioService {
 
+    @Autowired
+    private StaffService staffService;
 
     @Override
     public void addList(List<StaffRadio> list) {
-        list.stream()
+        if (CollectionUtils.isEmpty(list)){
+            throw new CustomException("请选择要关联的信息");
+        }
+        List<StaffRadio> removeList = list.stream()
                 .filter(staffRadio -> null != staffRadio.getRadioId() && 0 != staffRadio.getRadioId())
-                .forEach(staffRadio -> {
-                    LambdaUpdateWrapper<StaffRadio> updateWrapper = Wrappers.lambdaUpdate();
-                    updateWrapper.eq(StaffRadio::getStaffId, staffRadio.getStaffId())
-                            .set(StaffRadio::isDelFlag,staffRadio.isDelFlag());
-                    this.saveOrUpdate(staffRadio,updateWrapper);
-                });
+                .filter(staffRadio -> !staffRadio.isDelFlag()).collect(Collectors.toList());
 
+        List<StaffRadio> addList = list.stream()
+                .filter(staffRadio -> null != staffRadio.getRadioId() && 0 != staffRadio.getRadioId())
+                .filter(StaffRadio::isDelFlag).collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(removeList)){
+            LambdaQueryWrapper<StaffRadio> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.in(StaffRadio::getStaffId,removeList.stream().map(StaffRadio::getStaffId).collect(Collectors.toList()));
+            this.remove(queryWrapper);
+        }
+        if (CollectionUtils.isNotEmpty(addList)){
+            this.saveBatch(addList);
+        }
+
+
+    }
+
+    @Override
+    public boolean addListByDept(Long deptId, Boolean isBinding,Long radioId) {
+        LambdaQueryWrapper<Staff> staffLambdaQueryWrapper = Wrappers.lambdaQuery();
+        staffLambdaQueryWrapper
+                .select(Staff::getSId)
+                .eq(Staff::getDeptId,deptId);
+        List<Long> list = staffService.list(staffLambdaQueryWrapper).stream().map(Staff::getSId).collect(Collectors.toList());
+        if (CollectionUtils.isNotEmpty(list)){
+            LambdaQueryWrapper<StaffRadio> queryWrapper = Wrappers.lambdaQuery();
+            queryWrapper.in(StaffRadio::getStaffId,list);
+            this.remove(queryWrapper);
+            if (isBinding){
+                List<StaffRadio> addList = list.stream().map(staff -> {
+                    StaffRadio staffRadio = new StaffRadio();
+                    staffRadio.setRadioId(radioId);
+                    staffRadio.setStaffId(staff);
+                    return staffRadio;
+                }).collect(Collectors.toList());
+                this.saveBatch(addList);
+            }
+        }
+        return true;
     }
 
     @Override

+ 2 - 1
src/main/java/com/usky/dxtop/service/impl/StaffServiceImpl.java

@@ -67,7 +67,8 @@ public class StaffServiceImpl extends ServiceImpl<StaffMapper, Staff> implements
                 staffRequest.getEndTime(),
                 staffRequest.getName(),
                 staffRequest.getPhone(),
-                staffRequest.getCard());
+                staffRequest.getCard(),
+                staffRequest.getDeptId());
         return new CommonPage<>(page.getRecords(),page.getTotal(),page.getCurrent(),page.getSize());
     }
 

+ 17 - 15
src/main/java/com/usky/dxtop/service/job/SmJob.java

@@ -74,22 +74,24 @@ public class SmJob {
                     LambdaQueryWrapper<Dept> deptLambdaQueryWrapper = Wrappers.lambdaQuery();
                     deptLambdaQueryWrapper.eq(Dept::getId,deptMap.get("id").toString());
                     Dept dept = deptService.getOne(deptLambdaQueryWrapper);
-                    int type;
-                    if (null == staff){
-                        type = 1;
-                        staffService.save(date);
-                    }else {
-                        type = 2;
-                        date.setSId(staff.getSId());
-                        staffService.updateById(date);
-                    }
-                    //发送人员信息
-                    if (StringUtils.isNotBlank(date.getCardId()) && null != dept && Double.parseDouble(date.getCardId()) > 60000){
+                    if (null != dept){
                         date.setDeptId(dept.getDId());
-                        staffService.personSendMessage(date,type);
-                        //发送人脸信息
-                        if (StringUtils.isNotBlank(date.getFaceId())){
-                            staffService.faceSendMessage(date);
+                        int type;
+                        if (null == staff){
+                            type = 1;
+                            staffService.save(date);
+                        }else {
+                            type = 2;
+                            date.setSId(staff.getSId());
+                            staffService.updateById(date);
+                        }
+                        //发送人员信息
+                        if (StringUtils.isNotBlank(date.getCardId()) && Double.parseDouble(date.getCardId()) > 60000){
+                            staffService.personSendMessage(date,type);
+                            //发送人脸信息
+                            if (StringUtils.isNotBlank(date.getFaceId())){
+                                staffService.faceSendMessage(date);
+                            }
                         }
                     }
                 }catch (Exception e){

+ 5 - 0
src/main/java/com/usky/dxtop/service/vo/StaffRequest.java

@@ -38,4 +38,9 @@ public class StaffRequest {
      * 卡号
      */
     private String card;
+
+    /**
+     * 部门编号
+     */
+    private Long deptId;
 }

+ 2 - 0
src/main/resources/application-dev.properties

@@ -115,3 +115,5 @@ toppay.notifyUrl=https://qhome.usky.cn/dxapi/top/notify
 toppay.scanPayUrl=https://interface.allinpaygx.com/api/access/payInterface/usePaymentCode
 toppay.dealSelectUrl=https://interface.allinpaygx.com/api/access/payInterface/findOrderInfo
 toppay.unifyUrl=https://interface.allinpaygx.com/api/access/payInterface/unifiedPay
+
+logging.

+ 2 - 0
src/main/resources/log4j2.component.properties

@@ -0,0 +1,2 @@
+log4j2.formatMsgNoLookups=True
+log4j.formatMsgNoLookups=True

+ 3 - 0
src/main/resources/mapper/StaffMapper.xml

@@ -25,6 +25,9 @@
             <if test="card !=null and card != ''">
                 and s.card_id like concat('%', #{card}, '%')
             </if>
+            <if test="deptId !=null">
+                and s.dept_id  = #{deptId}
+            </if>
         </where>
         order by s.id desc
     </select>