重账订单

liweidong
liweidong-hj 1 week ago
parent 1f570c6ad3
commit 076f4faa99
  1. 11
      blade-service/blade-desk/src/main/java/org/springblade/desk/dashboard/service/impl/DsCraftServiceImpl.java
  2. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.java
  3. 12
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml
  4. 14
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/IYieldOrderService.java
  5. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/MoldDemandServiceImpl.java
  6. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  7. 3
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/wrapper/MoldDemandWrapper.java
  8. 14
      blade-service/blade-erpdata/src/main/java/org/springblade/erpdata/service/impl/ErpMesRbWoServiceImpl.java

@ -42,6 +42,8 @@ import org.springblade.desk.dashboard.pojo.vo.DsCraftVO;
import org.springblade.desk.dashboard.pojo.vo.DsPartToolVO; import org.springblade.desk.dashboard.pojo.vo.DsPartToolVO;
import org.springblade.desk.dashboard.pojo.vo.DsProcessSynthesisVO; import org.springblade.desk.dashboard.pojo.vo.DsProcessSynthesisVO;
import org.springblade.desk.dashboard.service.*; import org.springblade.desk.dashboard.service.*;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.service.IYieldOrderService;
import org.springframework.beans.factory.annotation.Autowired; import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service; import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional; import org.springframework.transaction.annotation.Transactional;
@ -75,6 +77,9 @@ public class DsCraftServiceImpl extends BaseServiceImpl<DsCraftMapper, DsCraftEn
@Autowired @Autowired
DsCraftMapper craftMapper; DsCraftMapper craftMapper;
@Autowired
IYieldOrderService yieldOrderService;
@Override @Override
public IPage<DsCraftVO> selectDsCraftPage(IPage<DsCraftVO> page, DsCraftVO dsCraft) { public IPage<DsCraftVO> selectDsCraftPage(IPage<DsCraftVO> page, DsCraftVO dsCraft) {
@ -276,6 +281,12 @@ public class DsCraftServiceImpl extends BaseServiceImpl<DsCraftMapper, DsCraftEn
throw new ServiceException("工艺信息不存在"); throw new ServiceException("工艺信息不存在");
} }
//校验是否有订单在使用这个工序信息
List<YieldOrder> yieldOrderList = yieldOrderService.selectByCraftId(craftEntity.getId());
if(!CollectionUtils.isEmpty(yieldOrderList)){
throw new ServiceException("该工艺下存在订单,无法删除");
}
//查询工序 //查询工序
List<DsProcessEntity> processEntities = processService.selectDsProcessByCraftId(craftId); List<DsProcessEntity> processEntities = processService.selectDsProcessByCraftId(craftId);
if (processEntities.isEmpty()) { if (processEntities.isEmpty()) {

@ -71,4 +71,7 @@ public interface YieldOrderMapper extends BaseMapper<YieldOrder> {
*/ */
boolean updateOldMesPrWorkOrder(@Param("woId") Long woId, @Param("plateSingleQuota") double plateSingleQuota); boolean updateOldMesPrWorkOrder(@Param("woId") Long woId, @Param("plateSingleQuota") double plateSingleQuota);
List<YieldOrder> selectByCraftId(@Param("craftId") Long craftId);
List<YieldOrder> selectByFatherYoId(@Param("yieldOrderId") Long yieldOrderId);
} }

@ -147,6 +147,18 @@
<select id="selectOldMesPrWorkPlan" resultType="org.springblade.desk.order.pojo.vo.oldmes.PrWorkPlan"> <select id="selectOldMesPrWorkPlan" resultType="org.springblade.desk.order.pojo.vo.oldmes.PrWorkPlan">
select * from MJMES.rb_pr_work_plan where WO_ID =#{woId} and make_team =#{makeTeam} select * from MJMES.rb_pr_work_plan where WO_ID =#{woId} and make_team =#{makeTeam}
</select> </select>
<select id="selectByCraftId" resultType="org.springblade.desk.order.pojo.entity.YieldOrder">
SELECT <include refid="baseCommonFields" />
FROM MES_YIELD_ORDER yo
WHERE CRAFT_ID = #{craftId}
AND IS_DELETED = 0
</select>
<select id="selectByFatherYoId" resultType="org.springblade.desk.order.pojo.entity.YieldOrder">
SELECT <include refid="baseCommonFields" />
FROM MES_YIELD_ORDER yo
WHERE FATHER_YO_ID = #{yieldOrderId}
AND IS_DELETED = 0
</select>
<update id="updateOldMesPrWorkOrder"> <update id="updateOldMesPrWorkOrder">
update MJMES.PR_WORK_ORDER set PLATE_SINGLE_QUOTA = #{plateSingleQuota} where WO_ID = #{woId} update MJMES.PR_WORK_ORDER set PLATE_SINGLE_QUOTA = #{plateSingleQuota} where WO_ID = #{woId}

@ -295,4 +295,18 @@ public interface IYieldOrderService extends BaseService<YieldOrder> {
String generateMdCode(); String generateMdCode();
boolean createBlbYieldOrder(String partCode,Double qty,String memo); boolean createBlbYieldOrder(String partCode,Double qty,String memo);
/**
* 根据工艺ID查询生产订单
* @param craftId
* @return
*/
List<YieldOrder> selectByCraftId(Long craftId);
/**
* 根据父级ID查询
* @param yieldOrderId
* @return
*/
List<YieldOrder> selectByFatherYoId(Long yieldOrderId);
} }

@ -50,9 +50,6 @@ public class MoldDemandServiceImpl extends BaseServiceImpl<MoldDemandMapper, Mol
public IPage<MoldDemand> selectPage(IPage<MoldDemand> page, MoldDemand entity) { public IPage<MoldDemand> selectPage(IPage<MoldDemand> page, MoldDemand entity) {
entity.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode()); entity.setMafStatus(MoldDemandEnum.MAF_STATUS_CREATE.getCode());
List<MoldDemand> dataList = baseMapper.selectPage(page, entity); List<MoldDemand> dataList = baseMapper.selectPage(page, entity);
for (MoldDemand moldDemand : dataList) {
}
return page.setRecords(dataList); return page.setRecords(dataList);
} }

@ -86,8 +86,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
@Autowired @Autowired
private IDsPartService dsPartService; private IDsPartService dsPartService;
@Autowired // @Autowired
private IDsCraftService dsCraftService; // private IDsCraftService dsCraftService;
@Autowired @Autowired
private IDsProcessService dsProcessService; private IDsProcessService dsProcessService;
@ -353,12 +353,37 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
.ne(YieldOrder::getId, yieldOrder.getId()); .ne(YieldOrder::getId, yieldOrder.getId());
List<YieldOrder> yieldOrderCheckList = baseMapper.selectList(wrapper); List<YieldOrder> yieldOrderCheckList = baseMapper.selectList(wrapper);
if (CollectionUtils.isNotEmpty(yieldOrderCheckList)) { if (CollectionUtils.isNotEmpty(yieldOrderCheckList)) {
//重账订单,如果旧订单接收状态为未接收,删除旧订单(即更早同步的那一条)
//如果是烧结订单:删除烧结订单关联的子件订单
// 按创建时间排序
Collections.sort(yieldOrderCheckList, Comparator.comparing(YieldOrder::getCreateTime));
YieldOrder earliestOrder = yieldOrderCheckList.get(0);
// 检查最早订单的接收状态
if (earliestOrder.getReceiveStatus().equals(YieldOrderEnum.RECEIVE_STATUS_NO.getCode())) {
// 1. 先收集需要删除的所有ID(包括父订单和子订单)
List<Long> allDeleteIds = new ArrayList<>();
// 处理烧结订单的子件订单
if (earliestOrder.getYieldType().equals(YieldOrderEnum.YIELD_TYPE_2.getCode())) {
List<YieldOrder> childOrderList = this.selectByFatherYoId(earliestOrder.getId());
if (CollectionUtils.isNotEmpty(childOrderList)) {
List<Long> childIds = childOrderList.stream().map(YieldOrder::getId).filter(Objects::nonNull).collect(Collectors.toList());
allDeleteIds.addAll(childIds);
}
}
// 添加父订单ID
allDeleteIds.add(earliestOrder.getId());
this.deleteLogic(allDeleteIds);
} else {
// 最早订单已接收,说明数据重复
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_DATA.getCode());
yieldOrder.setValidationTime(DateUtil.now()); yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo("已存在该流程卡号的数据"); yieldOrder.setValidationMomo("已存在该流程卡号的数据");
this.updateById(yieldOrder); this.updateById(yieldOrder);
return false; return false;
} }
}
//校验批次号、生产标识、使用部门、数量、计划员、计划下达时间、需求交期字段是否为空,为空标记为【数据缺失-16002】 //校验批次号、生产标识、使用部门、数量、计划员、计划下达时间、需求交期字段是否为空,为空标记为【数据缺失-16002】
List<String> emptyFields = new ArrayList<>(); List<String> emptyFields = new ArrayList<>();
@ -1590,6 +1615,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len); return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len);
} }
@Override
public boolean createBlbYieldOrder(String partCode, Double qty, String memo) { public boolean createBlbYieldOrder(String partCode, Double qty, String memo) {
DsPartEntity dsPart = dsPartService.selectDsPartByPatCodeAndVersion(partCode, null); DsPartEntity dsPart = dsPartService.selectDsPartByPatCodeAndVersion(partCode, null);
String roamNo = yieldOrderClient.getChildRoamNoByPartCode(partCode); String roamNo = yieldOrderClient.getChildRoamNoByPartCode(partCode);
@ -1623,6 +1649,16 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
return this.save(order); return this.save(order);
} }
@Override
public List<YieldOrder> selectByCraftId(Long craftId) {
return baseMapper.selectByCraftId(craftId);
}
@Override
public List<YieldOrder> selectByFatherYoId(Long yieldOrderId) {
return baseMapper.selectByFatherYoId(yieldOrderId);
}
/** /**
* @param codeType 0:订单号1流程卡号2批次号 * @param codeType 0:订单号1流程卡号2批次号
* @return String * @return String

@ -34,7 +34,8 @@ public class MoldDemandWrapper extends BaseEntityWrapper<MoldDemand, MoldDemandV
vo.setCreateUserName(user.getAccount()); vo.setCreateUserName(user.getAccount());
} }
vo.setStatusName(MoldDemandEnum.getName(entity.getStatus())); //取消该字段
// vo.setStatusName(MoldDemandEnum.getName(entity.getStatus()));
vo.setMafStatusName(MoldDemandEnum.getName(entity.getMafStatus())); vo.setMafStatusName(MoldDemandEnum.getName(entity.getMafStatus()));
vo.setMafTypeName(MoldDemandEnum.getName(entity.getMafType())); vo.setMafTypeName(MoldDemandEnum.getName(entity.getMafType()));
String linkOrderIds = entity.getLinkOrderIds(); String linkOrderIds = entity.getLinkOrderIds();

@ -315,7 +315,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
// yieldOrder.setReceiveTime(new Date()); // yieldOrder.setReceiveTime(new Date());
yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode()); yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode());
// yieldOrder.setReceiveUser(2038615120549822465L); // yieldOrder.setReceiveUser(2038615120549822465L);
// yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode()); yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode());
yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode()); yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode());
yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode()); yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode());
@ -396,7 +396,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode()); yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode());
yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode()); yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode());
// yieldOrder.setReceiveUser(2038615120549822465L); // yieldOrder.setReceiveUser(2038615120549822465L);
// yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode()); yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode());
yieldOrder.setRoamNo(mesRbPacturnrecord.getFirseq()); yieldOrder.setRoamNo(mesRbPacturnrecord.getFirseq());
yieldOrder.setPlanDeptCode(mesRbPacturnrecord.getPlndeptcode()); yieldOrder.setPlanDeptCode(mesRbPacturnrecord.getPlndeptcode());
@ -471,7 +471,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode()); yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode());
yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode()); yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode());
// yieldOrder.setReceiveUser(2038615120549822465L); // yieldOrder.setReceiveUser(2038615120549822465L);
// yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode()); yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode());
yieldOrder.setRoamNo(mesRbtoso.getFirseq()); yieldOrder.setRoamNo(mesRbtoso.getFirseq());
yieldOrder.setRoamNoNext( ""); yieldOrder.setRoamNoNext( "");
@ -538,7 +538,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode()); yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode());
yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_1.getCode()); yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_1.getCode());
// yieldOrder.setReceiveUser(2038615120549822465L); // yieldOrder.setReceiveUser(2038615120549822465L);
// yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode()); yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode());
yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode()); yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode());
yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode()); yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode());
@ -621,7 +621,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
// yieldOrder.setReceiveTime(new Date()); // yieldOrder.setReceiveTime(new Date());
yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode()); yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode());
// yieldOrder.setReceiveUser(2038615120549822465L); // yieldOrder.setReceiveUser(2038615120549822465L);
// yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode()); yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode());
yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode()); yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode());
yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode()); yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode());
@ -701,7 +701,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode()); yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode());
yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_1.getCode()); yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_1.getCode());
// yieldOrder.setReceiveUser(2038615120549822465L); // yieldOrder.setReceiveUser(2038615120549822465L);
// yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode()); yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode());
yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode()); yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode());
yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode()); yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode());
@ -788,7 +788,7 @@ public class ErpMesRbWoServiceImpl implements IErpMesRbWoService {
// yieldOrder.setReceiveTime(new Date()); // yieldOrder.setReceiveTime(new Date());
yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode()); yieldOrder.setStatus(YieldOrderEnum.STATUS_NORMAL.getCode());
// yieldOrder.setReceiveUser(2038615120549822465L); // yieldOrder.setReceiveUser(2038615120549822465L);
// yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode()); yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_NO.getCode());
yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode()); yieldOrder.setPriorityAps(YieldOrderEnum.PRIORITY_APS_NORMAL.getCode());
yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode()); yieldOrder.setPriorityErp(YieldOrderEnum.PRIORITY_ERP_NORMAL.getCode());
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode()); yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_NO.getCode());

Loading…
Cancel
Save