From 20e666c244af9b509e046393059718ac755a6f21 Mon Sep 17 00:00:00 2001 From: mx <1@qq.com> Date: Thu, 27 Feb 2025 18:43:57 +0800 Subject: [PATCH] =?UTF-8?q?=E5=B8=AE=E6=8A=A5=E5=90=8D?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../employee/EmployeeTaskController.java | 5 +- .../merchant/MerchantTaskController.java | 46 +++++++++++++++++-- .../merchant/MerchantUserController.java | 14 ++++++ .../src/main/resources/application-druid.yml | 4 +- .../src/main/resources/application.yml | 22 ++++----- .../com/staffing/common/utils/WxUtil.java | 26 +++++++++-- .../custom/domain/BaomingBatchBo.java | 25 ++++++++++ .../staffing/custom/domain/StEmployee.java | 23 +++++++++- .../staffing/custom/domain/StTaskSign.java | 14 ++++++ .../custom/service/IStEmployeeService.java | 3 +- .../custom/service/IStTaskSignService.java | 3 ++ .../service/impl/StEmployeeServiceImpl.java | 36 ++++++++++++++- .../service/impl/StTaskSignServiceImpl.java | 35 ++++++++++++-- .../mapper/custom/StEmployeeMapper.xml | 2 + .../mapper/custom/StTaskSignMapper.xml | 8 +++- 15 files changed, 234 insertions(+), 32 deletions(-) create mode 100644 staffing-system/src/main/java/com/staffing/custom/domain/BaomingBatchBo.java diff --git a/staffing-admin/src/main/java/com/staffing/web/controller/employee/EmployeeTaskController.java b/staffing-admin/src/main/java/com/staffing/web/controller/employee/EmployeeTaskController.java index cf94405..ee4665e 100644 --- a/staffing-admin/src/main/java/com/staffing/web/controller/employee/EmployeeTaskController.java +++ b/staffing-admin/src/main/java/com/staffing/web/controller/employee/EmployeeTaskController.java @@ -95,12 +95,11 @@ public class EmployeeTaskController extends BaseController user.setPhonenumber(taskSign.getPhone()); user.setIdCard(taskSign.getIdCard()); tokenService.refreshToken(SecurityUtils.getLoginUser()); - - - + taskSign.setEmployeeId(userId); return stTaskSignService.baoming(taskSign); } + /** * 修改签到 */ diff --git a/staffing-admin/src/main/java/com/staffing/web/controller/merchant/MerchantTaskController.java b/staffing-admin/src/main/java/com/staffing/web/controller/merchant/MerchantTaskController.java index 90a6c67..9c88f2e 100644 --- a/staffing-admin/src/main/java/com/staffing/web/controller/merchant/MerchantTaskController.java +++ b/staffing-admin/src/main/java/com/staffing/web/controller/merchant/MerchantTaskController.java @@ -8,9 +8,7 @@ import com.staffing.common.core.domain.AjaxResult; import com.staffing.common.core.page.TableDataInfo; import com.staffing.common.enums.BusinessType; import com.staffing.common.utils.poi.ExcelUtil; -import com.staffing.custom.domain.StEmployeeFundRecord; -import com.staffing.custom.domain.StTask; -import com.staffing.custom.domain.StTaskSign; +import com.staffing.custom.domain.*; import com.staffing.custom.service.IStEmployeeFundRecordService; import com.staffing.custom.service.IStTaskService; import com.staffing.custom.service.IStTaskSignService; @@ -40,6 +38,8 @@ public class MerchantTaskController extends BaseController private IStTaskSignService stTaskSignService; @Autowired private IStEmployeeFundRecordService employeeFundRecordService; + + /** * 查询任务列表 */ @@ -93,4 +93,44 @@ public class MerchantTaskController extends BaseController } + @PutMapping("/baomingBatch") + @PreAuthorize("@ss.hasPermi('task:edit')") + public AjaxResult baomingBatch(@RequestBody BaomingBatchBo baomingBatchBo) + { + if (baomingBatchBo.getList() == null || baomingBatchBo.getList().size() == 0){ + return AjaxResult.error("所选人员为空"); + } + if (baomingBatchBo.getTaskId() == null || baomingBatchBo.getTaskId() == 0){ + return AjaxResult.error("任务id为空"); + } + for (StTaskSign stTaskSign : baomingBatchBo.getList()) { + stTaskSign.setTaskId(baomingBatchBo.getTaskId()); + AjaxResult baoming = stTaskSignService.baoming(stTaskSign); + + if (baoming.isError()){ + return baoming; + } + } + return AjaxResult.success(); + } + + /** + * 修改签到 + */ + @GetMapping("/cancelBaoming") + @PreAuthorize("@ss.hasPermi('task:edit')") + public AjaxResult cancelBaoming(StTaskSign taskSign) + { + return toAjax(stTaskSignService.deleteStTaskSignById(taskSign.getId())); + } + /** + * 新增员工 + */ + @PutMapping("addEmployeeAndSign") + @PreAuthorize("@ss.hasPermi('task:edit')") + public AjaxResult addEmployeeAndSign(@RequestBody StEmployee stEmployee) + { + return stTaskSignService.addEmployeeAndSign(stEmployee); + } + } diff --git a/staffing-admin/src/main/java/com/staffing/web/controller/merchant/MerchantUserController.java b/staffing-admin/src/main/java/com/staffing/web/controller/merchant/MerchantUserController.java index 040ec3b..a8c85a2 100644 --- a/staffing-admin/src/main/java/com/staffing/web/controller/merchant/MerchantUserController.java +++ b/staffing-admin/src/main/java/com/staffing/web/controller/merchant/MerchantUserController.java @@ -9,11 +9,13 @@ import com.staffing.common.core.domain.AjaxResult; import com.staffing.common.core.domain.entity.SysMenu; import com.staffing.common.core.domain.entity.SysUser; import com.staffing.common.core.domain.model.LoginBody; +import com.staffing.common.core.page.TableDataInfo; import com.staffing.common.core.redis.RedisCache; import com.staffing.common.utils.SecurityUtils; import com.staffing.common.utils.sign.Base64; import com.staffing.common.utils.uuid.IdUtils; import com.staffing.custom.domain.StEmployee; +import com.staffing.custom.domain.StTaskSign; import com.staffing.custom.service.IStEmployeeService; import com.staffing.framework.web.service.SysLoginService; import com.staffing.framework.web.service.SysPermissionService; @@ -21,6 +23,7 @@ import com.staffing.framework.web.service.TokenService; import com.staffing.system.service.ISysConfigService; import com.staffing.system.service.ISysMenuService; import org.springframework.beans.factory.annotation.Autowired; +import org.springframework.security.access.prepost.PreAuthorize; import org.springframework.util.FastByteArrayOutputStream; import org.springframework.web.bind.annotation.*; @@ -207,5 +210,16 @@ public class MerchantUserController extends BaseController List menus = menuService.selectMenuTreeByUserId(userId); return AjaxResult.success(menuService.buildMenus(menus)); } + /** + * 查询员工列表 + */ + @GetMapping("/list") + public TableDataInfo list(StEmployee stEmployee) + { + List list = stEmployeeService.selectStEmployeeListAndSign(stEmployee); + return getDataTable(list); + } + + } diff --git a/staffing-admin/src/main/resources/application-druid.yml b/staffing-admin/src/main/resources/application-druid.yml index e37e87e..68f50a8 100644 --- a/staffing-admin/src/main/resources/application-druid.yml +++ b/staffing-admin/src/main/resources/application-druid.yml @@ -6,9 +6,9 @@ spring: druid: # 主库数据源 master: - url: jdbc:mysql://192.168.18.119:3308/staffing?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 + url: jdbc:mysql://124.236.46.74:9100/staffing?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8 username: root - password: Ps123456 + password: rwWhYfCe3Tzhatep # 从库数据源 slave: # 从数据源开关/默认关闭 diff --git a/staffing-admin/src/main/resources/application.yml b/staffing-admin/src/main/resources/application.yml index 377eab2..422b41e 100644 --- a/staffing-admin/src/main/resources/application.yml +++ b/staffing-admin/src/main/resources/application.yml @@ -68,13 +68,13 @@ spring: # redis 配置 redis: # 地址 - host: 192.168.18.119 + host: 8.155.21.176 # 端口,默认为6379 - port: 6378 + port: 6379 # 数据库索引 database: 0 # 密码 - password: 12345 + password: ps12345 # 连接超时时间 timeout: 10s lettuce: @@ -170,13 +170,13 @@ minio: access-key: root secret-key: root_6688 -env: - genPicCodeUrl: http://yg.pusonggroup.com:81/index.html?id= - picPrefix: https://www.tulkj.cn/file/yonggong/ - appId: wx7bc7df6eb945a84f - secret: 60dc8f7e8c850dfbe0170acefa48070a #env: -# genPicCodeUrl: http://www.tulkj.cn:81/index.html?id= +# genPicCodeUrl: http://yg.pusonggroup.com:81/index.html?id= # picPrefix: https://www.tulkj.cn/file/yonggong/ -# appId: wx26e952dad7a8aae5 -# secret: 60a85e94d921a385ce52faaaed4a103b \ No newline at end of file +# appId: wx7bc7df6eb945a84f +# secret: 60dc8f7e8c850dfbe0170acefa48070a +env: + genPicCodeUrl: http://www.tulkj.cn:81/index.html?id= + picPrefix: https://www.tulkj.cn/file/yonggong/ + appId: wx26e952dad7a8aae5 + secret: 60a85e94d921a385ce52faaaed4a103b \ No newline at end of file diff --git a/staffing-common/src/main/java/com/staffing/common/utils/WxUtil.java b/staffing-common/src/main/java/com/staffing/common/utils/WxUtil.java index 81704a7..42b7305 100644 --- a/staffing-common/src/main/java/com/staffing/common/utils/WxUtil.java +++ b/staffing-common/src/main/java/com/staffing/common/utils/WxUtil.java @@ -5,12 +5,14 @@ import com.staffing.common.config.EnvConfig; import com.staffing.common.core.domain.WxLogin; import com.staffing.common.core.domain.WxPhone; import com.staffing.common.core.domain.WxToken; +import com.staffing.common.core.redis.RedisCache; import com.staffing.common.utils.http.HttpUtils; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.stereotype.Component; import java.util.HashMap; import java.util.Map; +import java.util.concurrent.TimeUnit; @Component public class WxUtil { @@ -23,8 +25,13 @@ public class WxUtil { @Autowired EnvConfig envConfig; - public synchronized WxToken getAccessToken(){ - if (wxToken == null || System.currentTimeMillis() > wxToken.getExpiresTime() - 60000){ + @Autowired + private RedisCache redisCache; + + private String TOKENKEY = "WX_TOKEN"; + public synchronized String getAccessToken(){ + String token = redisCache.getCacheObject(TOKENKEY); + if (token == null){ Map getParam = new HashMap<>(); getParam.put("grant_type", "client_credential"); getParam.put("appid", envConfig.getAppId()); @@ -32,8 +39,19 @@ public class WxUtil { String resJson = HttpUtils.sendGet("https://api.weixin.qq.com/cgi-bin/token", HttpUtils.getParam(getParam)); wxToken = JSONObject.parseObject(resJson, WxToken.class); wxToken.setExpiresTime(wxToken.getExpires_in() * 1000 + System.currentTimeMillis()); + redisCache.setCacheObject(TOKENKEY, wxToken.getAccess_token(), wxToken.getExpires_in(), TimeUnit.MINUTES); } - return wxToken; + return token; +// if (wxToken == null || System.currentTimeMillis() > wxToken.getExpiresTime() - 60000){ +// Map getParam = new HashMap<>(); +// getParam.put("grant_type", "client_credential"); +// getParam.put("appid", envConfig.getAppId()); +// getParam.put("secret", envConfig.getSecret()); +// String resJson = HttpUtils.sendGet("https://api.weixin.qq.com/cgi-bin/token", HttpUtils.getParam(getParam)); +// wxToken = JSONObject.parseObject(resJson, WxToken.class); +// wxToken.setExpiresTime(wxToken.getExpires_in() * 1000 + System.currentTimeMillis()); +// } +// return wxToken; } /** @@ -46,7 +64,7 @@ public class WxUtil { Map getParam = new HashMap<>(); getParam.put("code", code); getParam.put("openid", openId); - String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + getAccessToken().getAccess_token(); + String url = "https://api.weixin.qq.com/wxa/business/getuserphonenumber?access_token=" + getAccessToken(); String resJson = HttpUtils.sendPost(url, JSONObject.toJSONString(getParam)); WxPhone wxPhone = JSONObject.parseObject(resJson, WxPhone.class); diff --git a/staffing-system/src/main/java/com/staffing/custom/domain/BaomingBatchBo.java b/staffing-system/src/main/java/com/staffing/custom/domain/BaomingBatchBo.java new file mode 100644 index 0000000..183ca60 --- /dev/null +++ b/staffing-system/src/main/java/com/staffing/custom/domain/BaomingBatchBo.java @@ -0,0 +1,25 @@ +package com.staffing.custom.domain; + +import java.util.List; + +public class BaomingBatchBo { + + private List list; + private Long taskId; + + public List getList() { + return list; + } + + public void setList(List list) { + this.list = list; + } + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } +} diff --git a/staffing-system/src/main/java/com/staffing/custom/domain/StEmployee.java b/staffing-system/src/main/java/com/staffing/custom/domain/StEmployee.java index 1cd4cb6..d27cb7b 100644 --- a/staffing-system/src/main/java/com/staffing/custom/domain/StEmployee.java +++ b/staffing-system/src/main/java/com/staffing/custom/domain/StEmployee.java @@ -72,7 +72,7 @@ public class StEmployee extends BaseEntity @Excel(name = "供应商单价") private String supplierPrice; - /** 用工类型 */ + /** 0灵活 1 固定 用工类型 */ private Integer employeeType; /** 用工类型 */ @@ -81,6 +81,18 @@ public class StEmployee extends BaseEntity private String openId; + private String keyWord; + + private Long taskId; + + public Long getTaskId() { + return taskId; + } + + public void setTaskId(Long taskId) { + this.taskId = taskId; + } + public String getSexStr() { return sexStr; } @@ -232,6 +244,15 @@ public class StEmployee extends BaseEntity return employeeType; } + + public String getKeyWord() { + return keyWord; + } + + public void setKeyWord(String keyWord) { + this.keyWord = keyWord; + } + @Override public String toString() { return new ToStringBuilder(this, ToStringStyle.MULTI_LINE_STYLE) diff --git a/staffing-system/src/main/java/com/staffing/custom/domain/StTaskSign.java b/staffing-system/src/main/java/com/staffing/custom/domain/StTaskSign.java index b9e75ed..6c15066 100644 --- a/staffing-system/src/main/java/com/staffing/custom/domain/StTaskSign.java +++ b/staffing-system/src/main/java/com/staffing/custom/domain/StTaskSign.java @@ -62,6 +62,20 @@ public class StTaskSign extends BaseEntity @Excel(name = "二次核验备注") private String remark; + /** + * 排序类型 1 为正序 空为倒叙 + */ + private Integer orderType; + + public Integer getOrderType() { + return orderType; + } + + public void setOrderType(Integer orderType) { + this.orderType = orderType; + } + + public String getStatusStr() { return statusStr; } diff --git a/staffing-system/src/main/java/com/staffing/custom/service/IStEmployeeService.java b/staffing-system/src/main/java/com/staffing/custom/service/IStEmployeeService.java index 3e528a3..460ade4 100644 --- a/staffing-system/src/main/java/com/staffing/custom/service/IStEmployeeService.java +++ b/staffing-system/src/main/java/com/staffing/custom/service/IStEmployeeService.java @@ -2,6 +2,7 @@ package com.staffing.custom.service; import java.util.List; import com.staffing.custom.domain.StEmployee; +import com.staffing.custom.domain.StTaskSign; /** * 员工Service接口 @@ -28,7 +29,7 @@ public interface IStEmployeeService * @return 员工集合 */ public List selectStEmployeeList(StEmployee stEmployee); - + List selectStEmployeeListAndSign(StEmployee stEmployee); /** * 新增员工 * diff --git a/staffing-system/src/main/java/com/staffing/custom/service/IStTaskSignService.java b/staffing-system/src/main/java/com/staffing/custom/service/IStTaskSignService.java index 5ece2ce..9850017 100644 --- a/staffing-system/src/main/java/com/staffing/custom/service/IStTaskSignService.java +++ b/staffing-system/src/main/java/com/staffing/custom/service/IStTaskSignService.java @@ -3,6 +3,7 @@ package com.staffing.custom.service; import java.util.List; import com.staffing.common.core.domain.AjaxResult; +import com.staffing.custom.domain.StEmployee; import com.staffing.custom.domain.StTaskSign; /** @@ -65,4 +66,6 @@ public interface IStTaskSignService * @return 结果 */ public int deleteStTaskSignById(Long id); + + AjaxResult addEmployeeAndSign(StEmployee stEmployee); } diff --git a/staffing-system/src/main/java/com/staffing/custom/service/impl/StEmployeeServiceImpl.java b/staffing-system/src/main/java/com/staffing/custom/service/impl/StEmployeeServiceImpl.java index 609c11b..b11ce1a 100644 --- a/staffing-system/src/main/java/com/staffing/custom/service/impl/StEmployeeServiceImpl.java +++ b/staffing-system/src/main/java/com/staffing/custom/service/impl/StEmployeeServiceImpl.java @@ -1,7 +1,6 @@ package com.staffing.custom.service.impl; -import java.util.Date; -import java.util.List; +import java.util.*; import com.staffing.common.core.domain.entity.SysUser; import com.staffing.common.exception.ServiceException; @@ -23,6 +22,8 @@ import com.staffing.custom.mapper.StEmployeeMapper; import com.staffing.custom.domain.StEmployee; import com.staffing.custom.service.IStEmployeeService; +import static com.staffing.common.utils.PageUtils.startPage; + /** * 员工Service业务层处理 * @@ -73,6 +74,37 @@ public class StEmployeeServiceImpl implements IStEmployeeService { return stEmployeeMapper.selectStEmployeeList(stEmployee); } + @Override + public List selectStEmployeeListAndSign(StEmployee stEmployee) + { + Map result = new LinkedHashMap(); + StTaskSign param = new StTaskSign(); + param.setTaskId(stEmployee.getTaskId()); + param.setOrderType(1); + List stTaskSignsTemp = stTaskSignMapper.selectStTaskSignList(param); + for (StTaskSign stTaskSign : stTaskSignsTemp) { + stTaskSign.setStatus(0); + result.put(stTaskSign.getEmployeeId(), stTaskSign); + } + startPage(); + + List stEmployees = stEmployeeMapper.selectStEmployeeList(stEmployee); + for (StEmployee stEmployee1 : stEmployees) { + if (result.containsKey(stEmployee1.getId())){ + continue; + } + StTaskSign stTaskSign = new StTaskSign(); + stTaskSign.setTaskId(stEmployee1.getTaskId()); + stTaskSign.setEmployeeName(stEmployee1.getRealName()); + stTaskSign.setPhone(stEmployee1.getPhone()); + stTaskSign.setIdCard(stEmployee1.getIdCard()); + stTaskSign.setEmployeeId(stEmployee1.getId()); + stTaskSign.setStatus(2); + result.put(stEmployee1.getId(), stTaskSign); + } + + return new ArrayList<>(result.values()); + } /** * 新增员工 diff --git a/staffing-system/src/main/java/com/staffing/custom/service/impl/StTaskSignServiceImpl.java b/staffing-system/src/main/java/com/staffing/custom/service/impl/StTaskSignServiceImpl.java index 3ed11f2..dd5a8f4 100644 --- a/staffing-system/src/main/java/com/staffing/custom/service/impl/StTaskSignServiceImpl.java +++ b/staffing-system/src/main/java/com/staffing/custom/service/impl/StTaskSignServiceImpl.java @@ -8,10 +8,12 @@ import com.staffing.common.core.domain.AjaxResult; import com.staffing.common.core.domain.entity.SysUser; import com.staffing.common.utils.OrderUtils; import com.staffing.common.utils.SecurityUtils; +import com.staffing.custom.domain.StEmployee; import com.staffing.custom.domain.StEmployeeFundRecord; import com.staffing.custom.domain.StTask; import com.staffing.custom.mapper.StEmployeeFundRecordMapper; import com.staffing.custom.service.IStEmployeeFundRecordService; +import com.staffing.custom.service.IStEmployeeService; import com.staffing.custom.service.IStTaskService; import org.redisson.api.RLock; import org.redisson.api.RedissonClient; @@ -20,6 +22,7 @@ import org.springframework.stereotype.Service; import com.staffing.custom.mapper.StTaskSignMapper; import com.staffing.custom.domain.StTaskSign; import com.staffing.custom.service.IStTaskSignService; +import org.springframework.transaction.annotation.Transactional; import static com.staffing.common.core.domain.AjaxResult.error; @@ -42,6 +45,8 @@ public class StTaskSignServiceImpl implements IStTaskSignService private StEmployeeFundRecordMapper stEmployeeFundRecordMapper; @Autowired private RedissonClient redissonClient; + @Autowired + private IStEmployeeService stEmployeeService; /** * 查询签到 * @@ -79,9 +84,10 @@ public class StTaskSignServiceImpl implements IStTaskSignService try{ lock.lock(); - SysUser user = SecurityUtils.getLoginUser().getUser(); - long userId = user.getUserId(); - taskSign.setEmployeeId(userId); +// 放外层,因为可能帮报名 +// SysUser user = SecurityUtils.getLoginUser().getUser(); +// long userId = user.getUserId(); +// taskSign.setEmployeeId(userId); StTask stTask = stTaskService.selectStTaskById(taskSign.getTaskId()); if (stTask.getUseNum() <= stTask.getListSign().size()){ @@ -92,8 +98,9 @@ public class StTaskSignServiceImpl implements IStTaskSignService return error("无法重复报名"); } } + taskSign.setTaskName(stTask.getTaskName()); taskSign.setDayPrice(stTask.getDayPrice()); - taskSign.setEmployeeName(taskSign.getEmployeeName()); +// taskSign.setEmployeeName(taskSign.getEmployeeName()); taskSign.setStatus(-1);//未点名 taskSign.setCreateTime(new Date()); return AjaxResult.success(insertStTaskSign(taskSign)); @@ -220,4 +227,24 @@ public class StTaskSignServiceImpl implements IStTaskSignService { return stTaskSignMapper.deleteStTaskSignById(id); } + + @Override + @Transactional + public AjaxResult addEmployeeAndSign(StEmployee stEmployee){ + StEmployee stEmployee1 = stEmployeeService.selectStEmployeeByPhone(stEmployee.getPhone()); + if (stEmployee1 != null){ + return AjaxResult.error("手机号已存在"); + } + stEmployee.setUpdateTime(new Date()); + stEmployee.setCreateTime(new Date()); + stEmployeeService.insertStEmployee(stEmployee); + + StTaskSign taskSign = new StTaskSign(); + taskSign.setTaskId(stEmployee.getTaskId()); + taskSign.setEmployeeId(stEmployee.getId()); + taskSign.setEmployeeName(stEmployee.getRealName()); + taskSign.setPhone(stEmployee.getPhone()); + taskSign.setIdCard(stEmployee.getIdCard()); + return baoming(taskSign); + } } diff --git a/staffing-system/src/main/resources/mapper/custom/StEmployeeMapper.xml b/staffing-system/src/main/resources/mapper/custom/StEmployeeMapper.xml index add2664..d050d50 100644 --- a/staffing-system/src/main/resources/mapper/custom/StEmployeeMapper.xml +++ b/staffing-system/src/main/resources/mapper/custom/StEmployeeMapper.xml @@ -35,6 +35,8 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and phone like concat('%', #{phone}, '%') and id_card like concat('%', #{idCard}, '%') and employee_type = #{employeeType} + + and (real_name like concat('%', #{keyWord}, '%') or phone like concat('%', #{keyWord}, '%')) order by create_time desc , update_time desc diff --git a/staffing-system/src/main/resources/mapper/custom/StTaskSignMapper.xml b/staffing-system/src/main/resources/mapper/custom/StTaskSignMapper.xml index cce667d..cbdc38e 100644 --- a/staffing-system/src/main/resources/mapper/custom/StTaskSignMapper.xml +++ b/staffing-system/src/main/resources/mapper/custom/StTaskSignMapper.xml @@ -29,7 +29,13 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" and employee_id = #{employeeId} and status = #{status} - order by create_time desc + + order by create_time + + + order by create_time desc + +