Przeglądaj źródła

装箱单调整

huxy 1 tydzień temu
rodzic
commit
9a0164e16c

+ 8 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/documents/syShippingOrder/controller/SyShippingOrderController.java

@@ -128,7 +128,7 @@ public class SyShippingOrderController extends JeecgController<SyShippingOrder,
 								   @RequestParam(name="pageSize", defaultValue="10") Integer pageSize,
 								   HttpServletRequest req) {
 
-		Result<IPage<SyShippingOrder>> result = new Result<IPage<SyShippingOrder>>();
+		 Result<IPage<SyShippingOrder>> result = new Result<IPage<SyShippingOrder>>();
 		QueryWrapper<SyShippingOrder> queryWrapper = new QueryWrapper<>();
 		if(oConvertUtils.isNotEmpty(syShippingOrder.getOrderNumber())){
 			queryWrapper.likeRight("b.order_number",syShippingOrder.getOrderNumber().trim());
@@ -178,7 +178,7 @@ public class SyShippingOrderController extends JeecgController<SyShippingOrder,
 			queryWrapper.eq("a.export_invoice_no",syShippingOrder.getExportInvoiceNo());
 		}
 		if(oConvertUtils.isNotEmpty(syShippingOrder.getTimeStuta())){
-			if (syShippingOrder.getTimeStuta()==1){
+			if (syShippingOrder.getTimeStuta()==1||syShippingOrder.getTimeStuta()==5){
 				queryWrapper.in("a.time_stuta","1","5");
 			}else{
 				queryWrapper.eq("a.time_stuta",syShippingOrder.getTimeStuta());
@@ -192,6 +192,12 @@ public class SyShippingOrderController extends JeecgController<SyShippingOrder,
 			}
 
 		}
+		if(oConvertUtils.isNotEmpty(syShippingOrder.getTheDocumentsState())){
+			queryWrapper.eq("a.the_documents_state",syShippingOrder.getTheDocumentsState());
+		}
+		if(oConvertUtils.isNotEmpty(syShippingOrder.getSyStuta())){
+			queryWrapper.eq("a.sy_stuta",syShippingOrder.getSyStuta());
+		}
 
 		if(oConvertUtils.isNotEmpty(syShippingOrder.getPkOrg())){
 			queryWrapper.eq("b.pk_org",syShippingOrder.getPkOrg());

+ 158 - 163
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/controller/SyPackingListFabricController.java

@@ -1315,170 +1315,159 @@ public class SyPackingListFabricController implements Job {
 		 return exceptionStr.toString();
 	 }
 
+	 private boolean isRun = false;
+
 	 @Override
 	 public void execute(JobExecutionContext context) throws JobExecutionException {
-
-		 QueryWrapper<SyPackingListFabric> queryWrapper=new QueryWrapper();
-		 queryWrapper.eq("del_flag","0");
-		 queryWrapper.nested(i->i.ne("recording_Status","1").nested(s->s.eq("push_State","3").or()
-				 .like("recording_Error","超时").or().eq("recording_Error","null")
-				 .or().eq("recording_Error","nullnull")
-				 .or().like("recording_Error","For input string:")
-				 .or().eq("recording_Error","nullnullnull").or().like("recording_Error","未能捕获到的错误").or().like("recording_Error","重复"))) ;//推送中
-		 //queryWrapper.or();
-		 //queryWrapper.like();//超时
-	 	 List<SyPackingListFabric> syPackingListFabrics=syPackingListFabricService.list(queryWrapper);//修改调整
-
-		 List<String> ids=new ArrayList<>();
-		 for (SyPackingListFabric syPackingListFabric : syPackingListFabrics){
-		 	ids.add(syPackingListFabric.getId());
-		 }
-		// RedisUtil redisUtil
-
-		 if(syPackingListFabrics.size()==0){
-		 	return;
-		 }
-		 UpdateWrapper updateWrapper=new UpdateWrapper();
-		 updateWrapper.set("recording_Status",1);//推送中
-		 updateWrapper.set("push_State",3);//推送中
-		 updateWrapper.in("id",ids);
-		 syPackingListFabricService.update(updateWrapper);
-
-		 for (int i=0; i<syPackingListFabrics.size();i++){
-			 try {
-				 String message2="";
-				 String id=syPackingListFabrics.get(i).getId();
-				 Map<String,Object> map=new HashMap<>();
-				 SyPackingListFabric main=syPackingListFabricService.getById(id);
-				 if(main.getIsReference()==0){
-					 message2="请先做托书再推送";
-				 }
-				 Map<String,Object> mapdate=syPackingListTailoringService.getSyShippingOrder(id);
-				 if(mapdate!=null){
-					 if(!mapdate.containsKey("e4")||mapdate.get("e4").equals("0")){
-						 message2="请先提交托书再推送";
-					 }
-					 if(mapdate.containsKey("e1")&&mapdate.get("e1")!=null){
-						 main.setTheFinalShippingDate(mapdate.get("e1").toString());
-					 }else{
-						 message2="请先维护最终船期再推送";
-					 }
-					 if(mapdate.containsKey("e2")&&mapdate.get("e2")!=null){
-						 main.setTheFinalShippingDate2(mapdate.get("e2").toString());
-					 }
-					 if(mapdate.containsKey("e3")&&mapdate.get("e3")!=null){
-						 main.setLatestDateOfShipment2(mapdate.get("e3").toString());
-					 }else{
-						 message2="请先维护装运期限再推送";
-					 }
-				 }else{
-					 message2="请先做托书再推送";
-				 }
-				 /*if(main.getRecordingStatus()!=null&&main.getRecordingStatus()==1){
-					 message2="数据在推送中,请不要重复点击";
-				 }else{
-					 main.setRecordingStatus(1);
-					 syPackingListFabricService.updateById(main);//修改成衣
-				 }*/
-
-				 List<SyPackingListFabricItem> items=syPackingListFabricItemService.selectByMainId3(id);
-				 String message="";//获取报错消息
-				 String account="";//当前账套
-				 if(items!=null){
-
-					 //SyOrderData syOrderData=syOrderDataMapper.selectById(items.get(0).getSyOrderDataId());//最终客户
-					 SyOrderData syOrderData=syOrderDataMapper.selectById(items.get(0).getSyOrderDataId());//最终客户
-					 if(syOrderData!=null){
-						 main.setEndCustomer(syOrderData.getEndCustomer());
-						 //System.out.println("最终客户\t"+syOrderData.getEndCustomer());
-					 }
-//					 if(syOrderData.getFlag()==1){
-//						 message2="手工匹配订单不能推送";
-//					 }
-					 Map<String,String> supperNames=new HashMap<>();
-					 for (SyPackingListFabricItem syPackingListFabricItem : items){
-						 if(supperNames.containsKey(syPackingListFabricItem.getSupplier())){
-							 supperNames.put(syPackingListFabricItem.getSupplier(),syPackingListFabricItem.getSupplier());
-						 }else{
-							 supperNames.put(syPackingListFabricItem.getSupplier(),syPackingListFabricItem.getSupplier());
-						 }
-						 if(supperNames.size()>1){
-							 message2="供应商不一样,不能推送";
-						 }
-					 }
-					 if(message2.length()>1){
-						 main.setRecordingError(message2);//报错原因
-						 main.setPushState("2");//推送失败
-						 main.setRecordingStatus(0);//改成未推送
-						 syPackingListFabricService.updateById(main);
-						 continue;//本次不循环
-					 }
-					 SyOrderDataItem syOrderDataItem=syOrderDataItemMapper.selectById(items.get(0).getSyOrderDataItemId());//供应商全称
-					 if(syOrderDataItem!=null){
-						 main.setSupplierCode(syOrderDataItem.getSupplierCode());
-						 //System.out.println("客户编码\t"+syOrderDataItem.getSupplierCode());
-					 }
-
-					 main.setSyPackingListFabricItem(items);
-					 map.put("account",items.get(0).getOmpoAccount());//委外采购账套号
-					 String venCode=syPackingListTailoringService.getDictValue(main.getGarmentFactory());//根据成衣工厂获取仓库编码
-					 if(venCode!=null){
-						 map.put("vencode",venCode);//委外采购账套号
-					 }
-					 map.put("account1",items.get(0).getOmpoAccount());//委外采购账套号
-					 map.put("ompoId",items.get(0).getOmpoId());//采购委外主表id
-					 map.put("mpOrder",items.get(0).getPurOrSubOrder());//采购委外订单号
-					 map.put("customerCode","one");//客户编码
-					 map.put("CVENCODE","one");//供应商编码
-					 map.put("orderNumber","one");//销售订单号
-					 map.put("poid","one");//销售订单id
-					 map.put("number","one");//销售订单id
-					 for (int x=0;x<3;x++){//最多循环3次
-						 try {
-							 if (map.get("account").equals("103")){
-								 account="103";
-								 message+=syPackingListFabricService.three(main,map)+";";
-							 }else if(map.get("account").equals("102")){
-								 account="102";
-								 message+=syPackingListFabricService.two(main,map)+";";
-							 }else if(map.get("account").equals("101")){
-								 account="101";
-								 message+=syPackingListFabricService.one(main,map)+";";
-							 }else{
-								 // 业务员,克重,包装方式,处理方式,是否手册纱,手册纱占比,尺码
-								 break;
-							 }
-						 }catch (Exception e){
-							 e.printStackTrace();
-							 message+=e.getMessage();
-							 //System.out.println("面辅料批量推送报错");
-							 String msg2=getExceptionStr(e);
-							 log.info("面辅料批量推送报错\t"+msg2);
-							 if(map.get("account").equals(account)){
-								 break;
-							 }
-						 }
-					 }
-				 }
-				 //System.out.println("成衣message\t"+message);
-				 //if(message!=null&&message.length()>0&&(message.indexOf("接口")>-1||message.indexOf("账套")>-1)){
-				 if(message!=null&&message.length()>0&&message.indexOf("接口")>-1){
-					 main.setPushState("2");//推送失败!
-					 main.setRecordingError(message);
-				 }else if(message.indexOf("成功")>-1) {
-					 main.setPushState("1");//推送成功!
-					 main.setRecordingError("");
-				 }else{
-					 main.setPushState("3");//推送失败!重新推送
-					 main.setRecordingError(message);
-				 }
-				 main.setRecordingStatus(2);
-				 syPackingListFabricService.updateById(main);//修改成衣
-			 }catch (Exception e){
-				 e.printStackTrace();
-			 }
+		 if (isRun){
+			 return;
 		 }
-		 syPackingListTailoringService.updateTimeStatus();
+		 isRun = true;
+	 	 try {
+			QueryWrapper<SyPackingListFabric> queryWrapper=new QueryWrapper();
+			queryWrapper.eq("del_flag","0");
+			queryWrapper.nested(i->i.ne("recording_Status","1").nested(s->s.eq("push_State","3").or()
+					.like("recording_Error","超时").or().eq("recording_Error","null")
+					.or().eq("recording_Error","nullnull")
+					.or().like("recording_Error","For input string:")
+					.or().eq("recording_Error","nullnullnull").or().like("recording_Error","未能捕获到的错误").or().like("recording_Error","重复"))) ;//推送中
+			List<SyPackingListFabric> syPackingListFabrics=syPackingListFabricService.list(queryWrapper);//修改调整
+			List<String> ids=new ArrayList<>();
+			for (SyPackingListFabric syPackingListFabric : syPackingListFabrics){
+				ids.add(syPackingListFabric.getId());
+			}
+			// RedisUtil redisUtil
+			if(syPackingListFabrics.size()==0){
+				return;
+			}
+			UpdateWrapper updateWrapper=new UpdateWrapper();
+			updateWrapper.set("recording_Status",1);//推送中
+			updateWrapper.set("push_State",3);//推送中
+			updateWrapper.in("id",ids);
+			syPackingListFabricService.update(updateWrapper);
+			for (int i=0; i<syPackingListFabrics.size();i++){
+				try {
+					String message2="";
+					String id=syPackingListFabrics.get(i).getId();
+					Map<String,Object> map=new HashMap<>();
+					SyPackingListFabric main=syPackingListFabricService.getById(id);
+					if(main.getIsReference()==0){
+						message2="请先做托书再推送";
+					}
+					Map<String,Object> mapdate=syPackingListTailoringService.getSyShippingOrder(id);
+					if(mapdate!=null){
+						if(!mapdate.containsKey("e4")||mapdate.get("e4").equals("0")){
+							message2="请先提交托书再推送";
+						}
+						if(mapdate.containsKey("e1")&&mapdate.get("e1")!=null){
+							main.setTheFinalShippingDate(mapdate.get("e1").toString());
+						}else{
+							message2="请先维护最终船期再推送";
+						}
+						if(mapdate.containsKey("e2")&&mapdate.get("e2")!=null){
+							main.setTheFinalShippingDate2(mapdate.get("e2").toString());
+						}
+						if(mapdate.containsKey("e3")&&mapdate.get("e3")!=null){
+							main.setLatestDateOfShipment2(mapdate.get("e3").toString());
+						}else{
+							message2="请先维护装运期限再推送";
+						}
+					}else{
+						message2="请先做托书再推送";
+					}
+					List<SyPackingListFabricItem> items=syPackingListFabricItemService.selectByMainId3(id);
+					String message="";//获取报错消息
+					String account="";//当前账套
+					if(items!=null){
+						SyOrderData syOrderData=syOrderDataMapper.selectById(items.get(0).getSyOrderDataId());//最终客户
+						if(syOrderData!=null){
+							main.setEndCustomer(syOrderData.getEndCustomer());
+							//System.out.println("最终客户\t"+syOrderData.getEndCustomer());
+						}
+						Map<String,String> supperNames=new HashMap<>();
+						for (SyPackingListFabricItem syPackingListFabricItem : items){
+							if(supperNames.containsKey(syPackingListFabricItem.getSupplier())){
+								supperNames.put(syPackingListFabricItem.getSupplier(),syPackingListFabricItem.getSupplier());
+							}else{
+								supperNames.put(syPackingListFabricItem.getSupplier(),syPackingListFabricItem.getSupplier());
+							}
+							if(supperNames.size()>1){
+								message2="供应商不一样,不能推送";
+							}
+						}
+						if(message2.length()>1){
+							main.setRecordingError(message2);//报错原因
+							main.setPushState("2");//推送失败
+							main.setRecordingStatus(0);//改成未推送
+							syPackingListFabricService.updateById(main);
+							continue;//本次不循环
+						}
+						SyOrderDataItem syOrderDataItem=syOrderDataItemMapper.selectById(items.get(0).getSyOrderDataItemId());//供应商全称
+						if(syOrderDataItem!=null){
+							main.setSupplierCode(syOrderDataItem.getSupplierCode());
+						}
+						main.setSyPackingListFabricItem(items);
+						map.put("account",items.get(0).getOmpoAccount());//委外采购账套号
+						String venCode=syPackingListTailoringService.getDictValue(main.getGarmentFactory());//根据成衣工厂获取仓库编码
+						if(venCode!=null){
+							map.put("vencode",venCode);//委外采购账套号
+						}
+						map.put("account1",items.get(0).getOmpoAccount());//委外采购账套号
+						map.put("ompoId",items.get(0).getOmpoId());//采购委外主表id
+						map.put("mpOrder",items.get(0).getPurOrSubOrder());//采购委外订单号
+						map.put("customerCode","one");//客户编码
+						map.put("CVENCODE","one");//供应商编码
+						map.put("orderNumber","one");//销售订单号
+						map.put("poid","one");//销售订单id
+						map.put("number","one");//销售订单id
+						for (int x=0;x<3;x++){//最多循环3次
+							try {
+								if (map.get("account").equals("103")){
+									account="103";
+									message+=syPackingListFabricService.three(main,map)+";";
+								}else if(map.get("account").equals("102")){
+									account="102";
+									message+=syPackingListFabricService.two(main,map)+";";
+								}else if(map.get("account").equals("101")){
+									account="101";
+									message+=syPackingListFabricService.one(main,map)+";";
+								}else{
+									break;
+								}
+							}catch (Exception e){
+								e.printStackTrace();
+								message+=e.getMessage();
+								//System.out.println("面辅料批量推送报错");
+								String msg2=getExceptionStr(e);
+								log.info("面辅料批量推送报错\t"+msg2);
+								if(map.get("account").equals(account)){
+									break;
+								}
+							}
+						}
+					}
+					if(message!=null&&message.length()>0&&message.indexOf("接口")>-1){
+						main.setPushState("2");//推送失败!
+						main.setRecordingError(message);
+					}else if(message.indexOf("成功")>-1) {
+						main.setPushState("1");//推送成功!
+						main.setRecordingError("");
+					}else{
+						main.setPushState("3");//推送失败!重新推送
+						main.setRecordingError(message);
+					}
+					main.setRecordingStatus(2);
+					syPackingListFabricService.updateById(main);//修改成衣
+				}catch (Exception e){
+					e.printStackTrace();
+				}
+			}
+			syPackingListTailoringService.updateTimeStatus();
+		}catch (Exception ex){
+			 log.error("面辅料入库单批量推送U8任务异常",ex);
+		}finally {
+			 isRun = false;
+		}
 	 }
 
 	 @AutoLog(value = "装箱单面辅料批量推送u8")
@@ -1635,6 +1624,10 @@ public class SyPackingListFabricController implements Job {
 	 @GetMapping(value = "/pushBatch")
 	 public  Result pushToU8(String ids) {
 		 Result result=new Result();
+		 if (isRun){
+			 return result.error500("面辅料推送已经在执行了");
+		 }
+		 isRun = true;
 		 try {
 			 if(oConvertUtils.isEmpty(ids)){
 				 result.setSuccess(false);
@@ -1790,9 +1783,11 @@ public class SyPackingListFabricController implements Job {
 			 e.printStackTrace();
 			 result.setSuccess(false);
 			 result.error500("操作失败:"+e.getMessage());
+		 }finally {
+			 isRun = true;
+			 syPackingListTailoringService.updateTimeStatus();
+			 return result;
 		 }
-		 syPackingListTailoringService.updateTimeStatus();
-		 return result;
 	 }
 
 	 @Autowired

+ 16 - 12
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/impl/SyPackingListFabricServiceImpl.java

@@ -1485,19 +1485,20 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 			if(mapt.get("account").equals("101")){//101账套
 				for (SyPackingListFabricItem item : main.getSyPackingListFabricItem()){
 					////System.out.println("inventoryCcode\t"+item.getInventoryCcode());
+					String itemKey=item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId()+item.getGramWeight();
 					if(item.getInventoryCcode().indexOf("04")!=-1||item.getInventoryCcode().indexOf("03")!=-1){
-						booleanMap.put(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId(),false);//存货编码+计划单号+颜色+门幅
-						if(bigDecimalMap.containsKey(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId())){//再次
+						booleanMap.put(itemKey,false);//存货编码+计划单号+颜色+门幅
+						if(bigDecimalMap.containsKey(itemKey)){//再次
 							if(item.getMasterMetering().equals("KG")){
-								bigDecimalMap.put(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId(),bigDecimalMap.get(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId()).add(item.getNetWeight()));
+								bigDecimalMap.put(itemKey,bigDecimalMap.get(itemKey).add(item.getNetWeight()));
 							}else{
-								bigDecimalMap.put(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId(),item.getActualDeclaredQuantity().add(item.getActualDeclaredQuantity()));
+								bigDecimalMap.put(itemKey,item.getActualDeclaredQuantity().add(item.getActualDeclaredQuantity()));
 							}
 						}else{//初次
 							if(item.getMasterMetering().equals("KG")){
-								bigDecimalMap.put(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId(),item.getNetWeight());
+								bigDecimalMap.put(itemKey,item.getNetWeight());
 							}else{
-								bigDecimalMap.put(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId(),item.getActualDeclaredQuantity());
+								bigDecimalMap.put(itemKey,item.getActualDeclaredQuantity());
 							}
 						}
 					}
@@ -1505,12 +1506,13 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				}
 			}
 			for (SyPackingListFabricItem item : main.getSyPackingListFabricItem()){
-				if(mapt.get("account").equals("101")&&booleanMap.containsKey(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId())){
-					//System.out.println("inventoryCode\t"+item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId());
-					if(booleanMap.get(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId())){//为true就退出循环
+				String itemKey=item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId()+item.getGramWeight();
+				if(mapt.get("account").equals("101")&&booleanMap.containsKey(itemKey)){
+					//System.out.println("inventoryCode\t"+itemKey);
+					if(booleanMap.get(itemKey)){//为true就退出循环
 						continue;
 					}else{
-						booleanMap.put(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId(),true);
+						booleanMap.put(itemKey,true);
 					}
 				}
 				JSONObject mapItem=new JSONObject();
@@ -1816,8 +1818,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				}
 
 				if(mapt.get("account").equals("101")&&(item.getInventoryCcode().indexOf("04")!=-1||item.getInventoryCcode().indexOf("03")!=-1)){
-					mapItem.put("IQUANTITY",bigDecimalMap.get(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId()));//入库单数量
-					mapItem5.put("IQUANTITY",bigDecimalMap.get(item.getInventoryCode()+item.getPlanLotNumber()+item.getColour()+item.getWidth()+item.getSyOrderDataItemId()));//采购单数量
+					mapItem.put("IQUANTITY",bigDecimalMap.get(itemKey));//入库单数量
+					mapItem5.put("IQUANTITY",bigDecimalMap.get(itemKey));//采购单数量
 				}
 				//mapItem.put("INUM",orderDataItem.get("inum"));//明细ID(采购订单行ID/委外订单行ID)
 				//mapItem.put("cBatch","x");//批号
@@ -3565,6 +3567,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				ids.add(syPackingListFabric.getDocumentNo().substring(3));
 				String rdrecord01Code=syPackingListTailoringItemMapper.getRdrecord01Code(syPackingListFabric.getDocumentNo().substring(3),"0000000002");
 				if (oConvertUtils.isEmpty(rdrecord01Code)){
+					syPackingListFabric.setSaleInvoiceError(account+"销售出库单号"+rdrecord01Code+",找不到对应101的入库单");
 					throw new JeecgBootException(account+"销售出库单号"+rdrecord01Code+",找不到对应101的入库单");
 				}
 				syPackingListFabric.setRdrecord32Code(rdrecord01Code);
@@ -3575,6 +3578,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				ids.add(syPackingListFabric.getDocumentNo().substring(3));
 				String rdrecord01Code=syPackingListTailoringItemMapper.getRdrecord01Code(syPackingListFabric.getDocumentNo().substring(3),"0000000001");
 				if (oConvertUtils.isEmpty(rdrecord01Code)){
+					syPackingListFabric.setSaleInvoiceError(account+"销售出库单号"+rdrecord01Code+",找不到对应101的入库单");
 					throw new JeecgBootException(account+"销售出库单号"+rdrecord01Code+",找不到对应101的入库单");
 				}
 				System.out.println("rdrecord01Code     "+rdrecord01Code);

+ 161 - 157
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/controller/SyPackingListTailoringController.java

@@ -116,6 +116,8 @@ public class SyPackingListTailoringController implements Job {
 	 @Value("${srm.access-token}")
 	 private String srmAccessToken;
 
+	 //推送状态
+	 private boolean isRun = false;
 	/**
 	 * 分页列表查询
 	 *
@@ -542,25 +544,29 @@ public class SyPackingListTailoringController implements Job {
 	@AutoLog(value = "装箱单成衣-通过id删除")
 	@ApiOperation(value="装箱单成衣-通过id删除", notes="装箱单成衣-通过id删除")
 	@DeleteMapping(value = "/delete")
-	public Result<?> delete(@RequestParam(name="id",required=true) String id) {
+	public Result<?> delete(@RequestParam(name="id",required=true) String id,HttpServletRequest request) {
 		if(oConvertUtils.isEmpty(id)){
 			return Result.ok("id为空!");
 		}
-		syPackingListTailoringService.delMain(id);
+		String accessToken = request.getHeader("X-Access-Token");
+		String username= JwtUtil.getUsername(accessToken);
+		syPackingListTailoringService.delMain(id,username);
 		return Result.OK("删除成功!");
 	}
 	
 	/**
 	 * 批量删除
 	 *
-	 * @param ids
+	 * @param ids,request
 	 * @return
 	 */
 	@AutoLog(value = "装箱单成衣-批量删除")
 	@ApiOperation(value="装箱单成衣-批量删除", notes="装箱单成衣-批量删除")
 	@DeleteMapping(value = "/deleteBatch")
-	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String[] ids) {
-		this.syPackingListTailoringService.delBatchMain(Arrays.asList(ids));
+	public Result<?> deleteBatch(@RequestParam(name="ids",required=true) String[] ids,HttpServletRequest request) {
+		String accessToken = request.getHeader("X-Access-Token");
+		String username= JwtUtil.getUsername(accessToken);
+		this.syPackingListTailoringService.delBatchMain(Arrays.asList(ids),username);
 		return Result.OK("批量删除成功!");
 	}
 	
@@ -1334,10 +1340,10 @@ public class SyPackingListTailoringController implements Job {
 	 @AutoLog(value = "设置redis字符")
 	 @ApiOperation(value="设置redis字符", notes="设置redis字符")
 	 @RequestMapping(value = "/setRedis", method = {RequestMethod.GET})
-	 public Result setToken(String key,String value) {
+	 public Result setToken(String key,boolean value) {
 		 Result result=new Result();
 		 redisUtil.set(key, value);//采购委外入库单
-		 result.setMessage(value);
+		 result.setResult(value);
 		 return result;
 	 }
 
@@ -1422,167 +1428,159 @@ public class SyPackingListTailoringController implements Job {
 
 	 @Override
 	 public void execute(JobExecutionContext context) throws JobExecutionException {
-		 QueryWrapper <SyPackingListTailoring> queryWrapper=new QueryWrapper();
-		 queryWrapper.eq("del_flag","0");
-		 queryWrapper.nested(i->i.ne("recording_Status","1").nested(s->s.eq("push_State","3").or()
-				 .like("recording_Error","超时").or().eq("recording_Error","null")
-				 .or().eq("recording_Error","nullnull")
-				 .or().like("recording_Error","For input string:")
-				 .or().eq("recording_Error","nullnullnull").or().like("recording_Error","未能捕获到的错误").or().like("recording_Error","重复"))) ;//推送中
-		/*queryWrapper.eq("push_State","3");//推送中
-		 queryWrapper.or();
-		 queryWrapper.like("recording_Error","超时");//超时*/
-		 List<SyPackingListTailoring> syPackingListTailorings=syPackingListTailoringService.list(queryWrapper);//修改调整
-
-		 List<String> ids=new ArrayList<>();
-		 for (SyPackingListTailoring syPackingListTailoring : syPackingListTailorings){
-			 ids.add(syPackingListTailoring.getId());
+		 if (isRun){
+			 return;
 		 }
-		 if(syPackingListTailorings.size()<=0){
-		 	return;
-		 }
-		 // RedisUtil redisUtil
-		 UpdateWrapper updateWrapper=new UpdateWrapper();
-		 updateWrapper.set("recording_Status",1);//推送中
-		 updateWrapper.set("push_State",3);//推送中
-		 updateWrapper.in("id",ids);
-		 syPackingListTailoringService.update(updateWrapper);
-
-		 for (int i=0; i<syPackingListTailorings.size();i++){
-			 try {
-				 String message2="";
-				 String id=syPackingListTailorings.get(i).getId();
-				 SyPackingListTailoring main=syPackingListTailoringService.getById(id);
-				 if(main.getIsReference()==0){
-					 message2="请先做托书再推送";
-				 }
-				 Map<String,Object> map=new HashMap<>();
-				 Map<String,Object> mapdate=syPackingListTailoringService.getSyShippingOrder(id);
-				 //System.out.println("madate\t"+mapdate);
-				 if(mapdate!=null){
-					 if(!mapdate.containsKey("e4")||mapdate.get("e4").equals("0")){
-						 message2="请先提交托书再推送";
-					 }
-					 if(mapdate.containsKey("e1")&&mapdate.get("e1")!=null){
-						 main.setTheFinalShippingDate(mapdate.get("e1").toString());
-					 }else{
-						 message2="请先维护最终船期再推送";
-					 }
-					 if(mapdate.containsKey("e2")&&mapdate.get("e2")!=null){
-						 main.setTheFinalShippingDate2(mapdate.get("e2").toString());
-					 }
-					 if(mapdate.containsKey("e3")&&mapdate.get("e3")!=null){
-						 main.setLatestDateOfShipment2(mapdate.get("e3").toString());
-					 }else{
-						 message2="请先维护装运期限再推送";
-					 }
-				 }else{
-					 message2="请先做托书再推送";
-				 }
-				 List<SyPackingListTailoringItem> syPackingListTailoringItems=syPackingListTailoringService.getList(main.getId());
-				 main.setSyPackingListTailoringItemList(syPackingListTailoringItems);
-				 String message="";//获取报错消息
-				 if(syPackingListTailoringItems!=null){
-					 map.put("account",main.getSyPackingListTailoringItemList().get(0).getOmpoAccount());//委外采购账套号
-					 map.put("account1",main.getSyPackingListTailoringItemList().get(0).getOmpoAccount());//委外采购账套号
-					 map.put("ompoId",main.getSyPackingListTailoringItemList().get(0).getOmpoId());//采购委外主表id
-					 SyOrderData syOrderData=syOrderDataMapper.selectById(syPackingListTailoringItems.get(0).getSyOrderDataId());//最终客户
-					 if(syOrderData!=null){
-						 main.setEndCustomer(syOrderData.getEndCustomer());
-					 }
-					 /*if(syOrderData.getFlag()==1){
-						 message2="手工匹配订单不能推送";
-					 }*/
-					 if(message2.length()>1){
-						 main.setRecordingError(message2);//报错原因
-						 main.setRecordingStatus(0);//改成未推送
-						 main.setPushState("2");//推送失败
-						 syPackingListTailoringService.updateById(main);
-						 continue;//本次不循环
-					 }
-					 /*if(main.getRecordingStatus()!=null&&main.getRecordingStatus()==1){
-						 //message2="数据在推送中,请不要重复点击";
-					 }else{
-						 main.setRecordingStatus(1);
-						 syPackingListTailoringService.updateById(main);//修改成衣
-					 }*/
-					 SyOrderDataItem syOrderDataItem=syOrderDataItemMapper.selectById(syPackingListTailoringItems.get(0).getSyOrderDataItemId());//供应商全称
-					 if(syOrderDataItem!=null){
-						 main.setSupplierCode(syOrderDataItem.getSupplierCode());
+		 isRun = true;
+		 try {
+			 QueryWrapper <SyPackingListTailoring> queryWrapper=new QueryWrapper();
+			 queryWrapper.eq("del_flag","0");
+			 queryWrapper.nested(i->i.ne("recording_Status","1").nested(s->s.eq("push_State","3").or()
+					 .like("recording_Error","超时").or().eq("recording_Error","null")
+					 .or().eq("recording_Error","nullnull")
+					 .or().like("recording_Error","For input string:")
+					 .or().eq("recording_Error","nullnullnull").or().like("recording_Error","未能捕获到的错误").or().like("recording_Error","重复"))) ;//推送中
+			 List<SyPackingListTailoring> syPackingListTailorings=syPackingListTailoringService.list(queryWrapper);//修改调整
+			 List<String> ids=new ArrayList<>();
+			 for (SyPackingListTailoring syPackingListTailoring : syPackingListTailorings){
+				 ids.add(syPackingListTailoring.getId());
+			 }
+			 if(syPackingListTailorings.size()<=0){
+				 return;
+			 }
+			 // RedisUtil redisUtil
+			 UpdateWrapper updateWrapper=new UpdateWrapper();
+			 updateWrapper.set("recording_Status",1);//推送中
+			 updateWrapper.set("push_State",3);//推送中
+			 updateWrapper.in("id",ids);
+			 syPackingListTailoringService.update(updateWrapper);
+
+			 for (int i=0; i<syPackingListTailorings.size();i++){
+				 try {
+					 String message2="";
+					 String id=syPackingListTailorings.get(i).getId();
+					 SyPackingListTailoring main=syPackingListTailoringService.getById(id);
+					 if(main.getIsReference()==0){
+						 message2="请先做托书再推送";
 					 }
-					 if(main.getPurchase()==null){
-						 map.put("mpOrder",main.getSyPackingListTailoringItemList().get(0).getSpurOrSubOrder());//采购委外订单号
+					 Map<String,Object> map=new HashMap<>();
+					 Map<String,Object> mapdate=syPackingListTailoringService.getSyShippingOrder(id);
+					 if(mapdate!=null){
+						 if(!mapdate.containsKey("e4")||mapdate.get("e4").equals("0")){
+							 message2="请先提交托书再推送";
+						 }
+						 if(mapdate.containsKey("e1")&&mapdate.get("e1")!=null){
+							 main.setTheFinalShippingDate(mapdate.get("e1").toString());
+						 }else{
+							 message2="请先维护最终船期再推送";
+						 }
+						 if(mapdate.containsKey("e2")&&mapdate.get("e2")!=null){
+							 main.setTheFinalShippingDate2(mapdate.get("e2").toString());
+						 }
+						 if(mapdate.containsKey("e3")&&mapdate.get("e3")!=null){
+							 main.setLatestDateOfShipment2(mapdate.get("e3").toString());
+						 }else{
+							 message2="请先维护装运期限再推送";
+						 }
 					 }else{
-						 map.put("mpOrder",main.getPurchase());//采购委外订单号
+						 message2="请先做托书再推送";
 					 }
-					 /*String venCode=syPackingListTailoringService.getDictValue(main.getGarmentFactory());//根据成衣工厂获取仓库编码
-					 if(venCode!=null){
-						 map.put("vencode",venCode);//委外采购账套号
-					 }*/
-					 List<DictModel> dictModels=sysDictService.queryDictItemsByCode("Related_units");
-					 Map<String,List<String>> maps=new HashMap();
-					 for (DictModel model : dictModels){
-						 String account= model.getValue().split("-")[0];
-						 String ccuscode= model.getValue().split("-")[1];
-						 if (maps.containsKey(account)){
-							 List<String> customers=maps.get(account);
-							 customers.add(ccuscode);
+					 List<SyPackingListTailoringItem> syPackingListTailoringItems=syPackingListTailoringService.getList(main.getId());
+					 main.setSyPackingListTailoringItemList(syPackingListTailoringItems);
+					 String message="";//获取报错消息
+					 if(syPackingListTailoringItems!=null){
+						 map.put("account",main.getSyPackingListTailoringItemList().get(0).getOmpoAccount());//委外采购账套号
+						 map.put("account1",main.getSyPackingListTailoringItemList().get(0).getOmpoAccount());//委外采购账套号
+						 map.put("ompoId",main.getSyPackingListTailoringItemList().get(0).getOmpoId());//采购委外主表id
+						 SyOrderData syOrderData=syOrderDataMapper.selectById(syPackingListTailoringItems.get(0).getSyOrderDataId());//最终客户
+						 if(syOrderData!=null){
+							 main.setEndCustomer(syOrderData.getEndCustomer());
+						 }
+						 if(message2.length()>1){
+							 main.setRecordingError(message2);//报错原因
+							 main.setRecordingStatus(0);//改成未推送
+							 main.setPushState("2");//推送失败
+							 syPackingListTailoringService.updateById(main);
+							 continue;//本次不循环
+						 }
+						 SyOrderDataItem syOrderDataItem=syOrderDataItemMapper.selectById(syPackingListTailoringItems.get(0).getSyOrderDataItemId());//供应商全称
+						 if(syOrderDataItem!=null){
+							 main.setSupplierCode(syOrderDataItem.getSupplierCode());
+						 }
+						 if(main.getPurchase()==null){
+							 map.put("mpOrder",main.getSyPackingListTailoringItemList().get(0).getSpurOrSubOrder());//采购委外订单号
 						 }else{
-							 List<String> customers=new ArrayList<>();
-							 customers.add(ccuscode);
-							 maps.put(account,customers);
+							 map.put("mpOrder",main.getPurchase());//采购委外订单号
 						 }
-					 }
-					 map.put("maps",maps);
-					 map.put("customerCode","one");//客户编码
-					 map.put("CVENCODE","one");//供应商编码
-					 map.put("orderNumber","one");//销售订单号2
-					 for (int x=0;x<3;x++){//最多循环3次
-						 try {
-							 if (map.get("account").equals("103")){
-								 message+=syPackingListTailoringService.three(main,map);
-							 }else if(map.get("account").equals("102")){
-								 message+=syPackingListTailoringService.two(main,map);
-							 }else if(map.get("account").equals("101")){
-								 message+=syPackingListTailoringService.one(main,map);
+						 List<DictModel> dictModels=sysDictService.queryDictItemsByCode("Related_units");
+						 Map<String,List<String>> maps=new HashMap();
+						 for (DictModel model : dictModels){
+							 String account= model.getValue().split("-")[0];
+							 String ccuscode= model.getValue().split("-")[1];
+							 if (maps.containsKey(account)){
+								 List<String> customers=maps.get(account);
+								 customers.add(ccuscode);
 							 }else{
-								 break;
+								 List<String> customers=new ArrayList<>();
+								 customers.add(ccuscode);
+								 maps.put(account,customers);
+							 }
+						 }
+						 map.put("maps",maps);
+						 map.put("customerCode","one");//客户编码
+						 map.put("CVENCODE","one");//供应商编码
+						 map.put("orderNumber","one");//销售订单号2
+						 for (int x=0;x<3;x++){//最多循环3次
+							 try {
+								 if (map.get("account").equals("103")){
+									 message+=syPackingListTailoringService.three(main,map);
+								 }else if(map.get("account").equals("102")){
+									 message+=syPackingListTailoringService.two(main,map);
+								 }else if(map.get("account").equals("101")){
+									 message+=syPackingListTailoringService.one(main,map);
+								 }else{
+									 break;
+								 }
+							 }catch (Exception e){
+								 e.printStackTrace();
+								 message+=e.getMessage();
+								 String msg2=getExceptionStr(e);
+								 //System.out.println("成衣批量推送报错");
+								 log.info("成衣批量推送报错\t"+msg2);
 							 }
-						 }catch (Exception e){
-							 e.printStackTrace();
-							 message+=e.getMessage();
-							 String msg2=getExceptionStr(e);
-							 //System.out.println("成衣批量推送报错");
-							 log.info("成衣批量推送报错\t"+msg2);
 						 }
 					 }
+					 if(message!=null&&message.length()>0&&(message.indexOf("接口")>-1||message.indexOf("失败")>-1)){
+						 main.setPushState("2");//推送失败!
+						 main.setRecordingError(message);
+					 }else if(message.indexOf("成功")>-1){
+						 main.setPushState("1");//推送成功!
+						 main.setRecordingError("");
+					 }else{
+						 main.setPushState("3");//推送失败!
+						 main.setRecordingError(message);
+					 }
+					 main.setRecordingStatus(0);
+					 syPackingListTailoringService.updateById(main);//修改成衣
+				 }catch (Exception e){
+					 e.printStackTrace();
+					 String msg2= null;
+					 try {
+						 msg2 = getExceptionStr(e);
+					 } catch (IOException ex) {
+						 ex.printStackTrace();
+					 }
+					 //System.out.println("成衣批量推送报错");
+					 log.info("成衣批量推送报错\t"+msg2);
 				 }
-				 //System.out.println("message\t"+message);
-				 if(message!=null&&message.length()>0&&(message.indexOf("接口")>-1||message.indexOf("失败")>-1)){
-					 main.setPushState("2");//推送失败!
-					 main.setRecordingError(message);
-				 }else if(message.indexOf("成功")>-1){
-					 main.setPushState("1");//推送成功!
-					 main.setRecordingError("");
-				 }else{
-					 main.setPushState("3");//推送失败!
-					 main.setRecordingError(message);
-				 }
-				 main.setRecordingStatus(0);
-				 syPackingListTailoringService.updateById(main);//修改成衣
-			 }catch (Exception e){
-				 e.printStackTrace();
-				 String msg2= null;
-				 try {
-					 msg2 = getExceptionStr(e);
-				 } catch (IOException ex) {
-					 ex.printStackTrace();
-				 }
-				 //System.out.println("成衣批量推送报错");
-				 log.info("成衣批量推送报错\t"+msg2);
 			 }
+			 syPackingListTailoringService.updateTimeStatus();
+		 }catch (Exception ex){
+			 log.info("ex成衣批量推送报错");
+		 }finally {
+			 isRun = false;
 		 }
-		 syPackingListTailoringService.updateTimeStatus();
+
 	 }
 
 	 @AutoLog(value = "装箱单成衣批量推送u8")
@@ -1746,6 +1744,10 @@ public class SyPackingListTailoringController implements Job {
 	 @GetMapping(value = "/pushBatch")
 	 public  Result pushToU8(String ids) {
 	 	Result result=new Result();
+	 	if (isRun){
+	 		return result.error500("成衣入库单批量推送已经在执行了");
+		}
+	 	isRun = true;
 	 	try {
 			//long startTime = System.currentTimeMillis();
 			if(oConvertUtils.isEmpty(ids)){
@@ -1920,9 +1922,11 @@ public class SyPackingListTailoringController implements Job {
 			e.printStackTrace();
 			result.setSuccess(false);
 			result.error500("操作失败:"+e.getMessage());
+		}finally {
+			isRun = false;
+			syPackingListTailoringService.updateTimeStatus();
+			return result;
 		}
-		 syPackingListTailoringService.updateTimeStatus();
-		 return result;
 	 }
 
 	 @AutoLog(value = "获取100个单据号")

+ 110 - 50
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/PushJob.java

@@ -4,6 +4,8 @@ import com.alibaba.fastjson.JSONArray;
 import com.alibaba.fastjson.JSONObject;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
+import lombok.extern.slf4j.Slf4j;
+import org.jeecg.common.util.RedisUtil;
 import org.jeecg.modules.documents.syShippingOrder.entity.SyShippingOrder;
 import org.jeecg.modules.documents.syShippingOrder.mapper.SyShippingOrderItemMapper;
 import org.jeecg.modules.documents.syShippingOrder.mapper.SyShippingOrderMapper;
@@ -13,6 +15,7 @@ import org.quartz.Job;
 import org.quartz.JobExecutionContext;
 import org.quartz.JobExecutionException;
 import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.scheduling.annotation.Scheduled;
 
 import java.io.*;
 import java.util.ArrayList;
@@ -20,6 +23,7 @@ import java.util.HashMap;
 import java.util.List;
 import java.util.Map;
 
+@Slf4j
 public class PushJob implements Job {
 
 
@@ -35,64 +39,77 @@ public class PushJob implements Job {
     @Autowired
     private SyPackingListFabricController syPackingListFabricController;
 
+    private boolean isRun = false;
+
+    @Autowired
+    private RedisUtil redisUtil;//redis存储过程
+
+    public synchronized boolean getRedisValue(String key) {
+        if (!redisUtil.hasKey(key)){
+            redisUtil.set(key,false);
+        }
+        Boolean bool= (Boolean) redisUtil.get(key);
+        return bool;
+    }
+
+    public synchronized void setRedisValue(String key,boolean accessIsrun) {
+        redisUtil.set(key,accessIsrun);
+    }
 
     @Override
     public void execute(JobExecutionContext context) throws JobExecutionException {
-        long startTime = System.currentTimeMillis();
-        QueryWrapper<SyShippingOrder> queryWrapper= new QueryWrapper();
-        //queryWrapper.nested(i->i.eq("time_Stuta",1).or().eq("time_Stuta",3));//1、待推送,2、推送成功,3、推送失败
-        queryWrapper.eq("time_Stuta","1");//待推送
-        queryWrapper.eq("del_flag","0");
-        //queryWrapper.eq("id","c1429fecbedf49c6a8834957bae60595");
-        //queryWrapper.eq("ready_Fabric","成衣");
-        //queryWrapper.last("limit 2");
-        //queryWrapper.nested(i->i.ne("recording_Status","1").nested(s->s.eq("push_State","3").or().like("recording_Error","超时"))) ;//推送中
-        //queryWrapper.ne("time_Stuta",2);
-        //queryWrapper.last("limit 3");
-        UpdateWrapper updateWrapper=new UpdateWrapper();
-        List<SyShippingOrder> orderList=syShippingOrderMapper.selectList(queryWrapper);
-        List<String> orderIds=new ArrayList<>();
-        for (SyShippingOrder order : orderList){
-            orderIds.add(order.getId());
-        }
-        if(orderIds.size()>0){
-            updateWrapper.in("id",orderIds);
-            updateWrapper.set("time_Stuta","5");
-            syShippingOrderMapper.update(null,updateWrapper);
+        if (getRedisValue("tsfpIsRun")){
+            return;
         }
-        //System.out.println("orderList.size\t"+orderList.size());
-        for (SyShippingOrder order : orderList){
-            order.setFailMesage("");
-            Map<String,Object> codeMaps=new HashMap<>();
-            codeMaps.put("time_Stuta",3);//默认为失败 清空所有失败记录就算成功
-            codeMaps.put("message","");//推送成功消息
-            codeMaps.put("error","");//成功
-            codeMaps.put("isAhaa",order.getIsAhaa());//成功
-            if(order.getReadyFabric().equals("成衣")){
-                syPackingListTailoringController.pushInvoice(order.getId(),codeMaps);
-            }else{
-                syPackingListFabricController.pushInvoice(order.getId(),codeMaps);
+        setRedisValue("tsfpIsRun",true);
+        try {
+            QueryWrapper<SyShippingOrder> queryWrapper= new QueryWrapper();
+            queryWrapper.eq("time_Stuta","1");//待推送
+            queryWrapper.eq("del_flag","0");
+//            queryWrapper.eq("id","c0a453925be64288b757d2b9a7ec3c78");
+            UpdateWrapper updateWrapper=new UpdateWrapper();
+            List<SyShippingOrder> orderList=syShippingOrderMapper.selectList(queryWrapper);
+            List<String> orderIds=new ArrayList<>();
+            for (SyShippingOrder order : orderList){
+                orderIds.add(order.getId());
             }
-            order.setTimeStuta(Integer.parseInt(codeMaps.get("time_Stuta").toString()));
-            if(codeMaps.get("message").toString().length()>2){
-                String names=codeMaps.get("message").toString();
-                order.setTimeMesage(names.substring(1,names.length()-1));
-//                order.setPushSrmState("0");//成功了就回写成0
-                UpdateWrapper updateWrapper2=new UpdateWrapper();
-                updateWrapper2.in("sy_shipping_order_item_id",order.getId());
-                updateWrapper2.set("push_srm_state","0");//成功推送就回写成0
-                syShippingOrderItemMapper.update(null,updateWrapper2);
+            if(orderIds.size()>0){
+                updateWrapper.in("id",orderIds);
+                updateWrapper.set("time_Stuta","5");
+                syShippingOrderMapper.update(null,updateWrapper);
             }
-            if(codeMaps.get("error").toString().length()>2){
-                String names=codeMaps.get("error").toString();
-                order.setFailMesage(names.substring(1,names.length()-1));
+            for (SyShippingOrder order : orderList){
+                order.setFailMesage("");
+                Map<String,Object> codeMaps=new HashMap<>();
+                codeMaps.put("time_Stuta",3);//默认为失败 清空所有失败记录就算成功
+                codeMaps.put("message","");//推送成功消息
+                codeMaps.put("error","");//成功
+                codeMaps.put("isAhaa",order.getIsAhaa());//成功
+                if(order.getReadyFabric().equals("成衣")){
+                    syPackingListTailoringController.pushInvoice(order.getId(),codeMaps);
+                }else{
+                    syPackingListFabricController.pushInvoice(order.getId(),codeMaps);
+                }
+                order.setTimeStuta(Integer.parseInt(codeMaps.get("time_Stuta").toString()));
+                if(codeMaps.get("message").toString().length()>2){
+                    String names=codeMaps.get("message").toString();
+                    order.setTimeMesage(names.substring(1,names.length()-1));
+                    UpdateWrapper updateWrapper2=new UpdateWrapper();
+                    updateWrapper2.in("sy_shipping_order_item_id",order.getId());
+                    updateWrapper2.set("push_srm_state","0");//成功推送就回写成0
+                    syShippingOrderItemMapper.update(null,updateWrapper2);
+                }
+                if(codeMaps.get("error").toString().length()>2){
+                    String names=codeMaps.get("error").toString();
+                    order.setFailMesage(names.substring(1,names.length()-1));
+                }
+                syShippingOrderMapper.updateById(order);
             }
-            syShippingOrderMapper.updateById(order);
-            //codeMaps.put(order.getId(),message);
+        }catch (Exception ex){
+            log.error("托书发票批量推送U8任务异常",ex);
+        }finally {
+            setRedisValue("tsfpIsRun",false);
         }
-        long endTime = System.currentTimeMillis();
-        //System.out.println("互相插入数据时用的时间:" + (endTime - startTime) + "ms");
-       // //System.out.println("codeMaps\n"+codeMaps);
     }
 
     public static Map<String,String> result(JSONArray jsonArray){
@@ -103,6 +120,49 @@ public class PushJob implements Job {
         }
         return codeMaps;//账套号-序号-生成的单号
     }
+/*
+    @Scheduled(fixedRate=1000*5)
+    public static void main(String[] args) throws InterruptedException {
+        SyPackingListTailoring myClass=new SyPackingListTailoring();
+        Thread t1 = new Thread(() -> {
+            myClass.myMethod();
+            System.out.println("线程1完成");
+        });
+        Thread t2 = new Thread(() -> {
+            myClass.myMethod();
+            System.out.println("线程2完成");
+        });
+        t1.start();
+        t2.start();
+        Thread.sleep(1000);  //主线程停止1秒,保证两个线程执行完成
+//        System.out.println(value);
+//        System.out.println(value1);
+    }*/
+
 
+    /*@Scheduled(fixedRate=1000*5)
+    public static void show1() throws InterruptedException {
+        SyPackingListTailoring myClass=new SyPackingListTailoring();
+        Thread t1 = new Thread(() -> {
+            myClass.myMethod();
+            System.out.println("线程1");
+        });
+        Thread t2 = new Thread(() -> {
+            myClass.myMethod();
+            System.out.println("线程2");
+        });
+        t1.start();
+        t2.start();
+        Thread.sleep(1000);  //主线程停止1秒,保证两个线程执行完成
+    }*/
 
+    /*public class MyClass{
+        public synchronized void myMethod() {
+            for (int i=1;i<=50;i++){
+                System.out.print(i+" ");
+            }
+            System.out.println();
+            // 方法实现,同一时间只有一个线程可以执行到这里
+        }
+    }*/
 }

+ 16 - 5
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/entity/SyPackingListTailoring.java

@@ -1,8 +1,12 @@
 package org.jeecg.modules.splt.entity;
 
 import java.io.Serializable;
+import java.text.SimpleDateFormat;
 import java.util.Date;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map;
+import java.util.concurrent.ConcurrentHashMap;
 
 import com.alibaba.fastjson.annotation.JSONField;
 import com.baomidou.mybatisplus.annotation.IdType;
@@ -11,12 +15,20 @@ import com.baomidou.mybatisplus.annotation.TableId;
 import com.baomidou.mybatisplus.annotation.TableName;
 import lombok.Data;
 import com.fasterxml.jackson.annotation.JsonFormat;
+import org.jeecg.common.util.DateUtils;
+import org.jeecg.common.util.RedisUtil;
 import org.jeecg.modules.spapl.entity.SizeTable;
 import org.jeecgframework.poi.excel.annotation.Excel;
 import org.jeecgframework.poi.excel.annotation.ExcelCollection;
+import org.quartz.Job;
+import org.quartz.JobExecutionContext;
+import org.quartz.JobExecutionException;
+import org.springframework.beans.factory.annotation.Autowired;
+import org.springframework.beans.factory.annotation.Value;
 import org.springframework.format.annotation.DateTimeFormat;
 import io.swagger.annotations.ApiModel;
 import io.swagger.annotations.ApiModelProperty;
+import org.springframework.scheduling.annotation.Scheduled;
 
 /**
  * @Description: 装箱单主表
@@ -307,6 +319,10 @@ public class SyPackingListTailoring implements Serializable {
 	@ApiModelProperty(value = "是否被参照(0:无,1:被预托书参照,2:被装箱单参照)")
 	private Integer isReference;
 
+	// srm推送时传的token
+	@TableField(exist = false)
+	String accessToken;
+
 	public SyPackingListTailoring(){
 
 	}
@@ -326,9 +342,4 @@ public class SyPackingListTailoring implements Serializable {
 		elementsId=params[9];// 申报要素ID
 		syPreAssembledPackingListId=params[10];// 主表id
 	}
-
-	// srm推送时传的token
-	@TableField(exist = false)
-	String accessToken;
-
 }

+ 2 - 2
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/ISyPackingListTailoringService.java

@@ -58,12 +58,12 @@ public interface ISyPackingListTailoringService extends IService<SyPackingListTa
 	/**
 	 * 删除一对多
 	 */
-	public void delMain(String id);
+	public void delMain(String id,String username);
 	
 	/**
 	 * 批量删除一对多
 	 */
-	public void delBatchMain(Collection<? extends Serializable> idList);
+	public void delBatchMain(Collection<? extends Serializable> idList,String username);
 
 	/**
 	 * 根据预装箱单主表id获取数据

+ 8 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splt/service/impl/SyPackingListTailoringServiceImpl.java

@@ -7,10 +7,12 @@ import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
 import com.googlecode.aviator.utils.ArrayHashMap;
+import org.apache.shiro.SecurityUtils;
 import org.hibernate.engine.jdbc.Size;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.vo.DictModel;
+import org.jeecg.common.system.vo.LoginUser;
 import org.jeecg.common.util.DateUtils;
 import org.jeecg.common.util.RedisUtil;
 import org.jeecg.common.util.UUIDGenerator;
@@ -553,7 +555,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 
 	@Override
 	@Transactional
-	public void delMain(String id) {
+	public void delMain(String id,String username) {
 		SyPackingListTailoring syPackingListTailoring=syPackingListTailoringMapper.selectById(id);
 		if (syPackingListTailoring==null){
 			throw new JeecgBootException("未找到此id!");
@@ -561,6 +563,9 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 		if(syPackingListTailoring.getIsReference()==1){
 			throw new JeecgBootException("已被托书参照,禁止删除!");
 		}
+		if(!username.equals("admin")){
+			throw new JeecgBootException("非管理员用户,不能直接删除提交状态的装箱单");
+		}
 		syPackingListTailoringItemMapper.deleteByMainId(id);
 		syPackingListTailoringMapper.deleteByMainId(id);
 		UpdateWrapper updateWrapper=new UpdateWrapper();
@@ -595,9 +600,9 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 
 	@Override
 	@Transactional
-	public void delBatchMain(Collection<? extends Serializable> idList) {
+	public void delBatchMain(Collection<? extends Serializable> idList,String username) {
 		for(Serializable id:idList) {
-			delMain(id.toString());//调用删除方法
+			delMain(id.toString(),username);//调用删除方法
 		}
 	}