diff --git a/src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java b/src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
index 45b92d4..f5c9d9e 100644
--- a/src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
+++ b/src/main/java/cn/timer/api/controller/xcgl/SalaryManagementController.java
@@ -1497,6 +1497,143 @@ public class SalaryManagementController {
 		return ResultUtil.data(imds,"导入成功");
 	}
 	
+	
+	/**
+	 *	导入薪资
+	 * @throws ParseException 
+	 */
+	@PostMapping(value = "/paysalaryfile")
+	@ApiOperation(value = "导入薪资", httpMethod = "POST", notes = "接口发布说明")
+	public Result<Object> paySalaryfile(@CurrentUser UserBean userBean,@Validated @RequestBody ValidList<ImportSalaryfileDto> impor) {
+		
+		int toinsert = 0;//新增
+		int toupdate = 0;//更新
+		int failure = 0;//失败
+		List<Map<String, String>> reasons = Lists.newArrayList();
+		for(ImportSalaryfileDto file : impor) {
+			String name = file.getEmpname();
+			
+			Map<String, String> map = Maps.newHashMap();
+			
+			try {
+				YgglMainEmp emp = YgglMainEmp.builder().build().selectOne(new QueryWrapper<YgglMainEmp>().lambda().eq(YgglMainEmp::getName, file.getEmpname()).eq(YgglMainEmp::getPhone, file.getPhone())
+						.eq(YgglMainEmp::getOrgCode, userBean.getOrgCode()));
+				if(emp != null) {
+					//0:定薪  1:调薪
+					if(file.getSfdx() == 0) {
+						XcglAssoXzdadx xzdadx = XcglAssoXzdadx.builder().build();
+						xzdadx.setUserid(emp.getEmpNum());//用户id
+						xzdadx.setSxrq(file.getSxrq());//生效日期
+						xzdadx.setAddtime(new Date().getTime());
+						xzdadx.setRemarks("");
+						xzdadx.setQyid(userBean.getOrgCode());
+						xzdadx.setTxzt(0);//0:使用中;1:历史, 2: 未生效
+						xcglassoxzdadxmapper.xzdadxinsert(xzdadx);
+						int zdyid = xzdadx.getId();
+						List<XcglAssoXzdaz> xzdazlist=new ArrayList<XcglAssoXzdaz>();
+						CustomDto[] cus = file.getCus();
+						
+						List<XcglAssoXzdazdy> xzs = XcglAssoXzdazdy.builder().build().selectList(new QueryWrapper<XcglAssoXzdazdy>().lambda().eq(XcglAssoXzdazdy::getQyid, userBean.getOrgCode()));
+						for(XcglAssoXzdazdy xz : xzs) {
+							XcglAssoXzdaz xzdaz = XcglAssoXzdaz.builder().build();
+							xzdaz.setXzdazdyid(xz.getId());//薪资档案自定义id
+							xzdaz.setRsz("0");//输入值
+							xzdaz.setXzdadxid(zdyid);//薪资档案-定薪id
+							xzdaz.insert();
+						}
+						
+						if(cus.length>0){
+							for(int p=0;p<cus.length;p++){
+								XcglAssoXzdaz.builder().build().delete(new QueryWrapper<XcglAssoXzdaz>().lambda().eq(XcglAssoXzdaz::getXzdazdyid, cus[p].getId()).eq(XcglAssoXzdaz::getXzdadxid, zdyid));
+								XcglAssoXzdaz xzdaz = new XcglAssoXzdaz();
+								xzdaz.setXzdazdyid(cus[p].getId());//薪资档案自定义id
+								xzdaz.setRsz(cus[p].getVal());//输入值
+								xzdaz.setXzdadxid(zdyid);//薪资档案-定薪id
+								xzdazlist.add(xzdaz);
+							}
+						}
+						if(xzdazlist.size()>0){
+							xcglassoxzdazmapper.insertxcglassoxzdazList(xzdazlist);
+						}
+						toinsert++;
+					}else {
+						// 当前日期
+						String curDate = DateUtil.getStringFormat(new Date().getTime());
+						// 未生效的调薪记录同一天只能有一条
+						XcglAssoXzdadx tmp = new LambdaQueryChainWrapper<XcglAssoXzdadx>(xcglassoxzdadxmapper)
+								.eq(XcglAssoXzdadx::getUserid, emp.getEmpNum())
+								.eq(XcglAssoXzdadx::getTxzt, 2)
+								.eq(XcglAssoXzdadx::getSxrq, file.getSxrq())
+								.one();
+						if (!Objects.isNull(tmp)) {
+							return ResultUtil.error("调薪成功失败, 已存在生效日期" + file.getSxrq() + "的待生效记录, 请到调薪记录页面查看!");
+						}
+						int txzt = 2;
+						if (DateUtil.getFormat(file.getSxrq()) <= DateUtil.getFormat(curDate)) {
+							// 生效日期在当天或之前的, 立即生效, 原使用中的记录变成历史记录
+							XcglAssoXzdadx xzds = new LambdaQueryChainWrapper<XcglAssoXzdadx>(xcglassoxzdadxmapper)
+									.eq(XcglAssoXzdadx::getUserid, emp.getEmpNum())
+									.eq(XcglAssoXzdadx::getTxzt, 0)
+									.one();
+							if(xzds != null) {
+								XcglAssoXzdadx txrz = XcglAssoXzdadx.builder().build();
+								txrz.setTxzt(1);//0:使用中;1:历史, 2: 未生效
+								txrz.setId(xzds.getId());
+								txrz.updateById();
+							}
+							txzt = 0;
+						}
+						XcglAssoXzdadx xzdadx = XcglAssoXzdadx.builder().build();
+						xzdadx.setUserid(emp.getEmpNum());//用户id
+						xzdadx.setSxrq(file.getSxrq());//生效日期
+						xzdadx.setAddtime(new Date().getTime());
+						xzdadx.setXgyhid(userBean.getEmpNum());//修改用户id
+						xzdadx.setRemarks("");
+						xzdadx.setQyid(userBean.getOrgCode());
+						xzdadx.setTxzt(txzt);
+						xcglassoxzdadxmapper.xzdadxinsert(xzdadx);
+						int zdyid = xzdadx.getId();
+						List<XcglAssoXzdaz> xzdazlist=new ArrayList<XcglAssoXzdaz>();
+						CustomDto[] cus = file.getCus();
+						if(cus.length>0){
+							for(int p=0;p<cus.length;p++){
+								XcglAssoXzdaz xzdaz = new XcglAssoXzdaz();
+								xzdaz.setXzdazdyid(cus[p].getId());//薪资档案自定义id
+								xzdaz.setRsz(cus[p].getVal());//输入值
+								xzdaz.setXzdadxid(zdyid);//薪资档案-定薪id
+								xzdazlist.add(xzdaz);
+							}
+						}
+						if(xzdazlist.size()>0){
+							xcglassoxzdazmapper.insertxcglassoxzdazList(xzdazlist);
+						}
+						toinsert++;
+					}
+				}else {
+					failure++;
+					map.put("name", name);
+					map.put("msg", "该员工不存在");
+					reasons.add(map);
+				}
+			}catch (Exception e) {
+				failure++;
+				map.put("name", name);
+				map.put("msg", StringUtils.isBlank(e.getMessage()) ? "必填数据出现空值" : e.getMessage());
+				reasons.add(map);
+			}
+		}
+		
+		ImportDescriptionDto imds = new ImportDescriptionDto();
+		imds.setSuccess(toinsert + toupdate);//成功
+		imds.setToinsert(toinsert);
+		imds.setToupdate(toupdate);//更新
+		imds.setFailure(failure);//失败
+		imds.setReasons(reasons);
+		
+		return ResultUtil.data(imds,"成功");
+	}
+	
+	
 	@PostMapping(value = "/determinesalaryrules")
 	@ApiOperation(value = "是否确定薪资规则", httpMethod = "POST", notes = "接口发布说明")
 	public Result<Object> DetermineSalaryRules(@CurrentUser UserBean userBean,@RequestBody SalaryRulesDto salaryrulesdto) {
diff --git a/src/main/java/cn/timer/api/dto/xcgl/FixedSalaryStaffDto.java b/src/main/java/cn/timer/api/dto/xcgl/FixedSalaryStaffDto.java
index 169bfd2..4eeef4f 100644
--- a/src/main/java/cn/timer/api/dto/xcgl/FixedSalaryStaffDto.java
+++ b/src/main/java/cn/timer/api/dto/xcgl/FixedSalaryStaffDto.java
@@ -31,5 +31,8 @@ public class FixedSalaryStaffDto implements Serializable {
 	int id;
 	String remarks; //备注
 	
+	String phone; //
+	String sxrq; //
+	
 	List<DefinedItemsDto> defdto = new ArrayList<DefinedItemsDto>();
 }
diff --git a/src/main/java/cn/timer/api/dto/xcgl/ImportSalaryfileDto.java b/src/main/java/cn/timer/api/dto/xcgl/ImportSalaryfileDto.java
new file mode 100644
index 0000000..883a5b0
--- /dev/null
+++ b/src/main/java/cn/timer/api/dto/xcgl/ImportSalaryfileDto.java
@@ -0,0 +1,17 @@
+package cn.timer.api.dto.xcgl;
+
+import lombok.AllArgsConstructor;
+import lombok.Data;
+import lombok.NoArgsConstructor;
+
+@Data
+@AllArgsConstructor
+@NoArgsConstructor
+public class ImportSalaryfileDto {
+	
+	String empname;// 用户姓名
+	String phone;// 电话号码
+	String sxrq;// 生效日期
+	Integer sfdx;//0:定薪  1:调薪
+	CustomDto[] cus;// 自定义输入值
+}
diff --git a/src/main/resources/mapping/xcgl/XcglAssoXzdazdyMapper.xml b/src/main/resources/mapping/xcgl/XcglAssoXzdazdyMapper.xml
index 9b640f2..9e8136b 100644
--- a/src/main/resources/mapping/xcgl/XcglAssoXzdazdyMapper.xml
+++ b/src/main/resources/mapping/xcgl/XcglAssoXzdazdyMapper.xml
@@ -24,6 +24,9 @@
             <result column="tratime" property="tratime" />
 			<result column="txzt" property="txzt" />
 			<result column="remarks" property="remarks" />
+			
+			<result column="phone" property="phone" />
+			<result column="sxrq" property="sxrq" />
 
             
             <collection property="defdto" ofType="cn.timer.api.dto.xcgl.DefinedItemsDto">
@@ -202,6 +205,8 @@
 				when 1 then '正式'
 				when 2 then '离职中'
 				else '已离职' end as empjobstatus,
+			emp.phone,
+			(select xsz.sxrq from xcgl_asso_xzdadx xsz where xsz.txzt = 0 and xsz.userid = emp.emp_num) as sxrq,
 			SUBSTR(emp.rz_time,1,10) emprztime ,
 			SUBSTR(emp.zz_time,1,10) empzztime,
 			IF(dadx.userid IS NOT NULL,1,0) as sfdx,