ProduceOrderController.java 10 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326
  1. package com.qlm.controller.jinzai;
  2. import java.util.ArrayList;
  3. import java.util.Date;
  4. import java.util.HashMap;
  5. import java.util.List;
  6. import java.util.Map;
  7. import cn.hutool.core.date.DateUtil;
  8. import com.jfinal.aop.Clear;
  9. import com.jfinal.plugin.activerecord.Db;
  10. import com.jfinal.plugin.activerecord.Record;
  11. import com.qlm.annotation.RequestUrl;
  12. import com.qlm.common.ApiResponse;
  13. import com.qlm.controller.common.CommonController;
  14. import com.qlm.tools.WxUtil;
  15. @RequestUrl("/jinzaiOrder")
  16. public class ProduceOrderController extends CommonController{
  17. /**
  18. * 查询盒码,箱码 ,垛码
  19. */
  20. public void code(){
  21. render("/page/jinzai/search.jsp");
  22. }
  23. public void codeQuery(){
  24. Record result = new Record();
  25. boolean status = false;
  26. String msg = "";
  27. String type = getPara("type");
  28. String code = getPara("code");
  29. List<Record> list = new ArrayList<Record>();
  30. Map<String,Record> map = new HashMap<String,Record>();
  31. StringBuilder masterCodes = new StringBuilder();
  32. if("1".equals(type)){//盒码
  33. Record childInfo = Db.findFirst("select * from jinzai_upload_child where child_code = ?",code.toUpperCase());
  34. if(childInfo == null){
  35. childInfo = Db.findFirst("select * from jinzai_upload_child where child_code = ?",code.toLowerCase());
  36. }
  37. if(childInfo != null){
  38. String master_code = childInfo.getStr("master_code");
  39. Record masterInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",master_code);
  40. if(masterCodes.length()>0){
  41. masterCodes.append(",");
  42. }
  43. masterCodes.append("'"+master_code+"'");
  44. map.put(master_code.toLowerCase(), masterInfo);
  45. list.add(masterInfo);
  46. }
  47. }else if("2".equals(type)){
  48. Record masterInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",code.toLowerCase());
  49. if(masterInfo == null){
  50. masterInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",code.toUpperCase());
  51. }
  52. if(masterCodes.length()>0){
  53. masterCodes.append(",");
  54. }
  55. list.add(masterInfo);
  56. masterCodes.append("'"+code.toUpperCase()+"'");
  57. map.put(code.toLowerCase(), masterInfo);
  58. }else if("3".equals(type)){
  59. List<Record> find = Db.find("select * from jinzai_upload_master where duo_code = ?",code);
  60. for (Record record : find) {
  61. String masterCode = record.getStr("id");
  62. if(masterCodes.length()>0){
  63. masterCodes.append(",");
  64. }
  65. masterCodes.append("'"+masterCode+"'");
  66. map.put(masterCode.toLowerCase(), record);
  67. list.add(record);
  68. }
  69. }
  70. if(masterCodes.length()>0){
  71. List<Record> find = Db.find("select * from deliveryorders where CaseCode in("+masterCodes+")");
  72. for (Record record : find) {
  73. String CaseCode = record.getStr("CaseCode").toLowerCase();
  74. Record masterInfO = map.get(CaseCode);
  75. masterInfO.set("fahuoInfo", record);
  76. }
  77. }
  78. result.set("status", status).set("msg", msg).set("data", list);
  79. renderJson(result);
  80. }
  81. //按日期查询发货订单
  82. public void order(){
  83. render("/page/jinzai/order.jsp");
  84. }
  85. /**
  86. *
  87. */
  88. @Clear
  89. public void orderQuery(){
  90. int pageSize = getParaToInt("pageSize",10);
  91. int page = getParaToInt("pageNumber",1);
  92. int pageStart = pageSize*(page-1);
  93. String whereSql = " where 1 = 1 ";
  94. String OrderNo = getPara("OrderNo");
  95. String LicensePlate = getPara("LicensePlate");
  96. String startdate = getPara("startdate");
  97. String endDate = getPara("enddate");
  98. if(!WxUtil.isNull(OrderNo)){
  99. whereSql += " and OrderNo = '"+OrderNo+"' ";
  100. }
  101. if(!WxUtil.isNull(LicensePlate)){
  102. whereSql += " and LicensePlate = '"+LicensePlate+"' ";
  103. }
  104. if(!WxUtil.isNull(endDate)){
  105. whereSql += " and DeliveryTime <= '"+endDate+"' ";
  106. }
  107. if(!WxUtil.isNull(startdate)){
  108. whereSql += " and DeliveryTime >= '"+startdate+"' ";
  109. }
  110. Long total = Db.queryLong("select count(*) from deliveryorders");
  111. List<Record> find = Db.find("select * from deliveryorders "+whereSql+" order by DeliveryTime desc limit "+pageStart+","+pageSize);
  112. Record r = new Record();
  113. r.set("rows", find);
  114. r.set("total", total);
  115. renderJson(r);
  116. }
  117. @Clear
  118. public void cuanRecord(){
  119. render("/page/jinzai/cuan.jsp");
  120. }
  121. @Clear
  122. public void cuanRecordQuery(){
  123. int pageSize = getParaToInt("pageSize",10);
  124. int page = getParaToInt("pageNumber",1);
  125. int pageStart = pageSize*(page-1);
  126. String whereSql = " where 1 = 1 ";
  127. String kehu = getPara("kehu");
  128. String childcode = getPara("childcode");
  129. String startdate = getPara("startdate");
  130. String endDate = getPara("enddate");
  131. String status = getPara("status");
  132. if(!"-1".equals(status)){
  133. whereSql += " and status = '"+status+"' ";
  134. }
  135. if(!WxUtil.isNull(kehu)){
  136. whereSql += " and kehu like '%"+kehu+"%' ";
  137. }
  138. if(!WxUtil.isNull(childcode)){
  139. whereSql += " and child_code = '"+childcode+"' ";
  140. }
  141. if(!WxUtil.isNull(endDate)){
  142. whereSql += " and create_time <= '"+endDate+"' ";
  143. }
  144. if(!WxUtil.isNull(startdate)){
  145. whereSql += " and create_time >= '"+startdate+"' ";
  146. }
  147. Long total = Db.queryLong("select count(*) from t_jz_searchrecord");
  148. List<Record> find = Db.find("select * from t_jz_searchrecord "+whereSql+" order by create_time desc limit "+pageStart+","+pageSize);
  149. Record r = new Record();
  150. r.set("rows", find);
  151. r.set("total", total);
  152. renderJson(r);
  153. }
  154. //同步订单到我们自己的库
  155. public void update(){
  156. String udfSqlString = "select * from WMS_PROD.V_TMSO_RETURN_H WHERE ROWNUM = 1";
  157. // String sql = "select * from WMS_PROD.V_SERIAL_INFO WHERE ROWNUM = 1";
  158. List<Record> find = Db.use("oracle").find(udfSqlString);
  159. List<Record> list = new ArrayList<Record>();
  160. for (Record record : find) {
  161. String orderNo = record.getStr("ORDERNO");//发货单号
  162. String OUTWAREHOUSE = record.getStr("OUTWAREHOUSE");//工厂名称
  163. String WAREHOUSEID = record.getStr("WAREHOUSEID");//工厂ID
  164. Date Deliverytime = record.getDate("DELIVERYTIME");//出库时间
  165. String caseCode = record.getStr("CASECODE");//箱码
  166. String palletCode = record.getStr("PALLETCODE");//垛码
  167. String PRODUCTNAME = record.getStr("PRODUCTNAME");//产品名称
  168. String CUSTOMERNAME = record.getStr("CUSTOMERNAME");//客户姓名
  169. String SKUNAME = record.getStr("SKUNAME");//SKU名称
  170. String LICENSEPLATE = record.getStr("LICENSEPLATE");//车牌号
  171. String OUTWAREHOUSENO = record.getStr("OUTWAREHOUSENO");//工厂编号
  172. String SKUNO = record.getStr("SKUNO");//sku编号
  173. String OPERATEUSER = record.getStr("OPERATEUSER");//操作人
  174. String PRODUCTNO = record.getStr("PRODUCTNO");//产品编号
  175. String CUSTOMERNO = record.getStr("CUSTOMERNO");//客户编号
  176. Record info = new Record();
  177. info.set("OrderNo", orderNo).set("OutWarehouse", OUTWAREHOUSE).set("WarehouseID", WAREHOUSEID)
  178. .set("DeliveryTime", Deliverytime).set("CaseCode", caseCode).set("PalletCode", palletCode)
  179. .set("ProductName", PRODUCTNAME).set("CustomerName", CUSTOMERNAME).set("SKUName", SKUNAME)
  180. .set("LicensePlate", LICENSEPLATE).set("OutWarehouseNo", OUTWAREHOUSENO).set("SKUNo", SKUNO)
  181. .set("OperateUser", OPERATEUSER).set("ProductNo", PRODUCTNO).set("CustomerNo", CUSTOMERNO);
  182. list.add(info);
  183. }
  184. WxUtil.batchSaveIgnore("deliveryorders", list, "");
  185. }
  186. public void getCodeFlowSearchPage(){
  187. renderJsp("/page/jinzai/flow_search.jsp");
  188. }
  189. /**
  190. * 盒码流向查询
  191. */
  192. public void getCodeFlowSearch(){
  193. ApiResponse result = ApiResponse.success();
  194. String code = getPara("code");
  195. if(WxUtil.isNull(code)){
  196. result = ApiResponse.error("请输入盒码");
  197. renderJson(result);
  198. return;
  199. }
  200. //先查询小码信息
  201. Record smallCodeInfo = Db.findFirst("select * from jinzai_upload_child where child_code = ?",code);
  202. if(smallCodeInfo == null){
  203. result = ApiResponse.error("盒码不存在");
  204. renderJson(result);
  205. return;
  206. }
  207. //查询大码信息
  208. Record bigCodeInfo = Db.findFirst("select * from jinzai_upload_master where id = ?",smallCodeInfo.getStr("master_code"));
  209. if(bigCodeInfo == null){
  210. result = ApiResponse.error("箱码不存在");
  211. renderJson(result);
  212. return;
  213. }
  214. String sku = bigCodeInfo.getStr("sku");
  215. //根据sku查询品相
  216. Record quality = Db.findFirst("select * from t_jz_item where sku = ?",sku);
  217. if(quality == null){
  218. result = ApiResponse.error("品相不存在");
  219. renderJson(result);
  220. return;
  221. }
  222. //根据product_id 查询产品信息
  223. 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));
  224. if(product == null){
  225. result = ApiResponse.error("产品不存在");
  226. renderJson(result);
  227. return;
  228. }
  229. // 查询出库信息
  230. Record deliveryOrder = Db.findFirst("select * from deliveryorders where CaseCode = ?",smallCodeInfo.getStr("master_code"));
  231. //组装返回信息
  232. //产品信息对象、入库信息对象、出库信息对象
  233. Record productInfo = new Record();
  234. productInfo.set("productCode", product.getStr("product_code")).set("productName", product.getStr("product_name"))
  235. .set("itemCode", quality.getStr("item_code")).set("itemName", quality.getStr("item_name"))
  236. .set("category", product.getStr("type_name"));
  237. Record inInfo = new Record();
  238. inInfo.set("productionNo", bigCodeInfo.getStr("task_no")).set("boxCode", code)
  239. .set("cartoonCode", bigCodeInfo.getStr("id")).set("palletCode", bigCodeInfo.getStr("duo_code"))
  240. .set("inboundPerson", bigCodeInfo.getStr("device_no")).set("productionDate", DateUtil.format(bigCodeInfo.getDate("upload_time"), "yyyy-MM-dd HH:mm:ss"));
  241. Record outInfo = new Record();
  242. if(deliveryOrder != null){
  243. outInfo.set("outboundNo", deliveryOrder.getStr("OrderNo")).set("warehouse", deliveryOrder.getStr("OutWarehouse"))
  244. .set("outboundPerson", deliveryOrder.getStr("OperateUser")).set("dealerName", deliveryOrder.getStr("CustomerName"))
  245. .set("salesArea", "").set("outboundTime", DateUtil.format(deliveryOrder.getDate("DeliveryTime"), "yyyy-MM-dd HH:mm:ss"));
  246. }
  247. Record endRecord = new Record();
  248. endRecord.set("product", productInfo).set("inbound", inInfo).set("outbound", outInfo);
  249. result.setData(endRecord);
  250. renderJson(result);
  251. }
  252. }