package com.fzzy.sys.controller.inout;
|
|
import com.fzzy.igds.constant.Constant;
|
import com.fzzy.igds.domain.Depot;
|
import com.fzzy.igds.domain.InoutConf;
|
import com.fzzy.igds.utils.ContextUtil;
|
import com.fzzy.igds.utils.DateUtil;
|
import com.fzzy.sys.manager.common.CommonManager;
|
import com.fzzy.sys.manager.inout.InoutManager;
|
import com.ruoyi.common.core.domain.entity.SysDictData;
|
import com.ruoyi.common.core.domain.entity.SysUser;
|
import lombok.extern.slf4j.Slf4j;
|
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.time.DateFormatUtils;
|
import org.springframework.stereotype.Controller;
|
import org.springframework.ui.ModelMap;
|
import org.springframework.web.bind.annotation.RequestMapping;
|
import org.springframework.web.bind.annotation.RequestParam;
|
|
import javax.annotation.Resource;
|
import javax.servlet.http.HttpServletRequest;
|
import java.util.Date;
|
import java.util.List;
|
|
/**
|
* @Description 出入库控制层
|
* @Author CZT
|
* @Date 2025/11/29 10:56
|
*/
|
@Slf4j
|
@Controller
|
@RequestMapping("basic/inout")
|
public class InoutController {
|
|
private static final String prefix = "inout";
|
|
@Resource
|
private InoutManager inoutManager;
|
@Resource
|
private CommonManager commonManager;
|
|
/**
|
* 出入库快速登记
|
*
|
* @param httpRequest
|
* @param sort 配套号
|
* @param type 业务类型:IN-入库,OUT-出库
|
* @param view
|
* @return
|
*/
|
@RequestMapping("/register")
|
public String register(HttpServletRequest httpRequest,
|
@RequestParam(value = "sort", required = false) String sort,
|
@RequestParam(value = "type", required = false) String type,
|
ModelMap view) {
|
|
SysUser user = ContextUtil.getLoginUser();
|
view.put(Constant.MODEL_KEY_LOGIN_USER, user);
|
|
String deptId = ContextUtil.subDeptId(user);
|
view.put("deptId", deptId);
|
|
if (StringUtils.isEmpty(sort)) {
|
sort = "1";
|
}
|
if (StringUtils.isEmpty(sort)) {
|
sort = inoutManager.getInoutWeightByClient(httpRequest);
|
}
|
|
if (StringUtils.isEmpty(type)) {
|
//默认入库
|
type = Constant.TYPE_IN;
|
}
|
view.put("type", type);
|
|
//称重是否可编辑标签
|
String weightEditTag = inoutManager.getWeightEditTag(user.getCompanyId(), deptId);
|
view.put("weightEditTag", weightEditTag);
|
|
//出入库流程
|
String inoutProgress = inoutManager.getInoutProgressConf(user.getCompanyId(), ContextUtil.subDeptId(user), type);
|
view.put("inoutProgress", inoutProgress);
|
// 当前流程节点
|
view.put("progress", Constant.PROGRESS_REGISTER);
|
|
// 获取出入库配置信息
|
List<InoutConf> listInoutConf = inoutManager.getListInoutConf(user.getCompanyId(), deptId);
|
|
//根据出入库设备信息筛选地磅配置信息,所有地磅,支持用户手动选择
|
List<InoutConf> listWeight = inoutManager.getInoutConf(listInoutConf, Constant.CONF_TYPE_30);
|
view.put("listWeight", listWeight);
|
|
// 获取当前地磅
|
InoutConf weightDto = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_30);
|
view.put("weightDto", weightDto);
|
|
// 过程摄像头1
|
InoutConf conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 1);
|
view.put("snapDto1", conf);
|
|
// 过程摄像头2
|
conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 2);
|
view.put("snapDto2", conf);
|
|
// 过程摄像头3
|
conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 3);
|
view.put("snapDto3", conf);
|
|
return prefix + "/inout-register";
|
}
|
|
/**
|
* 质检页面
|
* @return
|
*/
|
@RequestMapping("/check")
|
public String check(HttpServletRequest httpRequest, ModelMap view) {
|
|
SysUser user = ContextUtil.getLoginUser();
|
view.put(Constant.MODEL_KEY_LOGIN_USER, user);
|
|
String deptId = ContextUtil.subDeptId(user);
|
|
view.put("type", Constant.TYPE_IN);
|
view.put("deptId", deptId);
|
|
// 仓库列表做下拉框使用
|
List<Depot> listDepot = commonManager.listDepotByDeptId(deptId);
|
view.put(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
|
|
//入库流程
|
String inoutProgress = inoutManager.getInoutProgressConf(user.getCompanyId(), deptId, Constant.TYPE_IN);
|
view.put("inoutProgress", inoutProgress);
|
|
// 当前流程节点
|
view.put("progress", Constant.PROGRESS_CHECK);
|
|
// 粮食品种下拉框
|
List<SysDictData> listFoodVariety = commonManager.getDicTrigger(
|
Constant.TRIGGER_PARENT_FOOD_VARIETY, user.getCompanyId());
|
view.put("listFoodVariety", listFoodVariety);
|
|
// 粮食性质下拉框
|
List<SysDictData> listFoodType = commonManager.getDicTrigger(Constant.TRIGGER_PARENT_FOOD_TYPE, user.getCompanyId());
|
view.put("listFoodType", listFoodType);
|
|
// 粮食等级下拉框
|
List<SysDictData> listFoodLevel = commonManager.getDicTrigger(Constant.TRIGGER_PARENT_FOOD_LEVEL, user.getCompanyId());
|
view.put("listFoodLevel", listFoodLevel);
|
|
view.put("endTime", DateFormatUtils.format(new Date(), "yyyy-MM-dd"));
|
view.put("startTime", DateFormatUtils.format(DateUtil.getNewByDay(null, -30), "yyyy-MM-dd"));
|
|
return prefix + "/inout-check";
|
}
|
|
|
/**
|
* 入库称重操作,包括空车称重和满车称重,共用一个页面
|
*
|
* @param sort 表示使用的出入库设备配套号,不传递默认为1
|
* @return
|
*/
|
@RequestMapping("/weight")
|
public String weight(HttpServletRequest httpRequest,
|
@RequestParam(value = "sort", required = false) String sort,
|
@RequestParam(value = "type", required = false) String type,
|
ModelMap view) {
|
|
//如果没有指定地磅,从用户上一个选择中获取
|
if (StringUtils.isEmpty(sort)) {
|
sort = "1";
|
}
|
if (StringUtils.isEmpty(sort)) {
|
sort = inoutManager.getInoutWeightByClient(httpRequest);
|
}
|
|
if (StringUtils.isEmpty(type)) {
|
//默认入库
|
type = Constant.TYPE_IN;
|
}
|
view.put("type", type);
|
|
SysUser user = ContextUtil.getLoginUser();
|
view.put(Constant.MODEL_KEY_LOGIN_USER, user);
|
|
String deptId = ContextUtil.subDeptId(user);
|
view.put("type", type);
|
view.put("deptId", deptId);
|
|
// 仓库列表做下拉框使用
|
List<Depot> listDepot = commonManager.listDepotByDeptId(deptId);
|
view.put(Constant.MODEL_KEY_DEPOT_LIST, listDepot);
|
|
// 当前流程标签
|
view.put("progress", Constant.PROGRESS_WEIGHT_TAG);
|
|
//入库流程配置
|
String inoutProgress = inoutManager.getInoutProgressConf(user.getCompanyId(), deptId, Constant.TYPE_IN);
|
view.put("inoutProgress", inoutProgress);
|
|
//称重是否可编辑标签
|
String weightEditTag = inoutManager.getWeightEditTag(user.getCompanyId(), deptId);
|
view.put("weightEditTag", weightEditTag);
|
|
// 粮食品种下拉框
|
List<SysDictData> listFoodVariety = commonManager.getDicTrigger(Constant.TRIGGER_PARENT_FOOD_VARIETY, user.getCompanyId());
|
view.put("listFoodVariety", listFoodVariety);
|
|
// 获取出入库设备配置信息
|
List<InoutConf> listInoutConf = inoutManager.getListInoutConf(user.getCompanyId(), deptId);
|
|
//根据出入库设备信息筛选地磅配置信息,所有地磅,支持用户手动选择
|
List<InoutConf> listWeight = inoutManager.getInoutConf(listInoutConf, Constant.CONF_TYPE_30);
|
view.put("listWeight", listWeight);
|
|
// 获取当前地磅
|
InoutConf weightDto = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_30);
|
view.put("weightDto", weightDto);
|
|
// 过程摄像头1
|
InoutConf conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 1);
|
view.put("snapDto1", conf);
|
|
// 过程摄像头2
|
conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 2);
|
view.put("snapDto2", conf);
|
|
// 过程摄像头3
|
conf = inoutManager.getInoutConf(listInoutConf, sort, Constant.CONF_TYPE_60, Constant.PROGRESS_WEIGHT_TAG, 3);
|
view.put("snapDto3", conf);
|
|
return prefix + "/inout-weight";
|
}
|
|
}
|