|
|
@@ -144,6 +144,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
* @return
|
|
|
*/
|
|
|
@Override
|
|
|
+ @Transactional
|
|
|
public R outboundWorkOrder(String ids) {
|
|
|
List<Long> shipIds = Func.toLongList(ids);
|
|
|
for (Long id : shipIds) {
|
|
|
@@ -159,7 +160,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
R billNo = serialClient.getBillNo(OrderTypeEnum.FHGD.getType(), OrderTypeEnum.FHGD.getType(), OrderTypeEnum.FHGD.getType());
|
|
|
if (billNo.getCode() != 200) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
- continue;
|
|
|
+ return R.fail(500, "生成系统编号失败");
|
|
|
}
|
|
|
BeanUtil.copyProperties(rwShip, gdShip);
|
|
|
|
|
|
@@ -180,7 +181,7 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
.eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
if (ObjectUtil.isNotEmpty(list)){
|
|
|
list.forEach(e -> {
|
|
|
- //根据销售明细创建入库工单明细
|
|
|
+ //根据销售明细创建出库工单明细
|
|
|
PjShipItems shipItems = new PjShipItems();
|
|
|
BeanUtil.copyProperties(e, shipItems);
|
|
|
|
|
|
@@ -216,7 +217,144 @@ public class ShipServiceImpl extends ServiceImpl<ShipMapper, PjShip> implements
|
|
|
ship.setStatusName(OrderTypeEnum.OURTBOUND.getType());
|
|
|
if (ship.getId() == null){
|
|
|
// 获取系统编号
|
|
|
- R billNo = serialClient.getBillNo(ship.getBizTypeName(), ship.getBizTypeName(), ship.getBizTypeName());
|
|
|
+ R billNo = serialClient.getBillNo(OrderTypeEnum.FHGD.getType(), OrderTypeEnum.FHGD.getType(), OrderTypeEnum.FHGD.getType());
|
|
|
+ if (billNo.getCode() != 200) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.fail(500, "生成系统编号失败");
|
|
|
+ }
|
|
|
+ ship.setBillno((String) billNo.getData());
|
|
|
+ ship.setCreateTime(new Date());
|
|
|
+ ship.setCreateUser(AuthUtil.getUserId());
|
|
|
+ ship.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ ship.setTenantId(AuthUtil.getTenantId());
|
|
|
+ baseMapper.insert(ship);
|
|
|
+ }else {
|
|
|
+ ship.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ ship.setUpdateTime(new Date());
|
|
|
+ baseMapper.updateById(ship);
|
|
|
+ }
|
|
|
+
|
|
|
+ // 保存订单明细
|
|
|
+ if (CollectionUtils.isNotEmpty(ship.getShipItemsList())) {
|
|
|
+ ship.getShipItemsList().forEach(item -> {
|
|
|
+ if (item.getId() == null){
|
|
|
+ item.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ item.setCreateTime(new Date());
|
|
|
+ item.setCreateUser(AuthUtil.getUserId());
|
|
|
+ item.setPid(ship.getId());
|
|
|
+ item.setTenantId(AuthUtil.getTenantId());
|
|
|
+ shipItemsMapper.insert(item);
|
|
|
+ }else {
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUser(AuthUtil.getUserId());
|
|
|
+ item.setPid(ship.getId());
|
|
|
+ shipItemsMapper.updateById(item);
|
|
|
+ }
|
|
|
+
|
|
|
+ PjOrderItems orderItems = orderItemsMapper.selectById(item.getSrcItemId());
|
|
|
+ if (ObjectUtil.isNotEmpty(orderItems)){
|
|
|
+ orderItems.setSendNum(item.getSendNum());
|
|
|
+ orderItemsMapper.updateById(orderItems);
|
|
|
+ }else {
|
|
|
+ throw new RuntimeException("数据异常请联系管理员");
|
|
|
+ }
|
|
|
+ });
|
|
|
+ ship.setShipItemsList(ship.getShipItemsList());
|
|
|
+ ship.setNumberRows(ship.getShipItemsList().size());
|
|
|
+ }
|
|
|
+
|
|
|
+ PjOrder order = orderMapper.selectById(ship.getOrdId());
|
|
|
+ if (ObjectUtil.isNotEmpty(order)){
|
|
|
+ order.setStatus(OrderTypeEnum.SHIPED.getType());
|
|
|
+ orderMapper.updateById(order);
|
|
|
+ }else {
|
|
|
+ throw new RuntimeException("数据异常请联系管理员");
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.data(ship);
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 生成入库工单
|
|
|
+ *
|
|
|
+ * @param ids
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public R generateWarehousing(String ids) {
|
|
|
+ List<Long> shipIds = Func.toLongList(ids);
|
|
|
+ for (Long id : shipIds) {
|
|
|
+ //获得出库任务数据
|
|
|
+ PjShip rwShip = baseMapper.selectById(id);
|
|
|
+ if (ObjectUtil.isEmpty(rwShip)) {
|
|
|
+ throw new RuntimeException("数据异常 请联系管理员");
|
|
|
+ }
|
|
|
+
|
|
|
+ //新建入库工单
|
|
|
+ PjShip gdShip = new PjShip();
|
|
|
+ // 获取系统编号
|
|
|
+ R billNo = serialClient.getBillNo(OrderTypeEnum.SHGD.getType(), OrderTypeEnum.SHGD.getType(), OrderTypeEnum.SHGD.getType());
|
|
|
+ if (billNo.getCode() != 200) {
|
|
|
+ TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
+ return R.fail(500, "生成系统编号失败");
|
|
|
+ }
|
|
|
+ BeanUtil.copyProperties(rwShip, gdShip);
|
|
|
+
|
|
|
+ gdShip.setId(null);
|
|
|
+ gdShip.setBillno((String) billNo.getData());
|
|
|
+ //gdShip.setStatusName(OrderTypeEnum.TOBESHIPPEDOUT.getType());
|
|
|
+ gdShip.setTenantId(AuthUtil.getTenantId());
|
|
|
+ gdShip.setBizTypeName(OrderTypeEnum.SHGD.getType());
|
|
|
+ gdShip.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ gdShip.setCreateUser(AuthUtil.getUserId());
|
|
|
+ gdShip.setCreateTime(new Date());
|
|
|
+ baseMapper.insert(gdShip);
|
|
|
+
|
|
|
+ //根据采购id获得采购明细数据
|
|
|
+ List<PjOrderItems> list = orderItemsMapper.selectList(new QueryWrapper<PjOrderItems>()
|
|
|
+ .eq("pid", rwShip.getOrdId())
|
|
|
+ .eq("is_deleted", 0)
|
|
|
+ .eq("tenant_id", AuthUtil.getTenantId()));
|
|
|
+ if (ObjectUtil.isNotEmpty(list)){
|
|
|
+ list.forEach(e -> {
|
|
|
+ //根据采购明细创建入库工单明细
|
|
|
+ PjShipItems shipItems = new PjShipItems();
|
|
|
+ BeanUtil.copyProperties(e, shipItems);
|
|
|
+
|
|
|
+ shipItems.setId(null);
|
|
|
+ shipItems.setPid(gdShip.getId());
|
|
|
+ shipItems.setSrcItemId(e.getId());
|
|
|
+ shipItems.setCreateTime(new Date());
|
|
|
+ shipItems.setCreateUser(AuthUtil.getUserId());
|
|
|
+ shipItems.setCreateDept(Long.valueOf(AuthUtil.getDeptId()));
|
|
|
+ shipItems.setSendNum(e.getGoodsNum());
|
|
|
+ shipItemsMapper.insert(shipItems);
|
|
|
+ });
|
|
|
+ gdShip.setNumberRows(list.size());
|
|
|
+ }
|
|
|
+
|
|
|
+ //修改入库任务状态
|
|
|
+ rwShip.setStatusName(OrderTypeEnum.DISPATCHED.getType());
|
|
|
+ baseMapper.updateById(rwShip);
|
|
|
+ }
|
|
|
+
|
|
|
+ return R.success("操作成功");
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 入库完成
|
|
|
+ *
|
|
|
+ * @param ship
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @Override
|
|
|
+ @Transactional
|
|
|
+ public R WarehousingComplete(PjShip ship) {
|
|
|
+ ship.setStatusName(OrderTypeEnum.RECEIVED.getType());
|
|
|
+ if (ship.getId() == null){
|
|
|
+ // 获取系统编号
|
|
|
+ R billNo = serialClient.getBillNo(OrderTypeEnum.SHGD.getType(), OrderTypeEnum.SHGD.getType(), OrderTypeEnum.SHGD.getType());
|
|
|
if (billNo.getCode() != 200) {
|
|
|
TransactionAspectSupport.currentTransactionStatus().setRollbackOnly();
|
|
|
return R.fail(500, "生成系统编号失败");
|