diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java index c9a2094b7d..fc65646e65 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/orgworker/OrgWorkerController.java @@ -53,7 +53,7 @@ public class OrgWorkerController { return success(orgWorkerService.createOrgWorker(createReqVO)); } @GetMapping("/createWorker") - @Operation(summary = "获得工位安排分页") + @Operation(summary = "工位多日期派工") public CommonResult createWorker(@Valid OrgWorkerSaveReqVO createReqVO) { return success(orgWorkerService.createOrgWorker(createReqVO)); } diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/ProduceReportController.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/ProduceReportController.java index 483d7b7b3a..1a857b2745 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/ProduceReportController.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/controller/admin/producereport/ProduceReportController.java @@ -90,6 +90,14 @@ public class ProduceReportController { PageResult pageResult = produceReportService.getProduceReportPage(pageReqVO); return success(new PageResult<>(produceReportService.buildVOList(pageResult.getList()),pageResult.getTotal())); } + @GetMapping("/pageDailyReport") + @Operation(summary = "获得生产报工单分页") + //@PreAuthorize("@ss.hasPermission('mes:produce-report:query')") + public CommonResult> getPageDailyReport(@Valid ProduceReportPageReqVO pageReqVO) { + + PageResult pageResult = produceReportService.getProduceReportPage(pageReqVO); + return success(new PageResult<>(produceReportService.buildVOList(pageResult.getList()),pageResult.getTotal())); + } @Resource private WorkTeamService workTeamService; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/producereport/ProduceReportDetailMapper.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/producereport/ProduceReportDetailMapper.java index df32965ebb..56cfb722c0 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/producereport/ProduceReportDetailMapper.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/mysql/producereport/ProduceReportDetailMapper.java @@ -38,8 +38,6 @@ public interface ProduceReportDetailMapper extends BaseMapperX { .eqIfPresent(ProduceReportDO::getOrgType, reqVO.getOrgType()) .eqIfPresent(ProduceReportDO::getReportStatus, reqVO.getReportStatus()) .eqIfPresent(ProduceReportDO::getRemark, reqVO.getRemark()) + .gtIfPresent(ProduceReportDO::getTotalTime, reqVO.getTotalTime()) .betweenIfPresent(ProduceReportDO::getCreateTime, reqVO.getCreateTime()) .eqIfPresent(ProduceReportDO::getGroupType, reqVO.getGroupType()) .eqIfPresent(ProduceReportDO::getReportType, reqVO.getReportType()) diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/redis/no/MesNoRedisDAO.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/redis/no/MesNoRedisDAO.java index d5fb22d21f..0be4b3fcc1 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/redis/no/MesNoRedisDAO.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/dal/redis/no/MesNoRedisDAO.java @@ -63,6 +63,10 @@ public class MesNoRedisDAO { * 生产报工 */ public static final String REPORT_NO_PREFIX = "WR-"; + /** + * 能源设备 + */ + public static final String ENERGY_NO_PREFIX = "EN-"; @Resource private StringRedisTemplate stringRedisTemplate; diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/energydevice/EnergyDeviceServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/energydevice/EnergyDeviceServiceImpl.java index 62dd95c0b7..ab696b20d0 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/energydevice/EnergyDeviceServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/energydevice/EnergyDeviceServiceImpl.java @@ -9,6 +9,8 @@ import cn.iocoder.yudao.module.mes.dal.dataobject.energydevice.EnergyDeviceCheck import cn.iocoder.yudao.module.mes.dal.dataobject.energydevice.EnergyDeviceDO; import cn.iocoder.yudao.module.mes.dal.mysql.energydevice.EnergyDeviceCheckRecordMapper; import cn.iocoder.yudao.module.mes.dal.mysql.energydevice.EnergyDeviceMapper; +import cn.iocoder.yudao.module.mes.dal.redis.no.MesNoRedisDAO; +import org.apache.commons.lang3.StringUtils; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; @@ -20,8 +22,7 @@ import java.util.Collection; import java.util.List; import static cn.iocoder.yudao.framework.common.exception.util.ServiceExceptionUtil.exception; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.ENERGY_DEVICE_CHECK_RECORD_NOT_EXISTS; -import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.ENERGY_DEVICE_NOT_EXISTS; +import static cn.iocoder.yudao.module.mes.enums.ErrorCodeConstants.*; /** * 能源设备 Service 实现类 @@ -36,11 +37,17 @@ public class EnergyDeviceServiceImpl implements EnergyDeviceService { private EnergyDeviceMapper energyDeviceMapper; @Resource private EnergyDeviceCheckRecordMapper energyDeviceCheckRecordMapper; - + @Resource + private MesNoRedisDAO noRedisDAO; @Override public Long createEnergyDevice(EnergyDeviceSaveReqVO createReqVO) { // 插入 EnergyDeviceDO energyDevice = BeanUtils.toBean(createReqVO, EnergyDeviceDO.class); + if (StringUtils.isEmpty(energyDevice.getCode())) { + // 1.4 生成编号 + String no = noRedisDAO.generate2(MesNoRedisDAO.ENERGY_NO_PREFIX); + energyDevice.setCode(no); + } energyDeviceMapper.insert(energyDevice); // 返回 return energyDevice.getId(); diff --git a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/orgworker/OrgWorkerServiceImpl.java b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/orgworker/OrgWorkerServiceImpl.java index 2785e59cab..ffe3872a18 100644 --- a/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/orgworker/OrgWorkerServiceImpl.java +++ b/yudao-module-mes/yudao-module-mes-biz/src/main/java/cn/iocoder/yudao/module/mes/service/orgworker/OrgWorkerServiceImpl.java @@ -16,6 +16,7 @@ import cn.iocoder.yudao.module.mes.service.organization.OrganizationService; import cn.iocoder.yudao.module.system.api.user.AdminUserApi; import cn.iocoder.yudao.module.system.api.user.dto.AdminUserRespDTO; import org.springframework.stereotype.Service; +import org.springframework.transaction.annotation.Transactional; import org.springframework.validation.annotation.Validated; import javax.annotation.Resource; @@ -47,6 +48,7 @@ public class OrgWorkerServiceImpl implements OrgWorkerService { private AdminUserApi adminUserApi; @Override + @Transactional(rollbackFor = Exception.class) public Long createOrgWorker(OrgWorkerSaveReqVO createReqVO) { OrganizationDO organizationDO = organizationService.getOrganization(createReqVO.getOrgId()); // 插入 @@ -54,7 +56,7 @@ public class OrgWorkerServiceImpl implements OrgWorkerService { orgWorker.setOrgType(organizationDO.getOrgType()); //多个日期 if(createReqVO.getPlanDates()!=null && createReqVO.getPlanDates().length>0){ - //校验同工位、同班别、同日期是否已经存在,存在则失败()不保存 + //校验同工位、同班别、同日期是否已经存在,存在则替换保存 OrgWorkerPageReqVO reqVO = new OrgWorkerPageReqVO() .setOrgId(createReqVO.getOrgId()) .setGroupType(createReqVO.getGroupType()); @@ -62,11 +64,14 @@ public class OrgWorkerServiceImpl implements OrgWorkerService { LocalDateTime[] dates = {date,date}; reqVO.setWorkDate(dates); List list = orgWorkerMapper.selectList(reqVO); - if(list==null || list.size()==0){ - orgWorker.setWorkDate(date); - orgWorker.setId(null); - orgWorkerMapper.insert(orgWorker); + //删掉旧的,增加新的替换 + if(list!=null && list.size()>0){ + List ids = list.stream().map(OrgWorkerDO::getId).collect(Collectors.toList()); + orgWorkerMapper.deleteBatchIds(ids); } + orgWorker.setWorkDate(date); + orgWorker.setId(null); + orgWorkerMapper.insert(orgWorker); } } else orgWorkerMapper.insert(orgWorker); diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java index 2009a9e44f..f57a6908c2 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/auth/vo/AuthLoginReqVO.java @@ -12,7 +12,6 @@ import org.hibernate.validator.constraints.Length; import javax.validation.constraints.AssertTrue; import javax.validation.constraints.NotEmpty; -import javax.validation.constraints.Pattern; @Schema(description = "管理后台 - 账号密码登录 Request VO,如果登录并绑定社交用户,需要传递 social 开头的参数") @Data @@ -23,8 +22,8 @@ public class AuthLoginReqVO { @Schema(description = "账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudaoyuanma") @NotEmpty(message = "登录账号不能为空") - @Length(min = 4, max = 16, message = "账号长度为 4-16 位") - @Pattern(regexp = "^[A-Za-z0-9]+$", message = "账号格式为数字以及字母") + @Length(min = 2, max = 30, message = "账号长度为 2-30 位") + //@Pattern(regexp = "^[A-Za-z0-9]+$", message = "账号格式为数字以及字母") private String username; @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "buzhidao") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java index 117d365ff5..8b7c228a0d 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/tenant/vo/tenant/TenantSaveReqVO.java @@ -8,7 +8,6 @@ import org.hibernate.validator.constraints.Length; import javax.validation.constraints.AssertTrue; import javax.validation.constraints.NotNull; -import javax.validation.constraints.Pattern; import javax.validation.constraints.Size; import java.time.LocalDateTime; @@ -52,8 +51,8 @@ public class TenantSaveReqVO { // ========== 仅【创建】时,需要传递的字段 ========== @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") - @Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户账号由 数字、字母 组成") - @Size(min = 4, max = 30, message = "用户账号长度为 4-30 个字符") + //@Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户账号由 数字、字母 组成") + @Size(min = 2, max = 30, message = "用户账号长度为 4-30 个字符") private String username; @Schema(description = "密码", requiredMode = Schema.RequiredMode.REQUIRED, example = "123456") diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java index 192e0539f1..b0a6d99f04 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/controller/admin/user/vo/user/UserSaveReqVO.java @@ -23,8 +23,8 @@ public class UserSaveReqVO { @Schema(description = "用户账号", requiredMode = Schema.RequiredMode.REQUIRED, example = "yudao") @NotBlank(message = "用户账号不能为空") - @Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户账号由 数字、字母 组成") - @Size(min = 4, max = 30, message = "用户账号长度为 4-30 个字符") + //@Pattern(regexp = "^[a-zA-Z0-9]{4,30}$", message = "用户账号由 数字、字母 组成") + @Size(min = 2, max = 30, message = "用户账号长度为 4-30 个字符") @DiffLogField(name = "用户账号") private String username; diff --git a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java index 9b9ae68a6d..f108fb3a36 100644 --- a/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java +++ b/yudao-module-system/yudao-module-system-biz/src/main/java/cn/iocoder/yudao/module/system/service/auth/AdminAuthServiceImpl.java @@ -75,12 +75,19 @@ public class AdminAuthServiceImpl implements AdminAuthService { public Boolean getCaptchaEnable(){ return captchaEnable; } - + public static boolean is13DigitPhoneNumber(String str) { + // 检查字符串是否为13位并且是否全由数字组成 + return str != null && str.length() == 11 && str.matches("\\d+"); + } @Override public AdminUserDO authenticate(String username, String password) { final LoginLogTypeEnum logTypeEnum = LoginLogTypeEnum.LOGIN_USERNAME; // 校验账号是否存在 - AdminUserDO user = userService.getUserByUsername(username); + AdminUserDO user = null; + if(is13DigitPhoneNumber(username)){ + user = userService.getUserByMobile(username); + } + else user = userService.getUserByUsername(username); if (user == null) { createLoginLog(null, username, logTypeEnum, LoginResultEnum.BAD_CREDENTIALS); throw exception(AUTH_LOGIN_BAD_CREDENTIALS);