|
@@ -289,36 +289,54 @@ public class OmstruckOrderMaterialServiceImpl implements IOmstruckOrderMaterialS
|
|
|
* @return
|
|
|
*/
|
|
|
@Transactional
|
|
|
- public int updateMaterialMes(Map<String, Object> map){
|
|
|
+ public int updateMaterialMes(Map<String, Object> map) {
|
|
|
OmstruckOrderMaterial omstruckOrderMaterial = new OmstruckOrderMaterial();
|
|
|
List<Map<String,Object>>mapList = (List<Map<String, Object>>) map.get("mapList");
|
|
|
+ Object orderIds = map.get("orderId");
|
|
|
+ Object saleOrderMaterialId = map.get("saleOrderMaterialId");
|
|
|
for (Map<String, Object>map1 : mapList) {
|
|
|
- BigDecimal orderId = DataChange.dataToBigDecimal(map.get("orderId"));
|
|
|
- BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
|
|
|
- BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
|
|
|
- //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
|
|
|
- Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(orderId, materialId);
|
|
|
- BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
|
|
|
- BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
|
|
|
- BigDecimal newWeight = null;
|
|
|
- if(materialWeight.intValue() != 0){ //如果总重量不为0,才进行重量更新
|
|
|
- BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
|
|
|
- BigDecimal theoreticalWeight = materialWeight.divide(orderMaterialNumber, 4);
|
|
|
- newWeight = theoreticalWeight.multiply(theoreticalWeight); //得到现有理重
|
|
|
-
|
|
|
- omstruckOrderMaterial.setOrderMaterialWeight(newWeight);
|
|
|
+ if (orderIds != null) {
|
|
|
+ BigDecimal orderId = DataChange.dataToBigDecimal(orderIds);
|
|
|
+ BigDecimal materialId = DataChange.dataToBigDecimal(map1.get("materialId"));
|
|
|
+ BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
|
|
|
+ map1.put("orderId",orderId);
|
|
|
+ //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
|
|
|
+ Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(map1);
|
|
|
+ BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
|
|
|
+ BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
|
|
|
+ BigDecimal newWeight = null;
|
|
|
+ if (materialWeight.intValue() != 0) { //如果总重量不为0,才进行重量更新
|
|
|
+ BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("orderMaterialNumber"));//旧件数
|
|
|
+ BigDecimal theoreticalWeight = materialWeight.multiply(materialNum);
|
|
|
+ newWeight = theoreticalWeight.divide(orderMaterialNumber, 4);//得到现有理重
|
|
|
+ omstruckOrderMaterial.setOrderMaterialWeight(newWeight);
|
|
|
+ }
|
|
|
+ //修改销售订单物资子表
|
|
|
+ omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
|
|
|
+ //修改订单物资子表 与出库实绩
|
|
|
+ omstruckOrderMaterial.setOrderId(orderId);
|
|
|
+ omstruckOrderMaterial.setMaterialId(materialId);
|
|
|
+ omstruckOrderMaterial.setOrderMaterialNumber(materialNum);
|
|
|
+ omstruckOrderMaterial.setUpdateTime(new Date());
|
|
|
+ omstruckOrderMaterialMapper.updateMaterialMes(omstruckOrderMaterial);
|
|
|
+ omstruckOrderMaterialMapper.updateOutBoundResult(omstruckOrderMaterial);
|
|
|
+ }
|
|
|
+ else {
|
|
|
+ BigDecimal materialNum = DataChange.dataToBigDecimal(map1.get("materialNum"));
|
|
|
+ map1.put("saleOrderMaterialId",saleOrderMaterialId);
|
|
|
+ //修改物资子表总理重 通过订单ID找到件数和总理重,算出单件理重
|
|
|
+ Map<String, Object> saleMaterialMes = omstruckOrderMaterialMapper.getSaleOrderMaterialNum(map1);
|
|
|
+ BigDecimal saleMaterialId = DataChange.dataToBigDecimal(saleMaterialMes.get("saleMaterialId"));//销售订单存放物资子表id
|
|
|
+ BigDecimal materialWeight = DataChange.dataToBigDecimal(saleMaterialMes.get("materialWeight"));//旧总理重
|
|
|
+ BigDecimal newWeight = null;
|
|
|
+ if (materialWeight.intValue() != 0) { //如果总重量不为0,才进行重量更新
|
|
|
+ BigDecimal orderMaterialNumber = DataChange.dataToBigDecimal(saleMaterialMes.get("materialNumber"));//旧件数
|
|
|
+ BigDecimal theoreticalWeight = materialWeight.multiply(materialNum);
|
|
|
+ newWeight = theoreticalWeight.divide(orderMaterialNumber, 4);//得到现有理重
|
|
|
+ }
|
|
|
+ //修改销售订单物资子表
|
|
|
+ omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
|
|
|
}
|
|
|
- //修改销售订单物资子表
|
|
|
- omstruckOrderMaterialMapper.updateSaleOrderMaterialMes(saleMaterialId, materialNum, newWeight);
|
|
|
-
|
|
|
- //修改订单物资子表 与出库实绩
|
|
|
- omstruckOrderMaterial.setOrderId(orderId);
|
|
|
- omstruckOrderMaterial.setMaterialId(materialId);
|
|
|
- omstruckOrderMaterial.setOrderMaterialNumber(materialNum);
|
|
|
- omstruckOrderMaterial.setUpdateTime(new Date());
|
|
|
- omstruckOrderMaterialMapper.updateMaterialMes(omstruckOrderMaterial);
|
|
|
- omstruckOrderMaterialMapper.updateOutBoundResult(omstruckOrderMaterial);
|
|
|
-
|
|
|
}
|
|
|
return 1;
|
|
|
}
|