From fea22e82e7e49691f6e0c20a29b228d0ab3173e9 Mon Sep 17 00:00:00 2001
From: zxl <763096477@qq.com>
Date: 星期三, 29 十月 2025 17:08:38 +0800
Subject: [PATCH] 修改问题
---
ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 92 +++++++++++++++++++++++++++++++++++++++++++---
1 files changed, 86 insertions(+), 6 deletions(-)
diff --git a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
index d557e97..99411d5 100644
--- a/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
+++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java
@@ -27,10 +27,12 @@
import com.ycl.platform.wvp.WVPResult;
import com.ycl.system.Result;
import com.ycl.system.domain.SysConfig;
+import com.ycl.system.entity.SysDept;
import com.ycl.system.entity.SysDictData;
import com.ycl.system.mapper.SysConfigMapper;
import com.ycl.system.model.LoginUser;
import com.ycl.system.page.PageUtil;
+import com.ycl.system.service.ISysDeptService;
import com.ycl.task.DeleteWorkOrderImgTask;
import com.ycl.utils.DateUtils;
import com.ycl.utils.SecurityUtils;
@@ -117,7 +119,14 @@
WorkOrderServiceImpl self = applicationContext.getBean(WorkOrderServiceImpl.class);
return self.batchAddWorkOrder(workOrderList);
}
-
+ private boolean isSameDay(Date date1, Date date2) {
+ if (date1 == null || date2 == null) {
+ return false;
+ }
+ LocalDate localDate1 = date1.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ LocalDate localDate2 = date2.toInstant().atZone(ZoneId.systemDefault()).toLocalDate();
+ return localDate1.isEqual(localDate2);
+ }
@Transactional(rollbackFor = Exception.class)
public Boolean batchAddWorkOrder(List<WorkOrder> workOrderList) {
int total = workOrderList.size();
@@ -162,6 +171,15 @@
for (WorkOrder workOrder : workOrderList) {
WorkOrder databaseWorkOrder = mapping.get(workOrder.getSerialNumber());
if (Objects.nonNull(databaseWorkOrder)) {
+ //鍒ゆ柇鏄惁鏄粖澶╃殑宸ュ崟
+ if (!isSameDay(databaseWorkOrder.getCreateTime(), now)) {
+ // 鑻ヤ负鍓嶄竴澶╃殑宸ュ崟锛屼笉鏇存柊锛岀洿鎺ュ綋浣滄柊宸ュ崟鏂板
+ workOrder.setCreateTime(now);
+ workOrder.setUpdateTime(now);
+ waitAddList.add(workOrder);
+ continue; // 璺宠繃鍚庣画鐨勬洿鏂伴�昏緫
+ }
+
List<String> errorNameList = databaseWorkOrder.getErrorTypeList();
List<String> errorTypes = workOrder.getErrorTypeList();
if (errorNameList.containsAll(errorTypes)) {
@@ -591,6 +609,37 @@
return Result.ok("鎿嶄綔鎴愬姛");
}
+ @Override
+ public Result ywConditionList(WorkOrderYWConditionsForm form) {
+ List<WorkOrder> workOrderList = new LambdaQueryChainWrapper<>(baseMapper)
+ .in(WorkOrder::getWorkOrderNo,form.getWorkOrderNumbers())
+ .list();
+ System.out.println("--------------");
+ System.out.println(workOrderList);
+ if (CollectionUtils.isEmpty(workOrderList)) {
+ throw new ServiceException("宸ュ崟涓嶅瓨鍦�");
+ }
+ // 宸ュ崟鐘舵��
+ for (WorkOrder workOrder : workOrderList) {
+ workOrder.setStatus(WorkOrderStatusEnum.YW_HANDLE);
+ workOrder.setYwHandleTime(LocalDateTime.now());
+ }
+ baseMapper.updateMany(workOrderList);
+ // 娣诲姞涓�鏉¤繍缁存儏鍐佃褰�
+ for (WorkOrder workOrder : workOrderList) {
+ WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord();
+ workOrderYwConditionRecord.setWorkOrderNo(workOrder.getWorkOrderNo());
+ workOrderYwConditionRecord.setCommitUser(SecurityUtils.getLoginUser().getUserId().intValue());
+ workOrderYwConditionRecord.setYwCondition(form.getYwCondition());
+ workOrderYwConditionRecord.setYwProofMaterials(form.getYwProofMaterials());
+ workOrderYwConditionRecord.setSysMsg(Boolean.FALSE);
+ workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord);
+ WorkOrderServiceImpl self = applicationContext.getBean(WorkOrderServiceImpl.class);
+ self.getImage(workOrder);
+ }
+ return Result.ok("鎿嶄綔鎴愬姛");
+ }
+
@Async("threadPoolTaskExecutor")
public void getImage(WorkOrder workOrder) {
List<DeviceInfo> gbDevices = new LambdaQueryChainWrapper<>(deviceInfoMapper)
@@ -756,7 +805,7 @@
-
+ private final ISysDeptService deptService;
/**
* 鍒嗛〉鏌ヨ
*
@@ -765,6 +814,24 @@
*/
@Override
public Result page(WorkOrderQuery query) {
+ LoginUser loginUser = SecurityUtils.getLoginUser();
+ SysDept sysDept = null;
+ Long deptId =null;
+ if (loginUser.getDeptId() != null){
+ deptId = loginUser.getDeptId();
+ sysDept = deptService.selectDeptById(deptId);
+ }
+ //鏌ヨ鎸囧畾鍖烘暟鎹�
+ // 鐧诲綍璐﹀彿鐨勫瓨鍦ㄩ儴闂� 涓嶅湪閮ㄩ棬鍐呭氨涓嶄紶鍊硷紝榛樿鏌ヨ鍏ㄩ儴
+ if (sysDept !=null){
+ //鏇村叿閮ㄩ棬id鑾峰緱瀵瑰簲鏋氫妇 閮ㄩ棬code
+ AreaDeptEnum areaDeptEnum = AreaDeptEnum.fromDept(Math.toIntExact(sysDept.getDeptId()));
+ if (areaDeptEnum != null){
+ query.setDept(areaDeptEnum.getCode());
+ }
+ }
+
+
IPage<WorkOrderVO> page = PageUtil.getPage(query, WorkOrderVO.class);
if (query.getUnitId() == null) {
query.setUnitId(SecurityUtils.getUnitId());
@@ -1236,10 +1303,23 @@
}
// 鏄惁鎶ュ
- boolean hasReport = new LambdaQueryChainWrapper<>(reportMapper)
- .eq(Report::getSerialNumber, workOrder.getSerialNumber())
- .exists();
- workOrder.setHasReport(hasReport);
+ Date target = workOrder.getCreateTime();
+
+ Report reports = new LambdaQueryChainWrapper<>(reportMapper)
+ .eq(Report::getSerialNumber,workOrder.getWorkOrderNo())
+ .eq(Report::getStatus,1)
+ .orderByDesc(Report::getCreateTime)
+ .last("LIMIT 1")
+ .one();
+ boolean isInRange = false;
+ if (reports != null){
+ Date start = reports.getBeginCreateTime();
+ Date end = reports.getEndCreateTime();
+ isInRange = target.after(start) || target.equals(start) // target >= start
+ && target.before(end) || target.equals(end);
+ }
+
+ workOrder.setHasReport(isInRange);
// 鏁呴殰绫诲瀷
List<SysDictData> errorList = workOrderErrorTypeService.getBaseMapper().getErrorList(workOrder.getWorkOrderNo());
List<String> errList = errorList.stream().map(SysDictData::getDictLabel).collect(Collectors.toList());
--
Gitblit v1.8.0