From 611ba10fe1678dca8f78ad5c01e1193339a445a4 Mon Sep 17 00:00:00 2001 From: fuliqi <fuliqi@qq.com> Date: 星期三, 06 三月 2024 14:30:04 +0800 Subject: [PATCH] Merge remote-tracking branch 'origin/master' --- ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java | 222 +++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 files changed, 222 insertions(+), 0 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 new file mode 100644 index 0000000..607e09a --- /dev/null +++ b/ycl-server/src/main/java/com/ycl/platform/service/impl/WorkOrderServiceImpl.java @@ -0,0 +1,222 @@ +package com.ycl.platform.service.impl; + +import com.ycl.exception.ServiceException; +import com.ycl.platform.domain.entity.*; +import com.ycl.platform.domain.form.*; +import com.ycl.platform.mapper.*; +import com.ycl.platform.service.WorkOrderService; +import com.ycl.system.Result; +import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl; +import com.ycl.platform.domain.vo.WorkOrderVO; +import com.ycl.platform.domain.query.WorkOrderQuery; +import java.util.List; + +import com.baomidou.mybatisplus.core.metadata.IPage; +import com.ycl.system.page.PageUtil; +import com.ycl.utils.DateUtils; +import org.springframework.stereotype.Service; +import org.springframework.security.core.context.SecurityContextHolder; +import org.springframework.beans.BeanUtils; +import org.springframework.transaction.annotation.Transactional; +import org.springframework.util.Assert; +import java.util.ArrayList; +import java.util.Objects; +import java.util.stream.Collectors; +import com.baomidou.mybatisplus.extension.plugins.pagination.Page; +import com.baomidou.mybatisplus.extension.conditions.query.LambdaQueryChainWrapper; +import lombok.RequiredArgsConstructor; +import org.springframework.util.StringUtils; + +/** + * 宸ュ崟 鏈嶅姟瀹炵幇绫� + * + * @author xp + * @since 2024-03-05 + */ +@Service +@RequiredArgsConstructor +public class WorkOrderServiceImpl extends ServiceImpl<WorkOrderMapper, WorkOrder> implements WorkOrderService { + + private final WorkOrderMapper workOrderMapper; + private final YwUnitMapper ywUnitMapper; + private final YwPeopleMapper ywPeopleMapper; + private final WorkOrderAuditingRecordMapper workOrderAuditingRecordMapper; + private final WorkOrderYwConditionRecordMapper workOrderYwConditionRecordMapper; + + + /** + * 娣诲姞 + * @param form + * @return + */ + @Override + public Result add(WorkOrderForm form) { + WorkOrder entity = WorkOrderForm.getEntityByForm(form, null); + if(baseMapper.insert(entity) > 0) { + return Result.ok("娣诲姞鎴愬姛"); + } + return Result.error("娣诲姞澶辫触"); + } + + /** + * 淇敼 + * @param form + * @return + */ + @Override + public Result update(WorkOrderForm form) { + + WorkOrder entity = baseMapper.selectById(form.getId()); + + // 涓虹┖鎶汭llegalArgumentException锛屽仛鍏ㄥ眬寮傚父澶勭悊 + Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); + BeanUtils.copyProperties(form, entity); + if (baseMapper.updateById(entity) > 0) { + return Result.ok("淇敼鎴愬姛"); + } + return Result.error("淇敼澶辫触"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result auditing(WorkOrderAuditingForm form) { + WorkOrder workOrder = baseMapper.selectById(form.getId()); + if (Objects.isNull(workOrder)) { + throw new ServiceException("宸ュ崟涓嶅瓨鍦�"); + } + // 宸ュ崟鐘舵�� + if ("pass".equals(form.getAuditingResult())) { + workOrder.setStatus("finish"); + } else { + workOrder.setStatus("auditing"); + } + baseMapper.updateById(workOrder); + // 娣诲姞涓�鏉″鏍歌褰� + WorkOrderAuditingRecord workOrderAuditingRecord = new WorkOrderAuditingRecord(); + workOrderAuditingRecord.setWorkOrderId(workOrder.getId()); + workOrderAuditingRecord.setAuditingUser(1); + workOrderAuditingRecord.setResult(form.getAuditingResult()); + workOrderAuditingRecord.setRemark(form.getAuditingRemark()); + workOrderAuditingRecordMapper.insert(workOrderAuditingRecord); + return Result.ok("鎿嶄綔鎴愬姛"); + } + + @Override + @Transactional(rollbackFor = Exception.class) + public Result ywCondition(WorkOrderYWConditionForm form) { + WorkOrder workOrder = baseMapper.selectById(form.getId()); + if (Objects.isNull(workOrder)) { + throw new ServiceException("宸ュ崟涓嶅瓨鍦�"); + } + // 宸ュ崟鐘舵�� + workOrder.setStatus("commit-condition"); + baseMapper.updateById(workOrder); + // 娣诲姞涓�鏉¤繍缁存儏鍐佃褰� + WorkOrderYwConditionRecord workOrderYwConditionRecord = new WorkOrderYwConditionRecord(); + workOrderYwConditionRecord.setWorkOrderId(workOrder.getId()); + workOrderYwConditionRecord.setCommitUser(1); + workOrderYwConditionRecord.setYwCondition(form.getYwCondition()); + workOrderYwConditionRecordMapper.insert(workOrderYwConditionRecord); + return Result.ok("鎿嶄綔鎴愬姛"); + } + + @Override + public Result ywResult(WorkOrderYWResultForm form) { + return null; + } + + @Override + public Result checkResult(WorkOrderCheckResultForm form) { + return null; + } + + /** + * 鎵归噺鍒犻櫎 + * @param ids + * @return + */ + @Override + public Result remove(List<String> ids) { + if(baseMapper.deleteBatchIds(ids) > 0) { + return Result.ok("鍒犻櫎鎴愬姛"); + } + return Result.error("鍒犻櫎澶辫触"); + } + + /** + * id鍒犻櫎 + * @param id + * @return + */ + @Override + public Result removeById(String id) { + if(baseMapper.deleteById(id) > 0) { + return Result.ok("鍒犻櫎鎴愬姛"); + } + return Result.error("鍒犻櫎澶辫触"); + } + + /** + * 鍒嗛〉鏌ヨ + * @param query + * @return + */ + @Override + public Result page(WorkOrderQuery query) { + IPage<WorkOrder> page = new LambdaQueryChainWrapper<>(baseMapper) + .eq(StringUtils.hasText(query.getWorkOrderNo()), WorkOrder::getWorkOrderNo, query.getWorkOrderNo()) + .between(Objects.nonNull(query.getStart()) && Objects.nonNull(query.getEnd()), + WorkOrder::getYwHandleTime, + DateUtils.getDayStart(query.getStart()), + DateUtils.getDayEnd(query.getEnd())) + .orderByDesc(WorkOrder::getCreateTime) + .page(PageUtil.getPage(query, WorkOrder.class)); + + List<WorkOrderVO> vos = page.getRecords().stream() + .map( + entity -> { + WorkOrderVO vo = WorkOrderVO.getVoByEntity(entity, null); + YwUnit unit = ywUnitMapper.selectById(vo.getUnitId()); + if (Objects.nonNull(unit)) { + vo.setUnitName(unit.getUnitName()); + } + YwPeople ywPeople = ywPeopleMapper.selectById(vo.getYwPeopleId()); + if (Objects.nonNull(ywPeople)) { + vo.setYwPeopleName(ywPeople.getYwPersonName()); + } + return vo; + } + ) + .collect(Collectors.toList()); + return Result.ok().data(vos).total(page.getTotal()); + } + + /** + * 鏍规嵁id鏌ユ壘 + * @param id + * @return + */ + @Override + public Result detail(String id) { + + WorkOrder entity = baseMapper.selectById(id); + Assert.notNull(entity, "璁板綍涓嶅瓨鍦�"); + WorkOrderVO vo = WorkOrderVO.getVoByEntity(entity, null); + return Result.ok().data(vo); + } + + /** + * 鍒楄〃 + * @return + */ + @Override + public Result all() { + List<WorkOrder> entities = baseMapper.selectList(null); + List<WorkOrderVO> vos = entities.stream() + .map( + entity -> WorkOrderVO.getVoByEntity(entity, null) + ) + .collect(Collectors.toList()); + return Result.ok().data(vos); + } +} -- Gitblit v1.8.0