فهرست منبع

云工厂接收接口调整,拉取u8面辅料接口调整

huxy 2 سال پیش
والد
کامیت
4dd34bba5e

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

@@ -1621,6 +1621,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 					sy.setDocumentNo(account+sy.getDocumentNo());//单据号
 					sy.setDataSource("u8拉取");//直接从u8拉取的数据
+					sy.setId(oConvertUtils.getId());
 					sy.setU8Id(account + sy.getU8Id());
 					//sy.setId(sy.getU8Id());
 					String sql2 = "select " +

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

@@ -6,6 +6,7 @@ import com.baomidou.dynamic.datasource.annotation.DS;
 import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
 import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
 import com.baomidou.mybatisplus.core.metadata.IPage;
+import org.hibernate.engine.jdbc.Size;
 import org.jeecg.common.api.vo.Result;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.util.oConvertUtils;
@@ -233,51 +234,102 @@ public class SyPackingListTailoringServiceImpl extends ServiceImpl<SyPackingList
 		Map<String,String> mapId=new HashMap<>();//key为发运明细子表id,value为分组id
 		syPackingListTailoring.setTotalBoxes(new BigDecimal("0"));
 		syPackingListTailoring.setTotalPrice(new BigDecimal("0"));
-		for(SyPackingListTailoringItem s1 : items){//调整面辅料云工厂接口,导入添加验证,改面辅料金额计算
-			SyPreAssembledPackingListItem syPreAssembledPackingListItem=syPreAssembledPackingListItemMapper.selectById(s1.getSyPreAssembledPackingListItemId());
-			if(syPreAssembledPackingListItem==null){
-				throw new JeecgBootException("数据库找不到对应的预装箱单子表id"+s1.getSyPreAssembledPackingListItemId());
+		/**
+		 * 获取所有的尺码和预装箱单子表id,创建map对象根据分组id,
+		 * 循环map.size次,根据map的key随机获取一条数据,有尺码数据的就不更改了,,无尺码数据的只更换尺码和预装箱单id
+		 * 最后在进行添加
+		 */
+		Map<String,String> sizes=new HashMap<>();
+		Map<String,List<SyPackingListTailoringItem>> maps=new HashMap<>();
+		for (SyPackingListTailoringItem item : items){
+			if(!sizes.containsKey(item.getSize())){//获取所有的尺码和预装箱单子表id
+				sizes.put(item.getSize(),item.getSyPreAssembledPackingListItemId());
+			}
+			if(maps.containsKey(item.getGroupId())){//根据分组id创建map对象
+				maps.get(item.getGroupId()).add(item);
+			}else{
+				List<SyPackingListTailoringItem> items1=new ArrayList<>();
+				items1.add(item);
+				maps.put(item.getGroupId(),items1);
+			}
+		}
+		items=new ArrayList<>();
+		for (String groupId : maps.keySet()){
+			SyPackingListTailoringItem item1=maps.get(groupId).get(0);
+			Map<String,Integer> sizes1=new HashMap<>();//获取尺码和数量
+			List<SizeTable> sizeTables=new ArrayList<>();
+			for (SyPackingListTailoringItem item : maps.get(groupId)){//获取该分组的所有尺码
+				sizes1.put(item.getSize(),item.getActualPackingQty().intValue());
 			}
-			s1.setId(null);
-			s1.setDelFlag("0");
-			BigDecimal total=s1.getTotal();
-			s1.setTotal(s1.getActualPackingQty().multiply(s1.getBoxNumber()));//各尺码数量
-			s1.setActualPackingQty(total);//合计
-			s1.setSyPackingListTailoringId(syPackingListTailoring.getId());//主表id
-			s1.setSyPreAssembledPackingListId(syPackingListTailoring.getSyPreAssembledPackingListId());//预装箱单主表id
-
-			if(!mapId.containsKey(s1.getGroupId())){//如果这个发运明细id没有分组id,就生成一个新的分组id
-				mapId.put(s1.getGroupId(), org.jeecg.modules.system.util.oConvertUtils.getId());//分组id
-				syPackingListTailoring.setTotalBoxes(syPackingListTailoring.getTotalBoxes().add(s1.getBoxNumber()));//总箱数
+			for (String size : sizes.keySet()){
+				SizeTable sizeTable=new SizeTable();
+				sizeTable.setSize(size);//获取尺码
+				sizeTable.setItemId(sizes.get(size));//获取预装箱单子表id
+				if(sizes1.containsKey(size)){//有尺码的获取数量
+					sizeTable.setProportion(sizes1.get(size));//获取数量
+				}else{//默认为0
+					sizeTable.setProportion(0);
+				}
+				sizeTables.add(sizeTable);
 			}
-			s1.setGroupId(mapId.get(s1.getGroupId()));//获取id
-			s1.setUnitPrice(syPreAssembledPackingListItem.getUnitPrice());//单价
-			try{
-				s1.setHod(new SimpleDateFormat("yyyy-MM-dd").parse(syPreAssembledPackingListItem.getHod()));//字符转化为日期,需要申明异常
-			}catch (Exception e){
-				e.printStackTrace();
+			item1.setSizeTables(sizeTables);
+			items.add(item1);
+		}
+		System.out.println("SyPackingListTailoringItem.size\t"+items.size());
+		for(SyPackingListTailoringItem s1 : items){
+			s1.setGroupId(org.jeecg.modules.system.util.oConvertUtils.getId());
+			syPackingListTailoring.setTotalBoxes(syPackingListTailoring.getTotalBoxes().add(s1.getBoxNumber()));//总箱数
+			for (SizeTable sizeTable : s1.getSizeTables()){//sizetable
+				SyPreAssembledPackingListItem syPreAssembledPackingListItem=syPreAssembledPackingListItemMapper.selectById(sizeTable.getItemId());
+				if(syPreAssembledPackingListItem==null){
+					throw new JeecgBootException("数据库找不到对应的预装箱单子表id"+s1.getSyPreAssembledPackingListItemId());
+				}
+				s1.setId(null);
+				s1.setDelFlag("0");
+				BigDecimal total=s1.getTotal();
+				s1.setTotal(new BigDecimal(sizeTable.getProportion()).multiply(s1.getBoxNumber()));//各尺码数量
+				s1.setSize(sizeTable.getSize());
+				s1.setActualPackingQty(total);//合计
+				s1.setSyPackingListTailoringId(syPackingListTailoring.getId());//主表id
+				s1.setSyPreAssembledPackingListId(syPackingListTailoring.getSyPreAssembledPackingListId());//预装箱单主表id
+
+				/*if(!mapId.containsKey(s1.getGroupId())){//如果这个发运明细id没有分组id,就生成一个新的分组id
+					mapId.put(s1.getGroupId(), org.jeecg.modules.system.util.oConvertUtils.getId());//分组id
+				}*/
+				//s1.setGroupId(mapId.get(s1.getGroupId()));//获取id
+				s1.setUnitPrice(syPreAssembledPackingListItem.getUnitPrice());//单价
+				try{
+					s1.setHod(new SimpleDateFormat("yyyy-MM-dd").parse(syPreAssembledPackingListItem.getHod()));//字符转化为日期,需要申明异常
+				}catch (Exception e){
+					e.printStackTrace();
+				}
+				s1.setTotalPrice(s1.getTotal().multiply(s1.getUnitPrice()));//计算总价
+
+				s1.setSyOrderDataId(syPreAssembledPackingListItem.getSyOrderDataId());//订单数据子表id
+				s1.setSyOrderDataItemId(syPreAssembledPackingListItem.getSyOrderDataItemId());//订单数据子表id
+				s1.setOmpoAccount(syPreAssembledPackingListItem.getOmpoAccount());//采购委外账套号
+				s1.setOmpoId(syPreAssembledPackingListItem.getOmpoId());//采购委外主表id
+				s1.setOmpoIdItem(syPreAssembledPackingListItem.getOmpoIdItem());//采购委外子表id
+
+				s1.setSalesman(syPreAssembledPackingListItem.getSalesman());//业务员
+				s1.setSalesDepartment(syPreAssembledPackingListItem.getSalesDepartment());//业务部门
+				s1.setSpurOrSubOrder(syPreAssembledPackingListItem.getSpurOrSubOrder());//采购委外订单号
+				s1.setMasterMetering(syPreAssembledPackingListItem.getMasterMetering());//计量单位
+				s1.setFactoryUnitPrice(syPreAssembledPackingListItem.getFactoryUnitPrice());//工厂单价
+				s1.setInventoryCcode(syPreAssembledPackingListItem.getInventoryCcode());//物料分类
+				s1.setWithCode(syPreAssembledPackingListItem.getWithCode());//配码规则
+				s1.setPackId(syPreAssembledPackingListItem.getPackId());
+				s1.setSupplier(syPreAssembledPackingListItem.getSupplier());
+				s1.setSupplierCode(syPreAssembledPackingListItem.getSupplierCode());
+				s1.setYmoney(syPreAssembledPackingListItem.getYmoney());//佣金
+				s1.setElementsId(syPackingListTailoring.getElementsId());//申报要素id
+				syPackingListTailoring.setTotalPrice(syPackingListTailoring.getTotalPrice().add(s1.getTotalPrice()));//总价
+				syPackingListTailoring.setCreateTime(null);
+				if(s1.getTotal().doubleValue()==0){
+					s1.setTotal(null);
+				}
+				syPackingListTailoringItemMapper.insert(s1);//新增子表数据
 			}
-			s1.setTotalPrice(s1.getTotal().multiply(s1.getUnitPrice()));//计算总价
-			s1.setSyOrderDataId(syPreAssembledPackingListItem.getSyOrderDataId());//订单数据子表id
-			s1.setSyOrderDataItemId(syPreAssembledPackingListItem.getSyOrderDataItemId());//订单数据子表id
-			s1.setSalesman(syPreAssembledPackingListItem.getSalesman());//业务员
-			s1.setSalesDepartment(syPreAssembledPackingListItem.getSalesDepartment());//业务部门
-			s1.setSpurOrSubOrder(syPreAssembledPackingListItem.getSpurOrSubOrder());//采购委外订单号
-			s1.setMasterMetering(syPreAssembledPackingListItem.getMasterMetering());//计量单位
-			s1.setFactoryUnitPrice(syPreAssembledPackingListItem.getFactoryUnitPrice());//工厂单价
-			s1.setInventoryCcode(syPreAssembledPackingListItem.getInventoryCcode());//物料分类
-			s1.setWithCode(syPreAssembledPackingListItem.getWithCode());//配码规则
-			s1.setOmpoAccount(syPreAssembledPackingListItem.getOmpoAccount());//采购委外账套号
-			s1.setPackId(syPreAssembledPackingListItem.getPackId());
-			s1.setSupplier(syPreAssembledPackingListItem.getSupplier());
-			s1.setSupplierCode(syPreAssembledPackingListItem.getSupplierCode());
-			s1.setYmoney(syPreAssembledPackingListItem.getYmoney());//佣金
-			s1.setElementsId(syPackingListTailoring.getElementsId());//申报要素id
-			s1.setOmpoId(syPreAssembledPackingListItem.getOmpoId());//采购委外主表id
-			s1.setOmpoIdItem(syPreAssembledPackingListItem.getOmpoIdItem());//采购委外子表id
-			syPackingListTailoring.setTotalPrice(syPackingListTailoring.getTotalPrice().add(s1.getTotalPrice()));//总价
-			syPackingListTailoring.setCreateTime(null);
-			syPackingListTailoringItemMapper.insert(s1);//新增子表数据
 		}
 		syPackingListTailoringMapper.updateById(syPackingListTailoring);
 		return syPackingListTailoring;