diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java index 60a10e2b..247dfade 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/back/mapper/BackApplyInfoMapper.java @@ -333,4 +333,11 @@ public interface BackApplyInfoMapper { /** 设置审批人签名url 防止代码冲突 **/ String getDirectAuditUrl(BackApplyInfo backApplyInfo); + + /** + * 根据任务id查询是否有签名 + * @param taskId + * @return + */ + BackApplyInfo selectSignByTaskId(Long taskId); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java index 93a54c77..01b0fbf2 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/controller/RepairController.java @@ -187,7 +187,12 @@ public class RepairController extends BaseController { //@RequiresPermissions("repair:manage:export") @ApiOperation(value = "导出维修任务列表") public void export(HttpServletResponse response, RepairTask bean) { - List list = service.exportRepairTaskList(bean); + List list=new ArrayList<>(); + try { + list = service.exportRepairTaskList(bean); + } catch (Exception e) { + list = new ArrayList<>(); + } ExcelUtil util = new ExcelUtil<>(RepairTask.class); util.exportExcel(response, list, "维修任务列表"); } diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceVO.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceVO.java index c890a675..a72397ec 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceVO.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/domain/vo/RepairDeviceVO.java @@ -54,6 +54,9 @@ public class RepairDeviceVO { @ApiModelProperty(value = "退料ID") private Long backId; + @ApiModelProperty(value = "退料编码") + private String backCode; + @ApiModelProperty(value = "维修配件信息") private String partInfo; diff --git a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java index ade0fd70..8cbae59b 100644 --- a/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java +++ b/bonus-modules/bonus-material/src/main/java/com/bonus/material/repair/service/impl/RepairServiceImpl.java @@ -26,6 +26,7 @@ import com.bonus.material.task.domain.TmTask; import com.bonus.material.task.mapper.TmTaskMapper; import com.bonus.system.api.domain.SysUser; import com.bonus.system.api.model.LoginUser; +import org.hibernate.validator.internal.util.StringHelper; import org.springframework.dao.DataAccessException; import org.springframework.stereotype.Service; import org.springframework.transaction.annotation.Transactional; @@ -35,6 +36,8 @@ import javax.annotation.Resource; import javax.validation.constraints.NotNull; import java.math.BigDecimal; import java.text.SimpleDateFormat; +import java.time.LocalDate; +import java.time.ZoneId; import java.util.*; import java.util.concurrent.ConcurrentHashMap; import java.util.stream.Collectors; @@ -971,6 +974,26 @@ public class RepairServiceImpl implements RepairService { // 3. 更新结算信息表 sltAgreementInfoMapper.backRejectSltCope(tmTask.getPreTaskId()); + //驳回操作不可跨月操作 + if (!StringHelper.isNullOrEmptyString(String.valueOf(tmTask.getCreateTime()))) { + // 将 createTime 转换为 LocalDate + LocalDate taskCreationDate = tmTask.getCreateTime().toInstant().atZone(ZoneId.systemDefault()).toLocalDate(); + // 获取当前日期 + LocalDate today = LocalDate.now(); + // 检查是否在同一月 + if (taskCreationDate.getYear() != today.getYear() || taskCreationDate.getMonth() != today.getMonth()) { + throw new ServiceException("只可驳回本月任务"); + } + } + + //查询是否有签名 根据退料编码查询back_apply_info表 + BackApplyInfo backApplyInfo = backApplyInfoMapper.selectSignByTaskId(taskId); + if (null != backApplyInfo){ + if (!StringHelper.isNullOrEmptyString(backApplyInfo.getBackSignUrl()) || backApplyInfo.getDirectAuditBy()>0){ + throw new ServiceException("该任务已有签名,不能驳回"); + } + } + if (null == tmTask.getCode() || tmTask.getCode().isEmpty()) { throw new ServiceException("维修任务:" + taskId + "没有退料单号,系统异常!"); } diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml index 689370b4..5bbe05b2 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/back/BackApplyInfoMapper.xml @@ -780,4 +780,17 @@ PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" from sys_user su where su.user_id = #{directAuditBy} and su.del_flag = 0 + diff --git a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml index dd31e450..7e3d627d 100644 --- a/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml +++ b/bonus-modules/bonus-material/src/main/resources/mapper/material/repair/RepairMapper.xml @@ -220,7 +220,7 @@ rd.task_id, tt.CODE AS repairCode, bui.unit_name AS backUnit, - bpi.lot_name AS backPro, + bpi.pro_name AS backPro, su.nick_name AS createName, tt.create_time AS createTime, bai.CODE AS backCode, @@ -243,15 +243,15 @@ LEFT JOIN back_apply_info bai ON rd.back_id = bai.id LEFT JOIN tm_task_agreement tta ON rd.task_id = tta.task_id LEFT JOIN bm_agreement_info bai2 ON tta.agreement_id = bai2.agreement_id - LEFT JOIN bm_unit_info bui ON bai2.unit_id = bui.unit_id - LEFT JOIN bm_project bpi ON bai2.project_id = bpi.lot_id AND bpi.STATUS = '0' AND bpi.del_flag = '0' + LEFT JOIN bm_unit bui ON bai2.unit_id = bui.unit_id + LEFT JOIN bm_project bpi ON bai2.project_id = bpi.pro_id and bpi.del_flag = '0' LEFT JOIN sys_user su ON rd.create_by = su.user_id left join sys_user su2 on rd.repairer = su2.user_id LEFT JOIN ma_machine mm ON mm.ma_id = rd.ma_id where 1=1 - - AND (locate(#{keyword}, su.nick_name) > 0 - or locate(#{keyword}, tt.CODE) > 0) + + AND (locate(#{keyWord}, su.nick_name) > 0 + or locate(#{keyWord}, tt.CODE) > 0) AND bui.unit_id = #{backUnit} @@ -301,6 +301,7 @@ rad.type_id as typeId, rad.back_id as backId, rad.create_time, + bai.CODE AS backCode, ( SELECT COUNT(*) FROM repair_cost rc WHERE rc.repair_id = rad.id ) AS totalCostRecords, ( SELECT SUM( IFNULL( rc.costs, 0 )) FROM repair_cost rc WHERE rc.repair_id = rad.id ) AS totalCost from @@ -309,6 +310,7 @@ left join ma_machine mm on mm.ma_id = rad.ma_id left join sys_user su on rad.repairer = su.user_id left join ma_type mt2 on mt.parent_id = mt2.type_id + LEFT JOIN back_apply_info bai ON rd.back_id = bai.id where rad.task_id = #{taskId}