rev:修改
This commit is contained in:
@@ -29,7 +29,7 @@ public class Init implements ApplicationRunner {
|
||||
public void run(ApplicationArguments args) throws Exception {
|
||||
// initTwoAttr(4,30,3,2, "2");
|
||||
// createAttr();
|
||||
// initTwoAttr2(4,10,3);
|
||||
// initTwoAttr2(1,100,1);
|
||||
}
|
||||
|
||||
|
||||
@@ -66,15 +66,15 @@ public class Init implements ApplicationRunner {
|
||||
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_code("ZZC01");
|
||||
json.setSect_name("中间站(2)主存区");
|
||||
json.setStor_id("1582991156504039423");
|
||||
json.setStor_code("ZJZ01");
|
||||
json.setStor_name("中间站(2)仓库");
|
||||
json.setSect_id("2039261400093822976");
|
||||
json.setSect_code("ESPXN01");
|
||||
json.setSect_name("恩双平虚拟区");
|
||||
json.setStor_id("1582991156504039400");
|
||||
json.setStor_code("ESP01");
|
||||
json.setStor_name("恩双平总混颗粒仓库");
|
||||
json.setLock_type("0");
|
||||
|
||||
json.setRow_num(BigDecimal.valueOf(row_num));
|
||||
@@ -83,7 +83,7 @@ public class Init implements ApplicationRunner {
|
||||
json.setBlock_num(BigDecimal.valueOf(1));
|
||||
|
||||
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.setCreate_id("1");
|
||||
|
||||
@@ -8,8 +8,6 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSON;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
|
||||
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.RsaUtils;
|
||||
@@ -94,4 +92,22 @@ public class MobileAuthorizationController {
|
||||
|
||||
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>
|
||||
*/
|
||||
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>
|
||||
|
||||
</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>
|
||||
|
||||
@@ -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("material_id", jsonIvt.getMaterial_id());
|
||||
jsonTask.put("material_qty", jsonIvt.getMaterial_qty());
|
||||
jsonTask.put("priority", pointIvtList.size() - i);
|
||||
noCarBackCpTask.create(jsonTask);
|
||||
}
|
||||
|
||||
|
||||
@@ -93,7 +93,7 @@ public class PdaCommonController {
|
||||
@PostMapping("/confirmBagAssembly")
|
||||
@Log("物料组袋-确认组袋")
|
||||
@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);
|
||||
}
|
||||
|
||||
@@ -107,7 +107,7 @@ public class PdaCommonController {
|
||||
@PostMapping("/confirmPalletAssembly")
|
||||
@Log("物料组盘-组盘")
|
||||
@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);
|
||||
}
|
||||
|
||||
@@ -128,7 +128,7 @@ public class PdaCommonController {
|
||||
@PostMapping("/confirmBucketAssembly")
|
||||
@Log("物料组桶-组桶")
|
||||
@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);
|
||||
}
|
||||
|
||||
|
||||
@@ -112,4 +112,25 @@ public class PdaWarehouseController {
|
||||
public ResponseEntity<Object> confirmMore(@RequestBody JSONObject param) {
|
||||
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 startPoint
|
||||
*/
|
||||
void doGroupPallet(JSONObject param, String vehicleCode);
|
||||
void doGroupPallet(JSONObject param, String vehicleCode) throws Exception;
|
||||
|
||||
/**
|
||||
* 构建创建任务参数
|
||||
|
||||
@@ -21,7 +21,7 @@ public interface PdaCommonService {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
PdaResponse confirmBagAssembly(AssemblyBagParam param);
|
||||
PdaResponse confirmBagAssembly(AssemblyBagParam param) throws Exception;
|
||||
|
||||
/**
|
||||
* 获取组袋信息
|
||||
@@ -37,7 +37,7 @@ public interface PdaCommonService {
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
PdaResponse confirmPalletAssembly(AssemblyPalletParam param);
|
||||
PdaResponse confirmPalletAssembly(AssemblyPalletParam param) throws Exception;
|
||||
|
||||
/**
|
||||
* 空托盘入库
|
||||
@@ -47,7 +47,7 @@ public interface PdaCommonService {
|
||||
*/
|
||||
PdaResponse inEmptyVehicle(JSONObject param);
|
||||
|
||||
PdaResponse confirmBucketAssembly(AssemblyBucketParam param);
|
||||
PdaResponse confirmBucketAssembly(AssemblyBucketParam param) throws Exception;
|
||||
|
||||
/**
|
||||
* 空载具堆叠-查询点位堆叠明细
|
||||
|
||||
@@ -110,4 +110,32 @@ public interface PdaWarehouseService {
|
||||
* @return PdaResponse
|
||||
*/
|
||||
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;
|
||||
@NotNull(message = "数量不能为空")
|
||||
private BigDecimal qty;
|
||||
@NotBlank(message = "复核人编码不能为空")
|
||||
private String username;
|
||||
@NotBlank(message = "复核人名称不能为空")
|
||||
private String password;
|
||||
|
||||
public static GroupPlate buildGroupObj(AssemblyBagParam param) {
|
||||
GroupPlate groupPlate = new GroupPlate();
|
||||
|
||||
@@ -22,5 +22,9 @@ public class AssemblyBucketParam {
|
||||
@NotBlank(message = "批次号不能为空")
|
||||
private String pcsn;
|
||||
private BigDecimal qty;
|
||||
@NotBlank(message = "复核人编码不能为空")
|
||||
private String username;
|
||||
@NotBlank(message = "复核人名称不能为空")
|
||||
private String password;
|
||||
|
||||
}
|
||||
|
||||
@@ -16,6 +16,10 @@ import java.util.List;
|
||||
public class AssemblyPalletParam {
|
||||
@NotBlank(message = "托盘码不能为空")
|
||||
private String vehicle_code;
|
||||
@NotNull(message = "吨袋信息不能为空")
|
||||
@NotNull(message = "袋信息不能为空")
|
||||
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;
|
||||
|
||||
@Override
|
||||
public void doGroupPallet(JSONObject param, String vehicleCode) {
|
||||
public void doGroupPallet(JSONObject param, String vehicleCode) throws Exception {
|
||||
JSONArray rows = param.getJSONArray("rows");
|
||||
List<String> bagCode = rows
|
||||
.stream()
|
||||
|
||||
@@ -13,11 +13,17 @@ import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
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.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.IMdPdGroupbucketService;
|
||||
import org.nl.wms.basedata_manage.service.IMdPdReviewsignService;
|
||||
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.MdPdReviewsign;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.mapper.MdPdGroupbucketMapper;
|
||||
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 javax.annotation.Resource;
|
||||
import javax.validation.constraints.NotNull;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.TimeUnit;
|
||||
@@ -88,6 +95,8 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
||||
private IMdPdGroupbucketService groupbucketService;
|
||||
@Resource
|
||||
private MdPdGroupbucketMapper mdPdGroupbucketMapper;
|
||||
@Resource
|
||||
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||
|
||||
/**
|
||||
* 点位服务类
|
||||
@@ -106,6 +115,7 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
@Transactional
|
||||
public PdaResponse callEmptyVehicle(JSONObject param) {
|
||||
log.info("手持请求呼叫空托盘:{}", param);
|
||||
RLock lock = redissonClient.getLock("lock:callEmptyVehicle");
|
||||
@@ -162,7 +172,15 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
||||
}
|
||||
|
||||
@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>()
|
||||
.eq(GroupPlate::getBag_code, param.getBagNo())
|
||||
.le(GroupPlate::getStatus, "2"));
|
||||
@@ -171,6 +189,17 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
||||
}
|
||||
GroupPlate groupPlate = AssemblyBagParam.buildGroupObj(param);
|
||||
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("组袋成功!");
|
||||
}
|
||||
|
||||
@@ -190,7 +219,14 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
||||
|
||||
@Override
|
||||
@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.put("vehicle_code", param.getVehicle_code());
|
||||
@@ -207,11 +243,28 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
||||
groupPlate.setVehicle_code(param.getVehicle_code());
|
||||
groupPlate.setTableData(param.getGroup_plates());
|
||||
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("组盘成功!");
|
||||
}
|
||||
|
||||
@SneakyThrows
|
||||
@Override
|
||||
@Transactional
|
||||
public PdaResponse inEmptyVehicle(JSONObject param) {
|
||||
log.info("手持请求空托盘入库:{}", param);
|
||||
RLock lock = redissonClient.getLock("lock:inEmptyVehicle");
|
||||
@@ -231,7 +284,15 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
||||
}
|
||||
|
||||
@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();
|
||||
// 查询桶码是否存在
|
||||
storagevehicleinfoService.getByCode(bucket_code);
|
||||
@@ -250,6 +311,17 @@ public class PdaCommonServiceImpl implements PdaCommonService {
|
||||
groupbucket.setQty_unit_id("1585604695483879424");
|
||||
groupbucket.setQty_unit_name("千克");
|
||||
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();
|
||||
}
|
||||
|
||||
|
||||
@@ -5,6 +5,7 @@ import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
import org.nl.config.IdUtil;
|
||||
import org.nl.config.SpringContextHolder;
|
||||
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.util.PDAEnum;
|
||||
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.mapper.SchBasePointMapper;
|
||||
import org.nl.wms.sch_manage.service.util.tasks.NoCarBackCpTask;
|
||||
@@ -79,6 +82,12 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
||||
@Resource
|
||||
private MdMeMaterialbaseMapper mdMeMaterialbaseMapper;
|
||||
|
||||
/**
|
||||
* 收货服务
|
||||
*/
|
||||
@Resource
|
||||
private IMdPdmPackagingService iMdPdmPackagingService;
|
||||
|
||||
@Override
|
||||
public PdaResponse queryNotCarPoint() {
|
||||
return PdaResponse.requestParamOk(schBasePointMapper.queryNotCarPoint());
|
||||
@@ -97,11 +106,57 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
||||
// 根据物料类型查询目的点位
|
||||
List<SchBasePoint> pointList = new ArrayList<>();
|
||||
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 {
|
||||
// 查询无人车卸货缓存区域
|
||||
pointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.WXHHC01, IOSConstant.ONE, IOSConstant.ONE);
|
||||
pointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.WXHHC01, IOSConstant.ONE, IOSConstant.ONE, null);
|
||||
}
|
||||
if (ObjectUtil.isEmpty(pointList)) {
|
||||
throw new BadRequestException("卸货点位无空位可用!");
|
||||
@@ -114,7 +169,9 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
||||
jsonTask.put("point_code2", pointList.get(0).getPoint_code());
|
||||
jsonTask.put("material_id", json.getString("material_id"));
|
||||
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("priority", rows.size() - i);
|
||||
noCarUnloadTask.create(jsonTask);
|
||||
}
|
||||
return PdaResponse.requestOk();
|
||||
@@ -131,7 +188,7 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
||||
|
||||
@Override
|
||||
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"))) {
|
||||
pointList = pointList.stream()
|
||||
.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()
|
||||
.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;
|
||||
|
||||
@@ -270,9 +331,27 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
||||
throw new BadRequestException("当前点位【" + point + "】存在不相同物料,请处理!");
|
||||
}
|
||||
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)) {
|
||||
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 {
|
||||
materialClass += 1;
|
||||
}
|
||||
@@ -282,6 +361,7 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
||||
.map(row -> row.getDoubleValue("qty"))
|
||||
.reduce(Double::sum).orElse(0.0);
|
||||
schBasePoint.setMaterial_qty(String.valueOf(qty));
|
||||
schBasePoint.setMaterial_pcsn(list.get(0).getString("pcsn"));
|
||||
// 更新需要用到的货位数量
|
||||
materialClass = +1;
|
||||
}
|
||||
@@ -289,15 +369,29 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
||||
schBasePointMapper.updateById(schBasePoint);
|
||||
}
|
||||
// ---------------校验车间空位---------------
|
||||
if (wbClass > 0) {
|
||||
// 查询外包材空位
|
||||
List<SchBasePoint> wbPointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.AGVDJ01, IOSConstant.ONE, IOSConstant.ONE);
|
||||
if (wbClass > wbPointList.size()) {
|
||||
throw new BadRequestException("存放外包材空位不足,当前需要空位【" + wbClass + "】当前已有空位【" + wbPointList.size() + "】");
|
||||
if (wbcClass_1 > 0) {
|
||||
// 查询外包材说明书空位
|
||||
List<SchBasePoint> wbPointList = schBasePointMapper.getNoTaskPointByRegionAndType(IOSConstant.AGVDJ01, IOSConstant.ONE, IOSConstant.ONE, IOSConstant.ONE);
|
||||
if (wbcClass_1 > 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) {
|
||||
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()) {
|
||||
throw new BadRequestException("卸货缓存区空位不足,当前需要空位【" + materialClass + "】当前已有空位【" + xhPointList.size() + "】");
|
||||
}
|
||||
@@ -368,7 +462,7 @@ public class PdaNotCarServiceImpl implements PdaNotCarService {
|
||||
// 呼叫无人车
|
||||
NoCarResponse noCarResponse = wmsToNotCarService.callNotCat(param);
|
||||
if (noCarResponse.getCode() != 200) {
|
||||
throw new BadRequestException("下发无人车任务失败"+noCarResponse.getMsg());
|
||||
throw new BadRequestException("下发无人车任务失败" + noCarResponse.getMsg());
|
||||
}
|
||||
} catch (Exception ignored) {
|
||||
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.MapOf;
|
||||
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.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.service.*;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
||||
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.basedata_manage.service.dao.*;
|
||||
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.PdaProductionService;
|
||||
@@ -124,6 +125,9 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
private SectMaterialCheck sectMaterialCheck;
|
||||
@Resource
|
||||
private SchBasePointMapper schBasePointMapper;
|
||||
@Resource
|
||||
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||
|
||||
@Override
|
||||
public PdaResponse getGroupInfo(JSONObject param) {
|
||||
// search;
|
||||
@@ -306,6 +310,13 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
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");
|
||||
SchBasePoint startPoint = pointService.getByPointCode(search, false);
|
||||
if (ObjectUtil.isEmpty(startPoint)) {
|
||||
@@ -344,6 +355,21 @@ public class PdaProductionServiceImpl implements PdaProductionService {
|
||||
// 3 创建任务
|
||||
Map<String, Object> jsonMst = defaultPdaBuildParam.buildTaskData(startPoint, invId);
|
||||
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 {
|
||||
log.info("空载具回库");
|
||||
// 空载具回库
|
||||
|
||||
@@ -10,14 +10,15 @@ import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.wms.basedata_manage.service.IMdPbStoragevehicleextService;
|
||||
import org.nl.wms.basedata_manage.service.IMdPdGroupbucketService;
|
||||
import org.nl.wms.basedata_manage.service.ISectattrService;
|
||||
import org.nl.wms.basedata_manage.service.IStructattrService;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPbStoragevehicleext;
|
||||
import org.nl.wms.basedata_manage.service.dao.MdPdGroupbucket;
|
||||
import org.nl.wms.basedata_manage.service.dao.Sectattr;
|
||||
import org.nl.wms.basedata_manage.service.dao.Structattr;
|
||||
import org.nl.common.utils.CodeUtil;
|
||||
import org.nl.common.utils.IdUtil;
|
||||
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.*;
|
||||
import org.nl.wms.basedata_manage.service.dao.*;
|
||||
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.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.redisson.api.RLock;
|
||||
import org.redisson.api.RedissonClient;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
@@ -107,6 +109,21 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
@Resource
|
||||
private IMdPdGroupbucketService iMdPdGroupbucketService;
|
||||
|
||||
/**
|
||||
* 计量单位服务
|
||||
*/
|
||||
@Autowired
|
||||
private IMdPbMeasureunitService iMdPbMeasureunitService;
|
||||
|
||||
/**
|
||||
* 物料服务
|
||||
*/
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService iMdMeMaterialbaseService;
|
||||
|
||||
@Resource
|
||||
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||
|
||||
@Override
|
||||
public PdaResponse getPalletAssembly(JSONObject param) {
|
||||
String bag_code = param.getString("bag_code");
|
||||
@@ -514,6 +531,13 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
boolean tryLock = lock.tryLock(0, TimeUnit.SECONDS);
|
||||
try {
|
||||
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);
|
||||
if (ObjectUtil.isEmpty(jsonList)) {
|
||||
throw new BadRequestException("数据为空!");
|
||||
@@ -531,11 +555,11 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
if (qty < change_qty) {
|
||||
// 溢
|
||||
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) {
|
||||
// 损
|
||||
moreOrLessInsertDto.setMol_type(IOSEnum.MORE_TYPE.code("损"));
|
||||
ivt_qty = NumberUtil.sub(qty,change_qty);
|
||||
ivt_qty = NumberUtil.sub(qty, change_qty);
|
||||
} else {
|
||||
// 不处理
|
||||
continue;
|
||||
@@ -548,7 +572,7 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
.eq(Structattr::getStoragevehicle_code, json.getString("vehicle_code"))
|
||||
);
|
||||
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.setTotal_qty(BigDecimal.valueOf(ivt_qty));
|
||||
@@ -583,17 +607,28 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
// 更新袋重量
|
||||
groupplateService.update(
|
||||
new UpdateWrapper<GroupPlate>().lambda()
|
||||
.eq(GroupPlate::getBag_code, json.getString("bag_code"))
|
||||
.set(GroupPlate::getQty, change_qty)
|
||||
.eq(GroupPlate::getBag_code, json.getString("bag_code"))
|
||||
.set(GroupPlate::getQty, change_qty)
|
||||
);
|
||||
} else {
|
||||
// 更新桶重量
|
||||
iMdPdGroupbucketService.update(
|
||||
new UpdateWrapper<MdPdGroupbucket>().lambda()
|
||||
.eq(MdPdGroupbucket::getBucket_code, json.getString("vehicle_code"))
|
||||
.set(MdPdGroupbucket::getQty, change_qty)
|
||||
.eq(MdPdGroupbucket::getBucket_code, json.getString("vehicle_code"))
|
||||
.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 {
|
||||
throw new BadRequestException("当前业务繁忙,稍后再试...");
|
||||
@@ -605,4 +640,110 @@ public class PdaWarehouseServiceImpl implements PdaWarehouseService {
|
||||
}
|
||||
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")
|
||||
@Log("外包材送入-送入")
|
||||
@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);
|
||||
}
|
||||
|
||||
@@ -98,7 +98,7 @@ public class PdaPackagingController {
|
||||
@PostMapping("/packConfirmReturn")
|
||||
@Log("外包材还回-确认还回")
|
||||
@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);
|
||||
}
|
||||
|
||||
|
||||
@@ -86,7 +86,7 @@ public interface PdaPackagingService {
|
||||
* }
|
||||
* @return PdaResponse
|
||||
*/
|
||||
PdaResponse packInConfirm(JSONObject whereJson);
|
||||
PdaResponse packInConfirm(JSONObject whereJson) throws Exception;
|
||||
|
||||
/**
|
||||
* 外包材领用-查询点位库存明细
|
||||
@@ -122,5 +122,5 @@ public interface PdaPackagingService {
|
||||
* }
|
||||
* @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.JSONObjectOf;
|
||||
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.packaging_management.service.PdaPackagingService;
|
||||
import org.nl.wms.pda.util.PdaResponse;
|
||||
@@ -71,6 +77,8 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
||||
*/
|
||||
@Resource
|
||||
private PackagingMiddleTask packagingMiddleTask;
|
||||
@Resource
|
||||
private IMdPdReviewsignService iMdPdReviewsignService;
|
||||
|
||||
@Override
|
||||
public PdaResponse queryPointRegion(JSONObject whereJson) {
|
||||
@@ -201,7 +209,14 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
||||
|
||||
@Override
|
||||
@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);
|
||||
// 创建agv任务
|
||||
JSONObject jsonTask = new JSONObject();
|
||||
@@ -215,6 +230,17 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
||||
jsonTask.put("material_qty", whereJson.getString("total_qty"));
|
||||
jsonTask.put("task_type", ACSTaskTypeEnum.AGV_TASK.getCode());
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -266,7 +292,14 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
||||
|
||||
@Override
|
||||
@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"));
|
||||
if (ObjectUtil.isEmpty(pointDao)) {
|
||||
throw new BadRequestException("当前点位不存在【" + whereJson.getString("point_code") + "】");
|
||||
@@ -320,6 +353,17 @@ public class PdaPackagingServiceImpl implements PdaPackagingService {
|
||||
// 新增带你为库存记录
|
||||
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();
|
||||
}
|
||||
}
|
||||
|
||||
@@ -134,6 +134,7 @@ public class SchBasePoint implements Serializable {
|
||||
private String material_id;
|
||||
|
||||
private String material_qty;
|
||||
private String material_pcsn;
|
||||
|
||||
@TableField(exist = false)
|
||||
private List<String> can_vehicle_types;
|
||||
|
||||
@@ -78,7 +78,7 @@ public interface SchBasePointMapper extends BaseMapper<SchBasePoint> {
|
||||
*/
|
||||
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);
|
||||
|
||||
|
||||
@@ -204,6 +204,10 @@
|
||||
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)
|
||||
AND '5' > t.task_status)
|
||||
<if test="material_type != null and material_type != ''">
|
||||
AND
|
||||
p.ext_point_code = #{material_type}
|
||||
</if>
|
||||
</select>
|
||||
<select id="getNoTaskPointByRegionAndTypeCp" resultType="org.nl.wms.sch_manage.service.dao.SchBasePoint">
|
||||
SELECT *
|
||||
|
||||
@@ -305,7 +305,7 @@ public class SchBasePointServiceImpl extends ServiceImpl<SchBasePointMapper, Sch
|
||||
|
||||
@Override
|
||||
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
|
||||
|
||||
@@ -80,7 +80,7 @@ public class NoCarBackCpTask extends AbstractTask {
|
||||
task.setMaterial_id(json.getString("material_id"));
|
||||
task.setMaterial_qty(json.getBigDecimal("material_qty"));
|
||||
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.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
@@ -105,7 +105,7 @@ public class NoCarBackCpTask extends AbstractTask {
|
||||
acsTaskDto.setVehicle_code(taskDao.getVehicle_code());
|
||||
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
|
||||
|
||||
acsTaskDto.setPriority(IOSConstant.ONE);
|
||||
acsTaskDto.setPriority(taskDao.getPriority());
|
||||
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
|
||||
|
||||
return acsTaskDto;
|
||||
|
||||
@@ -82,7 +82,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
||||
task.setTask_group_id(json.getString("task_group_id"));
|
||||
task.setMaterial_qty(json.getBigDecimal("material_qty"));
|
||||
task.setRequest_param(json.toString());
|
||||
task.setPriority(json.getString("Priority"));
|
||||
task.setPriority(json.getString("priority"));
|
||||
task.setRemark(json.getString("remark"));
|
||||
task.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
task.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
@@ -110,7 +110,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
||||
acsTaskDto.setVehicle_type(IOSConstant.ONE);
|
||||
acsTaskDto.setTask_type(ACSTaskTypeEnum.AGV_TASK.getCode());
|
||||
|
||||
acsTaskDto.setPriority(IOSConstant.ONE);
|
||||
acsTaskDto.setPriority(taskDao.getPriority());
|
||||
acsTaskDto.setAgv_system_type(IOSConstant.TWO);
|
||||
|
||||
return acsTaskDto;
|
||||
@@ -171,6 +171,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
||||
|
||||
@Transactional
|
||||
public void finishTask(SchBaseTask taskObj) {
|
||||
JSONObject jsonObject = JSONObject.parseObject(taskObj.getRequest_param());
|
||||
// 更新起点
|
||||
iSchBasePointService.update(
|
||||
new UpdateWrapper<SchBasePoint>().lambda()
|
||||
@@ -179,6 +180,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
||||
.set(SchBasePoint::getPoint_status, IOSEnum.POINT_STATUS.code("空位"))
|
||||
.set(SchBasePoint::getMaterial_id, "")
|
||||
.set(SchBasePoint::getMaterial_qty, "")
|
||||
.set(SchBasePoint::getMaterial_pcsn, "")
|
||||
);
|
||||
// 更新终点
|
||||
iSchBasePointService.update(
|
||||
@@ -187,6 +189,7 @@ public class NoCarUnloadTask extends AbstractTask {
|
||||
.set(SchBasePoint::getVehicle_code, taskObj.getVehicle_code())
|
||||
.set(SchBasePoint::getMaterial_id, taskObj.getMaterial_id())
|
||||
.set(SchBasePoint::getMaterial_qty, taskObj.getMaterial_qty())
|
||||
.set(SchBasePoint::getMaterial_pcsn, jsonObject.getString("material_pcsn"))
|
||||
.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.config.IdUtil;
|
||||
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.TaskStatus;
|
||||
import org.nl.wms.sch_manage.service.ISchBasePointService;
|
||||
@@ -51,6 +53,8 @@ public class RawInTask extends AbstractTask {
|
||||
private IOStorInvDisMapper ioStorInvDisMapper;
|
||||
@Resource
|
||||
private ISchBasePointService pointService;
|
||||
@Resource
|
||||
private IStructattrService iStructattrService;
|
||||
@Override
|
||||
public String create(JSONObject json) {
|
||||
SchBaseTask task = new SchBaseTask();
|
||||
@@ -76,8 +80,11 @@ public class RawInTask extends AbstractTask {
|
||||
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();
|
||||
}
|
||||
|
||||
@@ -145,6 +152,10 @@ public class RawInTask extends AbstractTask {
|
||||
.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.setRemark("已取消");
|
||||
|
||||
@@ -99,7 +99,7 @@ public enum IOSEnum {
|
||||
// 库区编码
|
||||
SECT_CODE(MapOf.of("内包材区", "NBC01", "批料室区", "PZC01",
|
||||
"中间站区", "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