package com.qlm.controller.jinzai; import java.util.ArrayList; import java.util.Date; import java.util.HashMap; import java.util.List; import java.util.Map; import cn.hutool.core.date.DateUtil; import com.jfinal.aop.Clear; import com.jfinal.plugin.activerecord.Db; import com.jfinal.plugin.activerecord.Page; import com.jfinal.plugin.activerecord.Record; import com.qlm.annotation.RequestUrl; import com.qlm.common.ApiResponse; import com.qlm.controller.common.CommonController; import com.qlm.tools.WxUtil; @RequestUrl("/jinzaiOrder") public class ProduceOrderController extends CommonController{ /** * 查询盒码,箱码 ,垛码 */ public void code(){ render("/page/jinzai/search.jsp"); } public void codeQuery(){ Record result = new Record(); boolean status = false; String msg = ""; String type = getPara("type"); String code = getPara("code"); List list = new ArrayList(); Map map = new HashMap(); StringBuilder masterCodes = new StringBuilder(); if("1".equals(type)){//盒码 Record childInfo = Db.findFirst("select * from jinzai_upload_child where child_code = ?",code.toUpperCase()); if(childInfo == null){ childInfo = Db.findFirst("select * from jinzai_upload_child where child_code = ?",code.toLowerCase()); } if(childInfo != null){ String master_code = childInfo.getStr("master_code"); Record masterInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",master_code); if(masterCodes.length()>0){ masterCodes.append(","); } masterCodes.append("'"+master_code+"'"); map.put(master_code.toLowerCase(), masterInfo); list.add(masterInfo); } }else if("2".equals(type)){ Record masterInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",code.toLowerCase()); if(masterInfo == null){ masterInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",code.toUpperCase()); } if(masterCodes.length()>0){ masterCodes.append(","); } list.add(masterInfo); masterCodes.append("'"+code.toUpperCase()+"'"); map.put(code.toLowerCase(), masterInfo); }else if("3".equals(type)){ List find = Db.find("select * from jinzai_upload_master where duo_code = ?",code); for (Record record : find) { String masterCode = record.getStr("id"); if(masterCodes.length()>0){ masterCodes.append(","); } masterCodes.append("'"+masterCode+"'"); map.put(masterCode.toLowerCase(), record); list.add(record); } } if(masterCodes.length()>0){ List find = Db.find("select * from deliveryorders where CaseCode in("+masterCodes+")"); for (Record record : find) { String CaseCode = record.getStr("CaseCode").toLowerCase(); Record masterInfO = map.get(CaseCode); masterInfO.set("fahuoInfo", record); } } result.set("status", status).set("msg", msg).set("data", list); renderJson(result); } //按日期查询发货订单 public void order(){ render("/page/jinzai/order.jsp"); } /** * */ @Clear public void orderQuery(){ int pageSize = getParaToInt("pageSize",10); int page = getParaToInt("pageNumber",1); String OrderNo = getPara("OrderNo"); String LicensePlate = getPara("LicensePlate"); String startdate = getPara("startdate"); String endDate = getPara("enddate"); String columns = "select b.pinxiang AS ProductName, a.LicensePlate AS LicensePlate, a.CaseCode AS CaseCode, a.OrderNo AS OrderNo, a.SKUNo AS SKUNo, a.WarehouseID AS WarehouseID, a.CustomerNo AS CustomerNo, a.OperateUser AS OperateUser, a.DeliveryTime AS DeliveryTime, a.PalletCode AS PalletCode, a.ProductNo AS ProductNo, a.OutWarehouseNo AS OutWarehouseNo, a.OutWarehouse AS OutWarehouse, a.id AS id, a.CustomerName AS CustomerName, b.sku AS SKU"; StringBuilder sql = new StringBuilder(); sql.append(" from deliveryorders a left join jinzai_upload_master b on a.CaseCode = b.id "); sql.append(" where 1 = 1 "); Listparams = new ArrayList<>(); if(!WxUtil.isNull(OrderNo)){ sql.append(" and a.OrderNo = ?"); params.add(OrderNo); } if(!WxUtil.isNull(LicensePlate)){ sql.append(" and a.LicensePlate = ?"); params.add(LicensePlate); } if(!WxUtil.isNull(endDate)){ endDate = endDate+ " 23:59:59"; sql.append(" and a.DeliveryTime <= ?"); params.add(endDate); } if(!WxUtil.isNull(startdate)){ startdate = startdate+ " 00:00:00"; sql.append(" and a.DeliveryTime >= ?"); params.add(startdate); } sql.append(" order by a.DeliveryTime desc"); Page paginate = Db.paginate(page, pageSize, columns, sql.toString(), params.toArray()); Record r = new Record(); r.set("rows", paginate.getList()); r.set("total", paginate.getTotalRow()); renderJson(r); } @Clear public void cuanRecord(){ render("/page/jinzai/cuan.jsp"); } @Clear public void cuanRecordQuery(){ int pageSize = getParaToInt("pageSize",10); int page = getParaToInt("pageNumber",1); int pageStart = pageSize*(page-1); String whereSql = " where 1 = 1 "; String kehu = getPara("kehu"); String childcode = getPara("childcode"); String startdate = getPara("startdate"); String endDate = getPara("enddate"); String status = getPara("status"); if(!"-1".equals(status)){ whereSql += " and status = '"+status+"' "; } if(!WxUtil.isNull(kehu)){ whereSql += " and kehu like '%"+kehu+"%' "; } if(!WxUtil.isNull(childcode)){ whereSql += " and child_code = '"+childcode+"' "; } if(!WxUtil.isNull(endDate)){ whereSql += " and create_time <= '"+endDate+"' "; } if(!WxUtil.isNull(startdate)){ whereSql += " and create_time >= '"+startdate+"' "; } Long total = Db.queryLong("select count(*) from t_jz_searchrecord"); List find = Db.find("select * from t_jz_searchrecord "+whereSql+" order by create_time desc limit "+pageStart+","+pageSize); Record r = new Record(); r.set("rows", find); r.set("total", total); renderJson(r); } //同步订单到我们自己的库 public void update(){ String udfSqlString = "select * from WMS_PROD.V_TMSO_RETURN_H WHERE ROWNUM = 1"; // String sql = "select * from WMS_PROD.V_SERIAL_INFO WHERE ROWNUM = 1"; List find = Db.use("oracle").find(udfSqlString); List list = new ArrayList(); for (Record record : find) { String orderNo = record.getStr("ORDERNO");//发货单号 String OUTWAREHOUSE = record.getStr("OUTWAREHOUSE");//工厂名称 String WAREHOUSEID = record.getStr("WAREHOUSEID");//工厂ID Date Deliverytime = record.getDate("DELIVERYTIME");//出库时间 String caseCode = record.getStr("CASECODE");//箱码 String palletCode = record.getStr("PALLETCODE");//垛码 String PRODUCTNAME = record.getStr("PRODUCTNAME");//产品名称 String CUSTOMERNAME = record.getStr("CUSTOMERNAME");//客户姓名 String SKUNAME = record.getStr("SKUNAME");//SKU名称 String LICENSEPLATE = record.getStr("LICENSEPLATE");//车牌号 String OUTWAREHOUSENO = record.getStr("OUTWAREHOUSENO");//工厂编号 String SKUNO = record.getStr("SKUNO");//sku编号 String OPERATEUSER = record.getStr("OPERATEUSER");//操作人 String PRODUCTNO = record.getStr("PRODUCTNO");//产品编号 String CUSTOMERNO = record.getStr("CUSTOMERNO");//客户编号 Record info = new Record(); info.set("OrderNo", orderNo).set("OutWarehouse", OUTWAREHOUSE).set("WarehouseID", WAREHOUSEID) .set("DeliveryTime", Deliverytime).set("CaseCode", caseCode).set("PalletCode", palletCode) .set("ProductName", PRODUCTNAME).set("CustomerName", CUSTOMERNAME).set("SKUName", SKUNAME) .set("LicensePlate", LICENSEPLATE).set("OutWarehouseNo", OUTWAREHOUSENO).set("SKUNo", SKUNO) .set("OperateUser", OPERATEUSER).set("ProductNo", PRODUCTNO).set("CustomerNo", CUSTOMERNO); list.add(info); } WxUtil.batchSaveIgnore("deliveryorders", list, ""); } public void getCodeFlowSearchPage(){ renderJsp("/page/jinzai/flow_search.jsp"); } /** * 盒码流向查询 */ public void getCodeFlowSearch(){ ApiResponse result = ApiResponse.success(); String code = getPara("code"); if(WxUtil.isNull(code)){ result = ApiResponse.error("请输入盒码"); renderJson(result); return; } //先查询小码信息 Record smallCodeInfo = Db.findFirst("select * from jinzai_upload_child where child_code = ?",code); if(smallCodeInfo == null){ result = ApiResponse.error("盒码不存在"); renderJson(result); return; } //查询大码信息 Record bigCodeInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",smallCodeInfo.getStr("master_code")); if(bigCodeInfo == null){ result = ApiResponse.error("箱码不存在"); renderJson(result); return; } String sku = bigCodeInfo.getStr("sku"); //根据sku查询品相 Record quality = Db.findFirst("select * from t_jz_item where sku = ?",sku); if(quality == null){ result = ApiResponse.error("品相不存在"); renderJson(result); return; } //根据product_id 查询产品信息 Record product = Db.findFirst("select tj.*, tjp.type_name from t_jz_product tj left join t_jz_product_type tjp on tj.product_type = tjp.id where tj.id = ?",WxUtil.getInt("product_id", quality)); if(product == null){ result = ApiResponse.error("产品不存在"); renderJson(result); return; } // 查询出库信息 Record deliveryOrder = Db.findFirst("select * from deliveryorders where CaseCode = ?",smallCodeInfo.getStr("master_code")); //组装返回信息 //产品信息对象、入库信息对象、出库信息对象 Record productInfo = new Record(); productInfo.set("productCode", product.getStr("product_no")).set("productName", product.getStr("product_name")) .set("itemCode", quality.getStr("item_code")).set("itemName", quality.getStr("item_name")) .set("category", product.getStr("type_name")); Record inInfo = new Record(); inInfo.set("productionNo", bigCodeInfo.getStr("task_no")).set("boxCode", code) .set("cartoonCode", bigCodeInfo.getStr("id")).set("palletCode", bigCodeInfo.getStr("duo_code")) .set("inboundPerson", bigCodeInfo.getStr("device_no")).set("productionDate", DateUtil.format(bigCodeInfo.getDate("upload_time"), "yyyy-MM-dd HH:mm:ss")); Record outInfo = new Record(); if(deliveryOrder != null){ outInfo.set("outboundNo", deliveryOrder.getStr("OrderNo")).set("warehouse", deliveryOrder.getStr("OutWarehouse")) .set("outboundPerson", deliveryOrder.getStr("OperateUser")).set("dealerName", deliveryOrder.getStr("CustomerName")) .set("salesArea", "").set("outboundTime", DateUtil.format(deliveryOrder.getDate("DeliveryTime"), "yyyy-MM-dd HH:mm:ss")); } Record endRecord = new Record(); endRecord.set("product", productInfo).set("inbound", inInfo).set("outbound", outInfo); result.setData(endRecord); renderJson(result); } }