rev:库存预警、预警消息

This commit is contained in:
2024-05-27 15:36:27 +08:00
parent 92a9210dfe
commit 3ea8988711
20 changed files with 890 additions and 258 deletions

View File

@@ -19,6 +19,7 @@
<select id="getStor" resultType="com.alibaba.fastjson.JSONObject">
SELECT
CONVERT(stor_id , CHAR ) AS stor_id,
stor_code,
stor_name
FROM
st_ivt_bsrealstorattr

View File

@@ -14,13 +14,11 @@ import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
public class MaterialQuery extends BaseQuery<MdMeMaterialbase> {
private String local_table_name;
private String search;
@Override
public void paramMapping() {
super.doP.put("local_table_name", QParam.builder().k(new String[]{"local_table_name"}).type(QueryTEnum.EQ).build());
super.doP.put("search", QParam.builder().k(new String[]{"local_field_name", "external_field_name"}).type(QueryTEnum.EQ).build());
super.doP.put("search", QParam.builder().k(new String[]{"material_code","material_name"}).type(QueryTEnum.EQ).build());
}

View File

@@ -1,9 +1,19 @@
package org.nl.wms.early_manage.controller.early_msg;
import org.springframework.web.bind.annotation.RequestMapping;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.entity.PageQuery;
import org.nl.wms.early_manage.service.early_inv.dao.AlmEarlyInv;
import org.nl.wms.early_manage.service.early_msg.IAlmEarlyMsgService;
import org.nl.wms.early_manage.service.early_msg.dao.AlmEarlyMsg;
import org.nl.wms.early_manage.service.early_msg.dto.AlmMsgQuery;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.http.HttpStatus;
import org.springframework.http.ResponseEntity;
import org.springframework.web.bind.annotation.*;
import org.springframework.web.bind.annotation.RestController;
import java.util.Arrays;
/**
* <p>
@@ -18,7 +28,23 @@ import org.springframework.web.bind.annotation.RestController;
>>>>>>> 4d92078988aaae9ca50b029b3d3f00ded39a2bfc:wms_pro/hd/nladmin-system/src/main/java/org/nl/wms/early_manage/controller/early_msg/AlmEarlyMsgController.java
*/
@RestController
@RequestMapping("/almEarlyMsg")
@RequestMapping("/api/almEarlyMsg")
public class AlmEarlyMsgController {
@Autowired
private IAlmEarlyMsgService almEarlyMsgService;
@GetMapping
public ResponseEntity<Object> getAll(AlmMsgQuery query, PageQuery page) {
return new ResponseEntity<>(almEarlyMsgService.getAll(page,query), HttpStatus.OK);
}
@DeleteMapping("/delete")
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
if (ids.length > 0) {
almEarlyMsgService.removeByIds(Arrays.asList(ids));
}
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -2,13 +2,21 @@ package org.nl.wms.early_manage.controller.inv_early;
import cn.hutool.core.date.DateUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.entity.PageQuery;
import org.nl.common.utils.IdUtil;
import org.nl.common.utils.SecurityUtils;
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
import org.nl.wms.base_manage.material.service.dto.MaterialQuery;
import org.nl.wms.early_manage.service.early_dtl.IAlmEarlyDtlService;
import org.nl.wms.early_manage.service.early_dtl.dao.AlmEarlyDtl;
import org.nl.wms.early_manage.service.early_dtl.dto.AlmDtlQuery;
import org.nl.wms.early_manage.service.early_inv.IAlmEarlyInvService;
import org.nl.wms.early_manage.service.early_inv.dao.AlmEarlyInv;
@@ -19,16 +27,19 @@ import org.springframework.http.ResponseEntity;
import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
/**
订单1000
生产订单1000
150--------------------------
| |
|---300 150 150 150 第一天
400 第二天
300 第三天
import java.util.Arrays;
import java.util.List;
/**
* 订单1000
* 生产订单1000
* 150--------------------------
* | |
* |---300 150 150 150 第一天
* 400 第二天
* 300 第三天
**/
**/
/**
* <p>
* 安全库存报警配置表 前端控制器
@@ -45,17 +56,37 @@ public class AlmEarlyInvController {
private IAlmEarlyInvService iAlmEarlyInvService;
@Autowired
private IAlmEarlyDtlService iAlmEarlyDtlService;
@Autowired
private IMdMeMaterialbaseService materialbaseService;
@GetMapping
public ResponseEntity<Object> getAll(AlmInvQuery query, PageQuery page) {
Page<AlmEarlyInv> page1 = iAlmEarlyInvService.page(page.build(), query.build());
return new ResponseEntity<>(TableDataInfo.build(iAlmEarlyInvService.page(page.build(), query.build())), HttpStatus.OK);
}
@GetMapping("/dtl")
public ResponseEntity<Object> getDtl(AlmDtlQuery query, PageQuery page) {
return new ResponseEntity<>(TableDataInfo.build(iAlmEarlyDtlService.page(page.build(),query.build())), HttpStatus.OK);
return new ResponseEntity<>(TableDataInfo.build(iAlmEarlyDtlService.page(page.build(), query.build())), HttpStatus.OK);
}
@GetMapping("/dtl/{id}")
public ResponseEntity<Object> getDtl(@PathVariable String id) {
List<AlmEarlyDtl> list = iAlmEarlyDtlService.list(new LambdaQueryWrapper<AlmEarlyDtl>().eq(AlmEarlyDtl::getAlm_id, id));
JSONArray array = new JSONArray();
for (AlmEarlyDtl almEarlyDtl : list) {
JSONObject jsonObject = new JSONObject();
jsonObject.put("alm_id", almEarlyDtl.getAlm_id());
jsonObject.put("material_id", almEarlyDtl.getMaterial_id());
MdMeMaterialbase materialbase = materialbaseService.getById(almEarlyDtl.getMaterial_id());
jsonObject.put("material_code", materialbase.getMaterial_code());
jsonObject.put("material_name", materialbase.getMaterial_name());
jsonObject.put("material_spec", materialbase.getMaterial_spec());
jsonObject.put("material_model", materialbase.getMaterial_model());
array.add(jsonObject);
}
return new ResponseEntity<>(array, HttpStatus.OK);
}
@PostMapping
public ResponseEntity<Object> create(@Validated @RequestBody JSONObject dto) {
@@ -66,5 +97,39 @@ public class AlmEarlyInvController {
iAlmEarlyInvService.save(inv);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PostMapping("/update")
public ResponseEntity<Object> update(@Validated @RequestBody JSONObject dto) {
AlmEarlyInv inv = dto.toJavaObject(AlmEarlyInv.class);
inv.setCreate_time(DateUtil.now());
iAlmEarlyInvService.updateById(inv);
return new ResponseEntity<>(HttpStatus.CREATED);
}
@PostMapping("/saveDtl")
public ResponseEntity<Object> saveDtl(@Validated @RequestBody JSONObject dto) {
String id = dto.getString("id");
LambdaUpdateWrapper<AlmEarlyDtl> luw = new LambdaUpdateWrapper<>();
luw.eq(AlmEarlyDtl::getAlm_id, id);
iAlmEarlyDtlService.remove(luw);
JSONArray jsonArray = dto.getJSONArray("tableData");
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
String material_id = jsonObject.getString("material_id");
AlmEarlyDtl almEarlyDtl = new AlmEarlyDtl();
almEarlyDtl.setAlm_id(id);
almEarlyDtl.setMaterial_id(material_id);
iAlmEarlyDtlService.save(almEarlyDtl);
}
return new ResponseEntity<>(HttpStatus.CREATED);
}
@DeleteMapping("/delete")
public ResponseEntity<Object> delete(@RequestBody String[] ids) {
if (ids.length > 0) {
iAlmEarlyInvService.removeByIds(Arrays.asList(ids));
}
return new ResponseEntity<>(HttpStatus.OK);
}
}

View File

@@ -16,7 +16,7 @@ public class AlmInvQuery extends BaseQuery<AlmEarlyInv> {
@Override
public void paramMapping() {
super.doP.put("search", QParam.builder().k(new String[]{"local_field_name", "external_field_name"}).type(QueryTEnum.EQ).build());
super.doP.put("search", QParam.builder().k(new String[]{"alm_name"}).type(QueryTEnum.EQ).build());
}

View File

@@ -1,7 +1,9 @@
package org.nl.wms.early_manage.service.early_msg;
import org.nl.common.domain.entity.PageQuery;
import org.nl.wms.early_manage.service.early_msg.dao.AlmEarlyMsg;
import com.baomidou.mybatisplus.extension.service.IService;
import org.nl.wms.early_manage.service.early_msg.dto.AlmMsgQuery;
/**
* <p>
@@ -13,4 +15,5 @@ import com.baomidou.mybatisplus.extension.service.IService;
*/
public interface IAlmEarlyMsgService extends IService<AlmEarlyMsg> {
Object getAll(PageQuery page, AlmMsgQuery query);
}

View File

@@ -0,0 +1,30 @@
package org.nl.wms.early_manage.service.early_msg.dto;
import lombok.Data;
import org.nl.common.domain.entity.BaseQuery;
import org.nl.common.domain.entity.QParam;
import org.nl.common.enums.QueryTEnum;
import org.nl.wms.early_manage.service.early_msg.dao.AlmEarlyMsg;
/*
* @author ZZQ
* @Date 2023/5/4 19:49
*/
@Data
public class AlmMsgQuery extends BaseQuery<AlmEarlyMsg> {
private String early_type;
private String stor_code;
private String vehicle_code;
private String material_code;
@Override
public void paramMapping() {
super.doP.put("early_type", QParam.builder().k(new String[]{"early_type"}).type(QueryTEnum.EQ).build());
super.doP.put("stor_code", QParam.builder().k(new String[]{"stor_code"}).type(QueryTEnum.EQ).build());
super.doP.put("vehicle_code", QParam.builder().k(new String[]{"vehicle_code"}).type(QueryTEnum.LK).build());
super.doP.put("material_code", QParam.builder().k(new String[]{"material_code"}).type(QueryTEnum.LK).build());
}
}

View File

@@ -1,11 +1,25 @@
package org.nl.wms.early_manage.service.early_msg.impl;
import cn.hutool.core.util.ObjectUtil;
import com.alibaba.fastjson.JSONArray;
import com.alibaba.fastjson.JSONObject;
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import org.nl.common.TableDataInfo;
import org.nl.common.domain.entity.PageQuery;
import org.nl.wms.base_manage.material.service.IMdMeMaterialbaseService;
import org.nl.wms.base_manage.material.service.dao.MdMeMaterialbase;
import org.nl.wms.early_manage.service.early_msg.dao.AlmEarlyMsg;
import org.nl.wms.early_manage.service.early_msg.dao.mapper.AlmEarlyMsgMapper;
import org.nl.wms.early_manage.service.early_msg.IAlmEarlyMsgService;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.nl.wms.early_manage.service.early_msg.dto.AlmMsgQuery;
import org.nl.wms.flow_manage.flow.service.execution.dao.ActRuExecution;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import java.util.List;
/**
* <p>
* 仓库报警消息表 服务实现类
@@ -17,4 +31,29 @@ import org.springframework.stereotype.Service;
@Service
public class AlmEarlyMsgServiceImpl extends ServiceImpl<AlmEarlyMsgMapper, AlmEarlyMsg> implements IAlmEarlyMsgService {
@Autowired
private IMdMeMaterialbaseService materialbaseService;
@Override
public Object getAll(PageQuery page, AlmMsgQuery query) {
// totalElements
// content
//判断是否存在子实例
Page<AlmEarlyMsg> almMsgQueryPage = this.page(page.build(), query.build());
long total = almMsgQueryPage.getTotal();
List<AlmEarlyMsg> records = almMsgQueryPage.getRecords();
JSONArray jsonArray = JSONArray.parseArray(JSONArray.toJSONString(records));
for (int i = 0; i < jsonArray.size(); i++) {
JSONObject jsonObject = jsonArray.getJSONObject(i);
MdMeMaterialbase material = materialbaseService.getById(jsonObject.getString("material_id"));
if (ObjectUtil.isNotEmpty(material)){
jsonObject.put("material_code",material.getMaterial_code());
jsonObject.put("material_name",material.getMaterial_name());
}
}
JSONObject json = new JSONObject();
json.put("totalElements",total);
json.put("content",jsonArray);
return json;
}
}