Compare commits
	
		
			2 Commits 
		
	
	
		
			f903828f4d
			...
			c9e6d8627a
		
	
	| Author | SHA1 | Date | 
|---|---|---|
| 
							
							
								 | 
						c9e6d8627a | |
| 
							
							
								 | 
						e0585fad31 | 
| 
						 | 
					@ -1,6 +1,7 @@
 | 
				
			||||||
package com.youchain.exception.handler;
 | 
					package com.youchain.exception.handler;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import lombok.Data;
 | 
					import lombok.Data;
 | 
				
			||||||
 | 
					import org.springframework.http.HttpStatus;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
@Data
 | 
					@Data
 | 
				
			||||||
public class ApiResult {
 | 
					public class ApiResult {
 | 
				
			||||||
| 
						 | 
					@ -40,4 +41,8 @@ public class ApiResult {
 | 
				
			||||||
        rs.setData(data);
 | 
					        rs.setData(data);
 | 
				
			||||||
        return rs;
 | 
					        return rs;
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public HttpStatus getStatus() {
 | 
				
			||||||
 | 
					        return HttpStatus.valueOf(this.code);
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,8 @@ import java.security.cert.X509Certificate;
 | 
				
			||||||
@Slf4j
 | 
					@Slf4j
 | 
				
			||||||
public class HttpPostUtil {
 | 
					public class HttpPostUtil {
 | 
				
			||||||
    public static String sendPostReq(String api_url, String request) {
 | 
					    public static String sendPostReq(String api_url, String request) {
 | 
				
			||||||
 | 
					        System.out.println("api:"+api_url);
 | 
				
			||||||
 | 
					        System.out.println("request:"+request);
 | 
				
			||||||
        InputStream instr = null;
 | 
					        InputStream instr = null;
 | 
				
			||||||
        String str = "";
 | 
					        String str = "";
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
| 
						 | 
					@ -46,6 +48,7 @@ public class HttpPostUtil {
 | 
				
			||||||
                System.out.println("返回空");
 | 
					                System.out.println("返回空");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            str = ResponseString;
 | 
					            str = ResponseString;
 | 
				
			||||||
 | 
					            System.out.println("返回:"+str);
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            log.info("接口异常");
 | 
					            log.info("接口异常");
 | 
				
			||||||
            // throw new Error(e.getMessage());
 | 
					            // throw new Error(e.getMessage());
 | 
				
			||||||
| 
						 | 
					@ -54,6 +57,9 @@ public class HttpPostUtil {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static String sendPostReq(String api_url, String request, String token) {
 | 
					    public static String sendPostReq(String api_url, String request, String token) {
 | 
				
			||||||
 | 
					        System.out.println("api:"+api_url);
 | 
				
			||||||
 | 
					        System.out.println("request:"+request);
 | 
				
			||||||
 | 
					        System.out.println("token:"+token);
 | 
				
			||||||
        InputStream instr = null;
 | 
					        InputStream instr = null;
 | 
				
			||||||
        String str = "";
 | 
					        String str = "";
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
										
											Binary file not shown.
										
									
								
							
										
											Binary file not shown.
										
									
								
							| 
						 | 
					@ -119,9 +119,13 @@
 | 
				
			||||||
            <artifactId>s7connector</artifactId>
 | 
					            <artifactId>s7connector</artifactId>
 | 
				
			||||||
            <version>2.1</version>
 | 
					            <version>2.1</version>
 | 
				
			||||||
        </dependency>
 | 
					        </dependency>
 | 
				
			||||||
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
    </dependencies>
 | 
					    </dependencies>
 | 
				
			||||||
 | 
					    <repositories>
 | 
				
			||||||
 | 
					        <repository>
 | 
				
			||||||
 | 
					            <id>aliyunmaven</id>
 | 
				
			||||||
 | 
					            <url>http://maven.aliyun.com/nexus/content/groups/public/</url>
 | 
				
			||||||
 | 
					        </repository>
 | 
				
			||||||
 | 
					    </repositories>
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    <!-- 打包 -->
 | 
					    <!-- 打包 -->
 | 
				
			||||||
    <build>
 | 
					    <build>
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -60,6 +60,11 @@ public class AppRun {
 | 
				
			||||||
        springApplication.run(args);
 | 
					        springApplication.run(args);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        log.error(JSONUtil.toJsonStr(LicenseValidate.getDeviceInfo()));
 | 
					        log.error(JSONUtil.toJsonStr(LicenseValidate.getDeviceInfo()));
 | 
				
			||||||
 | 
					        try{
 | 
				
			||||||
 | 
					            log.error(JSONUtil.toJsonStr(LicenseValidate.getLicense("2026-05-26")));
 | 
				
			||||||
 | 
					        }catch (Exception e){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -34,6 +34,7 @@ import com.youchain.exception.handler.ApiResult;
 | 
				
			||||||
import com.youchain.modules.system.domain.Dept;
 | 
					import com.youchain.modules.system.domain.Dept;
 | 
				
			||||||
import com.youchain.utils.BaseStatus;
 | 
					import com.youchain.utils.BaseStatus;
 | 
				
			||||||
import com.youchain.utils.FileUtil;
 | 
					import com.youchain.utils.FileUtil;
 | 
				
			||||||
 | 
					import com.youchain.utils.ImportEntityUtils;
 | 
				
			||||||
import com.youchain.utils.UserUtils;
 | 
					import com.youchain.utils.UserUtils;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.data.domain.Pageable;
 | 
					import org.springframework.data.domain.Pageable;
 | 
				
			||||||
| 
						 | 
					@ -61,7 +62,7 @@ import static org.springframework.http.HttpStatus.BAD_REQUEST;
 | 
				
			||||||
 **/
 | 
					 **/
 | 
				
			||||||
@RestController
 | 
					@RestController
 | 
				
			||||||
@RequiredArgsConstructor
 | 
					@RequiredArgsConstructor
 | 
				
			||||||
@Api(tags = "ponit管理")
 | 
					@Api(tags = "点位管理")
 | 
				
			||||||
@Slf4j
 | 
					@Slf4j
 | 
				
			||||||
@RequestMapping("/api/point")
 | 
					@RequestMapping("/api/point")
 | 
				
			||||||
public class PointController {
 | 
					public class PointController {
 | 
				
			||||||
| 
						 | 
					@ -102,10 +103,11 @@ public class PointController {
 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            List<Map<String, Object>> readAll = reader.readAll();
 | 
					            List<Map<String, Object>> readAll = reader.readAll();
 | 
				
			||||||
            for (i = 0; i < readAll.size(); i++) {
 | 
					            for (i = 0; i < readAll.size(); i++) {
 | 
				
			||||||
                String code = readAll.get(i).get("编码").toString().trim();
 | 
					                String code = readAll.get(i).get("外部编码").toString().trim();
 | 
				
			||||||
                String types = readAll.get(i).get("类型").toString().trim();
 | 
					                String name = readAll.get(i).get("名称").toString().trim();
 | 
				
			||||||
 | 
					                String types = readAll.get(i).get("存储类型").toString().trim();
 | 
				
			||||||
                String areaCode = readAll.get(i).get("库区").toString().trim();
 | 
					                String areaCode = readAll.get(i).get("库区").toString().trim();
 | 
				
			||||||
                String ccTYPE = readAll.get(i).get("存储类型") == null ? "" : readAll.get(i).get("存储类型").toString().trim();
 | 
					                String enabled = readAll.get(i).get("是否启用").toString().trim();
 | 
				
			||||||
                Double x = readAll.get(i).get("坐标X") == null ? 0 : Double.parseDouble(readAll.get(i).get("坐标X").toString());
 | 
					                Double x = readAll.get(i).get("坐标X") == null ? 0 : Double.parseDouble(readAll.get(i).get("坐标X").toString());
 | 
				
			||||||
                Double y = readAll.get(i).get("坐标Y") == null ? 0 : Double.parseDouble(readAll.get(i).get("坐标Y").toString());
 | 
					                Double y = readAll.get(i).get("坐标Y") == null ? 0 : Double.parseDouble(readAll.get(i).get("坐标Y").toString());
 | 
				
			||||||
                Area area = areaService.findByCode(areaCode);
 | 
					                Area area = areaService.findByCode(areaCode);
 | 
				
			||||||
| 
						 | 
					@ -117,9 +119,9 @@ public class PointController {
 | 
				
			||||||
                if (point == null) {
 | 
					                if (point == null) {
 | 
				
			||||||
                    point = new Point();
 | 
					                    point = new Point();
 | 
				
			||||||
                    point.setCode(code);
 | 
					                    point.setCode(code);
 | 
				
			||||||
                    point.setName(code);
 | 
					                    point.setName(name);
 | 
				
			||||||
                    String lx = "";
 | 
					                    String lx = "";
 | 
				
			||||||
                    if (types.equals("缓存点")) {
 | 
					                    if (types.equals("存储点")) {
 | 
				
			||||||
                        lx = BaseStatus.STORAGE;
 | 
					                        lx = BaseStatus.STORAGE;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
                    } else if (types.equals("线边点位")) {
 | 
					                    } else if (types.equals("线边点位")) {
 | 
				
			||||||
| 
						 | 
					@ -128,7 +130,6 @@ public class PointController {
 | 
				
			||||||
                    point.setType(lx);
 | 
					                    point.setType(lx);
 | 
				
			||||||
                    point.setArea(area);
 | 
					                    point.setArea(area);
 | 
				
			||||||
                    point.setDept(dept);
 | 
					                    point.setDept(dept);
 | 
				
			||||||
                    point.setDescription(ccTYPE);
 | 
					 | 
				
			||||||
                    point.setPosX(x);
 | 
					                    point.setPosX(x);
 | 
				
			||||||
                    point.setPosY(y);
 | 
					                    point.setPosY(y);
 | 
				
			||||||
                    point.setEnabled(true);
 | 
					                    point.setEnabled(true);
 | 
				
			||||||
| 
						 | 
					@ -148,8 +149,10 @@ public class PointController {
 | 
				
			||||||
                    point.setType(lx);
 | 
					                    point.setType(lx);
 | 
				
			||||||
                    point.setArea(area);
 | 
					                    point.setArea(area);
 | 
				
			||||||
                    point.setDept(dept);
 | 
					                    point.setDept(dept);
 | 
				
			||||||
                    point.setDescription(ccTYPE);
 | 
					 | 
				
			||||||
                    point.setPosX(x);
 | 
					                    point.setPosX(x);
 | 
				
			||||||
 | 
					                    if (ImportEntityUtils.stringFlag(enabled)){
 | 
				
			||||||
 | 
					                        point.setEnabled(Boolean.valueOf(enabled));
 | 
				
			||||||
 | 
					                    }
 | 
				
			||||||
                    point.setPosY(y);
 | 
					                    point.setPosY(y);
 | 
				
			||||||
                    pointService.update(point);
 | 
					                    pointService.update(point);
 | 
				
			||||||
                    edit_len++;
 | 
					                    edit_len++;
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -143,27 +143,13 @@ public class PointServiceImpl implements PointService {
 | 
				
			||||||
        List<Map<String, Object>> list = new ArrayList<>();
 | 
					        List<Map<String, Object>> list = new ArrayList<>();
 | 
				
			||||||
        for (PointDto point : all) {
 | 
					        for (PointDto point : all) {
 | 
				
			||||||
            Map<String, Object> map = new LinkedHashMap<>();
 | 
					            Map<String, Object> map = new LinkedHashMap<>();
 | 
				
			||||||
            map.put("RCS代码", point.getCode());
 | 
					            map.put("外部编码", point.getCode());
 | 
				
			||||||
            map.put("名称", point.getName());
 | 
					            map.put("名称", point.getName());
 | 
				
			||||||
            map.put("状态", point.getStatus());
 | 
					            map.put("状态", point.getStatus());
 | 
				
			||||||
            map.put("描述", point.getDescription());
 | 
					            map.put("描述", point.getDescription());
 | 
				
			||||||
            map.put("区域编码", point.getBeatCode());
 | 
					            map.put("库区", point.getArea().getName());
 | 
				
			||||||
            map.put("物料编码", point.getItemCode());
 | 
					 | 
				
			||||||
            map.put("库区名称", point.getArea().getName());
 | 
					 | 
				
			||||||
            map.put("是否启用", point.getEnabled());
 | 
					            map.put("是否启用", point.getEnabled());
 | 
				
			||||||
            map.put("仓库名称", point.getDept().getName());
 | 
					            map.put("仓库名称", point.getDept().getName());
 | 
				
			||||||
            map.put("坐标X", point.getPosX());
 | 
					 | 
				
			||||||
            map.put("坐标Y", point.getPosY());
 | 
					 | 
				
			||||||
            map.put("坐标Z", point.getPosZ());
 | 
					 | 
				
			||||||
            map.put("层", point.getRows());
 | 
					 | 
				
			||||||
            map.put("列", point.getCol());
 | 
					 | 
				
			||||||
            map.put("排", point.getLine());
 | 
					 | 
				
			||||||
            map.put("类型", point.getType());
 | 
					 | 
				
			||||||
            map.put("热度", point.getHeat());
 | 
					 | 
				
			||||||
            map.put("创建人", point.getCreateBy());
 | 
					 | 
				
			||||||
            map.put("修改人", point.getUpdateBy());
 | 
					 | 
				
			||||||
            map.put("创建时间", point.getCreateTime());
 | 
					 | 
				
			||||||
            map.put("修改时间", point.getUpdateTime());
 | 
					 | 
				
			||||||
            list.add(map);
 | 
					            list.add(map);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        FileUtil.downloadExcel(list, response);
 | 
					        FileUtil.downloadExcel(list, response);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -22,6 +22,7 @@ import com.alibaba.fastjson.JSONObject;
 | 
				
			||||||
import com.youchain.annotation.AnonymousAccess;
 | 
					import com.youchain.annotation.AnonymousAccess;
 | 
				
			||||||
import com.youchain.annotation.Log;
 | 
					import com.youchain.annotation.Log;
 | 
				
			||||||
import com.youchain.businessdata.domain.AgvTask;
 | 
					import com.youchain.businessdata.domain.AgvTask;
 | 
				
			||||||
 | 
					import com.youchain.businessdata.repository.AgvTaskRepository;
 | 
				
			||||||
import com.youchain.businessdata.service.AgvTaskService;
 | 
					import com.youchain.businessdata.service.AgvTaskService;
 | 
				
			||||||
import com.youchain.businessdata.service.dto.AgvTaskDto;
 | 
					import com.youchain.businessdata.service.dto.AgvTaskDto;
 | 
				
			||||||
import com.youchain.businessdata.service.dto.AgvTaskQueryCriteria;
 | 
					import com.youchain.businessdata.service.dto.AgvTaskQueryCriteria;
 | 
				
			||||||
| 
						 | 
					@ -54,6 +55,7 @@ import javax.servlet.http.HttpServletResponse;
 | 
				
			||||||
public class AgvTaskController {
 | 
					public class AgvTaskController {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    private final AgvTaskService agvTaskService;
 | 
					    private final AgvTaskService agvTaskService;
 | 
				
			||||||
 | 
					    private final AgvTaskRepository agvTaskRepository;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Log("导出数据")
 | 
					    @Log("导出数据")
 | 
				
			||||||
    @ApiOperation("导出数据")
 | 
					    @ApiOperation("导出数据")
 | 
				
			||||||
| 
						 | 
					@ -177,4 +179,20 @@ public class AgvTaskController {
 | 
				
			||||||
        agvTaskService.getConveyorState(conveyorId);
 | 
					        agvTaskService.getConveyorState(conveyorId);
 | 
				
			||||||
        return new ResponseEntity<>(HttpStatus.OK);
 | 
					        return new ResponseEntity<>(HttpStatus.OK);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    @PostMapping("/sendReAgvTask")
 | 
				
			||||||
 | 
					    @Log("KMReS搬运任务下发")
 | 
				
			||||||
 | 
					    @ApiOperation("KMReS搬运任务下发")
 | 
				
			||||||
 | 
					    @AnonymousAccess
 | 
				
			||||||
 | 
					    public ResponseEntity<Object> sendReAgvTask(@RequestBody String idsBody) {
 | 
				
			||||||
 | 
					        JSONArray ids=JSONArray.parseArray(idsBody);
 | 
				
			||||||
 | 
					        List<AgvTask> agvTasks=new ArrayList<>();
 | 
				
			||||||
 | 
					        for (int i = 0; i < ids.size(); i++) {
 | 
				
			||||||
 | 
					            Long id=ids.getLong(i);
 | 
				
			||||||
 | 
					            AgvTask agvTask=agvTaskRepository.getById(Math.toIntExact(id));
 | 
				
			||||||
 | 
					            agvTasks.add(agvTask);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        agvTaskService.sendAgvTaskLXImpl(agvTasks);
 | 
				
			||||||
 | 
					        ApiResult apiResult=ApiResult.fail(200,"发送成功",null);
 | 
				
			||||||
 | 
					        return new ResponseEntity<>(apiResult, apiResult.getStatus());
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -38,21 +38,21 @@ public class PlcController {
 | 
				
			||||||
    @Log("PLC扫描容器")
 | 
					    @Log("PLC扫描容器")
 | 
				
			||||||
    @ApiOperation("PLC扫描容器")
 | 
					    @ApiOperation("PLC扫描容器")
 | 
				
			||||||
    public ResponseEntity<Object> scanMo(@RequestBody String moJson) {
 | 
					    public ResponseEntity<Object> scanMo(@RequestBody String moJson) {
 | 
				
			||||||
        S7Connector connector = S7ConnectorUtils.connect();
 | 
					 | 
				
			||||||
        if (connector == null) {
 | 
					 | 
				
			||||||
            return new ResponseEntity<>(ApiResult.success(BAD_REQUEST.value(), "PLC连接失败", ""), HttpStatus.BAD_REQUEST);
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
        try {
 | 
					        try {
 | 
				
			||||||
            JSONObject json = JSONObject.parseObject(moJson);
 | 
					            JSONObject json = JSONObject.parseObject(moJson);
 | 
				
			||||||
            if (json == null) {
 | 
					            if (json == null) {
 | 
				
			||||||
                return new ResponseEntity<>(ApiResult.success(BAD_REQUEST.value(), "参数错误", ""), HttpStatus.BAD_REQUEST);
 | 
					                return new ResponseEntity<>(ApiResult.success(BAD_REQUEST.value(), "参数错误", ""), HttpStatus.BAD_REQUEST);
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
            String mo = json.getString("mo");
 | 
					            String mo = json.getString("mo");// MO票
 | 
				
			||||||
            moService.scanMo(mo);
 | 
					            String lx = json.getString("lx");// 容器
 | 
				
			||||||
            //S7ConnectorUtils.write(connector,2);
 | 
					            String it = mo.substring(19, 33);// 料号
 | 
				
			||||||
 | 
					            String labelNo=mo.substring(40, 52);// 标签
 | 
				
			||||||
 | 
					            moService.scanMo(it,lx,labelNo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            S7ConnectorUtils.write(S7ConnectorUtils.s7Connector,2);
 | 
				
			||||||
            return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK);
 | 
					            return new ResponseEntity<>(ApiResult.success(OK.value(), "", ""), HttpStatus.OK);
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            //S7ConnectorUtils.write(connector,1);
 | 
					            S7ConnectorUtils.write(S7ConnectorUtils.s7Connector,1);
 | 
				
			||||||
            return new ResponseEntity<>(ApiResult.success(BAD_REQUEST.value(), e.getMessage(), ""), HttpStatus.BAD_REQUEST);
 | 
					            return new ResponseEntity<>(ApiResult.success(BAD_REQUEST.value(), e.getMessage(), ""), HttpStatus.BAD_REQUEST);
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,7 +97,7 @@ public interface MoService {
 | 
				
			||||||
     * 扫描MO
 | 
					     * 扫描MO
 | 
				
			||||||
     * @param mo MO票
 | 
					     * @param mo MO票
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    void scanMo(String mo);
 | 
					    void scanMo(String itemCode,String stockCode,String labelNo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 根据labelNos查询MO
 | 
					     * 根据labelNos查询MO
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -274,13 +274,13 @@ public class AgvTaskServiceImpl implements AgvTaskService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        objMap.put("missionData", missionDataArray);
 | 
					        objMap.put("missionData", missionDataArray);
 | 
				
			||||||
        jsonObject.putAll(objMap);
 | 
					        jsonObject.putAll(objMap);
 | 
				
			||||||
        String resultJson = "{\n" +
 | 
					        /*String resultJson = "{\n" +
 | 
				
			||||||
                " \"data\": null,\n" +
 | 
					                " \"data\": null,\n" +
 | 
				
			||||||
                " \"code\": \"0\",\n" +
 | 
					                " \"code\": \"0\",\n" +
 | 
				
			||||||
                " \"message\": null,\n" +
 | 
					                " \"message\": null,\n" +
 | 
				
			||||||
                " \"success\": true\n" +
 | 
					                " \"success\": true\n" +
 | 
				
			||||||
                "}";
 | 
					                "}";*/
 | 
				
			||||||
        //String resultJson = HttpPostUtil.sendPostReq(UrlApi.submitMission, jsonObject.toString());
 | 
					        String resultJson = HttpPostUtil.sendPostReq(UrlApi.submitMission, jsonObject.toString());
 | 
				
			||||||
        if (resultJson == null) {
 | 
					        if (resultJson == null) {
 | 
				
			||||||
            return null;
 | 
					            return null;
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -153,16 +153,16 @@ public class MoServiceImpl implements MoService {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    @Override
 | 
					    @Override
 | 
				
			||||||
    @Transactional(rollbackFor = Exception.class)
 | 
					    @Transactional(rollbackFor = Exception.class)
 | 
				
			||||||
    public void scanMo(String mo) {
 | 
					    public void scanMo(String itemCode,String stockCode,String labelNo) {
 | 
				
			||||||
        //条码格式;12227000016951-qth1847-240411422924
 | 
					        //条码格式;12227000016951-qth1847-240411422924
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 验证条码格式
 | 
					        // 验证条码格式
 | 
				
			||||||
        validateBarcodeFormat(mo);
 | 
					//        validateBarcodeFormat(mo);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        String[] arr = mo.split("-");
 | 
					//        String[] arr = mo.split("-");
 | 
				
			||||||
        String itemCode = arr[0];//物料编号
 | 
					//        String itemCode = arr[0];//物料编号
 | 
				
			||||||
        String stockCode = arr[1];//容器编号
 | 
					//        String stockCode = arr[1];//容器编号
 | 
				
			||||||
        String labelNo = arr[2];//标签号
 | 
					//        String labelNo = arr[2];//标签号
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        // 验证物料是否存在
 | 
					        // 验证物料是否存在
 | 
				
			||||||
        Item item = redisObjectUtils.getObjectFromCache(itemCode, () -> itemService.existItem(itemCode), itemCode + " 系统无此物料!");
 | 
					        Item item = redisObjectUtils.getObjectFromCache(itemCode, () -> itemService.existItem(itemCode), itemCode + " 系统无此物料!");
 | 
				
			||||||
| 
						 | 
					@ -267,6 +267,10 @@ public class MoServiceImpl implements MoService {
 | 
				
			||||||
        //生成收货记录
 | 
					        //生成收货记录
 | 
				
			||||||
        Task task = new Task(item, itemKey, orderDto.getBarcodeNumber(), BizStatus.ASN, asnDetail, null, null, null, stock, stock, srcPoint, endPoint, stock.getCode(), stock.getCode(), srcPoint.getCode(), endPoint.getCode(), null, BizStatus.OPEN, asnDetail.getOrderQty(), null, null, item.getDept(), agvTask);
 | 
					        Task task = new Task(item, itemKey, orderDto.getBarcodeNumber(), BizStatus.ASN, asnDetail, null, null, null, stock, stock, srcPoint, endPoint, stock.getCode(), stock.getCode(), srcPoint.getCode(), endPoint.getCode(), null, BizStatus.OPEN, asnDetail.getOrderQty(), null, null, item.getDept(), agvTask);
 | 
				
			||||||
        taskService.create(task);
 | 
					        taskService.create(task);
 | 
				
			||||||
 | 
					        // 发送AGV任务
 | 
				
			||||||
 | 
					        List<AgvTask> agvTasks=new ArrayList<>();
 | 
				
			||||||
 | 
					        agvTasks.add(agvTask);
 | 
				
			||||||
 | 
					        agvTaskService.sendAgvTaskLXImpl(agvTasks);
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    // 提取更新容器状态和目标点位状态的逻辑到单独方法
 | 
					    // 提取更新容器状态和目标点位状态的逻辑到单独方法
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -18,24 +18,25 @@ import java.util.Arrays;
 | 
				
			||||||
import java.util.Date;
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Slf4j
 | 
				
			||||||
public class LicenseValidate {
 | 
					public class LicenseValidate {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void validate()  throws Exception{
 | 
					    public static void validate()  throws Exception{
 | 
				
			||||||
        //读取本地文件
 | 
					        //读取本地文件
 | 
				
			||||||
        FileProperties properties= SpringContextHolder.getBean(FileProperties.class);
 | 
					        FileProperties properties= SpringContextHolder.getBean(FileProperties.class);
 | 
				
			||||||
 | 
					        log.info(properties.getPath().getPath());
 | 
				
			||||||
        String result="";
 | 
					        String result="";
 | 
				
			||||||
        try{
 | 
					        try{
 | 
				
			||||||
            FileReader fileReader = new FileReader(properties.getPath().getPath()+"key/"+"license.key");
 | 
					            FileReader fileReader = new FileReader(properties.getPath().getPath()+"key/"+"license.key");
 | 
				
			||||||
            result = fileReader.readString();
 | 
					            result = fileReader.readString();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        }catch (Exception e){
 | 
					        }catch (Exception e){
 | 
				
			||||||
            throw new BadRequestException("License不存在,请上传License");
 | 
					//            throw new BadRequestException("License不存在,请上传License");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        log.error(result);
 | 
				
			||||||
        String rsaResult= RsaUtils.decryptByPublicKey(RsaProperties.licenseKey,result);
 | 
					        String rsaResult= RsaUtils.decryptByPublicKey(RsaProperties.licenseKey,result);
 | 
				
			||||||
 | 
					        log.error("------------------------解密完成-----------------------");
 | 
				
			||||||
        LicenseCheck key_price = JSONUtil.toBean(rsaResult, LicenseCheck.class);
 | 
					        LicenseCheck key_price = JSONUtil.toBean(rsaResult, LicenseCheck.class);
 | 
				
			||||||
        LicenseCheck system_price = getDeviceInfo();
 | 
					        LicenseCheck system_price = getDeviceInfo();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -43,15 +44,15 @@ public class LicenseValidate {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if(key_price.getMainBoardSerial().equals(system_price.getMainBoardSerial())){
 | 
					        if(key_price.getMainBoardSerial().equals(system_price.getMainBoardSerial())){
 | 
				
			||||||
 | 
					            log.error("主板匹配成功");
 | 
				
			||||||
        }else{
 | 
					        }else{
 | 
				
			||||||
 | 
					            log.error("主板匹配失败");
 | 
				
			||||||
            throw new BadRequestException("主板匹配失败");
 | 
					            throw new BadRequestException("主板匹配失败");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if(key_price.getCpuSerial().equals(system_price.getCpuSerial())){
 | 
					        if(key_price.getCpuSerial().equals(system_price.getCpuSerial())){
 | 
				
			||||||
 | 
					            log.error("CPU匹配成功");
 | 
				
			||||||
        }else{
 | 
					        }else{
 | 
				
			||||||
 | 
					            log.error("CPU匹配失败");
 | 
				
			||||||
            throw new BadRequestException("CPU匹配失败");
 | 
					            throw new BadRequestException("CPU匹配失败");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -62,7 +63,7 @@ public class LicenseValidate {
 | 
				
			||||||
            if(end_date.before(now_date)){
 | 
					            if(end_date.before(now_date)){
 | 
				
			||||||
                throw new BadRequestException("过期的License,请重新生成");
 | 
					                throw new BadRequestException("过期的License,请重新生成");
 | 
				
			||||||
            }else{
 | 
					            }else{
 | 
				
			||||||
 | 
					                log.error("有效期验证通过");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }catch (Exception e){
 | 
					        }catch (Exception e){
 | 
				
			||||||
            throw new BadRequestException("无效的License,请重新生成");
 | 
					            throw new BadRequestException("无效的License,请重新生成");
 | 
				
			||||||
| 
						 | 
					@ -71,18 +72,67 @@ public class LicenseValidate {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					    public static String  getLicense(String time)  throws Exception{
 | 
				
			||||||
 | 
					        LicenseCheck licenseCheck=getDeviceInfo();
 | 
				
			||||||
 | 
					        licenseCheck.setEndTime(time);
 | 
				
			||||||
 | 
					        String rest= JSONUtil.toJsonStr(licenseCheck).trim();
 | 
				
			||||||
 | 
					        String priKey = "MIIEvgIBADANBgkqhkiG9w0BAQEFAASCBKgwggSkAgEAAoIBAQDFlDBnrKTnnAbXTCfUh3fhq81dXZUd/i0czbNGiWR9s4ocNEKK/fbMx8Qsghb3UK3MH7Vf+7X7cIOXaEO5g+mGou6RPKn/WsqgtGhVida7ZOLYv7q2LBkxzkB/KUCmidED+1Jre22T7kN5to84iT2JRMyYOkxHdIHAcYVpxTqpYJHWYrGI6Tvw4v2cL+vbhfN++ZaO9xtezsh/0Xk0PZVL17lZ46/rIwW5dKH9XmpkCTINsRXvpO2jbWcu40UtQPeI1xRh7KuezwP1QAh0O2nixS8gAMGdaVW1c237rxrwGeVim2+lb2bQwIlmWYjPEBBjhGukedcXb3JAH0C4/CPPAgMBAAECggEBAKKGsgK2W7hB+saj2KfU/+JdRsOktYNEkKt+8hf18PoN9HAa9RoMqzXspgzOvkGW1kBxXOulzR8WgMjNddhnEHQ2FvTV6Ckr8D6d6K1kg4UHCiuuG9K7F8aGmTuBHbNg7tTNqhDMKWlkt5CpgcrJ6hq+w2X9nr2wswMw3sQQ/55PZLzgwzv6WQtkJ58w78r9fZJsOgjldwE35nliDo8Xwoa1YCVcEjfH+sgPfFJzilFtJ9wjmx/HZb2EBcUUSaW5ewsqvN9dk1EgAJjmwWVW84NUkrbXD0nhUTx4MHfx4MA1fqPjkwkHCrEBA5idsQkwtoIETg1hN+QUR9iBLhelJIECgYEA83CRN6Zu0RpsP4JPuov06qRM3dV+ErjjApfENJzLk7DW4GlkgNRG9pWv6xJxlEbxf7k+M5jMEGrfE6o8xuBYoEm2BHy8WZF0zPeVnyOrk28xoDUKlsbT2lFYvVbHWBDj4dbu/WoqH2r3bWedVSr+QgpGLuHn//3a3bwplqvzAW8CgYEAz8XgXgtnckQRDNFhUDmS/QVdthaiYERerEk+qem1o2/7IEBSF7xxu+yRm5DTJumD4kQiilcQJngmrQ23HDZO4S61lyCBv0lx8y0A2sAHt9v63Dz7P270tMs1tJW8iSC7VUNtMwFMdc+MjTlHq99mg5USgusM+fB8FkEmkpRDE6ECgYBTqpB+S9kyTJ5/hU3Zk1htfGJeq41U6e47aeWpH2poLBLttcsw68Qn43I+nGwkxe0iNIxIN2+LBO/+VjflMh3DmRHRoP0q228FMuJde2jwlvq7UP9+qn8NPX/+MuD4R3XKnJAu0FoBykWXeFD+gHQ6RkWwvzt5I8ohAxZYDmjKSQKBgB5gwhM9+5v7U7raCi5enJ0d4buzx33nwSfTdbQGFaaVwtPOU7JgvQhK6GckX5r63WuBpsMvQ488VftLXBBl6FaIK8iy2gWLyXtSgyN4nChHo3/78ogtwt2EMI/8rJooDPvEZfzlHbbD57rmOxJoEWb/rrsxfq40eRAP6oHX547BAoGBAMK7GGdYkzxkD2xuMZSfPro/sO0EbghJdJ/l8nioTEPTPyRx5AZBe/7OhiKYohpUdi5F8+S18ACn88rJkZn7iQGuJvjXCFYnt9bec+w8lqiUcjfw3l4+aAkNTfquIdKz6gJyUBVjbuQYYkzGf052HbMacDwwfbHIlDvpfAS7FUpq";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*String result=RsaUtils.encryptByPrivateKey(priKey,rest);
 | 
				
			||||||
 | 
					        //读取本地文件
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        log.error("------------------------加密完成-----------------------");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        log.error(result);
 | 
				
			||||||
 | 
					        String rsaResult= RsaUtils.decryptByPublicKey(RsaProperties.licenseKey,result);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        log.error(rsaResult);
 | 
				
			||||||
 | 
					        log.error("------------------------解密完成-----------------------");
 | 
				
			||||||
 | 
					        LicenseCheck key_price = JSONUtil.toBean(rsaResult, LicenseCheck.class);
 | 
				
			||||||
 | 
					        LicenseCheck system_price = getDeviceInfo();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        if(key_price.getMainBoardSerial().equals(system_price.getMainBoardSerial())){
 | 
				
			||||||
 | 
					            log.error("主板匹配成功");
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					            log.error("主板匹配失败");
 | 
				
			||||||
 | 
					            throw new BadRequestException("主板匹配失败");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        if(key_price.getCpuSerial().equals(system_price.getCpuSerial())){
 | 
				
			||||||
 | 
					            log.error("CPU匹配成功");
 | 
				
			||||||
 | 
					        }else{
 | 
				
			||||||
 | 
					            log.error("CPU匹配失败");
 | 
				
			||||||
 | 
					            throw new BadRequestException("CPU匹配失败");
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        try{
 | 
				
			||||||
 | 
					            Date end_date = DateUtil.parse(key_price.getEndTime());
 | 
				
			||||||
 | 
					            Date now_date = DateUtil.date();
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            if(end_date.before(now_date)){
 | 
				
			||||||
 | 
					                throw new BadRequestException("过期的License,请重新生成");
 | 
				
			||||||
 | 
					            }else{
 | 
				
			||||||
 | 
					                log.error("有效期验证通过");
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }catch (Exception e){
 | 
				
			||||||
 | 
					            throw new BadRequestException("无效的License,请重新生成");
 | 
				
			||||||
 | 
					        }*/
 | 
				
			||||||
 | 
					        return null;
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public static void saveCode(String license_code)  throws Exception{
 | 
					    public static void saveCode(String license_code)  throws Exception{
 | 
				
			||||||
        //读取本地文件
 | 
					        //读取本地文件
 | 
				
			||||||
 | 
					        log.error(license_code);
 | 
				
			||||||
        String rsaResult="";
 | 
					        String rsaResult="";
 | 
				
			||||||
        try{
 | 
					        try{
 | 
				
			||||||
             rsaResult= RsaUtils.decryptByPublicKey(RsaProperties.licenseKey,license_code);
 | 
					             rsaResult= RsaUtils.decryptByPublicKey(RsaProperties.licenseKey,license_code);
 | 
				
			||||||
        }catch (Exception e){
 | 
					        }catch (Exception e){
 | 
				
			||||||
            throw new BadRequestException("License无效,请重新生成");
 | 
					            throw new BadRequestException("License无效,请重新生成");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					        log.error("解密完成");
 | 
				
			||||||
 | 
					        log.error(rsaResult);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        LicenseCheck key_price = JSONUtil.toBean(rsaResult, LicenseCheck.class);
 | 
					        LicenseCheck key_price = JSONUtil.toBean(rsaResult, LicenseCheck.class);
 | 
				
			||||||
        LicenseCheck system_price = getDeviceInfo();
 | 
					        LicenseCheck system_price = getDeviceInfo();
 | 
				
			||||||
| 
						 | 
					@ -91,15 +141,15 @@ public class LicenseValidate {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        if(key_price.getMainBoardSerial().equals(system_price.getMainBoardSerial())){
 | 
					        if(key_price.getMainBoardSerial().equals(system_price.getMainBoardSerial())){
 | 
				
			||||||
 | 
					            log.error("主板匹配成功");
 | 
				
			||||||
        }else{
 | 
					        }else{
 | 
				
			||||||
 | 
					            log.error("主板匹配失败");
 | 
				
			||||||
            throw new BadRequestException("主板匹配失败");
 | 
					            throw new BadRequestException("主板匹配失败");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
        if(key_price.getCpuSerial().equals(system_price.getCpuSerial())){
 | 
					        if(key_price.getCpuSerial().equals(system_price.getCpuSerial())){
 | 
				
			||||||
 | 
					            log.error("CPU匹配成功");
 | 
				
			||||||
        }else{
 | 
					        }else{
 | 
				
			||||||
 | 
					            log.error("CPU匹配失败");
 | 
				
			||||||
            throw new BadRequestException("CPU匹配失败");
 | 
					            throw new BadRequestException("CPU匹配失败");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -110,14 +160,14 @@ public class LicenseValidate {
 | 
				
			||||||
            if(end_date.before(now_date)){
 | 
					            if(end_date.before(now_date)){
 | 
				
			||||||
                throw new BadRequestException("过期的License,请重新生成");
 | 
					                throw new BadRequestException("过期的License,请重新生成");
 | 
				
			||||||
            }else{
 | 
					            }else{
 | 
				
			||||||
 | 
					                log.error("有效期验证通过");
 | 
				
			||||||
            }
 | 
					            }
 | 
				
			||||||
        }catch (Exception e){
 | 
					        }catch (Exception e){
 | 
				
			||||||
            throw new BadRequestException("无效的License,请重新生成");
 | 
					            throw new BadRequestException("无效的License,请重新生成");
 | 
				
			||||||
        }
 | 
					        }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        FileProperties properties= SpringContextHolder.getBean(FileProperties.class);
 | 
					        FileProperties properties= SpringContextHolder.getBean(FileProperties.class);
 | 
				
			||||||
 | 
					        log.info(properties.getPath().getPath());
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        FileWriter writer = new FileWriter(properties.getPath().getPath()+"key/"+"license.key");
 | 
					        FileWriter writer = new FileWriter(properties.getPath().getPath()+"key/"+"license.key");
 | 
				
			||||||
        writer.write(license_code);
 | 
					        writer.write(license_code);
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.youchain.modules.quartz.task;
 | 
					package com.youchain.modules.quartz.task;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.date.DateUtil;
 | 
				
			||||||
import com.youchain.businessdata.inputJson.MoInfo;
 | 
					import com.youchain.businessdata.inputJson.MoInfo;
 | 
				
			||||||
import com.youchain.businessdata.inputJson.MoParams;
 | 
					import com.youchain.businessdata.inputJson.MoParams;
 | 
				
			||||||
import com.youchain.businessdata.service.MlsService;
 | 
					import com.youchain.businessdata.service.MlsService;
 | 
				
			||||||
| 
						 | 
					@ -8,6 +9,8 @@ import com.youchain.utils.UrlApi;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
import org.springframework.beans.factory.annotation.Autowired;
 | 
					import org.springframework.beans.factory.annotation.Autowired;
 | 
				
			||||||
import org.springframework.stereotype.Service;
 | 
					import org.springframework.stereotype.Service;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
import java.util.HashSet;
 | 
					import java.util.HashSet;
 | 
				
			||||||
import java.util.Set;
 | 
					import java.util.Set;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -42,12 +45,17 @@ public class moTask {
 | 
				
			||||||
        Set invCodes = new HashSet<>();
 | 
					        Set invCodes = new HashSet<>();
 | 
				
			||||||
        invCodes.add("MA2111");
 | 
					        invCodes.add("MA2111");
 | 
				
			||||||
        params.setInvCodes(invCodes);
 | 
					        params.setInvCodes(invCodes);
 | 
				
			||||||
        //DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd HH:mm:ss")
 | 
					 | 
				
			||||||
        params.setIqcResult("");
 | 
					        params.setIqcResult("");
 | 
				
			||||||
        params.setStartTime("2024-04-27 00:00:00");
 | 
					
 | 
				
			||||||
        params.setEndTime("2024-04-27 23:59:59");
 | 
					        /*String startTime = DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd HH:mm:ss");
 | 
				
			||||||
 | 
					        params.setStartTime(startTime);
 | 
				
			||||||
 | 
					        String endData = DateUtil.format(new Date(), "yyyy-MM-dd");
 | 
				
			||||||
 | 
					        params.setEndTime(endData+" 23:59:59");*/
 | 
				
			||||||
 | 
					        params.setStartTime("2024-05-22 00:00:00");
 | 
				
			||||||
 | 
					        params.setEndTime("2024-05-22 23:59:59");
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        params.setPageNo(1);
 | 
					        params.setPageNo(1);
 | 
				
			||||||
        params.setPageSize(100);
 | 
					        params.setPageSize(10000);
 | 
				
			||||||
        MoInfo moInfo = new MoInfo();
 | 
					        MoInfo moInfo = new MoInfo();
 | 
				
			||||||
        moInfo.setIfaceCode("MLS-WQ-003");
 | 
					        moInfo.setIfaceCode("MLS-WQ-003");
 | 
				
			||||||
        moInfo.setSourceSystem("WQ");
 | 
					        moInfo.setSourceSystem("WQ");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -59,11 +59,14 @@ public class orderTask {
 | 
				
			||||||
        invCodes.add("MA2111");
 | 
					        invCodes.add("MA2111");
 | 
				
			||||||
        params.setInvCodes(invCodes);
 | 
					        params.setInvCodes(invCodes);
 | 
				
			||||||
        params.setIqcResult("");
 | 
					        params.setIqcResult("");
 | 
				
			||||||
        //DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd HH:mm:ss")
 | 
					        /*String startTime = DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd HH:mm:ss");
 | 
				
			||||||
        params.setStartTime("2024-04-27 00:00:00");
 | 
					        params.setStartTime(startTime);
 | 
				
			||||||
        params.setEndTime("2024-04-27 23:59:59");
 | 
					        String endData = DateUtil.format(new Date(), "yyyy-MM-dd");
 | 
				
			||||||
 | 
					        params.setEndTime(endData+" 23:59:59");*/
 | 
				
			||||||
 | 
					        params.setStartTime("2024-05-22 00:00:00");
 | 
				
			||||||
 | 
					        params.setEndTime("2024-05-22 23:59:59");
 | 
				
			||||||
        params.setPageNo(1);
 | 
					        params.setPageNo(1);
 | 
				
			||||||
        params.setPageSize(100);
 | 
					        params.setPageSize(10000);
 | 
				
			||||||
        OrderInfo orderInfo = new OrderInfo();
 | 
					        OrderInfo orderInfo = new OrderInfo();
 | 
				
			||||||
        orderInfo.setIfaceCode("MLS-WQ-002");
 | 
					        orderInfo.setIfaceCode("MLS-WQ-002");
 | 
				
			||||||
        orderInfo.setSourceSystem("WQ");
 | 
					        orderInfo.setSourceSystem("WQ");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,6 @@
 | 
				
			||||||
package com.youchain.modules.quartz.task;
 | 
					package com.youchain.modules.quartz.task;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import com.alibaba.fastjson.JSONObject;
 | 
				
			||||||
import com.github.s7connector.api.S7Connector;
 | 
					import com.github.s7connector.api.S7Connector;
 | 
				
			||||||
import com.youchain.businessdata.rest.MoController;
 | 
					import com.youchain.businessdata.rest.MoController;
 | 
				
			||||||
import com.youchain.businessdata.rest.PlcController;
 | 
					import com.youchain.businessdata.rest.PlcController;
 | 
				
			||||||
| 
						 | 
					@ -22,12 +23,38 @@ public class plcTask {
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    public void plcTask() {
 | 
					    public void plcTask() {
 | 
				
			||||||
 | 
					        S7ConnectorUtils.connect();
 | 
				
			||||||
 | 
					        JSONObject jsonObject=new JSONObject();
 | 
				
			||||||
 | 
					        String mo="LB]A0006907]240522]12125300001741]50.00]240522554318]]";
 | 
				
			||||||
 | 
					        String lx="01010007";
 | 
				
			||||||
 | 
					//        String mo = S7ConnectorUtils.readMo(S7ConnectorUtils.s7Connector,12);
 | 
				
			||||||
 | 
					//        String lx = S7ConnectorUtils.readMo(S7ConnectorUtils.s7Connector,0);
 | 
				
			||||||
 | 
					        if (mo.length()>0&&lx.length()>0){
 | 
				
			||||||
 | 
					            jsonObject.put("mo",mo);
 | 
				
			||||||
 | 
					            jsonObject.put("lx",lx);
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
            S7Connector connector = S7ConnectorUtils.connect();
 | 
					                plcController.scanMo(jsonObject+"");
 | 
				
			||||||
            String mo = S7ConnectorUtils.readMo(connector);
 | 
					                System.out.println("222");
 | 
				
			||||||
            plcController.scanMo(mo);
 | 
					            }catch (Exception e){
 | 
				
			||||||
 | 
					                throw new RuntimeException("校验失败:" + mo+"|"+lx+"错误信息:"+e.getMessage());
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }else {
 | 
				
			||||||
 | 
					            throw new RuntimeException("数据格式错误:"+mo+"|"+lx);
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					        /*try {
 | 
				
			||||||
 | 
					            S7ConnectorUtils.connect();
 | 
				
			||||||
 | 
					            JSONObject jsonObject=new JSONObject();
 | 
				
			||||||
 | 
					            String mo = S7ConnectorUtils.readMo(S7ConnectorUtils.s7Connector,12);
 | 
				
			||||||
 | 
					            String lx = S7ConnectorUtils.readMo(S7ConnectorUtils.s7Connector,0);
 | 
				
			||||||
 | 
					            if (mo.length()>0&&lx.length()>0){
 | 
				
			||||||
 | 
					                jsonObject.put("mo",mo);
 | 
				
			||||||
 | 
					                jsonObject.put("lx",lx);
 | 
				
			||||||
 | 
					                plcController.scanMo(jsonObject+"");
 | 
				
			||||||
 | 
					            }else {
 | 
				
			||||||
 | 
					                throw new RuntimeException("数据格式错误:"+mo+"|"+lx);
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            throw new RuntimeException("异常信息" + e.getMessage());
 | 
					            throw new RuntimeException("异常信息" + e.getMessage());
 | 
				
			||||||
        }
 | 
					        }*/
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -45,7 +45,6 @@ public class QuartzRunnable implements Callable<Object> {
 | 
				
			||||||
	}
 | 
						}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	@Override
 | 
						@Override
 | 
				
			||||||
	@SuppressWarnings("all")
 | 
					 | 
				
			||||||
	public Object call() throws Exception {
 | 
						public Object call() throws Exception {
 | 
				
			||||||
		ReflectionUtils.makeAccessible(method);
 | 
							ReflectionUtils.makeAccessible(method);
 | 
				
			||||||
		if (StringUtils.isNotBlank(params)) {
 | 
							if (StringUtils.isNotBlank(params)) {
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -12,7 +12,7 @@ import javax.annotation.PostConstruct;
 | 
				
			||||||
@Component
 | 
					@Component
 | 
				
			||||||
public class BaseCode {
 | 
					public class BaseCode {
 | 
				
			||||||
    /** PLC IP*/
 | 
					    /** PLC IP*/
 | 
				
			||||||
    public static String PLC_IP = "";
 | 
					    public static String PLC_IP = "10.173.188.201";
 | 
				
			||||||
    /** PLC 端口号*/
 | 
					    /** PLC 端口号*/
 | 
				
			||||||
    public static int PLC_PORT = 0;
 | 
					    public static int PLC_PORT = 0;
 | 
				
			||||||
    public static String MLS_IP = "";
 | 
					    public static String MLS_IP = "";
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -0,0 +1,17 @@
 | 
				
			||||||
 | 
					package com.youchain.utils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					import org.springframework.stereotype.Component;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					@Component
 | 
				
			||||||
 | 
					@Slf4j
 | 
				
			||||||
 | 
					public class ImportEntityUtils {
 | 
				
			||||||
 | 
					    public static Boolean stringFlag(String s){
 | 
				
			||||||
 | 
					        if (s!=null&&!s.equals("null")&&s.length()>0){
 | 
				
			||||||
 | 
					            return true;
 | 
				
			||||||
 | 
					        }else {
 | 
				
			||||||
 | 
					            return false;
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					}
 | 
				
			||||||
| 
						 | 
					@ -1,14 +1,18 @@
 | 
				
			||||||
package com.youchain.utils;
 | 
					package com.youchain.utils;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					import cn.hutool.core.date.DateUtil;
 | 
				
			||||||
import com.github.s7connector.api.DaveArea;
 | 
					import com.github.s7connector.api.DaveArea;
 | 
				
			||||||
import com.github.s7connector.api.S7Connector;
 | 
					import com.github.s7connector.api.S7Connector;
 | 
				
			||||||
 | 
					import com.github.s7connector.api.S7Serializer;
 | 
				
			||||||
import com.github.s7connector.api.factory.S7ConnectorFactory;
 | 
					import com.github.s7connector.api.factory.S7ConnectorFactory;
 | 
				
			||||||
 | 
					import com.github.s7connector.api.factory.S7SerializerFactory;
 | 
				
			||||||
import com.github.s7connector.impl.serializer.converter.StringConverter;
 | 
					import com.github.s7connector.impl.serializer.converter.StringConverter;
 | 
				
			||||||
import com.sun.mail.iap.ConnectionException;
 | 
					import com.sun.mail.iap.ConnectionException;
 | 
				
			||||||
import lombok.extern.slf4j.Slf4j;
 | 
					import lombok.extern.slf4j.Slf4j;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
import java.io.IOException;
 | 
					import java.io.IOException;
 | 
				
			||||||
import java.nio.ByteBuffer;
 | 
					import java.nio.ByteBuffer;
 | 
				
			||||||
 | 
					import java.util.Date;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/**
 | 
					/**
 | 
				
			||||||
| 
						 | 
					@ -19,32 +23,58 @@ import java.nio.ByteBuffer;
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
@Slf4j
 | 
					@Slf4j
 | 
				
			||||||
public class S7ConnectorUtils {
 | 
					public class S7ConnectorUtils {
 | 
				
			||||||
 | 
					    public static S7Connector s7Connector=null;
 | 
				
			||||||
    public static S7Connector connect() {
 | 
					    public static S7Connector connect() {
 | 
				
			||||||
        S7Connector s7Connector = null;
 | 
					        if (s7Connector != null){
 | 
				
			||||||
            try {
 | 
					            try {
 | 
				
			||||||
 | 
					                s7Connector.close();
 | 
				
			||||||
 | 
					                //关闭连接
 | 
				
			||||||
 | 
					                log.info("关闭s7连接");
 | 
				
			||||||
 | 
					            }catch (Exception e){
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					            }finally {
 | 
				
			||||||
 | 
					                s7Connector=null;
 | 
				
			||||||
 | 
					            }
 | 
				
			||||||
 | 
					        }
 | 
				
			||||||
        s7Connector = S7ConnectorFactory
 | 
					        s7Connector = S7ConnectorFactory
 | 
				
			||||||
                .buildTCPConnector()
 | 
					                .buildTCPConnector()
 | 
				
			||||||
                .withHost(BaseCode.PLC_IP)//设置PLC的IP地址
 | 
					                .withHost(BaseCode.PLC_IP)//设置PLC的IP地址
 | 
				
			||||||
                    .withPort(BaseCode.PLC_PORT)//设置PLC的端口号
 | 
					//                    .withPort(BaseCode.PLC_PORT)//设置PLC的端口号
 | 
				
			||||||
                    .withTimeout(10000)//设置连接超时时间
 | 
					                .withTimeout(10000) //连接超时时间
 | 
				
			||||||
                .withRack(0)//设置PLC的机架号
 | 
					                .withRack(0)//设置PLC的机架号
 | 
				
			||||||
                    .withSlot(2)//设置PLC的插槽号
 | 
					                .withSlot(1)//设置PLC的插槽号
 | 
				
			||||||
                .build();
 | 
					                .build();
 | 
				
			||||||
 | 
					        S7Serializer s7Serializer2L = S7SerializerFactory.buildSerializer(s7Connector);
 | 
				
			||||||
 | 
					        log.info("初始化s7连接");
 | 
				
			||||||
        return s7Connector;
 | 
					        return s7Connector;
 | 
				
			||||||
        } catch (Exception e) {
 | 
					 | 
				
			||||||
            return null;
 | 
					 | 
				
			||||||
        }
 | 
					 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					    public static void main(String[] args) {
 | 
				
			||||||
 | 
					        /*String a="LB]A0006907]240522]12125300001741]50.00]240522554318]]";
 | 
				
			||||||
 | 
					        String I=a.substring(19, 33);
 | 
				
			||||||
 | 
					        System.out.println("I:"+I);
 | 
				
			||||||
 | 
					        String M=a.substring(40, 52);
 | 
				
			||||||
 | 
					        System.out.println("M:"+M);*/
 | 
				
			||||||
 | 
					        S7ConnectorUtils.connect();
 | 
				
			||||||
 | 
					        String lh = S7ConnectorUtils.readMo(s7Connector,0);
 | 
				
			||||||
 | 
					        System.out.println("LH:"+lh);
 | 
				
			||||||
 | 
					        String mo = S7ConnectorUtils.readMo(s7Connector,12);
 | 
				
			||||||
 | 
					        System.out.println("MO:"+mo);
 | 
				
			||||||
 | 
					//        S7ConnectorUtils.write(s7Connector,1);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
 | 
					        /*if (lh.length()>0&&mo.length()>0){
 | 
				
			||||||
 | 
					            S7ConnectorUtils.write(s7Connector,1);
 | 
				
			||||||
 | 
					        }*/
 | 
				
			||||||
 | 
					       /* String a = cn.hutool.core.date.DateUtil.format(DateUtil.beginOfDay(new Date()), "yyyy-MM-dd HH:mm:ss");
 | 
				
			||||||
 | 
					        System.out.println("日期:"+a);*/
 | 
				
			||||||
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 读取PLC数据
 | 
					     * 读取PLC数据
 | 
				
			||||||
     * 读取条码信息
 | 
					     * 读取条码信息
 | 
				
			||||||
     *
 | 
					     * @param offset 偏移量 0-箱号,12-MO票
 | 
				
			||||||
     * @param connector 连接器
 | 
					     * @param connector 连接器
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static String readMo(S7Connector connector) {
 | 
					    public static String readMo(S7Connector connector,int offset) {
 | 
				
			||||||
        String mo = null;
 | 
					        String mo = null;
 | 
				
			||||||
        if (connector == null) {
 | 
					        if (connector == null) {
 | 
				
			||||||
            throw new RuntimeException("PLC连接失败,请检查!");
 | 
					            throw new RuntimeException("PLC连接失败,请检查!");
 | 
				
			||||||
| 
						 | 
					@ -57,7 +87,7 @@ public class S7ConnectorUtils {
 | 
				
			||||||
         * 字节:500
 | 
					         * 字节:500
 | 
				
			||||||
         * 偏移:0
 | 
					         * 偏移:0
 | 
				
			||||||
         */
 | 
					         */
 | 
				
			||||||
        byte[] PlcData = connector.read(DaveArea.DB, 100, 500, 0);
 | 
					        byte[] PlcData = connector.read(DaveArea.DB, 100, 60, offset);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        long endTime = System.currentTimeMillis();
 | 
					        long endTime = System.currentTimeMillis();
 | 
				
			||||||
        log.info("读取耗时:" + (endTime - startTime) + "ms");
 | 
					        log.info("读取耗时:" + (endTime - startTime) + "ms");
 | 
				
			||||||
| 
						 | 
					@ -67,13 +97,13 @@ public class S7ConnectorUtils {
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        mo = converter.extract(str1.getClass(), PlcData, 0, 0);
 | 
					        mo = converter.extract(str1.getClass(), PlcData, 0, 0);
 | 
				
			||||||
        log.info("内置方法转换str=" + mo);
 | 
					        log.info("内置方法转换str=" + mo);
 | 
				
			||||||
        try {
 | 
					        /*try {
 | 
				
			||||||
            connector.close();
 | 
					            connector.close();
 | 
				
			||||||
        } catch (Exception e) {
 | 
					        } catch (Exception e) {
 | 
				
			||||||
            e.printStackTrace();
 | 
					            e.printStackTrace();
 | 
				
			||||||
        }
 | 
					        }*/
 | 
				
			||||||
 | 
					
 | 
				
			||||||
        return mo;
 | 
					        return mo.replace(" ", "");
 | 
				
			||||||
    }
 | 
					    }
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
| 
						 | 
					@ -125,7 +155,7 @@ public class S7ConnectorUtils {
 | 
				
			||||||
        ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES);
 | 
					        ByteBuffer buffer = ByteBuffer.allocate(Integer.BYTES);
 | 
				
			||||||
        buffer.putInt(instruct);
 | 
					        buffer.putInt(instruct);
 | 
				
			||||||
        byte[] bytes = buffer.array();
 | 
					        byte[] bytes = buffer.array();
 | 
				
			||||||
        connector.write(DaveArea.DB, 100, 22, bytes);
 | 
					        connector.write(DaveArea.DB, 100, 70, bytes);
 | 
				
			||||||
        long endTime = System.currentTimeMillis();
 | 
					        long endTime = System.currentTimeMillis();
 | 
				
			||||||
        System.out.println((endTime - startTime) + "ms");
 | 
					        System.out.println((endTime - startTime) + "ms");
 | 
				
			||||||
        System.out.print("写入成功");
 | 
					        System.out.print("写入成功");
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -4,22 +4,22 @@ public class UrlApi {
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 料箱任务下发
 | 
					     * 料箱任务下发
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static String submitMission = "http://10.177.202.230:10870/interfaces/api/amr/submitMission";
 | 
					    public static String submitMission = "http://10.175.163.70:10870/interfaces/api/amr/submitMission";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 容器入场
 | 
					     * 容器入场
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static String containerIn = "http://10.177.202.230:10870/interfaces/api/amr/containerIn";
 | 
					    public static String containerIn = "http://10.175.163.70:10870/interfaces/api/amr/containerIn";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 容器相关操作,出场
 | 
					     * 容器相关操作,出场
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static String containerOut = "http://10.177.202.230:10870/interfaces/api/amr/containerOut";
 | 
					    public static String containerOut = "http://10.175.163.70:10870/interfaces/api/amr/containerOut";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 容器相关操作,查询容器信息
 | 
					     * 容器相关操作,查询容器信息
 | 
				
			||||||
     */
 | 
					     */
 | 
				
			||||||
    public static String containerQuery = "http://10.177.202.230:10870/interfaces/api/amr/containerQuery";
 | 
					    public static String containerQuery = "http://10.175.163.70:10870/interfaces/api/amr/containerQuery";
 | 
				
			||||||
 | 
					
 | 
				
			||||||
    /**
 | 
					    /**
 | 
				
			||||||
     * 输送线点位查询
 | 
					     * 输送线点位查询
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -14,9 +14,11 @@ spring:
 | 
				
			||||||
    druid:
 | 
					    druid:
 | 
				
			||||||
      db-type: com.alibaba.druid.pool.DruidDataSource
 | 
					      db-type: com.alibaba.druid.pool.DruidDataSource
 | 
				
			||||||
      driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
 | 
					      driverClassName: net.sf.log4jdbc.sql.jdbcapi.DriverSpy
 | 
				
			||||||
      url: jdbc:log4jdbc:mysql://${DB_HOST:47.100.54.81}:${DB_PORT:53306}/${DB_NAME:hefeihvac_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
 | 
					#      url: jdbc:log4jdbc:mysql://${DB_HOST:47.100.54.81}:${DB_PORT:53306}/${DB_NAME:hefeihvac_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
 | 
				
			||||||
 | 
					      url: jdbc:log4jdbc:mysql://${DB_HOST:localhost}:${DB_PORT:3306}/${DB_NAME:hefeihvac_wms}?serverTimezone=Asia/Shanghai&characterEncoding=utf8&useSSL=false
 | 
				
			||||||
      username: ${DB_USER:root}
 | 
					      username: ${DB_USER:root}
 | 
				
			||||||
      password: ${DB_PWD:Youchain@56}
 | 
					#      password: ${DB_PWD:Youchain@56}
 | 
				
			||||||
 | 
					      password: ${DB_PWD:123456}
 | 
				
			||||||
      # 初始连接数
 | 
					      # 初始连接数
 | 
				
			||||||
      initial-size: 5
 | 
					      initial-size: 5
 | 
				
			||||||
      # 最小连接数
 | 
					      # 最小连接数
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -1,5 +1,5 @@
 | 
				
			||||||
server:
 | 
					server:
 | 
				
			||||||
  port: 8010
 | 
					  port: 8000
 | 
				
			||||||
spring:
 | 
					spring:
 | 
				
			||||||
  main:
 | 
					  main:
 | 
				
			||||||
    allow-circular-references: true
 | 
					    allow-circular-references: true
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in New Issue