自动化立体仓库 - WMS系统
1
ZY
2024-09-25 69c2eb64ab9772df8ac131cb94eeae5c32eb7d74
1
4个文件已修改
112 ■■■■ 已修改文件
src/main/java/com/zy/asrs/controller/OpenController.java 2 ●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/entity/Order.java 5 ●●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/OpenService.java 3 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java 102 ●●●● 补丁 | 查看 | 原始文档 | blame | 历史
src/main/java/com/zy/asrs/controller/OpenController.java
@@ -69,7 +69,7 @@
        if (Cools.isEmpty(user)){
            return R.error("未找到用户");
        }
        List<String> stringList = openService.selectOrderInformation(param);
        List<Order> stringList = openService.selectOrderInformation(param);
        return R.ok(stringList);
    }
src/main/java/com/zy/asrs/entity/Order.java
@@ -17,6 +17,7 @@
import java.io.Serializable;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.List;
@Data
@TableName("man_order")
@@ -261,6 +262,10 @@
    @ApiModelProperty(value= "备注")
    private String memo;
    @TableField(exist = false)
    private List<OrderDetl> orderDetls;
    public Order() {}
    public Order(String uuid,String orderNo,String orderTime,Long docType,Long itemId,String itemName,Long allotItemId,String defNumber,String number,Long cstmr,String cstmrName,String tel,String operMemb,Double totalFee,Double discount,Double discountFee,Double otherFee,Double actFee,Integer payType,String salesman,Integer accountDay,Integer postFeeType,Double postFee,Date payTime,Date sendTime,String shipName,String shipCode,Long settle,Integer status,Long createBy,Date createTime,Long updateBy,Date updateTime,String memo) {
src/main/java/com/zy/asrs/service/OpenService.java
@@ -2,6 +2,7 @@
import com.alibaba.fastjson.JSONObject;
import com.core.common.R;
import com.zy.asrs.entity.Order;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.StockVo;
@@ -52,5 +53,5 @@
    int pakinReportErp(JSONObject jsonObject) throws ParseException;
    List<String> selectOrderInformation(Map<String, String> param);
    List<Order> selectOrderInformation(Map<String, String> param);
}
src/main/java/com/zy/asrs/service/impl/OpenServiceImpl.java
@@ -9,7 +9,6 @@
import com.core.common.R;
import com.core.common.SnowflakeIdWorker;
import com.core.exception.CoolException;
import com.sun.org.apache.xpath.internal.operations.Or;
import com.zy.asrs.entity.*;
import com.zy.asrs.entity.param.*;
import com.zy.asrs.entity.result.InOutCountDto;
@@ -31,7 +30,10 @@
import org.springframework.transaction.annotation.Transactional;
import java.text.ParseException;
import java.util.*;
import java.util.ArrayList;
import java.util.Date;
import java.util.List;
import java.util.Map;
/**
 * Created by vincent on 2022/4/9
@@ -92,12 +94,12 @@
            throw new CoolException(param.getOrderNo() + "单据已存在,请勿重复提交");
        }
        for (DetlDto detlDto : param.getOrderDetails()){
            if (Cools.isEmpty(detlDto) || Cools.isEmpty(detlDto.getOwnerName(),detlDto.getPayment())){
        for (DetlDto detlDto : param.getOrderDetails()) {
            if (Cools.isEmpty(detlDto) || Cools.isEmpty(detlDto.getOwnerName(), detlDto.getPayment())) {
                throw new CoolException(param.getOrderNo() + "缺少货主或货物形态");
            }else {
            } else {
                LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName()));
                if (Cools.isEmpty(locOwner)){
                if (Cools.isEmpty(locOwner)) {
                    LocOwner locOwner1 = new LocOwner();
                    locOwner1.setOwner(detlDto.getOwnerName());
                    locOwnerService.insert(locOwner1);
@@ -150,7 +152,7 @@
        List<DetlDto> list = new ArrayList<>();
        List<DetlDto> orderDetails = param.getOrderDetails();
        for (DetlDto detail : orderDetails) {
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(),detail.getOwnerName(),detail.getPayment());
            DetlDto dto = new DetlDto(detail.getMatnr(), detail.getBatch(), detail.getAnfme(), detail.getOwnerName(), detail.getPayment());
            if (DetlDto.has(list, dto)) {
                DetlDto detlDto = DetlDto.find(list, dto.getMatnr(), dto.getBatch());
                assert detlDto != null;
@@ -183,9 +185,9 @@
            orderDetl.setUpdateBy(9527L);
            orderDetl.setUpdateTime(now);
            LocOwner locOwner = locOwnerService.selectOne(new EntityWrapper<LocOwner>().eq("owner", detlDto.getOwnerName()));
            if (Cools.isEmpty(locOwner)){
            if (Cools.isEmpty(locOwner)) {
                throw new CoolException("生成单据明细失败,请联系管理员");
            }else {
            } else {
                orderDetl.setOwner(locOwner.getId().intValue());
            }
            orderDetl.setPayment(detlDto.getPayment());
@@ -214,7 +216,7 @@
        //查找做单用户
        User user = userService.selectOne(new EntityWrapper<User>().eq("username", param.getCMaker()));
        if(Cools.isEmpty(user)){
        if (Cools.isEmpty(user)) {
            throw new CoolException("未查询到该用户");
        }
@@ -259,7 +261,7 @@
            throw new CoolException("生成单据主档失败,请联系管理员");
        }
        // 单据明细档
        for (OpenOrderPakoutParam.Body body : param.getADDBody()){
        for (OpenOrderPakoutParam.Body body : param.getADDBody()) {
            Mat mat = matService.selectByMatnr(body.getCInvCode());
            if (Cools.isEmpty(mat)) {
                throw new CoolException(body.getCInvCode() + "编号商品检索失败,请先添加商品");
@@ -413,8 +415,8 @@
        }
        //删除存货档案
        if(param.deleteFlag == 1){
            for (MatSyncParam.MatParam matParam : param.getMatDetails()){
        if (param.deleteFlag == 1) {
            for (MatSyncParam.MatParam matParam : param.getMatDetails()) {
                matService.deleteById(matParam.getMatnr());
            }
@@ -534,30 +536,30 @@
    }
    /*
    * 速腾数字孪生调用接口
    * */
     * 速腾数字孪生调用接口
     * */
    @Override
    public DigitalTwin inventoryQuantity() {
        DigitalTwin digitalTwin = new DigitalTwin();
        LocChartPie locUseRate = reportQueryMapper.getLocUseRate();
        LocChartPie locUseRateL = reportQueryMapper.getLocUseRateL();
        LocChartPie locUseRateP = reportQueryMapper.getLocUseRateP();
        if(locUseRate!=null) {
            digitalTwin.setCount(locUseRate.getOqty()+locUseRate.getFqty()+locUseRate.getUqty()+locUseRate.getXqty());
        if (locUseRate != null) {
            digitalTwin.setCount(locUseRate.getOqty() + locUseRate.getFqty() + locUseRate.getUqty() + locUseRate.getXqty());
            digitalTwin.setOqty(locUseRate.getOqty());
            digitalTwin.setFqty(locUseRate.getFqty());
            digitalTwin.setUqty(locUseRate.getUqty());
            digitalTwin.setXqty(locUseRate.getXqty());
        }
        if(locUseRateL!=null) {
            digitalTwin.setCountL(locUseRateL.getOqty()+locUseRateL.getFqty()+locUseRateL.getUqty()+locUseRateL.getXqty());
        if (locUseRateL != null) {
            digitalTwin.setCountL(locUseRateL.getOqty() + locUseRateL.getFqty() + locUseRateL.getUqty() + locUseRateL.getXqty());
            digitalTwin.setOqtyL(locUseRateL.getOqty());
            digitalTwin.setFqtyL(locUseRateL.getFqty());
            digitalTwin.setUqtyL(locUseRateL.getUqty());
            digitalTwin.setXqtyL(locUseRateL.getXqty());
        }
        if (locUseRateP!=null){
            digitalTwin.setCountP(locUseRateP.getOqty()+locUseRateP.getFqty()+locUseRateP.getUqty()+locUseRateP.getXqty());
        if (locUseRateP != null) {
            digitalTwin.setCountP(locUseRateP.getOqty() + locUseRateP.getFqty() + locUseRateP.getUqty() + locUseRateP.getXqty());
            digitalTwin.setOqtyP(locUseRateP.getOqty());
            digitalTwin.setFqtyP(locUseRateP.getFqty());
            digitalTwin.setUqtyP(locUseRateP.getUqty());
@@ -572,8 +574,8 @@
        List<OpenOrderPakoutParam> list = new ArrayList<>();
        for (Object o : jsonArray){
            JSONObject jsonObject = (JSONObject)o;
        for (Object o : jsonArray) {
            JSONObject jsonObject = (JSONObject) o;
            String brand = jsonObject.get("brand").toString();
            String batch = jsonObject.get("batch").toString();
            Integer packageNo = Integer.parseInt(jsonObject.get("packageNo").toString());
@@ -581,7 +583,7 @@
            Pla pla = plaService.selectByBatchAndPackageNo(batch, packageNo, brand);
            Mat mat = matService.selectByMaktx(pla.getBrand());
            //当生产单号不一致时,需要新建一个param
            if(list.size() == 0 || checkOrder(list,pla.getProOrderNo()) == null){
            if (list.size() == 0 || checkOrder(list, pla.getProOrderNo()) == null) {
                OpenOrderPakoutParam param = new OpenOrderPakoutParam();
                param.setcMaker(json.get("user").toString());
                String type = Cools.isEmpty(pla.getProOrderNo()) ? "调拨入库单" : "产成品入库";
@@ -601,24 +603,24 @@
                param.setaDDBody(bodyList);
                list.add(param);
            }else {
            } else {
                OpenOrderPakoutParam param = checkOrder(list, pla.getProOrderNo());
                List<OpenOrderPakoutParam.Body> bodyList = param.getADDBody();
                OpenOrderPakoutParam.Body body = checkOrderDetl(bodyList, mat.getMatnr());
                //有新的牌号则添加新的orderDetl,否则累加
                if(body == null){
                if (body == null) {
                    body = new OpenOrderPakoutParam.Body();
                    body.setcInvCode(mat.getMatnr());
                    body.setiQuantity(pla.getWeightAnfme());
                    body.setCbMemo(pla.getMemo());
                    bodyList.add(body);
                }else {
                } else {
                    body.setiQuantity(body.getIQuantity() + pla.getWeightAnfme());
                }
            }
        }
        for (OpenOrderPakoutParam param : list){
        for (OpenOrderPakoutParam param : list) {
            doHttpRequest(param, "入库单上报", url, orderReportPath, null, "127.0.0.1");
        }
@@ -630,36 +632,38 @@
    }
    @Override
    public List<String> selectOrderInformation(Map<String, String> param) {
        ArrayList<String> list = new ArrayList<>();
    public List<Order> selectOrderInformation(Map<String, String> param) {
        List<Order> list = new ArrayList<>();
        String name = param.get("name");
        User user = userService.selectOne(new EntityWrapper<User>().eq("username", name));
        if (Cools.isEmpty(user)){
        if (Cools.isEmpty(user)) {
            return list;
        }
        List<Order> orderList = orderService.selectList(new EntityWrapper<Order>().eq("create_by", user.getId()));
        if (Cools.isEmpty(orderList)){
        if (Cools.isEmpty(orderList)) {
            return list;
        }
        for (Order order : orderList){
            if (order.getSettle() ==1 || order.getSettle() ==2){
                list.add(order.getOrderNo());
        for (Order order : orderList) {
            if (order.getSettle() == 1 || order.getSettle() == 2) {
                List<OrderDetl> detlList = orderDetlService.selectByOrderId(order.getId());
                order.setOrderDetls(detlList);
                list.add(order);
            }
        }
        return list;
    }
    private OpenOrderPakoutParam checkOrder(List<OpenOrderPakoutParam> list, String orderNo){
    private OpenOrderPakoutParam checkOrder(List<OpenOrderPakoutParam> list, String orderNo) {
        for (OpenOrderPakoutParam param : list){
        for (OpenOrderPakoutParam param : list) {
            if(Cools.eq("调拨入库单",param.getType()) && Cools.isEmpty(orderNo)){
            if (Cools.eq("调拨入库单", param.getType()) && Cools.isEmpty(orderNo)) {
                return param;
            }
            //判断是否包含重复的订单号
            if(Cools.eq(param.getCCode(),orderNo)){
            if (Cools.eq(param.getCCode(), orderNo)) {
                return param;
            }
        }
@@ -668,11 +672,11 @@
    }
    private OpenOrderPakoutParam.Body checkOrderDetl(List<OpenOrderPakoutParam.Body> bodyList, String matnr){
    private OpenOrderPakoutParam.Body checkOrderDetl(List<OpenOrderPakoutParam.Body> bodyList, String matnr) {
        for (OpenOrderPakoutParam.Body param : bodyList){
        for (OpenOrderPakoutParam.Body param : bodyList) {
            //判断是否包含重复的订单号
            if(Cools.eq(param.getCInvCode(),matnr)){
            if (Cools.eq(param.getCInvCode(), matnr)) {
                return param;
            }
        }
@@ -681,7 +685,7 @@
    }
    private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip){
    private int doHttpRequest(Object requestParam, String namespace, String url, String path, String appkey, String ip) {
        String response = "";
        boolean success = false;
@@ -694,25 +698,25 @@
                    .doPost();
            response = response.replace("\\", "");
            response = response.substring(1,response.length()-1);
            response = response.substring(1, response.length() - 1);
            JSONObject jsonObject = JSON.parseObject(response);
            JSONArray jsonArray = (JSONArray)jsonObject.get("");
            JSONArray jsonArray = (JSONArray) jsonObject.get("");
            JSONObject jsonResult = (JSONObject) jsonArray.get(0);
            if(Cools.isEmpty(jsonResult.get("ErrorCode"))){
            if (Cools.isEmpty(jsonResult.get("ErrorCode"))) {
                throw new CoolException(jsonResult.get("errorMsg").toString());
            }
            int code = Integer.parseInt(jsonResult.get("ErrorCode").toString());
            if(code != 1){
            if (code != 1) {
                throw new CoolException(jsonResult.get("errorMsg").toString());
            }
            success = true;
            return code;
        }catch (Exception e){
        } catch (Exception e) {
            log.error(e.getMessage());
            throw new CoolException(e.getMessage());
        }finally {
        } finally {
            apiLogService.save(
                    namespace,
                    url + path,