|
@@ -78,6 +78,10 @@ public class StationInformationServiceImpl implements IStationInformationService
|
|
|
@Autowired
|
|
|
private RingTerminalMapper ringTerminalMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private RingScanInformationProdOrderScanningMapper prodOrderScanningMapper;
|
|
|
+
|
|
|
+
|
|
|
public static void main(String[] args) {
|
|
|
String aaa="scan@&GWM-001&SMSB001";
|
|
|
boolean contains = aaa.contains("scan@");
|
|
@@ -577,6 +581,7 @@ public class StationInformationServiceImpl implements IStationInformationService
|
|
|
RingScanInformationFirst ringScanInformationFirst=new RingScanInformationFirst();
|
|
|
ringScanInformationFirst.setOrderNumber(ringScanInformation.getOrderNumber());
|
|
|
List<RingScanInformationFirst> ringScanInformationFirsts = ringScanInformationFirstMapper.selectRingScanInformationFirstList(ringScanInformationFirst);
|
|
|
+ //订单扫描记录
|
|
|
if(ringScanInformationFirsts.size()<=0){
|
|
|
ringScanInformationFirst.setProductionOrderNumber(ringScanInformation.getProductionOrderNumber());
|
|
|
ringScanInformationFirst.setStatus("1");
|
|
@@ -585,7 +590,7 @@ public class StationInformationServiceImpl implements IStationInformationService
|
|
|
String sa="{\n" +
|
|
|
" \"FormId\": \"SAL_SaleOrder\",\n" +
|
|
|
" \"FieldKeys\": \"FBillNo,FQty\",\n" +
|
|
|
- " \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FBillNo\",\"Compare\":\"17\",\"Value\":\""+ringScanInformation.getOrderNumber()+"+\",\"Right\":\"\",\"Logic\":0}],\n" +
|
|
|
+ " \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FBillNo\",\"Compare\":\"17\",\"Value\":\""+ringScanInformation.getOrderNumber()+"\",\"Right\":\"\",\"Logic\":0}],\n" +
|
|
|
" \"OrderString\": \"\",\n" +
|
|
|
" \"TopRowCount\": 0,\n" +
|
|
|
" \"StartRow\": 0,\n" +
|
|
@@ -600,28 +605,78 @@ public class StationInformationServiceImpl implements IStationInformationService
|
|
|
throw new RuntimeException(e);
|
|
|
}
|
|
|
List<Map> mapListTotal = JSON.parseArray(resultJsonTotal, Map.class);
|
|
|
+ if(mapListTotal.size()<=0){
|
|
|
+ return "扫码失败订单已关闭";
|
|
|
+ }
|
|
|
Double totalAmount = mapListTotal.stream()
|
|
|
.filter(map1 -> map1.containsKey("FQty")) // 确保 map 中包含 "amount" 字段
|
|
|
.mapToDouble(map1 -> ((Number) map1.get("FQty")).doubleValue()) // 将 "amount" 字段转换为 double
|
|
|
.sum(); // 求和
|
|
|
+
|
|
|
ringScanInformationFirst.setTotalQuantity(String.valueOf(totalAmount.intValue()));
|
|
|
+ //第一次扫码记录订单扫描记录信息
|
|
|
int i = ringScanInformationFirstMapper.insertRingScanInformationFirst(ringScanInformationFirst);
|
|
|
}
|
|
|
- }
|
|
|
- //第一次这个订单就敲定---有多少是到包装,有多少是到喷漆,
|
|
|
- if(ringScanInformation.getPersonnelName().equals("包装")){//人在包装节点
|
|
|
- //更新第一次记录的日志信息记录表
|
|
|
+ //先查生产订单日志表没有在查询在新增
|
|
|
+ RingScanInformationProdOrderScanning prodOrderScanning=new RingScanInformationProdOrderScanning();
|
|
|
+ prodOrderScanning.setOrderNumber(ringScanInformation.getOrderNumber());
|
|
|
+ prodOrderScanning.setProductionOrderNumber(ringScanInformation.getProductionOrderNumber());
|
|
|
+ List<RingScanInformationProdOrderScanning> ringScanInformationProdOrderScannings =
|
|
|
+ prodOrderScanningMapper.selectRingScanInformationProdOrderScanningList(prodOrderScanning);
|
|
|
+ if(ringScanInformationProdOrderScannings.size()<0){
|
|
|
+ //看看这个生产订单包装节点Or
|
|
|
+ String query="{\n" +
|
|
|
+ " \"FormId\": \"PRD_MO\",\n" +
|
|
|
+ " \"FieldKeys\": \"FMaterialId.FNumber\",\n" +
|
|
|
+ " \"FilterString\": [{\"Left\":\"\",\"FieldName\":\"FBillNo\",\"Compare\":\"67\",\"Value\":\""+ringScanInformation.getProductionOrderNumber()+"\",\"Right\":\"\",\"Logic\":0}],\n" +
|
|
|
+ " \"OrderString\": \"\",\n" +
|
|
|
+ " \"TopRowCount\": 0,\n" +
|
|
|
+ " \"StartRow\": 0,\n" +
|
|
|
+ " \"Limit\": 2000,\n" +
|
|
|
+ " \"SubSystemId\": \"\"\n" +
|
|
|
+ "}";
|
|
|
+ Map<String, Object> prodListQuery = JSON.parseObject(query, Map.class);
|
|
|
+ String prodListQueryJson = null;
|
|
|
+ try {
|
|
|
+ prodListQueryJson = api.billQuery(JSON.toJSONString(prodListQuery));
|
|
|
+ } catch (Exception e) {
|
|
|
+ throw new RuntimeException(e);
|
|
|
+ }
|
|
|
+ List<Map> prodListQueryJsonList = JSON.parseArray(prodListQueryJson, Map.class);
|
|
|
+ //如果ERP存在这个生产订单
|
|
|
+ if(prodListQueryJsonList.size()>0){
|
|
|
+ //[{"FMaterialId.FNumber":"1010040050034","FQty":2.0000000000}]
|
|
|
+ //生产订单日志记录
|
|
|
+ prodOrderScanning.setTotalQuantity(prodListQueryJsonList.get(0).get("FQty").toString());//数量
|
|
|
+ if(prodListQueryJsonList.get(0).get("FMaterialId.FNumber").toString().startsWith("1")){
|
|
|
+ prodOrderScanning.setToPackagingorinspection("1");//到包装
|
|
|
+ }else if(prodListQueryJsonList.get(0).get("FMaterialId.FNumber").toString().startsWith("2")){
|
|
|
+ prodOrderScanning.setToPackagingorinspection("2");//到入库
|
|
|
+ }else {
|
|
|
+ prodOrderScanning.setToPackagingorinspection("0");//其他
|
|
|
+ }
|
|
|
+ int i = prodOrderScanningMapper.insertRingScanInformationProdOrderScanning(prodOrderScanning);
|
|
|
+ if(i>0){
|
|
|
+ System.out.println("新增生产订单日志信息成功");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
}
|
|
|
int i2 = ringScanInformationMapper.insertRingScanInformation(ringScanInformation);
|
|
|
if(i2>0){
|
|
|
//最后一个节点判定逻辑
|
|
|
- //判断此次订单内容扫码,当前订单存在不存在于第一次扫描的表中
|
|
|
- RingScanInformationFirst ringScanInformationFirst=new RingScanInformationFirst();
|
|
|
- ringScanInformationFirst.setOrderNumber(ringScanInformation.getOrderNumber());
|
|
|
- List<RingScanInformationFirst> ringScanInformationFirsts = ringScanInformationFirstMapper.selectRingScanInformationFirstList(ringScanInformationFirst);
|
|
|
- if(ringScanInformationFirsts.size()>0){//不是新扫的订单,可以开始校验包装节点是否满足入库条件了
|
|
|
- //原先是包装扫码,包装节点的数量等于了需要入库的数量
|
|
|
- //我录入包装包装数据的时候
|
|
|
+ RingScanInformationProdOrderScanning prodOrderScanning=new RingScanInformationProdOrderScanning();
|
|
|
+ prodOrderScanning.setOrderNumber(ringScanInformation.getOrderNumber());
|
|
|
+ prodOrderScanning.setProductionOrderNumber(ringScanInformation.getProductionOrderNumber());
|
|
|
+ List<RingScanInformationProdOrderScanning> ringScanInformationProdOrderScannings =
|
|
|
+ prodOrderScanningMapper.selectRingScanInformationProdOrderScanningList(prodOrderScanning);
|
|
|
+ if(ringScanInformationProdOrderScannings.size()>0){
|
|
|
+ //得到
|
|
|
+ String toPackagingorinspection = ringScanInformationProdOrderScannings.get(0).getToPackagingorinspection();
|
|
|
+ if(toPackagingorinspection.equals("1")){//判断完是到包装还是到检验
|
|
|
+ //更新检验或者入库数量
|
|
|
+ //
|
|
|
+ }
|
|
|
}
|
|
|
return "扫描成功";
|
|
|
}else {
|
|
@@ -629,9 +684,8 @@ public class StationInformationServiceImpl implements IStationInformationService
|
|
|
}
|
|
|
}
|
|
|
return "扫描成功";
|
|
|
- }
|
|
|
+ };
|
|
|
|
|
|
- ;
|
|
|
/**
|
|
|
* 指环王扫描信息hmc
|
|
|
* @param stationProductScanningRingVo
|
|
@@ -651,7 +705,6 @@ public class StationInformationServiceImpl implements IStationInformationService
|
|
|
String[] split = deviceNumberAndName.split("-");
|
|
|
String deviceNumber=split[0];
|
|
|
String deviceName=split[1];
|
|
|
-
|
|
|
String scanningTime = stationProductScanningRingVo.getScanningTime();//扫描时间
|
|
|
//先获取到当前设备上次的扫描时间
|
|
|
// RingScanInformation ringScanInformationQuery=new RingScanInformation();
|