自动化立体仓库 - WMS系统
skyouc
1 天以前 c8e13c6d28a3f10666d97624762938188999e575
src/main/java/com/zy/api/service/impl/KopenApiServiceImpl.java
@@ -6,6 +6,9 @@
import com.core.common.R;
import com.core.exception.CoolException;
import com.zy.api.entity.OrderParams;
import com.zy.api.entity.SyncMatParmas;
import com.zy.api.enums.MatLocType;
import com.zy.api.enums.MatType;
import com.zy.api.enums.OrderType;
import com.zy.api.enums.OrderWkType;
import com.zy.api.service.KopenApiService;
@@ -14,16 +17,17 @@
import com.zy.asrs.entity.OrderDetl;
import com.zy.asrs.enums.CommonEnum;
import com.zy.asrs.enums.OrderSettle;
import com.zy.asrs.service.MatService;
import com.zy.asrs.service.OrderDetlService;
import com.zy.asrs.service.OrderService;
import com.zy.asrs.utils.Utils;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import java.util.Date;
import java.util.List;
import java.util.Objects;
@Service("kopenApiServiceImpl")
@@ -33,6 +37,8 @@
    private OrderService orderService;
    @Autowired
    private OrderDetlService orderDetlService;
    @Autowired
    private MatService matService;
    /**
     * 接收下发订单信息
@@ -56,12 +62,49 @@
     *
     * @author Ryan
     * @date 2025/11/24 15:05
     * @param matnrs
     * @param params
     * @return com.core.common.R
     */
    @Override
    public R basMatupdate(List<Mat> matnrs) {
        return null;
    @Transactional(rollbackFor = Exception.class)
    public R basMatupdate(SyncMatParmas params) {
        if (Objects.isNull(params.getPro_komcode())) {
            return R.error("零件编码不能为空!!");
        }
        Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", params.getPro_komcode()));
        if (!Objects.isNull(matnr)) {
            // 订单时间
            if (Utils.isValidFormat(params.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
                Date date = DateUtils.convert(params.getUpdate_time(), "yyyy-MM-dd HH:mm:ss");
                matnr.setUpdateTime(date);
            }
            matnr.setMaktx(params.getPro_name());
            matnr.setVolume(Double.parseDouble(params.getPro_size()));
            matnr.setWeight(Double.parseDouble(params.getPro_wet()));
            matnr.setSuppCode(params.getPro_id());
            matnr.setTagId(MatLocType.getTag(params.getPro_type()));
            matnr.setManu(params.getCompany_id());
            if (!matService.updateById(matnr)) {
                throw new CoolException("物料更新失败!!");
            }
        } else {
            // 订单时间
            if (Utils.isValidFormat(params.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
                Date date = DateUtils.convert(params.getUpdate_time(), "yyyy-MM-dd HH:mm:ss");
                matnr.setUpdateTime(date);
            }
            matnr.setMaktx(params.getPro_name());
            matnr.setMatnr(params.getPro_komcode());
            matnr.setVolume(Double.parseDouble(params.getPro_size()));
            matnr.setWeight(Double.parseDouble(params.getPro_wet()));
            matnr.setSuppCode(params.getPro_id());
            matnr.setTagId(MatLocType.getTag(params.getPro_type()));
            matnr.setManu(params.getCompany_id());
            if (!matService.insert(matnr)) {
                throw new CoolException("物料更新失败!!");
            }
        }
        return R.ok("保存成功!!");
    }
    /**
@@ -131,10 +174,12 @@
        newOrder.setNumber(params.getDispatch_no());
        // 箱号
        newOrder.setItemName(params.getPm_tktid());
        newOrder.setSettle(OrderSettle.ORDER_SETTLE_INIT.type);
        newOrder.setSettle(OrderSettle.ORDER_SETTLE_HOLDING.type);
        newOrder.setStatus(CommonEnum.COMMON_ENUM_Y.type);
        // 订单时间
        newOrder.setOrderTime(DateUtils.convert(new Date(), "yyyy-MM-dd HH:mm:ss"));
        if (Utils.isValidFormat(params.getUpdate_time(), "yyyy-MM-dd HH:mm:ss")) {
            newOrder.setOrderTime(params.getUpdate_time());
        }
        // 公司ID
        newOrder.setCstmrName(params.getCompany_id());
        newOrder.setCreateTime(new Date());
@@ -144,12 +189,18 @@
        }
        if (!Objects.isNull(params.getDetails()) && !params.getDetails().isEmpty()) {
            params.getDetails().forEach(item -> {
                Mat matnr = matService.selectOne(new EntityWrapper<Mat>().eq("matnr", item.getPro_komcode()));
                if (Objects.isNull(matnr)) {
                    throw new CoolException("物料编码不存在!!");
                }
                OrderDetl orderItem = new OrderDetl();
                BeanUtils.copyProperties(item, orderItem);
                BeanUtils.copyProperties(matnr, orderItem);
                orderItem.setOrderId(newOrder.getId());
                orderItem.setOrderNo(newOrder.getOrderNo());
                orderItem.setAnfme(Math.round(item.getInv_qty() * 10000) / 10000.0);
                orderItem.setMatnr(item.getPro_komcode());
                orderItem.setMatnr(matnr.getMatnr());
                orderItem.setMaktx(matnr.getMaktx());
                orderItem.setBrand(matnr.getBrand());
                orderItem.setBatch(1 + "");
                orderItem.setStandby1(item.getPro_id());
                //关联上加派工单号+零件代码+供应商代码