Procházet zdrojové kódy

面料损耗更新

fenghaifu před 2 roky
rodič
revize
31a843bb61

+ 4 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/entity/FabricPoOrderOut.java

@@ -29,10 +29,14 @@ public class FabricPoOrderOut {
 	Double iQuantity;
 	@ApiModelProperty(value = "采购单价")
 	Double iPrice;
+	@ApiModelProperty(value = "金额")
+	Double iMoney;
 	@ApiModelProperty(value = "物料名称")
 	String cInvName;
 	@ApiModelProperty(value = "物料编码")
 	String cInvCode;
 	@ApiModelProperty(value = "颜色")
 	String cColor;
+	@ApiModelProperty(value = "批号")
+	String cBatch;
 }

+ 139 - 61
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/mapper/xml/FabricLossMapper.xml

@@ -86,49 +86,98 @@
 	</select>
 	<!-- 其他入库纱,找委外订单的材料出库单,获取物料号+批号,物料号+批号再其他入库单 -->
 	<select id="getPurchaseListOtherInList" resultType="org.jeecg.modules.report.entity.FabricPoOrderOut">
-		select cCode,sum(iQuantity*iPrice)/sum(iQuantity) as iPrice, sum(iQuantity) as iQuantity from
 		(
-		SELECT
-			a.comcode as cCode,isnull(a.iSQuantity,a.iquantity) as iQuantity,a.iUnitCost as iPrice
-		FROM
-			rdrecords11 a
-			INNER JOIN Inventory d ON a.cinvcode = d.cinvcode
-		WHERE
-		(a.cbatch is null or a.cbatch='' or a.cbatch &lt;&gt; '期初') and
-		(d.cInvCCode LIKE '01%'
-			or d.cInvCCode LIKE '02%'
-			or d.cInvCCode LIKE '03%'
-			or d.cInvCCode LIKE '04%')
-			and a.comcode LIKE CONCAT(#{code},'%')
-			AND (a.cInvCode + isnull( a.cFree1, '' ) + isnull( a.cBatch, '' ) IN (
-				SELECT
+			SELECT
+				a.comcode as cCode,isnull(a.iSQuantity,a.iquantity) as iQuantity,isnull(a.iUnitCost,0) as iPrice,isnull(a.cBatch,'') as cBatch,
+				isnull(isnull(stuff((SELECT ',' + x.cdefine9 FROM rdrecord08 x
+					inner join RdRecords08 y on x.id=y.id
+					where y.cInvCode + isnull( y.cFree1, '' ) + isnull( y.cBatch, '' )=
+					a.cInvCode + isnull( a.cFree1, '' ) + isnull( a.cBatch, '' ) FOR XML path('') ), 1, 1, ''),cBatch),'') as cPlanCode
+			FROM
+				rdrecords11 a
+				INNER JOIN Inventory d ON a.cinvcode = d.cinvcode
+			WHERE
+				(a.cbatch is null or a.cbatch='' or a.cbatch &lt;&gt; '期初') and
+				(d.cInvCCode LIKE '01%' or d.cInvCCode LIKE '02%' or d.cInvCCode LIKE '03%' or d.cInvCCode LIKE '04%') and
+				a.comcode LIKE CONCAT(#{code},'%') and
+				a.cInvCode + isnull( a.cFree1, '' ) + isnull( a.cBatch, '' ) IN (
+					SELECT
 					b.cInvCode + isnull( b.cFree1, '' ) + isnull( b.cBatch, '' )
-				FROM
+					FROM
 					RdRecords08 b
 					INNER JOIN rdrecord08 a ON a.id = b.ID
-				WHERE
+					WHERE
 					a.cbustype = '其他入库'
-			) or a.cInvCode + isnull( a.cFree1, '' ) + isnull( a.cBatch, '' ) IN (
-				select cInvCode2+isnull(cColor2,'')+isnull(cAVBatch2,'') from VIEW_FabricLoss_AssemVouchs where
-				cInvCode+isnull(cColor,'')+isnull(cAVBatch,'') in (
-				select b.cInvCode + isnull( b.cFree1, '' ) + isnull( b.cBatch, '' )
-				FROM
+				) and
+				d.cinvname &lt;&gt; '杂纱'
+		) union all (
+			SELECT
+				a.comcode as cCode,isnull(a.iSQuantity,a.iquantity) as iQuantity,isnull(a.iUnitCost,0) as iPrice,isnull(a.cBatch,'') as cBatch,
+				isnull(isnull(stuff((SELECT ',' + x.cdefine9 FROM rdrecord08 x
+					inner join RdRecords08 y on x.id=y.id
+					where y.cInvCode + isnull( y.cFree1, '' ) + isnull( y.cBatch, '' ) in (
+					select cInvCode+isnull(cColor,'')+isnull(cAVBatch,'') from VIEW_FabricLoss_AssemVouchs where
+					cInvCode2+isnull(cColor2,'')+isnull(cAVBatch2,'')=a.cInvCode + isnull( a.cFree1, '' ) + isnull( a.cBatch, '' )
+					) FOR XML path('') ), 1, 1, ''),cBatch),'') as cPlanCode
+			FROM
+				rdrecords11 a
+				INNER JOIN Inventory d ON a.cinvcode = d.cinvcode
+			WHERE
+				(a.cbatch is null or a.cbatch='' or a.cbatch &lt;&gt; '期初') and
+				(d.cInvCCode LIKE '01%' or d.cInvCCode LIKE '02%' or d.cInvCCode LIKE '03%' or d.cInvCCode LIKE '04%') and
+				a.comcode LIKE CONCAT(#{code},'%') and
+				a.cInvCode + isnull( a.cFree1, '' ) + isnull( a.cBatch, '' ) IN (
+					select cInvCode2+isnull(cColor2,'')+isnull(cAVBatch2,'') from VIEW_FabricLoss_AssemVouchs where
+					cInvCode+isnull(cColor,'')+isnull(cAVBatch,'') in (
+					select b.cInvCode + isnull( b.cFree1, '' ) + isnull( b.cBatch, '' )
+					FROM
+						RdRecords08 b
+						INNER JOIN rdrecord08 a ON a.id = b.ID
+					WHERE
+					a.cbustype = '其他入库'
+					)
+				) and
+				a.cInvCode + isnull( a.cFree1, '' ) + isnull( a.cBatch, '' ) not IN (
+					SELECT
+					b.cInvCode + isnull( b.cFree1, '' ) + isnull( b.cBatch, '' )
+					FROM
 					RdRecords08 b
 					INNER JOIN rdrecord08 a ON a.id = b.ID
-				WHERE
+					WHERE
 					a.cbustype = '其他入库'
-				)
-			) or d.cinvname='杂纱'
-			)
-		) as t1 group by cCode
+				) and
+				d.cinvname &lt;&gt; '杂纱'
+		) union all (
+			SELECT
+				a.comcode as cCode,isnull(a.iSQuantity,a.iquantity) as iQuantity,isnull(a.iUnitCost,0) as iPrice,isnull(a.cBatch,'') as cBatch,'杂纱' as cPlanCode
+			FROM
+				rdrecords11 a
+				INNER JOIN Inventory d ON a.cinvcode = d.cinvcode
+			WHERE
+				(a.cbatch is null or a.cbatch='' or a.cbatch &lt;&gt; '期初') and
+				(d.cInvCCode LIKE '01%' or d.cInvCCode LIKE '02%' or d.cInvCCode LIKE '03%' or d.cInvCCode LIKE '04%') and
+				a.comcode LIKE CONCAT(#{code},'%') and
+				d.cinvname='杂纱'
+		)
 	</select>
 	<!-- 来源余纱,找委外订单的材料出库单,获取物料号+批号。如果物料号+批号在形态转换单中,取转换前物料+批号。判断物料+批号,是否在其他采购入库里 -->
 	<select id="getPurchaseListOtherPurInList" resultType="org.jeecg.modules.report.entity.FabricPoOrderOut">
-		select cCode,sum(iPrice)/count(iPrice) as iPrice, sum(iQuantity) as iQuantity from
 		(
 		SELECT
 			a.comcode as cCode,case when a.iSQuantity is null or a.iSQuantity=0 then a.iquantity else a.iSQuantity end as iQuantity,
-			a.iUnitCost as iPrice
+			isnull(a.iUnitCost,0) as iPrice,isnull(a.cBatch,'') as cBatch,
+			case when a.cBatch is not null and a.cBatch='期初' then '期初'
+			else
+				isnull(stuff((
+				select ','+x.cPOID from RdRecords01 u
+				inner join RdRecord01 v on u.id=v.id
+				inner join PO_Podetails w on u.iPOsID =w.ID
+				inner join PO_Pomain x on w.POID  =x.POID
+				where x.cPOID  not like CONCAT(#{code},'%') and v.cbustype='普通采购' and
+				u.cinvcode+isnull(u.cfree1,'')+isnull(u.cbatch,'') = a.cInvCode+isnull(a.cFree1,'')+isnull(a.cbatch,'')
+				FOR XML path('')
+				), 1, 1, ''),'')
+			end	as cPlanCode
 		FROM
 			rdrecords11 a
 			INNER JOIN Inventory d ON a.cinvcode = d.cinvcode
@@ -136,40 +185,69 @@
 			(d.cInvCCode LIKE '01%'
 			or d.cInvCCode LIKE '02%'
 			or d.cInvCCode LIKE '03%'
-			or d.cInvCCode LIKE '04%')
-			and a.comcode LIKE CONCAT(#{code},'%')
-			and d.cInvName&lt;&gt;'杂纱'
-			and (
-				a.cInvCode+isnull(a.cFree1,'')+isnull(a.cbatch,'') in (
-				select b.cinvcode+isnull(b.cfree1,'')+isnull(b.cbatch,'') from RdRecords01 b
-				inner join RdRecord01 a on a.id=b.id
-				inner join PO_Podetails  c on b.iPOsID =c.ID
-				inner join PO_Pomain d on c.POID  =d.POID
-				where d.cPOID  not like CONCAT(#{code},'%') and a.cbustype='普通采购'
-				)  and a.cInvCode+isnull(a.cFree1,'')+isnull(a.cbatch,'') not in (
-				select b.cinvcode+isnull(b.cfree1,'')+isnull(b.cbatch,'') from RdRecords01 b
-				inner join RdRecord01 a on a.id=b.id
-				inner join PO_Podetails  c on b.iPOsID =c.ID
-				inner join PO_Pomain d on c.POID  =d.POID
-				where d.cPOID  like CONCAT(#{code},'%') and a.cbustype='普通采购'
-				)
-				or a.cInvCode+isnull(a.cFree1,'')+isnull(a.cbatch,'') in (
-					select cInvCode2+isnull(cColor2,'')+isnull(cAVBatch2,'') from VIEW_FabricLoss_AssemVouchs where
-						cInvCode+isnull(cColor,'')+isnull(cAVBatch,'') in (
-						select b.cinvcode+isnull(b.cfree1,'')+isnull(b.cbatch,'') from RdRecords01 b
-						inner join RdRecord01 a on a.id=b.id
-						inner join PO_Podetails  c on b.iPOsID =c.ID
-						inner join PO_Pomain d on c.POID  =d.POID
-						where d.cPOID not like CONCAT(#{code},'%') and a.cbustype='普通采购')
-						and cInvCode+isnull(cColor,'')+isnull(cAVBatch,'') not in (
-						select b.cinvcode+isnull(b.cfree1,'')+isnull(b.cbatch,'') from RdRecords01 b
-						inner join RdRecord01 a on a.id=b.id
-						inner join PO_Podetails  c on b.iPOsID =c.ID
-						inner join PO_Pomain d on c.POID  =d.POID
-						where d.cPOID like CONCAT(#{code},'%') and a.cbustype='普通采购')
+			or d.cInvCCode LIKE '04%') and
+			a.comcode LIKE 'SYM738%' and
+			d.cInvName &lt;&gt; '杂纱' and
+			a.cInvCode+isnull(a.cFree1,'')+isnull(a.cbatch,'') in (
+			select b.cinvcode+isnull(b.cfree1,'')+isnull(b.cbatch,'') from RdRecords01 b
+			inner join RdRecord01 a on a.id=b.id
+			inner join PO_Podetails  c on b.iPOsID =c.ID
+			inner join PO_Pomain d on c.POID  =d.POID
+			where d.cPOID  not like CONCAT(#{code},'%') and a.cbustype='普通采购'
+			)  and
+			a.cInvCode+isnull(a.cFree1,'')+isnull(a.cbatch,'') not in (
+			select b.cinvcode+isnull(b.cfree1,'')+isnull(b.cbatch,'') from RdRecords01 b
+			inner join RdRecord01 a on a.id=b.id
+			inner join PO_Podetails  c on b.iPOsID =c.ID
+			inner join PO_Pomain d on c.POID  =d.POID
+			where d.cPOID  like CONCAT(#{code},'%') and a.cbustype='普通采购'
+			)
+		) union all (
+		SELECT
+			a.comcode as cCode,case when a.iSQuantity is null or a.iSQuantity=0 then a.iquantity else a.iSQuantity end as iQuantity,
+			isnull(a.iUnitCost,0) as iPrice,isnull(a.cBatch,'') as cBatch,
+			case when a.cBatch is not null and a.cBatch='期初' then '期初'
+			else
+				isnull(stuff((
+				select ','+x.cPOID from RdRecords01 u
+				inner join RdRecord01 v on u.id=v.id
+				inner join PO_Podetails w on u.iPOsID =w.ID
+				inner join PO_Pomain x on w.POID  =x.POID
+				where x.cPOID  not like CONCAT(#{code},'%') and v.cbustype='普通采购' and
+				u.cinvcode+isnull(u.cfree1,'')+isnull(u.cbatch,'') in (
+				select cInvCode+isnull(cColor,'')+isnull(cAVBatch,'') from VIEW_FabricLoss_AssemVouchs where
+				cInvCode2+isnull(cColor2,'')+isnull(cAVBatch2,'')=a.cInvCode+isnull(a.cFree1,'')+isnull(a.cbatch,'')
 				)
+
+				FOR XML path('')
+				), 1, 1, ''),'')
+			end	as cPlanCode
+		FROM
+			rdrecords11 a
+			INNER JOIN Inventory d ON a.cinvcode = d.cinvcode
+		WHERE
+			(d.cInvCCode LIKE '01%'
+			or d.cInvCCode LIKE '02%'
+			or d.cInvCCode LIKE '03%'
+			or d.cInvCCode LIKE '04%') and
+			a.comcode LIKE CONCAT(#{code},'%') and
+			d.cInvName &lt;&gt; '杂纱' and
+			a.cInvCode+isnull(a.cFree1,'')+isnull(a.cbatch,'') in (
+				select cInvCode2+isnull(cColor2,'')+isnull(cAVBatch2,'') from VIEW_FabricLoss_AssemVouchs where
+				cInvCode+isnull(cColor,'')+isnull(cAVBatch,'') in (
+					select b.cinvcode+isnull(b.cfree1,'')+isnull(b.cbatch,'') from RdRecords01 b
+					inner join RdRecord01 a on a.id=b.id
+					inner join PO_Podetails  c on b.iPOsID =c.ID
+					inner join PO_Pomain d on c.POID  =d.POID
+					where d.cPOID not like CONCAT(#{code},'%') and a.cbustype='普通采购')
+				and cInvCode+isnull(cColor,'')+isnull(cAVBatch,'') not in (
+					select b.cinvcode+isnull(b.cfree1,'')+isnull(b.cbatch,'') from RdRecords01 b
+					inner join RdRecord01 a on a.id=b.id
+					inner join PO_Podetails  c on b.iPOsID =c.ID
+					inner join PO_Pomain d on c.POID  =d.POID
+					where d.cPOID like CONCAT(#{code},'%') and a.cbustype='普通采购')
 			)
-		) as t1 group by cCode
+		)
 	</select>
 	<!--获取所有委外订单 cComUnitCode : 计量单位,02(PCS)根,04(M)米-->
 	<select id="getOmOrderListAll" resultType="org.jeecg.modules.report.entity.FabricOMOrder">

+ 109 - 11
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/service/impl/FabricLossServiceImpl.java

@@ -243,6 +243,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
 				fabricPoOrder.setFabricPoOrderOutList(findFabricPoOrderOutList);
 			}
 			// 采购入库-来源余纱
+			/*
 			List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code);
 			FabricPoOrder fabricPoOrderLyys = new FabricPoOrder();
 			fabricPoOrderLyys.setCInvName("来源余纱");
@@ -266,7 +267,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
 				BigDecimal bdVal = new BigDecimal(fabricPoOrderLyys.getIQuantityIn());
 				fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
 			}
+			*/
+			fabricPoOrderList.add(getPoOrderLyys(code));
 			// 采购入库-其他入库的纱
+			/*
 			fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code);
 			FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder();
 			fabricPoOrderQtrk.setCInvName("其他入库的纱");
@@ -276,20 +280,11 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
 			if (fabricPoOrderTempList.size()>0){
 				for (FabricPoOrderOut item : fabricPoOrderTempList){
 					fabricPoOrderQtrk.setIQuantityIn(item.getIQuantity()+fabricPoOrderQtrk.getIQuantityIn());
-					String cCode = item.getCCode();
-					int index1 = cCode.indexOf("SY");
-					if (index1 == -1) {
-						continue;
-					}
-					int index2 = cCode.indexOf("-", index1);
-					if (index2 == -1) {
-						index2 = cCode.length();
-					}
-					item.setCPlanCode(cCode.substring(index1,index2-1));
 				}
 				BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn());
 				fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
-			}
+			}*/
+			fabricPoOrderList.add(getPoOrderQtrk(code));
 			ret.setFabricPoOrderList(fabricPoOrderList);
 			// 委外订单所有
 			List<FabricOMOrder> fabricOMOrderListAll = fabricLossMapper.getOmOrderListAll(code);
@@ -645,4 +640,107 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
 
 		return fabricOMOrderList;
 	}
+
+	/**
+	 * 获取采购订单-其他入库的纱
+	 * @param code
+	 * @return
+	 */
+	private FabricPoOrder getPoOrderQtrk(String code){
+		// 采购入库-其他入库的纱
+		List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherInList(code);
+		List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>();   // 根据委外订单号和批号分组
+		FabricPoOrder fabricPoOrderQtrk = new FabricPoOrder();
+		fabricPoOrderQtrk.setCInvName("其他入库的纱");
+		fabricPoOrderQtrk.setIQuantityIn(0.0);
+		fabricPoOrderQtrk.setFabricPoOrderOutList(fabricPoOrderOutListGroup);
+		if (fabricPoOrderTempList.size()>0){
+			for (FabricPoOrderOut item : fabricPoOrderTempList){
+				fabricPoOrderQtrk.setIQuantityIn(item.getIQuantity()+fabricPoOrderQtrk.getIQuantityIn());
+				String cCode = item.getCCode();
+				String cBatch = item.getCBatch();
+				Optional<FabricPoOrderOut> findItemOpt = fabricPoOrderOutListGroup.stream().filter(e->
+						e.getCCode().equals(cCode) && e.getCBatch().equals(cBatch)
+				).findFirst();
+				if (findItemOpt.isPresent()){
+					FabricPoOrderOut findItem = findItemOpt.get();
+					if (findItem.getCPlanCode().indexOf(item.getCPlanCode()) == -1 && item.getCPlanCode().length()>0){
+						findItem.setCPlanCode(findItem.getCPlanCode()+","+item.getCPlanCode());
+					}
+					findItem.setIQuantity(findItem.getIQuantity()+item.getIQuantity());
+					findItem.setIMoney(findItem.getIMoney()+item.getIQuantity()*item.getIPrice());
+					findItem.setIPrice(findItem.getIMoney()/findItem.getIQuantity());
+
+				}else{
+					fabricPoOrderOutListGroup.add(item);
+					item.setIMoney(item.getIPrice()*item.getIQuantity());
+				}
+			}
+			BigDecimal bdVal = new BigDecimal(fabricPoOrderQtrk.getIQuantityIn());
+			fabricPoOrderQtrk.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
+		}
+		// 单价数量保留位数
+		for (FabricPoOrderOut item : fabricPoOrderOutListGroup){
+			BigDecimal bdVal = new BigDecimal(item.getIPrice());
+			item.setIPrice(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
+			bdVal = new BigDecimal(item.getIQuantity());
+			item.setIQuantity(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
+		}
+		return fabricPoOrderQtrk;
+	}
+
+	/**
+	 * 获取采购订单-来源余纱
+	 * @param code
+	 * @return
+	 */
+	private FabricPoOrder getPoOrderLyys(String code){
+		List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code);
+		List<FabricPoOrderOut> fabricPoOrderOutListGroup = new ArrayList<>();   // 根据委外订单号和批号分组
+		FabricPoOrder fabricPoOrderLyys = new FabricPoOrder();
+		fabricPoOrderLyys.setCInvName("来源余纱");
+		fabricPoOrderLyys.setIQuantityIn(0.0);
+		fabricPoOrderLyys.setFabricPoOrderOutList(fabricPoOrderOutListGroup);
+
+		if (fabricPoOrderTempList.size()>0){
+			for (FabricPoOrderOut item : fabricPoOrderTempList){
+				fabricPoOrderLyys.setIQuantityIn(item.getIQuantity()+fabricPoOrderLyys.getIQuantityIn());
+
+				String cCode = item.getCCode();
+				String cBatch = item.getCBatch();
+				Optional<FabricPoOrderOut> findItemOpt = fabricPoOrderOutListGroup.stream().filter(e->
+						e.getCCode().equals(cCode) && e.getCBatch().equals(cBatch)
+				).findFirst();
+				if (findItemOpt.isPresent()){
+					FabricPoOrderOut findItem = findItemOpt.get();
+					if (findItem.getCPlanCode().indexOf(item.getCPlanCode()) == -1 && item.getCPlanCode().length()>0){
+						findItem.setCPlanCode(findItem.getCPlanCode()+","+item.getCPlanCode());
+					}
+					findItem.setIQuantity(findItem.getIQuantity()+item.getIQuantity());
+					findItem.setIMoney(findItem.getIMoney()+item.getIQuantity()*item.getIPrice());
+					findItem.setIPrice(findItem.getIMoney()/findItem.getIQuantity());
+
+				}else{
+					fabricPoOrderOutListGroup.add(item);
+					item.setIMoney(item.getIPrice()*item.getIQuantity());
+				}
+			}
+			BigDecimal bdVal = new BigDecimal(fabricPoOrderLyys.getIQuantityIn());
+			fabricPoOrderLyys.setIQuantityIn(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
+		}
+		// 单价数量保留位数、计划号处理
+		for (FabricPoOrderOut item : fabricPoOrderOutListGroup){
+			BigDecimal bdVal = new BigDecimal(item.getIPrice());
+			item.setIPrice(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
+			bdVal = new BigDecimal(item.getIQuantity());
+			item.setIQuantity(bdVal.setScale(4, BigDecimal.ROUND_HALF_UP).doubleValue());
+			// 计划号先判断有没有SY,有SY的,取SY开头到-前结束,如果没有-就到末尾;如果没有SY就取全部
+			String cPlanCode = item.getCPlanCode();
+			cPlanCode = org.jeecg.modules.system.util.oConvertUtils.stringDuplicateRemoval(cPlanCode, ",");
+			cPlanCode = org.jeecg.modules.system.util.oConvertUtils.stringCut(cPlanCode, ",", "SY", "-");
+			item.setCPlanCode(cPlanCode);
+		}
+
+		return fabricPoOrderLyys;
+	}
 }

+ 49 - 0
jeecg-boot-module-system/src/main/java/org/jeecg/modules/system/util/oConvertUtils.java

@@ -728,4 +728,53 @@ public class oConvertUtils {
             job.print(doc, aset);
         }
     }
+
+    /**
+     * 字符串根据某个分隔符分割,去重复的内容,返回字符串
+     * @param str  待去重字符串
+     * @param split  分割符号
+     * @return
+     */
+    public static String stringDuplicateRemoval(String str, String split){
+        String[] array = str.split(split);
+        StringBuilder sb = new StringBuilder();
+        for (String item : array){
+            if (sb.indexOf(item) == -1){
+                if (sb.length()>0){
+                    sb.append(split);
+                }
+                sb.append(item);
+            }
+        }
+        return sb.toString();
+    }
+
+    /**
+     * 字符串截取:先根据splitStr分割,从startStr开始,到endStr结束。如果没有endStr,到字符串结束。如果没有startStr,返回所有
+     * @param str 待截取的字符串
+     * @param splitStr 分割字符串
+     * @param startStr 开始字符串
+     * @param endStr 结束字符串
+     * @return
+     */
+    public static String stringCut(String str, String splitStr, String startStr, String endStr){
+        String[] array = str.split(splitStr);
+        StringBuilder sb = new StringBuilder();
+        for (String item : array){
+            String appendStr = item;
+            int index1 = appendStr.indexOf(startStr);
+            if (index1 != -1){
+                int index2 = appendStr.indexOf(endStr, index1);
+                if (index2 == -1){
+                    index2 = appendStr.length()-1;
+                }
+                appendStr = appendStr.substring(index1, index2);
+            }
+            if (sb.length()>0){
+                sb.append(splitStr);
+            }
+            sb.append(appendStr);
+        }
+        return sb.toString();
+    }
 }