|
|
@@ -58,8 +58,10 @@ import org.springblade.salesPart.history.mapper.HistoryMapper;
|
|
|
import org.springblade.salesPart.order.mapper.OrderMapper;
|
|
|
import org.springblade.salesPart.order.service.IOrderItemsService;
|
|
|
import org.springblade.salesPart.order.service.IOrderRecordService;
|
|
|
+import org.springblade.salesPart.produce.entity.ProductWorkmanship;
|
|
|
import org.springblade.salesPart.produce.entity.ProductWorkmanshipItems;
|
|
|
import org.springblade.salesPart.produce.service.IProductWorkmanshipItemsService;
|
|
|
+import org.springblade.salesPart.produce.service.IProductWorkmanshipService;
|
|
|
import org.springblade.salesPart.productLaunch.service.IProductLaunchService;
|
|
|
import org.springblade.salesPart.serial.service.IPjpfSerialService;
|
|
|
import org.springblade.salesPart.ship.mapper.ShipMapper;
|
|
|
@@ -134,6 +136,8 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
|
|
|
private final IProductWorkmanshipItemsService productWorkmanshipItemsService;
|
|
|
|
|
|
+ private final IProductWorkmanshipService productWorkmanshipService;
|
|
|
+
|
|
|
/**
|
|
|
* 获取收发货订单详情
|
|
|
*
|
|
|
@@ -6543,7 +6547,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
ship.setShipItemsList(ship.getShipItemsList());
|
|
|
ship.setNumberRows(ship.getShipItemsList().size());
|
|
|
}
|
|
|
- ship.setStatusName(OrderTypeEnum.PRODUCTION_COMPLETED.getType());
|
|
|
+ ship.setStatusName("待确认");
|
|
|
baseMapper.updateById(ship);
|
|
|
return R.data(ship);
|
|
|
}
|
|
|
@@ -6681,7 +6685,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R confirmPicking(PjShip ship) {
|
|
|
- ship.setStatusName(OrderTypeEnum.STOP_PICKING.getType());
|
|
|
+ ship.setStatusName("待确认");
|
|
|
if (ObjectUtils.isNull(ship.getStorageId())) {
|
|
|
throw new RuntimeException("请先选择仓库");
|
|
|
}
|
|
|
@@ -6838,7 +6842,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
@Override
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
public R revokePicking(PjShip ship) {
|
|
|
- ship.setStatusName(OrderTypeEnum.STAY_PICKING.getType());
|
|
|
+ ship.setStatusName("待领料");
|
|
|
ship.setUpdateUser(AuthUtil.getUserId());
|
|
|
ship.setUpdateTime(new Date());
|
|
|
PjShip shipVersion = baseMapper.selectById(ship.getId());
|
|
|
@@ -6896,10 +6900,10 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
&& ObjectUtils.isNull(e.getDot())).findFirst().orElse(null);
|
|
|
}
|
|
|
if (stockOne != null) {
|
|
|
- stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNum()));
|
|
|
+ stockOne.setBalanceQuantity(stockOne.getBalanceQuantity().add(item.getSendNumHave()));
|
|
|
stockOne.setBalanceQuantityHave(stockOne.getBalanceQuantityHave().add(item.getSendNumHave()));
|
|
|
stockOne.setStoreInventory(stockOne.getBalanceQuantity());
|
|
|
- BigDecimal inventoryAmount = item.getSendNum().multiply(stockOne.getInventoryCostPrice());
|
|
|
+ BigDecimal inventoryAmount = item.getSendNumHave().multiply(stockOne.getInventoryCostPrice());
|
|
|
stockOne.setInventoryAmount(stockOne.getInventoryAmount().add(inventoryAmount));
|
|
|
stockOne.setVersion(stockOne.getVersion());
|
|
|
pjStockDescArrayList.add(stockOne);
|
|
|
@@ -6960,6 +6964,9 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
public R generatePicking(PjShip ship) {
|
|
|
PjShip picking = new PjShip();
|
|
|
PjShip detail = baseMapper.selectById(ship.getId());
|
|
|
+ if (detail == null) {
|
|
|
+ throw new RuntimeException("未查到单据信息");
|
|
|
+ }
|
|
|
BeanUtil.copyProperties(detail, picking);
|
|
|
//明细
|
|
|
LambdaQueryWrapper<PjShipItems> itemsLambdaQueryWrapper = new LambdaQueryWrapper<>();
|
|
|
@@ -7007,4 +7014,73 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
return R.data(picking);
|
|
|
}
|
|
|
|
|
|
+ @Override
|
|
|
+ public R generateProductionOrder(Long id) {
|
|
|
+ PjOrderItems orderItems = orderItemsService.getById(id);
|
|
|
+ //新建入库工单
|
|
|
+ PjShip gdShip = new PjShip();
|
|
|
+ // 获取系统编号
|
|
|
+ String billNo = serialService.getBillNo(OrderTypeEnum.SCDD.getType(), OrderTypeEnum.SCDD.getType(), OrderTypeEnum.SCDD.getType());
|
|
|
+ if (ObjectUtils.isNull(billNo)) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.fail(500, "生成系统编号失败");
|
|
|
+ }
|
|
|
+ gdShip.setId(null);
|
|
|
+ gdShip.setBillno(billNo);
|
|
|
+ gdShip.setStatusName(OrderTypeEnum.PRODUCTION_IN.getType());
|
|
|
+ gdShip.setTenantId(AuthUtil.getTenantId());
|
|
|
+ gdShip.setBizTypeName(OrderTypeEnum.SCDD.getType());
|
|
|
+ gdShip.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ gdShip.setCreateUser(AuthUtil.getUserId());
|
|
|
+ gdShip.setCreateTime(new Date());
|
|
|
+ gdShip.setGoodsId(orderItems.getGoodsId());
|
|
|
+ gdShip.setGoodsName(orderItems.getGoodsName());
|
|
|
+ gdShip.setGoodsTotalNum(orderItems.getGoodsNum());
|
|
|
+ gdShip.setOperateDate(new Date());
|
|
|
+ R<Dept> dept = sysClient.getDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(dept)) {
|
|
|
+ gdShip.setSalesCompanyId(dept.getData().getId());
|
|
|
+ gdShip.setSalesCompanyName(dept.getData().getFullName());
|
|
|
+ } else {
|
|
|
+ throw new SecurityException("未维护所属公司");
|
|
|
+ }
|
|
|
+ baseMapper.insert(gdShip);
|
|
|
+
|
|
|
+ //根据采购明细创建入库工单明细
|
|
|
+ PjShipItems shipItems = new PjShipItems();
|
|
|
+ BeanUtil.copyProperties(orderItems, shipItems);
|
|
|
+ shipItems.setId(null);
|
|
|
+ shipItems.setPid(gdShip.getId());
|
|
|
+ shipItems.setSrcItemId(orderItems.getId());
|
|
|
+ shipItems.setCreateTime(new Date());
|
|
|
+ shipItems.setCreateUser(AuthUtil.getUserId());
|
|
|
+ shipItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ shipItemsService.save(shipItems);
|
|
|
+ ProductWorkmanship productWorkmanship = productWorkmanshipService.getOne(new LambdaQueryWrapper<ProductWorkmanship>()
|
|
|
+ .eq(ProductWorkmanship::getGoodsId, shipItems.getGoodsId())
|
|
|
+ .eq(ProductWorkmanship::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ProductWorkmanship::getIsDeleted, 0)
|
|
|
+ .apply("limit 1"));
|
|
|
+ if (productWorkmanship != null) {
|
|
|
+ List<ProductWorkmanshipItems> itemsList = productWorkmanshipItemsService.list(new LambdaQueryWrapper<ProductWorkmanshipItems>()
|
|
|
+ .eq(ProductWorkmanshipItems::getPid, productWorkmanship.getId())
|
|
|
+ .eq(ProductWorkmanshipItems::getTenantId, AuthUtil.getTenantId())
|
|
|
+ .eq(ProductWorkmanshipItems::getIsDeleted, 0));
|
|
|
+ List<ProductWorkmanshipItems> itemsListNew = new ArrayList<>();
|
|
|
+ for (ProductWorkmanshipItems item : itemsList) {
|
|
|
+ item.setId(null);
|
|
|
+ item.setPid(gdShip.getId());
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setUpdateTime(null);
|
|
|
+ item.setUpdateUser(0L);
|
|
|
+ itemsListNew.add(item);
|
|
|
+ }
|
|
|
+ if (!itemsListNew.isEmpty()) {
|
|
|
+ productWorkmanshipItemsService.saveBatch(itemsListNew);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
}
|