rev:修改
This commit is contained in:
@@ -29,7 +29,7 @@ public class Init implements ApplicationRunner {
|
|||||||
public void run(ApplicationArguments args) throws Exception {
|
public void run(ApplicationArguments args) throws Exception {
|
||||||
// initTwoAttr(4,30,3,2, "2");
|
// initTwoAttr(4,30,3,2, "2");
|
||||||
// createAttr();
|
// createAttr();
|
||||||
// initTwoAttr2(4,10,3);
|
// initTwoAttr2(1,100,1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@@ -66,15 +66,15 @@ public class Init implements ApplicationRunner {
|
|||||||
col_num = "0" + i;
|
col_num = "0" + i;
|
||||||
}
|
}
|
||||||
|
|
||||||
String struct_code = "Z" + row + "-" + col_num + "-" + layer_num + "";
|
String struct_code = "X" + row + "-" + col_num + "-" + layer_num + "";
|
||||||
|
|
||||||
// 新增仓位
|
// 新增仓位
|
||||||
json.setSect_id("1993215690856861696");
|
json.setSect_id("2039261400093822976");
|
||||||
json.setSect_code("ZZC01");
|
json.setSect_code("ESPXN01");
|
||||||
json.setSect_name("中间站(2)主存区");
|
json.setSect_name("恩双平虚拟区");
|
||||||
json.setStor_id("1582991156504039423");
|
json.setStor_id("1582991156504039400");
|
||||||
json.setStor_code("ZJZ01");
|
json.setStor_code("ESP01");
|
||||||
json.setStor_name("中间站(2)仓库");
|
json.setStor_name("恩双平总混颗粒仓库");
|
||||||
json.setLock_type("0");
|
json.setLock_type("0");
|
||||||
|
|
||||||
json.setRow_num(BigDecimal.valueOf(row_num));
|
json.setRow_num(BigDecimal.valueOf(row_num));
|
||||||
@@ -83,7 +83,7 @@ public class Init implements ApplicationRunner {
|
|||||||
json.setBlock_num(BigDecimal.valueOf(1));
|
json.setBlock_num(BigDecimal.valueOf(1));
|
||||||
|
|
||||||
json.setStruct_code(struct_code);
|
json.setStruct_code(struct_code);
|
||||||
json.setStruct_name("Z"+row + "排" + col_num+ "列"+ layer_num +"层");
|
json.setStruct_name("X"+row + "排" + col_num+ "列"+ layer_num +"层");
|
||||||
json.setSimple_name(json.getStruct_name());
|
json.setSimple_name(json.getStruct_name());
|
||||||
|
|
||||||
json.setCreate_id("1");
|
json.setCreate_id("1");
|
||||||
|
|||||||
@@ -8,8 +8,6 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||||
|
|
||||||
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.RsaUtils;
|
import org.nl.common.utils.RsaUtils;
|
||||||
@@ -94,4 +92,22 @@ public class MobileAuthorizationController {
|
|||||||
|
|
||||||
return ResponseEntity.ok(authInfo);
|
return ResponseEntity.ok(authInfo);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public SysUser loginCheck(AuthUserDto authUser) throws Exception {
|
||||||
|
String salt = "salt";
|
||||||
|
// 密码解密 - 前端的加密规则: encrypt(根据实际更改)
|
||||||
|
String password = RsaUtils.decryptByPrivateKey(RsaProperties.privateKey, authUser.getPassword());
|
||||||
|
// 校验数据库
|
||||||
|
// 根据用户名查询,在比对密码
|
||||||
|
// 拿到多个已经抛出异常
|
||||||
|
SysUser userInfo = userService.getOne(new LambdaQueryWrapper<SysUser>()
|
||||||
|
.eq(SysUser::getUsername, authUser.getUsername()));
|
||||||
|
if (ObjectUtil.isEmpty(userInfo) || !userInfo.getPassword().equals(SaSecureUtil.md5BySalt(password, salt))) {
|
||||||
|
throw new BadRequestException(LangProcess.msg("login_pwd"));
|
||||||
|
}
|
||||||
|
if (!userInfo.getIs_used()) {
|
||||||
|
throw new BadRequestException(LangProcess.msg("login_account"));
|
||||||
|
}
|
||||||
|
return userInfo;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -0,0 +1,43 @@
|
|||||||
|
package org.nl.wms.basedata_manage.controller;
|
||||||
|
|
||||||
|
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.base.TableDataInfo;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.common.logging.annotation.Log;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdPdReviewsignService;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.GetMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestMapping;
|
||||||
|
import org.springframework.web.bind.annotation.RequestParam;
|
||||||
|
import org.springframework.web.bind.annotation.RestController;
|
||||||
|
|
||||||
|
import javax.annotation.Resource;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 双签复核表 控制层
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2026-04-01
|
||||||
|
*/
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@RequestMapping("/api/review")
|
||||||
|
@Slf4j
|
||||||
|
public class ReviewSignController {
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("分页查询")
|
||||||
|
public ResponseEntity<Object> query(@RequestParam Map whereJson, PageQuery page) {
|
||||||
|
return new ResponseEntity<>(TableDataInfo.build(iMdPdReviewsignService.queryAll(whereJson, page)), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
}
|
||||||
@@ -0,0 +1,35 @@
|
|||||||
|
package org.nl.wms.basedata_manage.service;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdPdReviewsign;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 双签复核表 服务类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2026-04-01
|
||||||
|
*/
|
||||||
|
public interface IMdPdReviewsignService extends IService<MdPdReviewsign> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
*
|
||||||
|
* @param whereJson : {查询参数}
|
||||||
|
* @param page : 分页对象
|
||||||
|
* @return 返回结果
|
||||||
|
*/
|
||||||
|
IPage<JSONObject> queryAll(Map whereJson, PageQuery page);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 插入双签记录
|
||||||
|
* @param dto 实体类
|
||||||
|
*/
|
||||||
|
void insert(MdPdReviewsign dto);
|
||||||
|
}
|
||||||
@@ -0,0 +1,87 @@
|
|||||||
|
package org.nl.wms.basedata_manage.service.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import lombok.Data;
|
||||||
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
|
import java.io.Serializable;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 双签复核表
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2026-04-01
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
@EqualsAndHashCode(callSuper = false)
|
||||||
|
@TableName("md_pd_reviewsign")
|
||||||
|
public class MdPdReviewsign implements Serializable {
|
||||||
|
|
||||||
|
private static final long serialVersionUID = 1L;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* id标识
|
||||||
|
*/
|
||||||
|
@TableId(value = "id")
|
||||||
|
private String id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 袋码/桶码
|
||||||
|
*/
|
||||||
|
private String bag_code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料标识
|
||||||
|
*/
|
||||||
|
private String material_id;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 批号
|
||||||
|
*/
|
||||||
|
private String pcsn;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 重量
|
||||||
|
*/
|
||||||
|
private String qty;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 时间
|
||||||
|
*/
|
||||||
|
private String create_time;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作人编码
|
||||||
|
*/
|
||||||
|
private String create_code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 操作人名称
|
||||||
|
*/
|
||||||
|
private String create_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复核人编码
|
||||||
|
*/
|
||||||
|
private String review_code;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 复核人名称
|
||||||
|
*/
|
||||||
|
private String review_name;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 动作
|
||||||
|
*/
|
||||||
|
private String action;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 载具编码
|
||||||
|
*/
|
||||||
|
private String vehicle_code;
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
@@ -154,4 +154,14 @@ public interface MdPbStoragevehicleextMapper extends BaseMapper<MdPbStoragevehic
|
|||||||
* @return List<JSONObject>
|
* @return List<JSONObject>
|
||||||
*/
|
*/
|
||||||
List<JSONObject> queryMoreIvt(@Param("param") JSONObject param);
|
List<JSONObject> queryMoreIvt(@Param("param") JSONObject param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 手持查询库存信息(虚拟出库)
|
||||||
|
* @param param {
|
||||||
|
* material_code: 物料编码
|
||||||
|
* pcsn: 批次
|
||||||
|
* }
|
||||||
|
* @return List<JSONObject>
|
||||||
|
*/
|
||||||
|
List<JSONObject> pdaHyQueryIvt(@Param("param") JSONObject param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -658,4 +658,39 @@
|
|||||||
</where>
|
</where>
|
||||||
|
|
||||||
</select>
|
</select>
|
||||||
|
|
||||||
|
|
||||||
|
<select id="pdaHyQueryIvt" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
ext.*,
|
||||||
|
material.material_code,
|
||||||
|
material.material_name,
|
||||||
|
material.quality_code,
|
||||||
|
material.produce_name,
|
||||||
|
class.class_code,
|
||||||
|
class.class_name,
|
||||||
|
attr.struct_code
|
||||||
|
FROM
|
||||||
|
md_pb_storagevehicleext ext
|
||||||
|
INNER JOIN md_me_materialbase material ON material.material_id = ext.material_id
|
||||||
|
INNER JOIN st_ivt_structattr attr ON ext.storagevehicle_code = attr.storagevehicle_code
|
||||||
|
LEFT JOIN md_pb_classstandard class ON class.class_id = material.material_type_id
|
||||||
|
<where>
|
||||||
|
attr.is_used = "1"
|
||||||
|
AND ext.canuse_qty > 0
|
||||||
|
AND attr.sect_code = 'ESPXN01'
|
||||||
|
|
||||||
|
<if test="param.material_code != null and param.material_code != ''">
|
||||||
|
AND
|
||||||
|
(material.material_code LIKE #{param.material_code} or
|
||||||
|
material.material_name LIKE #{param.material_code} )
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="param.pcsn != null and param.pcsn != ''">
|
||||||
|
AND
|
||||||
|
ext.pcsn = #{param.pcsn}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
</where>
|
||||||
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -0,0 +1,30 @@
|
|||||||
|
package org.nl.wms.basedata_manage.service.dao.mapper;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import org.apache.ibatis.annotations.Param;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdPdReviewsign;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 双签复核表 Mapper 接口
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2026-04-01
|
||||||
|
*/
|
||||||
|
public interface MdPdReviewsignMapper extends BaseMapper<MdPdReviewsign> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
*
|
||||||
|
* @param page 分页条件
|
||||||
|
* @param whereJson 查询条件
|
||||||
|
* @return IPage<JSONObject>
|
||||||
|
*/
|
||||||
|
IPage<JSONObject> queryAllByPage(Page<JSONObject> page, @Param("param") Map whereJson);
|
||||||
|
}
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
<?xml version="1.0" encoding="UTF-8"?>
|
||||||
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
|
<mapper namespace="org.nl.wms.basedata_manage.service.dao.mapper.MdPdReviewsignMapper">
|
||||||
|
|
||||||
|
<select id="queryAllByPage" resultType="com.alibaba.fastjson.JSONObject">
|
||||||
|
SELECT
|
||||||
|
review.*,
|
||||||
|
mater.material_code,
|
||||||
|
mater.material_name,
|
||||||
|
mater.quality_code,
|
||||||
|
supp.supp_code,
|
||||||
|
supp.supp_name
|
||||||
|
FROM
|
||||||
|
md_pd_reviewsign review
|
||||||
|
INNER JOIN md_me_materialbase mater ON mater.material_id = review.material_id
|
||||||
|
LEFT JOIN md_cs_supplierbase supp ON mater.supp_code = supp.supp_code
|
||||||
|
where
|
||||||
|
1 = 1
|
||||||
|
<if test="param.material_code != null and param.material_code != ''">
|
||||||
|
AND
|
||||||
|
(mater.material_code LIKE #{param.material_code} or
|
||||||
|
mater.material_name LIKE #{param.material_code} )
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="param.pcsn != null and param.pcsn != ''">
|
||||||
|
AND
|
||||||
|
review.pcsn LIKE #{param.pcsn}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="param.create_name != null and param.create_name != ''">
|
||||||
|
AND
|
||||||
|
review.create_name LIKE #{param.create_name}
|
||||||
|
</if>
|
||||||
|
|
||||||
|
<if test="param.begin_time != null">
|
||||||
|
AND
|
||||||
|
review.create_time >= #{param.begin_time}
|
||||||
|
</if>
|
||||||
|
<if test="param.end_time != null">
|
||||||
|
AND
|
||||||
|
review.create_time <= #{param.end_time}
|
||||||
|
</if>
|
||||||
|
ORDER BY review.create_time Desc
|
||||||
|
</select>
|
||||||
|
|
||||||
|
</mapper>
|
||||||
@@ -0,0 +1,46 @@
|
|||||||
|
package org.nl.wms.basedata_manage.service.impl;
|
||||||
|
|
||||||
|
import cn.hutool.core.date.DateUtil;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.common.utils.IdUtil;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdPdReviewsignService;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdPdReviewsign;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.mapper.MdPdReviewsignMapper;
|
||||||
|
import org.springframework.stereotype.Service;
|
||||||
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* <p>
|
||||||
|
* 双签复核表 服务实现类
|
||||||
|
* </p>
|
||||||
|
*
|
||||||
|
* @author Liuxy
|
||||||
|
* @since 2026-04-01
|
||||||
|
*/
|
||||||
|
@Service
|
||||||
|
public class MdPdReviewsignServiceImpl extends ServiceImpl<MdPdReviewsignMapper, MdPdReviewsign> implements IMdPdReviewsignService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public IPage<JSONObject> queryAll(Map whereJson, PageQuery page) {
|
||||||
|
return this.baseMapper.queryAllByPage(new Page<>(page.getPage() + 1, page.getSize()),
|
||||||
|
whereJson);
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public void insert(MdPdReviewsign dto) {
|
||||||
|
dto.setId(IdUtil.getStringId());
|
||||||
|
dto.setCreate_code(SecurityUtils.getCurrentUsername());
|
||||||
|
dto.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
dto.setCreate_time(DateUtil.now());
|
||||||
|
this.save(dto);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -162,6 +162,7 @@ public class NotCarToWmsServiceImpl implements NotCarToWmsService {
|
|||||||
jsonTask.put("task_group_id", task_group_id);
|
jsonTask.put("task_group_id", task_group_id);
|
||||||
jsonTask.put("material_id", jsonIvt.getMaterial_id());
|
jsonTask.put("material_id", jsonIvt.getMaterial_id());
|
||||||
jsonTask.put("material_qty", jsonIvt.getMaterial_qty());
|
jsonTask.put("material_qty", jsonIvt.getMaterial_qty());
|
||||||
|
jsonTask.put("priority", pointIvtList.size() - i);
|
||||||
noCarBackCpTask.create(jsonTask);
|
noCarBackCpTask.create(jsonTask);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -93,7 +93,7 @@ public class PdaCommonController {
|
|||||||
@PostMapping("/confirmBagAssembly")
|
@PostMapping("/confirmBagAssembly")
|
||||||
@Log("物料组袋-确认组袋")
|
@Log("物料组袋-确认组袋")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> confirmBagAssembly(@RequestBody @Valid AssemblyBagParam param) {
|
public ResponseEntity<Object> confirmBagAssembly(@RequestBody @Valid AssemblyBagParam param) throws Exception {
|
||||||
return new ResponseEntity<>(pdaCommonService.confirmBagAssembly(param), HttpStatus.OK);
|
return new ResponseEntity<>(pdaCommonService.confirmBagAssembly(param), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -107,7 +107,7 @@ public class PdaCommonController {
|
|||||||
@PostMapping("/confirmPalletAssembly")
|
@PostMapping("/confirmPalletAssembly")
|
||||||
@Log("物料组盘-组盘")
|
@Log("物料组盘-组盘")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> confirmPalletAssembly(@RequestBody @Valid AssemblyPalletParam param) {
|
public ResponseEntity<Object> confirmPalletAssembly(@RequestBody @Valid AssemblyPalletParam param) throws Exception {
|
||||||
return new ResponseEntity<>(pdaCommonService.confirmPalletAssembly(param), HttpStatus.OK);
|
return new ResponseEntity<>(pdaCommonService.confirmPalletAssembly(param), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -128,7 +128,7 @@ public class PdaCommonController {
|
|||||||
@PostMapping("/confirmBucketAssembly")
|
@PostMapping("/confirmBucketAssembly")
|
||||||
@Log("物料组桶-组桶")
|
@Log("物料组桶-组桶")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> confirmBucketAssembly(@RequestBody @Valid AssemblyBucketParam param) {
|
public ResponseEntity<Object> confirmBucketAssembly(@RequestBody @Valid AssemblyBucketParam param) throws Exception {
|
||||||
return new ResponseEntity<>(pdaCommonService.confirmBucketAssembly(param), HttpStatus.OK);
|
return new ResponseEntity<>(pdaCommonService.confirmBucketAssembly(param), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -112,4 +112,25 @@ public class PdaWarehouseController {
|
|||||||
public ResponseEntity<Object> confirmMore(@RequestBody JSONObject param) {
|
public ResponseEntity<Object> confirmMore(@RequestBody JSONObject param) {
|
||||||
return new ResponseEntity<>(pdaWarehouseService.confirmMore(param), HttpStatus.OK);
|
return new ResponseEntity<>(pdaWarehouseService.confirmMore(param), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@PostMapping("/hyConfirmIn")
|
||||||
|
@Log("虚拟入库 - 确认入库")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> hyConfirmIn(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(pdaWarehouseService.hyConfirmIn(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/hyQueryIvt")
|
||||||
|
@Log("虚拟出库 - 查询库存明细")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> hyQueryIvt(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(pdaWarehouseService.hyQueryIvt(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/hyConfirmOut")
|
||||||
|
@Log("虚拟出库 - 确认出库")
|
||||||
|
@SaIgnore
|
||||||
|
public ResponseEntity<Object> hyConfirmOut(@RequestBody JSONObject param) {
|
||||||
|
return new ResponseEntity<>(pdaWarehouseService.hyConfirmOut(param), HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -19,7 +19,7 @@ public interface PdaBuildParamService {
|
|||||||
* @param param
|
* @param param
|
||||||
* @param startPoint
|
* @param startPoint
|
||||||
*/
|
*/
|
||||||
void doGroupPallet(JSONObject param, String vehicleCode);
|
void doGroupPallet(JSONObject param, String vehicleCode) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 构建创建任务参数
|
* 构建创建任务参数
|
||||||
|
|||||||
@@ -21,7 +21,7 @@ public interface PdaCommonService {
|
|||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PdaResponse confirmBagAssembly(AssemblyBagParam param);
|
PdaResponse confirmBagAssembly(AssemblyBagParam param) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 获取组袋信息
|
* 获取组袋信息
|
||||||
@@ -37,7 +37,7 @@ public interface PdaCommonService {
|
|||||||
* @param param
|
* @param param
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PdaResponse confirmPalletAssembly(AssemblyPalletParam param);
|
PdaResponse confirmPalletAssembly(AssemblyPalletParam param) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 空托盘入库
|
* 空托盘入库
|
||||||
@@ -47,7 +47,7 @@ public interface PdaCommonService {
|
|||||||
*/
|
*/
|
||||||
PdaResponse inEmptyVehicle(JSONObject param);
|
PdaResponse inEmptyVehicle(JSONObject param);
|
||||||
|
|
||||||
PdaResponse confirmBucketAssembly(AssemblyBucketParam param);
|
PdaResponse confirmBucketAssembly(AssemblyBucketParam param) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 空载具堆叠-查询点位堆叠明细
|
* 空载具堆叠-查询点位堆叠明细
|
||||||
|
|||||||
@@ -110,4 +110,32 @@ public interface PdaWarehouseService {
|
|||||||
* @return PdaResponse
|
* @return PdaResponse
|
||||||
*/
|
*/
|
||||||
PdaResponse confirmMore(JSONObject param);
|
PdaResponse confirmMore(JSONObject param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 虚拟入库 - 确认入库
|
||||||
|
* @param param : {
|
||||||
|
* rows: 明细
|
||||||
|
* }
|
||||||
|
* @return PdaResponse
|
||||||
|
*/
|
||||||
|
PdaResponse hyConfirmIn(JSONObject param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 虚拟出库 - 查询库存明细
|
||||||
|
* @param param : {
|
||||||
|
* material_code: 物料编码
|
||||||
|
* pcsn: 批次
|
||||||
|
* }
|
||||||
|
* @return PdaResponse
|
||||||
|
*/
|
||||||
|
PdaResponse hyQueryIvt(JSONObject param);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 虚拟出库 - 确认出库
|
||||||
|
* @param param {
|
||||||
|
* rows [列表明细]
|
||||||
|
* }
|
||||||
|
* @return PdaResponse
|
||||||
|
*/
|
||||||
|
PdaResponse hyConfirmOut(JSONObject param);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -28,6 +28,10 @@ public class AssemblyBagParam {
|
|||||||
private String pcsn;
|
private String pcsn;
|
||||||
@NotNull(message = "数量不能为空")
|
@NotNull(message = "数量不能为空")
|
||||||
private BigDecimal qty;
|
private BigDecimal qty;
|
||||||
|
@NotBlank(message = "复核人编码不能为空")
|
||||||
|
private String username;
|
||||||
|
@NotBlank(message = "复核人名称不能为空")
|
||||||
|
private String password;
|
||||||
|
|
||||||
public static GroupPlate buildGroupObj(AssemblyBagParam param) {
|
public static GroupPlate buildGroupObj(AssemblyBagParam param) {
|
||||||
GroupPlate groupPlate = new GroupPlate();
|
GroupPlate groupPlate = new GroupPlate();
|
||||||
|
|||||||
@@ -22,5 +22,9 @@ public class AssemblyBucketParam {
|
|||||||
@NotBlank(message = "批次号不能为空")
|
@NotBlank(message = "批次号不能为空")
|
||||||
private String pcsn;
|
private String pcsn;
|
||||||
private BigDecimal qty;
|
private BigDecimal qty;
|
||||||
|
@NotBlank(message = "复核人编码不能为空")
|
||||||
|
private String username;
|
||||||
|
@NotBlank(message = "复核人名称不能为空")
|
||||||
|
private String password;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -16,6 +16,10 @@ import java.util.List;
|
|||||||
public class AssemblyPalletParam {
|
public class AssemblyPalletParam {
|
||||||
@NotBlank(message = "托盘码不能为空")
|
@NotBlank(message = "托盘码不能为空")
|
||||||
private String vehicle_code;
|
private String vehicle_code;
|
||||||
@NotNull(message = "吨袋信息不能为空")
|
@NotNull(message = "袋信息不能为空")
|
||||||
private List<GroupPlate> group_plates;
|
private List<GroupPlate> group_plates;
|
||||||
|
@NotBlank(message = "复核人编码不能为空")
|
||||||
|
private String username;
|
||||||
|
@NotBlank(message = "复核人名称不能为空")
|
||||||
|
private String password;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class DefaultPdaBuildParamService implements PdaBuildParamService {
|
|||||||
private IStructattrService structattrService;
|
private IStructattrService structattrService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void doGroupPallet(JSONObject param, String vehicleCode) {
|
public void doGroupPallet(JSONObject param, String vehicleCode) throws Exception {
|
||||||
JSONArray rows = param.getJSONArray("rows");
|
JSONArray rows = param.getJSONArray("rows");
|
||||||
List<String> bagCode = rows
|
List<String> bagCode = rows
|
||||||
.stream()
|
.stream()
|
||||||
|
|||||||
@@ -13,11 +13,17 @@ import lombok.extern.slf4j.Slf4j;
|
|||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.config.SpringContextHolder;
|
||||||
|
import org.nl.system.controller.secutiry.MobileAuthorizationController;
|
||||||
import org.nl.system.service.dict.ISysDictService;
|
import org.nl.system.service.dict.ISysDictService;
|
||||||
|
import org.nl.system.service.secutiry.dto.AuthUserDto;
|
||||||
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleinfoService;
|
||||||
import org.nl.wms.basedata_manage.service.IMdPdGroupbucketService;
|
import org.nl.wms.basedata_manage.service.IMdPdGroupbucketService;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdPdReviewsignService;
|
||||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdPdReviewsign;
|
||||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPdGroupbucketMapper;
|
import org.nl.wms.basedata_manage.service.dao.mapper.MdPdGroupbucketMapper;
|
||||||
import org.nl.wms.pda.general_management.service.PdaCommonService;
|
import org.nl.wms.pda.general_management.service.PdaCommonService;
|
||||||
@@ -48,6 +54,7 @@ import org.springframework.stereotype.Service;
|
|||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
import javax.annotation.Resource;
|
import javax.annotation.Resource;
|
||||||
|
import javax.validation.constraints.NotNull;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.concurrent.TimeUnit;
|
import java.util.concurrent.TimeUnit;
|
||||||
@@ -88,6 +95,8 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
private IMdPdGroupbucketService groupbucketService;
|
private IMdPdGroupbucketService groupbucketService;
|
||||||
@Resource
|
@Resource
|
||||||
private MdPdGroupbucketMapper mdPdGroupbucketMapper;
|
private MdPdGroupbucketMapper mdPdGroupbucketMapper;
|
||||||
|
@Resource
|
||||||
|
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 点位服务类
|
* 点位服务类
|
||||||
@@ -106,6 +115,7 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public PdaResponse callEmptyVehicle(JSONObject param) {
|
public PdaResponse callEmptyVehicle(JSONObject param) {
|
||||||
log.info("手持请求呼叫空托盘:{}", param);
|
log.info("手持请求呼叫空托盘:{}", param);
|
||||||
RLock lock = redissonClient.getLock("lock:callEmptyVehicle");
|
RLock lock = redissonClient.getLock("lock:callEmptyVehicle");
|
||||||
@@ -162,7 +172,15 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse confirmBagAssembly(AssemblyBagParam param) {
|
@Transactional
|
||||||
|
public PdaResponse confirmBagAssembly(AssemblyBagParam param) throws Exception {
|
||||||
|
// -------------调用接口进行账户密码进行校验-------------
|
||||||
|
MobileAuthorizationController bean = SpringContextHolder.getBean(MobileAuthorizationController.class);
|
||||||
|
AuthUserDto authUserDto = new AuthUserDto();
|
||||||
|
authUserDto.setUsername(param.getUsername());
|
||||||
|
authUserDto.setPassword(param.getPassword());
|
||||||
|
SysUser sysUser = bean.loginCheck(authUserDto);
|
||||||
|
|
||||||
List<GroupPlate> list = groupplateService.list(new LambdaQueryWrapper<GroupPlate>()
|
List<GroupPlate> list = groupplateService.list(new LambdaQueryWrapper<GroupPlate>()
|
||||||
.eq(GroupPlate::getBag_code, param.getBagNo())
|
.eq(GroupPlate::getBag_code, param.getBagNo())
|
||||||
.le(GroupPlate::getStatus, "2"));
|
.le(GroupPlate::getStatus, "2"));
|
||||||
@@ -171,6 +189,17 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
}
|
}
|
||||||
GroupPlate groupPlate = AssemblyBagParam.buildGroupObj(param);
|
GroupPlate groupPlate = AssemblyBagParam.buildGroupObj(param);
|
||||||
groupplateService.save(groupPlate);
|
groupplateService.save(groupPlate);
|
||||||
|
|
||||||
|
// -------------插入双签记录-------------
|
||||||
|
MdPdReviewsign mdPdReviewsign = new MdPdReviewsign();
|
||||||
|
mdPdReviewsign.setBag_code(groupPlate.getBag_code());
|
||||||
|
mdPdReviewsign.setMaterial_id(groupPlate.getMaterial_id());
|
||||||
|
mdPdReviewsign.setPcsn(groupPlate.getPcsn());
|
||||||
|
mdPdReviewsign.setQty(groupPlate.getQty().toString());
|
||||||
|
mdPdReviewsign.setReview_code(sysUser.getUsername());
|
||||||
|
mdPdReviewsign.setReview_name(sysUser.getPerson_name());
|
||||||
|
mdPdReviewsign.setAction("组袋");
|
||||||
|
iMdPdReviewsignService.insert(mdPdReviewsign);
|
||||||
return PdaResponse.requestOk("组袋成功!");
|
return PdaResponse.requestOk("组袋成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -190,7 +219,14 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public PdaResponse confirmPalletAssembly(AssemblyPalletParam param) {
|
public PdaResponse confirmPalletAssembly(AssemblyPalletParam param) throws Exception {
|
||||||
|
// -------------调用接口进行账户密码进行校验-------------
|
||||||
|
MobileAuthorizationController bean = SpringContextHolder.getBean(MobileAuthorizationController.class);
|
||||||
|
AuthUserDto authUserDto = new AuthUserDto();
|
||||||
|
authUserDto.setUsername(param.getUsername());
|
||||||
|
authUserDto.setPassword(param.getPassword());
|
||||||
|
SysUser sysUser = bean.loginCheck(authUserDto);
|
||||||
|
|
||||||
// 判断此载具状态
|
// 判断此载具状态
|
||||||
JSONObject jsonObject = new JSONObject();
|
JSONObject jsonObject = new JSONObject();
|
||||||
jsonObject.put("vehicle_code", param.getVehicle_code());
|
jsonObject.put("vehicle_code", param.getVehicle_code());
|
||||||
@@ -207,11 +243,28 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
groupPlate.setVehicle_code(param.getVehicle_code());
|
groupPlate.setVehicle_code(param.getVehicle_code());
|
||||||
groupPlate.setTableData(param.getGroup_plates());
|
groupPlate.setTableData(param.getGroup_plates());
|
||||||
groupplateService.create(groupPlate);
|
groupplateService.create(groupPlate);
|
||||||
|
|
||||||
|
// -------------插入双签记录-------------
|
||||||
|
List<GroupPlate> lateList = param.getGroup_plates();
|
||||||
|
for (int i = 0; i < lateList.size(); i++) {
|
||||||
|
GroupPlate dao = lateList.get(i);
|
||||||
|
MdPdReviewsign mdPdReviewsign = new MdPdReviewsign();
|
||||||
|
mdPdReviewsign.setBag_code(dao.getBag_code());
|
||||||
|
mdPdReviewsign.setMaterial_id(dao.getMaterial_id());
|
||||||
|
mdPdReviewsign.setPcsn(dao.getPcsn());
|
||||||
|
mdPdReviewsign.setQty(dao.getQty().toString());
|
||||||
|
mdPdReviewsign.setReview_code(sysUser.getUsername());
|
||||||
|
mdPdReviewsign.setReview_name(sysUser.getPerson_name());
|
||||||
|
mdPdReviewsign.setAction("组盘");
|
||||||
|
mdPdReviewsign.setVehicle_code(param.getVehicle_code());
|
||||||
|
iMdPdReviewsignService.insert(mdPdReviewsign);
|
||||||
|
}
|
||||||
return PdaResponse.requestOk("组盘成功!");
|
return PdaResponse.requestOk("组盘成功!");
|
||||||
}
|
}
|
||||||
|
|
||||||
@SneakyThrows
|
@SneakyThrows
|
||||||
@Override
|
@Override
|
||||||
|
@Transactional
|
||||||
public PdaResponse inEmptyVehicle(JSONObject param) {
|
public PdaResponse inEmptyVehicle(JSONObject param) {
|
||||||
log.info("手持请求空托盘入库:{}", param);
|
log.info("手持请求空托盘入库:{}", param);
|
||||||
RLock lock = redissonClient.getLock("lock:inEmptyVehicle");
|
RLock lock = redissonClient.getLock("lock:inEmptyVehicle");
|
||||||
@@ -231,7 +284,15 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse confirmBucketAssembly(AssemblyBucketParam param) {
|
@Transactional
|
||||||
|
public PdaResponse confirmBucketAssembly(AssemblyBucketParam param) throws Exception {
|
||||||
|
// -------------调用接口进行账户密码进行校验-------------
|
||||||
|
MobileAuthorizationController bean = SpringContextHolder.getBean(MobileAuthorizationController.class);
|
||||||
|
AuthUserDto authUserDto = new AuthUserDto();
|
||||||
|
authUserDto.setUsername(param.getUsername());
|
||||||
|
authUserDto.setPassword(param.getPassword());
|
||||||
|
SysUser sysUser = bean.loginCheck(authUserDto);
|
||||||
|
|
||||||
String bucket_code = param.getBucket_code();
|
String bucket_code = param.getBucket_code();
|
||||||
// 查询桶码是否存在
|
// 查询桶码是否存在
|
||||||
storagevehicleinfoService.getByCode(bucket_code);
|
storagevehicleinfoService.getByCode(bucket_code);
|
||||||
@@ -250,6 +311,17 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
|||||||
groupbucket.setQty_unit_id("1585604695483879424");
|
groupbucket.setQty_unit_id("1585604695483879424");
|
||||||
groupbucket.setQty_unit_name("千克");
|
groupbucket.setQty_unit_name("千克");
|
||||||
groupbucketService.save(groupbucket);
|
groupbucketService.save(groupbucket);
|
||||||
|
|
||||||
|
// -------------插入双签记录-------------
|
||||||
|
MdPdReviewsign mdPdReviewsign = new MdPdReviewsign();
|
||||||
|
mdPdReviewsign.setBag_code(groupbucket.getBucket_code());
|
||||||
|
mdPdReviewsign.setMaterial_id(groupbucket.getMaterial_id());
|
||||||
|
mdPdReviewsign.setPcsn(groupbucket.getPcsn());
|
||||||
|
mdPdReviewsign.setQty(IOSConstant.ZERO);
|
||||||
|
mdPdReviewsign.setReview_code(sysUser.getUsername());
|
||||||
|
mdPdReviewsign.setReview_name(sysUser.getPerson_name());
|
||||||
|
mdPdReviewsign.setAction("组桶");
|
||||||
|
iMdPdReviewsignService.insert(mdPdReviewsign);
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
|
|||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.config.IdUtil;
|
import org.nl.config.IdUtil;
|
||||||
import org.nl.config.SpringContextHolder;
|
import org.nl.config.SpringContextHolder;
|
||||||
import org.nl.system.service.param.ISysParamService;
|
import org.nl.system.service.param.ISysParamService;
|
||||||
@@ -16,6 +17,8 @@ import org.nl.wms.ext.util.NoCarResponse;
|
|||||||
import org.nl.wms.pda.general_management.service.PdaNotCarService;
|
import org.nl.wms.pda.general_management.service.PdaNotCarService;
|
||||||
import org.nl.wms.pda.util.PDAEnum;
|
import org.nl.wms.pda.util.PDAEnum;
|
||||||
import org.nl.wms.pda.util.PdaResponse;
|
import org.nl.wms.pda.util.PdaResponse;
|
||||||
|
import org.nl.wms.pdm_management.service.IMdPdmPackagingService;
|
||||||
|
import org.nl.wms.pdm_management.service.dao.MdPdmPackaging;
|
||||||
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
import org.nl.wms.sch_manage.service.dao.SchBasePoint;
|
||||||
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
import org.nl.wms.sch_manage.service.dao.mapper.SchBasePointMapper;
|
||||||
import org.nl.wms.sch_manage.service.util.tasks.NoCarBackCpTask;
|
import org.nl.wms.sch_manage.service.util.tasks.NoCarBackCpTask;
|
||||||
@@ -79,6 +82,12 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
@Resource
|
@Resource
|
||||||
private MdMeMaterialbaseMapper mdMeMaterialbaseMapper;
|
private MdMeMaterialbaseMapper mdMeMaterialbaseMapper;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 收货服务
|
||||||
|
*/
|
||||||
|
@Resource
|
||||||
|
private IMdPdmPackagingService iMdPdmPackagingService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse queryNotCarPoint() {
|
public PdaResponse queryNotCarPoint() {
|
||||||
return PdaResponse.requestParamOk(schBasePointMapper.queryNotCarPoint());
|
return PdaResponse.requestParamOk(schBasePointMapper.queryNotCarPoint());
|
||||||
@@ -97,11 +106,57 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
// 根据物料类型查询目的点位
|
// 根据物料类型查询目的点位
|
||||||
List<SchBasePoint> pointList = new ArrayList<>();
|
List<SchBasePoint> pointList = new ArrayList<>();
|
||||||
if (json.getString("class_code").equals(IOSConstant.WBC001)) {
|
if (json.getString("class_code").equals(IOSConstant.WBC001)) {
|
||||||
|
// 1-说明书 2-小箱子 3-大箱子
|
||||||
|
String material_type = "";
|
||||||
|
// 说明书
|
||||||
|
Param wbc_1 = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("wbc_1");
|
||||||
|
// 小箱子
|
||||||
|
Param wbc_2 = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("wbc_2");
|
||||||
|
// 大箱子
|
||||||
|
Param wbc_3 = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("wbc_3");
|
||||||
|
if (wbc_1.getValue().contains(json.getString("material_code"))) {
|
||||||
|
material_type = IOSConstant.ONE;
|
||||||
|
} else if (wbc_2.getValue().contains(json.getString("material_code"))) {
|
||||||
|
material_type = IOSConstant.TWO;
|
||||||
|
} else if (wbc_3.getValue().contains(json.getString("material_code"))) {
|
||||||
|
material_type = IOSConstant.THREE;
|
||||||
|
}
|
||||||
|
if (ObjectUtil.isEmpty(material_type)) {
|
||||||
|
throw new BadRequestException("当前物料编码【" + json.getString("material_code") + "】没有存放位!");
|
||||||
|
}
|
||||||
// 查询存放外包材区域
|
// 查询存放外包材区域
|
||||||
pointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.AGVDJ01, IOSConstant.ONE, IOSConstant.ONE);
|
pointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.AGVDJ01, IOSConstant.ONE, IOSConstant.ONE, material_type);
|
||||||
|
// 插入外包材库存
|
||||||
|
if (ObjectUtil.isNotEmpty(pointList)) {
|
||||||
|
MdPdmPackaging packDao = iMdPdmPackagingService.getOne(
|
||||||
|
new QueryWrapper<MdPdmPackaging>().lambda()
|
||||||
|
.eq(MdPdmPackaging::getPoint_code, pointList.get(0).getPoint_code())
|
||||||
|
);
|
||||||
|
if (ObjectUtil.isNotEmpty(packDao)) {
|
||||||
|
// 更新
|
||||||
|
packDao.setMaterial_id(json.getString("material_id"));
|
||||||
|
packDao.setPcsn(json.getString("pcsn"));
|
||||||
|
packDao.setQty(json.getBigDecimal("material_qty"));
|
||||||
|
packDao.setRemark("由无人车卸货创建");
|
||||||
|
iMdPdmPackagingService.updateById(packDao);
|
||||||
|
} else {
|
||||||
|
// 插入
|
||||||
|
MdPdmPackaging mdPdmPackaging = new MdPdmPackaging();
|
||||||
|
mdPdmPackaging.setPacking_id(IdUtil.getStringId());
|
||||||
|
mdPdmPackaging.setMaterial_id(json.getString("material_id"));
|
||||||
|
mdPdmPackaging.setPcsn(json.getString("material_pcsn"));
|
||||||
|
mdPdmPackaging.setQty(json.getBigDecimal("material_qty"));
|
||||||
|
mdPdmPackaging.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
|
mdPdmPackaging.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
|
mdPdmPackaging.setCreate_time(DateUtil.now());
|
||||||
|
mdPdmPackaging.setPoint_code(pointList.get(0).getPoint_code());
|
||||||
|
mdPdmPackaging.setRemark("由无人车卸货创建");
|
||||||
|
iMdPdmPackagingService.save(mdPdmPackaging);
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
// 查询无人车卸货缓存区域
|
// 查询无人车卸货缓存区域
|
||||||
pointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.WXHHC01, IOSConstant.ONE, IOSConstant.ONE);
|
pointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.WXHHC01, IOSConstant.ONE, IOSConstant.ONE, null);
|
||||||
}
|
}
|
||||||
if (ObjectUtil.isEmpty(pointList)) {
|
if (ObjectUtil.isEmpty(pointList)) {
|
||||||
throw new BadRequestException("卸货点位无空位可用!");
|
throw new BadRequestException("卸货点位无空位可用!");
|
||||||
@@ -114,7 +169,9 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
jsonTask.put("point_code2", pointList.get(0).getPoint_code());
|
jsonTask.put("point_code2", pointList.get(0).getPoint_code());
|
||||||
jsonTask.put("material_id", json.getString("material_id"));
|
jsonTask.put("material_id", json.getString("material_id"));
|
||||||
jsonTask.put("material_qty", json.getString("material_qty"));
|
jsonTask.put("material_qty", json.getString("material_qty"));
|
||||||
|
jsonTask.put("material_pcsn", json.getString("material_pcsn"));
|
||||||
jsonTask.put("task_group_id", task_group_id);
|
jsonTask.put("task_group_id", task_group_id);
|
||||||
|
jsonTask.put("priority", rows.size() - i);
|
||||||
noCarUnloadTask.create(jsonTask);
|
noCarUnloadTask.create(jsonTask);
|
||||||
}
|
}
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
@@ -131,7 +188,7 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse queryZhPoint(JSONObject whereJson) {
|
public PdaResponse queryZhPoint(JSONObject whereJson) {
|
||||||
List<SchBasePoint> pointList = schBasePointMapper.getNoTaskPointByRegionAndType("CPQ01", IOSConstant.ONE, IOSConstant.TWO);
|
List<SchBasePoint> pointList = schBasePointMapper.getNoTaskPointByRegionAndType("CPQ01", IOSConstant.ONE, IOSConstant.TWO, null);
|
||||||
if (ObjectUtil.isNotEmpty(whereJson.getString("point_code"))) {
|
if (ObjectUtil.isNotEmpty(whereJson.getString("point_code"))) {
|
||||||
pointList = pointList.stream()
|
pointList = pointList.stream()
|
||||||
.filter(row -> row.getPoint_code().equals(whereJson.getString("point_code")))
|
.filter(row -> row.getPoint_code().equals(whereJson.getString("point_code")))
|
||||||
@@ -245,8 +302,12 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
// 根据点位分组
|
// 根据点位分组
|
||||||
Map<String, List<JSONObject>> pointMapList = pointList.stream()
|
Map<String, List<JSONObject>> pointMapList = pointList.stream()
|
||||||
.collect(Collectors.groupingBy(obj -> obj.getString("point_code")));
|
.collect(Collectors.groupingBy(obj -> obj.getString("point_code")));
|
||||||
// 外包位
|
// 说明书
|
||||||
int wbClass = 0;
|
int wbcClass_1 = 0;
|
||||||
|
// 小纸箱
|
||||||
|
int wbcClass_2 = 0;
|
||||||
|
// 大纸箱
|
||||||
|
int wbcClass_3 = 0;
|
||||||
// 无人车卸货缓存
|
// 无人车卸货缓存
|
||||||
int materialClass = 0;
|
int materialClass = 0;
|
||||||
|
|
||||||
@@ -270,9 +331,27 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
throw new BadRequestException("当前点位【" + point + "】存在不相同物料,请处理!");
|
throw new BadRequestException("当前点位【" + point + "】存在不相同物料,请处理!");
|
||||||
}
|
}
|
||||||
schBasePoint.setMaterial_qty(list.get(0).getString("qty"));
|
schBasePoint.setMaterial_qty(list.get(0).getString("qty"));
|
||||||
|
schBasePoint.setMaterial_pcsn(list.get(0).getString("pcsn"));
|
||||||
// 更新需要用到的货位数量
|
// 更新需要用到的货位数量
|
||||||
if (list.get(0).getString("class_code").equals(IOSConstant.WBC001)) {
|
if (list.get(0).getString("class_code").equals(IOSConstant.WBC001)) {
|
||||||
wbClass += 1;
|
// 说明书
|
||||||
|
Param wbc_1 = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("wbc_1");
|
||||||
|
// 小箱子
|
||||||
|
Param wbc_2 = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("wbc_2");
|
||||||
|
// 大箱子
|
||||||
|
Param wbc_3 = SpringContextHolder.getBean(SysParamServiceImpl.class).findByCode("wbc_3");
|
||||||
|
// 判断是哪些外包材
|
||||||
|
for (JSONObject item : list) {
|
||||||
|
if (wbc_1.getValue().contains(item.getString("material_code"))) {
|
||||||
|
wbcClass_1 += 1;
|
||||||
|
} else if (wbc_2.getValue().contains(item.getString("material_code"))) {
|
||||||
|
wbcClass_2 += 1;
|
||||||
|
} else if (wbc_3.getValue().contains(item.getString("material_code"))) {
|
||||||
|
wbcClass_3 += 1;
|
||||||
|
} else {
|
||||||
|
throw new BadRequestException("当前物料编码【" + item.getString("material_code") + "】没有存放位!");
|
||||||
|
}
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
materialClass += 1;
|
materialClass += 1;
|
||||||
}
|
}
|
||||||
@@ -282,6 +361,7 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
.map(row -> row.getDoubleValue("qty"))
|
.map(row -> row.getDoubleValue("qty"))
|
||||||
.reduce(Double::sum).orElse(0.0);
|
.reduce(Double::sum).orElse(0.0);
|
||||||
schBasePoint.setMaterial_qty(String.valueOf(qty));
|
schBasePoint.setMaterial_qty(String.valueOf(qty));
|
||||||
|
schBasePoint.setMaterial_pcsn(list.get(0).getString("pcsn"));
|
||||||
// 更新需要用到的货位数量
|
// 更新需要用到的货位数量
|
||||||
materialClass = +1;
|
materialClass = +1;
|
||||||
}
|
}
|
||||||
@@ -289,15 +369,29 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
schBasePointMapper.updateById(schBasePoint);
|
schBasePointMapper.updateById(schBasePoint);
|
||||||
}
|
}
|
||||||
// ---------------校验车间空位---------------
|
// ---------------校验车间空位---------------
|
||||||
if (wbClass > 0) {
|
if (wbcClass_1 > 0) {
|
||||||
// 查询外包材空位
|
// 查询外包材说明书空位
|
||||||
List<SchBasePoint> wbPointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.AGVDJ01, IOSConstant.ONE, IOSConstant.ONE);
|
List<SchBasePoint> wbPointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.AGVDJ01, IOSConstant.ONE, IOSConstant.ONE, IOSConstant.ONE);
|
||||||
if (wbClass > wbPointList.size()) {
|
if (wbcClass_1 > wbPointList.size()) {
|
||||||
throw new BadRequestException("存放外包材空位不足,当前需要空位【" + wbClass + "】当前已有空位【" + wbPointList.size() + "】");
|
throw new BadRequestException("说明书空位不足,当前需要空位【" + wbcClass_1 + "】当前已有空位【" + wbPointList.size() + "】");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (wbcClass_2 > 0) {
|
||||||
|
// 查询外包材小箱子空位
|
||||||
|
List<SchBasePoint> wbPointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.AGVDJ01, IOSConstant.ONE, IOSConstant.ONE, IOSConstant.TWO);
|
||||||
|
if (wbcClass_2 > wbPointList.size()) {
|
||||||
|
throw new BadRequestException("小箱空位不足,当前需要空位【" + wbcClass_2 + "】当前已有空位【" + wbPointList.size() + "】");
|
||||||
|
}
|
||||||
|
}
|
||||||
|
if (wbcClass_3 > 0) {
|
||||||
|
// 查询外包材大箱子空位
|
||||||
|
List<SchBasePoint> wbPointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.AGVDJ01, IOSConstant.ONE, IOSConstant.ONE, IOSConstant.THREE);
|
||||||
|
if (wbcClass_3 > wbPointList.size()) {
|
||||||
|
throw new BadRequestException("大箱空位不足,当前需要空位【" + wbcClass_3 + "】当前已有空位【" + wbPointList.size() + "】");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (materialClass > 0) {
|
if (materialClass > 0) {
|
||||||
List<SchBasePoint> xhPointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.WXHHC01, IOSConstant.ONE, IOSConstant.ONE);
|
List<SchBasePoint> xhPointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.WXHHC01, IOSConstant.ONE, IOSConstant.ONE, null);
|
||||||
if (materialClass > xhPointList.size()) {
|
if (materialClass > xhPointList.size()) {
|
||||||
throw new BadRequestException("卸货缓存区空位不足,当前需要空位【" + materialClass + "】当前已有空位【" + xhPointList.size() + "】");
|
throw new BadRequestException("卸货缓存区空位不足,当前需要空位【" + materialClass + "】当前已有空位【" + xhPointList.size() + "】");
|
||||||
}
|
}
|
||||||
@@ -368,7 +462,7 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
|||||||
// 呼叫无人车
|
// 呼叫无人车
|
||||||
NoCarResponse noCarResponse = wmsToNotCarService.callNotCat(param);
|
NoCarResponse noCarResponse = wmsToNotCarService.callNotCat(param);
|
||||||
if (noCarResponse.getCode() != 200) {
|
if (noCarResponse.getCode() != 200) {
|
||||||
throw new BadRequestException("下发无人车任务失败"+noCarResponse.getMsg());
|
throw new BadRequestException("下发无人车任务失败" + noCarResponse.getMsg());
|
||||||
}
|
}
|
||||||
} catch (Exception ignored) {
|
} catch (Exception ignored) {
|
||||||
throw new BadRequestException(ignored.getMessage());
|
throw new BadRequestException(ignored.getMessage());
|
||||||
|
|||||||
@@ -18,14 +18,15 @@ import org.nl.common.utils.CodeUtil;
|
|||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.MapOf;
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.config.SpringContextHolder;
|
||||||
|
import org.nl.system.controller.secutiry.MobileAuthorizationController;
|
||||||
import org.nl.system.service.param.ISysParamService;
|
import org.nl.system.service.param.ISysParamService;
|
||||||
import org.nl.system.service.param.dao.Param;
|
import org.nl.system.service.param.dao.Param;
|
||||||
|
import org.nl.system.service.secutiry.dto.AuthUserDto;
|
||||||
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||||
import org.nl.wms.basedata_manage.service.*;
|
import org.nl.wms.basedata_manage.service.*;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
import org.nl.wms.basedata_manage.service.dao.*;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleinfo;
|
|
||||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
|
||||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
|
||||||
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
||||||
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
||||||
import org.nl.wms.pda.general_management.service.PdaProductionService;
|
import org.nl.wms.pda.general_management.service.PdaProductionService;
|
||||||
@@ -124,6 +125,9 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
private SectMaterialCheck sectMaterialCheck;
|
private SectMaterialCheck sectMaterialCheck;
|
||||||
@Resource
|
@Resource
|
||||||
private SchBasePointMapper schBasePointMapper;
|
private SchBasePointMapper schBasePointMapper;
|
||||||
|
@Resource
|
||||||
|
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse getGroupInfo(JSONObject param) {
|
public PdaResponse getGroupInfo(JSONObject param) {
|
||||||
// search;
|
// search;
|
||||||
@@ -306,6 +310,13 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||||
try {
|
try {
|
||||||
if (tryLock) {
|
if (tryLock) {
|
||||||
|
// -------------调用接口进行账户密码进行校验-------------
|
||||||
|
MobileAuthorizationController bean = SpringContextHolder.getBean(MobileAuthorizationController.class);
|
||||||
|
AuthUserDto authUserDto = new AuthUserDto();
|
||||||
|
authUserDto.setUsername(param.getString("username"));
|
||||||
|
authUserDto.setPassword(param.getString("password"));
|
||||||
|
SysUser sysUser = bean.loginCheck(authUserDto);
|
||||||
|
|
||||||
String search = param.getString("search");
|
String search = param.getString("search");
|
||||||
SchBasePoint startPoint = pointService.getByPointCode(search, false);
|
SchBasePoint startPoint = pointService.getByPointCode(search, false);
|
||||||
if (ObjectUtil.isEmpty(startPoint)) {
|
if (ObjectUtil.isEmpty(startPoint)) {
|
||||||
@@ -344,6 +355,21 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
|||||||
// 3 创建任务
|
// 3 创建任务
|
||||||
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
||||||
rawAssistIStorService.divPoint(jsonMst);
|
rawAssistIStorService.divPoint(jsonMst);
|
||||||
|
|
||||||
|
// -------------插入双签记录-------------
|
||||||
|
for (int i = 0; i < res.size(); i++) {
|
||||||
|
JSONObject json = res.get(i);
|
||||||
|
MdPdReviewsign mdPdReviewsign = new MdPdReviewsign();
|
||||||
|
mdPdReviewsign.setBag_code(json.getString("bag_code"));
|
||||||
|
mdPdReviewsign.setMaterial_id(json.getString("material_id"));
|
||||||
|
mdPdReviewsign.setPcsn(json.getString("pcsn"));
|
||||||
|
mdPdReviewsign.setQty(json.getString("qty"));
|
||||||
|
mdPdReviewsign.setReview_code(sysUser.getUsername());
|
||||||
|
mdPdReviewsign.setReview_name(sysUser.getPerson_name());
|
||||||
|
mdPdReviewsign.setAction("剩料回库");
|
||||||
|
mdPdReviewsign.setVehicle_code(startPoint.getVehicle_code());
|
||||||
|
iMdPdReviewsignService.insert(mdPdReviewsign);
|
||||||
|
}
|
||||||
} else {
|
} else {
|
||||||
log.info("空载具回库");
|
log.info("空载具回库");
|
||||||
// 空载具回库
|
// 空载具回库
|
||||||
|
|||||||
@@ -10,14 +10,15 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|||||||
import lombok.SneakyThrows;
|
import lombok.SneakyThrows;
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.exception.BadRequestException;
|
import org.nl.common.exception.BadRequestException;
|
||||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
|
import org.nl.common.utils.CodeUtil;
|
||||||
import org.nl.wms.basedata_manage.service.IMdPdGroupbucketService;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.wms.basedata_manage.service.ISectattrService;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
import org.nl.config.SpringContextHolder;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
import org.nl.system.controller.secutiry.MobileAuthorizationController;
|
||||||
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
import org.nl.system.service.secutiry.dto.AuthUserDto;
|
||||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
import org.nl.wms.basedata_manage.service.*;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.*;
|
||||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
import org.nl.wms.basedata_manage.service.dao.mapper.MdPbStoragevehicleextMapper;
|
||||||
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
import org.nl.wms.pda.general_management.service.PdaBuildParamService;
|
||||||
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
import org.nl.wms.pda.general_management.service.PdaWarehouseService;
|
||||||
@@ -39,6 +40,7 @@ import org.nl.wms.warehouse_management.service.dao.mapper.MdPbGroupplateMapper;
|
|||||||
import org.nl.wms.warehouse_management.service.dto.MoreOrLessInsertDto;
|
import org.nl.wms.warehouse_management.service.dto.MoreOrLessInsertDto;
|
||||||
import org.redisson.api.RLock;
|
import org.redisson.api.RLock;
|
||||||
import org.redisson.api.RedissonClient;
|
import org.redisson.api.RedissonClient;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.transaction.annotation.Transactional;
|
import org.springframework.transaction.annotation.Transactional;
|
||||||
|
|
||||||
@@ -107,6 +109,21 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
|||||||
@Resource
|
@Resource
|
||||||
private IMdPdGroupbucketService iMdPdGroupbucketService;
|
private IMdPdGroupbucketService iMdPdGroupbucketService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 计量单位服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IMdPbMeasureunitService iMdPbMeasureunitService;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 物料服务
|
||||||
|
*/
|
||||||
|
@Autowired
|
||||||
|
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse getPalletAssembly(JSONObject param) {
|
public PdaResponse getPalletAssembly(JSONObject param) {
|
||||||
String bag_code = param.getString("bag_code");
|
String bag_code = param.getString("bag_code");
|
||||||
@@ -514,6 +531,13 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
|||||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||||
try {
|
try {
|
||||||
if (tryLock) {
|
if (tryLock) {
|
||||||
|
// -------------调用接口进行账户密码进行校验-------------
|
||||||
|
MobileAuthorizationController bean = SpringContextHolder.getBean(MobileAuthorizationController.class);
|
||||||
|
AuthUserDto authUserDto = new AuthUserDto();
|
||||||
|
authUserDto.setUsername(param.getString("username"));
|
||||||
|
authUserDto.setPassword(param.getString("password"));
|
||||||
|
SysUser sysUser = bean.loginCheck(authUserDto);
|
||||||
|
|
||||||
List<JSONObject> jsonList = param.getJSONArray("rows").toJavaList(JSONObject.class);
|
List<JSONObject> jsonList = param.getJSONArray("rows").toJavaList(JSONObject.class);
|
||||||
if (ObjectUtil.isEmpty(jsonList)) {
|
if (ObjectUtil.isEmpty(jsonList)) {
|
||||||
throw new BadRequestException("数据为空!");
|
throw new BadRequestException("数据为空!");
|
||||||
@@ -531,11 +555,11 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
|||||||
if (qty < change_qty) {
|
if (qty < change_qty) {
|
||||||
// 溢
|
// 溢
|
||||||
moreOrLessInsertDto.setMol_type(IOSEnum.MORE_TYPE.code("溢"));
|
moreOrLessInsertDto.setMol_type(IOSEnum.MORE_TYPE.code("溢"));
|
||||||
ivt_qty = NumberUtil.sub(change_qty,qty);
|
ivt_qty = NumberUtil.sub(change_qty, qty);
|
||||||
} else if (qty > change_qty) {
|
} else if (qty > change_qty) {
|
||||||
// 损
|
// 损
|
||||||
moreOrLessInsertDto.setMol_type(IOSEnum.MORE_TYPE.code("损"));
|
moreOrLessInsertDto.setMol_type(IOSEnum.MORE_TYPE.code("损"));
|
||||||
ivt_qty = NumberUtil.sub(qty,change_qty);
|
ivt_qty = NumberUtil.sub(qty, change_qty);
|
||||||
} else {
|
} else {
|
||||||
// 不处理
|
// 不处理
|
||||||
continue;
|
continue;
|
||||||
@@ -548,7 +572,7 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
|||||||
.eq(Structattr::getStoragevehicle_code, json.getString("vehicle_code"))
|
.eq(Structattr::getStoragevehicle_code, json.getString("vehicle_code"))
|
||||||
);
|
);
|
||||||
if (ObjectUtil.isEmpty(attrList)) {
|
if (ObjectUtil.isEmpty(attrList)) {
|
||||||
throw new BadRequestException("当前载具【"+json.getString("vehicle_code")+"】不在库内");
|
throw new BadRequestException("当前载具【" + json.getString("vehicle_code") + "】不在库内");
|
||||||
}
|
}
|
||||||
moreOrLessInsertDto.setStor_id(attrList.get(0).getStor_id());
|
moreOrLessInsertDto.setStor_id(attrList.get(0).getStor_id());
|
||||||
moreOrLessInsertDto.setTotal_qty(BigDecimal.valueOf(ivt_qty));
|
moreOrLessInsertDto.setTotal_qty(BigDecimal.valueOf(ivt_qty));
|
||||||
@@ -583,17 +607,28 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
|||||||
// 更新袋重量
|
// 更新袋重量
|
||||||
groupplateService.update(
|
groupplateService.update(
|
||||||
new UpdateWrapper<GroupPlate>().lambda()
|
new UpdateWrapper<GroupPlate>().lambda()
|
||||||
.eq(GroupPlate::getBag_code, json.getString("bag_code"))
|
.eq(GroupPlate::getBag_code, json.getString("bag_code"))
|
||||||
.set(GroupPlate::getQty, change_qty)
|
.set(GroupPlate::getQty, change_qty)
|
||||||
);
|
);
|
||||||
} else {
|
} else {
|
||||||
// 更新桶重量
|
// 更新桶重量
|
||||||
iMdPdGroupbucketService.update(
|
iMdPdGroupbucketService.update(
|
||||||
new UpdateWrapper<MdPdGroupbucket>().lambda()
|
new UpdateWrapper<MdPdGroupbucket>().lambda()
|
||||||
.eq(MdPdGroupbucket::getBucket_code, json.getString("vehicle_code"))
|
.eq(MdPdGroupbucket::getBucket_code, json.getString("vehicle_code"))
|
||||||
.set(MdPdGroupbucket::getQty, change_qty)
|
.set(MdPdGroupbucket::getQty, change_qty)
|
||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
// -------------插入双签记录-------------
|
||||||
|
MdPdReviewsign mdPdReviewsign = new MdPdReviewsign();
|
||||||
|
mdPdReviewsign.setBag_code(json.getString("bag_code"));
|
||||||
|
mdPdReviewsign.setMaterial_id(json.getString("material_id"));
|
||||||
|
mdPdReviewsign.setPcsn(json.getString("pcsn"));
|
||||||
|
mdPdReviewsign.setQty(json.getString("change_qty"));
|
||||||
|
mdPdReviewsign.setReview_code(sysUser.getUsername());
|
||||||
|
mdPdReviewsign.setReview_name(sysUser.getPerson_name());
|
||||||
|
mdPdReviewsign.setAction("损益");
|
||||||
|
mdPdReviewsign.setVehicle_code(json.getString("vehicle_code"));
|
||||||
|
iMdPdReviewsignService.insert(mdPdReviewsign);
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new BadRequestException("当前业务繁忙,稍后再试...");
|
throw new BadRequestException("当前业务繁忙,稍后再试...");
|
||||||
@@ -605,4 +640,110 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
|||||||
}
|
}
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@Transactional
|
||||||
|
public PdaResponse hyConfirmIn(JSONObject param) {
|
||||||
|
List<JSONObject> rowsList = param.getJSONArray("rows").toJavaList(JSONObject.class);
|
||||||
|
if (ObjectUtil.isEmpty(rowsList)) {
|
||||||
|
throw new BadRequestException("明细不能为空");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 组织入库参数
|
||||||
|
List<MdPbStoragevehicleext> updateIvtList = new ArrayList<>();
|
||||||
|
for (JSONObject json : rowsList) {
|
||||||
|
MdMeMaterialbase materialDao = iMdMeMaterialbaseService.getByCode(json.getString("material_code"));
|
||||||
|
if (ObjectUtil.isEmpty(materialDao)) {
|
||||||
|
throw new BadRequestException("物料【" + json.getString("material_code") + "】不存在!");
|
||||||
|
}
|
||||||
|
MdPbMeasureunit unitDao = iMdPbMeasureunitService.getById(materialDao.getBase_unit_id());
|
||||||
|
if (ObjectUtil.isEmpty(unitDao)) {
|
||||||
|
throw new BadRequestException("计量单位标识【" + materialDao.getBase_unit_id() + "】不存在!");
|
||||||
|
}
|
||||||
|
String xn_vehicle_code = CodeUtil.getNewCode("XN_VEHICLE_CODE");
|
||||||
|
// 查询一个虚拟空位
|
||||||
|
List<Structattr> attrList = structattrService.list(
|
||||||
|
new QueryWrapper<Structattr>().lambda()
|
||||||
|
.eq(Structattr::getIs_used, IOSConstant.IS_DELETE_YES)
|
||||||
|
.eq(Structattr::getLock_type, IOSEnum.LOCK_TYPE.code("未锁定"))
|
||||||
|
.eq(Structattr::getSect_code, IOSEnum.SECT_CODE.code("恩双平虚拟库区"))
|
||||||
|
.eq(Structattr::getIs_delete, IOSConstant.IS_DELETE_NO)
|
||||||
|
.and(wrapper -> wrapper.isNull(Structattr::getStoragevehicle_code).or().eq(Structattr::getStoragevehicle_code, ""))
|
||||||
|
.orderByAsc(Structattr::getStruct_code)
|
||||||
|
);
|
||||||
|
if (ObjectUtil.isEmpty(attrList)) {
|
||||||
|
throw new BadRequestException("没有可用的虚拟库位!");
|
||||||
|
}
|
||||||
|
// 更新仓位载具号
|
||||||
|
Structattr structattr = attrList.get(0);
|
||||||
|
structattr.setStoragevehicle_code(xn_vehicle_code);
|
||||||
|
structattrService.updateById(structattr);
|
||||||
|
|
||||||
|
// 新增新载具库存信息
|
||||||
|
MdPbStoragevehicleext extParamDao = new MdPbStoragevehicleext();
|
||||||
|
extParamDao.setStoragevehicleext_id(IdUtil.getStringId());
|
||||||
|
extParamDao.setStoragevehicle_code(xn_vehicle_code);
|
||||||
|
extParamDao.setMaterial_id(json.getString("material_id"));
|
||||||
|
extParamDao.setPcsn(json.getString("pcsn"));
|
||||||
|
extParamDao.setQty_unit_id(unitDao.getMeasure_unit_id());
|
||||||
|
extParamDao.setQty_unit_name(unitDao.getUnit_name());
|
||||||
|
extParamDao.setCanuse_qty(json.getBigDecimal("qty"));
|
||||||
|
extParamDao.setFrozen_qty(BigDecimal.valueOf(0));
|
||||||
|
extParamDao.setInsert_time(DateUtil.now());
|
||||||
|
extParamDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||||
|
extParamDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||||
|
extParamDao.setUpdate_time(DateUtil.now());
|
||||||
|
updateIvtList.add(extParamDao);
|
||||||
|
}
|
||||||
|
iMdPbStoragevehicleextService.saveBatch(updateIvtList);
|
||||||
|
return PdaResponse.requestOk();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PdaResponse hyQueryIvt(JSONObject param) {
|
||||||
|
return PdaResponse.requestParamOk(mdPbStoragevehicleextMapper.pdaHyQueryIvt(param));
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public PdaResponse hyConfirmOut(JSONObject param) {
|
||||||
|
List<JSONObject> rowsList = param.getJSONArray("rows").toJavaList(JSONObject.class);
|
||||||
|
if (ObjectUtil.isEmpty(rowsList)) {
|
||||||
|
throw new BadRequestException("明细不能为空");
|
||||||
|
}
|
||||||
|
for (JSONObject json : rowsList) {
|
||||||
|
MdPbStoragevehicleext extDao = iMdPbStoragevehicleextService.getOne(
|
||||||
|
new QueryWrapper<MdPbStoragevehicleext>().lambda()
|
||||||
|
.eq(MdPbStoragevehicleext::getStoragevehicleext_id, json.getString("storagevehicleext_id"))
|
||||||
|
);
|
||||||
|
if (ObjectUtil.isEmpty(extDao)) {
|
||||||
|
throw new BadRequestException("当前载具【" + extDao.getStoragevehicle_code() + "】不存在相关物料批次库存,请检查数据!");
|
||||||
|
}
|
||||||
|
|
||||||
|
// 减扣库存
|
||||||
|
double canuse_qty = NumberUtil.sub(extDao.getCanuse_qty(), json.getDoubleValue("canuse_qty")).doubleValue();
|
||||||
|
if (canuse_qty <= 0) {
|
||||||
|
// 删除
|
||||||
|
iMdPbStoragevehicleextService.removeById(extDao);
|
||||||
|
// 更新仓位
|
||||||
|
Structattr structattr = structattrService.getOne(
|
||||||
|
new QueryWrapper<Structattr>().lambda()
|
||||||
|
.eq(Structattr::getStoragevehicle_code, extDao.getStoragevehicle_code())
|
||||||
|
.eq(Structattr::getSect_code, IOSEnum.SECT_CODE.code("恩双平虚拟库区"))
|
||||||
|
);
|
||||||
|
if (ObjectUtil.isEmpty(structattr)) {
|
||||||
|
throw new BadRequestException("虚拟托盘为【" + extDao.getStoragevehicle_code() + "】的仓位不存在!");
|
||||||
|
}
|
||||||
|
structattr.setStoragevehicle_code("");
|
||||||
|
structattrService.updateById(structattr);
|
||||||
|
} else {
|
||||||
|
// 更新
|
||||||
|
extDao.setCanuse_qty(BigDecimal.valueOf(canuse_qty));
|
||||||
|
extDao.setUpdate_optid(SecurityUtils.getCurrentUserId());
|
||||||
|
extDao.setUpdate_optname(SecurityUtils.getCurrentNickName());
|
||||||
|
extDao.setUpdate_time(DateUtil.now());
|
||||||
|
iMdPbStoragevehicleextService.updateById(extDao);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return PdaResponse.requestOk();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -77,7 +77,7 @@ public class PdaPackagingController {
|
|||||||
@PostMapping("/packInConfirm")
|
@PostMapping("/packInConfirm")
|
||||||
@Log("外包材送入-送入")
|
@Log("外包材送入-送入")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> packInConfirm(@RequestBody JSONObject whereJson) {
|
public ResponseEntity<Object> packInConfirm(@RequestBody JSONObject whereJson) throws Exception {
|
||||||
return new ResponseEntity<>(pdaPackagingService.packInConfirm(whereJson), HttpStatus.OK);
|
return new ResponseEntity<>(pdaPackagingService.packInConfirm(whereJson), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -98,7 +98,7 @@ public class PdaPackagingController {
|
|||||||
@PostMapping("/packConfirmReturn")
|
@PostMapping("/packConfirmReturn")
|
||||||
@Log("外包材还回-确认还回")
|
@Log("外包材还回-确认还回")
|
||||||
@SaIgnore
|
@SaIgnore
|
||||||
public ResponseEntity<Object> packConfirmReturn(@RequestBody JSONObject whereJson) {
|
public ResponseEntity<Object> packConfirmReturn(@RequestBody JSONObject whereJson) throws Exception {
|
||||||
return new ResponseEntity<>(pdaPackagingService.packConfirmReturn(whereJson), HttpStatus.OK);
|
return new ResponseEntity<>(pdaPackagingService.packConfirmReturn(whereJson), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -86,7 +86,7 @@ public interface PdaPackagingService {
|
|||||||
* }
|
* }
|
||||||
* @return PdaResponse
|
* @return PdaResponse
|
||||||
*/
|
*/
|
||||||
PdaResponse packInConfirm(JSONObject whereJson);
|
PdaResponse packInConfirm(JSONObject whereJson) throws Exception;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 外包材领用-查询点位库存明细
|
* 外包材领用-查询点位库存明细
|
||||||
@@ -122,5 +122,5 @@ public interface PdaPackagingService {
|
|||||||
* }
|
* }
|
||||||
* @return PdaResponse
|
* @return PdaResponse
|
||||||
*/
|
*/
|
||||||
PdaResponse packConfirmReturn(JSONObject whereJson);
|
PdaResponse packConfirmReturn(JSONObject whereJson) throws Exception;
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -10,6 +10,12 @@ import org.nl.common.exception.BadRequestException;
|
|||||||
import org.nl.common.utils.IdUtil;
|
import org.nl.common.utils.IdUtil;
|
||||||
import org.nl.common.utils.JSONObjectOf;
|
import org.nl.common.utils.JSONObjectOf;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
|
import org.nl.config.SpringContextHolder;
|
||||||
|
import org.nl.system.controller.secutiry.MobileAuthorizationController;
|
||||||
|
import org.nl.system.service.secutiry.dto.AuthUserDto;
|
||||||
|
import org.nl.system.service.user.dao.SysUser;
|
||||||
|
import org.nl.wms.basedata_manage.service.IMdPdReviewsignService;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.MdPdReviewsign;
|
||||||
import org.nl.wms.pda.general_management.service.PdaPublicInterfaceService;
|
import org.nl.wms.pda.general_management.service.PdaPublicInterfaceService;
|
||||||
import org.nl.wms.pda.packaging_management.service.PdaPackagingService;
|
import org.nl.wms.pda.packaging_management.service.PdaPackagingService;
|
||||||
import org.nl.wms.pda.util.PdaResponse;
|
import org.nl.wms.pda.util.PdaResponse;
|
||||||
@@ -71,6 +77,8 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
|||||||
*/
|
*/
|
||||||
@Resource
|
@Resource
|
||||||
private PackagingMiddleTask packagingMiddleTask;
|
private PackagingMiddleTask packagingMiddleTask;
|
||||||
|
@Resource
|
||||||
|
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PdaResponse queryPointRegion(JSONObject whereJson) {
|
public PdaResponse queryPointRegion(JSONObject whereJson) {
|
||||||
@@ -201,7 +209,14 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public PdaResponse packInConfirm(JSONObject whereJson) {
|
public PdaResponse packInConfirm(JSONObject whereJson) throws Exception {
|
||||||
|
// -------------调用接口进行账户密码进行校验-------------
|
||||||
|
MobileAuthorizationController bean = SpringContextHolder.getBean(MobileAuthorizationController.class);
|
||||||
|
AuthUserDto authUserDto = new AuthUserDto();
|
||||||
|
authUserDto.setUsername(whereJson.getString("username"));
|
||||||
|
authUserDto.setPassword(whereJson.getString("password"));
|
||||||
|
SysUser sysUser = bean.loginCheck(authUserDto);
|
||||||
|
|
||||||
List<JSONObject> rows = whereJson.getJSONArray("rows").toJavaList(JSONObject.class);
|
List<JSONObject> rows = whereJson.getJSONArray("rows").toJavaList(JSONObject.class);
|
||||||
// 创建agv任务
|
// 创建agv任务
|
||||||
JSONObject jsonTask = new JSONObject();
|
JSONObject jsonTask = new JSONObject();
|
||||||
@@ -215,6 +230,17 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
|||||||
jsonTask.put("material_qty", whereJson.getString("total_qty"));
|
jsonTask.put("material_qty", whereJson.getString("total_qty"));
|
||||||
jsonTask.put("task_type", ACSTaskTypeEnum.AGV_TASK.getCode());
|
jsonTask.put("task_type", ACSTaskTypeEnum.AGV_TASK.getCode());
|
||||||
packagingMiddleTask.create(jsonTask);
|
packagingMiddleTask.create(jsonTask);
|
||||||
|
|
||||||
|
// -------------插入双签记录-------------
|
||||||
|
MdPdReviewsign mdPdReviewsign = new MdPdReviewsign();
|
||||||
|
mdPdReviewsign.setBag_code("");
|
||||||
|
mdPdReviewsign.setMaterial_id(rows.get(0).getString("material_id"));
|
||||||
|
mdPdReviewsign.setPcsn(rows.get(0).getString("pcsn"));
|
||||||
|
mdPdReviewsign.setQty(whereJson.getString("total_qty"));
|
||||||
|
mdPdReviewsign.setReview_code(sysUser.getUsername());
|
||||||
|
mdPdReviewsign.setReview_name(sysUser.getPerson_name());
|
||||||
|
mdPdReviewsign.setAction("外包材送入");
|
||||||
|
iMdPdReviewsignService.insert(mdPdReviewsign);
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -266,7 +292,14 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional
|
@Transactional
|
||||||
public PdaResponse packConfirmReturn(JSONObject whereJson) {
|
public PdaResponse packConfirmReturn(JSONObject whereJson) throws Exception {
|
||||||
|
// -------------调用接口进行账户密码进行校验-------------
|
||||||
|
MobileAuthorizationController bean = SpringContextHolder.getBean(MobileAuthorizationController.class);
|
||||||
|
AuthUserDto authUserDto = new AuthUserDto();
|
||||||
|
authUserDto.setUsername(whereJson.getString("username"));
|
||||||
|
authUserDto.setPassword(whereJson.getString("password"));
|
||||||
|
SysUser sysUser = bean.loginCheck(authUserDto);
|
||||||
|
|
||||||
SchBasePoint pointDao = iSchBasePointService.getById(whereJson.getString("point_code"));
|
SchBasePoint pointDao = iSchBasePointService.getById(whereJson.getString("point_code"));
|
||||||
if (ObjectUtil.isEmpty(pointDao)) {
|
if (ObjectUtil.isEmpty(pointDao)) {
|
||||||
throw new BadRequestException("当前点位不存在【" + whereJson.getString("point_code") + "】");
|
throw new BadRequestException("当前点位不存在【" + whereJson.getString("point_code") + "】");
|
||||||
@@ -320,6 +353,17 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
|||||||
// 新增带你为库存记录
|
// 新增带你为库存记录
|
||||||
iMdPdmPackagingService.save(mdPdmPackaging);
|
iMdPdmPackagingService.save(mdPdmPackaging);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// -------------插入双签记录-------------
|
||||||
|
MdPdReviewsign mdPdReviewsign = new MdPdReviewsign();
|
||||||
|
mdPdReviewsign.setBag_code("");
|
||||||
|
mdPdReviewsign.setMaterial_id(whereJson.getString("material_id"));
|
||||||
|
mdPdReviewsign.setPcsn(whereJson.getString("pcsn"));
|
||||||
|
mdPdReviewsign.setQty(whereJson.getString("qty"));
|
||||||
|
mdPdReviewsign.setReview_code(sysUser.getUsername());
|
||||||
|
mdPdReviewsign.setReview_name(sysUser.getPerson_name());
|
||||||
|
mdPdReviewsign.setAction("外包材还回");
|
||||||
|
iMdPdReviewsignService.insert(mdPdReviewsign);
|
||||||
return PdaResponse.requestOk();
|
return PdaResponse.requestOk();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -134,6 +134,7 @@ public class SchBasePoint implements Serializable {
|
|||||||
private String material_id;
|
private String material_id;
|
||||||
|
|
||||||
private String material_qty;
|
private String material_qty;
|
||||||
|
private String material_pcsn;
|
||||||
|
|
||||||
@TableField(exist = false)
|
@TableField(exist = false)
|
||||||
private List<String> can_vehicle_types;
|
private List<String> can_vehicle_types;
|
||||||
|
|||||||
@@ -78,7 +78,7 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
|||||||
*/
|
*/
|
||||||
List<JSONObject> pdaQueryPointDtl(@Param("param") JSONObject whereJson);
|
List<JSONObject> pdaQueryPointDtl(@Param("param") JSONObject whereJson);
|
||||||
|
|
||||||
List<SchBasePoint> getNoTaskPointByRegionAndType(String region, String type, String pointStatus);
|
List<SchBasePoint> getNoTaskPointByRegionAndType(String region, String type, String pointStatus, String material_type);
|
||||||
|
|
||||||
List<SchBasePoint> getNoTaskPointByRegionAndTypeCp(String region, String type, String pointStatus);
|
List<SchBasePoint> getNoTaskPointByRegionAndTypeCp(String region, String type, String pointStatus);
|
||||||
|
|
||||||
|
|||||||
@@ -204,6 +204,10 @@
|
|||||||
AND (t.point_code1 = p.point_code OR
|
AND (t.point_code1 = p.point_code OR
|
||||||
t.point_code2 = p.point_code OR t.point_code3 = p.point_code OR t.point_code4 = p.point_code)
|
t.point_code2 = p.point_code OR t.point_code3 = p.point_code OR t.point_code4 = p.point_code)
|
||||||
AND '5' > t.task_status)
|
AND '5' > t.task_status)
|
||||||
|
<if test="material_type != null and material_type != ''">
|
||||||
|
AND
|
||||||
|
p.ext_point_code = #{material_type}
|
||||||
|
</if>
|
||||||
</select>
|
</select>
|
||||||
<select id="getNoTaskPointByRegionAndTypeCp" resultType="org.nl.wms.sch_manage.service.dao.SchBasePoint">
|
<select id="getNoTaskPointByRegionAndTypeCp" resultType="org.nl.wms.sch_manage.service.dao.SchBasePoint">
|
||||||
SELECT *
|
SELECT *
|
||||||
|
|||||||
@@ -305,7 +305,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<SchBasePoint> getNoTaskPointByRegionAndType(String region, String type, String pointStatus) {
|
public List<SchBasePoint> getNoTaskPointByRegionAndType(String region, String type, String pointStatus) {
|
||||||
return this.baseMapper.getNoTaskPointByRegionAndType(region, type, pointStatus);
|
return this.baseMapper.getNoTaskPointByRegionAndType(region, type, pointStatus,null);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
|
|||||||
@@ -80,7 +80,7 @@ public class NoCarBackCpTask extends AbstractTask {
|
|||||||
task.setMaterial_id(json.getString("material_id"));
|
task.setMaterial_id(json.getString("material_id"));
|
||||||
task.setMaterial_qty(json.getBigDecimal("material_qty"));
|
task.setMaterial_qty(json.getBigDecimal("material_qty"));
|
||||||
task.setRequest_param(json.toString());
|
task.setRequest_param(json.toString());
|
||||||
task.setPriority(json.getString("Priority"));
|
task.setPriority(json.getString("priority"));
|
||||||
task.setTask_group_id(json.getString("task_group_id"));
|
task.setTask_group_id(json.getString("task_group_id"));
|
||||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
@@ -105,7 +105,7 @@ public class NoCarBackCpTask extends AbstractTask {
|
|||||||
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
|
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
|
||||||
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
|
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
|
||||||
|
|
||||||
acsTaskDto.setPriority(IOSConstant.ONE);
|
acsTaskDto.setPriority(taskDao.getPriority());
|
||||||
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
|
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
|
||||||
|
|
||||||
return acsTaskDto;
|
return acsTaskDto;
|
||||||
|
|||||||
@@ -82,7 +82,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
|||||||
task.setTask_group_id(json.getString("task_group_id"));
|
task.setTask_group_id(json.getString("task_group_id"));
|
||||||
task.setMaterial_qty(json.getBigDecimal("material_qty"));
|
task.setMaterial_qty(json.getBigDecimal("material_qty"));
|
||||||
task.setRequest_param(json.toString());
|
task.setRequest_param(json.toString());
|
||||||
task.setPriority(json.getString("Priority"));
|
task.setPriority(json.getString("priority"));
|
||||||
task.setRemark(json.getString("remark"));
|
task.setRemark(json.getString("remark"));
|
||||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
@@ -110,7 +110,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
|||||||
acsTaskDto.setVehicle_type(IOSConstant.ONE);
|
acsTaskDto.setVehicle_type(IOSConstant.ONE);
|
||||||
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
|
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
|
||||||
|
|
||||||
acsTaskDto.setPriority(IOSConstant.ONE);
|
acsTaskDto.setPriority(taskDao.getPriority());
|
||||||
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
|
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
|
||||||
|
|
||||||
return acsTaskDto;
|
return acsTaskDto;
|
||||||
@@ -171,6 +171,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
|||||||
|
|
||||||
@Transactional
|
@Transactional
|
||||||
public void finishTask(SchBaseTask taskObj) {
|
public void finishTask(SchBaseTask taskObj) {
|
||||||
|
JSONObject jsonObject = JSONObject.parseObject(taskObj.getRequest_param());
|
||||||
// 更新起点
|
// 更新起点
|
||||||
iSchBasePointService.update(
|
iSchBasePointService.update(
|
||||||
new UpdateWrapper<SchBasePoint>().lambda()
|
new UpdateWrapper<SchBasePoint>().lambda()
|
||||||
@@ -179,6 +180,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
|||||||
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
|
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
|
||||||
.set(SchBasePoint::getMaterial_id, "")
|
.set(SchBasePoint::getMaterial_id, "")
|
||||||
.set(SchBasePoint::getMaterial_qty, "")
|
.set(SchBasePoint::getMaterial_qty, "")
|
||||||
|
.set(SchBasePoint::getMaterial_pcsn, "")
|
||||||
);
|
);
|
||||||
// 更新终点
|
// 更新终点
|
||||||
iSchBasePointService.update(
|
iSchBasePointService.update(
|
||||||
@@ -187,6 +189,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
|||||||
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
|
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
|
||||||
.set(SchBasePoint::getMaterial_id, taskObj.getMaterial_id())
|
.set(SchBasePoint::getMaterial_id, taskObj.getMaterial_id())
|
||||||
.set(SchBasePoint::getMaterial_qty, taskObj.getMaterial_qty())
|
.set(SchBasePoint::getMaterial_qty, taskObj.getMaterial_qty())
|
||||||
|
.set(SchBasePoint::getMaterial_pcsn, jsonObject.getString("material_pcsn"))
|
||||||
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
|
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("有箱有料"))
|
||||||
);
|
);
|
||||||
// 更新任务
|
// 更新任务
|
||||||
|
|||||||
@@ -11,6 +11,8 @@ import org.nl.common.utils.CodeUtil;
|
|||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.config.IdUtil;
|
import org.nl.config.IdUtil;
|
||||||
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
import org.nl.wms.basedata_manage.enums.BaseDataEnum;
|
||||||
|
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||||
|
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||||
import org.nl.wms.sch_manage.enums.TaskEnum;
|
import org.nl.wms.sch_manage.enums.TaskEnum;
|
||||||
import org.nl.wms.sch_manage.enums.TaskStatus;
|
import org.nl.wms.sch_manage.enums.TaskStatus;
|
||||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||||
@@ -51,6 +53,8 @@ public class RawInTask extends AbstractTask {
|
|||||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||||
@Resource
|
@Resource
|
||||||
private ISchBasePointService pointService;
|
private ISchBasePointService pointService;
|
||||||
|
@Resource
|
||||||
|
private IStructattrService iStructattrService;
|
||||||
@Override
|
@Override
|
||||||
public String create(JSONObject json) {
|
public String create(JSONObject json) {
|
||||||
SchBaseTask task = new SchBaseTask();
|
SchBaseTask task = new SchBaseTask();
|
||||||
@@ -76,8 +80,11 @@ public class RawInTask extends AbstractTask {
|
|||||||
throw new BadRequestException("起点终点不能一致,请检查!");
|
throw new BadRequestException("起点终点不能一致,请检查!");
|
||||||
}
|
}
|
||||||
// 下发任务
|
// 下发任务
|
||||||
// 由定时器下发
|
// 起点为拆包缓存室由定时器下发
|
||||||
// this.sendTaskOne(task.getTask_id());
|
String point_code2 = task.getPoint_code2();
|
||||||
|
if (!task.getPoint_code1().equals(IOSConstant.CBHC01) || point_code2.contains("N")) {
|
||||||
|
this.sendTaskOne(task.getTask_id());
|
||||||
|
}
|
||||||
return task.getTask_id();
|
return task.getTask_id();
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -145,6 +152,10 @@ public class RawInTask extends AbstractTask {
|
|||||||
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id())
|
.eq(IOStorInvDis::getTask_id, taskObj.getTask_id())
|
||||||
);
|
);
|
||||||
|
|
||||||
|
Structattr byCode = iStructattrService.getByCode(taskObj.getPoint_code2());
|
||||||
|
byCode.setLock_type(IOSEnum.LOCK_TYPE.code("未锁定"));
|
||||||
|
iStructattrService.updateById(byCode);
|
||||||
|
|
||||||
// 更新任务状态
|
// 更新任务状态
|
||||||
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
taskObj.setTask_status(TaskStatus.CANCELED.getCode());
|
||||||
taskObj.setRemark("已取消");
|
taskObj.setRemark("已取消");
|
||||||
|
|||||||
@@ -99,7 +99,7 @@ public enum IOSEnum {
|
|||||||
// 库区编码
|
// 库区编码
|
||||||
SECT_CODE(MapOf.of("内包材区", "NBC01", "批料室区", "PZC01",
|
SECT_CODE(MapOf.of("内包材区", "NBC01", "批料室区", "PZC01",
|
||||||
"中间站区", "ZZC01", "物料间区", "WZC01", "辅料区", "WFL01", "原料区", "WYL01",
|
"中间站区", "ZZC01", "物料间区", "WZC01", "辅料区", "WFL01", "原料区", "WYL01",
|
||||||
"无人车卸货缓存1区", "WRCXHHC01"
|
"无人车卸货缓存1区", "WRCXHHC01","恩双平虚拟库区", "ESPXN01"
|
||||||
)),
|
)),
|
||||||
|
|
||||||
// 存放载具类型
|
// 存放载具类型
|
||||||
|
|||||||
180
wms/nladmin-ui/src/views/wms/statement/review/index.vue
Normal file
180
wms/nladmin-ui/src/views/wms/statement/review/index.vue
Normal file
@@ -0,0 +1,180 @@
|
|||||||
|
<template>
|
||||||
|
<div class="app-container">
|
||||||
|
<!--工具栏-->
|
||||||
|
<div class="head-container">
|
||||||
|
<div v-if="crud.props.searchToggle">
|
||||||
|
<!-- 搜索 -->
|
||||||
|
<el-form
|
||||||
|
:inline="true"
|
||||||
|
class="demo-form-inline"
|
||||||
|
label-position="right"
|
||||||
|
label-width="90px"
|
||||||
|
label-suffix=":"
|
||||||
|
>
|
||||||
|
<el-form-item label="物料搜索">
|
||||||
|
<el-input
|
||||||
|
v-model="query.material_code"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
placeholder="物料编码、名称"
|
||||||
|
style="width: 200px;"
|
||||||
|
class="filter-item"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="批次号">
|
||||||
|
<el-input
|
||||||
|
v-model="query.pcsn"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
placeholder="批次号"
|
||||||
|
style="width: 200px;"
|
||||||
|
class="filter-item"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="操作人">
|
||||||
|
<el-input
|
||||||
|
v-model="query.create_name"
|
||||||
|
clearable
|
||||||
|
size="small"
|
||||||
|
placeholder="操作人"
|
||||||
|
style="width: 200px;"
|
||||||
|
class="filter-item"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<el-form-item label="创建时间" prop="createTime">
|
||||||
|
<el-date-picker
|
||||||
|
v-model="query.createTime"
|
||||||
|
type="daterange"
|
||||||
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
|
start-placeholder="开始日期"
|
||||||
|
end-placeholder="结束日期"
|
||||||
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
|
@change="crud.toQuery"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
<rrOperation :crud="crud" />
|
||||||
|
</el-form>
|
||||||
|
</div>
|
||||||
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
|
<crudOperation :permission="permission"/>
|
||||||
|
<!--表格渲染-->
|
||||||
|
<el-table
|
||||||
|
ref="table"
|
||||||
|
v-loading="crud.loading"
|
||||||
|
:data="crud.data"
|
||||||
|
size="mini"
|
||||||
|
style="width: 100%;"
|
||||||
|
@selection-change="crud.selectionChangeHandler"
|
||||||
|
>
|
||||||
|
<el-table-column prop="bag_code" label="袋号/桶号" :min-width="flexWidth('bag_code',crud.data,'袋号/桶号')" />
|
||||||
|
<el-table-column prop="material_code" label="物料编码" :min-width="flexWidth('material_code',crud.data,'物料编码')" />
|
||||||
|
<el-table-column prop="material_name" label="物料名称" :min-width="flexWidth('material_name',crud.data,'物料名称')" />
|
||||||
|
<el-table-column prop="pcsn" label="批次号" :min-width="flexWidth('pcsn',crud.data,'批次号')" />
|
||||||
|
<el-table-column prop="qty" label="重量" :formatter="crud.formatNum3" :min-width="100" />
|
||||||
|
<el-table-column prop="quality_code" label="质量代码" :min-width="flexWidth('quality_code',crud.data,'质量代码')" />
|
||||||
|
<el-table-column prop="vehicle_code" label="载具编码" :min-width="flexWidth('vehicle_code',crud.data,'载具编码')" />
|
||||||
|
<!-- <el-table-column prop="supp_code" label="供应商编码" :min-width="flexWidth('supp_code',crud.data,'供应商编码')" />-->
|
||||||
|
<!-- <el-table-column prop="supp_name" label="供应商名称" :min-width="flexWidth('supp_name',crud.data,'供应商名称')" />-->
|
||||||
|
<el-table-column prop="create_time" label="时间" :min-width="flexWidth('create_time',crud.data,'时间')" />
|
||||||
|
<el-table-column prop="create_code" label="操作人编码" :min-width="flexWidth('create_code',crud.data,'操作人编码')" />
|
||||||
|
<el-table-column prop="create_name" label="操作人名称" :min-width="flexWidth('create_name',crud.data,'操作人名称')" />
|
||||||
|
<el-table-column prop="review_code" label="复核人编码" :min-width="flexWidth('review_code',crud.data,'复核人编码')" />
|
||||||
|
<el-table-column prop="review_name" label="复核人名称" :min-width="flexWidth('review_name',crud.data,'复核人名称')" />
|
||||||
|
<el-table-column prop="action" label="动作" :min-width="flexWidth('action',crud.data,'动作')" />
|
||||||
|
</el-table>
|
||||||
|
<!--分页组件-->
|
||||||
|
<pagination />
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</template>
|
||||||
|
|
||||||
|
<script>
|
||||||
|
import crudReview from '@/views/wms/statement/review/review'
|
||||||
|
import CRUD, { presenter, header, crud } from '@crud/crud'
|
||||||
|
import rrOperation from '@crud/RR.operation'
|
||||||
|
import crudOperation from '@crud/CRUD.operation'
|
||||||
|
import pagination from '@crud/Pagination'
|
||||||
|
import { download } from '@/api/data'
|
||||||
|
import { downloadFile } from '@/utils'
|
||||||
|
|
||||||
|
export default {
|
||||||
|
name: 'Review',
|
||||||
|
components: { pagination, crudOperation, rrOperation },
|
||||||
|
mixins: [presenter(), header(), crud()],
|
||||||
|
cruds() {
|
||||||
|
return CRUD({
|
||||||
|
title: '复核记录', url: 'api/review', idField: 'id', sort: 'id,desc',
|
||||||
|
optShow: {
|
||||||
|
add: false,
|
||||||
|
edit: false,
|
||||||
|
showDtlLoading: false,
|
||||||
|
del: false,
|
||||||
|
download: false,
|
||||||
|
reset: true
|
||||||
|
},
|
||||||
|
crudMethod: { ...crudReview }
|
||||||
|
})
|
||||||
|
},
|
||||||
|
data() {
|
||||||
|
return {
|
||||||
|
showDtlLoading: false,
|
||||||
|
permission: {},
|
||||||
|
rules: {}
|
||||||
|
}
|
||||||
|
},
|
||||||
|
created() {
|
||||||
|
this.initQuery()
|
||||||
|
},
|
||||||
|
methods: {
|
||||||
|
// 钩子:在获取表格数据之前执行,false 则代表不获取数据
|
||||||
|
[CRUD.HOOK.beforeRefresh]() {
|
||||||
|
return true
|
||||||
|
},
|
||||||
|
hand(value) {
|
||||||
|
this.crud.toQuery()
|
||||||
|
},
|
||||||
|
initQuery() {
|
||||||
|
const end = new Date()
|
||||||
|
const start = new Date()
|
||||||
|
const endYear = end.getFullYear()
|
||||||
|
var endMonth = end.getMonth() + 1
|
||||||
|
if (end.getMonth() + 1 < 10) {
|
||||||
|
endMonth = '0' + endMonth.toString()
|
||||||
|
}
|
||||||
|
var endDay = end.getDate()
|
||||||
|
if (end.getDate() < 10) {
|
||||||
|
endDay = '0' + endDay.toString()
|
||||||
|
}
|
||||||
|
const endDate = endYear + '-' + endMonth + '-' + endDay + ' 23:59:59'
|
||||||
|
start.setTime(start.getTime() - 3600 * 1000 * 24 * 7)
|
||||||
|
const startYear = start.getFullYear()
|
||||||
|
var startMonth = start.getMonth() + 1
|
||||||
|
if (start.getMonth() + 1 < 10) {
|
||||||
|
startMonth = '0' + startMonth.toString()
|
||||||
|
}
|
||||||
|
var startDay = start.getDate()
|
||||||
|
if (start.getDate() < 10) {
|
||||||
|
startDay = '0' + startDay.toString()
|
||||||
|
}
|
||||||
|
const startDate = startYear + '-' + startMonth + '-' + startDay + ' 00:00:00'
|
||||||
|
this.$set(this.query, 'createTime', [startDate, endDate])
|
||||||
|
this.crud.toQuery()
|
||||||
|
},
|
||||||
|
downdtl() {
|
||||||
|
if (this.currentRow !== null) {
|
||||||
|
this.showDtlLoading = true
|
||||||
|
download('/api/review/download', this.crud.query).then(result => {
|
||||||
|
downloadFile(result, '复核记录', 'xlsx')
|
||||||
|
this.showDtlLoading = false
|
||||||
|
}).catch(() => {
|
||||||
|
this.showDtlLoading = false
|
||||||
|
})
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
</script>
|
||||||
|
|
||||||
|
<style scoped>
|
||||||
|
|
||||||
|
</style>
|
||||||
27
wms/nladmin-ui/src/views/wms/statement/review/review.js
Normal file
27
wms/nladmin-ui/src/views/wms/statement/review/review.js
Normal file
@@ -0,0 +1,27 @@
|
|||||||
|
import request from '@/utils/request'
|
||||||
|
|
||||||
|
export function add(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/review',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function del(ids) {
|
||||||
|
return request({
|
||||||
|
url: 'api/review/',
|
||||||
|
method: 'delete',
|
||||||
|
data: ids
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export function edit(data) {
|
||||||
|
return request({
|
||||||
|
url: 'api/review',
|
||||||
|
method: 'put',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del }
|
||||||
Reference in New Issue
Block a user