Przeglądaj źródła

增加面辅料导入公式计算

huxy 2 lat temu
rodzic
commit
cbab5d0de8

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

@@ -22,6 +22,7 @@ import com.alibaba.fastjson.JSONObject;
 import com.google.gson.Gson;
 import com.google.gson.GsonBuilder;
 import org.apache.poi.ss.usermodel.*;
+import org.apache.poi.xssf.usermodel.XSSFFormulaEvaluator;
 import org.apache.poi.xssf.usermodel.XSSFWorkbook;
 import org.jeecg.common.exception.JeecgBootException;
 import org.jeecg.common.system.api.ISysBaseAPI;
@@ -560,7 +561,22 @@ public class SyPackingListFabricController {
 								 throw new JeecgBootException("请填写第"+(x+1)+"行里的"+sheet.getRow(3).getCell(i));
 							 }
 						 }
-						 itemStrs.add(cell.toString());
+						 FormulaEvaluator formulaEvaluator = new XSSFFormulaEvaluator((XSSFWorkbook) workbook1);
+						 //获取单元格内容的类型
+						 CellType cellType = cell.getCellType();
+						 //判断是否存储的为公式,此处本可以不加判断
+						 if (cellType.equals(CellType.FORMULA)){
+							 //获取公式,可以理解为已String类型获取cell的值输出
+							 String cellFormula = cell.getCellFormula();
+							 System.out.println(cellFormula);
+							 //执行公式,此处cell的值就是公式
+							 CellValue evaluate = formulaEvaluator.evaluate(cell);
+							 System.out.println(evaluate.formatAsString());
+							 itemStrs.add(evaluate.formatAsString());
+						 }else{
+							 itemStrs.add(cell.toString());
+						 }
+
 					 }
 					 SyPackingListFabricItem syPackingListFabricItem=new SyPackingListFabricItem(itemStrs.toArray(new String[itemStrs.size()]));
 					 items.add(syPackingListFabricItem);

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

@@ -195,7 +195,11 @@ public class SyPackingListFabric implements Serializable {
 		plumbumNo=strs[3];
 		exportInvoiceNo=strs[4];
 		//createTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(strs[5]);
-		preparedDate=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(strs[5]);
+		try{
+			preparedDate=new SimpleDateFormat("yyyy/m/d").parse(strs[5]);
+		}catch (Exception e){
+			preparedDate=new SimpleDateFormat("yyyy-MM-dd").parse(new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis()));
+		}
 		//createTime=new SimpleDateFormat("yyyy-MM-dd HH:mm:ss").parse(strs[0]) ;
 		//documentNo=strs[0];
 	}

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

@@ -88,6 +88,12 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 	private ISenYuDataSourceThree senYuDataSourceThree;
 	@Autowired
 	private IDxpDataPlanService dxpDataPlanService;
+
+	/**
+	 * 添加
+	 * @param syPackingListFabric
+	 * @return
+	 */
 	@Override
 	@Transactional
 	public synchronized SyPackingListFabric saveMain(SyPackingListFabric syPackingListFabric) {
@@ -96,6 +102,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		syPackingListFabric.setDelFlag("0");
 		syPackingListFabric.setStatus("0");
 		syPackingListFabric.setDocumentNo(dateNo);//单据号
+		syPackingListFabric.setDataSource("参照出运明细");//参照
 		syPackingListFabric.setPreparedBy("admin");//将admin设置为制单人
 		syPackingListFabric.setCreateBy("admin");//将admin设置为制单人
 		syPackingListFabricMapper.insert(syPackingListFabric);
@@ -383,6 +390,10 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		}
 	}
 
+	/***
+	 *
+	 * @param syPackingListTailorings
+	 */
 	@Override
 	@Transactional
 	public void saveList(List<SyPackingListFabric> syPackingListTailorings) {
@@ -396,7 +407,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 			queryWrapperCount.select("lpad(count(0)+1,6,0) as id");*/
 			String dateNo ="ML"+sf.format(System.currentTimeMillis());//获取单据号
 			syPackingListFabric.setDocumentNo(dateNo);//单据号
-			syPackingListFabric.setDataSource("3");//云工厂推送的数据
+			syPackingListFabric.setDataSource("云工厂推送");//云工厂推送的数据
 			syPackingListFabric.setWhetherCloudFactoryPush("1");//1代表是云工厂推送的
 			syPackingListFabric.setStatus("0");
 			syPackingListFabric.setDelFlag("0");
@@ -422,6 +433,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					syPackingListFabric.setSyDeclarationElementsId(item.getShippingDetailsId());//出运明细主表id
 					s1.setSpecificationAndModel(item.getSpecificationAndModel());//规格型号
 					s1.setAccount(item.getAccount());//账套号
+					s1.setPurOrSubOrder(item.getPurOrSubOrder());//委外采购订单
 					s1.setOrderNumber(item.getOrderNumber());//订单号
 
 					if((s1.getInventoryCcode().indexOf("03")!=-1&&!s1.getInventoryCcode().equals("0399")) ||
@@ -482,6 +494,11 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 		}
 	}
 
+	/**
+	 * excel导入
+	 * @param maps
+	 * @return
+	 */
 	@Override
 	@Transactional
 	public boolean excelAdd(Map<String,SyPackingListFabric> maps) {
@@ -494,6 +511,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 				//syPackingListFabric.setGarmentFactory(str);//成衣工厂
 				syPackingListFabric.setDocumentNo(dateNo);//单据号
 				syPackingListFabric.setStatus("0");//状态
+				syPackingListFabric.setDataSource("excel导入");//excel导入
 				syPackingListFabric.setPreparedBy("admin");//制单人
 				syPackingListFabric.setCreateBy("admin");//制单人
 				//syPackingListFabric.setPreparedDate(new SimpleDateFormat("yyyy-MM-dd").parse(new SimpleDateFormat("yyyy-MM-dd").format(System.currentTimeMillis())));
@@ -515,6 +533,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					item.setSyOrderDataItemId(syShippingDetailsItem.getSyOrderDataItemId());//销售订单主表id
 					item.setSyOrderDataId(syShippingDetailsItem.getSyOrderDataId());//销售订单子表id
 					item.setGroupId(oConvertUtils.getId());
+					item.setPurOrSubOrder(syShippingDetailsItem.getPurOrSubOrder());//委外采购订单
 					item.setManualYarnUnitPrice(syShippingDetailsItem.getManualYarnUnitPrice());//手册纱单价
 					item.setManualYarnProportion(syShippingDetailsItem.getManualYarnProportion());//手册纱占比%
 					item.setInventoryName(syShippingDetailsItem.getInventoryName());//存货名称(辅料名称)
@@ -853,7 +872,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 
 					if(item.getInventoryCcode()!=null&&item.getInventoryCcode().indexOf("040")>-1&&mapt.get("account").equals("903")){//903账套中物料分类为040的印花面料
 						List<Map<String,Object>> orderDataItem3 =syPackingListFabricMapper.getOM_MOMaterials(item.getOmpoIdItem(),item.getInventoryCode());//委外订单子表
-						Map<String,Object> mapStr1=syPackingListFabricMapper.getOM_MOMain(item.getOmpoIdItem(),item.getInventoryCode());//供应商编码,仓库编码
+						Map<String,Object> mapStr1=syPackingListFabricMapper.getOM_MOMain(item.getOmpoIdItem(),item.getInventoryCode());//供应商编码,存货编码
 						System.out.println("mapStr1\n"+mapStr1);
 						if(mapStr1==null) {
 							throw new JeecgBootException(mapt.get("account")+"账套,委外订单子表行id"+item.getOmpoIdItem()+"未找到对应的染厂物料");
@@ -1366,7 +1385,7 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 					String dateNo = "FL" + sf.format(System.currentTimeMillis()) + getOne(queryWrapperCount).getId();//生成辅料单据号*/
 
 					sy.setDocumentNo(account+sy.getDocumentNo());//单据号
-					sy.setDataSource("2");//直接从u8拉取的数据
+					sy.setDataSource("u8拉取");//直接从u8拉取的数据
 					sy.setU8Id(account + sy.getU8Id());
 					sy.setId(sy.getU8Id());
 					String sql2 = "select " +
@@ -1466,6 +1485,10 @@ public class SyPackingListFabricServiceImpl extends ServiceImpl<SyPackingListFab
 							}
 							sy1.setElementsId(elementsId);//申报要素id
 							sy1.setSupplier(syShippingDetailsItem.getSupplier());//供应商编码
+							sy1.setOmpoAccount(syShippingDetailsItem.getOmpoAccount());//账套号
+							sy1.setOmpoIdItem(syShippingDetailsItem.getOmpoIdItem());//委外采购子表id
+							sy1.setOmpoId(syShippingDetailsItem.getOmpoId());//委外采购主表id
+							sy1.setPurOrSubOrder(syShippingDetailsItem.getPurOrSubOrder());//委外采购订单号
 							sy1.setSupplierCode(syShippingDetailsItem.getSupplierCode());//供应商
 							sy1.setSupplierPrintingPlant(syShippingDetailsItem.getSupplier());//供应商编码
 							sy1.setSupplierCodePrintingPlant(syShippingDetailsItem.getSupplierCode());//供应商