|
|
@@ -0,0 +1,2299 @@
|
|
|
+package com.steerinfo.dil.controller;
|
|
|
+
|
|
|
+import cn.hutool.core.date.DateUtil;
|
|
|
+import cn.hutool.core.lang.hash.Hash;
|
|
|
+import com.alibaba.fastjson.JSON;
|
|
|
+import com.alibaba.fastjson.JSONArray;
|
|
|
+import com.alibaba.fastjson.JSONObject;
|
|
|
+import com.alibaba.fastjson.TypeReference;
|
|
|
+import com.google.gson.JsonObject;
|
|
|
+import com.steerinfo.dil.config.WebExceptionHandler;
|
|
|
+import com.steerinfo.dil.feign.*;
|
|
|
+import com.steerinfo.dil.mapper.*;
|
|
|
+import com.steerinfo.dil.model.*;
|
|
|
+import com.steerinfo.dil.service.impl.*;
|
|
|
+import com.steerinfo.dil.util.BaseRESTfulController;
|
|
|
+import com.steerinfo.dil.util.DaZongUtil;
|
|
|
+import com.steerinfo.dil.util.DataChange;
|
|
|
+import com.steerinfo.dil.util.EntityDispose;
|
|
|
+import com.steerinfo.framework.controller.RESTfulResult;
|
|
|
+import com.sun.org.apache.bcel.internal.generic.NEW;
|
|
|
+import io.swagger.annotations.ApiOperation;
|
|
|
+import org.apache.log4j.Logger;
|
|
|
+import org.omg.CORBA.OBJ_ADAPTER;
|
|
|
+import org.springframework.beans.factory.annotation.Autowired;
|
|
|
+import org.springframework.scheduling.annotation.Scheduled;
|
|
|
+import org.springframework.web.bind.annotation.PostMapping;
|
|
|
+import org.springframework.web.bind.annotation.RequestBody;
|
|
|
+import org.springframework.web.bind.annotation.RequestMapping;
|
|
|
+import org.springframework.web.bind.annotation.RestController;
|
|
|
+
|
|
|
+import javax.annotation.Resource;
|
|
|
+import java.math.BigDecimal;
|
|
|
+import java.security.PublicKey;
|
|
|
+import java.text.DateFormat;
|
|
|
+import java.text.ParseException;
|
|
|
+import java.text.SimpleDateFormat;
|
|
|
+import java.time.Year;
|
|
|
+import java.time.format.DateTimeFormatter;
|
|
|
+import java.util.*;
|
|
|
+import java.util.regex.Matcher;
|
|
|
+import java.util.regex.Pattern;
|
|
|
+
|
|
|
+@RestController
|
|
|
+@RequestMapping("/${api.version}/test")
|
|
|
+public class TestController extends BaseRESTfulController {
|
|
|
+
|
|
|
+ static final Logger log = Logger.getLogger(TestController.class);
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ OmsTransOrderServiceImpl omsTransOrderService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ OmsTransOrderMapper omsTransOrderMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsWeightResultMapper tmsWeightResultMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ DzFeign dzFeign;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ EntityDispose entityDispose;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsSignInResultMapper tmsSignInResultMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ OmsOrderChildMapper omsOrderChildMapper;
|
|
|
+
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsLoadResultMapper tmsLoadResultMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsOutfactoryResultServiceImpl tmsOutfactoryResultService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ OmsOrderChildServiceImpl omsOrderChildService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsUnloadResultMapper tmsUnloadResultMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsQualityResultMapper tmsQualityResultMappper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ DaZongUtil daZongUtil;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private EmsFeign emsFeign;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ private ReportFeign reportFeign;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ CommonMapper commonMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsTimingResultServiceImpl tmsTimingResultService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsTimingResultController tmsTimingResultController;
|
|
|
+ @Autowired
|
|
|
+ private TmsTimingResultMapper tmsTimingResultMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsWeightResultController tmsWeightResultController;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmiFeign tmiFeign;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ SyncProductListMapper syncProductListMapper;
|
|
|
+
|
|
|
+ @Resource
|
|
|
+ TmsWeightResultServiceImpl tmsWeightResultService;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TmsComprehensiveResultMapper tmsComprehensiveResultMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ AmsTransRequirementMapper amsTransRequirementMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ AmsRequirementChildMapper amsRequirementChildMapper;
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ WebsocketFeign websocketFeign;
|
|
|
+
|
|
|
+ @ApiOperation(value="测试接口", notes="")
|
|
|
+ @PostMapping("/test")
|
|
|
+ public RESTfulResult test(){
|
|
|
+ try{
|
|
|
+ omsTransOrderService.buluTransOrder();
|
|
|
+ return success("OK");
|
|
|
+ }catch (Exception e){
|
|
|
+ e.printStackTrace();
|
|
|
+ return failed(e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 定时任务,每1分钟执行,获取大宗质检实绩
|
|
|
+ */
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 240)
|
|
|
+ public void quiltyDz(){
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> list = tmsUnloadResultMapper.getQualitingResult();
|
|
|
+ DateFormat df = new SimpleDateFormat("yyyyMMddHHmm");
|
|
|
+ DateFormat df2 = new SimpleDateFormat("yyyyMMddHHmmss");
|
|
|
+ for(Map<String,Object> item : list){
|
|
|
+ try{
|
|
|
+ JSONObject result = daZongUtil.executeNolog("30010000020",new Map[]{item});
|
|
|
+ JSONArray rows = result.getJSONObject("returndata").getJSONObject("tables0").getJSONArray("rows");
|
|
|
+ if(rows.size() > 0){
|
|
|
+ JSONObject quiltyResult = JSONObject.parseObject(JSONObject.toJSONString(rows.get(0)));
|
|
|
+// log.info("质检结果:"+quiltyResult);
|
|
|
+ String gbrq = quiltyResult.getString("gbrq");//过磅日期-20240712164127
|
|
|
+ String zyrq = quiltyResult.getString("zyrq");//制样日期-202407131317
|
|
|
+ String hyrq = quiltyResult.getString("hyrq");//化验日期-202407140855
|
|
|
+ String cydh = quiltyResult.getString("cydh");//采样单号
|
|
|
+ String zjdh = quiltyResult.getString("zjdh");//质检单号
|
|
|
+ BigDecimal water = quiltyResult.getBigDecimal("水分");
|
|
|
+ BigDecimal s = quiltyResult.getBigDecimal("S");
|
|
|
+ TmsQualityResult tmsQualityResult = tmsQualityResultMappper.selectByPrimaryKey(DataChange.dataToBigDecimal(item.get("resultId")));
|
|
|
+ tmsQualityResult.setWaterProportion(water);
|
|
|
+ tmsQualityResult.setMaterialId(DataChange.dataToBigDecimal(item.get("materialId")));
|
|
|
+ tmsQualityResult.setSulfurProportion(s);
|
|
|
+ tmsQualityResult.setSamplingTime(df2.parse(gbrq));
|
|
|
+ try{
|
|
|
+ tmsQualityResult.setAssembleTime(df.parse(zyrq));
|
|
|
+ }catch (Exception e){}
|
|
|
+ try{
|
|
|
+ tmsQualityResult.setAssayTime(df.parse(hyrq));
|
|
|
+ }catch (Exception e){}
|
|
|
+ tmsQualityResult.setSamplingNo(cydh);
|
|
|
+ tmsQualityResult.setAssayNo(zjdh);
|
|
|
+ tmsQualityResult.setUpdateTime(new Date());
|
|
|
+ tmsQualityResult.setUpdateUsername("大宗质检");
|
|
|
+ tmsQualityResultMappper.updateByPrimaryKeySelective(tmsQualityResult);
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ log.error("获取大宗质检实绩异常:"+e.getMessage());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 定时任务,每1分钟执行,关闭未回传的运单
|
|
|
+ */
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60)
|
|
|
+ public void closeDz(){
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Map<String,Object> map = dzFeign.getUnUploadOrder();
|
|
|
+ //关闭有净重的运单
|
|
|
+ int affect = omsTransOrderMapper.closeDz(map);
|
|
|
+ if(affect > 0){
|
|
|
+ log.info("关闭大宗未回传的运单数量:"+affect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ /*定时任务,关闭已回传净重但半小时后仍未回传出厂的运单
|
|
|
+ * */
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 30)
|
|
|
+ public void closeAbnormalOrder() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ int affect = omsTransOrderMapper.closeAbnormalOrder();
|
|
|
+ if(affect > 0) {
|
|
|
+ log.info("关闭大宗未回传出厂时间的运单数量:" + affect);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 定时任务,查询计时运单已签到,但未计时开始的运单
|
|
|
+ * */
|
|
|
+ //@Scheduled(fixedDelay = 5000 * 60 * 6)
|
|
|
+ //@PostMapping("autoTimeStarted")
|
|
|
+ public void autoTimeStarted() {
|
|
|
+ //
|
|
|
+ List<Map<String,Object>> mapList = omsTransOrderMapper.getNoTimeStarted();
|
|
|
+ for (Map<String,Object> map : mapList) {
|
|
|
+ try {
|
|
|
+ tmsTimingResultService.timingResult(map);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 定时任务,每1小时执行,关闭生产(计重、计次、计时)过期的运单
|
|
|
+ */
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60 * 3)
|
|
|
+ public void closeTransOrder_pruduct(){
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //try {
|
|
|
+ // List<OmsTransOrder> omsTransOrders = omsTransOrderMapper.getExpireOrder();
|
|
|
+ // for (OmsTransOrder omsTransOrder : omsTransOrders) {
|
|
|
+ // Map<String, Object> searchMap = new HashMap<>();
|
|
|
+ // searchMap.put("transOrderId", omsTransOrder.getTransOrderId().toString());
|
|
|
+ // Map<String, Object> transOrder = omsTransOrderMapper.getTransOrder(searchMap);
|
|
|
+ // transOrder.put("userName", "admin");
|
|
|
+ // Map<String, Object> map = emsFeign.emsdetailsordersAdd(transOrder);
|
|
|
+ // log.info("关闭运单时调用结算:"+map.toString());
|
|
|
+ // }
|
|
|
+ //}catch (Exception e){
|
|
|
+ // log.error("关闭运单时调用结算异常",e);
|
|
|
+ //}
|
|
|
+ //int affect = omsTransOrderMapper.closeExpireOrder();
|
|
|
+ int affect1 = omsTransOrderMapper.closeExpireOrder1();
|
|
|
+ //关闭生产物流计时超出用车时间的运单
|
|
|
+ int affect2 = omsTransOrderMapper.closeExpireOrder2();
|
|
|
+ //关闭已签到,但是一直未结束的运输订单(超出3天)
|
|
|
+ int affect3 = omsTransOrderMapper.closeExpireOrder3();
|
|
|
+ //关闭吊车未结束时间的单据
|
|
|
+ int affect4 = omsTransOrderMapper.closeExpireOrder4();
|
|
|
+
|
|
|
+ int affect5 = omsTransOrderMapper.closeExpireOrder5();
|
|
|
+
|
|
|
+ //if(affect > 0){
|
|
|
+ // log.info("关闭生产(计重)过期的运单数量:"+affect);
|
|
|
+ //}
|
|
|
+ if(affect1 > 0){
|
|
|
+ log.info("关闭生产(计次)过期的运单数量:"+affect1);
|
|
|
+ }
|
|
|
+ if(affect2 > 0){
|
|
|
+ log.info("关闭生产(计时)过期的运单数量:"+affect2);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60)
|
|
|
+ public void disposeTimeEnd() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> affectListMap = omsTransOrderMapper.getTimeExpireOrder();
|
|
|
+ for(Map<String,Object> map : affectListMap) {
|
|
|
+ BigDecimal duration = DataChange.dataToBigDecimal(map.get("duration"));
|
|
|
+ map.put("abnormalFlag","是");
|
|
|
+ if(duration == null){
|
|
|
+ map.put("actualDuration",11);
|
|
|
+ }else if(duration.compareTo(new BigDecimal(11)) == 1) {
|
|
|
+ map.put("actualDuration",11.5);
|
|
|
+ }else{
|
|
|
+ map.put("actualDuration",duration);
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ tmsTimingResultController.start(map);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //过期运单自动关闭
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 120)
|
|
|
+ public void closeExpireTransOrder() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ try {
|
|
|
+ // 查询过期运单,关闭时同步更新数量
|
|
|
+ List<BigDecimal> orderIds = omsTransOrderMapper.getCxExpireOrder();
|
|
|
+ //关闭运单
|
|
|
+ int affect = omsTransOrderMapper.closeExpireByTransOrder(orderIds);
|
|
|
+ //根据运单查询需求ID
|
|
|
+ List<BigDecimal> requirementChildIds = omsTransOrderMapper.getRequirementChildIdByOrderIds(orderIds);
|
|
|
+ for(BigDecimal requirementChildId : requirementChildIds) {
|
|
|
+ omsTransOrderService.sumWeight(requirementChildId);
|
|
|
+ }
|
|
|
+ //int affect = omsTransOrderMapper.closeExpireTransOrder();
|
|
|
+ log.info("关闭过期运输订单数量:"+affect);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 30)
|
|
|
+ public void buluCapacityInfo() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //获取没有四六证的车号
|
|
|
+ List<OmsTransOrder> omsTransOrderList = omsTransOrderMapper.selectUnInfoOrder();
|
|
|
+ for(OmsTransOrder omsTransOrder : omsTransOrderList) {
|
|
|
+ try {
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("capacityNumber",omsTransOrder.getCapacityNumber());
|
|
|
+ objectObjectHashMap.put("transOrderNumber",omsTransOrder.getSerialNumber());
|
|
|
+ objectObjectHashMap.put("identityCard",omsTransOrder.getIdentityCard());
|
|
|
+ objectObjectHashMap.put("capacityId",omsTransOrder.getCapacityId());
|
|
|
+ objectObjectHashMap.put("driverId",omsTransOrder.getDriverId());
|
|
|
+ omsTransOrderService.buluCapacity(objectObjectHashMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 定时任务,每1分钟执行,获取大宗签到
|
|
|
+ */
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60)
|
|
|
+ public void signDz() throws Exception {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Map<String, Object>> list = omsTransOrderMapper.getSigningOrder();
|
|
|
+ DateFormat dateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ int index= 0,section = 200;//分片大小
|
|
|
+ while(index * section < list.size()) {
|
|
|
+ index++;
|
|
|
+ List<Map<String, Object>> tempList = null;
|
|
|
+ if (index * section < list.size()) {
|
|
|
+ tempList = list.subList((index - 1) * section, index * section);
|
|
|
+ } else {
|
|
|
+ tempList = list.subList((index - 1) * section, list.size());
|
|
|
+ }
|
|
|
+ //处理数据
|
|
|
+ if(tempList.size()>0){
|
|
|
+ Map<String,Object> searchMap_Dz = new HashMap<>();
|
|
|
+ searchMap_Dz.put("list",tempList);
|
|
|
+ List<Map<String, Object>> resultList = dzFeign.getSignList(searchMap_Dz);
|
|
|
+ if(resultList.size()>0){
|
|
|
+ for(Map<String ,Object > temp :resultList){
|
|
|
+ if(temp.get("signInTime") != null && temp.get("transOrderNumber") != null){
|
|
|
+ String transOrderNumber = temp.get("transOrderNumber").toString();
|
|
|
+ Date signTime = dateFormat.parse(temp.get("signInTime").toString());
|
|
|
+ BigDecimal transOrderId = omsTransOrderMapper.getTransOrderIdByNumber(temp).get(0);
|
|
|
+ //运单
|
|
|
+ OmsTransOrder omsTransOrder = new OmsTransOrder();
|
|
|
+ omsTransOrder.setTransOrderId(transOrderId);
|
|
|
+ omsTransOrder.setDeleted(new BigDecimal(5));
|
|
|
+ omsTransOrder.setCurrentLineSeq(new BigDecimal(1));
|
|
|
+ omsTransOrder.setOrderStatus("大宗签到");
|
|
|
+ omsTransOrder.setConfirmReason("大宗签到");
|
|
|
+ //签到实绩
|
|
|
+ Map<String,Object> searchMap = new HashMap<>();
|
|
|
+ searchMap.put("transOrderId",transOrderId);
|
|
|
+ searchMap.put("deleted",0);
|
|
|
+ List<TmsSignInResult> signList = tmsSignInResultMapper.selectByParameters(searchMap);
|
|
|
+ for(TmsSignInResult item : signList){
|
|
|
+ if(item.getSignInTime() == null){
|
|
|
+ item.setSignInMode("大宗签到");
|
|
|
+ item.setSignInAddress("");
|
|
|
+ item.setLocationMode("大宗签到");
|
|
|
+ item.setSignInTime(signTime);
|
|
|
+ item.setUpdateTime(new Date());
|
|
|
+ item.setUpdateUsername("大宗签到");
|
|
|
+ tmsSignInResultMapper.updateByPrimaryKeySelective(item);
|
|
|
+ omsTransOrderMapper.updateByPrimaryKeySelective(omsTransOrder);
|
|
|
+ omsOrderChildService.updateOrderChildInfo(transOrderId,null,item.getSignInTime(),"签到");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //更新操作
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@PostMapping("/findUnloadDetails")
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60 * 6)
|
|
|
+ public RESTfulResult findUnloadDetails() {
|
|
|
+ String userName = "补录卸货实绩";
|
|
|
+ // 查询实收吨位没有的运单
|
|
|
+ List<BigDecimal> transOrderIds = omsTransOrderMapper.selectUnloadOrdersIds();
|
|
|
+ //List<BigDecimal> transOrderIds = omsTransOrderMapper.selectLoadOrderIds();
|
|
|
+ for (BigDecimal transOrderId : transOrderIds) {
|
|
|
+ OmsTransOrder omsTransOrder = omsTransOrderMapper.selectByPrimaryKey(transOrderId);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.findUnloadDetails(omsTransOrder,userName);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("/findSignTime")
|
|
|
+ public RESTfulResult findSignTime() {
|
|
|
+ String userName = "大宗补录签到实绩";
|
|
|
+ // 查询没有签到实绩的已完成的运单
|
|
|
+ List<BigDecimal> transOrderIds = omsTransOrderMapper.selectSignOrdersIds();
|
|
|
+ for (BigDecimal transOrderId : transOrderIds) {
|
|
|
+ OmsTransOrder omsTransOrder = omsTransOrderMapper.selectByPrimaryKey(transOrderId);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.findSignTime(omsTransOrder,userName);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("/restartWeightResult")
|
|
|
+ public RESTfulResult restartWeightResult() {
|
|
|
+ List<String> ysddList = omsTransOrderMapper.restartWeightResult();
|
|
|
+ dzFeign.restartWeightResult(ysddList);
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/disposeErrorRequirement")
|
|
|
+ public RESTfulResult disposeErrorRequirement() {
|
|
|
+ List<Map<String,Object>> mapList = tmsWeightResultMapper.getErrorRequirement();
|
|
|
+ int i=0;
|
|
|
+ for(Map<String,Object> map :mapList) {
|
|
|
+ Map<String,Object> map1 = dzFeign.getErrorRequirement(map);
|
|
|
+ BigDecimal wlNum1 = DataChange.dataToBigDecimal(tmsWeightResultMapper.selectCksl(DataChange.dataToBigDecimal(map.get("tdfl"))));
|
|
|
+ BigDecimal wlNum = DataChange.dataToBigDecimal(map.get("num")).add(wlNum1);
|
|
|
+ if(map1 == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+
|
|
|
+ BigDecimal dzNum = DataChange.dataToBigDecimal(map1.get("num"));
|
|
|
+ if(wlNum.compareTo(dzNum) != 0){
|
|
|
+ System.out.println(wlNum + "=wlNum");
|
|
|
+ System.out.println(dzNum + "=dzNum");
|
|
|
+ System.out.println(map.get("tdls") + "=tdls");
|
|
|
+ System.out.println(map.get("tdfl") + "=tdfl");
|
|
|
+ System.out.println(dzNum.subtract(wlNum) + "=cz");
|
|
|
+ System.out.println("/n");
|
|
|
+ System.out.println("/n");
|
|
|
+ System.out.println(i++);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/testSingle")
|
|
|
+ public RESTfulResult testSingle(){
|
|
|
+ return success(omsTransOrderMapper.selectByPrimaryKey(new BigDecimal(410040)));
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/bluWmsWeigh")
|
|
|
+ public RESTfulResult bluWmsWeigh() {
|
|
|
+ //查找没有信息
|
|
|
+ //查询3、20001
|
|
|
+ List<OmsTransOrder> omsTransOrders = omsTransOrderMapper.selectNoNetWeight();
|
|
|
+ List<TmsWeightResult> tmsWeightResultsTarget = new ArrayList<>();
|
|
|
+ List<TmsWeightResult> tmsWeightResultsOrigin = new ArrayList<>();
|
|
|
+ for(OmsTransOrder omsTransOrder : omsTransOrders) {
|
|
|
+ Map<String, Object> loadMap = new HashMap<>();
|
|
|
+ loadMap.put("transOrderId",omsTransOrder.getTransOrderId());
|
|
|
+ List<TmsLoadResult> loadResults = tmsLoadResultMapper.selectByParameters(loadMap);
|
|
|
+ if (loadResults.size() != 1) {
|
|
|
+ System.out.println(omsTransOrder.getTransOrderId().toString());
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ TmsLoadResult itemLoadResult = loadResults.get(0);
|
|
|
+ if (itemLoadResult == null || itemLoadResult.getLoadEndTime() == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ Map<String, Object> weightMap = new HashMap<>();
|
|
|
+ weightMap.put("capacityId",omsTransOrder.getCapacityId());
|
|
|
+ weightMap.put("loadTime",itemLoadResult.getLoadEndTime());
|
|
|
+ List<TmsWeightResult> weightResultsBand = tmsWeightResultMapper.selectWeightMap(weightMap);
|
|
|
+ if (weightResultsBand == null || weightResultsBand.size() == 0 || weightResultsBand.get(0) == null || weightResultsBand.size() > 1) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ List<OmsOrderChild> omsOrderChildren = omsOrderChildMapper.selectByParameters(loadMap);
|
|
|
+ TmsWeightResult itemOrigin = weightResultsBand.get(0);
|
|
|
+ List<TmsWeightResult> weightResultsLoad = tmsWeightResultMapper.selectByParameters(loadMap);
|
|
|
+ TmsWeightResult itemTarget = weightResultsLoad.get(0);
|
|
|
+ itemTarget.setPoundNo(itemOrigin.getPoundNo());
|
|
|
+ itemTarget.setTransOrderChildId(omsOrderChildren.get(0).getOrderChildId());
|
|
|
+ itemTarget.setGrossPlaceId(itemOrigin.getGrossPlaceId());
|
|
|
+ itemTarget.setGrossWeight(itemOrigin.getGrossWeight());
|
|
|
+ itemTarget.setGrossWeightTime(itemOrigin.getGrossWeightTime());
|
|
|
+ itemTarget.setTarePlaceId(itemOrigin.getTarePlaceId());
|
|
|
+ itemTarget.setTareWeightTime(itemOrigin.getTareWeightTime());
|
|
|
+ itemTarget.setTareWeight(itemOrigin.getTareWeight());
|
|
|
+ itemTarget.setNetWeightTime(itemOrigin.getNetWeightTime());
|
|
|
+ itemTarget.setNetWeight(itemOrigin.getNetWeight());
|
|
|
+ itemTarget.setResultImage(itemOrigin.getResultImage());
|
|
|
+ itemTarget.setAlternateFields6(itemOrigin.getAlternateFields6());
|
|
|
+ itemTarget.setAlternateFields9(itemOrigin.getTransOrderId().toString());
|
|
|
+ itemTarget.setAlternateFields10(itemOrigin.getResultId().toString());
|
|
|
+ tmsWeightResultsTarget.add(itemTarget);
|
|
|
+ itemOrigin.setAlternateFields9(itemTarget.getTransOrderId().toString());
|
|
|
+ itemOrigin.setAlternateFields10(itemTarget.getResultId().toString());
|
|
|
+ tmsWeightResultsOrigin.add(itemOrigin);
|
|
|
+ }
|
|
|
+ if(tmsWeightResultsTarget.size() > 0) {
|
|
|
+ tmsWeightResultMapper.batchUpdate(tmsWeightResultsTarget);
|
|
|
+ }
|
|
|
+ if(tmsWeightResultsOrigin.size() > 0) {
|
|
|
+ tmsWeightResultMapper.batchUpdate(tmsWeightResultsOrigin);
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //@PostMapping("testWeightReplace")
|
|
|
+ //public void testWeightReplace(BigDecimal transOrderId) {
|
|
|
+ // try {
|
|
|
+ // omsTransOrderService.replaceResult(transOrderId);
|
|
|
+ // } catch (Exception e) {
|
|
|
+ // e.printStackTrace();
|
|
|
+ // }
|
|
|
+ //}
|
|
|
+
|
|
|
+ @PostMapping("updateSaleWeight")
|
|
|
+ public RESTfulResult updateSaleWeight() {
|
|
|
+
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("bluMonitor")
|
|
|
+ public RESTfulResult bluMonitor() {
|
|
|
+ //查询采购实绩
|
|
|
+ List<OmsTransOrder> omsTransOrderList = omsTransOrderMapper.selectByMonitor();
|
|
|
+ //int index = 0;
|
|
|
+ //int section = 200;
|
|
|
+ //while (index * section < omsTransOrderList.size()) {
|
|
|
+ // index++;
|
|
|
+ //
|
|
|
+ //}
|
|
|
+ for(OmsTransOrder omsTransOrder : omsTransOrderList) {
|
|
|
+ try {
|
|
|
+ tmsOutfactoryResultService.generateMonitor(omsTransOrder.getTransOrderId());
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/bluTzd")
|
|
|
+ public RESTfulResult bluTzd() {
|
|
|
+ List<Map<String,Object>> mapList = dzFeign.getProductionResultList(new HashMap<>());
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ omsTransOrderService.syncProductionResult(map);
|
|
|
+ //判断单据有没有同步成功
|
|
|
+ BigDecimal orderId = omsTransOrderMapper.selectOrderInfoByDB(map);
|
|
|
+ SyncProductList syncProductList = new SyncProductList();
|
|
|
+ if(orderId == null) {
|
|
|
+ syncProductList.setDeleted(1);
|
|
|
+ }else{
|
|
|
+ syncProductList.setDeleted(0);
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = new JSONObject(map);
|
|
|
+ syncProductList.setPrimaryId(syncProductListMapper.nextId());
|
|
|
+ syncProductList.setDjbh(map.get("djbh").toString());
|
|
|
+ syncProductList.setMaterialName(map.get("materialName") == null ? "" : map.get("materialName").toString());
|
|
|
+ syncProductList.setProductList(jsonObject.toString());
|
|
|
+ syncProductList.setInsertTime(new Date());
|
|
|
+ syncProductListMapper.insert(syncProductList);
|
|
|
+ }
|
|
|
+ return success(1);
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("matching")
|
|
|
+ public RESTfulResult matching() {
|
|
|
+ omsTransOrderService.matching(new BigDecimal(776064));
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 匹配车号
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("matchCarNumber")
|
|
|
+ public RESTfulResult matchCarNumber() {
|
|
|
+ RESTfulResult result = omsTransOrderService.matchCarNumber();
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ /**
|
|
|
+ * 合并大宗运单
|
|
|
+ * @return
|
|
|
+ */
|
|
|
+ @PostMapping("mergeDzOrder")
|
|
|
+ public RESTfulResult mergeDzOrder(@RequestBody HashMap<String,Object> model) {
|
|
|
+ if(model.get("shift")==null&&!"1".equals(model.get("shift"))&&!"2".equals(model.get("shift"))){
|
|
|
+ return failed("请传递早晚班数据!");
|
|
|
+ }
|
|
|
+ RESTfulResult result = omsTransOrderService.mergeDzOrder(model.get("shift").toString());
|
|
|
+ //生产详单和日报
|
|
|
+ if(result.getData()!=null&&result.getData() instanceof List){
|
|
|
+ List<BigDecimal> orderIds = (List<BigDecimal>) result.getData();
|
|
|
+ for(BigDecimal orderId : orderIds) {
|
|
|
+ Map<String, Object> searchMap = new HashMap<>();
|
|
|
+ searchMap.put("transOrderId", orderId.toString());
|
|
|
+ searchMap.put("userName", "admin");
|
|
|
+ Map<String, Object> transOrder = omsTransOrderMapper.getTransOrder(searchMap);
|
|
|
+ transOrder.put("userName", "admin");
|
|
|
+ Map<String, Object> map1 = emsFeign.emsdetailsordersAdd(transOrder);
|
|
|
+ Map<String,Object> map = new HashMap<>();
|
|
|
+ map.put("transOrderId",orderId);
|
|
|
+ RESTfulResult resTfulResult = reportFeign.generateOperateDaily(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return result;
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/disposeSyncDzOrder")
|
|
|
+ public RESTfulResult disposeSyncDzOrder() {
|
|
|
+ //获取1号到13号的数据
|
|
|
+ List<String> jsonStringList = omsTransOrderMapper.selectDzTransOrder();
|
|
|
+ for(String jsonString : jsonStringList) {
|
|
|
+ Map<String,Object> syncMap = JSONObject.parseObject(jsonString);
|
|
|
+ //获取匹配不到的数据,将其中身份证信息替换
|
|
|
+ //根据人员姓名去查
|
|
|
+ String isReWeight = DataChange.getString(syncMap.get("isReWeight"));
|
|
|
+ if("复磅".equals(isReWeight)) {
|
|
|
+ omsTransOrderService.syncProductionResult(syncMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("updateBfIcInfo")
|
|
|
+ public RESTfulResult updateBfIcInfo() {
|
|
|
+ List<Map<String,Object>> mapList = commonMapper.getHrInfo();
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ dzFeign.updateBfIcInfo(map);
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("disposeDriverInfo")
|
|
|
+ public RESTfulResult disposeDriverInfo() {
|
|
|
+ List<Map<String,Object>> mapList = commonMapper.getHrInfo();
|
|
|
+ for(Map<String,Object> map:mapList) {
|
|
|
+ //查询人员数据
|
|
|
+ List<Map<String,Object>> mapList1 = commonMapper.getPinfo(map);
|
|
|
+ if(mapList1.size() == 0) {
|
|
|
+ //大概率是没有班组
|
|
|
+ commonMapper.updatePinfo(map);
|
|
|
+ }
|
|
|
+ if(mapList1.size() ==2) {
|
|
|
+ commonMapper.updatePinfo1(map);
|
|
|
+ }
|
|
|
+ if(mapList1 == null || mapList1.size() == 0 || mapList1.size() > 1) {
|
|
|
+ System.out.println(JSONObject.toJSONString(map));
|
|
|
+ System.out.println("==============");
|
|
|
+ System.out.println(mapList1.size());
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("disposeSaleNum")
|
|
|
+ public RESTfulResult disposeSaleNum(@RequestBody Map<String,Object> map) {
|
|
|
+ //List<String> saleNoList = (List<String>) map.get("saleNoList");
|
|
|
+ //根据销售订单号获取子表id
|
|
|
+ List<BigDecimal> childIdList = commonMapper.getChildList(map);
|
|
|
+ //List<BigDecimal> childIdList = commonMapper.getChildListOrder(map);
|
|
|
+ for (BigDecimal requirementChildId : childIdList) {
|
|
|
+ omsTransOrderService.sumWeight(requirementChildId);
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("updateMaterialNumber")
|
|
|
+ public RESTfulResult updateMaterialNumber() {
|
|
|
+ //获取未停用的计划子表ID
|
|
|
+ List<BigDecimal> planChildIds = omsTransOrderMapper.selectPlanChildIds();
|
|
|
+ for(BigDecimal planChildId : planChildIds) {
|
|
|
+ omsTransOrderService.sumWeightPlan(planChildId);
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60)
|
|
|
+ @PostMapping("getInnerResult")
|
|
|
+ public void syncInnerResult() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> mapList = dzFeign.getInnerResult();
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ omsTransOrderService.syncProductionResult(map);
|
|
|
+ //判断单据有没有同步成功
|
|
|
+ BigDecimal orderId = omsTransOrderMapper.selectOrderInfoByDB(map);
|
|
|
+ SyncProductList syncProductList = new SyncProductList();
|
|
|
+ if(orderId == null) {
|
|
|
+ syncProductList.setDeleted(1);
|
|
|
+ }else{
|
|
|
+ syncProductList.setDeleted(0);
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = new JSONObject(map);
|
|
|
+ syncProductList.setPrimaryId(syncProductListMapper.nextId());
|
|
|
+ syncProductList.setDjlx("收货");
|
|
|
+ syncProductList.setDjbh(map.get("djbh").toString());
|
|
|
+ syncProductList.setMaterialName(map.get("materialName") == null ? "" : map.get("materialName").toString());
|
|
|
+ syncProductList.setProductList(jsonObject.toString());
|
|
|
+ syncProductList.setInsertTime(new Date());
|
|
|
+ syncProductListMapper.insert(syncProductList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("reDispatchOrder")
|
|
|
+ public void reDispatchOrder() throws Exception {
|
|
|
+ omsTransOrderService.reDispatchOrder(new BigDecimal(772721));
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("disposeResultList")
|
|
|
+ public void disposeResultList() {
|
|
|
+ List<String> strings = Arrays.asList("902410170022","902410210017");
|
|
|
+ for(String s : strings) {
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("djbh",s);
|
|
|
+ List<Map<String,Object>> mapList = dzFeign.getProductionResultList(objectObjectHashMap);
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ omsTransOrderService.syncProductionResult(map);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/restartPrice")
|
|
|
+ public void restartPrice() throws Exception {
|
|
|
+ List<BigDecimal> mapList = omsTransOrderMapper.getNeedOrderIds();
|
|
|
+ for(BigDecimal transOrderId :mapList) {
|
|
|
+ omsTransOrderService.updateTimeOrderStatus(transOrderId,"计时结束","admin");
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("getErrorResult")
|
|
|
+ public void getErrorResult() {
|
|
|
+ List<String> stringList = dzFeign.getErrorResult();
|
|
|
+ for(String s : stringList) {
|
|
|
+ JSONObject jsonObject = null;
|
|
|
+ try {
|
|
|
+ System.out.println(s);
|
|
|
+ String res = s.replace("\"transOrderChildId\":,","\"transOrderChildId\":1,");
|
|
|
+ jsonObject = JSON.parseObject(res);
|
|
|
+ //根据运单号
|
|
|
+ BigDecimal transOrderChildId = omsTransOrderMapper.selectTransOrderChildId(jsonObject.get("transOrderNumber"));
|
|
|
+ //判断有没有净重
|
|
|
+ if(transOrderChildId == null) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ jsonObject.put("transOrderChildId",transOrderChildId);
|
|
|
+ tmsWeightResultController.syncWeightResult(jsonObject);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+
|
|
|
+ //if(jsonObject.get("transOrderNumber") != null && jsonObject.)
|
|
|
+ System.out.println(jsonObject);
|
|
|
+
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@PostMapping("syncWmsCarNo")
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 20)
|
|
|
+ public void syncWmsCarNo() {
|
|
|
+ //查询上站型钢业务-同步;
|
|
|
+ List<Map<String,Object>> mapList = omsTransOrderMapper.selectWmsCarNo();
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("mapList",mapList);
|
|
|
+ tmiFeign.syncWmsCarNo(objectObjectHashMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ //@PostMapping("deleteWmsCarNo")
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 5)
|
|
|
+ public void deleteWmsCarNo() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //查询上站型钢业务-删除;
|
|
|
+ List<Map<String,Object>> mapList = omsTransOrderMapper.selectDeleteWmsCarNo();
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("mapList",mapList);
|
|
|
+ tmiFeign.deleteWmsCarNo(objectObjectHashMap);
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 80)
|
|
|
+ public void restartSyncProduct() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //针对同步失败的重新同步
|
|
|
+ List<Map<String,Object>> productList = syncProductListMapper.getFailedList();
|
|
|
+ for(Map<String,Object> map : productList) {
|
|
|
+ String s = map.get("productList").toString();
|
|
|
+ JSONObject jsonObject = JSON.parseObject(s);
|
|
|
+ omsTransOrderService.syncProductionResult(jsonObject);
|
|
|
+ //判断单据有没有同步成功
|
|
|
+ BigDecimal orderId = omsTransOrderMapper.selectOrderInfoByDB(jsonObject);
|
|
|
+ SyncProductList syncProductList = syncProductListMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("primaryId")));
|
|
|
+ if(orderId == null) {
|
|
|
+ syncProductList.setDeleted(1);
|
|
|
+ syncProductList.setAlternateFields1("多次重试仍失败");
|
|
|
+ }else{
|
|
|
+ syncProductList.setDeleted(0);
|
|
|
+ syncProductList.setAlternateFields1("");
|
|
|
+ }
|
|
|
+ syncProductListMapper.updateByPrimaryKeySelective(syncProductList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/updateProductList")
|
|
|
+ public void updateProductList() {
|
|
|
+ List<String> productList = omsTransOrderMapper.selectBluList();
|
|
|
+ for(String s : productList) {
|
|
|
+ JSONObject jsonObject = JSON.parseObject(s);
|
|
|
+ omsTransOrderService.syncProductionResult(jsonObject);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @ApiOperation("更新计划数量")
|
|
|
+ public void updatePlanNumber(){
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("disposeInventoryData")
|
|
|
+ public void disposeInventoryData() {
|
|
|
+ List<Map<String,Object>> omsChildList = omsOrderChildMapper.getDzOrderIds();
|
|
|
+ for(Map<String,Object> map : omsChildList) {
|
|
|
+ tmsWeightResultService.transGridMaterial(DataChange.dataToBigDecimal(map.get("transOrderChildId")),
|
|
|
+ DataChange.dataToBigDecimal(map.get("netWeight")),"dz","wl",DataChange.dataToDate(map.get("netWeightTime")));
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("disposeListAggCapacity")
|
|
|
+ public RESTfulResult disposeListAggCapacity() {
|
|
|
+ //根据销售订单号获取子表id
|
|
|
+ List<BigDecimal> childIdList = commonMapper.getPlanChildList();
|
|
|
+ for (BigDecimal planChildId : childIdList) {
|
|
|
+ omsTransOrderService.listAggCapacity(planChildId);
|
|
|
+ }
|
|
|
+ return success();
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("/syncNetWeightOrder")
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 10)
|
|
|
+ public void syncNetWeightOrder() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ String businessScene = "采购";
|
|
|
+ List<String> cgNoWeightOrderIds = omsTransOrderMapper.getNoWeightOrderIds(businessScene);
|
|
|
+ Map<String, Object> map = new HashMap<>();
|
|
|
+ map.put("mapList",cgNoWeightOrderIds);
|
|
|
+ map.put("businessScene","采购");
|
|
|
+ List<Map<String,Object>> resList = dzFeign.getNetWeightResult(map);
|
|
|
+ for(Map<String,Object> stringObjectMap : resList) {
|
|
|
+ stringObjectMap.put("netWeightTime",DataChange.dataToDate(stringObjectMap.get("netWeightTime")));
|
|
|
+ omsOrderChildMapper.updateNetWeightInfo(stringObjectMap);
|
|
|
+ omsOrderChildMapper.updateWeightResultInfo(stringObjectMap);
|
|
|
+ }
|
|
|
+ String businessScene1 = "销售";
|
|
|
+ List<String> xsNoWeightOrderIds = omsTransOrderMapper.getNoWeightOrderIds(businessScene1);
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
+ map1.put("mapList",xsNoWeightOrderIds);
|
|
|
+ map1.put("businessScene","销售");
|
|
|
+ List<Map<String,Object>> resList1 = dzFeign.getNetWeightResult(map1);
|
|
|
+ for(Map<String,Object> stringObjectMap : resList1) {
|
|
|
+ stringObjectMap.put("netWeightTime",DataChange.dataToDate(stringObjectMap.get("netWeightTime")));
|
|
|
+ omsOrderChildMapper.updateNetWeightInfo(stringObjectMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Scheduled(fixedDelay = 1000 * 60 * 10)
|
|
|
+ public void fixedDispatch() throws Exception {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ omsTransOrderService.fixedDispatch();
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60)
|
|
|
+ public int leavePersonInfo() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ //查询请假时间在系统时间一个小时以外的数据
|
|
|
+ //更新请假状态
|
|
|
+ List<Map<String, Object>> personnelMaps = commonMapper.selectLeaveInfo();
|
|
|
+ for(Map<String,Object> map : personnelMaps) {
|
|
|
+ BigDecimal personnelId = DataChange.dataToBigDecimal(map.get("personnelId"));
|
|
|
+ String time = map.get("time").toString();
|
|
|
+ String startTime = time.split("--")[0];
|
|
|
+ String endTime = time.split("--")[1];
|
|
|
+ //将转换成时间
|
|
|
+ Date startTimeDate = DataChange.dataToDate(startTime);
|
|
|
+ Date endTimeDate = DataChange.dataToDate(endTime);
|
|
|
+ if(startTimeDate.compareTo(new Date(new Date().getTime() + 120 * 60 * 1000)) <= 0 && endTimeDate.compareTo(new Date()) >= 0) {
|
|
|
+ //请假时间小于当前时间,则变更状态
|
|
|
+ commonMapper.updatePersonnelStatus(personnelId,3);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询需要复岗的请假数据
|
|
|
+ List<Map<String, Object>> fgPersonnelMaps = commonMapper.selectFgInfo();
|
|
|
+ for(Map<String,Object> map : fgPersonnelMaps) {
|
|
|
+ BigDecimal personnelId = DataChange.dataToBigDecimal(map.get("personnelId"));
|
|
|
+ String time = map.get("time").toString();
|
|
|
+ String startTime = time.split("--")[0];
|
|
|
+ String endTime = time.split("--")[1];
|
|
|
+ //将转换成时间
|
|
|
+ Date startTimeDate = DataChange.dataToDate(startTime);
|
|
|
+ Date endTimeDate = DataChange.dataToDate(endTime);
|
|
|
+ if(endTimeDate.compareTo(new Date()) <= 0) {
|
|
|
+ //请假时间小于当前时间,则变更状态
|
|
|
+ TmsComprehensiveResult tmsComprehensiveResult = tmsComprehensiveResultMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("resultId")));
|
|
|
+ tmsComprehensiveResult.setAlternateFields8("时间到,自动复岗");
|
|
|
+ tmsComprehensiveResult.setAlternateFields9("时间到,自动复岗");
|
|
|
+ tmsComprehensiveResultMapper.updateByPrimaryKey(tmsComprehensiveResult);
|
|
|
+ commonMapper.updatePersonnelStatus(personnelId,0);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询需要切换的借车数据
|
|
|
+ List<Map<String, Object>> fgJcMaps = commonMapper.selectJcInfo();
|
|
|
+ for(Map<String,Object> map : fgJcMaps) {
|
|
|
+ String time = map.get("time").toString();
|
|
|
+ String startTime = time.split("—")[0];
|
|
|
+ String endTime = time.split("—")[1];
|
|
|
+ //将转换成时间
|
|
|
+ Date startTimeDate = DataChange.dataToDate(startTime);
|
|
|
+ Date endTimeDate = DataChange.dataToDate(endTime);
|
|
|
+ if(endTimeDate.compareTo(new Date()) <= 0) {
|
|
|
+ //借车时间小于当前时间,则变更状态
|
|
|
+ TmsComprehensiveResult tmsComprehensiveResult = tmsComprehensiveResultMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("resultId")));
|
|
|
+ tmsComprehensiveResult.setAlternateFields8("时间到,自动还车");
|
|
|
+ tmsComprehensiveResult.setAlternateFields9("时间到,自动还车");
|
|
|
+ tmsComprehensiveResult.setAlternateFields20("系统自动还车");
|
|
|
+ tmsComprehensiveResultMapper.updateByPrimaryKey(tmsComprehensiveResult);
|
|
|
+ Map<String,Object> map1 = new HashMap<>();
|
|
|
+ map1.put("capacityDriverId",tmsComprehensiveResult.getAlternateFields19());
|
|
|
+ map1.put("deleted",1);
|
|
|
+ map1.put("alternateFields1","还车");
|
|
|
+ tmsComprehensiveResultMapper.updateCapacityStatus(DataChange.dataToBigDecimal(tmsComprehensiveResult.getAlternateFields11()),new BigDecimal(0));
|
|
|
+ //删除排班记录
|
|
|
+ tmsComprehensiveResultMapper.updateCapacityDriver(map1);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 10)
|
|
|
+ public void searchInnerIdCardNo() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<OmsTransOrder> omsTransOrderList = omsTransOrderMapper.selectInnerOrder();
|
|
|
+ for(OmsTransOrder omsTransOrder : omsTransOrderList) {
|
|
|
+ Map<String, Object> map1 = new HashMap<>();
|
|
|
+ map1.put("icBh",omsTransOrder.getAlternateFields32());
|
|
|
+ Map<String,Object> map = dzFeign.getIdcards(map1);
|
|
|
+ BigDecimal driverId = null;
|
|
|
+ Object driverName = map.get("driverName");
|
|
|
+ if(driverName != null) {
|
|
|
+ String driverName1 = driverName.toString().split("国六|电动")[0];
|
|
|
+ map.put("driverName",driverName1);
|
|
|
+ }
|
|
|
+ //根据身份证号查找司机
|
|
|
+ try {
|
|
|
+ driverId = omsTransOrderMapper.selectDriverId(map);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ //根据司机姓名去查询身份证号
|
|
|
+ try {
|
|
|
+ String idCardNo = omsTransOrderMapper.getIdCardNo(map.get("driverName").toString());
|
|
|
+ map.put("identityCard",idCardNo);
|
|
|
+ driverId = omsTransOrderMapper.selectDriverId(map);
|
|
|
+ } catch (Exception exception) {
|
|
|
+ exception.printStackTrace();
|
|
|
+ }
|
|
|
+ log.error("该身份证对应多个司机。");
|
|
|
+ //return "该身份证对应多个司机。";
|
|
|
+ }
|
|
|
+ if (driverId == null) {
|
|
|
+ try {
|
|
|
+ String idCardNo = omsTransOrderMapper.getIdCardNo(map.get("driverName").toString());
|
|
|
+ map.put("identityCard",idCardNo);
|
|
|
+ driverId = omsTransOrderMapper.selectDriverId(map);
|
|
|
+ } catch (Exception exception) {
|
|
|
+ exception.printStackTrace();
|
|
|
+ }
|
|
|
+ log.error("该身份证未对应到司机");
|
|
|
+ //return "该身份证未对应到司机";
|
|
|
+ }
|
|
|
+ BigDecimal capacityId = null;
|
|
|
+ String reg = "((厂内|场内){0,1}[京津沪渝冀豫云辽黑湘皖鲁新苏浙赣鄂桂甘晋蒙陕吉闽贵粤青藏川宁琼]{1}[A-HJ-Z]{1}(([DF]{1}[A-HJ-NP-Z0-9]{1}[0-9]{4})|([0-9]{5}[DF]{1})|([A-HJ-NP-Z0-9]{5})))";
|
|
|
+ Pattern pattern = Pattern.compile(reg);
|
|
|
+ Matcher matcher = pattern.matcher(map.get("capacityNumber").toString().toUpperCase());
|
|
|
+ String capacityNo = null;
|
|
|
+ if(matcher.find()) {
|
|
|
+ capacityNo = matcher.group();
|
|
|
+ capacityId = omsTransOrderMapper.selectCapacityId(capacityNo);
|
|
|
+ }
|
|
|
+ omsTransOrder.setCapacityId(capacityId);
|
|
|
+ omsTransOrder.setDriverId(driverId);
|
|
|
+ entityDispose.disposeOmsTransOrder(omsTransOrder);
|
|
|
+ omsTransOrderMapper.updateByPrimaryKeySelective(omsTransOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60 * 5)
|
|
|
+ public int autoGenerateQingRequirement() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+ //生成清车底需求;
|
|
|
+ AmsTransRequirement amsTransRequirement = amsTransRequirementMapper.selectByPrimaryKey(new BigDecimal(1442083));
|
|
|
+ AmsRequirementChild amsRequirementChild = amsRequirementChildMapper.selectByPrimaryKey(new BigDecimal(1511586));
|
|
|
+ //新增
|
|
|
+ //生成白班需求
|
|
|
+ Calendar calendarBaiStart = Calendar.getInstance();
|
|
|
+ Calendar calendarBaiEnd = Calendar.getInstance();
|
|
|
+ calendarBaiStart.setTime(new Date());
|
|
|
+ calendarBaiStart.set(calendarBaiStart.get(Calendar.YEAR),calendarBaiStart.get(Calendar.MONTH),calendarBaiStart.get(Calendar.DAY_OF_MONTH),7,0,0);
|
|
|
+ calendarBaiEnd.set(calendarBaiStart.get(Calendar.YEAR),calendarBaiStart.get(Calendar.MONTH),calendarBaiStart.get(Calendar.DAY_OF_MONTH),19,0,0);
|
|
|
+ if(calendarBaiStart.getTime().compareTo(new Date()) <= 0) {
|
|
|
+ //return 0;
|
|
|
+ }else{
|
|
|
+ List<BigDecimal> transRequirementIds = amsTransRequirementMapper.selectQingRequirementIds(calendarBaiStart.getTime(),calendarBaiEnd.getTime());
|
|
|
+ if(transRequirementIds.size() > 0) {
|
|
|
+ //return 0;
|
|
|
+ }else{
|
|
|
+ amsTransRequirement.setTransRequirementId(amsTransRequirementMapper.nextId());
|
|
|
+ amsTransRequirement.setRequirementStartTime(calendarBaiStart.getTime());
|
|
|
+ amsTransRequirement.setRequirementEndTime(calendarBaiEnd.getTime());
|
|
|
+ amsTransRequirement.setRequirementType("白班");
|
|
|
+ amsTransRequirement.setDeleted(new BigDecimal(3));
|
|
|
+ amsTransRequirement.setInsertTime(new Date());
|
|
|
+ amsRequirementChild.setRequirementChildId(amsRequirementChildMapper.nextId());
|
|
|
+ amsRequirementChild.setTransRequirementId(amsTransRequirement.getTransRequirementId());
|
|
|
+ amsRequirementChild.setInsertTime(new Date());
|
|
|
+ amsTransRequirementMapper.insertSelective(amsTransRequirement);
|
|
|
+ amsRequirementChildMapper.insertSelective(amsRequirementChild);
|
|
|
+ };
|
|
|
+ }
|
|
|
+ //生成夜班需求
|
|
|
+ Calendar calendarYeStart = Calendar.getInstance();
|
|
|
+ Calendar calendarYeEnd = Calendar.getInstance();
|
|
|
+ calendarYeStart.setTime(new Date());
|
|
|
+ calendarYeStart.set(calendarYeStart.get(Calendar.YEAR),calendarYeStart.get(Calendar.MONTH),calendarYeStart.get(Calendar.DAY_OF_MONTH),19,0,0);
|
|
|
+ calendarYeEnd.set(calendarYeStart.get(Calendar.YEAR),calendarYeStart.get(Calendar.MONTH),calendarYeStart.get(Calendar.DAY_OF_MONTH) + 1,7,0,0);
|
|
|
+ if(calendarYeStart.getTime().compareTo(new Date()) <= 0) {
|
|
|
+ //return 0;
|
|
|
+ }else{
|
|
|
+ List<BigDecimal> transRequirementIdsYe = amsTransRequirementMapper.selectQingRequirementIds(calendarYeStart.getTime(),calendarYeEnd.getTime());
|
|
|
+ if(transRequirementIdsYe.size() > 0) {
|
|
|
+ }else{
|
|
|
+ amsTransRequirement.setTransRequirementId(amsTransRequirementMapper.nextId());
|
|
|
+ amsTransRequirement.setRequirementStartTime(calendarYeStart.getTime());
|
|
|
+ amsTransRequirement.setRequirementEndTime(calendarYeEnd.getTime());
|
|
|
+ amsTransRequirement.setRequirementType("夜班");
|
|
|
+ amsTransRequirement.setDeleted(new BigDecimal(3));
|
|
|
+ amsTransRequirement.setInsertTime(new Date());
|
|
|
+ amsRequirementChild.setRequirementChildId(amsRequirementChildMapper.nextId());
|
|
|
+ amsRequirementChild.setTransRequirementId(amsTransRequirement.getTransRequirementId());
|
|
|
+ amsRequirementChild.setInsertTime(new Date());
|
|
|
+ amsTransRequirementMapper.insertSelective(amsTransRequirement);
|
|
|
+ amsRequirementChildMapper.insertSelective(amsRequirementChild);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ return 1;
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 3)
|
|
|
+ public void autoDispatchDiaoChe() throws Exception {
|
|
|
+ //派清车底,优先派
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //白班
|
|
|
+ String requirementType = "白班";
|
|
|
+ List<Map<String,Object>> mapListRenGonBai = commonMapper.selectQingRequirement(requirementType);
|
|
|
+ for(int i = 0 ; i < mapListRenGonBai.size() ; i++) {
|
|
|
+ //查询今天该轮到谁
|
|
|
+ //数据
|
|
|
+ Map<String,Object> map = mapListRenGonBai.get(i);
|
|
|
+ // 判断是否判单
|
|
|
+ List<BigDecimal> orderList = commonMapper.getOrderListByChild(DataChange.dataToBigDecimal(map.get("requirementChildId")));
|
|
|
+ if(orderList != null && orderList.size() > 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //查询清车底的上一个排序是谁
|
|
|
+ Map<String,Object> lastCarInfo = commonMapper.getLastQingCar(requirementType);
|
|
|
+ int lastSqe = DataChange.dataToBigDecimal(lastCarInfo.get("sqe")).intValue();
|
|
|
+ Integer sort = lastSqe % 9 + 1;
|
|
|
+ //查询数据
|
|
|
+ List<Map<String,Object>> personnelIds = commonMapper.selectQingPersonnelId(sort,requirementType);
|
|
|
+ Map<String, Object> dispatchMap = new HashMap<>();
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("capacityTypeId",map.get("capacityTypeId"));
|
|
|
+ dispatchMap.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap.put("capacityTypeName",map.get("capacityTypeName"));
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("userName","系统");
|
|
|
+ dispatchMap.put("userId","系统");
|
|
|
+ dispatchMap.put("list",personnelIds);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //查询清车底的班次
|
|
|
+ //夜班
|
|
|
+ String requirementType1 = "夜班";
|
|
|
+ List<Map<String,Object>> mapListRenGonYe = commonMapper.selectQingRequirement(requirementType1);
|
|
|
+ for(int i = 0 ; i < mapListRenGonYe.size() ; i++) {
|
|
|
+ //查询今天该轮到谁
|
|
|
+ //数据
|
|
|
+ Map<String,Object> map = mapListRenGonYe.get(i);
|
|
|
+ // 判断是否判单
|
|
|
+ List<BigDecimal> orderList = commonMapper.getOrderListByChild(DataChange.dataToBigDecimal(map.get("requirementChildId")));
|
|
|
+ if(orderList != null && orderList.size() > 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //查询清车底的上一个排序是谁
|
|
|
+ Map<String,Object> lastCarInfo = commonMapper.getLastQingCar(requirementType1);
|
|
|
+ int lastSqe = DataChange.dataToBigDecimal(lastCarInfo.get("sqe")).intValue();
|
|
|
+ Integer sort = lastSqe % 9 + 1;
|
|
|
+ //查询数据
|
|
|
+ List<Map<String,Object>> personnelIds = commonMapper.selectQingPersonnelId(sort,requirementType1);
|
|
|
+ Map<String, Object> dispatchMap = new HashMap<>();
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("capacityTypeId",map.get("capacityTypeId"));
|
|
|
+ dispatchMap.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap.put("capacityTypeName",map.get("capacityTypeName"));
|
|
|
+ dispatchMap.put("userName","系统");
|
|
|
+ dispatchMap.put("userId","系统");
|
|
|
+ dispatchMap.put("list",personnelIds);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //派吊车,查询未派发的站台装卸需求;---上站卸货
|
|
|
+ List<Map<String,Object>> mapList = commonMapper.selectNoDispatchRequirementZtZx();
|
|
|
+ //获取长度及序号
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ // 判断是否判单
|
|
|
+ List<BigDecimal> orderList = commonMapper.getOrderListByChild(DataChange.dataToBigDecimal(map.get("requirementChildId")));
|
|
|
+ if(orderList != null && orderList.size() > 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BigDecimal capacityTypeId = DataChange.dataToBigDecimal(map.get("capacityTypeId"));
|
|
|
+ Date requirementStartTime = DataChange.dataToDate(map.get("requirementStartTime"));
|
|
|
+ Date requirementEndTime = DataChange.dataToDate(map.get("requirementEndTime"));
|
|
|
+ Calendar startTimeCal = Calendar.getInstance();
|
|
|
+ startTimeCal.setTime(requirementStartTime);
|
|
|
+ Calendar endTimeCal = Calendar.getInstance();
|
|
|
+ endTimeCal.setTime(requirementEndTime);
|
|
|
+ // 获取开始时间
|
|
|
+ int startHours = startTimeCal.get(Calendar.HOUR_OF_DAY);
|
|
|
+ // 获取结束时间
|
|
|
+ int endHours = endTimeCal.get(Calendar.HOUR_OF_DAY);
|
|
|
+ List<Integer> startArrayList1 = Arrays.asList(7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19);
|
|
|
+ List<Integer> endArrayList1 = Arrays.asList(7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19);
|
|
|
+ List<Integer> startArrayList2 = Arrays.asList(19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6);
|
|
|
+ List<Integer> endArrayList2 = Arrays.asList(19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7,8);
|
|
|
+ //如果开始时间大于七点,并且结束时间小于19点,就是早班
|
|
|
+ String flag = "";
|
|
|
+ if(startArrayList1.contains(startHours) && endArrayList1.contains(endHours)) {
|
|
|
+ flag = "白班";
|
|
|
+ }
|
|
|
+ if(startArrayList2.contains(startHours) && endArrayList2.contains(endHours)) {
|
|
|
+ flag = "夜班";
|
|
|
+ }
|
|
|
+ String personnelNo = map.get("personnelNo").toString();
|
|
|
+ if("无".equals(personnelNo)) {
|
|
|
+ //不需要吊挂工;
|
|
|
+ personnelNo = "0";
|
|
|
+ }
|
|
|
+ BigDecimal personnelNumber = DataChange.dataToBigDecimal(personnelNo);
|
|
|
+ if("白班".equals(flag)) {
|
|
|
+ //匹配甲班、空闲中的、运力、司机数据
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ objectObjectHashMap.put("shift","白班");
|
|
|
+ // 查询所有运力
|
|
|
+ List<Map<String,Object>> capacityInfoList = commonMapper.getCapacityMes(objectObjectHashMap);
|
|
|
+ String clFlag = "";
|
|
|
+ if(capacityInfoList.size() > 0 && capacityInfoList.get(0).get("capacityInnerNumber").toString().contains("甲")) {
|
|
|
+ clFlag = "甲";
|
|
|
+ }else{
|
|
|
+ clFlag = "乙";
|
|
|
+ }
|
|
|
+ Map<String,Object> lastCarInfo = commonMapper.getLastCarInfo(clFlag);
|
|
|
+ int lastSqe = DataChange.dataToBigDecimal(lastCarInfo.get("sqe")).intValue();
|
|
|
+ Map<String,Object> capacityMesMap = new HashMap<>();
|
|
|
+ int k = 0;
|
|
|
+ for(int j = lastSqe % 9 + 1 ; j <= 9 && k <= 9; j = j % 9 + 1 ) {
|
|
|
+ for(int i = 0 ; i < capacityInfoList.size() ; i++) {
|
|
|
+ //遍历第一个数,是lastSqe后的第一个数
|
|
|
+ int lastSqeCpa = DataChange.dataToBigDecimal(capacityInfoList.get(i).get("sort")).intValue();
|
|
|
+ if(lastSqeCpa == j) {
|
|
|
+ Map<String,Object> capacityInfoMap = capacityInfoList.get(i);
|
|
|
+ BigDecimal capacityId = DataChange.dataToBigDecimal(capacityInfoMap.get("capacityId"));
|
|
|
+ BigDecimal driverId = DataChange.dataToBigDecimal(capacityInfoMap.get("driverId"));
|
|
|
+ BigDecimal sort = DataChange.dataToBigDecimal(capacityInfoMap.get("sort"));
|
|
|
+ String schStatus = capacityInfoMap.get("schStatus").toString();
|
|
|
+ if(!"正常".equals(schStatus)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //判断车辆是否作业状态
|
|
|
+ int countOrder = commonMapper.getCapacityStatus(capacityId);
|
|
|
+ int countOrderZcp = commonMapper.getCapacityStatusZcp(capacityId);
|
|
|
+ if(countOrder > 0 && countOrder != countOrderZcp) {
|
|
|
+ //装车皮业务与所有业务都相等,说明可以继续派车
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int driverCountOrder = commonMapper.getDriverStatus(driverId);
|
|
|
+ int driverCountOrderZcp = commonMapper.getDriverStatusZcp(driverId);
|
|
|
+ if(driverCountOrder > 0 && driverCountOrderZcp != driverCountOrder) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ capacityMesMap = capacityInfoMap;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ k++;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> tableList = new ArrayList<>();
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ Map<String, Object> dispatchMap = new HashMap<>();
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ dispatchMap.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap.put("capacityTypeName",map.get("capacityTypeName"));
|
|
|
+ dispatchMap.put("userName","系统");
|
|
|
+ dispatchMap.put("userId","系统");
|
|
|
+ //如果是一个人
|
|
|
+ tableList.add(capacityMesMap);
|
|
|
+ dispatchMap.put("list",tableList);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //上面去派车,下面是派人工
|
|
|
+ Map<String, Object> dispatchMap1 = new HashMap<>();
|
|
|
+ dispatchMap1.put("carrierId",37019);
|
|
|
+ dispatchMap1.put("capacityTypeId",969904);
|
|
|
+ dispatchMap1.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap1.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap1.put("capacityTypeName","业务处人工队");
|
|
|
+ dispatchMap1.put("userName","系统");
|
|
|
+ dispatchMap1.put("userId","系统");
|
|
|
+ Map<String,Object> alternateFields11Map = commonMapper.getZhiHuiGongId(capacityMesMap.get("capacityId"));
|
|
|
+ List<Map<String,Object>> diaoGuaGongIds = commonMapper.getDiaoGuaGongIds(capacityMesMap.get("capacityId"),personnelNumber);
|
|
|
+ List<Map<String,Object>> tableList1 = new ArrayList<>();
|
|
|
+ if(alternateFields11Map != null) {
|
|
|
+ tableList1.add(alternateFields11Map);
|
|
|
+ }
|
|
|
+ if(diaoGuaGongIds != null && diaoGuaGongIds.size() > 0) {
|
|
|
+ tableList1.addAll(diaoGuaGongIds);
|
|
|
+ }
|
|
|
+ dispatchMap1.put("list",tableList1);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap1);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //指挥工
|
|
|
+ }else if("夜班".equals(flag)) {
|
|
|
+ //匹配甲班、空闲中的、运力、司机数据
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ objectObjectHashMap.put("shift","夜班");
|
|
|
+ // 查询所有运力
|
|
|
+ List<Map<String,Object>> capacityInfoList = commonMapper.getCapacityMes(objectObjectHashMap);
|
|
|
+ String clFlag = "";
|
|
|
+ if(capacityInfoList.size() > 0 && capacityInfoList.get(0).get("capacityInnerNumber").toString().contains("甲")) {
|
|
|
+ clFlag = "甲";
|
|
|
+ }else{
|
|
|
+ clFlag = "乙";
|
|
|
+ }
|
|
|
+ Map<String,Object> lastCarInfo = commonMapper.getLastCarInfo(clFlag);
|
|
|
+ int lastSqe = DataChange.dataToBigDecimal(lastCarInfo.get("sqe")).intValue();
|
|
|
+ Map<String,Object> capacityMesMap = new HashMap<>();
|
|
|
+ int k = 0;
|
|
|
+ for(int j = lastSqe % 9 + 1 ; j <= 9 && k <= 9; j = j % 9 + 1 ) {
|
|
|
+ for(int i = 0 ; i < capacityInfoList.size() ; i++) {
|
|
|
+ //遍历第一个数,是lastSqe后的第一个数
|
|
|
+ int lastSqeCpa = DataChange.dataToBigDecimal(capacityInfoList.get(i).get("sort")).intValue();
|
|
|
+ if(lastSqeCpa == j) {
|
|
|
+ Map<String,Object> capacityInfoMap = capacityInfoList.get(i);
|
|
|
+ BigDecimal capacityId = DataChange.dataToBigDecimal(capacityInfoMap.get("capacityId"));
|
|
|
+ BigDecimal driverId = DataChange.dataToBigDecimal(capacityInfoMap.get("driverId"));
|
|
|
+ BigDecimal sort = DataChange.dataToBigDecimal(capacityInfoMap.get("sort"));
|
|
|
+ String schStatus = capacityInfoMap.get("schStatus").toString();
|
|
|
+ if(!"正常".equals(schStatus)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //判断车辆是否作业状态
|
|
|
+ int countOrder = commonMapper.getCapacityStatus(capacityId);
|
|
|
+ int countOrderZcp = commonMapper.getCapacityStatusZcp(capacityId);
|
|
|
+ if(countOrder > 0 && countOrder != countOrderZcp) {
|
|
|
+ //装车皮业务与所有业务都相等,说明可以继续派车
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int driverCountOrder = commonMapper.getDriverStatus(driverId);
|
|
|
+ int driverCountOrderZcp = commonMapper.getDriverStatusZcp(driverId);
|
|
|
+ if(driverCountOrder > 0 && driverCountOrderZcp != driverCountOrder) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ capacityMesMap = capacityInfoMap;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ k++;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> tableList = new ArrayList<>();
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ Map<String, Object> dispatchMap = new HashMap<>();
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ dispatchMap.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap.put("capacityTypeName",map.get("capacityTypeName"));
|
|
|
+ dispatchMap.put("userName","系统");
|
|
|
+ dispatchMap.put("userId","系统");
|
|
|
+ //如果是一个人
|
|
|
+ tableList.add(capacityMesMap);
|
|
|
+ dispatchMap.put("list",tableList);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //上面去派车,下面是派人工
|
|
|
+ Map<String, Object> dispatchMap1 = new HashMap<>();
|
|
|
+ dispatchMap1.put("carrierId",37019);
|
|
|
+ dispatchMap1.put("capacityTypeId",969904);
|
|
|
+ dispatchMap1.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap1.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap1.put("capacityTypeName","业务处人工队");
|
|
|
+ dispatchMap1.put("userName","系统");
|
|
|
+ dispatchMap1.put("userId","系统");
|
|
|
+ Map<String,Object> alternateFields11Map = commonMapper.getZhiHuiGongId(capacityMesMap.get("capacityId"));
|
|
|
+ List<Map<String,Object>> diaoGuaGongIds = commonMapper.getDiaoGuaGongIds(capacityMesMap.get("capacityId"),personnelNumber);
|
|
|
+ List<Map<String,Object>> tableList1 = new ArrayList<>();
|
|
|
+ if(alternateFields11Map != null) {
|
|
|
+ tableList1.add(alternateFields11Map);
|
|
|
+ }
|
|
|
+ if(diaoGuaGongIds != null && diaoGuaGongIds.size() > 0) {
|
|
|
+ tableList1.addAll(diaoGuaGongIds);
|
|
|
+ }
|
|
|
+ dispatchMap1.put("list",tableList1);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap1);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 派发装车皮
|
|
|
+ List<Map<String,Object>> mapListZcp = commonMapper.selectZcpNoDispatchRequirementZtZx();
|
|
|
+ //获取长度及序号
|
|
|
+ for(Map<String,Object> map : mapListZcp) {
|
|
|
+ // 判断是否判单
|
|
|
+ List<BigDecimal> orderList = commonMapper.getOrderListByChild(DataChange.dataToBigDecimal(map.get("requirementChildId")));
|
|
|
+ if(orderList != null && orderList.size() > 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BigDecimal capacityTypeId = DataChange.dataToBigDecimal(map.get("capacityTypeId"));
|
|
|
+ Date requirementStartTime = DataChange.dataToDate(map.get("requirementStartTime"));
|
|
|
+ Date requirementEndTime = DataChange.dataToDate(map.get("requirementEndTime"));
|
|
|
+ Calendar startTimeCal = Calendar.getInstance();
|
|
|
+ startTimeCal.setTime(requirementStartTime);
|
|
|
+ Calendar endTimeCal = Calendar.getInstance();
|
|
|
+ endTimeCal.setTime(requirementEndTime);
|
|
|
+ // 获取开始时间
|
|
|
+ int startHours = startTimeCal.get(Calendar.HOUR_OF_DAY);
|
|
|
+ // 获取结束时间
|
|
|
+ int endHours = endTimeCal.get(Calendar.HOUR_OF_DAY);
|
|
|
+ List<Integer> startArrayList1 = Arrays.asList(7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19);
|
|
|
+ List<Integer> endArrayList1 = Arrays.asList(7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19);
|
|
|
+ List<Integer> startArrayList2 = Arrays.asList(19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6);
|
|
|
+ List<Integer> endArrayList2 = Arrays.asList(19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7,8);
|
|
|
+ //如果开始时间大于七点,并且结束时间小于19点,就是早班
|
|
|
+ String flag = "";
|
|
|
+ if(startArrayList1.contains(startHours) && endArrayList1.contains(endHours)) {
|
|
|
+ flag = "白班";
|
|
|
+ }
|
|
|
+ if(startArrayList2.contains(startHours) && endArrayList2.contains(endHours)) {
|
|
|
+ flag = "夜班";
|
|
|
+ }
|
|
|
+ String personnelNo = map.get("personnelNo").toString();
|
|
|
+ if("无".equals(personnelNo)) {
|
|
|
+ //不需要吊挂工;
|
|
|
+ personnelNo = "0";
|
|
|
+ }
|
|
|
+ BigDecimal personnelNumber = DataChange.dataToBigDecimal(personnelNo);
|
|
|
+ if("白班".equals(flag)) {
|
|
|
+ //匹配甲班、空闲中的、运力、司机数据
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ objectObjectHashMap.put("shift","白班");
|
|
|
+ // 查询所有运力
|
|
|
+ List<Map<String,Object>> capacityInfoList = commonMapper.getCapacityMes(objectObjectHashMap);
|
|
|
+ String clFlag = "";
|
|
|
+ if(capacityInfoList.size() > 0 && capacityInfoList.get(0).get("capacityInnerNumber").toString().contains("甲")) {
|
|
|
+ clFlag = "甲";
|
|
|
+ }else{
|
|
|
+ clFlag = "乙";
|
|
|
+ }
|
|
|
+ Map<String,Object> lastCarInfo = commonMapper.getZcpLastCarInfo(clFlag);
|
|
|
+ int lastSqe = DataChange.dataToBigDecimal(lastCarInfo.get("sqe")).intValue();
|
|
|
+ Map<String,Object> capacityMesMap = new HashMap<>();
|
|
|
+ int k = 0 ;
|
|
|
+ for(int j = lastSqe % 9 + 1 ; j <= 9 && k <= 9; j = j % 9 + 1) {
|
|
|
+ for(int i = 0 ; i < capacityInfoList.size() ; i++) {
|
|
|
+ //遍历第一个数,是lastSqe后的第一个数
|
|
|
+ int lastSqeCpa = DataChange.dataToBigDecimal(capacityInfoList.get(i).get("sort")).intValue();
|
|
|
+ if(lastSqeCpa == j) {
|
|
|
+ Map<String,Object> capacityInfoMap = capacityInfoList.get(i);
|
|
|
+ BigDecimal capacityId = DataChange.dataToBigDecimal(capacityInfoMap.get("capacityId"));
|
|
|
+ BigDecimal driverId = DataChange.dataToBigDecimal(capacityInfoMap.get("driverId"));
|
|
|
+ BigDecimal sort = DataChange.dataToBigDecimal(capacityInfoMap.get("sort"));
|
|
|
+ String schStatus = capacityInfoMap.get("schStatus").toString();
|
|
|
+ if(!"正常".equals(schStatus)) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ //判断车辆是否作业状态
|
|
|
+ int countOrder = commonMapper.getCapacityStatus(capacityId);
|
|
|
+ if(countOrder > 0) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ int driverCountOrder = commonMapper.getDriverStatus(driverId);
|
|
|
+ if(driverCountOrder > 0) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ capacityMesMap = capacityInfoMap;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ k++;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> tableList = new ArrayList<>();
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ Map<String, Object> dispatchMap = new HashMap<>();
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ dispatchMap.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap.put("capacityTypeName",map.get("capacityTypeName"));
|
|
|
+ dispatchMap.put("userName","系统");
|
|
|
+ dispatchMap.put("userId","系统");
|
|
|
+ //如果是一个人
|
|
|
+ tableList.add(capacityMesMap);
|
|
|
+ dispatchMap.put("list",tableList);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //上面去派车,下面是派人工
|
|
|
+ Map<String, Object> dispatchMap1 = new HashMap<>();
|
|
|
+ dispatchMap1.put("carrierId",37019);
|
|
|
+ dispatchMap1.put("capacityTypeId",969904);
|
|
|
+ dispatchMap1.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap1.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap1.put("capacityTypeName","业务处人工队");
|
|
|
+ dispatchMap1.put("userName","系统");
|
|
|
+ dispatchMap1.put("userId","系统");
|
|
|
+ Map<String,Object> alternateFields11Map = commonMapper.getZhiHuiGongId(capacityMesMap.get("capacityId"));
|
|
|
+ List<Map<String,Object>> diaoGuaGongIds = commonMapper.getDiaoGuaGongIds(capacityMesMap.get("capacityId"),personnelNumber);
|
|
|
+ List<Map<String,Object>> tableList1 = new ArrayList<>();
|
|
|
+ if(alternateFields11Map != null) {
|
|
|
+ tableList1.add(alternateFields11Map);
|
|
|
+ }
|
|
|
+ if(diaoGuaGongIds != null && diaoGuaGongIds.size() > 0) {
|
|
|
+ tableList1.addAll(diaoGuaGongIds);
|
|
|
+ }
|
|
|
+ dispatchMap1.put("list",tableList1);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap1);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //指挥工
|
|
|
+ }else if("夜班".equals(flag)) {
|
|
|
+ //匹配甲班、空闲中的、运力、司机数据
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ objectObjectHashMap.put("shift","夜班");
|
|
|
+ // 查询所有运力
|
|
|
+ String clFlag = "";
|
|
|
+ List<Map<String,Object>> capacityInfoList = commonMapper.getCapacityMes(objectObjectHashMap);
|
|
|
+ if(capacityInfoList.size() > 0 && capacityInfoList.get(0).get("capacityInnerNumber").toString().contains("甲")) {
|
|
|
+ clFlag = "甲";
|
|
|
+ }else{
|
|
|
+ clFlag = "乙";
|
|
|
+ }
|
|
|
+ Map<String,Object> lastCarInfo = commonMapper.getZcpLastCarInfo(clFlag);
|
|
|
+ int lastSqe = DataChange.dataToBigDecimal(lastCarInfo.get("sqe")).intValue();
|
|
|
+ Map<String,Object> capacityMesMap = new HashMap<>();
|
|
|
+ int k = 0;
|
|
|
+ for(int j = lastSqe % 9 + 1 ; j <= 9 && k<=9; j = j % 9 + 1) {
|
|
|
+ for(int i = 0 ; i < capacityInfoList.size() ; i++) {
|
|
|
+ //遍历第一个数,是lastSqe后的第一个数
|
|
|
+ int lastSqeCpa = DataChange.dataToBigDecimal(capacityInfoList.get(i).get("sort")).intValue();
|
|
|
+ if(lastSqeCpa == j) {
|
|
|
+ Map<String,Object> capacityInfoMap = capacityInfoList.get(i);
|
|
|
+ BigDecimal capacityId = DataChange.dataToBigDecimal(capacityInfoMap.get("capacityId"));
|
|
|
+ BigDecimal driverId = DataChange.dataToBigDecimal(capacityInfoMap.get("driverId"));
|
|
|
+ BigDecimal sort = DataChange.dataToBigDecimal(capacityInfoMap.get("sort"));
|
|
|
+ String schStatus = capacityInfoMap.get("schStatus").toString();
|
|
|
+ if(!"正常".equals(schStatus)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //判断车辆是否作业状态
|
|
|
+ int countOrder = commonMapper.getCapacityStatus(capacityId);
|
|
|
+ if(countOrder > 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int driverCountOrder = commonMapper.getDriverStatus(driverId);
|
|
|
+ if(driverCountOrder > 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ capacityMesMap = capacityInfoMap;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ k++;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> tableList = new ArrayList<>();
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ Map<String, Object> dispatchMap = new HashMap<>();
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ dispatchMap.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap.put("capacityTypeName",map.get("capacityTypeName"));
|
|
|
+ dispatchMap.put("userName","系统");
|
|
|
+ dispatchMap.put("userId","系统");
|
|
|
+ //如果是一个人
|
|
|
+ tableList.add(capacityMesMap);
|
|
|
+ dispatchMap.put("list",tableList);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //上面去派车,下面是派人工
|
|
|
+ Map<String, Object> dispatchMap1 = new HashMap<>();
|
|
|
+ dispatchMap1.put("carrierId",37019);
|
|
|
+ dispatchMap1.put("capacityTypeId",969904);
|
|
|
+ dispatchMap1.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap1.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap1.put("capacityTypeName","业务处人工队");
|
|
|
+ dispatchMap1.put("userName","系统");
|
|
|
+ dispatchMap1.put("userId","系统");
|
|
|
+ Map<String,Object> alternateFields11Map = commonMapper.getZhiHuiGongId(capacityMesMap.get("capacityId"));
|
|
|
+ List<Map<String,Object>> diaoGuaGongIds = commonMapper.getDiaoGuaGongIds(capacityMesMap.get("capacityId"),personnelNumber);
|
|
|
+ List<Map<String,Object>> tableList1 = new ArrayList<>();
|
|
|
+ if(alternateFields11Map != null) {
|
|
|
+ tableList1.add(alternateFields11Map);
|
|
|
+ }
|
|
|
+ if(diaoGuaGongIds != null && diaoGuaGongIds.size() > 0) {
|
|
|
+ tableList1.addAll(diaoGuaGongIds);
|
|
|
+ }
|
|
|
+ dispatchMap1.put("list",tableList1);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap1);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //派吊车,查询未派发的外出需求;
|
|
|
+ List<Map<String,Object>> map1List = commonMapper.selectNoDispatchRequirement();
|
|
|
+ for(Map<String,Object> map : map1List) {
|
|
|
+ // 判断是否判单
|
|
|
+ List<BigDecimal> orderList = commonMapper.getOrderListByChild(DataChange.dataToBigDecimal(map.get("requirementChildId")));
|
|
|
+ if(orderList != null && orderList.size() > 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BigDecimal capacityTypeId = DataChange.dataToBigDecimal(map.get("capacityTypeId"));
|
|
|
+ Date requirementStartTime = DataChange.dataToDate(map.get("requirementStartTime"));
|
|
|
+ Date requirementEndTime = DataChange.dataToDate(map.get("requirementEndTime"));
|
|
|
+ Calendar startTimeCal = Calendar.getInstance();
|
|
|
+ startTimeCal.setTime(requirementStartTime);
|
|
|
+ Calendar endTimeCal = Calendar.getInstance();
|
|
|
+ endTimeCal.setTime(requirementEndTime);
|
|
|
+ // 获取开始时间
|
|
|
+ int startHours = startTimeCal.get(Calendar.HOUR_OF_DAY);
|
|
|
+ // 获取结束时间
|
|
|
+ int endHours = endTimeCal.get(Calendar.HOUR_OF_DAY);
|
|
|
+ List<Integer> startArrayList1 = Arrays.asList(7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19);
|
|
|
+ List<Integer> endArrayList1 = Arrays.asList(7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19);
|
|
|
+ List<Integer> startArrayList2 = Arrays.asList(19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6);
|
|
|
+ List<Integer> endArrayList2 = Arrays.asList(19, 20, 21, 22, 23, 24, 0, 1, 2, 3, 4, 5, 6, 7,8);
|
|
|
+ //如果开始时间大于七点,并且结束时间小于19点,就是早班
|
|
|
+ String flag = "";
|
|
|
+ if(startArrayList1.contains(startHours) && endArrayList1.contains(endHours)) {
|
|
|
+ flag = "白班";
|
|
|
+ }
|
|
|
+ if(startArrayList2.contains(startHours) && endArrayList2.contains(endHours)) {
|
|
|
+ flag = "夜班";
|
|
|
+ }
|
|
|
+ String personnelNo = map.get("personnelNo").toString();
|
|
|
+ if("无".equals(personnelNo)) {
|
|
|
+ //不需要吊挂工;
|
|
|
+ personnelNo = "0";
|
|
|
+ }
|
|
|
+ BigDecimal personnelNumber = DataChange.dataToBigDecimal(personnelNo);
|
|
|
+ if("白班".equals(flag)) {
|
|
|
+ //匹配甲班、空闲中的、运力、司机数据
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ objectObjectHashMap.put("shift","白班");
|
|
|
+ objectObjectHashMap.put("allShift","1");
|
|
|
+ //获取长白班车辆,优先派长白班
|
|
|
+ List<Map<String,Object>> capacityInfoListCbb = commonMapper.getCbbCapacityMes(objectObjectHashMap);
|
|
|
+ Map<String,Object> capacityMesMap = new HashMap<>();
|
|
|
+ for(int i = 0 ; i < capacityInfoListCbb.size() ; i++) {
|
|
|
+ if(personnelNumber.compareTo(BigDecimal.ZERO) == 1) {
|
|
|
+ //如果需要人工,则不能派长白班吊车
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //遍历第一个数,是lastsqe后的第一个数
|
|
|
+ Map<String,Object> capacityInfoMap = capacityInfoListCbb.get(i);
|
|
|
+ BigDecimal capacityId = DataChange.dataToBigDecimal(capacityInfoMap.get("capacityId"));
|
|
|
+ BigDecimal driverId = DataChange.dataToBigDecimal(capacityInfoMap.get("driverId"));
|
|
|
+ BigDecimal sort = DataChange.dataToBigDecimal(capacityInfoMap.get("sort"));
|
|
|
+ String schStatus = capacityInfoMap.get("schStatus").toString();
|
|
|
+ if(!"正常".equals(schStatus)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //判断车辆是否作业状态
|
|
|
+ int countOrder = commonMapper.getWcCapacityStatus(capacityId);
|
|
|
+ int countOrderZcp = commonMapper.getCapacityStatusZcp(capacityId);
|
|
|
+ if(countOrder > 0 && countOrder != countOrderZcp) {
|
|
|
+ //装车皮业务与所有业务都相等,说明可以继续派车
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int driverCountOrder = commonMapper.getDriverStatus(driverId);
|
|
|
+ int driverCountOrderZcp = commonMapper.getDriverStatusZcp(driverId);
|
|
|
+ if(driverCountOrder > 0 && driverCountOrderZcp != driverCountOrder) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ capacityMesMap = capacityInfoMap;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ if(capacityMesMap.get("driverId") == null) {
|
|
|
+ List<Map<String,Object>> capacityInfoList = commonMapper.getCapacityMes(objectObjectHashMap);
|
|
|
+ String clFlag = "";
|
|
|
+ if(capacityInfoList.size() > 0 && capacityInfoList.get(0).get("capacityInnerNumber").toString().contains("甲")) {
|
|
|
+ clFlag = "甲";
|
|
|
+ }else{
|
|
|
+ clFlag = "乙";
|
|
|
+ }
|
|
|
+ Map<String,Object> lastCarInfo = commonMapper.getLastCarInfoJx(clFlag);
|
|
|
+ int lastSqe = DataChange.dataToBigDecimal(lastCarInfo.get("sqe")).intValue();
|
|
|
+ for(int i = 0 ; i < capacityInfoList.size() ; i++) {
|
|
|
+ //遍历第一个数,是lastsqe后的第一个数
|
|
|
+ Map<String,Object> capacityInfoMap = null;
|
|
|
+ try {
|
|
|
+ capacityInfoMap = capacityInfoList.get((lastSqe + i) % capacityInfoList.size());
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BigDecimal capacityId = DataChange.dataToBigDecimal(capacityInfoMap.get("capacityId"));
|
|
|
+ BigDecimal driverId = DataChange.dataToBigDecimal(capacityInfoMap.get("driverId"));
|
|
|
+ BigDecimal sort = DataChange.dataToBigDecimal(capacityInfoMap.get("sort"));
|
|
|
+ String schStatus = capacityInfoMap.get("schStatus").toString();
|
|
|
+ if(!"正常".equals(schStatus)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //判断车辆是否作业状态
|
|
|
+ int countOrder = commonMapper.getCapacityStatus(capacityId);
|
|
|
+ int countOrderZcp = commonMapper.getCapacityStatusZcp(capacityId);
|
|
|
+ if(countOrder > 0 && countOrder != countOrderZcp) {
|
|
|
+ //装车皮业务与所有业务都相等,说明可以继续派车
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int driverCountOrder = commonMapper.getDriverStatus(driverId);
|
|
|
+ int driverCountOrderZcp = commonMapper.getDriverStatusZcp(driverId);
|
|
|
+ if(driverCountOrder > 0 && driverCountOrderZcp != driverCountOrder) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ capacityMesMap = capacityInfoMap;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> tableList = new ArrayList<>();
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ Map<String, Object> dispatchMap = new HashMap<>();
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ dispatchMap.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap.put("capacityTypeName",map.get("capacityTypeName"));
|
|
|
+ dispatchMap.put("userName","系统");
|
|
|
+ dispatchMap.put("userId","系统");
|
|
|
+ //如果是一个人
|
|
|
+ tableList.add(capacityMesMap);
|
|
|
+ dispatchMap.put("list",tableList);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //上面去派车,下面是派人工
|
|
|
+ Map<String, Object> dispatchMap1 = new HashMap<>();
|
|
|
+ dispatchMap1.put("carrierId",37019);
|
|
|
+ dispatchMap1.put("capacityTypeId",969904);
|
|
|
+ dispatchMap1.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap1.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap1.put("capacityTypeName","业务处人工队");
|
|
|
+ dispatchMap1.put("userName","系统");
|
|
|
+ dispatchMap1.put("userId","系统");
|
|
|
+ Map<String,Object> alternateFields11Map = commonMapper.getZhiHuiGongId(capacityMesMap.get("capacityId"));
|
|
|
+ List<Map<String,Object>> diaoGuaGongIds = commonMapper.getDiaoGuaGongIds(capacityMesMap.get("capacityId"),personnelNumber);
|
|
|
+ List<Map<String,Object>> tableList1 = new ArrayList<>();
|
|
|
+ if(alternateFields11Map != null) {
|
|
|
+ tableList1.add(alternateFields11Map);
|
|
|
+ }
|
|
|
+ if(diaoGuaGongIds != null && diaoGuaGongIds.size() > 0) {
|
|
|
+ tableList1.addAll(diaoGuaGongIds);
|
|
|
+ }
|
|
|
+ dispatchMap1.put("list",tableList1);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap1);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //指挥工
|
|
|
+ }else if("夜班".equals(flag)) {
|
|
|
+ //匹配甲班、空闲中的、运力、司机数据
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ objectObjectHashMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ objectObjectHashMap.put("shift","夜班");
|
|
|
+ List<Map<String,Object>> capacityInfoList = commonMapper.getCapacityMes(objectObjectHashMap);
|
|
|
+ if(capacityInfoList == null || capacityInfoList.size() == 0) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ String clFlag = "";
|
|
|
+ if(capacityInfoList.size() > 0 && capacityInfoList.get(0).get("capacityInnerNumber").toString().contains("甲")) {
|
|
|
+ clFlag = "甲";
|
|
|
+ }else{
|
|
|
+ clFlag = "乙";
|
|
|
+ }
|
|
|
+ Map<String,Object> lastCarInfo = commonMapper.getLastCarInfoJx(clFlag);
|
|
|
+ int lastSqe = DataChange.dataToBigDecimal(lastCarInfo.get("sqe")).intValue();
|
|
|
+ Map<String,Object> capacityMesMap = new HashMap<>();
|
|
|
+ for(int i = 0 ; i < capacityInfoList.size() ; i++) {
|
|
|
+ //遍历第一个数,是lastsqe后的第一个数
|
|
|
+ Map<String,Object> capacityInfoMap = null;
|
|
|
+ try {
|
|
|
+ capacityInfoMap = capacityInfoList.get((lastSqe + i) % capacityInfoList.size() );
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ BigDecimal capacityId = DataChange.dataToBigDecimal(capacityInfoMap.get("capacityId"));
|
|
|
+ BigDecimal driverId = DataChange.dataToBigDecimal(capacityInfoMap.get("driverId"));
|
|
|
+ BigDecimal sort = DataChange.dataToBigDecimal(capacityInfoMap.get("sort"));
|
|
|
+ String schStatus = capacityInfoMap.get("schStatus").toString();
|
|
|
+ if(!"正常".equals(schStatus)) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ //判断车辆是否作业状态
|
|
|
+ int countOrder = commonMapper.getWcCapacityStatus(capacityId);
|
|
|
+ int countOrderZcp = commonMapper.getCapacityStatusZcp(capacityId);
|
|
|
+ if(countOrder > 0 && countOrder != countOrderZcp) {
|
|
|
+ //装车皮业务与所有业务都相等,说明可以继续派车
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ int driverCountOrder = commonMapper.getDriverStatus(driverId);
|
|
|
+ int driverCountOrderZcp = commonMapper.getDriverStatusZcp(driverId);
|
|
|
+ if(driverCountOrder > 0 && driverCountOrderZcp != driverCountOrder) {
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ capacityMesMap = capacityInfoMap;
|
|
|
+ break;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> tableList = new ArrayList<>();
|
|
|
+ if(capacityMesMap.size() > 0) {
|
|
|
+ Map<String, Object> dispatchMap = new HashMap<>();
|
|
|
+ dispatchMap.put("carrierId",37019);
|
|
|
+ dispatchMap.put("capacityTypeId",capacityTypeId);
|
|
|
+ dispatchMap.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap.put("capacityTypeName",map.get("capacityTypeName"));
|
|
|
+ dispatchMap.put("userName","系统");
|
|
|
+ dispatchMap.put("userId","系统");
|
|
|
+ //如果是一个人
|
|
|
+ tableList.add(capacityMesMap);
|
|
|
+ dispatchMap.put("list",tableList);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ //上面去派车,下面是派人工
|
|
|
+ Map<String, Object> dispatchMap1 = new HashMap<>();
|
|
|
+ dispatchMap1.put("carrierId",37019);
|
|
|
+ dispatchMap1.put("capacityTypeId",969904);
|
|
|
+ dispatchMap1.put("requirementChildId",map.get("requirementChildId"));
|
|
|
+ dispatchMap1.put("businessType",map.get("businessType"));
|
|
|
+ dispatchMap1.put("capacityTypeName","业务处人工队");
|
|
|
+ dispatchMap1.put("userName","系统");
|
|
|
+ dispatchMap1.put("userId","系统");
|
|
|
+ Map<String,Object> alternateFields11Map = commonMapper.getZhiHuiGongId(capacityMesMap.get("capacityId"));
|
|
|
+ List<Map<String,Object>> diaoGuaGongIds = commonMapper.getDiaoGuaGongIds(capacityMesMap.get("capacityId"),personnelNumber);
|
|
|
+ List<Map<String,Object>> tableList1 = new ArrayList<>();
|
|
|
+ if(alternateFields11Map != null) {
|
|
|
+ tableList1.add(alternateFields11Map);
|
|
|
+ }
|
|
|
+ if(diaoGuaGongIds != null && diaoGuaGongIds.size() > 0) {
|
|
|
+ tableList1.addAll(diaoGuaGongIds);
|
|
|
+ }
|
|
|
+ dispatchMap1.put("list",tableList1);
|
|
|
+ try {
|
|
|
+ omsTransOrderService.dispatchTask(dispatchMap1);
|
|
|
+ } catch (Exception e) {
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ continue;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60)
|
|
|
+ //@PostMapping("getDbInnerResult")
|
|
|
+ public void syncDbInnerResult() {
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ List<Map<String,Object>> mapList = dzFeign.getDbInnerResult(objectObjectHashMap);
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ omsTransOrderService.syncProductionResult(map);
|
|
|
+ //判断单据有没有同步成功
|
|
|
+ BigDecimal orderId = omsTransOrderMapper.selectOrderInfoByDB(map);
|
|
|
+ SyncProductList syncProductList = new SyncProductList();
|
|
|
+ if(orderId == null) {
|
|
|
+ syncProductList.setDeleted(1);
|
|
|
+ }else{
|
|
|
+ syncProductList.setDeleted(0);
|
|
|
+ }
|
|
|
+ JSONObject jsonObject = new JSONObject(map);
|
|
|
+ syncProductList.setPrimaryId(syncProductListMapper.nextId());
|
|
|
+ syncProductList.setDjlx("调拨");
|
|
|
+ syncProductList.setDjbh(map.get("djbh").toString());
|
|
|
+ syncProductList.setMaterialName(map.get("materialName") == null ? "" : map.get("materialName").toString());
|
|
|
+ syncProductList.setProductList(jsonObject.toString());
|
|
|
+ syncProductList.setInsertTime(new Date());
|
|
|
+ syncProductListMapper.insert(syncProductList);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+
|
|
|
+ @PostMapping("matchLoaderCapacityOrder")
|
|
|
+ public void matchLoaderCapacityOrder() {
|
|
|
+ //获取计重无烟煤数据
|
|
|
+ List<Map<String, Object>> omsTransOrderList = omsTransOrderMapper.selectWuyanmei();
|
|
|
+ for(Map<String,Object> map : omsTransOrderList) {
|
|
|
+ OmsTransOrder omsTransOrder = omsTransOrderMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("transOrderId")));
|
|
|
+ OmsOrderChild omsOrderChild = omsOrderChildMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("orderChildId")));
|
|
|
+ omsTransOrderService.matchLoaderCapacityOrder(omsTransOrder,omsOrderChild);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("matchPriceSyncDz")
|
|
|
+ public void matchPriceSyncDz() {
|
|
|
+ //获取计重无烟煤数据
|
|
|
+ List<Map<String, Object>> omsTransOrderList = omsTransOrderMapper.selectWuyanmei();
|
|
|
+ for(Map<String,Object> map : omsTransOrderList) {
|
|
|
+ OmsTransOrder omsTransOrder = omsTransOrderMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("transOrderId")));
|
|
|
+ OmsOrderChild omsOrderChild = omsOrderChildMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("orderChildId")));
|
|
|
+ omsTransOrderService.matchPriceSyncDz(omsTransOrder,omsOrderChild);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("generateMonthOrder")
|
|
|
+ public void generateMonthOrder() throws ParseException {
|
|
|
+ //跨天的装载机计吨需求
|
|
|
+ List<Map<String,Object>> mapList = omsTransOrderMapper.selectMonthOrder();
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ BigDecimal transOrderId = DataChange.dataToBigDecimal(map.get("transOrderId"));
|
|
|
+ BigDecimal orderChildId = DataChange.dataToBigDecimal(map.get("orderChildId"));
|
|
|
+ SimpleDateFormat simpleDateFormat = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");
|
|
|
+ SimpleDateFormat simpleDateFormat1 = new SimpleDateFormat("yyyy-MM-dd");
|
|
|
+ String guoDuDateStr = simpleDateFormat1.format(DataChange.dataToDate(map.get("requirementEndTime"))) + " 00:00:00";
|
|
|
+ Date guoDuDate = simpleDateFormat.parse(guoDuDateStr);
|
|
|
+ OmsOrderChild omsOrderChild = omsOrderChildMapper.selectByPrimaryKey(orderChildId);
|
|
|
+ OmsTransOrder omsTransOrder = omsTransOrderMapper.selectByPrimaryKey(transOrderId);
|
|
|
+ //更新结束时间
|
|
|
+ omsOrderChildMapper.updateReciptDate(orderChildId,guoDuDate);
|
|
|
+ //新增子表
|
|
|
+ //新增
|
|
|
+ omsTransOrder.setTransOrderId(omsTransOrderMapper.nextId());
|
|
|
+ omsTransOrder.setIssueTime(guoDuDate);
|
|
|
+ omsOrderChild.setReceiptTime(DataChange.dataToDate(map.get("requirementEndTime")));
|
|
|
+ omsOrderChild.setOrderChildId(omsOrderChildMapper.nextId());
|
|
|
+ omsOrderChild.setTransOrderId(omsTransOrder.getTransOrderId());
|
|
|
+ omsOrderChild.setNetWeight(null);
|
|
|
+ omsOrderChild.setActualWeight(null);
|
|
|
+ omsOrderChild.setAlternateFields20(null);
|
|
|
+ omsOrderChildMapper.insertSelective(omsOrderChild);
|
|
|
+ omsTransOrderMapper.insertSelective(omsTransOrder);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @PostMapping("disposeErrorData")
|
|
|
+ public void disposeErrorData() {
|
|
|
+ //查询2月装矿石数据全部清空
|
|
|
+ int i = omsTransOrderMapper.clearNetWeight();
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 120)
|
|
|
+ public void getBlueList() throws Exception {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ Map<String,Object> map = dzFeign.getBlueList();
|
|
|
+ List<Map<String,Object>> mapCgList = (List<Map<String, Object>>) map.get("cgList");
|
|
|
+ List<Map<String,Object>> mapXsList = (List<Map<String, Object>>) map.get("xsList");
|
|
|
+ ArrayList<Object> objects = new ArrayList<>();
|
|
|
+ //查询需要修改的计划
|
|
|
+ if(mapCgList.size() > 0) {
|
|
|
+ List<Map<String,Object>> mapCgNeedUpdateList = commonMapper.selectCgNeedUpdateList(mapCgList);
|
|
|
+ objects.addAll(mapCgNeedUpdateList);
|
|
|
+ }
|
|
|
+ if(mapXsList.size() > 0) {
|
|
|
+ List<Map<String,Object>> mapXsNeedUpdateList = commonMapper.selectCgNeedUpdateList(mapXsList);
|
|
|
+ objects.addAll(mapXsNeedUpdateList);
|
|
|
+ }
|
|
|
+ if(objects.size() > 0) {
|
|
|
+ Map<String,Object> stringObjectMap = new HashMap<>();
|
|
|
+ stringObjectMap.put("mapList",objects);
|
|
|
+ omsTransOrderService.correctTransOrder(stringObjectMap);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 120)
|
|
|
+ public void syncZcpData() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ // 获取两天内的装车皮数据
|
|
|
+ List<Map<String,Object>> mapList = tmsLoadResultMapper.selectTrainLoadResult();
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ //遍历,去查询
|
|
|
+ BigDecimal tonnageValue = omsTransOrderMapper.getTotalTonnageValue(map);
|
|
|
+ TmsLoadResult tmsLoadResult = tmsLoadResultMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("resultId")));
|
|
|
+ tmsLoadResult.setActualTonnage(tonnageValue);
|
|
|
+ tmsLoadResult.setAlternateFields5("系统");
|
|
|
+ tmsLoadResultMapper.updateByPrimaryKeySelective(tmsLoadResult);
|
|
|
+ //统计所有吨位
|
|
|
+ }
|
|
|
+ for(Map<String,Object> map : mapList) {
|
|
|
+ OmsOrderChild omsOrderChild = omsOrderChildMapper.selectByPrimaryKey(DataChange.dataToBigDecimal(map.get("transOrderChildId")));
|
|
|
+ //统计该子表下所有装货实绩ID
|
|
|
+ BigDecimal totalTonnageValue = omsOrderChildMapper.getTotalTonnageValue(omsOrderChild.getOrderChildId());
|
|
|
+ omsOrderChild.setNetWeight(totalTonnageValue);
|
|
|
+ omsOrderChild.setActualWeight(omsOrderChild.getNetWeight());
|
|
|
+ omsOrderChildMapper.updateByPrimaryKeySelective(omsOrderChild);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60)
|
|
|
+ public void remindWuLiu() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //获取超过需求时间半小时未签到及未计时开始的车辆
|
|
|
+ List<Map<String,Object>> capacityInnerNoSignList = omsTransOrderMapper.getCapacityInnerNoSignList();
|
|
|
+ for(Map<String,Object> capacityInnerNoSignMap : capacityInnerNoSignList) {
|
|
|
+ Object capacityInnerNoSignStr = capacityInnerNoSignMap.get("capacityStrs");
|
|
|
+ if(capacityInnerNoSignStr != null) {
|
|
|
+ try {
|
|
|
+ HashMap<String, Object> sendMap = new HashMap<>();
|
|
|
+ sendMap.put("userId", "admin");
|
|
|
+ sendMap.put("userName","admin");
|
|
|
+ sendMap.put("title", "未签到提醒");
|
|
|
+ sendMap.put("sendMessage", capacityInnerNoSignStr + ":未签到,请提醒其及时签到");
|
|
|
+ sendMap.put("sendType", "01");//01:通知消息
|
|
|
+ String websocketId = capacityInnerNoSignMap.get("webSocketId").toString();
|
|
|
+ RESTfulResult resTfulResult = null;
|
|
|
+ resTfulResult = websocketFeign.sendWebsocket(websocketId, sendMap);
|
|
|
+ if (resTfulResult != null && !resTfulResult.isSucceed()) {
|
|
|
+ log.error("物流调度消息推送失败:" + resTfulResult.getMessage());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("物流调度消息推送异常:{}", e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取超过需求半小时还未计时开始的车辆
|
|
|
+ List<Map<String,Object>> capacityInnerNoTimeList = omsTransOrderMapper.getCapacityInnerNoTimeList();
|
|
|
+ for(Map<String,Object> capacityInnerNoTimeMap : capacityInnerNoTimeList) {
|
|
|
+ Object capacityInnerNoTimeStr = capacityInnerNoTimeMap.get("capacityStrs");
|
|
|
+ if(capacityInnerNoTimeStr != null) {
|
|
|
+ try {
|
|
|
+ HashMap<String, Object> sendMap = new HashMap<>();
|
|
|
+ sendMap.put("userId", "admin");
|
|
|
+ sendMap.put("userName","admin");
|
|
|
+ sendMap.put("title", "未签到提醒");
|
|
|
+ sendMap.put("sendMessage", capacityInnerNoTimeStr + ":未签到,请提醒其及时签到");
|
|
|
+ sendMap.put("sendType", "01");//01:通知消息
|
|
|
+ String websocketId = capacityInnerNoTimeMap.get("webSocketId").toString();
|
|
|
+ RESTfulResult resTfulResult = null;
|
|
|
+ resTfulResult = websocketFeign.sendWebsocket(websocketId, sendMap);
|
|
|
+ if (resTfulResult != null && !resTfulResult.isSucceed()) {
|
|
|
+ log.error("物流调度消息推送失败:" + resTfulResult.getMessage());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("物流调度消息推送异常:{}", e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ // 统计昨日未完成任务的车辆及司机并提醒调度
|
|
|
+ List<Map<String,Object>> capacityNoFinishList = omsTransOrderMapper.getCapacityNoFinishList();
|
|
|
+ for(Map<String,Object> capacityInnerNoFinishMap : capacityNoFinishList) {
|
|
|
+ Object capacityInnerNoFinishStr = capacityInnerNoFinishMap.get("capacityStrs");
|
|
|
+ if(capacityInnerNoFinishStr != null) {
|
|
|
+ try {
|
|
|
+ HashMap<String, Object> sendMap = new HashMap<>();
|
|
|
+ sendMap.put("userId", "admin");
|
|
|
+ sendMap.put("userName","admin");
|
|
|
+ sendMap.put("title", "未签到提醒");
|
|
|
+ sendMap.put("sendMessage", capacityInnerNoFinishStr + ":未签到,请提醒其及时签到");
|
|
|
+ sendMap.put("sendType", "01");//01:通知消息
|
|
|
+ String websocketId = capacityInnerNoFinishMap.get("webSocketId").toString();
|
|
|
+ RESTfulResult resTfulResult = null;
|
|
|
+ resTfulResult = websocketFeign.sendWebsocket(websocketId, sendMap);
|
|
|
+ if (resTfulResult != null && !resTfulResult.isSucceed()) {
|
|
|
+ log.error("物流调度消息推送失败:" + resTfulResult.getMessage());
|
|
|
+ }
|
|
|
+ } catch (Exception e) {
|
|
|
+ log.error("物流调度消息推送异常:{}", e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 60)
|
|
|
+ @PostMapping("remindSiji")
|
|
|
+ public void remindSiji() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //获取今日下发时间为今天,但今天还未签到的司机;超出需求半小时的,业务名称、车号、用车单位;
|
|
|
+ Map<String, Object> objectObjectHashMap = new HashMap<>();
|
|
|
+ List<Map<String,Object>> sendMapList = new ArrayList<>();
|
|
|
+ List<Map<String,Object>> noSignMesList = commonMapper.getNoSignMesList();
|
|
|
+ for(Map<String,Object> stringObjectMap : noSignMesList) {
|
|
|
+ try {
|
|
|
+ //查询司机
|
|
|
+ HashMap<String, Object> sendMap = new HashMap<>();
|
|
|
+ sendMap.put("personnelId",stringObjectMap.get("driverId"));
|
|
|
+ sendMap.put("title",stringObjectMap.get("issueTime") + "任务未签到提醒");
|
|
|
+ //finalPlanDetails.get("")
|
|
|
+ String text = "作业:" + stringObjectMap.get("operationRangeName") + stringObjectMap.get("operationName") + "未签到!";
|
|
|
+ sendMap.put("content",text);
|
|
|
+ HashMap<String, Object> mapData = new HashMap<>();
|
|
|
+ mapData.put("text",text);
|
|
|
+ sendMap.put("data",mapData);
|
|
|
+ sendMapList.add(sendMap);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("消息推送失败:{}",e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取签到了但签到与需求最大时长一个小时后还未计时开始的
|
|
|
+ List<Map<String,Object>> noTimeStartMesList = commonMapper.getNoTimeStartMesList();
|
|
|
+ for(Map<String,Object> stringObjectMap : noTimeStartMesList) {
|
|
|
+ try {
|
|
|
+ //查询司机
|
|
|
+ HashMap<String, Object> sendMap = new HashMap<>();
|
|
|
+ sendMap.put("personnelId",stringObjectMap.get("driverId"));
|
|
|
+ sendMap.put("title",stringObjectMap.get("issueTime") + "任务未开始提醒");
|
|
|
+ //finalPlanDetails.get("")
|
|
|
+ String text = "作业:" + stringObjectMap.get("operationRangeName") + stringObjectMap.get("operationName") + "未计时开始!";
|
|
|
+ sendMap.put("content",text);
|
|
|
+ HashMap<String, Object> mapData = new HashMap<>();
|
|
|
+ mapData.put("text",text);
|
|
|
+ sendMap.put("data",mapData);
|
|
|
+ sendMapList.add(sendMap);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("消息推送失败:{}",e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ //获取昨日未生成实绩的运输任务(计时、计次、装载机计重)
|
|
|
+ List<Map<String,Object>> noFinishMesList = commonMapper.getNoFinishStartMesList();
|
|
|
+ for(Map<String,Object> stringObjectMap : noFinishMesList) {
|
|
|
+ try {
|
|
|
+ //查询司机
|
|
|
+ HashMap<String, Object> sendMap = new HashMap<>();
|
|
|
+ sendMap.put("personnelId",stringObjectMap.get("driverId"));
|
|
|
+ sendMap.put("title",stringObjectMap.get("issueTime") + "业务未完成提醒");
|
|
|
+ //finalPlanDetails.get("")
|
|
|
+ String text = "作业:" + stringObjectMap.get("operationRangeName") + stringObjectMap.get("operationName") + "业务未生成!";
|
|
|
+ sendMap.put("content",text);
|
|
|
+ HashMap<String, Object> mapData = new HashMap<>();
|
|
|
+ mapData.put("text",text);
|
|
|
+ sendMap.put("data",mapData);
|
|
|
+ sendMapList.add(sendMap);
|
|
|
+ }catch (Exception e){
|
|
|
+ log.error("消息推送失败:{}",e);
|
|
|
+ e.printStackTrace();
|
|
|
+ }
|
|
|
+ }
|
|
|
+ objectObjectHashMap.put("list",sendMapList);
|
|
|
+ RESTfulResult resTfulResult = websocketFeign.pushUniMessageList(objectObjectHashMap);
|
|
|
+
|
|
|
+ }
|
|
|
+
|
|
|
+ //查询小号不为空的调拨过磅数据去进行重复匹配
|
|
|
+ //@Scheduled(fixedDelay = 1000 * 60 * 120)
|
|
|
+ @PostMapping("restartSyncProductionInner")
|
|
|
+ public void restartSyncProductionInner() {
|
|
|
+ Properties props = System.getProperties(); // 系统属性
|
|
|
+ if(props.getProperty("os.name").contains("Windows")){
|
|
|
+ //windows系统不执行
|
|
|
+ log.debug("windows系统不执行");
|
|
|
+ return;
|
|
|
+ }
|
|
|
+ //首先是获取未匹配到的调拨数据
|
|
|
+ List<String> stringList = omsTransOrderMapper.getInnerNoMatchList();
|
|
|
+ for(String s : stringList) {
|
|
|
+ JSONObject jsonObject = JSON.parseObject(s);
|
|
|
+ omsTransOrderService.syncProductionResult(jsonObject);
|
|
|
+ }
|
|
|
+ }
|
|
|
+
|
|
|
+ @Autowired
|
|
|
+ TaskDispatchOptimized taskDispatchOptimized;
|
|
|
+
|
|
|
+ //@PostMapping("dispatchTasksDcAll")
|
|
|
+ //public void dispatchTasksDcAll() {
|
|
|
+ // taskDispatchOptimized.dispatchTasks();
|
|
|
+ //}
|
|
|
+
|
|
|
+}
|