feat: 新增包装输送线手持绑定功能
This commit is contained in:
@@ -258,4 +258,22 @@ public class PdaController {
|
||||
public ResponseEntity<PdaResponseVo> deleteMaterialInfo(@RequestBody RequestMaterialInfoVo requestMaterialInfoVo) {
|
||||
return new ResponseEntity<>(pdaService.deleteMaterialInfo(requestMaterialInfoVo), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualPackage/showOrders")
|
||||
@Log("人工包装-显示分拣工单")
|
||||
public ResponseEntity<Object> manualPackageShowOrders() {
|
||||
return new ResponseEntity<>(pdaService.manualPackageShowOrders(), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualPackage/binding")
|
||||
@Log("人工包装-绑定")
|
||||
public ResponseEntity<Object> manualPackageBinding(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(pdaService.manualPackageBinding(param), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/manualPackage/orderOk")
|
||||
@Log("人工包装-完工")
|
||||
public ResponseEntity<Object> manualPackageOrderOk(@RequestBody JSONObject param) {
|
||||
return new ResponseEntity<>(pdaService.manualPackageOrderOk(param), HttpStatus.OK);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,6 @@
|
||||
package org.nl.wms.pda.service;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import org.nl.wms.pda.service.dao.dto.*;
|
||||
import org.nl.wms.pda.service.dao.vo.*;
|
||||
|
||||
@@ -225,4 +226,24 @@ public interface PdaService {
|
||||
* @return
|
||||
*/
|
||||
PdaResponseVo deleteMaterialInfo(RequestMaterialInfoVo requestMaterialInfoVo);
|
||||
|
||||
/**
|
||||
* 人工包装-分拣工单信息
|
||||
* @return
|
||||
*/
|
||||
List<FjOrderVo> manualPackageShowOrders();
|
||||
|
||||
/**
|
||||
* 绑定
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
PdaResponseVo manualPackageBinding(JSONObject param);
|
||||
|
||||
/**
|
||||
* 工单完工
|
||||
* @param param
|
||||
* @return
|
||||
*/
|
||||
PdaResponseVo manualPackageOrderOk(JSONObject param);
|
||||
}
|
||||
|
||||
@@ -5,8 +5,8 @@ import lombok.Data;
|
||||
import java.io.Serializable;
|
||||
|
||||
/**
|
||||
* 反馈前端下拉框数据
|
||||
* @Author: lyd
|
||||
* @Description: 反馈前端下拉框数据
|
||||
* @Date: 2023/8/1
|
||||
*/
|
||||
@Data
|
||||
|
||||
@@ -0,0 +1,35 @@
|
||||
package org.nl.wms.pda.service.dao.vo;
|
||||
|
||||
import lombok.Data;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
|
||||
/**
|
||||
* 手持人工包装工单Vo
|
||||
* @Author: lyd
|
||||
* @Date: 2024/9/4
|
||||
*/
|
||||
@Data
|
||||
public class FjOrderVo {
|
||||
/** 工单id */
|
||||
private String workorder_id;
|
||||
/** 工单编码 */
|
||||
private String workorder_code;
|
||||
/** 实际数量 */
|
||||
private BigDecimal real_qty;
|
||||
/** 成品编码 */
|
||||
private String material_code;
|
||||
/** 半成品编码 */
|
||||
private String half_material_code;
|
||||
/** 泥料编码 */
|
||||
private String raw_material_code;
|
||||
/** 物料名称 */
|
||||
private String material_name;
|
||||
/** 物料规格 */
|
||||
private String material_spec;
|
||||
private String ext_data;
|
||||
/** 订单号 */
|
||||
private String order_no;
|
||||
/** 客户号 */
|
||||
private String custer_no;
|
||||
}
|
||||
@@ -5,6 +5,8 @@ import cn.hutool.core.util.IdUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.LambdaQueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.exception.BadRequestException;
|
||||
import org.nl.common.utils.SecurityUtils;
|
||||
@@ -39,8 +41,10 @@ import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* @Author: lyd
|
||||
@@ -430,6 +434,93 @@ public class PdaServiceImpl implements PdaService {
|
||||
return PdaResponseVo.pdaResultOk("删除成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FjOrderVo> manualPackageShowOrders() {
|
||||
// 获取新增输送线的点位
|
||||
List<SchBasePoint> fj = pointService.list(new LambdaQueryWrapper<SchBasePoint>()
|
||||
.eq(SchBasePoint::getRegion_code, "FJ")
|
||||
.eq(SchBasePoint::getPoint_type, "6"));
|
||||
List<String> devices = fj.stream().map(SchBasePoint::getPoint_code).collect(Collectors.toList());
|
||||
List<FjOrderVo> orders = workorderService.getAllRgPackageInfo(devices);
|
||||
for (FjOrderVo order : orders) {
|
||||
String extData = order.getExt_data();
|
||||
if (ObjectUtil.isNotEmpty(extData)) {
|
||||
JSONObject object = JSONObject.parseObject(extData);
|
||||
order.setOrder_no(ObjectUtil.isNotEmpty(object.getString("order_no"))
|
||||
? object.getString("order_no") : "-");
|
||||
order.setCuster_no(ObjectUtil.isNotEmpty(object.getString("custer_no"))
|
||||
? object.getString("custer_no") : "-");
|
||||
}
|
||||
}
|
||||
return orders;
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public PdaResponseVo manualPackageBinding(JSONObject param) {
|
||||
log.info("人工包装绑定: {}", param);
|
||||
// workorder_id, vehicle_code, qty
|
||||
String workorderId = param.getString("workorder_id");
|
||||
String isFull = param.getString("is_full");
|
||||
String vehicleCode = TaskUtils.defaultVehicleCode(param.getString("vehicle_code"));
|
||||
Integer qty = param.getInteger("qty");
|
||||
PdmBdWorkorder order = workorderService.getById(workorderId);
|
||||
SchBasePoint point = pointService.getById(order.getPoint_code());
|
||||
// 找到相同组盘信息就直接返回id,避免任务取消组盘信息还存在,重复插入
|
||||
// 解绑同载具的信息
|
||||
String vehicleType = order.getVehicle_type();
|
||||
vehiclematerialgroupService.unBindingSameVehicleMaterial(vehicleCode, vehicleType);
|
||||
SchBaseVehiclematerialgroup groupEntity = new SchBaseVehiclematerialgroup();
|
||||
groupEntity.setGroup_id(IdUtil.getSnowflake(1, 1).nextIdStr());
|
||||
// 要把数据存到组盘表
|
||||
groupEntity.setMaterial_id(ObjectUtil.isNotEmpty(order)
|
||||
? order.getMaterial_id()
|
||||
: "");
|
||||
groupEntity.setStanding_time(ObjectUtil.isNotEmpty(order)
|
||||
? order.getStanding_time()
|
||||
: 0);
|
||||
groupEntity.setWorkorder_code(ObjectUtil.isNotEmpty(order)
|
||||
? order.getWorkorder_code()
|
||||
: "");
|
||||
groupEntity.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
groupEntity.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
groupEntity.setCreate_time(DateUtil.now());
|
||||
groupEntity.setVehicle_code(vehicleCode);
|
||||
groupEntity.setVehicle_type(vehicleType);
|
||||
groupEntity.setMaterial_qty(qty);
|
||||
groupEntity.setPoint_code(order.getPoint_code());
|
||||
groupEntity.setPoint_name(point.getPoint_name());
|
||||
groupEntity.setMove_way(order.getPoint_code());
|
||||
groupEntity.setPcsn(DateUtil.format(DateUtil.date(), "yyyyMMdd"));
|
||||
groupEntity.setInstorage_time(DateUtil.now());
|
||||
groupEntity.setGroup_bind_material_status(GroupBindMaterialStatusEnum.UNBOUND.getValue());
|
||||
|
||||
groupEntity.setGroup_status(GroupStatusEnum.IN_STORAGE.getType());
|
||||
groupEntity.setIs_delete(false);
|
||||
groupEntity.setIs_full(isFull.equals(GeneralDefinition.YES));
|
||||
vehiclematerialgroupService.saveOrUpdate(groupEntity);
|
||||
// 工单实际数+1
|
||||
order.setReal_qty(order.getReal_qty().add(BigDecimal.ONE));
|
||||
TaskUtils.setWorkOrderUpdateByPC(order);
|
||||
workorderService.updateById(order);
|
||||
return PdaResponseVo.pdaResultOk("组盘成功");
|
||||
}
|
||||
|
||||
@Override
|
||||
public PdaResponseVo manualPackageOrderOk(JSONObject param) {
|
||||
log.info("工单完工:{}", param);
|
||||
String workorderId = param.getString("workorder_id");
|
||||
LambdaUpdateWrapper<PdmBdWorkorder> lam = new LambdaUpdateWrapper<>();
|
||||
lam.set(PdmBdWorkorder::getWorkorder_status, WorkOrderStatusEnum.COMPLETE.getCode())
|
||||
.set(PdmBdWorkorder::getRealproduceend_date, DateUtil.now())
|
||||
.set(PdmBdWorkorder::getUpdate_id, SecurityUtils.getCurrentUserId())
|
||||
.set(PdmBdWorkorder::getUpdate_name, SecurityUtils.getCurrentNickName())
|
||||
.set(PdmBdWorkorder::getUpdate_time, DateUtil.now())
|
||||
.eq(PdmBdWorkorder::getWorkorder_id, workorderId);
|
||||
workorderService.update(lam);
|
||||
return PdaResponseVo.pdaResultOk("工单完工成功");
|
||||
}
|
||||
|
||||
/**
|
||||
* 保存组盘信息
|
||||
*
|
||||
|
||||
@@ -4,6 +4,7 @@ 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.ext.mes.service.dto.MesOrderInfo;
|
||||
import org.nl.wms.pda.service.dao.vo.FjOrderVo;
|
||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
|
||||
import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery;
|
||||
@@ -192,4 +193,11 @@ public interface IPdmBdWorkorderService extends IService<PdmBdWorkorder> {
|
||||
* @return /
|
||||
*/
|
||||
PdmBdWorkorder getDeviceOneTask(String yjDeviceCode);
|
||||
|
||||
/**
|
||||
* 查看工单信息
|
||||
* @param devices
|
||||
* @return
|
||||
*/
|
||||
List<FjOrderVo> getAllRgPackageInfo(List<String> devices);
|
||||
}
|
||||
|
||||
@@ -2,6 +2,7 @@ package org.nl.wms.pdm.workorder.service.dao.mapper;
|
||||
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import com.baomidou.mybatisplus.core.metadata.IPage;
|
||||
import org.nl.wms.pda.service.dao.vo.FjOrderVo;
|
||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||
import org.nl.wms.pdm.workorder.service.dao.vo.AcsWorkOrderVo;
|
||||
import org.nl.wms.pdm.workorder.service.dto.PdmBdWorkorderQuery;
|
||||
@@ -82,4 +83,6 @@ public interface PdmBdWorkorderMapper extends BaseMapper<PdmBdWorkorder> {
|
||||
* @return /
|
||||
*/
|
||||
PdmBdWorkorder getDeviceOneTask(String yjDeviceCode);
|
||||
|
||||
List<FjOrderVo> getAllRgPackageInfo(List<String> devices);
|
||||
}
|
||||
|
||||
@@ -161,4 +161,24 @@
|
||||
ORDER BY w.workorder_status DESC, w.planproducestart_date) AS ranked
|
||||
WHERE row_num = 1
|
||||
</select>
|
||||
<select id="getAllRgPackageInfo" resultType="org.nl.wms.pda.service.dao.vo.FjOrderVo">
|
||||
SELECT wo.workorder_id
|
||||
,wo.workorder_code
|
||||
,wo.real_qty
|
||||
,wo.raw_material_code
|
||||
,wo.ext_data
|
||||
,ma.material_name
|
||||
,ma.material_code
|
||||
,ma.material_spec
|
||||
,ma.half_material_code
|
||||
FROM pdm_bd_workorder wo
|
||||
LEFT JOIN md_base_material ma ON ma.material_id = wo.material_id
|
||||
<where>
|
||||
wo.point_code IN
|
||||
<foreach collection="devices" item="code" separator="," open="(" close=")">
|
||||
#{code}
|
||||
</foreach>
|
||||
</where>
|
||||
ORDER BY wo.create_time DESC
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -24,6 +24,7 @@ import org.nl.wms.ext.acs.service.WmsToAcsService;
|
||||
import org.nl.wms.ext.acs.service.dto.to.wms.AcsResponse;
|
||||
import org.nl.wms.ext.mes.service.WmsToMesService;
|
||||
import org.nl.wms.ext.mes.service.dto.MesOrderInfo;
|
||||
import org.nl.wms.pda.service.dao.vo.FjOrderVo;
|
||||
import org.nl.wms.pdm.record.service.IPdmBdRequestMaterialRecordService;
|
||||
import org.nl.wms.pdm.workorder.service.IPdmBdWorkorderService;
|
||||
import org.nl.wms.pdm.workorder.service.dao.PdmBdWorkorder;
|
||||
@@ -403,4 +404,9 @@ public class PdmBdWorkorderServiceImpl extends ServiceImpl<PdmBdWorkorderMapper,
|
||||
public PdmBdWorkorder getDeviceOneTask(String yjDeviceCode) {
|
||||
return pdmBdWorkorderMapper.getDeviceOneTask(yjDeviceCode);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<FjOrderVo> getAllRgPackageInfo(List<String> devices) {
|
||||
return pdmBdWorkorderMapper.getAllRgPackageInfo(devices);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user