功能开发-sjx

liweidong
sunjianxi 1 day ago
parent 7d11f02b28
commit 1ab43b6b7a
  1. 16
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/basic/pojo/entity/WorkCenter.java
  2. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/IWorkCenterService.java
  3. 5
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/OemServiceImpl.java
  4. 13
      blade-service/blade-desk/src/main/java/org/springblade/desk/basic/service/impl/WorkCenterServiceImpl.java
  5. 16
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/controller/YieldOrderController.java
  6. 51
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderCraftServiceImpl.java
  7. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderDailyAssignImpl.java
  8. 4
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java

@ -113,6 +113,19 @@ public class WorkCenter extends BaseEntity {
*/ */
public static final String COL_REMARKS = "REMARKS"; public static final String COL_REMARKS = "REMARKS";
/**
* 正常
*/
public static Integer LIMIT_TYPE_NORMAL = 0;
/**
* 优先
*/
public static Integer LIMIT_TYPE_PRIOR = 1;
/**
* 必须
*/
public static Integer LIMIT_TYPE_MUST = 2;
/** /**
* 编码 * 编码
*/ */
@ -224,4 +237,7 @@ public class WorkCenter extends BaseEntity {
@TableField(exist = false) @TableField(exist = false)
private List<CraftAbilityEntity> crafs; private List<CraftAbilityEntity> crafs;
@TableField(exist = false)
private Integer limitType;
} }

@ -9,7 +9,6 @@ import org.springblade.core.mp.base.BaseService;
import org.springblade.desk.basic.excel.WorkCenterExcel; import org.springblade.desk.basic.excel.WorkCenterExcel;
import org.springblade.desk.basic.pojo.entity.WorkCenter; import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.pojo.vo.WorkCenterVO; import org.springblade.desk.basic.pojo.vo.WorkCenterVO;
import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity;
import java.util.List; import java.util.List;
import java.util.Map; import java.util.Map;
@ -50,7 +49,7 @@ public interface IWorkCenterService extends BaseService<WorkCenter> {
* @param rxlSpace 是否需要特殊分派 null :不需要 true:需要 * @param rxlSpace 是否需要特殊分派 null :不需要 true:需要
* @return * @return
*/ */
Map<Long, BsWorkCenterEntity> selectByAbility(Long abilityId, Map<Long, WorkCenter> selectByAbility(Long abilityId,
Double ypQty, Double ypQty,
Double ypArea, Double ypArea,
String partCode, String partCode,
@ -64,5 +63,5 @@ public interface IWorkCenterService extends BaseService<WorkCenter> {
* @param workCenterId * @param workCenterId
* @return BsWorkCenterEntity 对象 * @return BsWorkCenterEntity 对象
*/ */
BsWorkCenterEntity getWorkCenter(Long workCenterId); WorkCenter getWorkCenter(Long workCenterId);
} }

@ -138,7 +138,10 @@ public class OemServiceImpl extends BaseServiceImpl<OemMapper, Oem> implements I
// 如果返回值是true,则代表供应商存在键位零件或者相似,直接跳过此供应商 // 如果返回值是true,则代表供应商存在键位零件或者相似,直接跳过此供应商
// if (similarPartsService.checkKeyPosition(yieldOrder, null, oem.getId())) // if (similarPartsService.checkKeyPosition(yieldOrder, null, oem.getId()))
// continue; // continue;
rtnLst.add(oem.getId()); if(oem != null){
rtnLst.add(oem.getId());
}
} }
return rtnLst; return rtnLst;
} }

@ -12,7 +12,6 @@ import lombok.Data;
import lombok.EqualsAndHashCode; import lombok.EqualsAndHashCode;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.BeanUtil;
import org.springblade.desk.basic.excel.WorkCenterExcel; import org.springblade.desk.basic.excel.WorkCenterExcel;
import org.springblade.desk.basic.mapper.WorkCenterMapper; import org.springblade.desk.basic.mapper.WorkCenterMapper;
import org.springblade.desk.basic.pojo.entity.BatConfig; import org.springblade.desk.basic.pojo.entity.BatConfig;
@ -21,7 +20,6 @@ import org.springblade.desk.basic.pojo.vo.WorkCenterVO;
import org.springblade.desk.basic.service.IBatConfigService; import org.springblade.desk.basic.service.IBatConfigService;
import org.springblade.desk.basic.service.IOemCraftAbilityService; import org.springblade.desk.basic.service.IOemCraftAbilityService;
import org.springblade.desk.basic.service.IWorkCenterService; import org.springblade.desk.basic.service.IWorkCenterService;
import org.springblade.desk.dashboard.pojo.entity.BsWorkCenterEntity;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.util.LinkedHashMap; import java.util.LinkedHashMap;
@ -60,7 +58,7 @@ public class WorkCenterServiceImpl extends BaseServiceImpl<WorkCenterMapper, Wor
} }
@Override @Override
public Map<Long, BsWorkCenterEntity> selectByAbility(Long abilityId, Double ypQty, Double ypArea, String partCode, String PrimaryCraft, Integer yieldType, Boolean rxlSpace) { public Map<Long, WorkCenter> selectByAbility(Long abilityId, Double ypQty, Double ypArea, String partCode, String PrimaryCraft, Integer yieldType, Boolean rxlSpace) {
List<WorkCenter> workCenterList = this.list(Wrappers.<WorkCenter>lambdaQuery().like(WorkCenter::getCraftAbilityId,abilityId)); List<WorkCenter> workCenterList = this.list(Wrappers.<WorkCenter>lambdaQuery().like(WorkCenter::getCraftAbilityId,abilityId));
if(CollectionUtils.isEmpty(workCenterList)){ if(CollectionUtils.isEmpty(workCenterList)){
@ -68,7 +66,7 @@ public class WorkCenterServiceImpl extends BaseServiceImpl<WorkCenterMapper, Wor
} }
Double area = ypQty * ypArea; Double area = ypQty * ypArea;
Map<Long, BsWorkCenterEntity> wcMap = new LinkedHashMap<>(); Map<Long, WorkCenter> wcMap = new LinkedHashMap<>();
String part = ""; String part = "";
//如果判断是否包含. //如果判断是否包含.
@ -112,15 +110,14 @@ public class WorkCenterServiceImpl extends BaseServiceImpl<WorkCenterMapper, Wor
} }
} }
BsWorkCenterEntity workCenterEntity = BeanUtil.copy(workCenter, BsWorkCenterEntity.class); wcMap.put(workCenter.getId(), workCenter);
wcMap.put(workCenter.getId(), workCenterEntity);
} }
return wcMap; return wcMap;
} }
@Override @Override
public BsWorkCenterEntity getWorkCenter(Long workCenterId) { public WorkCenter getWorkCenter(Long workCenterId) {
WorkCenter center = this.getById(workCenterId); WorkCenter center = this.getById(workCenterId);
return BeanUtil.copy(center, BsWorkCenterEntity.class); return center;
} }
} }

@ -21,6 +21,7 @@ import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.entity.YieldOrderCraft; import org.springblade.desk.order.pojo.entity.YieldOrderCraft;
import org.springblade.desk.order.pojo.enums.YieldOrderEnum; import org.springblade.desk.order.pojo.enums.YieldOrderEnum;
import org.springblade.desk.order.pojo.vo.YieldOrderVo; import org.springblade.desk.order.pojo.vo.YieldOrderVo;
import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springblade.desk.order.service.IYieldOrderCraftService; import org.springblade.desk.order.service.IYieldOrderCraftService;
import org.springblade.desk.order.service.IYieldOrderService; import org.springblade.desk.order.service.IYieldOrderService;
import org.springblade.desk.order.wrapper.YieldOrderWrapper; import org.springblade.desk.order.wrapper.YieldOrderWrapper;
@ -46,6 +47,8 @@ public class YieldOrderController extends BladeController {
private final IWorkOrderClient workOrderClient; private final IWorkOrderClient workOrderClient;
private final IPlateGoodsRecordService goodsRecordService;
/** /**
* 分页查询列表-电镀 * 分页查询列表-电镀
*/ */
@ -182,8 +185,8 @@ public class YieldOrderController extends BladeController {
* 批量确认 * 批量确认
*/ */
@PostMapping("/automaticDispatch") @PostMapping("/automaticDispatch")
@Operation(summary = "批量确认", description = "传入ids") @Operation(summary = "自动分派", description = "传入ids")
public R automaticDispatch(@Parameter(description = "主键集合", required = true) @RequestParam Long id) { public R automaticDispatch(@Parameter(description = "主键", required = true) @RequestParam Long id) {
YieldOrder yieldOrder = yieldOrderService.getById(id); YieldOrder yieldOrder = yieldOrderService.getById(id);
Boolean result = yieldOrderService.verifyYieldOrderResource(yieldOrder); Boolean result = yieldOrderService.verifyYieldOrderResource(yieldOrder);
return R.status(result); return R.status(result);
@ -274,4 +277,13 @@ public class YieldOrderController extends BladeController {
yieldOrderService.receiveOrderStatusFromOldMes(entity.getString("cardNo"), entity.getInteger("status")); yieldOrderService.receiveOrderStatusFromOldMes(entity.getString("cardNo"), entity.getInteger("status"));
return R.success(); return R.success();
} }
@PostMapping("/calculateCoatingMaterial")
@Operation(summary = "镀层物料需求", description = "")
public R calculateCoatingMaterial(@Parameter(description = "主键", required = true) @RequestParam Long id) {
YieldOrder yieldOrder = yieldOrderService.getById(id);
Boolean result = goodsRecordService.calculateCoatingMaterial(yieldOrder);
return R.status(result);
}
} }

@ -8,11 +8,13 @@ import lombok.extern.slf4j.Slf4j;
import org.apache.commons.lang3.StringUtils; import org.apache.commons.lang3.StringUtils;
import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.CommonConstant;
import org.springblade.common.exception.BusinessException; import org.springblade.common.exception.BusinessException;
import org.springblade.core.log.exception.ServiceException;
import org.springblade.core.mp.base.BaseServiceImpl; import org.springblade.core.mp.base.BaseServiceImpl;
import org.springblade.core.tool.utils.Func; import org.springblade.core.tool.utils.Func;
import org.springblade.desk.basic.pojo.entity.BsAssignEntity; import org.springblade.desk.basic.pojo.entity.BsAssignEntity;
import org.springblade.desk.basic.pojo.entity.Oem; import org.springblade.desk.basic.pojo.entity.Oem;
import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity; import org.springblade.desk.basic.pojo.entity.OemCraftAbilityEntity;
import org.springblade.desk.basic.pojo.entity.WorkCenter;
import org.springblade.desk.basic.service.IBsAssignService; import org.springblade.desk.basic.service.IBsAssignService;
import org.springblade.desk.basic.service.IOemCraftAbilityService; import org.springblade.desk.basic.service.IOemCraftAbilityService;
import org.springblade.desk.basic.service.IOemService; import org.springblade.desk.basic.service.IOemService;
@ -98,7 +100,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
Long hostAbilityId = craftKeys.iterator().next(); Long hostAbilityId = craftKeys.iterator().next();
BsCraftAbilityEntity craftAbility = craftAbilityService.getById(hostAbilityId); BsCraftAbilityEntity craftAbility = craftAbilityService.getById(hostAbilityId);
//获取可以做此主工艺能力的作业中心集合 //获取可以做此主工艺能力的作业中心集合
Map<Long, BsWorkCenterEntity> workCenterMap = workCenterService.selectByAbility(hostAbilityId, yieldOrder.getYpQty(), yieldOrder.getYpArea(), yieldOrder.getPartCode(), yieldOrder.getPrimaryCraft(), yieldOrder.getYieldType(), rxlSpace); Map<Long, WorkCenter> workCenterMap = workCenterService.selectByAbility(hostAbilityId, yieldOrder.getYpQty(), yieldOrder.getYpArea(), yieldOrder.getPartCode(), yieldOrder.getPrimaryCraft(), yieldOrder.getYieldType(), rxlSpace);
//获取可以做此主工艺能力的外协商集合 //获取可以做此主工艺能力的外协商集合
List<Long> oemList = oemService.selectByAbility(hostAbilityId, yieldOrder.getYpQty(), yieldOrder.getYpArea(), yieldOrder.getPartCode(), yieldOrder.getPrimaryCraft(), yieldOrder.getYieldType(), yieldOrder.getPlate(), rxlSpace); List<Long> oemList = oemService.selectByAbility(hostAbilityId, yieldOrder.getYpQty(), yieldOrder.getYpArea(), yieldOrder.getPartCode(), yieldOrder.getPrimaryCraft(), yieldOrder.getYieldType(), yieldOrder.getPlate(), rxlSpace);
@ -123,7 +125,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
} }
//获取到可以做主工艺能力的最合适的作业中心,并且标记必须、优先、正常 //获取到可以做主工艺能力的最合适的作业中心,并且标记必须、优先、正常
BsWorkCenterEntity workCenter = null; WorkCenter workCenter = null;
//获取到可以做主工艺能力的最合适的外协商,并且标记必须、优先、正常 //获取到可以做主工艺能力的最合适的外协商,并且标记必须、优先、正常
Oem oemCustomer = null; Oem oemCustomer = null;
//自动分派后的结果集 //自动分派后的结果集
@ -180,9 +182,9 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null);
} else if (workCenter != null && oemCustomer != null) { } else if (workCenter != null && oemCustomer != null) {
//场内外共有工艺能力 //场内外共有工艺能力
if (workCenter.getLimitType().equals(BsWorkCenterEntity.LIMIT_TYPE_MUST)) { if (workCenter.getLimitType().equals(WorkCenter.LIMIT_TYPE_MUST)) {
dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null);
} else if (oemCustomer.getLimitType().equals(BsWorkCenterEntity.LIMIT_TYPE_MUST)) { } else if (oemCustomer.getLimitType().equals(WorkCenter.LIMIT_TYPE_MUST)) {
dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null);
} }
@ -192,7 +194,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
} }
// 厂内优先 // 厂内优先
if (workCenter.getLimitType().equals(BsWorkCenterEntity.LIMIT_TYPE_PRIOR)) { if (workCenter.getLimitType().equals(WorkCenter.LIMIT_TYPE_PRIOR)) {
dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); dispatchCraftList = this.bindWorkCenter(workCenter.getId(), workCenterMap, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null);
} }
@ -202,7 +204,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
} }
//外协优先 //外协优先
if (oemCustomer.getLimitType().equals(BsWorkCenterEntity.LIMIT_TYPE_PRIOR)) { if (oemCustomer.getLimitType().equals(WorkCenter.LIMIT_TYPE_PRIOR)) {
dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null); dispatchCraftList = this.bindOem(oemCustomer, hostAbilityId, craftAbilityMap, craftKeys, yieldOrder, null);
} }
@ -262,11 +264,11 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
} }
if (dispatchCraftList == null || dispatchCraftList.size() == 0) { if (dispatchCraftList == null || dispatchCraftList.size() == 0) {
throw new BusinessException("自动分派失败,未找到合适的班组或者供应商!"); throw new ServiceException("自动分派失败,未找到合适的班组或者供应商!");
} }
// 分派成功,保存分派结果 // 分派成功,保存分派结果
this.saveBatch(dispatchCraftList); this.saveOrUpdateBatch(dispatchCraftList);
} }
/** /**
@ -279,7 +281,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
* @Author dxl * @Author dxl
* @CreateTime 2023/3/7 18:30 * @CreateTime 2023/3/7 18:30
*/ */
private BsWorkCenterEntity inPlantDistribution(Long hostCaId, Map<Long, BsWorkCenterEntity> wcMap, YieldOrder yieldOrder, Integer limitType) { private WorkCenter inPlantDistribution(Long hostCaId, Map<Long, WorkCenter> wcMap, YieldOrder yieldOrder, Integer limitType) {
//没有工艺能力的对应作业中心,直接分派厂外 //没有工艺能力的对应作业中心,直接分派厂外
if (wcMap == null || wcMap.size() == 0) { if (wcMap == null || wcMap.size() == 0) {
return null; return null;
@ -290,7 +292,7 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
wcList.addAll(wcMap.keySet()); wcList.addAll(wcMap.keySet());
//作业中心 //作业中心
BsWorkCenterEntity workCenter = null; WorkCenter workCenter = null;
//在规则表中匹配是否存在匹配的条件(查厂内) //在规则表中匹配是否存在匹配的条件(查厂内)
BsAssignEntity assign = this.getRules(yieldOrder, hostCaId, BsAssignEntity.IN_FACTORY); BsAssignEntity assign = this.getRules(yieldOrder, hostCaId, BsAssignEntity.IN_FACTORY);
if (assign != null) { if (assign != null) {
@ -341,14 +343,14 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
* @Author dxl * @Author dxl
* @CreateTime 2023/3/7 18:31 * @CreateTime 2023/3/7 18:31
*/ */
private BsWorkCenterEntity priorityInPlantDistribution(Long hostCaId, List<Long> wcList, YieldOrder yieldOrder, Integer limitType) { private WorkCenter priorityInPlantDistribution(Long hostCaId, List<Long> wcList, YieldOrder yieldOrder, Integer limitType) {
//没有工艺能力的对应作业中心,直接分派厂外 //没有工艺能力的对应作业中心,直接分派厂外
if (wcList == null || wcList.size() == 0) { if (wcList == null || wcList.size() == 0) {
return null; return null;
} }
//作业中心 //作业中心
BsWorkCenterEntity workCenter = null; WorkCenter workCenter = null;
//如果找到合适的作业中心直接分派,反之如果未找到合适的作业中心(bool 是true的情况下强制厂内,bool是false是优先厂内,不满足的情况下直接返回空) //如果找到合适的作业中心直接分派,反之如果未找到合适的作业中心(bool 是true的情况下强制厂内,bool是false是优先厂内,不满足的情况下直接返回空)
YieldOrderAssignDaily dayAbilityAssignment = dailyAssignService.findMinNum(hostCaId, wcList); YieldOrderAssignDaily dayAbilityAssignment = dailyAssignService.findMinNum(hostCaId, wcList);
if (Func.isEmpty(dayAbilityAssignment)) { if (Func.isEmpty(dayAbilityAssignment)) {
@ -372,17 +374,17 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
* @Author dxl * @Author dxl
* @CreateTime 2023/3/8 15:30 * @CreateTime 2023/3/8 15:30
*/ */
private List<YieldOrderCraft> bindWorkCenter(Long workCenterId, Map<Long, BsWorkCenterEntity> workCenterMap, Long craftAbilityId, private List<YieldOrderCraft> bindWorkCenter(Long workCenterId, Map<Long, WorkCenter> workCenterMap, Long craftAbilityId,
Map<Long, List<YieldOrderCraft>> craftAbilityMap, Set<Long> craftKeys, Map<Long, List<YieldOrderCraft>> craftAbilityMap, Set<Long> craftKeys,
YieldOrder yieldOrder, Boolean factor) { YieldOrder yieldOrder, Boolean factor) throws BusinessException {
List<YieldOrderCraft> orderCrafts = new ArrayList<>(); List<YieldOrderCraft> orderCrafts = new ArrayList<>();
// 开始循环生产订单中组合的工艺能力key集合, 主工艺能力之前的全部分配到此作业中心 // 开始循环生产订单中组合的工艺能力key集合, 主工艺能力之前的全部分配到此作业中心
for (Long craftId : craftKeys) { for (Long craftId : craftKeys) {
//验证工艺能力 //验证工艺能力
BsWorkCenterEntity workCenter = workCenterMap.get(craftId); /*WorkCenter workCenter = workCenterService.getOne(Wrappers.<WorkCenter>lambdaQuery().eq(BaseEntity::getId,workCenterId).like(WorkCenter::getCraftAbilityId,craftId));
if (workCenter == null) { if (workCenter == null) {
break; break;
} }*/
orderCrafts.addAll(craftAbilityMap.get(craftId)); orderCrafts.addAll(craftAbilityMap.get(craftId));
} }
@ -398,8 +400,21 @@ public class YieldOrderCraftServiceImpl extends BaseServiceImpl<YieldOrderCraftM
centerId = teamSetEntity.getWcId(); centerId = teamSetEntity.getWcId();
} }
} }
BsWorkCenterEntity workCenter = workCenterMap.get(centerId); WorkCenter workCenter = null;
orderCraft.setWorkCenterId(workCenter.getId()); if(orderCraft.getCaId().equals(craftAbilityId)){
workCenter = workCenterMap.get(workCenterId);
}else{
workCenter = workCenterService.getOne(Wrappers.<WorkCenter>lambdaQuery().like(WorkCenter::getCraftAbilityId,orderCraft.getCaId()));
}
if(centerId != null){
orderCraft.setWorkCenterId(centerId);
}else{
if(workCenter == null){
throw new BusinessException("工艺" + orderCraft.getCaId() + "未查询到对应作业中心");
}
orderCraft.setWorkCenterId(workCenter.getId());
}
orderCraft.setIsOutsource(Boolean.FALSE); orderCraft.setIsOutsource(Boolean.FALSE);
} }
//factor等于null代表是整体,有值时代表是单工序 //factor等于null代表是整体,有值时代表是单工序

@ -1,6 +1,7 @@
package org.springblade.desk.order.service.impl; package org.springblade.desk.order.service.impl;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper; import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.toolkit.CollectionUtils;
import com.baomidou.mybatisplus.core.toolkit.Wrappers; import com.baomidou.mybatisplus.core.toolkit.Wrappers;
import lombok.RequiredArgsConstructor; import lombok.RequiredArgsConstructor;
import org.springblade.common.constant.CommonConstant; import org.springblade.common.constant.CommonConstant;
@ -14,6 +15,8 @@ import org.springblade.desk.order.service.IYieldOrderDailyAssignService;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import java.time.LocalDate; import java.time.LocalDate;
import java.time.LocalDateTime;
import java.time.LocalTime;
import java.util.List; import java.util.List;
/** /**
@ -71,15 +74,22 @@ public class YieldOrderDailyAssignImpl extends BaseServiceImpl<YieldOrderDailyAs
@Override @Override
public YieldOrderAssignDaily findMinNum(Long abilityId, List<Long> workCenterIdList) { public YieldOrderAssignDaily findMinNum(Long abilityId, List<Long> workCenterIdList) {
LocalDate today = LocalDate.now();
LocalDateTime startOfDay = today.atStartOfDay();
LocalDateTime endOfDay = today.atTime(LocalTime.MAX);
LambdaQueryWrapper<YieldOrderAssignDaily> wrapper = Wrappers.<YieldOrderAssignDaily>query().lambda() LambdaQueryWrapper<YieldOrderAssignDaily> wrapper = Wrappers.<YieldOrderAssignDaily>query().lambda()
.eq(YieldOrderAssignDaily::getIsDeleted, CommonConstant.BOOLEAN_FALSE) .eq(YieldOrderAssignDaily::getIsDeleted, CommonConstant.BOOLEAN_FALSE)
.eq(YieldOrderAssignDaily::getCraftAbilityId, abilityId) .eq(YieldOrderAssignDaily::getCraftAbilityId, abilityId)
.eq(YieldOrderAssignDaily::getCreateTime, DateUtil.toDate(LocalDate.now())); .between(YieldOrderAssignDaily::getCreateTime,
DateUtil.toDate(startOfDay),
DateUtil.toDate(endOfDay));
if (Func.isNotEmpty(workCenterIdList)) { if (Func.isNotEmpty(workCenterIdList)) {
wrapper.in(YieldOrderAssignDaily::getWorkCenterId, workCenterIdList); wrapper.in(YieldOrderAssignDaily::getWorkCenterId, workCenterIdList);
} }
wrapper.orderByAsc(YieldOrderAssignDaily::getNum).last("LIMIT 1"); List<YieldOrderAssignDaily> list = baseMapper.selectList(wrapper);
if(CollectionUtils.isEmpty(list)){
return baseMapper.selectOne(wrapper); return null;
}
return list.get(0);
} }
} }

@ -418,12 +418,12 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
log.info("添加数据返回结果:{}",saveBatch); log.info("添加数据返回结果:{}",saveBatch);
} }
//镀层物料需求 //镀层物料需求
if(YieldOrderEnum.YIELD_TYPE_1.getCode() == yieldOrder.getYieldType()){ /*if(YieldOrderEnum.YIELD_TYPE_1.getCode() == yieldOrder.getYieldType()){
boolean result = plateGoodsRecordService.calculateCoatingMaterial(yieldOrder); boolean result = plateGoodsRecordService.calculateCoatingMaterial(yieldOrder);
if(!result){ if(!result){
return false; return false;
} }
} }*/
// 生成子件订单 // 生成子件订单
createSubOrder(yieldOrder); createSubOrder(yieldOrder);
//部件生产订单获取石墨模生成烧结磨具计划,玻璃饼订单获取压饼模生成烧结磨具计划 //部件生产订单获取石墨模生成烧结磨具计划,玻璃饼订单获取压饼模生成烧结磨具计划

Loading…
Cancel
Save