Browse Source

推送u8接口调整,面辅料导入bug修复

huxy 2 years ago
parent
commit
fc036bdc01

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

@@ -464,6 +464,7 @@ public class SyPackingListFabricController {
 	public Result<?> importExcel(HttpServletRequest request, HttpServletResponse response) {
 	  MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
 	  Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+	  System.out.println("新增");
 	  for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()){
 		  try {
 			  MultipartFile file = entity.getValue();// 获取上传文件对象
@@ -493,6 +494,7 @@ public class SyPackingListFabricController {
 	 public Result<?> importExcel2(HttpServletRequest request, HttpServletResponse response) throws IOException {
 		 MultipartHttpServletRequest multipartRequest = (MultipartHttpServletRequest) request;
 		 Map<String, MultipartFile> fileMap = multipartRequest.getFileMap();
+		 System.out.println("测试");
 		 for (Map.Entry<String, MultipartFile> entity : fileMap.entrySet()){
 			 try {
 				 MultipartFile file = entity.getValue();// 获取上传文件对象
@@ -522,6 +524,9 @@ public class SyPackingListFabricController {
 					 List<String> itemStrs=new ArrayList<>();
 					 for (int i=0;i<row.getLastCellNum();i++){
 						 Cell cell=row.getCell(i);
+						 if(cell==null&&i<18&&i>15||cell.toString().length()<1&&i<18&&i>15){
+							throw new JeecgBootException("请填写第"+x+"行里的"+sheet.getRow(3).getCell(i));
+						 }
 						 itemStrs.add(cell.toString());
 					 }
 					 SyPackingListFabricItem syPackingListFabricItem=new SyPackingListFabricItem(itemStrs.toArray(new String[itemStrs.size()]));
@@ -743,7 +748,7 @@ public class SyPackingListFabricController {
 	 @AutoLog(value = "装箱单面辅料推送u8")
 	 @ApiOperation(value="装箱单面辅料推送u8", notes="装箱单面辅料推送u8")
 	 @GetMapping(value = "/pushBatch")
-	 public  Result pushToU8(String[] ids) {
+	 public  Result pushToU8(String ids) {
 		 Result result=new Result();
 		 try {
 			 if(oConvertUtils.isEmpty(ids)){
@@ -754,7 +759,7 @@ public class SyPackingListFabricController {
 			 Map<String,Object> map=new HashMap<>();
 			 SyPackingListFabric main=syPackingListFabricService.getById(ids);
 			 QueryWrapper queryWrapper=new QueryWrapper();
-			 queryWrapper.eq("sy_packing_list_tailoring_id",main.getId());
+			 queryWrapper.eq("sy_Packing_List_Fabric_Id",ids);
 			 queryWrapper.eq("del_flag","0");
 			 List<SyPackingListFabricItem> items=syPackingListFabricItemService.list(queryWrapper);
 			 String message="";//获取报错消息
@@ -770,27 +775,28 @@ public class SyPackingListFabricController {
 				 for (int x=0;x<3;x++){//最多循环3次
 					 try {
 						 if (map.get("account").equals("903")){
-							 syPackingListFabricService.three(main,map);
+							 message+=syPackingListFabricService.three(main,map);
 						 }else if(map.get("account").equals("902")){
-							 syPackingListFabricService.two(main,map);
+							 message+=syPackingListFabricService.two(main,map);
 						 }else if(map.get("account").equals("901")){
-							 syPackingListFabricService.one(main,map);
+							 message+=syPackingListFabricService.one(main,map);
 						 }else{
 							 break;
 						 }
 					 }catch (Exception e){
+					 	e.printStackTrace();
 						 message+=e.getMessage();
 					 }
 				 }
 			 }
-			 if(message!=null&&message.length()>0){
+			 if(message!=null&&message.length()>0&&message.indexOf("接口")>-1){
 				 main.setPushState("2");//推送失败!
 				 result.setSuccess(false);
 				 result.setMessage(message);
 			 }else{
 				 main.setPushState("1");//推送成功!
 				 result.setSuccess(true);
-				 result.setMessage("u8已成功生成单据");
+				 result.setMessage(message);
 			 }
 			 result.setResult(main);
 			 syPackingListFabricService.updateById(main);//修改成衣

+ 9 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/entity/SyPackingListFabric.java

@@ -145,6 +145,11 @@ public class SyPackingListFabric implements Serializable {
 	@ApiModelProperty(value = "u8唯一标识")
 	//@TableField(exist = false)
 	private String u8Id;
+
+	@ApiModelProperty(value = "u8唯一标识")
+	@TableField(exist = false)
+	private String fId;
+
 	/**账套号*/
 	@ApiModelProperty(value = "账套号")
 	//@TableField(exist = false)
@@ -167,6 +172,10 @@ public class SyPackingListFabric implements Serializable {
 	@ApiModelProperty(value = "u8推送记录")
 	private String recording;
 
+	/**是否云工厂推送*/
+	@TableField(exist = false)
+	@ApiModelProperty(value = "是否云工厂推送")
+	private String whetherCloudFactoryPush;
 
 	public SyPackingListFabric(){
 

+ 26 - 26
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/entity/SyPackingListFabricItem.java

@@ -355,7 +355,7 @@ public class SyPackingListFabricItem implements Serializable {
 
 	public SyPackingListFabricItem(String [] strs){
 		for (int i=0;i<strs.length;i++){
-			System.out.println(strs[i]+"\t"+i);
+			//System.out.println(strs[i]+"\t"+i);
 		}
 		syShippingDetailsId=strs[0];//主表ID
 		syShippingDetailsItemId=strs[1];//子表ID
@@ -366,49 +366,49 @@ public class SyPackingListFabricItem implements Serializable {
 		itemNumber=strs[6];//款号
 		colour=strs[7];//颜色
 		declarationName=strs[8];//报关品名
-		supplierCodeDyeingPlant=strs[11];//供应商编码(染厂)
-		supplierDyeingPlant=strs[12];//供应商(染厂)
-		supplierCodePrintingPlant=strs[13];//供应商编码(印厂)
-		supplierPrintingPlant=strs[14];//供应商(印厂)
-		specificationAndModel=strs[15];//规格型号
-		masterMetering=strs[16];//单位
-		dyelotNumber=strs[17];//缸号
 		width=strs[9];//门幅
 		gramWeight=strs[10];//克重
-		if(strs[18]==null||strs[18].equals("")){
+		//supplierCodeDyeingPlant=strs[11];//供应商编码(染厂)
+		supplierDyeingPlant=strs[11];//供应商(染厂)
+		//supplierCodePrintingPlant=strs[13];//供应商编码(印厂)
+		supplierPrintingPlant=strs[12];//供应商(印厂)
+		specificationAndModel=strs[13];//规格型号
+		masterMetering=strs[14];//单位
+		dyelotNumber=strs[15];//缸号
+		if(strs[16]==null||strs[16].equals("")){
 			rolls=new BigDecimal(0);//匹数
 		}else{
-			rolls=new BigDecimal(strs[18]);//匹数
+			rolls=new BigDecimal(strs[16]);//匹数
 		}
-		if(strs[19]==null||strs[19].equals("")){
+		if(strs[17]==null||strs[17].equals("")){
 			grossWeight=new BigDecimal(0);//毛重
 		}else{
-			grossWeight=new BigDecimal(strs[19] );//毛重
+			grossWeight=new BigDecimal(strs[17] );//毛重
 		}
-		if(strs[20]==null||strs[20].equals("")){
+		if(strs[18]==null||strs[18].equals("")){
 			netWeight=new BigDecimal(0);//净重
 		}else{
-			netWeight=new BigDecimal(strs[20] );//净重
+			netWeight=new BigDecimal(strs[18] );//净重
 		}
-		if(strs[21]==null||strs[21].equals("")){
+		if(strs[19]==null||strs[19].equals("")){
 			afterHeavy=new BigDecimal(0);//染后重
 		}else{
-			afterHeavy=new BigDecimal(strs[21] );//染后重
+			afterHeavy=new BigDecimal(strs[19] );//染后重
 		}
-		if(strs[22]==null||strs[22].equals("")){
+		if(strs[20]==null||strs[20].equals("")){
 			kaoClothWeight=new BigDecimal(0);//拷布重
 		}else{
-			kaoClothWeight=new BigDecimal(strs[22] );//拷布重
+			kaoClothWeight=new BigDecimal(strs[20] );//拷布重
 		}
-		if(strs[24]==null||strs[24].equals("")){
+		if(strs[22]==null||strs[22].equals("")){
 			actualDeclaredQuantity=new BigDecimal(0);//实际报关数量
 		}else{
-			actualDeclaredQuantity=new BigDecimal(strs[24] );//实际报关数量
+			actualDeclaredQuantity=new BigDecimal(strs[22] );//实际报关数量
 		}
-		mannerOfPacking=strs[25];//包装方式
-		treatmentMethod=strs[26];//处理方式
-		containerNumber=strs[27];//柜号
-		remarks2=strs[28];//备注
+		mannerOfPacking=strs[23];//包装方式
+		treatmentMethod=strs[24];//处理方式
+		containerNumber=strs[25];//柜号
+		remarks2=strs[26];//备注
 		BigDecimal width1=new BigDecimal("0");
 		BigDecimal gramWeight2=new BigDecimal("0");
 		if(width!=null&&!width.equals("")){
@@ -417,9 +417,9 @@ public class SyPackingListFabricItem implements Serializable {
 		if(gramWeight!=null&&!gramWeight.equals("")){
 			gramWeight2=new BigDecimal(gramWeight);
 		}
+		BigDecimal num=new BigDecimal("100000");
 		if(netWeight.doubleValue()>0&&width1.doubleValue()>0&&gramWeight2.doubleValue()>0){
-			BigDecimal num=new BigDecimal("100000");
-			meter=netWeight.multiply(num).divide(width1).divide(gramWeight2);//净重*100000/门幅/克重
+			meter=netWeight.multiply(num).divide(width1,2,BigDecimal.ROUND_HALF_UP).divide(gramWeight2,2,BigDecimal.ROUND_HALF_UP);//净重*100000/门幅/克重
 		}
 	}
 }

+ 3 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/SyPackingListFabricMapper.java

@@ -1,6 +1,7 @@
 package org.jeecg.modules.splfi.mapper;
 
 import java.util.List;
+import java.util.Map;
 
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
@@ -33,4 +34,6 @@ public interface SyPackingListFabricMapper extends BaseMapper<SyPackingListFabri
     IPage<SyPackingListFabric> queryMain(IPage<SyPackingListFabric> page, @Param("ew") QueryWrapper<SyPackingListFabric> queryWrapper);
 
     public SyShippingOrder querySyShippingOrder(String SyPackingListTailoringId);
+    //获取供应商,区分来源
+    Map<String,Object> getOM_MOMaterials(@Param("map")Map<String,Object> map);
 }

+ 1 - 1
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/xml/SyPackingListFabricItemMapper.xml

@@ -138,7 +138,7 @@
 	<!--<select id="getu8Data"  resultMap="genderIsosid">-->
 	<select id="getu8Data"  resultMap="genderIsosid">
 		SELECT
-		sy_order_data_item_id AS isosid
+		sy_order_data_id AS isosid
 		FROM `sy_shipping_details_item`
 		WHERE inventory_Ccode NOT LIKE '19%'
 		AND inventory_Ccode NOT LIKE '01%'

+ 16 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/mapper/xml/SyPackingListFabricMapper.xml

@@ -124,4 +124,20 @@
         WHERE ID IN (SELECT sy_Shipping_Order_Item_Id FROM Sy_Shipping_Order_ITEM
         WHERE tailoring_Fabric_Id=#{value} AND del_flag=0) and the_Documents_State=1
     </select>
+
+    <select id="getOM_MOMaterials" resultType="java.util.HashMap" parameterType="java.util.HashMap">
+        select * from OM_MOMaterials where
+                    MoDetailsID = ${map.MODetailsID }
+                    AND  cFree2 =  #{map.cFree2}
+    </select>
+            <!--
+                    AND isnull(cFree2,'') = isnull(#{map.cFree2},'')
+                    AND isnull(cFree3,'') = isnull(#{map.cFree3},'')
+                    AND isnull(cFree4,'') = isnull(#{map.cFree4},'')
+                    AND isnull(cFree5,'') = isnull(#{map.cFree5},'')
+                    AND isnull(cFree6,'') = isnull(#{map.cFree6},'')
+                    AND isnull(cFree7,'') = isnull(#{map.cFree7},'')
+                    AND isnull(cFree8,'') = isnull(#{map.cFree8},'')
+                    AND isnull(cFree9,'') = isnull(#{map.cFree9},'')
+                    AND isnull(cFree10,'') = isnull(#{map.cFree10},'')-->
 </mapper>

+ 3 - 3
jeecg-boot-module-system/src/main/java/org/jeecg/modules/splfi/service/ISyPackingListFabricService.java

@@ -77,9 +77,9 @@ public interface ISyPackingListFabricService extends IService<SyPackingListFabri
 
 	String excelTest(Map<String, SyPackingListFabric> maps);
 
-    void one(SyPackingListFabric main, Map<String, Object> map);
+	String one(SyPackingListFabric main, Map<String, Object> map);
 
-	void two(SyPackingListFabric main, Map<String, Object> map);
+	String two(SyPackingListFabric main, Map<String, Object> map);
 
-	void three(SyPackingListFabric main, Map<String, Object> map);
+	String three(SyPackingListFabric main, Map<String, Object> map);
 }

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

@@ -132,9 +132,9 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 			entity.setTotalPrice(entity.getActualDeclaredQuantity().multiply(entity.getPrice()));//实际报关数量*单价
 			if((entity.getInventoryCode().indexOf("03")!=-1&&!entity.getInventoryCode().equals("0399")) ||
 					(entity.getInventoryCode().indexOf("04")!=-1&&!entity.getInventoryCode().equals("0499"))){
-				if(entity!=null&&entity.getMasterMetering().equals("KG")){//当单位为KG时
+				if(entity.getMasterMetering()!=null&&entity.getMasterMetering().equals("KG")){//当单位为KG时
 					entity.setTotalPrice(entity.getNetWeight().multiply(entity.getPrice()));//净重*单价
-				}else if(entity!=null&&entity.getMasterMetering().equals("M")){
+				}else if(entity.getMasterMetering()!=null&&entity.getMasterMetering().equals("M")){
 					entity.setTotalPrice(entity.getMeter().multiply(entity.getPrice()));//净重*单价
 				}
 			}
@@ -290,7 +290,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 	//@Override
 	//@Scheduled(fixedRate=1000*60*300)
 	//@Transactional
-	public void getU8Data2() {
+	public void getU8Data3() {
 		SimpleDateFormat sf= new SimpleDateFormat("yyMMdd");
 		try{
 			QueryWrapper<DxpDataPlan> queryWrapper = new QueryWrapper<>();
@@ -703,31 +703,31 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 	@Override
 	@DS("multi-one")
-	public void one(SyPackingListFabric main, Map<String, Object> map) {
-		saveBatch(main,map);
+	public String one(SyPackingListFabric main, Map<String, Object> map) {
+		return saveBatch(main,map);
 	}
 
 	@Override
 	@DS("multi-two")
-	public void two(SyPackingListFabric main, Map<String, Object> map) {
-		saveBatch(main,map);
+	public String two(SyPackingListFabric main, Map<String, Object> map) {
+		return saveBatch(main,map);
 	}
 
 	@Override
 	@DS("multi-three")
-	public void three(SyPackingListFabric main, Map<String, Object> map) {
-		saveBatch(main,map);
+	public String three(SyPackingListFabric main, Map<String, Object> map) {
+		return saveBatch(main,map);
 	}
 
 
 
-	Map<String,Object> saveBatch(SyPackingListFabric main,Map<String,Object> mapt){
+	String saveBatch(SyPackingListFabric main,Map<String,Object> mapt){
 		mapt.put("customerCode","xxx");//进入方法时设置客户编码为空
 		if(main==null){
-			return new HashMap();//为空就传回空对象
+			return "";//为空就传回空对象
 		}
 		JSONArray mapList=new JSONArray();
-		//JSONArray mapList2=new JSONArray();
+		JSONArray mapList2=new JSONArray();
 		JSONArray mapList3=new JSONArray();
 		JSONArray mapList4=new JSONArray();
 		JSONArray mapList5=new JSONArray();
@@ -749,12 +749,13 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 			map.put("CMAKER",createBy);//制单人
 			map.put("cVouchType",1);//传1
 
-		/*	JSONObject map2=new JSONObject();//材料出库单
+			JSONObject map2=new JSONObject();//材料出库单
 			map2.put("CVOUCHCODE",org.jeecg.modules.system.util.oConvertUtils.addOne(purchaseWarehousingMapper.getMaxCode("cCode","rdrecord11","dnmaketime")));//单号
-			map2.put("DDATE",main.getCreateTime());//日期(格式2015-01-01)
+			map2.put("DDATE",createDate);//日期(格式2015-01-01)
 			map2.put("CHANDLER",createBy);//审核人
+			map2.put("CRDCODE","22");//暂时设置成默认 Rd_Style有相关数据
 			map2.put("CMAKER",createBy);//制单人
-			map2.put("cOrderCode",main.getOrderNumber());//销售订单号*/
+			map2.put("cOrderCode",main.getOrderNumber());//销售订单号
 
 			JSONObject map3=new JSONObject();//销售发货单
 			map3.put("CVOUCHCODE",org.jeecg.modules.system.util.oConvertUtils.addOne(purchaseWarehousingMapper.getMaxCode("cDLCode","DispatchList","dcreatesystime")));//发货单号
@@ -782,7 +783,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 			map6.put("CMAKER",createBy);//制单人名称
 
 			JSONArray mapItems=new JSONArray();
-			//JSONArray mapItems2=new JSONArray();
+			JSONArray mapItems2=new JSONArray();
 			JSONArray mapItems3=new JSONArray();
 			JSONArray mapItems4=new JSONArray();
 			JSONArray mapItems5=new JSONArray();
@@ -797,7 +798,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				map4.put("CGLTYPE","销售发货单");//来源单据类型
 				map5.put("CGLTYPE","委外订单");//来源单据类型
 				map6.put("CGLTYPE","销售出库单");//来源单据类型
-				//map2.put("CRDCODE","委外出库");//出库类别
+				map2.put("CGLTYPE","委外出库");//出库类别
 			}else {//查询采购订单表数据
 				if(mapt.get("orderNumber").equals("one")){
 					orderData=syPackingListTailoringMapper.getOmOrPo("PO_POMAIN","cPOID='"+mapt.get("mpOrder")+"'","POID");//委外订单号判断
@@ -809,7 +810,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				map4.put("CGLTYPE","销售发货单");//来源单据类型
 				map5.put("CGLTYPE","采购订单");//来源单据类型
 				map6.put("CGLTYPE","销售出库单");//来源单据类型
-				//map2.put("CRDCODE","采购出库");//出库类别
+				map2.put("CGLTYPE","采购出库");//出库类别
 			}
 			if(orderData!=null){
 				map.put("CVENCODE",orderData.get("cvencode"));//供应商编码
@@ -819,7 +820,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 			}
 			for (SyPackingListFabricItem item : main.getSyPackingListFabricItem()){
 				JSONObject mapItem=new JSONObject();
-				//JSONObject mapItem2=new JSONObject();
+				JSONObject mapItem2=new JSONObject();
 				JSONObject mapItem3=new JSONObject();
 				JSONObject mapItem4=new JSONObject();
 				JSONObject mapItem5=new JSONObject();
@@ -827,7 +828,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 
 				map.put("CACCID",mapt.get("account"));//账套号
-				//map2.put("CACCID",mapt.get("account"));//账套号
+				map2.put("CACCID",mapt.get("account"));//账套号
 				map3.put("CACCID",mapt.get("account"));//账套号
 				map4.put("CACCID",mapt.get("account"));//账套号
 				map5.put("CACCID",mapt.get("account"));//账套号
@@ -864,14 +865,23 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				}else{//委外订单子表数据  顺序---2
 					//第二次怎么获取采购订单的子表id	查询销售订单子表保存行号去绑定上游的账套
 					orderDataItem=syPackingListTailoringMapper.getOmOrPoItem("OM_MODetails", "MODetailsID='"+item.getOmpoIdItem()+"'","MODetailsID");
+					System.out.println("orderDataItem\n"+orderDataItem);
 					Map<String,Object> orderDataItem2=purchaseWarehousingMapper.getOMMoDetails(item.getOmpoIdItem());//获取自由项
 					getcFree(mapItem,orderDataItem2);
 					getcFree(mapItem5,orderDataItem2);
 					mapItem.put("POAUTOIDCOL","MODetailsID");//订单明细ID对应字段名(关联单据类型为采购订单传ID,为采购到货单为Autoid,为委外订单传MODetailsID,为委外到货单为Autoid)
 					mapItem.put("AUTOID_PO",orderDataItem.get("id"));//明细ID(采购订单行ID/委外订单行ID)
 					map5.put("CGLTYPE","委外订单");
-				/*	mapItem2.put("AUTOID_ALL",orderDataItem.get("id"));//关联明细ID
-					mapItem2.put("ALLCAUTOIDCOL","AllocateId");//订单明细ID对应字段名(固定AllocateId)*/
+
+					getcFree(mapItem2,orderDataItem2);
+					System.out.println("orderDataItem2\n"+orderDataItem2);
+					Map<String,Object> orderDataItem3 =syPackingListFabricMapper.getOM_MOMaterials(orderDataItem2);//委外订单子表
+					System.out.println("orderDataItem3\n"+orderDataItem3);
+					System.out.println("orderDataItem3\t"+orderDataItem3.size());
+					/*for (Map<String,Object> stringObjectMap : orderDataItem3){
+						mapItem2.put("AUTOID_ALL",stringObjectMap.get("MOMaterialsID"));//关联明细ID
+					}*/
+					mapItem2.put("ALLCAUTOIDCOL","MOMaterialsID");//订单明细ID对应字段名(固定MOMaterialsID) MOMaterialsID
 					mapItem5.put("POAUTOIDCOL","MODetailsID");//明细ID对应字段名(关联单据类型为采购订单传ID,委外订单传MODetailsID,入库单为Autoid)
 					mapItem5.put("AUTOID_PO",orderDataItem.get("id"));//明细ID(采购订单行ID/委外订单行ID)
 					mapItem5.put("IORITAXCOST",orderDataItem.get("iTaxPrice"));//原币单价
@@ -882,7 +892,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					String wheCode=syPackingListTailoringMapper.getWhCodeByVenCode(mapt.get("CVENCODE").toString());
 					if(wheCode!=null){
 						map.put("CWHCODE",wheCode);//仓库编码
-						//	map2.put("CWHCODE",wheCode);//仓库编码
+						map2.put("CWHCODE",wheCode);//仓库编码
 						map4.put("CWHCODE",wheCode);//仓库编码
 						mapItem3.put("CWHCODE",wheCode);//仓库编码	这个是子表需要字段
 						mapItem6.put("CWHCODE",wheCode);//仓库编码
@@ -908,9 +918,9 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					mapt.put("customerCode",order.get("cCusCode"));//客户编码
 					if(order!=null){//销售订单主表
 						//cPersonCode,cDepCode,cBusType,cPayCode,cexch_name,nflat
-						/*map2.put("CDEPCODE",order.get("cDepCode"));//部门编码(如果传空,取来源单据)
+						map2.put("CDEPCODE",order.get("cDepCode"));//部门编码(如果传空,取来源单据)
 						map2.put("CEXCH_NAME",order.get("cexch_name"));//币种名称(如果传空,接口默认人民币)
-						map2.put("CPERSONCODE",order.get("cPersonCode"));//业务员编码(如果传空,取来源单据)*/
+						map2.put("CPERSONCODE",order.get("cPersonCode"));//业务员编码(如果传空,取来源单据)
 						map.put("cOrderCode",order.get("cSOCode"));//销售订单号
 						map3.put("CBUSTYPE",order.get("cBusType"));//业务类型(普通销售、分期付款)(如果传空,取来源单据)
 						map4.put("CEXCH_NAME",order.get("cexch_name"));//币种名称(如果传空,传来源单据;无来源单据,默认人民币)
@@ -931,8 +941,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 				//mapItem.put("cBatch","x");//批号
 
-				/*mapItem2.put("CINVCODE",item.getInventoryCode());//存货编码(如果来源单据是委外订单,此字段需要传该订单的子件编码)
-				mapItem2.put("IQUANTITY",item.getTotal());//数量*/
+				mapItem2.put("CINVCODE",item.getInventoryCode());//存货编码(如果来源单据是委外订单,此字段需要传该订单的子件编码)
+				mapItem2.put("IQUANTITY",item.getActualDeclaredQuantity());//数量
 
 				mapItem3.put("CINVCODE",item.getInventoryCode());//存货编码
 				mapItem3.put("IQUANTITY",item.getActualDeclaredQuantity());//数量
@@ -952,7 +962,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 
 				mapItems.add(mapItem);
-				//mapItems2.add(mapItem2);
+				mapItems2.add(mapItem2);
 				mapItems3.add(mapItem3);
 				mapItems4.add(mapItem4);
 				mapItems5.add(mapItem5);
@@ -961,8 +971,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 			map.put("DETAILList",mapItems);//明细集合
 			mapList.add(map);
-		/*	map2.put("DETAILList",mapItems2);//明细集合
-			mapList2.add(map2);*/
+			map2.put("DETAILList",mapItems2);//明细集合
+			mapList2.add(map2);
 			map3.put("DETAILList",mapItems3);//明细集合
 			mapList3.add(map3);
 			map4.put("DETAILList",mapItems4);//明细集合
@@ -981,6 +991,17 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 			}
 			mapt.put("itemSort",mapSort);
 		}
+
+		if(true){
+			text(mapList,"采购入库单");
+			text(mapList2,"核销出库单");
+			text(mapList3,"销售发货单");
+			text(mapList4,"销售出库单");
+			text(mapList5,"采购发票单");
+			text(mapList6,"销售发票单");
+			return "";
+		}
+
 		text(mapList,"采购入库单");
 		text(mapList3,"销售发货单");
 		text(mapList5,"采购发票单");
@@ -1057,7 +1078,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 						recording=result(main,resturn6,"销售发票单",((Map) mapList.get(0)).get("CACCID").toString(),"5");//销售发票单
 						recording(main,recording);
 				}
-				return mapt;
+				return account+"账套推送成功!";
 			}
 		}
 
@@ -1124,7 +1145,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		recording=result(main,resturn6,"销售发票单",((Map) mapList.get(0)).get("CACCID").toString(),"5");//销售发票单
 		recording(main,recording);
 		//this.purchaseWarehousingMapper.updateVoucherHistoryCNumber(org.jeecg.modules.system.util.oConvertUtils.maxNumber(resturn6.getJSONObject(0).get("U8ReceiptNo").toString()),"120");
-		return mapt;
+		return mapList.getJSONObject(0).get("CACCID").toString()+"账套推送成功!";
 
 
 	}
@@ -1144,11 +1165,25 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 	public void recording(SyPackingListFabric syPackingListTailoring,String recording){
 		if(syPackingListTailoring.getRecording()!=null){
-			if(syPackingListTailoring.getRecording().substring(0,3).equals(recording.substring(0,3))){//如果是同一个账套号就被覆盖掉
-				syPackingListTailoring.setRecording(recording);
-			}else{
-				syPackingListTailoring.setRecording(syPackingListTailoring.getRecording()+","+recording);
+			String[] recordings=syPackingListTailoring.getRecording().split(",");
+			Map<String,Map<String,String>> maps=new HashMap<>();
+			for (int i=0;i<recordings.length;i++){
+				Map<String,String> map=new HashMap<>();
+				map.put("index",recordings[i].split("-")[1]);
+				map.put("code",recordings[i].split("-")[2]);
+				maps.put(recordings[i].split("-")[0],map);
 			}
+			Map<String,String> map=new HashMap<>();
+			String[] recording2s=recording.split("-");
+			map.put("index",recording2s[1]);
+			map.put("code",recording2s[2]);
+			maps.put(recording2s[0],map);
+			String recording3="";
+			for (String str1 : maps.keySet()){
+				Map<String,String> map1=maps.get(str1);
+				recording3+=str1+"-"+map1.get("index")+"-"+map1.get("code")+",";
+			}
+			syPackingListTailoring.setRecording(recording3.substring(0,recording3.length()-1));//截取最后的逗号
 		}else{
 			syPackingListTailoring.setRecording(recording);
 		}
@@ -1203,8 +1238,8 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 	//@Override
 	//@Transactional
-	@Scheduled(fixedRate=1000*60*300)
-	public void getU8Data(){
+	//@Scheduled(fixedRate=1000*60*3)
+	public void getU8Data2(){
 		try {
 			SimpleDateFormat sf = new SimpleDateFormat("yyMMdd");
 			String[] arrs = syPackingListFabricItemMapper.getu8Data();//获取发运明细已提交的辅料
@@ -1265,7 +1300,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					"and cInvCCode not like '04%'\n" +
 					"and cInvCCode not like '19%'\n" +
 					"and cCusCode='T020001' and\n" +
-						" f.AutoID in (" + maps.get(account).toString().substring(1, maps.get(account).toString().length() - 1) + ") ";
+						" f.ID  in (" + maps.get(account).toString().substring(1, maps.get(account).toString().length() - 1) + ") ";//查询主表全部拉取
 				List<Map<String, Object>> list = new ArrayList<>();
 				if (account.equals("903")) {
 					list = senYuDataSourceThree.queryForList(sql2);//903
@@ -1344,7 +1379,6 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					continue;//退出本次循环
 				}
 				List<JSONObject> jsonObjects = JsonChangeUtils.toJSONObject(listMain);
-				System.out.println("jsonObjects的长度\t" + jsonObjects.size());
 				//String time=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").format(System.currentTimeMillis());//获取现在时间
 				for (JSONObject json : jsonObjects) {
 					SyPackingListFabric sy = JSONObject.toJavaObject(json, SyPackingListFabric.class);
@@ -1365,4 +1399,172 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 			e.printStackTrace();
 		}
 	}
+
+
+	//@Override
+	//@Transactional
+	@Scheduled(fixedRate=1000*60*3)
+	public void getU8Data (){
+		try {
+			SimpleDateFormat sf = new SimpleDateFormat("yyMMdd");
+			String[] arrs = syPackingListFabricItemMapper.getu8Data();//获取发运明细已提交的辅料
+			Map<String, List<String>> maps = new HashMap<>();//获取两个账套
+			for (String arr : arrs) {
+				String account = arr.substring(0, 3);
+				String id = arr.substring(3);
+				if (maps.containsKey(account)) {
+					maps.get(account).add(id);
+				} else {
+					maps.put(account, new ArrayList<>());
+					maps.get(account).add(id);
+				}
+			}
+			for (String account : maps.keySet()) {//分成两类数据
+				//先插主表数据,然后根据主表id查询子表数据再添加
+				String sql ="select     \n" +
+						"a.id u8Id,       \n" +
+						"f.ID as  fId, \n"+
+						"'1' as is_U8_Data,    \n" +
+						"a.cMemo memo,    \n" +
+						"0 as delflag,    \n" +
+						"0 as status,     \n" +
+						"a.cMaker createby,    \n" +
+						"a.cMaker preparedBy,  \n" +
+						"a.cDefine10  exportInvoiceNo,  \n" +
+						"a.dnmaketime  preparedDate     \n" +
+						"from rdrecord32 a     \n" +
+						"left JOIN rdrecords32 b\n" +
+						"on a.id=b.id \n" +
+						"left join Inventory c\n" +
+						"on b.cInvCode=c.cInvCode\n" +
+						"LEFT JOIN Person  d\n" +
+						"ON d.cPersonCode = a.cPersonCode\n" +
+						"left join ComputationUnit e\n" +
+						"on c.cComunitCode=e.cComunitCode\n" +
+						"left join SO_SODetails f\n" +
+						"on b.iorderdid=f.iSOsID\n" +
+						"where f.ID in (" + maps.get(account).toString().
+						substring(1, maps.get(account).toString().length() - 1) + ") "+
+						"and cMaker!='进出口平台管理员'  "+
+						"and (cWhCode='PT0004' "+//面料
+						"or cWhCode='PT0005') "+//辅料
+						"and cCusCode='T020001'" ;//获取所有id
+				List<Map<String, Object>> listMain = new ArrayList<>();
+				if (account.equals("903")) {
+					listMain = senYuDataSourceThree.queryForList(sql);//903
+				} else {
+					listMain = senYuDataSourceTwo.queryForList(sql);//902
+				}
+				if (listMain.size() == 0) {
+					continue;//退出本次循环
+				}
+				List<JSONObject> jsonObjects = JsonChangeUtils.toJSONObject(listMain);
+				for (JSONObject json : jsonObjects) {//子表
+					SyPackingListFabric sy = JSONObject.toJavaObject(json, SyPackingListFabric.class);
+					QueryWrapper<SyPackingListFabric> queryWrapperCount = new QueryWrapper<>();
+					queryWrapperCount.like("create_time", new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis()));//获取今天时间
+					queryWrapperCount.eq("is_U8_Data", "1");//判断为辅料的数据
+					queryWrapperCount.select("lpad(count(0)+1,6,0) as id");
+					String dateNo = "FL" + sf.format(System.currentTimeMillis()) + getOne(queryWrapperCount).getId();//生成辅料单据号
+					sy.setDocumentNo(dateNo);//单据号
+					sy.setDataSource("2");//直接从u8拉取的数据
+					sy.setU8Id(account + sy.getU8Id());
+					sy.setId(sy.getU8Id());
+				//	sy.setGarmentFactory(maps3.get(sy.getId()));//获取成衣工厂
+					syPackingListFabricMapper.insert(sy);//添加数据
+					String sql2 = "select " +
+							"b.AutoID as u8id ,\n" +
+							"b.id as u8pid,\n" +
+							"b.id as syPackingListFabricId,\n" +
+							"left(b.csocode,ISNULL(NULLIF(CHARINDEX('-',b.csocode)-1,-1),len(b.csocode))) as planLotNumber,\n" +
+							"b.csocode as orderNumber,\n" +
+							account + " as account,\n" +
+							"0  as delflag,\n" +
+							"f.AutoID  as isosid,\n" +
+							"b.iQuantity  as inventoryQuantity,\n" +
+							"b.cbMemo as remarks,\n" +
+							"b.cbMemo as memo,\n" +
+							"f.iTaxUnitPrice as price,\n" +
+							"d.cPersonName as salesman,\n" +
+							"b.cDefine22 as itemNumber,\n" +
+							"b.cFree6 as gramWeight,\n" +
+							"b.cFree1 as colour,\n" +
+							"b.cInvCode as inventoryCode,\n" +
+							"c.cInvName as inventoryName,\n" +
+							"c.cInvName as composition,\n" +
+							"b.cFree2 as size ,\n" +
+							"f.cDefine35 as rolls,\n" +
+							"e.cComUnitName as masterMetering,\n" +
+							"b.cFree4 as width,\n" +
+							"c.cInvStd  as specificationAndModel\n" +
+							"from rdrecord32 a \n" +
+							"left JOIN rdrecords32 b\n" +
+							"on a.id=b.id \n" +
+							"left join Inventory c\n" +
+							"on b.cInvCode=c.cInvCode\n" +
+							"LEFT JOIN Person  d\n" +
+							"ON d.cPersonCode = a.cPersonCode\n" +
+							"left join ComputationUnit e\n" +
+							"on c.cComunitCode=e.cComunitCode\n" +
+							"left join SO_SODetails f\n" +
+							"on b.iorderdid=f.iSOsID\n" +
+							"where " +
+							"cMaker!='进出口平台管理员' "+
+							"and (cWhCode='PT0004' "+//面料
+							"or cWhCode='PT0005') "+//辅料
+							"and cCusCode='T020001' and\n" +
+							" f.ID  = "+sy.getFId();//查询主表全部拉取
+					List<Map<String, Object>> list = new ArrayList<>();
+					if (account.equals("903")) {
+						list = senYuDataSourceThree.queryForList(sql2);//903
+					} else {
+						list = senYuDataSourceTwo.queryForList(sql2);//902
+					}
+					List<JSONObject> jianSon = JsonChangeUtils.toJSONObject(list);
+					System.out.println("jianSon的长度\t" + jianSon.size());
+					for (JSONObject json1 : jianSon) {
+						SyPackingListFabricItem sy1 = JSONObject.toJavaObject(json1, SyPackingListFabricItem.class);
+						sy1.setU8Id(account + sy1.getU8Id());//获取账套号+id
+						sy1.setSyPackingListFabricId(account + sy1.getSyPackingListFabricId());//账套号+主表id
+						sy1.setId(sy1.getU8Id());
+						sy1.setIsosid(sy1.getAccount() + sy1.getIsosid());//账套号+销售订单id
+						sy1.setActualDeclaredQuantity(sy1.getInventoryQuantity());//给报关数量赋值
+						sy1.setGroupId(sy1.getOrderNumber() + "-" + sy1.getInventoryCode() + "-" + sy1.getSize());
+
+						QueryWrapper<SyShippingDetailsItem> queryWrapper2 = new QueryWrapper<>();
+						queryWrapper2.eq("sy_order_data_item_id", sy1.getIsosid());
+						queryWrapper2.last("limit 1");
+						SyShippingDetailsItem syShippingDetailsItem = syShippingDetailsItemMapper.selectOne(queryWrapper2);
+						if (syShippingDetailsItem != null) {
+							String elementsId = syShippingDetailsItem.getElementsId();//申报要素id
+							if (oConvertUtils.isNotEmpty(elementsId)) {
+								SyDeclarationElements syDeclarationElements = syDeclarationElementsMapper.selectById(elementsId);
+								if (syDeclarationElements != null) {
+									sy1.setDeclarationName(syDeclarationElements.getDeclarationName());//获取报关品名
+								}
+							}
+							//sy1.setPrice(syShippingDetailsItem.getSalesUnitPrice());//销售单价
+							sy1.setSupplierCodePrintingPlant(syShippingDetailsItem.getSupplierCode());//染厂供应商编码
+							sy1.setSupplierPrintingPlant(syShippingDetailsItem.getSupplierCode());//染厂供应商
+							sy1.setSupplier(syShippingDetailsItem.getSupplier());//供应商编码
+							sy1.setSupplierCode(syShippingDetailsItem.getSupplierCode());//供应商
+							sy1.setSyShippingDetailsId(syShippingDetailsItem.getShippingDetailsId());//出运明细主表id
+							sy1.setSyShippingDetailsItemId(syShippingDetailsItem.getId());//出运明细子表id
+							sy1.setManualYarnUnitPrice(syShippingDetailsItem.getManualYarnUnitPrice());//手册纱单价
+							sy1.setManualYarnFlag(syShippingDetailsItem.getManualYarnFlag());//是否手册纱
+							sy1.setManualYarnProportion(syShippingDetailsItem.getManualYarnProportion());//手册纱占比
+							sy.setGarmentFactory(syShippingDetailsItem.getGarmentFactory());//获取成衣工厂
+						}
+						if(sy1.getPrice()!=null&&sy1.getActualDeclaredQuantity()!=null){
+							sy1.setTotalPrice(sy1.getActualDeclaredQuantity().multiply(sy1.getPrice()));//实际报关数量*单价
+						}
+						syPackingListFabricItemMapper.insert(sy1);//插入新数据
+					}
+					syPackingListFabricMapper.updateById(sy);//添加数据
+				}
+			}
+		}catch (Exception e){
+			e.printStackTrace();
+		}
+	}
 }

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

@@ -1,6 +1,7 @@
 package org.jeecg.modules.splt.controller;
 
 import java.io.*;
+import java.lang.reflect.Array;
 import java.net.MalformedURLException;
 import java.net.URL;
 import java.net.URLConnection;
@@ -1364,22 +1365,4 @@ public class SyPackingListTailoringController {
 		 return  result;
 	 }
 
-	 @AutoLog(value = "重新推送u8")
-	 @ApiOperation(value="重新推送u8", notes="重新推送u8")
-	 @RequestMapping(value = "/testu8", method = {RequestMethod.POST})
-	 public Result testu8(String account,String recording){
-		 String message="";
-		 for (int i=0;i<3;i++){
-			 try {
-				print1(i);
-		  	 }catch (Exception e){
-			 	message+=e.getMessage();
-			 }
-		 }
-		 return Result.ok(message);
-	 }
-
-	void print1(int i){
-	 	throw new JeecgBootException("报错"+i+";");
-	}
 }

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

@@ -705,7 +705,7 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 		//账套号
 		if (main!=null){
 			Map<String,String> mapSort=new HashMap<>();
-
+//T0998
 			String createBy="进出口平台管理员";
 			//String createDate=main.getCreateTime().toString();
 			String createDate=new SimpleDateFormat("yyyy-MM-dd hh:mm:ss").format(main.getCreateTime());//转化日期类型
@@ -1069,11 +1069,25 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 
 	public void recording(SyPackingListTailoring syPackingListTailoring,String recording){
 		if(syPackingListTailoring.getRecording()!=null){
-			if(syPackingListTailoring.getRecording().substring(0,3).equals(recording.substring(0,3))){//如果是同一个账套号就被覆盖掉
-				syPackingListTailoring.setRecording(recording);
-			}else{
-				syPackingListTailoring.setRecording(syPackingListTailoring.getRecording()+","+recording);
+			String[] recordings=syPackingListTailoring.getRecording().split(",");
+			Map<String,Map<String,String>> maps=new HashMap<>();
+			for (int i=0;i<recordings.length;i++){
+				Map<String,String> map=new HashMap<>();
+				map.put("index",recordings[i].split("-")[1]);
+				map.put("code",recordings[i].split("-")[2]);
+				maps.put(recordings[i].split("-")[0],map);
+			}
+			Map<String,String> map=new HashMap<>();
+			String[] recording2s=recording.split("-");
+			map.put("index",recording2s[1]);
+			map.put("code",recording2s[2]);
+			maps.put(recording2s[0],map);
+			String recording3="";
+			for (String str1 : maps.keySet()){
+				Map<String,String> map1=maps.get(str1);
+				recording3+=str1+"-"+map1.get("index")+"-"+map1.get("code")+",";
 			}
+			syPackingListTailoring.setRecording(recording3.substring(0,recording3.length()-1));//截取最后的逗号
 		}else{
 			syPackingListTailoring.setRecording(recording);
 		}