diff --git a/src/com/api/salary/web/ExtEmpController.java b/src/com/api/salary/web/ExtEmpController.java
new file mode 100644
index 000000000..9b349b2ef
--- /dev/null
+++ b/src/com/api/salary/web/ExtEmpController.java
@@ -0,0 +1,8 @@
+package com.api.salary.web;
+
+import javax.ws.rs.Path;
+
+@Path("/bs/hrmsalary/extEmp")
+public class ExtEmpController extends com.engine.salary.web.ExtEmpController{
+
+}
diff --git a/src/com/engine/salary/entity/extemp/param/ExtEmpQueryParam.java b/src/com/engine/salary/entity/extemp/param/ExtEmpQueryParam.java
new file mode 100644
index 000000000..ac68f247f
--- /dev/null
+++ b/src/com/engine/salary/entity/extemp/param/ExtEmpQueryParam.java
@@ -0,0 +1,27 @@
+package com.engine.salary.entity.extemp.param;
+
+import com.engine.salary.common.BaseQueryParam;
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+/**
+ * 数据采集-累计专项附加扣除查询参数
+ *
Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+public class ExtEmpQueryParam extends BaseQueryParam {
+
+ //姓名
+ private String username;
+
+
+}
diff --git a/src/com/engine/salary/entity/extemp/po/ExtEmpPO.java b/src/com/engine/salary/entity/extemp/po/ExtEmpPO.java
new file mode 100644
index 000000000..82a24937a
--- /dev/null
+++ b/src/com/engine/salary/entity/extemp/po/ExtEmpPO.java
@@ -0,0 +1,123 @@
+package com.engine.salary.entity.extemp.po;
+
+
+import lombok.AllArgsConstructor;
+import lombok.Builder;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+import java.util.Date;
+
+/**
+ * 外部人员
+ */
+@Data
+@Builder
+@NoArgsConstructor
+@AllArgsConstructor
+//hrsa_external_employee
+public class ExtEmpPO {
+
+ private Long id;
+ /**
+ * 姓名
+ */
+ private String username;
+ /**
+ * 部门
+ */
+ private String departmentName;
+ /**
+ * 部门ID
+ */
+ private Long departmentId;
+ /**
+ * 分部
+ */
+ private String subcompanyName;
+ /**
+ * 分部ID
+ */
+ private Long subcompanyId;
+ /**
+ * 岗位
+ */
+ private String jobtitleName;
+ /**
+ * 岗位ID
+ */
+ private Long jobtitleId;
+ /**
+ * 入职日期
+ */
+ private String companystartdate;
+ /**
+ * 手机
+ */
+ private String mobile;
+ /**
+ * 状态编码
+ */
+ private String status;
+ /**
+ * 工号
+ */
+ private String workcode;
+ /**
+ * 性别
+ */
+ private String sex;
+ /**
+ * 邮件
+ */
+ private String email;
+ /**
+ * 电话
+ */
+ private String telephone;
+ /**
+ * 职称
+ */
+ private String jobcall;
+ /**
+ * 出生日期
+ */
+ private String birthday;
+ /**
+ * 身份证号码
+ */
+ private String idNo;
+ /**
+ * 本人开户的银行卡卡号
+ */
+ private String bankCardNum;
+ /**
+ * 本人开户的银行卡开户支行全称
+ */
+ private String bankName;
+ /**
+ * 是否已删除。0:未删除、1:已删除
+ */
+ private Integer deleteType;
+ /**
+ * 创建人
+ */
+ private Long creator;
+ /**
+ * 修改人
+ */
+ private Long modifier;
+ /**
+ * 创建时间
+ */
+ private Date createTime;
+ /**
+ * 修改时间
+ */
+ private Date updateTime;
+ /**
+ * 租户ID
+ */
+ private String tenantKey;
+
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.java b/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.java
new file mode 100644
index 000000000..5f052651c
--- /dev/null
+++ b/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.java
@@ -0,0 +1,64 @@
+package com.engine.salary.mapper.extemp;
+
+import com.engine.salary.entity.extemp.po.ExtEmpPO;
+
+import java.util.List;
+
+public interface ExternalEmployeeMapper {
+
+ /**
+ * 查询所有记录
+ *
+ * @return 返回集合,没有返回空List
+ */
+ List listAll();
+
+
+ /**
+ * 根据主键查询
+ *
+ * @param id 主键
+ * @return 返回记录,没有返回null
+ */
+ ExtEmpPO getById(Integer id);
+
+ /**
+ * 新增,插入所有字段
+ *
+ * @param externalEmployee 新增的记录
+ * @return 返回影响行数
+ */
+ int insert(ExtEmpPO externalEmployee);
+
+ /**
+ * 新增,忽略null字段
+ *
+ * @param externalEmployee 新增的记录
+ * @return 返回影响行数
+ */
+ int insertIgnoreNull(ExtEmpPO externalEmployee);
+
+ /**
+ * 修改,修改所有字段
+ *
+ * @param externalEmployee 修改的记录
+ * @return 返回影响行数
+ */
+ int update(ExtEmpPO externalEmployee);
+
+ /**
+ * 修改,忽略null字段
+ *
+ * @param externalEmployee 修改的记录
+ * @return 返回影响行数
+ */
+ int updateIgnoreNull(ExtEmpPO externalEmployee);
+
+ /**
+ * 删除记录
+ *
+ * @return 返回影响行数
+ */
+ int delete(Long id);
+
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.xml b/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.xml
new file mode 100644
index 000000000..aff4029da
--- /dev/null
+++ b/src/com/engine/salary/mapper/extemp/ExternalEmployeeMapper.xml
@@ -0,0 +1,468 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ t
+ .
+ id
+ , t.username
+ , t.department_name
+ , t.department_id
+ , t.subcompany_name
+ , t.subcompany_id
+ , t.jobtitle_name
+ , t.jobtitle_id
+ , t.companystartdate
+ , t.mobile
+ , t.status
+ , t.workcode
+ , t.sex
+ , t.email
+ , t.telephone
+ , t.jobcall
+ , t.birthday
+ , t.id_no
+ , t.bank_card_num
+ , t.bank_name
+ , t.delete_type
+ , t.creator
+ , t.modifier
+ , t.create_time
+ , t.update_time
+ , t.tenant_key
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ INSERT INTO hrsa_external_employee
+
+
+
+ id,
+
+
+ username,
+
+
+ department_name,
+
+
+ department_id,
+
+
+ subcompany_name,
+
+
+ subcompany_id,
+
+
+ jobtitle_name,
+
+
+ jobtitle_id,
+
+
+ companystartdate,
+
+
+ mobile,
+
+
+ status,
+
+
+ workcode,
+
+
+ sex,
+
+
+ email,
+
+
+ telephone,
+
+
+ jobcall,
+
+
+ birthday,
+
+
+ id_no,
+
+
+ bank_card_num,
+
+
+ bank_name,
+
+
+ delete_type,
+
+
+ creator,
+
+
+ modifier,
+
+
+ create_time,
+
+
+ update_time,
+
+
+ tenant_key,
+
+
+
+
+ #{id},
+
+
+ #{username},
+
+
+ #{departmentName},
+
+
+ #{departmentId},
+
+
+ #{subcompanyName},
+
+
+ #{subcompanyId},
+
+
+ #{jobtitleName},
+
+
+ #{jobtitleId},
+
+
+ #{companystartdate},
+
+
+ #{mobile},
+
+
+ #{status},
+
+
+ #{workcode},
+
+
+ #{sex},
+
+
+ #{email},
+
+
+ #{telephone},
+
+
+ #{jobcall},
+
+
+ #{birthday},
+
+
+ #{idNo},
+
+
+ #{bankCardNum},
+
+
+ #{bankName},
+
+
+ #{deleteType},
+
+
+ #{creator},
+
+
+ #{modifier},
+
+
+ #{createTime},
+
+
+ #{updateTime},
+
+
+ #{tenantKey},
+
+
+
+
+
+
+ UPDATE hrsa_external_employee
+
+ username=#{username},
+ department_name=#{departmentName},
+ department_id=#{departmentId},
+ subcompany_name=#{subcompanyName},
+ subcompany_id=#{subcompanyId},
+ jobtitle_name=#{jobtitleName},
+ jobtitle_id=#{jobtitleId},
+ companystartdate=#{companystartdate},
+ mobile=#{mobile},
+ status=#{status},
+ workcode=#{workcode},
+ sex=#{sex},
+ email=#{email},
+ telephone=#{telephone},
+ jobcall=#{jobcall},
+ birthday=#{birthday},
+ id_no=#{idNo},
+ bank_card_num=#{bankCardNum},
+ bank_name=#{bankName},
+ delete_type=#{deleteType},
+ creator=#{creator},
+ modifier=#{modifier},
+ create_time=#{createTime},
+ update_time=#{updateTime},
+ tenant_key=#{tenantKey},
+
+ WHERE id = #{id} AND delete_type = 0
+
+
+
+
+
+ UPDATE hrsa_external_employee
+
+
+ username=#{username},
+
+
+ department_name=#{departmentName},
+
+
+ department_id=#{departmentId},
+
+
+ subcompany_name=#{subcompanyName},
+
+
+ subcompany_id=#{subcompanyId},
+
+
+ jobtitle_name=#{jobtitleName},
+
+
+ jobtitle_id=#{jobtitleId},
+
+
+ companystartdate=#{companystartdate},
+
+
+ mobile=#{mobile},
+
+
+ status=#{status},
+
+
+ workcode=#{workcode},
+
+
+ sex=#{sex},
+
+
+ email=#{email},
+
+
+ telephone=#{telephone},
+
+
+ jobcall=#{jobcall},
+
+
+ birthday=#{birthday},
+
+
+ id_no=#{idNo},
+
+
+ bank_card_num=#{bankCardNum},
+
+
+ bank_name=#{bankName},
+
+
+ delete_type=#{deleteType},
+
+
+ creator=#{creator},
+
+
+ modifier=#{modifier},
+
+
+ create_time=#{createTime},
+
+
+ update_time=#{updateTime},
+
+
+ tenant_key=#{tenantKey},
+
+
+ WHERE id = #{id} AND delete_type = 0
+
+
+
+
+
+ UPDATE hrsa_external_employee
+ SET delete_type=1
+ WHERE id = #{id}
+ AND delete_type = 0
+
+
+
+
\ No newline at end of file
diff --git a/src/com/engine/salary/service/ExtEmpService.java b/src/com/engine/salary/service/ExtEmpService.java
new file mode 100644
index 000000000..04a388f67
--- /dev/null
+++ b/src/com/engine/salary/service/ExtEmpService.java
@@ -0,0 +1,19 @@
+package com.engine.salary.service;
+
+import com.engine.salary.entity.extemp.param.ExtEmpQueryParam;
+import com.engine.salary.entity.extemp.po.ExtEmpPO;
+
+import java.util.Collection;
+import java.util.List;
+
+public interface ExtEmpService {
+
+ List list(ExtEmpQueryParam param);
+
+ void save(ExtEmpPO po);
+
+ void update(ExtEmpPO po);
+
+ void delete(Collection ids);
+
+}
\ No newline at end of file
diff --git a/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java b/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java
new file mode 100644
index 000000000..b61665f6b
--- /dev/null
+++ b/src/com/engine/salary/service/impl/ExtEmpServiceImpl.java
@@ -0,0 +1,51 @@
+package com.engine.salary.service.impl;
+
+import com.engine.core.impl.Service;
+import com.engine.salary.entity.extemp.param.ExtEmpQueryParam;
+import com.engine.salary.entity.extemp.po.ExtEmpPO;
+import com.engine.salary.mapper.extemp.ExternalEmployeeMapper;
+import com.engine.salary.service.ExtEmpService;
+import com.engine.salary.util.db.MapperProxyFactory;
+import org.apache.commons.collections4.CollectionUtils;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 累计专项
+ * Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+public class ExtEmpServiceImpl extends Service implements ExtEmpService {
+
+
+ private ExternalEmployeeMapper getExternalEmployeeMapper() {
+ return MapperProxyFactory.getProxy(ExternalEmployeeMapper.class);
+ }
+
+
+ @Override
+ public List list(ExtEmpQueryParam param) {
+ return null;
+ }
+
+ @Override
+ public void save(ExtEmpPO po) {
+ getExternalEmployeeMapper().insertIgnoreNull(po);
+ }
+
+ @Override
+ public void update(ExtEmpPO po) {
+ getExternalEmployeeMapper().updateIgnoreNull(po);
+ }
+
+ @Override
+ public void delete(Collection ids) {
+ if (CollectionUtils.isNotEmpty(ids)) {
+ ids.forEach(getExternalEmployeeMapper()::delete);
+ }
+ }
+}
diff --git a/src/com/engine/salary/web/ExtEmpController.java b/src/com/engine/salary/web/ExtEmpController.java
new file mode 100644
index 000000000..f918ec31d
--- /dev/null
+++ b/src/com/engine/salary/web/ExtEmpController.java
@@ -0,0 +1,15 @@
+package com.engine.salary.web;
+
+/**
+ * 流程相关
+ * Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+public class ExtEmpController {
+
+
+
+}
diff --git a/src/com/engine/salary/wrapper/ExtEmpWrapper.java b/src/com/engine/salary/wrapper/ExtEmpWrapper.java
new file mode 100644
index 000000000..70bb6a54b
--- /dev/null
+++ b/src/com/engine/salary/wrapper/ExtEmpWrapper.java
@@ -0,0 +1,48 @@
+package com.engine.salary.wrapper;
+
+import com.engine.common.util.ServiceUtil;
+import com.engine.core.impl.Service;
+import com.engine.salary.entity.extemp.param.ExtEmpQueryParam;
+import com.engine.salary.entity.extemp.po.ExtEmpPO;
+import com.engine.salary.service.ExtEmpService;
+import com.engine.salary.service.impl.ExtEmpServiceImpl;
+import weaver.hrm.User;
+
+import java.util.Collection;
+import java.util.List;
+
+/**
+ * 累计专项
+ * Copyright: Copyright (c) 2022
+ * Company: 泛微软件
+ *
+ * @author qiantao
+ * @version 1.0
+ **/
+public class ExtEmpWrapper extends Service implements ExtEmpService {
+
+ private ExtEmpService getExtEmpService(User user) {
+ return ServiceUtil.getService(ExtEmpServiceImpl.class, user);
+ }
+
+
+ @Override
+ public List list(ExtEmpQueryParam param) {
+ return null;
+ }
+
+ @Override
+ public void save(ExtEmpPO po) {
+ getExtEmpService(user).save(po);
+ }
+
+ @Override
+ public void update(ExtEmpPO po) {
+ getExtEmpService(user).update(po);
+ }
+
+ @Override
+ public void delete(Collection ids) {
+ getExtEmpService(user).delete(ids);
+ }
+}