WmspGridMaterialController.java 9.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217
  1. package com.steerinfo.dil.controller;
  2. import com.steerinfo.dil.feign.ESFeign;
  3. import com.steerinfo.dil.model.WmspGridMaterial;
  4. import com.steerinfo.dil.service.IWmspGridMaterialService;
  5. import com.steerinfo.dil.service.impl.WmspGridMaterialServiceImpl;
  6. import com.steerinfo.dil.util.BaseRESTfulController;
  7. import com.steerinfo.dil.util.ColumnDataUtil;
  8. import com.steerinfo.dil.util.PageListAdd;
  9. import com.steerinfo.framework.controller.RESTfulResult;
  10. import com.steerinfo.framework.service.pagehelper.PageHelper;
  11. import com.steerinfo.framework.service.pagehelper.PageList;
  12. import com.steerinfo.framework.utils.collection.ListUtils;
  13. import io.swagger.annotations.ApiImplicitParam;
  14. import io.swagger.annotations.ApiImplicitParams;
  15. import io.swagger.annotations.ApiOperation;
  16. import org.apache.xmlbeans.impl.xb.xsdschema.Public;
  17. import org.springframework.beans.factory.annotation.Autowired;
  18. import org.springframework.transaction.annotation.Transactional;
  19. import org.springframework.web.bind.annotation.*;
  20. import java.math.BigDecimal;
  21. import java.text.DateFormat;
  22. import java.text.ParseException;
  23. import java.text.SimpleDateFormat;
  24. import java.util.*;
  25. /**
  26. * WmspGridMaterial RESTful接口:
  27. * @author generator
  28. * @version 1.0-SNAPSHORT 2021-09-08 06:02
  29. * 类描述
  30. * 修订历史:
  31. * 日期:2021-09-08
  32. * 作者:generator
  33. * 参考:
  34. * 描述:WmspGridMaterial RESTful接口
  35. * @see null
  36. * @Copyright 湖南视拓信息技术股份有限公司. All rights reserved.
  37. */
  38. @RestController
  39. @RequestMapping("/${api.version}/wmspgridmaterials")
  40. public class WmspGridMaterialController extends BaseRESTfulController {
  41. @Autowired
  42. WmspGridMaterialServiceImpl wmspGridMaterialService;
  43. @Autowired
  44. ColumnDataUtil columnDataUtil;
  45. @Autowired
  46. ESFeign esFeign;
  47. @PostMapping(value = "/insertGridMaterial")
  48. public RESTfulResult insertGridMaterial(@RequestBody WmspGridMaterial wmspGridMaterial) {
  49. int code = wmspGridMaterialService.insertSelective(wmspGridMaterial);
  50. return success(code);
  51. }
  52. @PostMapping(value = "/updateGridMeterial")
  53. public RESTfulResult updateGridMeterial(@RequestBody WmspGridMaterial wmspGridMaterial) {
  54. int data = wmspGridMaterialService.updateByPrimaryKeySelective(wmspGridMaterial);
  55. return success(data);
  56. }
  57. // 查询实时库存
  58. @ApiImplicitParam("api:167")
  59. @PostMapping(value = "/selectGridMaterialList")
  60. public RESTfulResult selectGridMaterialList(@RequestBody(required = false) Map<String, Object> mapVal,
  61. Integer pageNum,
  62. Integer pageSize,
  63. Integer apiId,
  64. String con) {
  65. if (con != null) {
  66. if (!"undefined".equals(con)) {
  67. String index = "get_gird_materiallist";//设置要查询的索引名称
  68. return success(esFeign.getConResult(mapVal, index, apiId, pageNum, pageSize, con));//获取查询结果
  69. }
  70. }
  71. List<Map<String, Object>> libaryInBoundList = null;
  72. if (mapVal.size() == 0) {
  73. //将查询结果存入索引中
  74. libaryInBoundList = wmspGridMaterialService.selectGridMaterial(mapVal);
  75. Map<String, Object> map1 = new HashMap<>();
  76. //添加索引
  77. map1.put("index", "get_gird_materiallist");
  78. //添加id
  79. map1.put("indexId", "GridMaterialListId");
  80. libaryInBoundList.add(map1);
  81. //新建索引
  82. esFeign.insertIndex(libaryInBoundList);
  83. //删除
  84. libaryInBoundList.remove(libaryInBoundList.size() - 1);
  85. }
  86. if (libaryInBoundList == null) {
  87. libaryInBoundList = wmspGridMaterialService.selectGridMaterial(mapVal);
  88. }
  89. PageHelper.startPage(pageNum, pageSize);
  90. List<Map<String, Object>> columnList = wmspGridMaterialService.selectGridMaterial(mapVal);
  91. PageListAdd pageList = columnDataUtil.tableColumnData(apiId, libaryInBoundList, columnList);
  92. //库龄预警
  93. for (Map mapValue : columnList) {
  94. BigDecimal gridId = (BigDecimal) mapValue.get("gridId");
  95. List<Map<String, Object>> map2 = wmspGridMaterialService.selectInboundTimeAndThreshold(gridId);
  96. //取出入库日期转换为时间戳
  97. for (Map<String, Object> map1 : map2) {
  98. Date inboundTime = (Date) map1.get("inboundTime");
  99. Date date1 = new Date();
  100. //当前时间减去入库日期
  101. long data1 = date1.getTime() - inboundTime.getTime();
  102. //日期
  103. long days = data1 / (1000 * 60 * 60 * 24);
  104. //小时
  105. long hours = (data1 - days * (1000 * 60 * 60 * 24)) / (1000 * 60 * 60);
  106. //分钟
  107. long minutes = (data1 - days * (1000 * 60 * 60 * 24) - hours * (1000 * 60 * 60)) / (1000 * 60);
  108. //获取标准值
  109. BigDecimal max = (BigDecimal) map1.get("max");
  110. Long Max = max.longValue();
  111. BigDecimal min = (BigDecimal) map1.get("min");
  112. Long Min = min.longValue();
  113. if (days < Max && days >= Min) {
  114. return success();
  115. }
  116. }
  117. }
  118. return success(pageList);
  119. }
  120. //统计实时库存数量
  121. @PostMapping(value = "/countByGmId")
  122. public RESTfulResult countByGmId() {
  123. Long code = wmspGridMaterialService.countByGmId();
  124. return success(code);
  125. }
  126. // 通过成品仓库网格ID查询实时库存
  127. @ApiImplicitParam("通过成品仓库网格ID查询实时库存")
  128. @PostMapping(value = "/selectGridMaterialListByGridId")
  129. public RESTfulResult selectGridMaterialListByGridId(BigDecimal gridId) {
  130. Map<String,Object> mapVal = new HashMap<>();
  131. mapVal.put("gridId",gridId);
  132. List<Map<String, Object>> list = wmspGridMaterialService.selectGridMaterialListByGridId(mapVal);
  133. return success(list);
  134. }
  135. // 修改物资钢材表的质量是否合格字段和逻辑删除
  136. @ApiImplicitParam("修改物资钢材表的质量是否合格字段和逻辑删除")
  137. @PostMapping(value = "/updateRmsMaterialSteelDemotion")
  138. public RESTfulResult updateRmsMaterialSteelDemotion(@RequestBody Map<String,Object> map) {
  139. int i = wmspGridMaterialService.updateRmsMaterialSteelDemotion(map);
  140. return success(i);
  141. }
  142. /**
  143. * 1.查看实时库存物质在实时库存里面没有出库的物质!!!
  144. * @param
  145. * @return
  146. */
  147. @ApiOperation(value = "新增扫描吊牌实绩")
  148. @PostMapping("/getReboundScanResultByResultMaterial")
  149. @Transactional
  150. public synchronized RESTfulResult getReboundScanResultByResultMaterial(@RequestBody(required = false)Map<String,Object>map) throws ParseException {
  151. //已存在的集合
  152. List<Map<String,Object>> list=null;
  153. if (map.containsKey("dateList")&&map.get("dateList")!=null){
  154. list=(List<Map<String, Object>>) map.get("dateList");
  155. }else{
  156. list=new ArrayList<>();
  157. }
  158. //判断是否重复扫描
  159. for (int i=0;i<list.size();i++){
  160. Map<String,Object> item=list.get(i);
  161. if (item.get("resultMaterial").toString().equals(map.get("resultMaterial").toString())){
  162. return success(list);
  163. }
  164. }
  165. //解析扫描信息
  166. //将扫描吊牌结果根据分隔符截取字符串
  167. String[] split = map.get("resultMaterial").toString().split("-");
  168. //唯一编码
  169. String MaterialOnlyCode=split[7];
  170. //查询是否未出库
  171. Map<String,Object> result= wmspGridMaterialService.getReboundScanResultByResultMaterial(map.get("resultMaterial").toString().substring(0,map.get("resultMaterial").toString().length()-1),MaterialOnlyCode);
  172. if (result!=null){
  173. //赋值一个主键
  174. result.put("resultMaterial",map.get("resultMaterial").toString());
  175. //如果没有出库就需要这件钢材放到未出库钢材集合里面
  176. list.add(result);
  177. }
  178. return success(list);
  179. }
  180. @ApiOperation(value = "获得物质类型",notes = "根据仓库垛位层号获得物质类型")
  181. @ApiImplicitParams({
  182. @ApiImplicitParam(name = "warehouseid",dataType = "DECIMAL",value = "仓库"),
  183. @ApiImplicitParam(name = "stackingId",dataType = "BigDicemal",value = "垛位"),
  184. @ApiImplicitParam(name = "gradtionNumber",dataType = "BigDicemal",value = "层号")
  185. })
  186. @GetMapping("/getMaterialTypeList")
  187. public RESTfulResult getMaterialTypeList(String warehouseid,BigDecimal stackingId,BigDecimal gradtionNumber){
  188. //获得一个list<Map<String,Object>> map里面包括:物质Id、物质名称、物质型号、理论重量、物质件数
  189. List<Map<String,Object>> map=wmspGridMaterialService.getMaterialTypeList(warehouseid,stackingId,gradtionNumber);
  190. return success();
  191. }
  192. }