生产管理修改

liweidong
李涛 1 month ago
parent 4cf3e08e39
commit b8448a1e5f
  1. 4
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/produce/pojo/entity/WorkOrder.java
  2. 8
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewDutyDTO.java
  3. 8
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewFaultDTO.java
  4. 16
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/quality/pojo/dto/ReviewSheetDTO.java
  5. 4
      blade-service-api/blade-scheduling-api/src/main/java/org/springblade/scheduling/pojo/entity/WorkOrderEntity.java
  6. 171
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/YieldOrderServiceImpl.java
  7. 55
      blade-service/blade-desk/src/main/java/org/springblade/desk/produce/service/impl/WorkOrderServiceImpl.java
  8. 9
      blade-service/blade-desk/src/main/java/org/springblade/desk/quality/service/impl/ReviewSheetServiceImpl.java

@ -398,9 +398,9 @@ public class WorkOrder extends BaseEntity {
@Schema(description = "打印编码")
private String printCode;
/**
* 关闭时间
* 交接时间
*/
@Schema(description = "关闭时间")
@Schema(description = "交接时间")
private Date handoverTime;
/**
* 关闭时间

@ -1,6 +1,3 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.dto;
import lombok.Data;
@ -16,10 +13,7 @@ import java.io.Serial;
* @since 2026-01-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ReviewDutyDTO extends ReviewDuty {
@Serial
private static final long serialVersionUID = 1L;
public class ReviewDutyDTO {
/**
* 审理单Id
*/

@ -1,6 +1,3 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.dto;
import lombok.Data;
@ -16,10 +13,7 @@ import java.io.Serial;
* @since 2026-01-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ReviewFaultDTO extends ReviewFault {
@Serial
private static final long serialVersionUID = 1L;
public class ReviewFaultDTO {
/**
* 审理单Id
*/

@ -1,13 +1,6 @@
/**
* Author: Tom Shuo
*/
package org.springblade.desk.quality.pojo.dto;
import lombok.Data;
import lombok.EqualsAndHashCode;
import org.springblade.desk.quality.pojo.entity.ReviewSheet;
import java.io.Serial;
/**
* [生产处置单] 数据传输对象实体类
@ -16,10 +9,7 @@ import java.io.Serial;
* @since 2026-01-06
*/
@Data
@EqualsAndHashCode(callSuper = true)
public class ReviewSheetDTO extends ReviewSheet {
@Serial
private static final long serialVersionUID = 1L;
public class ReviewSheetDTO{
/**
* 批次号
@ -113,5 +103,9 @@ public class ReviewSheetDTO extends ReviewSheet {
* 处置单类型1-提交质保/2-提交工艺/3-提交设计
*/
private String hearDis;
/**
* 检验时间
*/
private String checkDate;
}

@ -303,9 +303,9 @@ public class WorkOrderEntity extends BaseEntity {
@Schema(description = "打印编码")
private String printCode;
/**
* 关闭时间
* 交接时间
*/
@Schema(description = "关闭时间")
@Schema(description = "交接时间")
private Date handoverTime;
/**
* 关闭时间

@ -201,7 +201,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
@Override
public String dataVerify(List<Long> ids) {
// 先根据ID查询订单列表
log.info("先根据ID查询订单列表:{}",ids);
log.info("先根据ID查询订单列表:{}", ids);
LambdaQueryWrapper<YieldOrder> queryWrapper = Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getIsDeleted, CommonConstant.DELETE_FALSE).in(YieldOrder::getId, ids);
List<YieldOrder> yieldOrderList = baseMapper.selectList(queryWrapper);
@ -248,12 +248,12 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_PASS.getCode());
this.updateById(yieldOrder);
if(yieldOrder.getReceiveStatus() != null &&
if (yieldOrder.getReceiveStatus() != null &&
yieldOrder.getValidationResult().equals(YieldOrderEnum.VALIDATION_RESULT_PASS.getCode()) &&
yieldOrder.getReceiveStatus().equals(YieldOrderEnum.RECEIVE_STATUS_YES.getCode())){
yieldOrder.getReceiveStatus().equals(YieldOrderEnum.RECEIVE_STATUS_YES.getCode())) {
//订单状态为验证完成并且已接收 进行分派
boolean result = this.verifyYieldOrderResource(yieldOrder);
if(!result){
if (!result) {
throw new ServiceException("分派异常请及时处理");
}
}
@ -265,7 +265,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
@Override
public boolean confirmBatch(List<Long> ids) {
List<YieldOrder> yieldOrderList = new ArrayList<>();
for(Long id : ids){
for (Long id : ids) {
YieldOrder yieldOrder = this.getById(id);
if (!this.verifyYieldOrderResource(yieldOrder)) {
return false;
@ -427,10 +427,10 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// 同步零件前置 防止烧结订单没有零件信息
DsPartEntity partEntity = dsPartService.selectDsPartByPatCodeAndVersion(yieldOrder.getPartCode(), yieldOrder.getPartVersion());
//如果零件信息为null,调用
if(partEntity == null){
if (partEntity == null) {
log.info("零件信息为null,从老mes同步零件信息");
boolean result = dsTaskingService.syncPart(null,null,yieldOrder.getPartCode());
if(!result){
boolean result = dsTaskingService.syncPart(null, null, yieldOrder.getPartCode());
if (!result) {
yieldOrder.setValidationResult(YieldOrderEnum.VALIDATION_RESULT_LESS_CRAFT.getCode());
yieldOrder.setValidationTime(DateUtil.now());
yieldOrder.setValidationMomo("未查询到零件信息!");
@ -447,9 +447,9 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
rank = judgeRank(yieldOrder);
}
String rankStr = rank == null ? null : String.valueOf(rank);
log.info("工艺传参零件号:{},{},{}",partCode,roamNo,rankStr);
log.info("工艺传参零件号:{},{},{}", partCode, roamNo, rankStr);
PartCraftVO craftVO = dsPartService.selectPartCraft(yieldOrder, partCode, roamNo, rankStr, null);
log.info("工艺返回:{}",craftVO != null);
log.info("工艺返回:{}", craftVO != null);
if (ObjectUtil.isEmpty(craftVO) || PartCraftStatusEnum.SUCCESS.getCode() != craftVO.getCode()) {
String errMsg = "工艺匹配失败,原因:" + PartCraftStatusEnum.getMsg(craftVO.getCode());
@ -489,7 +489,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
yieldOrder.setTsdNum(part.getTsdNum());
yieldOrder.setTjtNum(part.getTjtNum());
DsPartVersionEntity partVersionEntity = partVersionService.selectByPartId(part.getId());
if(null != partVersionEntity){
if (null != partVersionEntity) {
yieldOrder.setPartVersion(partVersionEntity.getPartVersion());
}
@ -518,7 +518,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
yieldOrderCraftList.add(yieldOrderCraft);
}
boolean saveBatch = yieldOrderCraftService.saveBatch(yieldOrderCraftList);
log.info("添加数据返回结果:{}",saveBatch);
log.info("添加数据返回结果:{}", saveBatch);
}
//镀层物料需求
/*if(YieldOrderEnum.YIELD_TYPE_1.getCode() == yieldOrder.getYieldType()){
@ -530,13 +530,13 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// 生成子件订单
createSubOrder(yieldOrder);
//部件生产订单获取石墨模生成烧结磨具计划,玻璃饼订单获取压饼模生成烧结磨具计划
if(YieldOrderEnum.YIELD_TYPE_2.getCode() == yieldOrder.getYieldType()){
List<DsPartEntity> subPartList = dsPartService.getPartSubList(yieldOrder.getPartCode(),yieldOrder.getPartVersion());
if(CollectionUtils.isNotEmpty(subPartList)){
for(DsPartEntity subPart : subPartList){
if(DsPartConstant.SIN_TER_TYPE_SMM == subPart.getSinTerType() && subPart.getQuota() != 0){
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getToolCode,subPart.getPartCode()).eq(MoldDemand::getMafStatus,MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if(moldDemand == null){
if (YieldOrderEnum.YIELD_TYPE_2.getCode() == yieldOrder.getYieldType()) {
List<DsPartEntity> subPartList = dsPartService.getPartSubList(yieldOrder.getPartCode(), yieldOrder.getPartVersion());
if (CollectionUtils.isNotEmpty(subPartList)) {
for (DsPartEntity subPart : subPartList) {
if (DsPartConstant.SIN_TER_TYPE_SMM == subPart.getSinTerType() && subPart.getQuota() != 0) {
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getToolCode, subPart.getPartCode()).eq(MoldDemand::getMafStatus, MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if (moldDemand == null) {
moldDemand = new MoldDemand();
moldDemand.setMoCode(null);
moldDemand.setPartCode(yieldOrder.getPartCode());
@ -553,7 +553,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
moldDemand.setMdCode(generateMdCode());
moldDemand.setIsDeleted(0);
moldDemandMapper.insert(moldDemand);
}else{
} else {
moldDemand.setDemandNum(moldDemand.getDemandNum() + subPart.getQuota() * yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString()));
moldDemandMapper.updateById(moldDemand);
@ -565,12 +565,12 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
}
}else if(YieldOrderEnum.YIELD_TYPE_3.getCode() == yieldOrder.getYieldType()){
List<DsProcessMoldToolEntity> processMoldToolList = dsPartService.getClassCakeWork(yieldOrder.getPartCode(),yieldOrder.getRoamNo(),yieldOrder.getPartVersion());
if(CollectionUtils.isNotEmpty(processMoldToolList)){
} else if (YieldOrderEnum.YIELD_TYPE_3.getCode() == yieldOrder.getYieldType()) {
List<DsProcessMoldToolEntity> processMoldToolList = dsPartService.getClassCakeWork(yieldOrder.getPartCode(), yieldOrder.getRoamNo(), yieldOrder.getPartVersion());
if (CollectionUtils.isNotEmpty(processMoldToolList)) {
for (DsProcessMoldToolEntity dsProcessMoldToolEntity : processMoldToolList) {
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getToolCode,dsProcessMoldToolEntity.getMoldCode()).eq(MoldDemand::getMafStatus,MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if(moldDemand == null){
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getToolCode, dsProcessMoldToolEntity.getMoldCode()).eq(MoldDemand::getMafStatus, MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if (moldDemand == null) {
moldDemand = new MoldDemand();
moldDemand.setMoCode(null);
moldDemand.setPartCode(yieldOrder.getPartCode());
@ -587,7 +587,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
moldDemand.setMdCode(generateMdCode());
moldDemand.setIsDeleted(0);
moldDemandMapper.insert(moldDemand);
}else{
} else {
moldDemand.setDemandNum(moldDemand.getDemandNum() + yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString()));
moldDemandMapper.updateById(moldDemand);
@ -596,12 +596,12 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
this.updateById(yieldOrder);
}
}
}else if(YieldOrderEnum.YIELD_TYPE_6.getCode() == yieldOrder.getYieldType()){
List<DsPartEntity> subPartList = dsPartService.getPartSubList(yieldOrder.getPartCode(),yieldOrder.getPartVersion());
if(CollectionUtils.isNotEmpty(subPartList)){
for(DsPartEntity subPart : subPartList){
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getToolCode,subPart.getPartCode()).eq(MoldDemand::getMafStatus,MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if(moldDemand == null){
} else if (YieldOrderEnum.YIELD_TYPE_6.getCode() == yieldOrder.getYieldType()) {
List<DsPartEntity> subPartList = dsPartService.getPartSubList(yieldOrder.getPartCode(), yieldOrder.getPartVersion());
if (CollectionUtils.isNotEmpty(subPartList)) {
for (DsPartEntity subPart : subPartList) {
MoldDemand moldDemand = moldDemandMapper.selectOne(Wrappers.<MoldDemand>lambdaQuery().eq(MoldDemand::getToolCode, subPart.getPartCode()).eq(MoldDemand::getMafStatus, MoldDemandEnum.MAF_STATUS_CREATE.getCode()));
if (moldDemand == null) {
moldDemand = new MoldDemand();
moldDemand.setMoCode(null);
moldDemand.setPartCode(yieldOrder.getPartCode());
@ -617,7 +617,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
moldDemand.setMdCode(generateMdCode());
moldDemand.setIsDeleted(0);
moldDemandMapper.insert(moldDemand);
}else{
} else {
moldDemand.setDemandNum(moldDemand.getDemandNum() + subPart.getQuota() * yieldOrder.getYpQty());
moldDemand.setLinkOrderIds(moldDemand.getLinkOrderIds().concat(",").concat(yieldOrder.getId().toString()));
moldDemandMapper.updateById(moldDemand);
@ -637,6 +637,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
/**
* 生成模具单号
*
* @return 单号 202604280001
*/
@Override
@ -692,7 +693,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// yieldOrder.setReceiveTime(new Date());
// yieldOrder.setReceiveUser(AuthUtil.getUserId());
// yieldOrder.setReceiveStatus(YieldOrderEnum.RECEIVE_STATUS_YES.getCode());
if(yieldOrder.getYieldType() != YieldOrderEnum.YIELD_TYPE_2.getCode()){
if (yieldOrder.getYieldType() != YieldOrderEnum.YIELD_TYPE_2.getCode()) {
yieldOrder.setStatus(YieldOrderEnum.STATUS_APS.getCode());
}
this.updateById(yieldOrder);
@ -719,11 +720,11 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// subList.addAll(this.checkSub(yieldOrder.getPartCode(), DsPartConstant.SIN_TER_TYPE_CZ, "插针"));
DsPartVersionEntity partVersion = partVersionService.getOne(Wrappers.<DsPartVersionEntity>lambdaQuery()
.eq(DsPartVersionEntity::getPartCode,yieldOrder.getPartCode())
.eq(DsPartVersionEntity::getPartVersion,yieldOrder.getPartVersion()));
List<DsPartRelationEntity> partRelationList = partRelationService.list(Wrappers.<DsPartRelationEntity>lambdaQuery().eq(DsPartRelationEntity::getPartId,partVersion.getPartId()));
.eq(DsPartVersionEntity::getPartCode, yieldOrder.getPartCode())
.eq(DsPartVersionEntity::getPartVersion, yieldOrder.getPartVersion()));
List<DsPartRelationEntity> partRelationList = partRelationService.list(Wrappers.<DsPartRelationEntity>lambdaQuery().eq(DsPartRelationEntity::getPartId, partVersion.getPartId()));
List<Long> childPartIdList = partRelationList.stream().map(DsPartRelationEntity::getChildPartId).collect(Collectors.toList());
List<DsPartEntity> subList = dsPartService.list(Wrappers.<DsPartEntity>lambdaQuery().in(BaseEntity::getId,childPartIdList));
List<DsPartEntity> subList = dsPartService.list(Wrappers.<DsPartEntity>lambdaQuery().in(BaseEntity::getId, childPartIdList));
if (subList.size() == 0) {
throw new BusinessException("未找到烧结前处理子件信息,请联系工艺编制!");
}
@ -798,7 +799,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// 先根据流程卡号验证订单是否重复,如果重复则不保存
List<YieldOrder> orderList = baseMapper.selectList(Wrappers.lambdaQuery(YieldOrder.class).eq(YieldOrder::getCardNo, yieldOrder.getCardNo()));
if(orderList.size() == 0) {
if (orderList.size() == 0) {
this.save(yieldOrder);
} else {
yieldOrder.setId(orderList.get(0).getId());
@ -867,22 +868,22 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// 构建生产订单信息并保存
JSONObject yieldJson = jsonItem.getJSONObject("order");
YieldOrder yieldOrder = JSON.parseObject(JSON.toJSONString(yieldJson), YieldOrder.class);
if(yieldOrder.getYieldType() == 1){
if (yieldOrder.getYieldType() == 1) {
yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_1.getCode());
}
if(yieldOrder.getYieldType() == 2){
if (yieldOrder.getYieldType() == 2) {
yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_2.getCode());
}
if(yieldOrder.getYieldType() == 3){
if (yieldOrder.getYieldType() == 3) {
yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_3.getCode());
}
if(yieldOrder.getYieldType() == 4){
if (yieldOrder.getYieldType() == 4) {
yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_4.getCode());
}
if(yieldOrder.getYieldType() == 5){
if (yieldOrder.getYieldType() == 5) {
yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_5.getCode());
}
if(yieldOrder.getYieldType() == 6){
if (yieldOrder.getYieldType() == 6) {
yieldOrder.setYieldType(YieldOrderEnum.YIELD_TYPE_6.getCode());
}
yieldOrder.setYpCode(yieldJson.getString("poCode"));
@ -1037,6 +1038,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
@Override
@Transactional(rollbackFor = Exception.class)
public boolean sendKit(Long yoId) {
YieldOrder yieldOrder = this.getById(yoId);
if (yieldOrder == null) {
@ -1045,7 +1047,12 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
yieldOrder.setSjKitPreparation(2L);
yieldOrder.setKitPreparationMan(AuthUtil.getUserId());
yieldOrder.setKitPreparationTime(new Date());
return this.updateById(yieldOrder);
boolean b = this.updateById(yieldOrder);
if (b) {
// 订单接收
this.confirm(yieldOrder.getCardNo(), "0");
}
return b;
}
@Override
@ -1082,7 +1089,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
public Long getWcId(Long orderId) {
// return baseMapper.getWcId(orderId);
List<YieldOrder> list = list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getId, orderId));
if (list!=null&&!list.isEmpty()) {
if (list != null && !list.isEmpty()) {
return list.get(0).getWorkCenterId();
}
return null;
@ -1116,10 +1123,10 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
return R.fail("路线卡号不能为空");
}
List<YieldOrder> list = list(new LambdaQueryWrapper<YieldOrder>().eq(YieldOrder::getCardNo, cardNo));
if (list==null||list.size()==0) {
if (list == null || list.size() == 0) {
// return R.fail("路线卡号未查询到详情");
List<PrYieldOrder> yieldOrderList = yieldOrderService.list(new LambdaQueryWrapper<PrYieldOrder>().eq(PrYieldOrder::getCardNo, cardNo));
if (yieldOrderList==null||yieldOrderList.size()==0) {
if (yieldOrderList == null || yieldOrderList.size() == 0) {
return R.fail("路线卡号未查询到详情");
}
return R.data(yieldOrderList.get(0));
@ -1195,20 +1202,20 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
public List<String> getToolByPartCode(String partCode) {
List<String> list = new ArrayList<>();
DsPartEntity part = dsPartService.selectDsPartByPatCodeAndVersion(partCode, null);
if(null == part){
if (null == part) {
return list;
}
if("1".equals(part.getIsSintering()) && "0".equals(part.getIsGlassCake())){
List<DsPartEntity> subPartList = dsPartService.getPartSubList(partCode,null);
if ("1".equals(part.getIsSintering()) && "0".equals(part.getIsGlassCake())) {
List<DsPartEntity> subPartList = dsPartService.getPartSubList(partCode, null);
list = subPartList.stream().filter(item -> DsPartConstant.SIN_TER_TYPE_SMM.equals(item.getSinTerType())).map(DsPartEntity::getPartCode).collect(Collectors.toList());
}
if(DsPartConstant.SIN_TER_TYPE_SMM.equals(part.getSinTerType())){
List<DsPartEntity> subPartList = dsPartService.getPartSubList(partCode,null);
if (DsPartConstant.SIN_TER_TYPE_SMM.equals(part.getSinTerType())) {
List<DsPartEntity> subPartList = dsPartService.getPartSubList(partCode, null);
list = subPartList.stream().map(DsPartEntity::getPartCode).collect(Collectors.toList());
}
if(DsPartConstant.SIN_TER_TYPE_BLB.equals(part.getSinTerType())){
List<DsProcessMoldToolEntity> processMoldToolList = dsPartService.getClassCakeWork(partCode,null,null);
if(CollectionUtils.isNotEmpty(processMoldToolList)){
if (DsPartConstant.SIN_TER_TYPE_BLB.equals(part.getSinTerType())) {
List<DsProcessMoldToolEntity> processMoldToolList = dsPartService.getClassCakeWork(partCode, null, null);
if (CollectionUtils.isNotEmpty(processMoldToolList)) {
list = processMoldToolList.stream().map(DsProcessMoldToolEntity::getMoldCode).collect(Collectors.toList());
}
}
@ -1225,21 +1232,21 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
DateUtil.toDate(startOfDay),
DateUtil.toDate(endOfDay)).isNull(YieldOrder::getGoodsDemand);
List<YieldOrder> list = this.list(wrapper);
log.info("需要计算镀层物料需求的物料数量是:"+list.size());
if(CollectionUtils.isNotEmpty(list)){
for(YieldOrder yieldOrder : list){
log.info("需要计算镀层物料需求的物料数量是:" + list.size());
if (CollectionUtils.isNotEmpty(list)) {
for (YieldOrder yieldOrder : list) {
plateGoodsRecordService.calculateCoatingMaterial(yieldOrder);
}
}
}
@Override
public List<YieldOrderCraft> confirm(String cardNo,String mark) {
YieldOrder yieldOrder = this.getOne(Wrappers.<YieldOrder>lambdaQuery().eq(YieldOrder::getCardNo,cardNo));
if(null == yieldOrder){
throw new ServiceException("未找到订单("+cardNo+")!");
public List<YieldOrderCraft> confirm(String cardNo, String mark) {
YieldOrder yieldOrder = this.getOne(Wrappers.<YieldOrder>lambdaQuery().eq(YieldOrder::getCardNo, cardNo));
if (null == yieldOrder) {
throw new ServiceException("未找到订单(" + cardNo + ")!");
}
if("1".equals(mark)){
if ("1".equals(mark)) {
yieldOrder.setSiteWork(true);
}
@ -1250,21 +1257,21 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
this.updateById(yieldOrder);
// 校验合规性校验是否通过
if(!yieldOrder.getValidationResult().equals(YieldOrderEnum.VALIDATION_RESULT_PASS.getCode())){
if (!yieldOrder.getValidationResult().equals(YieldOrderEnum.VALIDATION_RESULT_PASS.getCode())) {
throw new ServiceException("订单接收成功,校验异常请及时处理");
}
boolean result = this.verifyYieldOrderResource(yieldOrder);
if(result){
List<YieldOrderCraft> list = yieldOrderCraftService.list(Wrappers.<YieldOrderCraft>lambdaQuery().eq(YieldOrderCraft::getYoId,yieldOrder.getId()).orderByAsc(YieldOrderCraft::getProcessNo));
if (result) {
List<YieldOrderCraft> list = yieldOrderCraftService.list(Wrappers.<YieldOrderCraft>lambdaQuery().eq(YieldOrderCraft::getYoId, yieldOrder.getId()).orderByAsc(YieldOrderCraft::getProcessNo));
list.stream().forEach(craft -> {
if(craft.getWorkCenterId() != null){
if (craft.getWorkCenterId() != null) {
WorkCenter workCenter = workCenterService.getById(craft.getWorkCenterId());
craft.setWorkCenterName(workCenter.getWcName());
}
});
return list;
}else {
} else {
throw new ServiceException("订单接收成功,分派异常请及时处理");
}
}
@ -1302,7 +1309,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
continue;
}
DsPartEntity dsPart = dsPartService.selectDsPartByPatCodeAndVersion(dsPartSub.getPartCode(),null);
DsPartEntity dsPart = dsPartService.selectDsPartByPatCodeAndVersion(dsPartSub.getPartCode(), null);
//验证子件是否存在对应零件,不存在则提示异常。
if (dsPart == null) {
String errMsg = MessageFormat.format("子件{}未编制!", dsPartSub.getPartCode());
@ -1313,12 +1320,12 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
yieldType = YieldOrderEnum.YIELD_TYPE_4.getCode();
} else if (DsPartConstant.SIN_TER_TYPE_CZ.equals(dsPartSub.getSinTerType())) {
yieldType = YieldOrderEnum.YIELD_TYPE_5.getCode();
}else if (DsPartConstant.SIN_TER_TYPE_BLB.equals(dsPartSub.getSinTerType())) {
} else if (DsPartConstant.SIN_TER_TYPE_BLB.equals(dsPartSub.getSinTerType())) {
yieldType = YieldOrderEnum.YIELD_TYPE_3.getCode();
} else if (DsPartConstant.SIN_TER_TYPE_SMM.equals(dsPartSub.getSinTerType())) {
yieldType = YieldOrderEnum.YIELD_TYPE_6.getCode();
}
if(null == yieldType){
if (null == yieldType) {
//如果子件类型为空 或者是其他 不生成子件订单 直接跳过
continue;
}
@ -1389,12 +1396,12 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
//烧结类型生产订单【玻璃饼下发状态】默认状态为【未下发】,
// 生成子件玻璃饼订单后变更为【已下发】;
// 其他类型生产订单的【玻璃饼下发状态】显示空
if(yieldType.equals(YieldOrderEnum.YIELD_TYPE_3.getCode())){
if (yieldType.equals(YieldOrderEnum.YIELD_TYPE_3.getCode())) {
yieldOrder.setGlassBiscuitStatus(YieldOrder.GLASS_BISCUIT_ISSUED);
this.updateById(yieldOrder);
}
}
if(CollectionUtils.isNotEmpty(idList)){
if (CollectionUtils.isNotEmpty(idList)) {
//生成的烧结子订单也需要进行合规性校验,另起线程异步执行
CompletableFuture.runAsync(() -> {
this.dataVerify(idList);
@ -1441,14 +1448,14 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
}
}
private int getMaxCodeByPattern(String codePattern, int len){
private int getMaxCodeByPattern(String codePattern, int len) {
// 自增值
int num = 0;
LambdaQueryWrapper<YieldOrder> wrapper = Wrappers.lambdaQuery(YieldOrder.class)
.likeRight(YieldOrder::getBatchNo, codePattern)
.orderBy(true, false, YieldOrder::getYoCode);
List<YieldOrder> yieldOrderList = baseMapper.selectList(wrapper);
if(!CollectionUtils.isEmpty(yieldOrderList)){
if (!CollectionUtils.isEmpty(yieldOrderList)) {
YieldOrder yieldOrder = yieldOrderList.get(0);
if (yieldOrder != null) {
num = Integer.parseInt(yieldOrder.getBatchNo().substring(codePattern.length(), codePattern.length() + len));
@ -1534,8 +1541,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// }
if (Func.isNotEmpty(yieldOrder.getProductIdent())) {
//根据订单的质量等级去质量等级表查询是否局部镀
QualityGradeEntity qualityGrade = qualityGradeService.getOne(Wrappers.<QualityGradeEntity>lambdaQuery().eq(QualityGradeEntity::getQualityGrade,yieldOrder.getProductIdent()));
if(qualityGrade != null && "1".equals(qualityGrade.getIsLocal())){
QualityGradeEntity qualityGrade = qualityGradeService.getOne(Wrappers.<QualityGradeEntity>lambdaQuery().eq(QualityGradeEntity::getQualityGrade, yieldOrder.getProductIdent()));
if (qualityGrade != null && "1".equals(qualityGrade.getIsLocal())) {
// 若局部镀质量等级存在, 返回一级工艺
return DsCraftEnum.RANK_ONE.getCode();
}
@ -1581,8 +1588,8 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len);
}
public boolean createBlbYieldOrder(String partCode,Double qty,String memo){
DsPartEntity dsPart = dsPartService.selectDsPartByPatCodeAndVersion(partCode,null);
public boolean createBlbYieldOrder(String partCode, Double qty, String memo) {
DsPartEntity dsPart = dsPartService.selectDsPartByPatCodeAndVersion(partCode, null);
String roamNo = yieldOrderClient.getChildRoamNoByPartCode(partCode);
YieldOrder order = new YieldOrder();
order.setId(null);
@ -1633,7 +1640,7 @@ public class YieldOrderServiceImpl extends BaseServiceImpl<YieldOrderMapper, Yie
// 下个编码
if (codeType == 0) {
codePattern = "WO-B" + DateUtil.today().substring(2);
}else if(codeType == 2){
} else if (codeType == 2) {
codePattern = "Y" + DateUtil.today().substring(2);
}
return codePattern + StringPrefixUtils.prefix(String.valueOf(num), "0", len);

@ -73,6 +73,8 @@ import org.springblade.system.cache.UserCache;
import org.springblade.system.feign.IDictClient;
import org.springblade.system.pojo.entity.Dict;
import org.springblade.system.pojo.entity.User;
import org.springblade.wms.feign.StGlassCakeOutClient;
import org.springblade.wms.pojo.dto.StGlassCakeOutDTO;
import org.springframework.beans.BeanUtils;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
@ -105,6 +107,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private final IWorkPlanService workPlanService;
private final StGlassCakeOutClient stGlassCakeOutClient;
// 关键:用set方法注入
// @Autowired
@ -1993,6 +1996,18 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
workOrder.setOem("1");
workOrder.setOemOut("0");
this.updateById(workOrder);
try {
YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
// 玻璃封接退火
if (yieldOrder.getYieldType() == YieldOrderEnum.YIELD_TYPE_4.getCode() && frontWorkPlan != null && 63 == frontWorkPlan.getPpsId()) {
StGlassCakeOutDTO stGlassCakeOutDTO = new StGlassCakeOutDTO();
stGlassCakeOutDTO.setYoCode(yieldOrder.getYoCode());
stGlassCakeOutClient.callGeneratePreOutOrder(stGlassCakeOutDTO);
}
} catch (Exception e) {
log.error("调用玻璃饼出库接口失败", e);
}
}
@Override
@ -2623,14 +2638,14 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
@Override
public Boolean isTransferTest(Long woId) {
WorkOrder workOrder = this.getById(woId);
if(workOrder == null){
if (workOrder == null) {
return false;
}
YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
if(yieldOrder == null){
if (yieldOrder == null) {
return false;
}
List<DsProcessProjectVO> dsProcessProjectEntities = dsPartService.selectDsProcessProjectByCraftId(yieldOrder.getCraftId(),null);
List<DsProcessProjectVO> dsProcessProjectEntities = dsPartService.selectDsProcessProjectByCraftId(yieldOrder.getCraftId(), null);
if (dsProcessProjectEntities == null || dsProcessProjectEntities.isEmpty()) {
return false;
}
@ -2654,7 +2669,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
// 转换查询结果
List<Map<String, String>> result = new ArrayList<>();
if (mapList != null && !mapList.isEmpty()) {
for (Map<String,String> map : mapList) {
for (Map<String, String> map : mapList) {
Map<String, String> item = new HashMap<>();
item.put("value", map.get("KEY") != null ? map.get("KEY") : "");
item.put("label", map.get("VALUE") != null ? map.get("VALUE") : "");
@ -2665,24 +2680,24 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
@Override
public Map<String,Object> queryAllocationMess(AllocationMessPageDTO dto) {
public Map<String, Object> queryAllocationMess(AllocationMessPageDTO dto) {
List<AllocationMessVO> allocationMessList = erpDataLogisticsClient.queryAllocationMess(dto).getData();
int totalAllocationMessNum = erpDataLogisticsClient.queryAllocationMessNum(dto).getData();
Map<String,Object> result = new HashMap<>(3);
result.put("current",dto.getCurrent());
result.put("records",allocationMessList);
result.put("total",totalAllocationMessNum);
Map<String, Object> result = new HashMap<>(3);
result.put("current", dto.getCurrent());
result.put("records", allocationMessList);
result.put("total", totalAllocationMessNum);
return result;
}
@Override
public Map<String,Object> queryAllocationStatistics(AllocationMessPageDTO dto) {
public Map<String, Object> queryAllocationStatistics(AllocationMessPageDTO dto) {
List<AllocationMessVO> allocationMessList = erpDataLogisticsClient.queryAllocationStatistics(dto).getData();
int totalAllocationMessNum = erpDataLogisticsClient.queryAllocationStatisticsNum(dto).getData();
Map<String,Object> result = new HashMap<>(3);
result.put("current",dto.getCurrent());
result.put("records",allocationMessList);
result.put("total",totalAllocationMessNum);
Map<String, Object> result = new HashMap<>(3);
result.put("current", dto.getCurrent());
result.put("records", allocationMessList);
result.put("total", totalAllocationMessNum);
return result;
}
@ -2726,7 +2741,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
WorkOrder workOrder = this.getById(woId);
String cardNo = workOrder.getCardNo();
// 处理每个测试项
processTestItems(testList, batchNo, quantity, woCode, remark, partCode, partName, productType, pptCode, workPlan, user,cardNo);
processTestItems(testList, batchNo, quantity, woCode, remark, partCode, partName, productType, pptCode, workPlan, user, cardNo);
}
private String generatePptCode() {
@ -2755,14 +2770,14 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private WorkPlan findRelevantWorkPlan(Long woId) {
WorkOrder workOrder = this.getById(woId);
YieldOrder yieldOrder = yieldOrderService.getById(workOrder.getYoId());
List<DsProcessProjectVO> dsProcessProjectEntities = dsPartService.selectDsProcessProjectByCraftId(yieldOrder.getCraftId(),null);
List<DsProcessProjectVO> dsProcessProjectEntities = dsPartService.selectDsProcessProjectByCraftId(yieldOrder.getCraftId(), null);
WorkPlan prWorkPlan = null;
if (dsProcessProjectEntities != null && !dsProcessProjectEntities.isEmpty()) {
for (DsProcessProjectVO dsProcessProjectEntity : dsProcessProjectEntities) {
if ("承压检测".equals(dsProcessProjectEntity.getProjectName())) {
prWorkPlan = workPlanService.getOne(new LambdaQueryWrapper<WorkPlan>()
.eq(WorkPlan::getWoId, woId)
.eq(WorkPlan::getOrders,dsProcessProjectEntity.getProcessNo()));
.eq(WorkPlan::getOrders, dsProcessProjectEntity.getProcessNo()));
}
}
}
@ -2771,7 +2786,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
private void processTestItems(JSONArray testList, String batchNo, Integer quantity, String woCode, String remark,
String partCode, String partName, String productType, String pptCode,
WorkPlan workPlan, BladeUser user,String cardNo) throws Exception {
WorkPlan workPlan, BladeUser user, String cardNo) throws Exception {
for (int i = 0; i < testList.size(); i++) {
JSONObject object = testList.getObject(i, JSONObject.class);
String value = object.getString("value");
@ -2782,7 +2797,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
);
if (response != null) {
saveTestRecord(workPlan, user, value, label, pptCode, response, i + 1,cardNo);
saveTestRecord(workPlan, user, value, label, pptCode, response, i + 1, cardNo);
} else {
throw new BusinessException("LIMS系统接口调用失败,请联系相关负责人处理。");
}
@ -2790,7 +2805,7 @@ public class WorkOrderServiceImpl extends BaseServiceImpl<WorkOrderMapper, WorkO
}
private void saveTestRecord(WorkPlan workPlan, BladeUser user, String testKey, String testName,
String pptCode, JSONObject response, int sequence,String cardNo) {
String pptCode, JSONObject response, int sequence, String cardNo) {
PlanTest prPlanTest = new PlanTest();
prPlanTest.setWpId(workPlan.getId());
prPlanTest.setTestUserId(user.getUserId());

@ -610,14 +610,19 @@ public class ReviewSheetServiceImpl extends EnBaseServiceImpl<ReviewSheetMapper,
try {
responseEntity = httpClientTemplate.postForEntity(newErpUrl + "/api/mms/qms/qmsrepairapply/qmsRepairApplyRest/saveQmsRepairApply/v1", entity, JSONObject.class);
JSONObject result = responseEntity.getBody();
if (result == null || !result.getString("retCode").equals("200")) {
throw new ServiceException("审理单接口调用失败,原因:" + result.getString("errorDesc"));
}
responseBody = result.getJSONObject("responseBody");
if (responseBody == null) {
throw new ServiceException("审理单,接口返回值null");
}
} catch (Exception e) {
throw new ServiceException("审理单,接口返回值null");
throw new ServiceException("审理单调用异常,原因:" + e.getMessage());
}
rs.setErpId(responseBody.getString("trialId"));
rs.setRsCode(responseBody.getString("trialNo"));
this.updateById(rs);
}
return R.success("成功");
}

Loading…
Cancel
Save