cp
2024-11-19 676cbdde86ae8ea598be6e9f6776ae5bf67478f6
zy-asrs-openapi/src/main/java/com/zy/asrs/openapi/controller/ApiController.java
@@ -5,10 +5,7 @@
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.zy.asrs.common.openapi.entity.HostKey;
import com.zy.asrs.common.openapi.entity.dto.OrderListDto;
import com.zy.asrs.common.openapi.entity.param.CreateMatParam;
import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakInParam;
import com.zy.asrs.common.openapi.entity.param.GenerateOrderPakOutParam;
import com.zy.asrs.common.openapi.entity.param.OrderListParam;
import com.zy.asrs.common.openapi.entity.param.*;
import com.zy.asrs.common.openapi.service.ApiService;
import com.zy.asrs.common.openapi.service.HostKeyService;
import com.zy.asrs.common.web.BaseController;
@@ -19,12 +16,14 @@
import com.zy.asrs.framework.common.Cools;
import com.zy.asrs.framework.common.R;
import com.zy.asrs.framework.exception.CoolException;
import com.zy.asrs.openapi.param.MatParam;
import com.zy.asrs.openapi.param.OrderParam;
import lombok.extern.slf4j.Slf4j;
import org.apache.commons.codec.digest.DigestUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.*;
import javax.servlet.http.HttpServletRequest;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
@@ -167,4 +166,73 @@
        return hostKey;
    }
    @PostMapping("order/execute/auth/v1")
    public R wms1(@RequestBody Map<String, Object> map) {
        try {
//            System.out.println(map.toString());
            log.info("order/execute/auth/v1:" + JSON.toJSONString(map));
            OrderParam orderParam = JSON.parseObject(JSON.toJSONString(map), OrderParam.class);
            List<DocType> list = apiService.getOrderType();
            DocType type = null;
            for (DocType docType : list) {
                if (docType.getDocName().equals(orderParam.getOrderType())) {
                    type = docType;
                    break;
                }
            }
            if (type == null) {
                return R.error("单据类型不存在");
            }
            ArrayList<GenerateOrderMatParam> mats = new ArrayList<>();
            String matnr=null;
            for (MatParam matParam : orderParam.getList()) {
                GenerateOrderMatParam mat = new GenerateOrderMatParam();
                mat.setMatnr(matParam.getMatnr());
                mat.setBatch(matParam.getBatch());
                mat.setAnfme(matParam.getCount());
                mat.setUnit(matParam.getUnit());
                mat.setWarehouse(matParam.getWarehouse());
                mat.setOrigin(matParam.getOrigin());
                mat.setOriginNo(matParam.getOriginNo());
                if(Cools.isEmpty(mats)){
                    mats.add(mat);
                }else{
                    for (GenerateOrderMatParam m:mats
                         ) {
                        if(m.getMatnr().equals(matParam.getMatnr())){
                            return R.error("同一订单不允许有相同物料");
                        }
                    }
                    mats.add(mat);
                }
            }
            if (orderParam.getInOut() == 1) {
                //入库
                GenerateOrderPakInParam param = new GenerateOrderPakInParam();
                param.setHostId(1L);
                param.setOrderType(type.getDocId().intValue());
                param.setOrderNo(orderParam.getOrderNo());
                param.setMats(mats);
                apiService.generateOrderPakIn(param);
            } else if (orderParam.getInOut() == 2) {
                //出库
                GenerateOrderPakOutParam param = new GenerateOrderPakOutParam();
                param.setHostId(1L);
                param.setOrderType(type.getDocId().intValue());
                param.setOrderNo(orderParam.getOrderNo());
                param.setMats(mats);
                apiService.generateOrderPakOut(param);
            } else {
                //其他
                return R.error("出入库类型错误");
            }
            return R.ok();
        } catch (Exception e) {
            return R.error(e.getMessage());
        }
    }
}