Procházet zdrojové kódy

面料损耗更新

fenghaifu před 2 roky
rodič
revize
1dadc43112

+ 4 - 62
jeecg-boot-module-system/src/main/java/org/jeecg/modules/report/mapper/FabricLossMapper.java

@@ -35,22 +35,10 @@ public interface FabricLossMapper extends BaseMapper<FabricLoss> {
 	@DS("multi-three")
 	List<String>getPlanner(@Param("code")String code);
 
-	//查询103的委外发票制单人=制单人
-//	@DS("multi-three")
-//	List<String>getMakingPeople(@Param("code")String code);
-
 	//查询103委外订单数量=排单量
 	@DS("multi-three")
 	String getNumber(@Param("code")String code);
 
-	//查询103委外订单 单价成本
-//	@DS("multi-three")
-//	String getPrice(@Param("code")String code);
-
-	//查询102采购订单号(只获取供应商为马菲羊的)
-//	@DS("multi-two")
-//	String getOrderCode(@Param("code")String code);
-
 	//查询销售出库数量
 	@DS("multi-three")
 	String getSaleOutSum(@Param("code")String code);
@@ -58,14 +46,6 @@ public interface FabricLossMapper extends BaseMapper<FabricLoss> {
 	//获取采购入库数据
 	@DS("multi-three")
 	List<FabricPoOrder> getPurchaseList(@Param("code")String code);
-
-	//其他入库纱,找委外订单的材料出库单,获取物料号+批号,物料号+批号再其他入库单
-//	@DS("multi-three")
-//	List<FabricPoOrderOut> getPurchaseListOtherInList(@Param("code")String code);
-
-	//来源余纱,找委外订单的材料出库单,获取物料号+批号。如果物料号+批号在形态转换单中,取转换前物料+批号。判断物料+批号,是否在其他采购入库里
-//	@DS("multi-three")
-//	List<FabricPoOrderOut> getPurchaseListOtherPurInList(@Param("code")String code);
 	// 获取所有委外订单
 	@DS("multi-three")
 	@InterceptorIgnore(tenantLine = "1")
@@ -73,24 +53,12 @@ public interface FabricLossMapper extends BaseMapper<FabricLoss> {
 	// 获取销售出库委外订单子表id
 	@DS("multi-three")
 	List<String> getOmOrderListGw(@Param("code")String code);
-	// 获取委外材料出库单,已核销的取核销数量
-//	@DS("multi-three")
-//	List<Map<String,Object>> getOmOutList(@Param("code")String code);
-	// 获取本次采购入库的形态转换
-//	@DS("multi-three")
-//	List<Map<String,Object>> getAssemVouchList(@Param("code")String code);
 	// 获取本次采购入库单,含发票和结算数据
 	@DS("multi-three")
 	List<FabricPoOrderIn> getPurchaseInList(@Param("code")String code);
 	// 获取费用支出
 	@DS("multi-three")
 	List<FabricExpenses> getExpensesList(@Param("code")String code);
-	// 获取采购入库价格列表
-//	@DS("multi-three")
-//	List<FabricCostInvoice> getPurchuseInPriceList(@Param("code")String code);
-	// 获取委外订单发票金额
-//	@DS("multi-three")
-//	List<FabricCostInvoice> getOmInvoiceMoneyList(@Param("code")String code);
 	// 获取委外订单运费发票金额
 	@DS("multi-three")
 	List<FabricCostInvoice> getOmInvoiceMoneyYfList(@Param("code")String code);
@@ -103,40 +71,16 @@ public interface FabricLossMapper extends BaseMapper<FabricLoss> {
 	// 开票成本-面料
 	@DS("multi-three")
 	List<FabricCostCloth> getCostClothList(@Param("code")String code);
-	//获取委外入库物料被其他委外订单使用的金额
-//	@DS("multi-three")
-//	String getOmInToOtherMoney(@Param("code")String code);
-	//获取使用其他委外入库物料的金额
-	//@DS("multi-three")
-	//String getOmOtherToCurMoney(@Param("code")String code);
 	// 获取采购入库物料被其他委外订单使用明细
 	@DS("multi-three")
 	List<FabricPoOrderOut> getPoOrderInToOther(@Param("code")String code);
-	// 委外订单-材料出库详情
-	//@DS("multi-three")
-	//List<FabricMoOrderCK> getOmOutDetailList(@Param("code")String code);
 	// 委外订单-入库详情
 	@DS("multi-three")
 	List<FabricMoOrderRK> getOmInDetailList(@Param("code")String code);
-	// 获取委外订单行id,入库物料编号+颜色,处理费用,入库数量
-//	@DS("multi-three")
-//	List<Map<String,Object>> getOmRowInfoList(@Param("code")String code);
 	// 获取委外订单行id,出库物料信息,出库数量
 	@DS("multi-three")
 	@InterceptorIgnore(tenantLine = "1")
 	List<FabricMoOrderCK> getOmRowOutList(@Param("code")String code);
-	// 获取委外订单出库物料的入库物料信息:包含采购入库、委外入库
-//	@DS("multi-three")
-//	List<Map<String,Object>> getOmRowInList(@Param("code")String code);
-	// 获取委外订单出库物料的入库物料信息:包含其他入库
-//	@DS("multi-three")
-//	List<Map<String,Object>> getOmRowInList2(@Param("code")String code);
-	// 根据形态转换物料获取采购入库信息
-//	@DS("multi-three")
-//	List<Map<String,Object>> getOmRowInListWithAV(@Param("code")String code);
-	// 根据形态转换物料获取其他入库信息
-//	@DS("multi-three")
-//	List<Map<String,Object>> getOmRowInListWithAV2(@Param("code")String code);
 	// 销售订单附件
 	@DS("multi-three")
 	List<AccessorItem> getSoAccList(@Param("cSoCode")String cSoCode);
@@ -153,16 +97,10 @@ public interface FabricLossMapper extends BaseMapper<FabricLoss> {
 	// 获取委外订单国内出库数量
 	@DS("multi-three")
 	List<FabricPoOrderOut> getOmInGnOutList(@Param("invIdList")List<String> invIdList);
-	// 获取委外订单国内出库数量
-//	@DS("multi-three")
-//	List<FabricPoOrderOut> getOmInGwOutList(@Param("invIdList")List<String> invIdList);
 	// 获取事故单
 	@DS("multi-three")
 	List<FabricAccident> getAccidentList(@Param("code")String code);
 
-	// 获取形态转换入库的原始入库单,可能存在多次形态转换,需要多次调用
-//	@DS("multi-three")
-//	List<Map<String,Object>> getOrgInList(@Param("invIdList")List<String> invIdList);
 	// 根据委外订单子表id,获取处理费,入库数量,出库物料id,出库数量
 	@DS("multi-three")
 	List<Map<String,Object>> getOmInOutInfoListByDetailId(@Param("detailIdList")List<Integer> detailIdList);
@@ -202,4 +140,8 @@ public interface FabricLossMapper extends BaseMapper<FabricLoss> {
 	// 获取销售出库数量
 	@DS("multi-three")
 	List<FabricMoOrderCK> getSaleOutList(@Param("code")String code);
+
+	// 获取本次采购入库的形态转换
+	@DS("multi-three")
+	List<Map<String,Object>> getPoAssemVouchList(@Param("code")String code);
 }

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

@@ -16,20 +16,6 @@
 		exists (select x.cVenCode from Vendor x where x.cVenCode=om_momain.cVenCode and x.cVCCode='0105')
 		and (cCode like CONCAT(#{code},'%') and cCode not like '%样%')
 	</select>
-	<!-- 制单人 103的委外发票制单人 -->
-	<!--
-	<select id="getMakingPeople" resultType="java.lang.String">
-		select distinct cpbvmaker From PurBillVouch where cInCode in (
-		select cCode From  RdRecord01 where cOrderCode in (
-			select ccode
-			from om_momain where
-			exists (select x.moid from om_mobody x inner join Inventory y on x.cinvcode=y.cinvcode where x.moid=om_momain.moid and
-			(y.cInvCCode like '01%' or y.cInvCCode like '02%' or y.cInvCCode like '03%' or y.cInvCCode like '04%')   )
-			and cCode like CONCAT(#{code},'%')
-			and (cCloser is null or cCloser='asuser')
-		)
-		)
-	</select>-->
 	<!-- 排单数量 -->
 	<select id="getNumber" resultType="java.lang.String">
 		select sum(isnull(iQuantity,0))as 'iQuantity'  from VIEW_OM_MOMain_ALL_Clothes
@@ -40,29 +26,6 @@
 		select isnull(sum(iQuantity),0) as 'iQuantity' from VIEW_FabricLoss_Head_Clothes_SaleOut_Sum where
 		(cCode like CONCAT(#{code},'%') and cCode not like '%样%')
 	</select>
-	<!--
-	<select id="getPrice" resultType="java.lang.String">
-		select isnull(sum(a.count)/sum(b.iquantity),0) as 'price' from (
-		select sum((isnull(c.iQuantity,0)*isnull(b.iunitcost,0))+(isnull(c.iQuantity,0)*isnull(b.iprocesscost,0))) as 'count' ,a.cordercode as 'cordercode'     from rdrecord01 a left join rdrecords01 b on a.id=b.id
-		left join (select sum(b.iquantity)as 'iquantity',b.cbatch,b.iorderdid,cmpocode  from rdrecord11 a  left join rdrecords11 b on a.id=b.id
-		where   b.cbatch is not null GROUP BY b.iorderdid,cbatch,cmpocode)  c on b.iorderdid=c.iorderdid and a.cordercode=c.cmpocode AND c.cbatch=b.cbatch
-		GROUP BY a.cordercode) a
-		left join (select sum(isnull(b.iquantity,0)) as 'iquantity',a.ccode,b.csoordercode from OM_MOMain  a left join OM_MODetails b  on a.moid=b.moid
-		GROUP BY a.ccode,b.csoordercode) b on a.cordercode=b.ccode
-		where   a.count !='0'
-		<if test="code!=null and ''!=code">
-		and	b.csoordercode=#{code}
-		</if>
-		GROUP BY b.csoordercode
-	</select>-->
-	<!--
-	<select id="getOrderCode" resultType="java.lang.String">
-		select distinct a.cpoid as 'cpoid' from PO_Pomain a left join PO_Podetails b on a.POID=b.POID
-		where a.cVenCode='T020001'
-		<if test="code!=null and ''!=code">
-			and b.csoordercode=#{code}
-		</if>
-	</select>-->
 
 	<!--获取采购订单,物料名为物料名+颜色-->
 	<select id="getPurchaseList" resultType="org.jeecg.modules.report.entity.FabricPoOrder">
@@ -618,4 +581,16 @@
 			(d.cInvCCode like '01%' or d.cInvCCode like '02%' or d.cInvCCode like '03%' or d.cInvCCode like '04%')
 
 	</select>
+	<!--获取本次采购入库的形态转换-->
+	<select id="getPoAssemVouchList" resultType="map">
+
+		select * from VIEW_FabricLoss_AssemVouchs where
+		cInvCode+isnull(cAVBatch,'')+isnull(cColor,'') in (
+			select cInvCode+isnull(cBatch,'')+isnull(cFree1,'')  from RdRecords01
+			where iposid in (
+			select b.id from PO_Pomain a inner join PO_Podetails b on a.poid  =b.poid
+			and a.cPOID like CONCAT(#{code},'%') and a.cPOID not like '%样%'
+			)
+		)
+	</select>
 </mapper>

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

@@ -459,6 +459,19 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
 		List<FabricPoOrderOut> poOrderStockList = fabricLossMapper.getPurchaseStockList(code);
 		// 采购入库被其他委外订单使用的信息
 		List<FabricPoOrderOut> fabricPoOrderOutList = fabricLossMapper.getPoOrderInToOther(code);
+		// 采购入库形态转换信息
+		List<Map<String,Object>> poAssemVouchList = fabricLossMapper.getPoAssemVouchList(code);
+		// 根据形态转换替换被其他委外订单使用的物料信息
+		for (FabricPoOrderOut out : fabricPoOrderOutList){
+			Optional<Map<String,Object>> findOpt = poAssemVouchList.stream().filter(e->
+					e.get("cInvCode2").toString().equalsIgnoreCase(out.getCInvCode()) &&
+					e.get("cColor2").toString().equalsIgnoreCase(out.getCColor())).findFirst();
+			if (findOpt.isPresent()){
+				Map<String,Object> findItem = findOpt.get();
+				out.setCInvCode(findItem.get("cInvCode").toString());
+				out.setCColor(findItem.get("cColor").toString());
+			}
+		}
 		// 设置入库信息,及库存
 		for (FabricPoOrder fabricPoOrder : fabricPoOrderList){
 
@@ -492,8 +505,10 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
 			// 设置仓库库存
 			List<FabricPoOrderOut> findPoOrderStockList = poOrderStockList.stream().filter(e->
 							fabricPoOrder.getId().equalsIgnoreCase(e.getParentId())).collect(Collectors.toList());
-
-			fabricPoOrder.setFabricPoOrderOutList(findPoOrderStockList);
+			if (oConvertUtils.listIsNotEmpty(findPoOrderStockList)) {
+				findFabricPoOrderOutList.addAll(findPoOrderStockList);
+			}
+			fabricPoOrder.setFabricPoOrderOutList(findFabricPoOrderOutList);
 		}
 		ret.setFabricPoOrderList(fabricPoOrderList);
 	}
@@ -1106,11 +1121,11 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
 						!ck.getCSourceInvId().equalsIgnoreCase(orderIn.getInvId())){
 							continue;
 						}
-						Double dCurOutSum = ck.getIQuantityOut();   // 出库单出库数量
-						if (DoubleOperation.sub(dCurOutSum,ck.getITempUseSum())<=0){
+						Double dCurOutSum = DoubleOperation.sub(ck.getIQuantityOut(),ck.getITempUseSum());   // 出库单出库数量
+						if (dCurOutSum<=0){
 							continue;
 						}
-						Double dRealOut = dInLeft>=dCurOutSum?dCurOutSum:dInLeft;// 对比入库单,本条出库数量
+						Double dRealOut = Math.min(dInLeft,dCurOutSum);// 对比入库单,本条出库数量
 						ck.setITempUseSum(DoubleOperation.add(ck.getITempUseSum(),dRealOut));// 出库累计数量
 						dInLeft = DoubleOperation.sub(dInLeft,dRealOut);    // 入库剩余数量
 						dOutSum = DoubleOperation.add(dOutSum, dRealOut);