修改镀层物料

liweidong
liweidong-hj 3 weeks ago
parent 85cc5ce74e
commit 5cfe04402a
  1. 220
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/oldmes/PrWorkOrder.java
  2. 66
      blade-service-api/blade-desk-api/src/main/java/org/springblade/desk/order/pojo/vo/oldmes/PrWorkPlan.java
  3. 27
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.java
  4. 18
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/mapper/YieldOrderMapper.xml
  5. 40
      blade-service/blade-desk/src/main/java/org/springblade/desk/order/service/impl/PlateGoodsRecordServiceImpl.java

@ -0,0 +1,220 @@
package org.springblade.desk.order.pojo.vo.oldmes;
import com.alibaba.fastjson.annotation.JSONField;
import lombok.Data;
import java.math.BigDecimal;
import java.util.Date;
import java.util.HashMap;
import java.util.Map;
/**
* @Description 车间订单
* @Author lyj
* @Date 2022-09-05
*/
@Data
public class PrWorkOrder {
/**
* 未下达
*/
public static Short RUN_STATUS_NORMAL = 1;
/**
* 已下达
*/
public static Short RUN_STATUS_ISSUED = 2;
/**
* 加工中
*/
public static Short RUN_STATUS_RECEIVE = 3;
/**
* 检验中
*/
public static Short RUN_STATUS_CHECK = 4;
/**
* 工艺变更
*/
public static Short RUN_STATUS_CRAFT_CHANGE = 5;
/**
* 审理中
*/
public static Short RUN_STATUS_HEAR = 13;
/**
* 已完工
*/
public static Short RUN_STATUS_COMPLETED = 15;
/**
* 已交接
*/
public static Short RUN_STATUS_HANDOVER = 17;
/**
* 返工
*/
public static Short RUN_STATUS_REWORK = 19;
/**
* 报废
*/
public static Short RUN_STATUS_SCRAP = 20;
/**
* 已关闭
*/
public static Short RUN_STATUS_VOIDED = 21;
/**
* 正常
*/
public static Short PRIORITY_NORMAL = 1;
/**
* 项目要求日期急件
*/
public static Short PRIORITY_PRO_IMP = 2;
/**
* 合同急件
*/
public static Short PRIORITY_PACT_IMP = 3;
/**
* 会议绩效急件
*/
public static Short PRIORITY_PERF_IMP = 4;
/**
* 调度标注急件
*/
public static Short PRIORITY_SCH_IMP = 5;
/**
* 1:正常
*/
public static Short APPROVAL_STATUS_NORMAL = 1;
/**
* 2:审批中
*/
public static Short APPROVAL_STATUS_UNDER = 2;
/**
* 3:不通过
*/
public static Short APPROVAL_STATUS_FAIL = 3;
/**
* 4:通过
*/
public static Short APPROVAL_STATUS_VIA = 4;
/**
* 整单外协
*/
public static Short OEM_TYPE_WHOLE = 1;
/**
* 工序外协
*/
public static Short OEM_TYPE_SINGLE = 2;
/**
* 未领取
*/
public static Short PICKING_STATUS_NOT = 0;
/**
* 已领取
*/
public static Short PICKING_STATUS_OK = 1;
public static Map<Short, String> runStatusMap = new HashMap<>(11);
public static Map<Short, String> priorityMap = new HashMap<Short, String>(5);
public static Map<Short, String> approvalStatusMap = new HashMap<Short, String>(4);
public static Map<Short, String> pickingStatusMap = new HashMap<Short, String>(2);
static {
runStatusMap.put(RUN_STATUS_NORMAL, "未下达");
runStatusMap.put(RUN_STATUS_ISSUED, "已下达");
runStatusMap.put(RUN_STATUS_RECEIVE, "加工中");
runStatusMap.put(RUN_STATUS_CHECK, "检验中");
runStatusMap.put(RUN_STATUS_CRAFT_CHANGE, "工艺变更");
runStatusMap.put(RUN_STATUS_HEAR, "审理中");
runStatusMap.put(RUN_STATUS_COMPLETED, "已完工");
runStatusMap.put(RUN_STATUS_HANDOVER, "已交接");
runStatusMap.put(RUN_STATUS_REWORK, "已返工");
runStatusMap.put(RUN_STATUS_SCRAP, "已报废");
runStatusMap.put(RUN_STATUS_VOIDED, "已关闭");
priorityMap.put(PRIORITY_NORMAL, "正常");
priorityMap.put(PRIORITY_PRO_IMP, "项目要求日期急件");
priorityMap.put(PRIORITY_PACT_IMP, "合同急件");
priorityMap.put(PRIORITY_PERF_IMP, "绩效零件");
priorityMap.put(PRIORITY_SCH_IMP, "调度标注急件");
approvalStatusMap.put(APPROVAL_STATUS_NORMAL, "正常");
approvalStatusMap.put(APPROVAL_STATUS_UNDER, "审批中");
approvalStatusMap.put(APPROVAL_STATUS_FAIL, "审批不通过");
approvalStatusMap.put(APPROVAL_STATUS_VIA, "审批通过");
pickingStatusMap.put(PICKING_STATUS_NOT, "未领取");
pickingStatusMap.put(PICKING_STATUS_OK, "已领取");
}
private Long woId;
private Long yoId;
private String cardNo;
private String batchNo;
private String woCode;
private Double makeQty;
private Date planEndDate;
private Long wpId;
private Long tsId;
private Long ocId;
private Double inventoryQty;
private Short runStatus;
private Short pickingStatus;
private Boolean oem;
private Boolean oemOut;
private Short priority;
private Long worId;
private Short approvalStatus;
private Date createTime;
private Double scrapQty;
private Integer lossQty;
private Integer testQty;
private Short oemType;
private Long planner;
private Long dispatcher;
private Date sendDownTime;
private String reworkCode;
private String qcReworkCode;
private String reworkMemo;
private Integer reworkNo;
private Boolean printFlag;
private Long printMan;
private Date printTime;
private String printCode;
private Date putStoreTime;
private Long closeMan;
private Date closeTime;
private Date handoverTime;
private Double plateSingleQuota;
private Date demandDate;
private Boolean pushFlag;
private String plateGoodsCode;
private Long pgrId;
private Boolean quotaExceptional;
private String mesCardNo;
private Date receptionTime;
private Date outTime;
private Boolean collaborate;
private Date lastInstoreTime;
private Integer meetCycle;
private String memo;
private Short schedStatus;
private Short readStatus;
private Short oldRunStatus;
private Boolean reInStore;
private String tools;
private String recDept;
private String smBatch;
// private List<com.videasoft.product.model.PrWorkOrder> subList;
private Integer producycle;
private String makeUnit;
private String moCode;
private String moLocal;
private String ybCode;
private String ybLocal;
private Boolean hrTypeBool;
private String jcName;
private String subRunStatus;
private String rsCode;
}

@ -0,0 +1,66 @@
package org.springblade.desk.order.pojo.vo.oldmes;
import lombok.Data;
import java.util.Date;
/**
* @author: liweidong
* @create: 2026-05-12
*/
@Data
public class PrWorkPlan {
private Long pid;
private Long rpId;
private Long wpId;
private Long woId;
private Long ppsId;
private String orders;
private String makeMemo;
private Double hourQuota;
private Date startTime;
private Date endTime;
private Date factStartTime;
private Date factEndTime;
private Long makeTeam;
private Long subsidiaryTeam;
private Boolean oem;
private Long ocId;
private Boolean cruxProcess;
private Long frontWpId;
private Long nextWpId;
private Short status;
private Integer testQty;
private Integer lossQty;
private Double qualifiedQty;
private Double scrapQty;
private Double unqualifiedQty;
private Double workQty;
private Short bindStatus;
private Long receiveMan;
private Double hours;
private Double wpMoney;
private Long caId;
private Short printType;
private Short subType;
private String papers;
private String referenceFile;
private Date createTime;
private String wxno;
private Double flagQty;
private String flagColourOne;
private String flagColourTwo;
private String flagInk;
private String flagMatter;
private Double beltQty;
private String beltColourOne;
private String beltColourTwo;
private String beltInk;
private String beltMatter;
private String gjCode;
private String fbCode;
private String deviceCode;
private String createMan;
private String rtnCode;
}

@ -6,6 +6,8 @@ import org.apache.ibatis.annotations.Param;
import org.springblade.desk.order.pojo.dto.YieldOrderDto;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.enums.YieldOrderEnum;
import org.springblade.desk.order.pojo.vo.oldmes.PrWorkOrder;
import org.springblade.desk.order.pojo.vo.oldmes.PrWorkPlan;
import java.util.List;
@ -44,4 +46,29 @@ public interface YieldOrderMapper extends BaseMapper<YieldOrder> {
Long getWcId(Long orderId);
YieldOrder getMaxByCodePattern(String codePattern);
/**
* 查询老mes车间订单
* @param cardNo
* @return
*/
PrWorkOrder selectOldMesPrWorkOrder(String cardNo);
/**
* 查询老mes车间计划
*
* @param woId
* @param makeTeam
* @return
*/
List<PrWorkPlan> selectOldMesPrWorkPlan( @Param("woId") Long woId,@Param("makeTeam") Long makeTeam );
/**
* 更新旧mes
* @param woId
* @param plateSingleQuota
* @return
*/
boolean updateOldMesPrWorkOrder(@Param("woId") Long woId, @Param("plateSingleQuota") double plateSingleQuota);
}

@ -16,7 +16,6 @@
yo.PLAN_DEPTCODE,yo.GLASS_BISCUIT_STATUS,yo.QUOTA1,yo.QUOTA2,yo.PLATE_THICKNESS1,yo.PLATE_THICKNESS2
</sql>
<select id = "selectPage" resultType = "org.springblade.desk.order.pojo.entity.YieldOrder">
SELECT <include refid="baseCommonFields" />,a.real_name as "receiveUserName"
FROM MES_YIELD_ORDER yo
@ -85,9 +84,12 @@
SELECT <include refid="baseCommonFields" />
FROM MES_YIELD_ORDER yo
LEFT JOIN MES_PLATE_GOODS_RECORD_DETAIL grd ON yo.id = grd.YO_ID
LEFT JOIN MES_WORK_ORDER wo on yo.ID = wo.YO_ID
LEFT JOIN BS_TEAM_SET ts on wo.ts_Id = ts.ID
WHERE yo.IS_DELETED = 0 AND grd.ID IS NULL
and wo.OEM = 0
<if test = "wcId != null and wcId != ''">
AND yo.WORK_CENTER_ID = #{wcId}
AND ts.WC_ID = #{wcId}
</if>
<if test = "plateGoodsCode != null and plateGoodsCode != ''">
AND yo.PLATE_GOODS_CODE = #{plateGoodsCode}
@ -137,4 +139,16 @@
)
WHERE ROWNUM = 1
</select>
<select id="selectOldMesPrWorkOrder" resultType="org.springblade.desk.order.pojo.vo.oldmes.PrWorkOrder">
select * from TOOL_MES.PR_WORK_ORDER where CARD_NO = #{cardNo}
</select>
<select id="selectOldMesPrWorkPlan" resultType="org.springblade.desk.order.pojo.vo.oldmes.PrWorkPlan">
select * from TOOL_MES.rb_pr_work_plan where WO_ID =#{woId} and make_team =#{makeTeam}
</select>
<update id="updateOldMesPrWorkOrder">
</update>
</mapper>

@ -35,6 +35,8 @@ import org.springblade.desk.order.pojo.entity.PlateGoodsRecordDetail;
import org.springblade.desk.order.pojo.entity.YieldOrder;
import org.springblade.desk.order.pojo.enums.PlateGoodsEnum;
import org.springblade.desk.order.pojo.enums.YieldOrderEnum;
import org.springblade.desk.order.pojo.vo.oldmes.PrWorkOrder;
import org.springblade.desk.order.pojo.vo.oldmes.PrWorkPlan;
import org.springblade.desk.order.service.IPlateGoodsRecordDetailService;
import org.springblade.desk.order.service.IPlateGoodsRecordService;
import org.springblade.scheduling.pojo.entity.CraftAbilityEntity;
@ -44,6 +46,7 @@ import org.springframework.stereotype.Service;
import org.springframework.util.CollectionUtils;
import java.math.BigDecimal;
import java.math.RoundingMode;
import java.util.ArrayList;
import java.util.List;
import java.util.Objects;
@ -386,6 +389,43 @@ public class PlateGoodsRecordServiceImpl extends BaseServiceImpl<PlateGoodsRecor
}
yieldOrder.setPlateGoodsCode(dsPart.getPlateGoodsCode());
yieldOrderMapper.updateById(yieldOrder);
// 将局部镀结果更新至老mes
PrWorkOrder prWorkOrder = yieldOrderMapper.selectOldMesPrWorkOrder(yieldOrder.getCardNo());
if (prWorkOrder == null) {
log.info("旧mes未查询到车间订单数据,cardNo:{}", yieldOrder.getCardNo());
return true;
}
// 查询车间作业计划并且是局部镀厚金班组
Long makeTeam = 404L; // 局部镀厚金班组
List<PrWorkPlan> workPlanList = yieldOrderMapper.selectOldMesPrWorkPlan(prWorkOrder.getWoId(), makeTeam);
if (CollectionUtils.isEmpty(workPlanList)) {
log.info("旧mes未查询到车间作业计划,woId:{}", prWorkOrder.getWoId());
return true;
}
// 校验除数不为0
if (ypQty == 0d) {
log.error("ypQty为空或为0,无法计算镀层单件定额,cardNo:{}", yieldOrder.getCardNo());
return false;
}
// 计算镀层单件定额(保留6位小数)
BigDecimal goodsDemand = yieldOrder.getGoodsDemand();
BigDecimal plateSingleQuotaDecimal = goodsDemand.divide(BigDecimal.valueOf(ypQty), 6, RoundingMode.HALF_UP);
double plateSingleQuota = plateSingleQuotaDecimal.doubleValue();
// 更新旧mes
boolean updateCount = yieldOrderMapper.updateOldMesPrWorkOrder(prWorkOrder.getWoId(), plateSingleQuota);
if (!updateCount) {
log.error("更新旧mes镀层单件定额失败,woId:{},plateSingleQuota:{}", prWorkOrder.getWoId(), plateSingleQuota);
return false;
}
log.info("更新旧mes镀层单件定额成功,woId:{},plateSingleQuota:{}", prWorkOrder.getWoId(), plateSingleQuota);
}else{
return true;
}

Loading…
Cancel
Save