Commit 8f71bebc authored by tank.li@mushiny.com's avatar tank.li@mushiny.com

拣货任务完善,出库单与系统绑定 完成后反馈

parent ac5299bf
package com.mushiny.heli.xnr.controller;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
/**
* Created by Lisi on 2019-11-30.
*/
@RestController
@RequestMapping("/outbound")
public class OutboundController {
}
package com.mushiny.heli.xnr.service;
import com.mushiny.heli.xnr.comm.CommonUtils;
import com.mushiny.heli.xnr.jdbc.repositories.JdbcRepository;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.scheduling.annotation.Scheduled;
import org.springframework.stereotype.Service;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
/**
* Created by Lisi on 2019-11-30.
*/
@Service
public class OutboundService {
@Autowired
private JdbcRepository jdbcRepository;
//2、如果对应CUSTOMERSHIPMENTPOSITION都完成 将主表更新为Finish 等待下次循环
//这样不修改出库的代码
@Scheduled (fixedDelay = 10*1000L)
public void checkAndResponse(){
List<Map> finishedObps =
this.jdbcRepository.queryBySql(Sql_Table.SQL_QUERY_OBORDER, Sql_Table.FINISH);
for (int i = 0; i < finishedObps.size(); i++) {
Map obs = finishedObps.get(i);
Map newValue = new HashMap();
newValue.put("STATE",Sql_Table.FINISH);
CommonUtils.modifyUselessInfo(newValue);
Map con = new HashMap();
con.put("ID",CommonUtils.parseString("ID",obs));
this.jdbcRepository.updateRecords(Sql_Table.TABLE_OUTBOUND_ORDERPOSITION, newValue, con);
}
}
}
......@@ -89,4 +89,14 @@ public interface Sql_Table {
" and WMS_INBOUND_PODORDER.POD_ID=? and WMS_INBOUND_PODORDER.POD_FACE=?\n" +
" OrDER BY WMS_INBOUND_PODORDER.CREATED_DATE DESC limit 1";
String NEW = "New";
String TABLE_OB_CUSTOMERSHIPMENT = "OB_CUSTOMERSHIPMENT";
String TABLE_OB_CUSTOMERSHIPMENTPOSITION = "OB_CUSTOMERSHIPMENTPOSITION";
String SQL_QUERY_OBORDER = "SELECT WMS_OUTBOUND_ORDERPOSITION.* FROM WMS_OUTBOUND_ORDERPOSITION,OB_CUSTOMERSHIPMENTPOSITION \n" +
"WHERE WMS_OUTBOUND_ORDERPOSITION.SHIPMENTPOSITION_ID=OB_CUSTOMERSHIPMENTPOSITION.ID \n" +
"AND WMS_OUTBOUND_ORDERPOSITION.STATE<>'Finish' AND OB_CUSTOMERSHIPMENTPOSITION.STATE >= 600 ";
String TABLE_OUTBOUND_ORDERPOSITION = "WMS_OUTBOUND_ORDERPOSITION";
String SQL_OUTBOUNDORDERPOSITION_BYSTATE = "SELECT * FROM WMS_OUTBOUND_ORDER WHERE WMS_OUTBOUND_ORDER.STATE<>'Finish' \n" +
"AND NOT EXISTS (SELECT 1 FROM WMS_OUTBOUND_ORDERPOSITION \n" +
"WHERE WMS_OUTBOUND_ORDERPOSITION.ORDERID=WMS_OUTBOUND_ORDER.ORDERID \n" +
"AND WMS_OUTBOUND_ORDERPOSITION.STATE<>'Finish')";
}
......@@ -146,12 +146,11 @@ public class WMSRespService {
@Scheduled(fixedDelay = 50*1000L)
@Transactional
public void outboundResp(){
logger.debug("回复库单状态....");
logger.debug("回复库单状态....");
RestTemplate restTemplate = builder.build();
HttpHeaders headers = this.getHttpHeaders();
List<Map> data = this.jdbcRepository.queryBySql(SQL_QUERYALL_OUTBOUNDORDER,FINISH);
List<OutboundOrderDTO> data2 = this.transfer2OutDTO(data);//合并主表记录
for (int i = 0; i < data2.size(); i++) {
......@@ -174,16 +173,16 @@ public class WMSRespService {
//如果明细都已结束 将主表更新为已完成,减少操作时的判断
List<Map> list = this.jdbcRepository
.queryBySql(Sql_Table.SQL_QUERY_INBOUNDORDER_BYPOSITIONSTATE, Sql_Table.FINISH);
.queryBySql(Sql_Table.SQL_OUTBOUNDORDERPOSITION_BYSTATE, Sql_Table.FINISH);
for (int i = 0; i < list.size(); i++) {
Map rows = list.get(i);
Map newValue = new HashMap();
newValue.put("STATE", Sql_Table.FINISH);
CommonUtils.modifyUselessInfo(newValue);
Map con = new HashMap();
con.put("ENTRYID",CommonUtils.parseString("ENTRYID",rows));
this.jdbcRepository.updateRecords(Sql_Table.WMS_INBOUND_PODORDER,newValue,con);
this.jdbcRepository.updateRecords(Sql_Table.WMS_OUTBOUND_ORDER,newValue,con);
}
}
......
......@@ -60,8 +60,61 @@ public class WMSService {
@Transactional
public void saveOutboundOrder(OutboundOrderDTO outboundOrderDTO) {
List<OutboundOrderPosition> data = outboundOrderDTO.getDATA();
//1、保存到OB_CUSTOMERSHIPMENT表
BaseBpo cs = new BaseBpo();
cs.setTable(Sql_Table.TABLE_OB_CUSTOMERSHIPMENT);
String csid = CommonUtils.genUUID();
cs.addKV("ID",csid);
/* `SHIPMENT_NO` varchar(255) NOT NULL DEFAULT '' COMMENT '订单拆分后的编号',
`PRIORITY` int(11) NOT NULL COMMENT '优先等级',
`STATE` int(11) NOT NULL COMMENT '状态',
`PASSED_OVER_COUNT` int(11) NOT NULL COMMENT '未选中的次数',
`ACTIVATED` bit(1) NOT NULL COMMENT '是否激活',
`SELECTED` bit(1) NOT NULL COMMENT '是否进入Select Window',
`COMPLETED` bit(1) NOT NULL COMMENT '是否已全部分配拣货任务',
`WAREHOUSE_ID` varchar(255) NOT NULL,*/
cs.addKV("SHIPMENTNO",outboundOrderDTO.getORDERID());
cs.addKV("PRIORITY", 1);
cs.addKV("STATE", 0);
cs.addKV("PASSED_OVER_COUNT", 0);
cs.addKV("ACTIVATED", Boolean.FALSE);
cs.addKV("SELECTED", Boolean.FALSE);
cs.addKV("COMPLETED", Boolean.FALSE);
cs.addKV("WAREHOUSE_ID", outboundOrderDTO.getSECTION());
cs.addKV("CLIENT_ID", outboundOrderDTO.getFACTORY());
cs.addKV("TYPE", "Customer");
//新增一条记录
this.jdbcRepository.insertBusinessObject(cs);
for (int i = 0; i < data.size(); i++) {
OutboundOrderPosition outboundOrderPosition = data.get(i);
//2、保存到OB_CUSTOMERSHIPMENTPOSITION表
BaseBpo csp = new BaseBpo();
csp.setTable(Sql_Table.TABLE_OB_CUSTOMERSHIPMENTPOSITION);
String cspId = CommonUtils.genUUID();
csp.addKV("ID",cspId);
/* `AMOUNT` decimal(17,4) NOT NULL DEFAULT '0.0000' COMMENT '数量',
`STATE` int(11) NOT NULL COMMENT '状态',
`ITEMDATA_ID` varchar(255) NOT NULL DEFAULT '' COMMENT '商品',
`SHIPMENT_ID` varchar(255) NOT NULL DEFAULT '' COMMENT '订单编号',
`POSITION_NO` int(11) NOT NULL COMMENT '详细编号',
`ORDER_INDEX` int(11) NOT NULL COMMENT '排序',
`CLIENT_ID` varchar(255) NOT NULL,
`WAREHOUSE_ID` varchar(255) NOT NULL,*/
csp.addKV("STATE",0);//600就是完成
List<Map> items = this.jdbcRepository.queryBySql(Sql_Table.SQL_QUERYITEM_BYSKUNO,
outboundOrderPosition.getSKUID());
Map item = items.get(0);
String mID = CommonUtils.parseString("ID",item);
csp.addKV("ITEMDATA_ID",mID);
csp.addKV("SHIPMENT_ID",csid);
csp.addKV("POSITION_NO",i+1);
csp.addKV("ORDER_INDEX",i+1);
csp.addKV("CLIENT_ID",outboundOrderDTO.getFACTORY());
csp.addKV("WAREHOUSE_ID",outboundOrderDTO.getSECTION());
this.jdbcRepository.insertBusinessObject(csp);
BaseBpo baseBpo = new BaseBpo();
baseBpo.setTable(Sql_Table.WMS_OUTBOUND_ORDERPOSITION);
baseBpo.setIdName("ID");
......@@ -70,6 +123,7 @@ public class WMSService {
baseBpo.addKV("AMOUNT",outboundOrderPosition.getAMOUNT());
baseBpo.addKV("SKUID",outboundOrderPosition.getSKUID());
baseBpo.addKV("SHIPMENTID",outboundOrderPosition.getSHIPMENTID());
baseBpo.addKV("SHIPMENTPOSITION_ID", cspId);
baseBpo.addKV("WAREHOUSE_ID",outboundOrderDTO.getFACTORY());
baseBpo.addKV("SECTION_ID",outboundOrderDTO.getSECTION());
this.jdbcRepository.insertBusinessObject(baseBpo);
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment