|
@@ -33,6 +33,7 @@ import org.jeecg.modules.system.vo.SysUserDepVo;
|
|
|
import org.springframework.beans.factory.annotation.Autowired;
|
|
|
import org.springframework.cache.annotation.CacheEvict;
|
|
|
import org.springframework.stereotype.Service;
|
|
|
+import org.springframework.transaction.annotation.Propagation;
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
|
|
import javax.annotation.Resource;
|
|
@@ -67,6 +68,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional(propagation = Propagation.NOT_SUPPORTED)
|
|
|
public FabricLoss getFabricLossData(String code) {
|
|
|
if (oConvertUtils.isNotEmpty(code)){
|
|
|
FabricLoss ret = new FabricLoss();
|
|
@@ -170,6 +172,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
// 采购入库被其他委外订单使用的信息
|
|
|
List<FabricPoOrderOut> fabricPoOrderOutList = fabricLossMapper.getPoOrderInToOther(code);
|
|
|
+ // 采购入库仓库库存
|
|
|
+ List<FabricPoOrderOut> poOrderStockList = fabricLossMapper.getPurchaseStockList(code);
|
|
|
// 采购订单设置分配数量、委外供应商、余纱、采购损耗
|
|
|
for (FabricPoOrder fabricPoOrder : fabricPoOrderList){
|
|
|
// 获取采购形态转换物料
|
|
@@ -247,9 +251,15 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
item.setCPlanCode(cCode.substring(index1,index2-1));
|
|
|
}
|
|
|
-
|
|
|
+ // 设置仓库库存
|
|
|
+ List<FabricPoOrderOut> findPoOrderStockList = poOrderStockList.stream().filter(e->
|
|
|
+ fabricPoOrder.getCInvCode().equals(e.getCInvCode()) &&
|
|
|
+ oConvertUtils.getString(fabricPoOrder.getCColor()).equals(e.getCColor())).collect(Collectors.toList());
|
|
|
+ findFabricPoOrderOutList.addAll(findPoOrderStockList);
|
|
|
+
|
|
|
fabricPoOrder.setFabricPoOrderOutList(findFabricPoOrderOutList);
|
|
|
}
|
|
|
+
|
|
|
// 采购入库-来源余纱
|
|
|
/*
|
|
|
List<FabricPoOrderOut> fabricPoOrderTempList = fabricLossMapper.getPurchaseListOtherPurInList(code);
|
|
@@ -433,7 +443,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
// 计算入金额
|
|
|
Double costInTotal = fabricCostInvoiceList.stream().mapToDouble(FabricCostInvoice::getIMoney).sum();
|
|
|
// 转出成本
|
|
|
- d = oConvertUtils.getDouble(fabricLossMapper.getOmInToOtherMoney(code), 0) + getOutCost(ret.getFabricPoOrderList(), fabricOMOrderList1);
|
|
|
+ d = getOutCost(ret.getFabricPoOrderList(), fabricOMOrderListGn, fabricOMOrderListGw);
|
|
|
fabricCostInvoice = new FabricCostInvoice();
|
|
|
fabricCostInvoice.setCVCName("转出成本");
|
|
|
fabricCostInvoice.setIMoney(d);
|
|
@@ -535,7 +545,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @param code - 计划号
|
|
|
* @return
|
|
|
*/
|
|
|
- List<FabricOMOrder> setFabricOMOrderOutDetail(List<FabricOMOrder> fabricOMOrderList, String code){
|
|
|
+ private List<FabricOMOrder> setFabricOMOrderOutDetail(List<FabricOMOrder> fabricOMOrderList, String code){
|
|
|
// 获取委外订单行id,入库物料编号+颜色,处理费用,入库数量
|
|
|
List<Map<String,Object>> rowInfoList = fabricLossMapper.getOmRowInfoList(code);
|
|
|
// 获取委外订单行id,出库物料信息,出库数量
|
|
@@ -568,7 +578,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @param code - 计划号
|
|
|
* @return
|
|
|
*/
|
|
|
- List<FabricOMOrder> setFabricOMOrderInDetail(List<FabricOMOrder> fabricOMOrderList, String code){
|
|
|
+ private List<FabricOMOrder> setFabricOMOrderInDetail(List<FabricOMOrder> fabricOMOrderList, String code){
|
|
|
List<FabricMoOrderRK> fabricMoOrderRKList = fabricLossMapper.getOmInDetailList(code);
|
|
|
|
|
|
for (FabricOMOrder fabricOMOrder : fabricOMOrderList){
|
|
@@ -732,7 +742,7 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
* @param rowInListWithAV - 形态转换前的材料入库信息
|
|
|
* @return
|
|
|
*/
|
|
|
- List<FabricMoOrderCK> getFabricMoOrderCKList(List<Map<String,Object>> rowInfoList,
|
|
|
+ private List<FabricMoOrderCK> getFabricMoOrderCKList(List<Map<String,Object>> rowInfoList,
|
|
|
List<FabricMoOrderCK> rowOutList,
|
|
|
List<Map<String,Object>> rowInList,
|
|
|
List<Map<String,Object>> rowInListWithAV){
|
|
@@ -954,10 +964,11 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
/**
|
|
|
* 根据采购入库详情,委外订单详情,获取转出成本。(入库数量-出库数量) * 单价
|
|
|
* @param poOrderList - 采购入库详情
|
|
|
- * @param fabricOMOrderList - 委外出入库详情
|
|
|
+ * @param omOrderListGn - 委外订单国内
|
|
|
+ * @param omOrderListGw - 委外订单国外
|
|
|
* @return
|
|
|
*/
|
|
|
- private Double getOutCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> fabricOMOrderList){
|
|
|
+ private Double getOutCost(List<FabricPoOrder> poOrderList, List<FabricOMOrder> omOrderListGn, List<FabricOMOrder> omOrderListGw){
|
|
|
// 采购出入库去掉末尾两行:来源余纱、其他入库纱
|
|
|
List<FabricPoOrder> poOrderListReal = new ArrayList<>();
|
|
|
if (poOrderList.size()>2){
|
|
@@ -994,8 +1005,8 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
}
|
|
|
}
|
|
|
}
|
|
|
- /*
|
|
|
- for (FabricOMOrder item : fabricOMOrderList){
|
|
|
+
|
|
|
+ for (FabricOMOrder item : omOrderListGn){
|
|
|
List<FabricMoOrderRK> inList = item.getFabricMoOrderRKList();
|
|
|
if (oConvertUtils.listIsNotEmpty(inList)){
|
|
|
for (FabricMoOrderRK itemIn : inList){
|
|
@@ -1005,13 +1016,50 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
formatItem.setCBatch(itemIn.getCBatch());
|
|
|
formatItem.setIQuantity(itemIn.getIQuantityIn());
|
|
|
formatItem.setIPrice(itemIn.getIPrice());
|
|
|
+ formatItem.setCBusType("1"); // 国内
|
|
|
allInList.add(formatItem);
|
|
|
}
|
|
|
}
|
|
|
- }*/
|
|
|
+ }
|
|
|
+
|
|
|
+ for (FabricOMOrder item : omOrderListGw){
|
|
|
+ List<FabricMoOrderRK> inList = item.getFabricMoOrderRKList();
|
|
|
+ if (oConvertUtils.listIsNotEmpty(inList)){
|
|
|
+ for (FabricMoOrderRK itemIn : inList){
|
|
|
+ FabricPoOrderIn formatItem = new FabricPoOrderIn();
|
|
|
+ formatItem.setCInvCode(item.getCInvCode());
|
|
|
+ formatItem.setCColor(item.getCColor());
|
|
|
+ formatItem.setCBatch(itemIn.getCBatch());
|
|
|
+ formatItem.setIQuantity(itemIn.getIQuantityIn());
|
|
|
+ formatItem.setIPrice(itemIn.getIPrice());
|
|
|
+ formatItem.setCBusType("2"); // 国外
|
|
|
+ allInList.add(formatItem);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ List<String> invIdGnList = new ArrayList<>();// 国内入库物料编码
|
|
|
+ List<String> invIdGwList = new ArrayList<>();// 国外入库物料编码
|
|
|
+ for (FabricOMOrder omOrder : omOrderListGn){
|
|
|
+ List<FabricMoOrderRK> omRkList = omOrder.getFabricMoOrderRKList();
|
|
|
+ for (FabricMoOrderRK rkItem : omRkList){
|
|
|
+ invIdGnList.add(omOrder.getCInvCode()+omOrder.getCColor()+rkItem.getCBatch());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ for (FabricOMOrder omOrder : omOrderListGw){
|
|
|
+ List<FabricMoOrderRK> omRkList = omOrder.getFabricMoOrderRKList();
|
|
|
+ for (FabricMoOrderRK rkItem : omRkList){
|
|
|
+ invIdGwList.add(omOrder.getCInvCode()+omOrder.getCColor()+rkItem.getCBatch());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<FabricPoOrderOut> invOutGnList = fabricLossMapper.getOmInGnOutList(invIdGnList); //国内出库数量
|
|
|
+ List<FabricPoOrderOut> invOutGwList = fabricLossMapper.getOmInGwOutList(invIdGwList); //国外出库数量
|
|
|
// 扣减出库数量
|
|
|
+ List<FabricOMOrder> omOrderListAll = new ArrayList<>();
|
|
|
+ omOrderListAll.addAll(omOrderListGn);
|
|
|
+ omOrderListAll.addAll(omOrderListGw);
|
|
|
for (FabricPoOrderIn itemIn : allInList){
|
|
|
- for (FabricOMOrder item : fabricOMOrderList){
|
|
|
+ for (FabricOMOrder item : omOrderListAll){
|
|
|
List<FabricMoOrderCK> outList = item.getFabricMoOrderCKList();
|
|
|
if (oConvertUtils.listIsNotEmpty(outList)){
|
|
|
Double dOut = outList.stream().filter(e->
|
|
@@ -1019,6 +1067,23 @@ public class FabricLossServiceImpl extends ServiceImpl<FabricLossMapper, FabricL
|
|
|
e.getCColorOut().equals(itemIn.getCColor()) &&
|
|
|
e.getCBatchOut().equals(itemIn.getCBatch())).mapToDouble(FabricMoOrderCK::getIQuantity).sum();
|
|
|
itemIn.setIQuantity(itemIn.getIQuantity()-dOut);
|
|
|
+ }else{
|
|
|
+ List<FabricPoOrderOut> useOutList = null;
|
|
|
+ // 国内
|
|
|
+ if ("1".equals(itemIn.getCBusType())){
|
|
|
+ useOutList = invOutGnList;
|
|
|
+ }
|
|
|
+ // 国外
|
|
|
+ else if ("2".equals(itemIn.getCBusType())){
|
|
|
+ useOutList = invOutGwList;
|
|
|
+ }
|
|
|
+ if (useOutList != null){
|
|
|
+ Double dOut = useOutList.stream().filter(e->
|
|
|
+ e.getCInvCode().equals(itemIn.getCInvCode()) &&
|
|
|
+ e.getCColor().equals(itemIn.getCColor()) &&
|
|
|
+ e.getCBatch().equals(itemIn.getCBatch())).mapToDouble(FabricPoOrderOut::getIQuantity).sum();
|
|
|
+ itemIn.setIQuantity(itemIn.getIQuantity()-dOut);
|
|
|
+ }
|
|
|
}
|
|
|
}
|
|
|
}
|