#
Junjie
2024-05-31 4921b4de30dd00a5d26f0e1e602aa6a17aa70d25
zy-asrs-wms/src/main/java/com/zy/asrs/wms/controller/OrderController.java
@@ -23,6 +23,7 @@
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.bind.annotation.*;
import java.math.BigDecimal;
import java.util.*;
@RestController
@@ -46,6 +47,31 @@
    private SnowflakeIdWorker snowflakeIdWorker;
    @Autowired
    private DocTypeService docTypeService;
    @RequestMapping(value = "/order/list/orderNo")
    public R orderListorderNo(@RequestParam String orderNo) {
        //数量修改成为完成数量
        List<OrderDetl> orderDetl1=orderDetlService.list(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderNo,orderNo));
        List<OrderDetl> orderDetls= new ArrayList<OrderDetl>();
        for (OrderDetl o: orderDetl1) {
            BigDecimal c1 = new BigDecimal(o.getEnableQty()).setScale(2,BigDecimal.ROUND_HALF_UP);
            o.setAnfme(c1.doubleValue());
            orderDetls.add(o);
        }
        return R.ok(orderDetls);
    }
    @RequestMapping(value = "/order/list/all")
    @ManagerAuth
    public R orderList() {
        return R.ok(orderService.selectAllorderNo(getHostId()));
    }
    @RequestMapping(value = "/outOrder/list/all")
    @ManagerAuth
    public R orderOutList() {
        return R.ok(orderService.selectAllOutOrderNo(getHostId()));
    }
    @RequestMapping(value = "/order/{id}/auth")
    @ManagerAuth
@@ -300,7 +326,7 @@
        for (OrderDetl orderDetl : param.getOrderDetlList()) {
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
            if (DetlDto.has(list, dto)) {
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch());
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), getHostId());
                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                if (!orderDetlService.updateById(item)) {
                    throw new CoolException("保存订单明细档失败");
@@ -315,6 +341,7 @@
                orderDetl.setUpdateTime(now);
                orderDetl.setStatus(1);
                orderDetl.setQty(0.0D);
                orderDetl.setWorkQty(0.0D);
                if (!orderDetlService.save(orderDetl)) {
                    throw new CoolException("保存订单明细档失败");
                }
@@ -352,4 +379,59 @@
        return R.ok().add(orders);
    }
    @RequestMapping(value = "/order/form/modify/auth")
    @ManagerAuth(memo = "手动修改订单")
    @Transactional
    public R formModify(@RequestBody OrderDomainParam param){
        Order order = orderService.getOne(new LambdaQueryWrapper<Order>()
                .eq(Order::getId, param.getOrderId())
                .eq(Order::getHostId, getHostId()));
        if (order == null || order.getStatus() == 0) {
            return R.error("订单不存在");
        }
        Date now = new Date();
        Long userId = getUserId();
        // 修改主档
        if (!param.getDocType().equals(order.getDocType())) {
            order.setDocType(param.getDocType());
            order.setUpdateBy(userId);
            order.setUpdateTime(now);
            if (!orderService.updateById(order)) {
                throw new CoolException("修改订单类型失败");
            }
        }
        // 修改明细档
//        List<OrderDetl> orderDetls = orderDetlService.selectByOrderId(order.getId());
        // 1.清空明细档
        if (!orderDetlService.remove(new LambdaQueryWrapper<OrderDetl>().eq(OrderDetl::getOrderId, order.getId()))) {
            throw new CoolException("清空订单明细失败");
        }
        // 2.重组数据
        List<DetlDto> list = new ArrayList<>();
        for (OrderDetl orderDetl : param.getOrderDetlList()) {
            DetlDto dto = new DetlDto(orderDetl.getMatnr(), orderDetl.getBatch());
            if (DetlDto.has(list, dto)) {
                OrderDetl item = orderDetlService.selectItem(order.getId(), orderDetl.getMatnr(), orderDetl.getBatch(), getHostId());
                item.setAnfme(item.getAnfme() + orderDetl.getAnfme());
                if (!orderDetlService.updateById(item)) {
                    throw new CoolException("保存订单明细档失败");
                }
            } else {
                list.add(dto);
                orderDetl.setOrderId(order.getId());
                orderDetl.setOrderNo(order.getOrderNo());
                orderDetl.setCreateBy(getUserId());
                orderDetl.setCreateTime(now);
                orderDetl.setUpdateBy(getUserId());
                orderDetl.setUpdateTime(now);
                orderDetl.setStatus(1);
                orderDetl.setQty(0.0D);
                if (!orderDetlService.save(orderDetl)) {
                    throw new CoolException("保存订单明细档失败");
                }
            }
        }
        return R.ok("订单修改成功");
    }
}