自动化立体仓库 - WMS系统
zyx
2023-07-26 e2ae6b57bb1398391be2050e85a729a7c8682f1f
src/main/java/com/zy/asrs/task/handler/MesMatSyncHandler.java
@@ -3,6 +3,7 @@
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.mapper.EntityWrapper;
import com.core.common.Cools;
import com.zy.asrs.entity.Mat;
import com.zy.asrs.entity.MaterialInfo;
import com.zy.asrs.service.ApiLogService;
@@ -16,12 +17,10 @@
import org.springframework.beans.factory.annotation.Value;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.util.DigestUtils;
import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.text.SimpleDateFormat;
import java.util.Date;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
@@ -29,8 +28,8 @@
@Service
public class MesMatSyncHandler extends AbstractHandler<String> {
    @Value("${mes.mat-sync.url}")
    private String url;
    @Value("${mes.mat-sync.uri}")
    private String uri;
    @Value("${mes.mat-sync.path}")
    private String path;
@@ -44,8 +43,8 @@
    @Transactional
    public ReturnT<String> start() throws IOException {
        boolean success = true;
        log.info("url:" + url + path);
        JSONObject jsonObject = doGetJsonData();
        JSONObject jsonObject = doPostJsonData();
        log.info("MesMatSync jsonObject: " + jsonObject.toJSONString());
        int code = jsonObject.getInteger("code");
@@ -66,7 +65,7 @@
    private void saveApiLog(String response, boolean success) {
        apiLogService.save(
                "商品信息同步",
                url + path,
                uri + path,
                null,
                "127.0.0.1",
                null,
@@ -76,16 +75,24 @@
    }
    /*
    发起一个doGet请求
    发起一个请求来获取商品信息
     */
    private JSONObject doGetJsonData() throws IOException {
    private JSONObject doPostJsonData() throws IOException {
        Map<String, Object> requestParamMap = MesSyncUtil.getRequestParamMap();
        Mat mat = matService.selectOne(new EntityWrapper<Mat>().orderBy("update_time", false));
        //如果WMS中有mat信息,则获取最新的mat修改时间,然后获取该时间之后所有更新过的隔膜卷信息。如果没有mat信息,则获取所有隔膜卷信息
        if(!Cools.isEmpty(mat)){
            SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
            requestParamMap.put("time",sdf.format(mat.getUpdateTime()));
        }
        return JSON.parseObject( new HttpHandler.Builder()
                .setUri(url)
                .setUri(uri)
                .setPath(path)
                .setParams(MesSyncUtil.getRequestParamMap())
                .setParams(requestParamMap)
                .build()
                .doGet());
                .doPostWithParam());
    }
    /*
@@ -98,7 +105,7 @@
            Mat m = matService.selectByMatnr(data.getItemCode());
            if(m == null){
                m = new Mat();
                m.setCreateTime(jsonObject.getDate("createDate"));
                //m.setCreateTime(jsonObject.getDate("createDate"));
                matMapping(data,m);
                matService.insert(m);
            }else {
@@ -114,8 +121,10 @@
    映射mat和物料档案信息字段
     */
    private void matMapping(MaterialInfo data, Mat m){
        //
        m.setCreateTime((data.getMdate()));
        //修改时间 -- 更新时间
        m.setUpdateTime(data.getMdate());
        m.setUpdateTime(new Date());
        //商品编码 -- 物料编码
        m.setMatnr(data.getItemCode());
        //商品名称 -- 物料名称