|
|
@@ -1943,12 +1943,54 @@ public class MESHelperServiceImpl implements MESHelperService {
|
|
|
String qty = maps.get("QTY").toString();
|
|
|
Map<Object, Object> map = new HashMap<>();
|
|
|
SqlRowList rs = baseDao.queryForRowSet(" select VE_SHORTNAME,pr_detail,pr_spec,bar_prodcode,to_char(bar_madedate,'YYYY-MM-DD')bar_madedate,bar_code,bar_remain,bar_id from barcode left join product on pr_code = bar_prodcode LEFT JOIN VENDOR@WP ON BAR_VENDCODE = VE_CODE where bar_code = '"+barcode+"' ");
|
|
|
- if(rs.next())
|
|
|
- {
|
|
|
- baseDao.updateByCondition("barcode","bar_remain = '"+qty+"' " +
|
|
|
+ if(rs.next()) {
|
|
|
+ baseDao.updateByCondition("barcode","bar_remain = '"+qty+"',bar_status = 1 " +
|
|
|
" ","bar_code = '"+barcode+"' ");
|
|
|
baseDao.execute("insert into barcodelogger(bl_id,bl_barcode,bl_barid,bl_prodcode,bl_whcode,bl_date,bl_inman,bl_action,bl_description)"
|
|
|
- + " values(barcodelogger_seq.nextval,?,?,?,?,sysdate,?,'修改数量',?)",barcode,rs.getInt("bar_id"),rs.getString("bar_prodcode"),"","ADMIN","原数量:"+rs.getDouble("bar_remain")+",新数量:"+qty);
|
|
|
+ + " values(barcodelogger_seq.nextval,?,?,?,?,sysdate,?,'点料机更新条码数量',?)",barcode,rs.getInt("bar_id"),rs.getString("bar_prodcode"),"","ADMIN","原数量:"+rs.getDouble("bar_remain")+",新数量:"+qty);
|
|
|
+ //点料机接口调整,先实时更新条码数(ERP+MES),再生成条码入库申请单(主从表,一小时内的数据合并一张单,点料间隔超1小时则产生新单据)
|
|
|
+ // 单据审核后更新条码的库存状态
|
|
|
+ SqlRowList rs1 = baseDao.queryForRowSet("select bar_id,bar_remain,bar_prodcode from barcode@WP where bar_code=?",barcode);
|
|
|
+ if(rs1.next()) {
|
|
|
+ baseDao.execute("update barcode@WP set bar_remain=?,bar_outno = '',bar_status = 2 where bar_id=?", qty, rs1.getString("bar_id"));
|
|
|
+ baseDao.execute("insert into barcodelogger@WP(bl_id,bl_barcode,bl_barid,bl_prodcode,bl_whcode,bl_date,bl_inman,bl_action,bl_description)"
|
|
|
+ + " values(barcodelogger_seq.nextval@WP,?,?,?,?,sysdate,?,'点料机更新条码数量',?)",barcode,rs1.getInt("bar_id"),rs1.getString("bar_prodcode"),"","ADMIN","原数量:"+rs1.getDouble("bar_remain")+",新数量:"+qty);
|
|
|
+ //插入条码状态更新单
|
|
|
+ String ctcode = null;
|
|
|
+ int cddetno = 0;
|
|
|
+ boolean has = false;
|
|
|
+ Integer ctid = baseDao.getJdbcTemplate().queryForObject(" select max(ct_id) from customtable@WP WHERE CT_CALLER='RF-TMSC' AND " +
|
|
|
+ " to_char(ct_recorddate,'yyyy-mm-dd hh24') =to_char(sysdate,'yyyy-mm-dd hh24') and CT_SOURCETYPE='点料机' and ct_statuscode='ENTERING' ",Integer.class);
|
|
|
+ if(null == ctid){
|
|
|
+ //插入主表
|
|
|
+ String sql = "select customtable_seq.nextval@WP from dual";
|
|
|
+ SqlRowList rs2 = baseDao.queryForRowSet(sql);
|
|
|
+ if (rs2.next()) {
|
|
|
+ ctid = rs2.getInt(1);
|
|
|
+ //插入主表
|
|
|
+ ctcode = baseDao.callProcedure("Sp_GetMaxNumber@WP", new Object[] { "RF-TMSC", 2 });
|
|
|
+ baseDao.execute("insert into customtable@WP(ct_id,ct_caller,ct_code,ct_sourcekind,ct_sourcetype," +
|
|
|
+ " ct_recorddate,ct_statuscode,ct_status,ct_recorder,ct_varchar50_1) " +
|
|
|
+ " select ?,'RF-TMSC',? ,'条码删除申请','点料机',sysdate,'ENTERING','在录入','点料机','点料机对接自动生成' from dual ",ctid,ctcode);
|
|
|
+ }
|
|
|
+ }else{
|
|
|
+ SqlRowList rs2 = baseDao.queryForRowSet("select ct_code, " +
|
|
|
+ " nvl((select max(cd_detno) from customtabledetail@WP where cd_ctid=ct_id),0) cd_detno ," +
|
|
|
+ " nvl((select max(cd_detno) from customtabledetail@WP where cd_ctid=ct_id and cd_varchar50_1=?),0) detno" +
|
|
|
+ " from customtable@WP WHERE CT_ID="+ctid,barcode);
|
|
|
+ if(rs2.next()){
|
|
|
+ ctcode = rs2.getString("ct_code");
|
|
|
+ cddetno = rs2.getInt("cd_detno");
|
|
|
+ has = rs2.getInt("detno")>0 ? true:false;
|
|
|
+ }
|
|
|
+ }
|
|
|
+ if(null != ctid && ctid.intValue()>0 && !has){
|
|
|
+ //如果当前条码不存在明细行则插入到明细行
|
|
|
+ cddetno = cddetno+1;
|
|
|
+ baseDao.execute("insert into customtabledetail@WP(cd_id,cd_ctid,CD_DETNO,cd_varchar50_1) " +
|
|
|
+ " select customtabledetail_seq.nextval@WP,?,?,? from dual",ctid,cddetno,barcode);
|
|
|
+ }
|
|
|
+ }
|
|
|
map.put("ret_code","0");
|
|
|
map.put("ret_msg","OK");
|
|
|
map.put("PN",rs.getString("bar_prodcode"));
|