Browse Source

pda生产退库优化

master
常熟吴彦祖 3 weeks ago
parent
commit
26c448b7f1
  1. 4
      src/main/java/com/heai/modules/production/dao/DailyPlanMapper.java
  2. 4
      src/main/java/com/heai/modules/production/entity/ShopOrderForReturnScanData.java
  3. 58
      src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java
  4. 18
      src/main/resources/mapper/production/DailyPlanMapper.xml

4
src/main/java/com/heai/modules/production/dao/DailyPlanMapper.java

@ -56,6 +56,10 @@ public interface DailyPlanMapper {
* @throws: * @throws:
*/ */
List<ShopOrderData> getShopOrderList(DailyPlanInData dailyPlanInData); List<ShopOrderData> getShopOrderList(DailyPlanInData dailyPlanInData);
/** PDA 生产退库:仅按生产订单号查询(同号多工厂取 ENTERDATE 最新一条)- rqrq */
ShopOrderData getShopOrderByOrderNoForReturn(@Param("orderNo") String orderNo);
/** /**
* @Method * @Method
* @Description: 获取混炼任务信息 * @Description: 获取混炼任务信息

4
src/main/java/com/heai/modules/production/entity/ShopOrderForReturnScanData.java

@ -5,7 +5,7 @@ import lombok.Data;
import java.io.Serializable; import java.io.Serializable;
/** /**
* 生产退库扫派工单/混炼任务单统一入口 - rqrq
* PDA 生产退库`orderStr` 分号分段第 4 SeqNo / 纯整数 SeqNo / 纯文本订单号无混炼任务单扫码- rqrq
* *
* @author rqrq * @author rqrq
*/ */
@ -13,7 +13,7 @@ import java.io.Serializable;
public class ShopOrderForReturnScanData implements Serializable { public class ShopOrderForReturnScanData implements Serializable {
/** /**
* 到的内容纯数字为派工单 SeqNoHL 开头为混炼任务单待扩展
* 描内容 - rqrq
*/ */
private String orderStr; private String orderStr;
} }

58
src/main/java/com/heai/modules/production/service/impl/DailyPlanServiceImpl.java

@ -870,7 +870,7 @@ public class DailyPlanServiceImpl implements DailyPlanService {
} }
/** /**
* @Description PDA 生产退库扫码纯数字派工单 SeqNoHL 开头混炼任务单 TaskNo Hunlian_TaskHeader.orderRef1 再走生产订单 - rqrq
* @Description PDA 生产退库扫码含分号取第 4 SeqNo整段整数为 SeqNo否则按生产订单号查询无混炼任务单扫码- rqrq
*/ */
@Override @Override
public ShopOrderData getShopOrderForReturnByScan(ShopOrderForReturnScanData scan) { public ShopOrderData getShopOrderForReturnByScan(ShopOrderForReturnScanData scan) {
@ -878,23 +878,53 @@ public class DailyPlanServiceImpl implements DailyPlanService {
throw new RuntimeException("扫描内容不能为空"); throw new RuntimeException("扫描内容不能为空");
} }
String raw = scan.getOrderStr().trim(); String raw = scan.getOrderStr().trim();
if (isAllDigitsDispatchOrder(raw)) {
DailyPlanInData dailyPlanInData = new DailyPlanInData();
try {
dailyPlanInData.setSeqNo(Integer.parseInt(raw));
} catch (NumberFormatException e) {
throw new RuntimeException("派工单号格式错误");
if (raw.contains(";")) {
String[] parts = raw.split(";", -1);
if (parts.length < 4) {
throw new RuntimeException("扫码格式错误(分号分段不足)");
}
Integer seqNoFromQr = parseIntegerSeqNo(parts[3]);
if (seqNoFromQr == null) {
throw new RuntimeException("扫码第4段派工单序号格式错误");
} }
dailyPlanInData.setRemark("生产退库");
return getShopOrderForReturn(dailyPlanInData);
DailyPlanInData dispatchData = new DailyPlanInData();
dispatchData.setSeqNo(seqNoFromQr);
dispatchData.setRemark("生产退库");
return getShopOrderForReturn(dispatchData);
} }
if (raw.toUpperCase().startsWith("HL")) {
HunlianData hl = new HunlianData();
hl.setTaskNo(raw);
return getShopOrderForHunlianTask(hl);
Integer directSeqNo = parseIntegerSeqNo(raw);
if (directSeqNo != null) {
DailyPlanInData dispatchData = new DailyPlanInData();
dispatchData.setSeqNo(directSeqNo);
dispatchData.setRemark("生产退库");
return getShopOrderForReturn(dispatchData);
}
ShopOrderData byOrderOnly = dailyPlanMapper.getShopOrderByOrderNoForReturn(raw);
if (byOrderOnly == null || !StringUtils.hasText(byOrderOnly.getOrderNo())) {
throw new RuntimeException("该生产订单不存在");
} }
return byOrderOnly;
}
throw new RuntimeException("只能扫派工单和混炼任务单二维码");
/**
* 仅识别非空十进制整数派工单 SeqNo含字母/小数等返回 null - rqrq
*/
private static Integer parseIntegerSeqNo(String part) {
if (!StringUtils.hasText(part)) {
return null;
}
String t = part.trim();
if (!isAllDigitsDispatchOrder(t)) {
return null;
}
try {
return Integer.parseInt(t);
} catch (NumberFormatException e) {
return null;
}
} }
private static boolean isAllDigitsDispatchOrder(String s) { private static boolean isAllDigitsDispatchOrder(String s) {

18
src/main/resources/mapper/production/DailyPlanMapper.xml

@ -140,6 +140,24 @@
</if> </if>
</where> </where>
</select> </select>
<!-- rqrq - PDA 生产退库扫码为纯订单号时:不送 site,多行取 TOP 1 -->
<select id="getShopOrderByOrderNoForReturn" resultType="com.heai.modules.production.entity.ShopOrderData">
select top 1
A.OrderNo ,A.Site ,A.EnterDate ,A.UserName ,A.NeedDate ,A.OriginalNeedDate ,A.PlanStartDate ,A.ReleaseDate
,A.ReleaseGuys ,A.ScheduleDate ,A.Scheduler ,A.IssueDate ,A.ReportDate ,A.ReceiveDate ,A.CloseDate
,A.Planner ,A.Status ,A.Status_Tmp ,A.Printed ,A.OrderType ,A.PartNo ,A.LotSize ,A.FinishedQty
,A.ProjectID ,A.BOMRevNo ,A.RoutingRevNo ,A.Leadtime ,A.Remark ,A.OrderRef1 ,A.OrderRef2 ,A.CostRollUpFlag
,A.ManualFlag ,A.OriSOOrderNo ,A.CustomerID ,A.TechInfo ,A.ReceiveStatus ,A.E_OriginalOrderNo
,A.E_Levels ,A.E_OriginalOrderType ,A.E_SeqNo ,A.E_LevelCode ,A.SFDCReportedFlag ,A.RepairSOFlag
,A.ConfigurationFlag ,A.MaterialSplitFlag ,A.ObjectVersion ,A.ExpandFlag ,A.CodeNo ,A.LE_SeqNo
,A.LE_ItemNo ,A.LE_Levels
,B.PartDescription
from ShopOrder A
left join Part B on A.site = B.site and A.PartNo = B.PartNo
where A.OrderNo = #{orderNo,jdbcType=VARCHAR}
order by A.EnterDate desc
</select>
<select id="getTransfer" resultType="com.heai.modules.production.entity.ShopOrderData"> <select id="getTransfer" resultType="com.heai.modules.production.entity.ShopOrderData">
select a.TransNo as transFerNo ,b.PartNo,c.PartDescription,a.Status,b.TransQty as lotSize,b.ConfirmQty as FinishedQty,a.Site, b.OrderNo,dbo.Get_PartWeightFactorForReport(A.Site ,b.PartNo,b.OrderNo) as weightFactor, select a.TransNo as transFerNo ,b.PartNo,c.PartDescription,a.Status,b.TransQty as lotSize,b.ConfirmQty as FinishedQty,a.Site, b.OrderNo,dbo.Get_PartWeightFactorForReport(A.Site ,b.PartNo,b.OrderNo) as weightFactor,
dbo.Get_Part_DefaultWarehouseID(a.Site,b.PartNo) DefaultWarehouseID,b.seqNo,a.needReceiveFlag,Round(isnull(b.boxWeight,0),2) boxWeight dbo.Get_Part_DefaultWarehouseID(a.Site,b.PartNo) DefaultWarehouseID,b.seqNo,a.needReceiveFlag,Round(isnull(b.boxWeight,0),2) boxWeight

Loading…
Cancel
Save