|
@@ -263,26 +263,48 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
|
|
|
|
|
|
@Override
|
|
|
@DSTransactional
|
|
|
- public void createOrder(ProductionOrderDto produceOrderDto) {
|
|
|
- Long contractId = produceOrderDto.getContractId();
|
|
|
- Assert.notEmpty(produceOrderDto.getContractId(), "合同id不能为空!");
|
|
|
-
|
|
|
- //赋值原订单信息
|
|
|
- ProductionOrder one = this.getOne(q -> q.eq(ProductionOrder::getContractId, contractId));
|
|
|
- if (ObjectUtil.isNotEmpty(one)) {
|
|
|
- produceOrderDto.setId(one.getId());
|
|
|
- }
|
|
|
-
|
|
|
- //将数据移到归属公司下
|
|
|
- SysDept produceCompany = sysDeptService.getById(produceOrderDto.getProduceCompanyId());
|
|
|
- Assert.notEmpty(produceCompany, "查询不到生产公司信息");
|
|
|
- Long companyId = produceCompany.getDeptId();
|
|
|
- produceOrderDto.setCompanyId(companyId);
|
|
|
- produceOrderDto.setConfirmStatus(0);
|
|
|
-
|
|
|
+ public void createOrder(ProductionOrderDto dto) {
|
|
|
+ Long contractId = dto.getContractId();
|
|
|
+ Assert.notEmpty(dto.getContractId(), "合同id不能为空!");
|
|
|
//获取合同信息
|
|
|
Contract contract = contractService.getById(contractId);
|
|
|
Assert.notEmpty(contract, "查询不到合同信息!");
|
|
|
+
|
|
|
+ //根据合同产品归属公司
|
|
|
+ List<Long> pIds = contractProductService.listObject(ContractProduct::getProductId, q -> q.eq(ContractProduct::getContractId, contractId));
|
|
|
+ List<Long> pCompanyIds = productInfoService.listObject(ProductInfo::getCompanyId, q -> q.in(ProductInfo::getId, pIds));
|
|
|
+ pCompanyIds = pCompanyIds.stream().distinct().collect(Collectors.toList());
|
|
|
+ for (Long pCompanyId : pCompanyIds) {
|
|
|
+ ProductionOrderDto produceOrderDto = BeanUtil.copyProperties(dto, ProductionOrderDto.class);
|
|
|
+
|
|
|
+ //赋值原订单信息
|
|
|
+ ProductionOrder one = this.getOne(q -> q.eq(ProductionOrder::getContractId, contractId));
|
|
|
+ if (ObjectUtil.isNotEmpty(one)) {
|
|
|
+ produceOrderDto.setId(one.getId());
|
|
|
+ }
|
|
|
+
|
|
|
+ //指定生产公司为 产品归属公司
|
|
|
+ SysDept produceCompany = sysDeptService.getById(pCompanyId);
|
|
|
+ Assert.notEmpty(produceCompany, "查询不到生产公司信息");
|
|
|
+
|
|
|
+ produceOrderDto.setCompanyId(pCompanyId);
|
|
|
+ produceOrderDto.setConfirmStatus(0);
|
|
|
+
|
|
|
+ produceOrderDto.setCode(contract.getCode());
|
|
|
+ produceOrderDto.setProduceStatus(0);
|
|
|
+ this.saveOrUpdate(produceOrderDto);
|
|
|
+
|
|
|
+ //消息推送:给归属公司的 子公司总经理
|
|
|
+ String title = String.format("您有新的生产订单,订单号【%s】,请及时跟进。", produceOrderDto.getCode());
|
|
|
+ JSONObject msg = new JSONObject();
|
|
|
+ msg.put("business_id", produceOrderDto.getId());
|
|
|
+ List<Long> generalManagerIds = UserUtil.getUserIdsByRoleKey("subsidiary_gm", pCompanyId);
|
|
|
+ for (Long generalManagerId : generalManagerIds) {
|
|
|
+ WebSocketPush.byUser(PushTypeEnum.MESSAGE, generalManagerId, title, PushBusinessTypeEnum.NEW_PRODUCTION_ORDER.getType(), msg.toString());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改状态为投产
|
|
|
contractService.update(q -> q
|
|
|
.eq(Contract::getId, contractId)
|
|
|
.set(Contract::getOrderDistributeStatus, 1)
|
|
@@ -291,50 +313,8 @@ public class ProduceOrderServiceImpl extends ServiceImpl<ProduceOrderMapper, Pro
|
|
|
.set(BasePo::getUpdateTime, new Date())
|
|
|
.set(BasePo::getUpdateUser, SecurityUtils.getUserId())
|
|
|
);
|
|
|
-
|
|
|
- produceOrderDto.setCode(contract.getCode());
|
|
|
- produceOrderDto.setProduceStatus(0);
|
|
|
- this.saveOrUpdate(produceOrderDto);
|
|
|
-
|
|
|
-
|
|
|
- //消息推送:给归属公司的 子公司总经理
|
|
|
- String title = String.format("您有新的生产订单,订单号【%s】,请及时跟进。", produceOrderDto.getCode());
|
|
|
- JSONObject msg = new JSONObject();
|
|
|
- msg.put("business_id", produceOrderDto.getId());
|
|
|
- List<Long> generalManagerIds = UserUtil.getUserIdsByRoleKey("subsidiary_gm", companyId);
|
|
|
- for (Long generalManagerId : generalManagerIds) {
|
|
|
- WebSocketPush.byUser(PushTypeEnum.MESSAGE, generalManagerId, title, PushBusinessTypeEnum.NEW_PRODUCTION_ORDER.getType(), msg.toString());
|
|
|
- }
|
|
|
}
|
|
|
|
|
|
-// /**
|
|
|
-// * 投产
|
|
|
-// */
|
|
|
-// @Override
|
|
|
-// @DSTransactional
|
|
|
-// public synchronized void putProduction(ProduceOrderSelectDto dto) {
|
|
|
-// Long orderId = dto.getId();
|
|
|
-// Date produceTime = dto.getProduceTime();
|
|
|
-//
|
|
|
-// Assert.notEmpty(orderId, "投产id不能为空!");
|
|
|
-// Assert.notEmpty(produceTime, "投产时间不能为空!");
|
|
|
-//
|
|
|
-// ProductionOrder productionOrder = this.getById(orderId);
|
|
|
-// Assert.notEmpty(productionOrder, "查询不到订单信息!");
|
|
|
-//
|
|
|
-// if (ObjectUtil.isNotEmpty(productionOrder.getProduceTime())) {
|
|
|
-// throw new ServiceException("该订单已投产,请勿重复投产!!");
|
|
|
-// }
|
|
|
-//
|
|
|
-// //生成待备料
|
|
|
-// createMaterialPreparation(productionOrder);
|
|
|
-//
|
|
|
-// productionOrder.setProduceStatus(1);
|
|
|
-// productionOrder.setProduceTime(produceTime);
|
|
|
-//
|
|
|
-// this.updateById(productionOrder);
|
|
|
-// }
|
|
|
-
|
|
|
/**
|
|
|
* 修改投产时间
|
|
|
*/
|