Browse Source

2026-06-29

增加加工中心校验
master
fengyuan_yang 1 month ago
parent
commit
442152ad48
  1. 24
      src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java
  2. 42
      src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java
  3. 18
      src/main/resources/mapper/schedule/ScheduleMapper.xml
  4. 6
      src/main/resources/mapper/warehouse/LabelTransactionLogMapper.xml

24
src/main/java/com/gaotao/modules/schedule/mapper/ScheduleMapper.java

@ -148,6 +148,30 @@ public interface ScheduleMapper {
**/
ScheduleData getScheduleDataBySeqNo(String seqNo);
/**
* 校验停机代码是否属于当前加工中心且启用
*
* @param site 工厂
* @param downTimeCode 停机代码
* @param workCenterNo 加工中心
* @return 匹配数量
*/
Integer countEnabledDownTimeReasonByWorkCenter(@Param("site") String site,
@Param("downTimeCode") String downTimeCode,
@Param("workCenterNo") String workCenterNo);
/**
* 校验不良代码是否属于当前加工中心且启用
*
* @param site 工厂
* @param defectCode 不良代码
* @param workCenterNo 加工中心
* @return 匹配数量
*/
Integer countEnabledDefectCodeByWorkCenter(@Param("site") String site,
@Param("defectCode") String defectCode,
@Param("workCenterNo") String workCenterNo);
/**
* TODO 获取当前的上机卷信息
* @author LR

42
src/main/java/com/gaotao/modules/schedule/service/impl/ScheduleServiceImpl.java

@ -1166,6 +1166,42 @@ public class ScheduleServiceImpl implements ScheduleService {
procedureMapper.execProduceData("startTuning", params);
}
private String resolveScheduleWorkCenterNo(SearchScheduleData inData) {
String seqNo = inData.getSeqNo();
if (!StringUtils.hasText(seqNo)) {
throw new XJException("派工单号不能为空");
}
ScheduleData scheduleData = scheduleMapper.getScheduleDataBySeqNo(seqNo);
if (scheduleData == null) {
throw new XJException("未找到对应的派工单信息");
}
String workCenterNo = scheduleData.getWorkCenterNo();
if (!StringUtils.hasText(workCenterNo)) {
throw new XJException("当前派工单加工中心为空,不能执行当前操作");
}
return workCenterNo.trim();
}
private void validateDownTimeCodeWorkCenter(String site, String downTimeCode, String workCenterNo) {
if (!StringUtils.hasText(downTimeCode)) {
return;
}
Integer count = scheduleMapper.countEnabledDownTimeReasonByWorkCenter(site, downTimeCode.trim(), workCenterNo);
if (count == null || count <= 0) {
throw new XJException("停机代码不属于当前加工中心或未启用");
}
}
private void validateDefectCodeWorkCenter(String site, String defectCode, String workCenterNo) {
if (!StringUtils.hasText(defectCode)) {
return;
}
Integer count = scheduleMapper.countEnabledDefectCodeByWorkCenter(site, defectCode.trim(), workCenterNo);
if (count == null || count <= 0) {
throw new XJException("不良代码不属于当前加工中心或未启用");
}
}
@Override
public Map<String, Object> checkDownTimeCode(SearchScheduleData inData) {
@ -1176,6 +1212,9 @@ public class ScheduleServiceImpl implements ScheduleService {
String seqNo = inData.getSeqNo();
String rollNo = inData.getRollNo();
String downTimeCode = inData.getDownTimeCode();
String workCenterNo = this.resolveScheduleWorkCenterNo(inData);
inData.setWorkCenterNo(workCenterNo);
this.validateDownTimeCodeWorkCenter(site, downTimeCode, workCenterNo);
Map<String, Object> resultMap = this.checkDownTimeCode(site, orderNo, itemNo, seqNo, rollNo, downTimeCode);
//判断是否检验成功
String code = String.valueOf(resultMap.get("resultCode"));
@ -1266,6 +1305,9 @@ public class ScheduleServiceImpl implements ScheduleService {
String seqNo = inData.getSeqNo();
String rollNo = inData.getRollNo();
String defectCode = inData.getDefectCode();
String workCenterNo = this.resolveScheduleWorkCenterNo(inData);
inData.setWorkCenterNo(workCenterNo);
this.validateDefectCodeWorkCenter(site, defectCode, workCenterNo);
Map<String, Object> resultMap = this.checkDefectCode(site, orderNo, itemNo, seqNo, rollNo, defectCode);
//判断是否检验成功
String code = String.valueOf(resultMap.get("resultCode"));

18
src/main/resources/mapper/schedule/ScheduleMapper.xml

@ -643,6 +643,24 @@
</where>
</select>
<select id="countEnabledDownTimeReasonByWorkCenter" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM DowntimeReason A
WHERE A.Site = #{site}
AND A.ReasonCode = #{downTimeCode}
AND ISNULL(A.Active, 'Y') = 'Y'
AND ISNULL(RTRIM(A.WorkCenter_No), '') = #{workCenterNo}
</select>
<select id="countEnabledDefectCodeByWorkCenter" resultType="java.lang.Integer">
SELECT COUNT(1)
FROM InspectionDefectCode A
WHERE A.Site = #{site}
AND A.DefectCode = #{defectCode}
AND ISNULL(A.Active, 'Y') = 'Y'
AND ISNULL(RTRIM(A.workCenter_no), '') = #{workCenterNo}
</select>
<!--获取当前的上机卷信息-->
<select id="getCurrentRollOpsBySeqNo" parameterType="BaseRollData" resultType="SfdcRollOpsData">
SELECT TOP 1 sro.Site site, sro.OrderNo orderNo, sro.RollNo rollNo, sro.ItemNo itemNo, sro.SeqNo seqNo,

6
src/main/resources/mapper/warehouse/LabelTransactionLogMapper.xml

@ -79,6 +79,9 @@
<if test="query.batchNo != null and query.batchNo != ''">
AND a.batch_no LIKE '%' + #{query.batchNo} + '%'
</if>
<if test="query.wdrBarchNo != null and query.wdrBarchNo != ''">
AND a.wdr_barch_no LIKE '%' + #{query.wdrBarchNo} + '%'
</if>
<if test="query.warehouseIdList != null and query.warehouseIdList.size() > 0">
AND a.warehouse_id IN
<foreach item="item" collection="query.warehouseIdList" open="(" separator="," close=")">
@ -147,6 +150,9 @@
<if test="query.batchNo != null and query.batchNo != ''">
AND a.batch_no LIKE '%' + #{query.batchNo} + '%'
</if>
<if test="query.wdrBarchNo != null and query.wdrBarchNo != ''">
AND a.wdr_barch_no LIKE '%' + #{query.wdrBarchNo} + '%'
</if>
<if test="query.warehouseIdList != null and query.warehouseIdList.size() > 0">
AND a.warehouse_id IN
<foreach item="item" collection="query.warehouseIdList" open="(" separator="," close=")">

Loading…
Cancel
Save