|
|
@@ -22,13 +22,12 @@ import com.github.zuihou.business.operationManagementCenter.entity.*;
|
|
|
import com.github.zuihou.business.operationManagementCenter.service.*;
|
|
|
import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProductionresourceMapper;
|
|
|
import com.github.zuihou.business.productionReadyCenter.dao.BomProcedureProgramMapper;
|
|
|
-import com.github.zuihou.business.productionReadyCenter.entity.AutoNode;
|
|
|
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedure;
|
|
|
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProductionresource;
|
|
|
-import com.github.zuihou.business.productionReadyCenter.entity.BomProcedureProgram;
|
|
|
+import com.github.zuihou.business.productionReadyCenter.dao.MMeterialReceiveLogMapper;
|
|
|
+import com.github.zuihou.business.productionReadyCenter.entity.*;
|
|
|
import com.github.zuihou.business.productionReadyCenter.service.AutoNodeService;
|
|
|
import com.github.zuihou.business.productionReadyCenter.service.BBomService;
|
|
|
import com.github.zuihou.business.productionReadyCenter.service.BomProcedureService;
|
|
|
+import com.github.zuihou.business.productionReadyCenter.service.MMeterialReceiveLogService;
|
|
|
import com.github.zuihou.business.productionResourceCenter.entity.Repair;
|
|
|
import com.github.zuihou.business.productionResourceCenter.service.RepairService;
|
|
|
import com.github.zuihou.business.util.DynamicRabbitMq;
|
|
|
@@ -122,6 +121,9 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
|
|
|
@Autowired
|
|
|
private BomProcedureProgramMapper bomProcedureProgramMapper;
|
|
|
|
|
|
+ @Autowired
|
|
|
+ private MMeterialReceiveLogService meterialReceiveLogService;
|
|
|
+
|
|
|
@Override
|
|
|
public IPage<Order> pageList(IPage page,String sustDesc, LbqWrapper<Order> wrapper) {
|
|
|
return baseMapper.pageList(page,sustDesc, wrapper, new DataScope());
|
|
|
@@ -145,6 +147,25 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
|
|
|
isFalse(bomProcedureMap.get(l).size()==0,"零件尚未配置工序,请确认");
|
|
|
}
|
|
|
|
|
|
+ //验证炉号
|
|
|
+ if(detailList != null && detailList.size() > 0){
|
|
|
+ List<String>furnaceBatchList = detailList.stream().map(p -> p.get("meterialReceiveId").toString()).collect(Collectors.toList());
|
|
|
+ List<MMeterialReceiveLog>meterialReceiveLogList = meterialReceiveLogService.list(Wraps.<MMeterialReceiveLog>lbQ().in(MMeterialReceiveLog::getId,furnaceBatchList));
|
|
|
+ Map<String,MMeterialReceiveLog> meterialReceiveLogMap = meterialReceiveLogList.stream().collect(Collectors.toMap(t->t.getId().toString(), t->t));
|
|
|
+ List<MMeterialReceiveLog>l = new ArrayList<MMeterialReceiveLog>();
|
|
|
+ for(Map map:detailList){
|
|
|
+ String meterialReceiveId = map.get("meterialReceiveId")==null?"":map.get("meterialReceiveId").toString();
|
|
|
+ int bomNum = Integer.parseInt(map.get("bomNum").toString());
|
|
|
+ MMeterialReceiveLog m = meterialReceiveLogMap.get(meterialReceiveId);
|
|
|
+ int usedNum = (m.getUsedNum()==null?0:m.getUsedNum());
|
|
|
+ isFalse(bomNum>m.getBatchStand()+usedNum,"零件数超出");
|
|
|
+ m.setUsedNum(bomNum+usedNum);
|
|
|
+ l.add(m);
|
|
|
+ }
|
|
|
+ //修改已用数量
|
|
|
+ meterialReceiveLogService.saveOrUpdateBatch(l);
|
|
|
+ }
|
|
|
+
|
|
|
//根据编码规则
|
|
|
String no = codeRuleService.getBillCode(CodeRuleModule.CODE_RULE_ORDER);
|
|
|
order.setOrderNo(no);
|
|
|
@@ -165,6 +186,7 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
|
|
|
item.setOrderId(order.getId());
|
|
|
item.setOrderNo(order.getOrderNo());
|
|
|
item.setFurnaceBatchNo(map.get("furnaceBatchNo").toString());
|
|
|
+ item.setMeterialReceiveId(Long.parseLong(map.get("meterialReceiveId").toString()));
|
|
|
item.setBomId(Long.parseLong(map.get("bomId").toString()));
|
|
|
item.setBomNum(Integer.parseInt(map.get("bomNum").toString()));
|
|
|
productNum+=item.getBomNum();
|
|
|
@@ -187,12 +209,30 @@ public class OrderServiceImpl extends SuperServiceImpl<OrderMapper, Order> imple
|
|
|
public Order update(OrderUpdateDTO data) {
|
|
|
Order order = BeanPlusUtil.toBean(data, Order.class);
|
|
|
|
|
|
+ //验证炉号
|
|
|
+ List<OrderProductUpdateDTO> detailList = data.getOrderProductList();
|
|
|
+ if(detailList != null && detailList.size() > 0){
|
|
|
+ List<String>furnaceBatchList = detailList.stream().map(t->t.getMeterialReceiveId().toString()).collect(Collectors.toList());
|
|
|
+ List<MMeterialReceiveLog>meterialReceiveLogList = meterialReceiveLogService.list(Wraps.<MMeterialReceiveLog>lbQ().in(MMeterialReceiveLog::getId,furnaceBatchList));
|
|
|
+ Map<String,MMeterialReceiveLog> meterialReceiveLogMap = meterialReceiveLogList.stream().collect(Collectors.toMap(t->t.getId().toString(), t->t));
|
|
|
+ List<MMeterialReceiveLog>l = new ArrayList<MMeterialReceiveLog>();
|
|
|
+ for(OrderProductUpdateDTO dto:detailList){
|
|
|
+ String meterialReceiveId = dto.getMeterialReceiveId().toString();
|
|
|
+ int bomNum = dto.getBomNum();
|
|
|
+ MMeterialReceiveLog m = meterialReceiveLogMap.get(meterialReceiveId);
|
|
|
+
|
|
|
+ isFalse(bomNum>m.getBatchStand()+m.getUsedNum(),"零件数超出");
|
|
|
+ m.setUsedNum(bomNum+m.getUsedNum());
|
|
|
+ l.add(m);
|
|
|
+ }
|
|
|
+ //修改已用数量
|
|
|
+ meterialReceiveLogService.saveOrUpdateBatch(l);
|
|
|
+ }
|
|
|
|
|
|
//删除明细
|
|
|
orderProductService.remove(Wraps.<OrderProduct>lbQ().eq(OrderProduct::getOrderId,order.getId()));
|
|
|
//新增明细
|
|
|
int productNum = 0;
|
|
|
- List<OrderProductUpdateDTO> detailList = data.getOrderProductList();
|
|
|
if(detailList !=null && detailList.size()>0){
|
|
|
List<OrderProduct> list = detailList.stream().map((map) -> {
|
|
|
OrderProduct item = new OrderProduct();
|