|
|
@@ -1,13 +1,24 @@
|
|
|
package com.ktg.iscs.service.impl;
|
|
|
|
|
|
+import cn.hutool.core.convert.Convert;
|
|
|
+import cn.hutool.core.lang.Assert;
|
|
|
import com.baomidou.mybatisplus.core.toolkit.Wrappers;
|
|
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
|
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
|
|
+import com.ktg.common.utils.bean.BeanUtils;
|
|
|
import com.ktg.iscs.domain.IsMaterialsCheckPlan;
|
|
|
+import com.ktg.iscs.domain.IsMaterialsPlanCabinet;
|
|
|
+import com.ktg.iscs.domain.dto.checkPlan.AddCheckPlanDTO;
|
|
|
import com.ktg.iscs.mapper.IsMaterialsCheckPlanMapper;
|
|
|
import com.ktg.iscs.service.IIsMaterialsCheckPlanService;
|
|
|
+import com.ktg.iscs.service.IIsMaterialsPlanCabinetService;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Transactional;
|
|
|
+
|
|
|
+import java.util.ArrayList;
|
|
|
+import java.util.Arrays;
|
|
|
+import java.util.List;
|
|
|
|
|
|
/**
|
|
|
* 物资检查计划Service业务层处理
|
|
|
@@ -20,6 +31,8 @@ public class IsMaterialsCheckPlanServiceImpl extends ServiceImpl<IsMaterialsChec
|
|
|
|
|
|
@Autowired
|
|
|
private IsMaterialsCheckPlanMapper isMaterialsCheckPlanMapper;
|
|
|
+ @Autowired
|
|
|
+ private IIsMaterialsPlanCabinetService iIsMaterialsPlanCabinetService;
|
|
|
|
|
|
@Override
|
|
|
public Page<IsMaterialsCheckPlan> getIsMaterialsCheckPlanPage(Page<IsMaterialsCheckPlan> page, IsMaterialsCheckPlan isMaterialsCheckPlan) {
|
|
|
@@ -28,4 +41,68 @@ public class IsMaterialsCheckPlanServiceImpl extends ServiceImpl<IsMaterialsChec
|
|
|
return result;
|
|
|
}
|
|
|
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public Boolean insertIsMaterialsCheckPlan(AddCheckPlanDTO dto) {
|
|
|
+ // 1.断言检测
|
|
|
+ Assert.notNull(dto.getPlanDate(), "检查日期不可为空!");
|
|
|
+ Assert.notNull(dto.getCheckUserId(), "检查员不可为空!");
|
|
|
+ Assert.isFalse(dto.getCabinetIds().isEmpty(), "请选择需要检查的柜子!");
|
|
|
+ // 2.开始新增计划
|
|
|
+ IsMaterialsCheckPlan materialsCheckPlan = BeanUtils.toBean(dto, IsMaterialsCheckPlan.class);
|
|
|
+ save(materialsCheckPlan);
|
|
|
+ // 3.开始新增计划和物资柜的关联关系
|
|
|
+ List<IsMaterialsPlanCabinet> isMaterialsPlanCabinets = new ArrayList<>();
|
|
|
+ for (Long cabinetId : dto.getCabinetIds()) {
|
|
|
+ IsMaterialsPlanCabinet isMaterialsPlanCabinet = new IsMaterialsPlanCabinet();
|
|
|
+ isMaterialsPlanCabinet.setPlanId(materialsCheckPlan.getPlanId());
|
|
|
+ isMaterialsPlanCabinet.setCabinetId(cabinetId);
|
|
|
+ isMaterialsPlanCabinets.add(isMaterialsPlanCabinet);
|
|
|
+ }
|
|
|
+ iIsMaterialsPlanCabinetService.saveBatch(isMaterialsPlanCabinets);
|
|
|
+ // 4.开始计算倒计时,给检查员发送邮件
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Override
|
|
|
+ public Boolean updateIsMaterialsCheckPlan(AddCheckPlanDTO dto) {
|
|
|
+ // 1.断言检测
|
|
|
+ Assert.notNull(dto.getPlanId(), "主键ID不可为空!");
|
|
|
+ Assert.notNull(dto.getPlanDate(), "检查日期不可为空!");
|
|
|
+ Assert.notNull(dto.getCheckUserId(), "检查员不可为空!");
|
|
|
+ Assert.isFalse(dto.getCabinetIds().isEmpty(), "请选择需要检查的柜子!");
|
|
|
+ // 2.开始新增计划
|
|
|
+ IsMaterialsCheckPlan materialsCheckPlan = BeanUtils.toBean(dto, IsMaterialsCheckPlan.class);
|
|
|
+ updateById(materialsCheckPlan);
|
|
|
+ // 3.开始新增计划和物资柜的关联关系
|
|
|
+ // 3.1先删除,再新增
|
|
|
+ iIsMaterialsPlanCabinetService.remove(Wrappers.<IsMaterialsPlanCabinet>lambdaQuery()
|
|
|
+ .eq(IsMaterialsPlanCabinet::getPlanId, dto.getPlanId()));
|
|
|
+ List<IsMaterialsPlanCabinet> isMaterialsPlanCabinets = new ArrayList<>();
|
|
|
+ for (Long cabinetId : dto.getCabinetIds()) {
|
|
|
+ IsMaterialsPlanCabinet isMaterialsPlanCabinet = new IsMaterialsPlanCabinet();
|
|
|
+ isMaterialsPlanCabinet.setPlanId(materialsCheckPlan.getPlanId());
|
|
|
+ isMaterialsPlanCabinet.setCabinetId(cabinetId);
|
|
|
+ isMaterialsPlanCabinets.add(isMaterialsPlanCabinet);
|
|
|
+ }
|
|
|
+ iIsMaterialsPlanCabinetService.saveBatch(isMaterialsPlanCabinets);
|
|
|
+ // 4.开始计算倒计时给检查员发送邮件
|
|
|
+
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+ @Transactional
|
|
|
+ @Override
|
|
|
+ public Boolean deleteIsMaterialsCheckPlanByPlanIds(String planIds) {
|
|
|
+ Assert.notBlank(planIds, "请选择需要删除的数据!");
|
|
|
+ Long[] longIds = Convert.toLongArray(planIds);
|
|
|
+ removeBatchByIds(Arrays.asList(longIds));
|
|
|
+ // 开始删除关联的数据
|
|
|
+ iIsMaterialsPlanCabinetService.remove(Wrappers.<IsMaterialsPlanCabinet>lambdaQuery()
|
|
|
+ .in(IsMaterialsPlanCabinet::getPlanId, longIds));
|
|
|
+ return true;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
}
|