rev: 成品入库前后端修改
This commit is contained in:
@@ -18,9 +18,9 @@ public enum IOSEnum {
|
|||||||
//出入库类型
|
//出入库类型
|
||||||
IO_TYPE(MapOf.of("入库","1","出库","2")),
|
IO_TYPE(MapOf.of("入库","1","出库","2")),
|
||||||
//单据类型
|
//单据类型
|
||||||
BILL_TYPE(MapOf.of("生产入库","1","退货入库","2")),
|
BILL_TYPE(MapOf.of("生产入库","1","手工入库","2")),
|
||||||
//单据类型
|
//单据状态
|
||||||
BILL_STATUS(MapOf.of("生成","1","提交","2")),
|
BILL_STATUS(MapOf.of("生成","10","分配中","20","分配完","30","完成","99")),
|
||||||
//单据状态
|
//单据状态
|
||||||
WORK_STATUS(MapOf.of("创建","1","生成","2")),
|
WORK_STATUS(MapOf.of("创建","1","生成","2")),
|
||||||
;
|
;
|
||||||
|
|||||||
@@ -2,7 +2,10 @@ package org.nl.wms.storage_manage.basedata.controller.storage;
|
|||||||
|
|
||||||
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
import io.swagger.annotations.ApiOperation;
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
import org.nl.common.TableDataInfo;
|
import org.nl.common.TableDataInfo;
|
||||||
import org.nl.common.anno.Log;
|
import org.nl.common.anno.Log;
|
||||||
import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService;
|
import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService;
|
||||||
@@ -24,8 +27,11 @@ import java.util.List;
|
|||||||
* @author generator
|
* @author generator
|
||||||
* @since 2023-05-04
|
* @since 2023-05-04
|
||||||
*/
|
*/
|
||||||
|
@RequestMapping("/api/stIvtBsrealstorattr")
|
||||||
@RestController
|
@RestController
|
||||||
@RequestMapping("/stIvtBsrealstorattr")
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "实物库属性表")
|
||||||
|
@Slf4j
|
||||||
public class StIvtBsrealstorattrController {
|
public class StIvtBsrealstorattrController {
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
|
|||||||
@@ -0,0 +1,77 @@
|
|||||||
|
package org.nl.wms.storage_manage.productmanage.controller.iostorInv;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
|
import com.alibaba.fastjson.JSONArray;
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
|
import io.swagger.annotations.Api;
|
||||||
|
import io.swagger.annotations.ApiOperation;
|
||||||
|
import lombok.RequiredArgsConstructor;
|
||||||
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import org.nl.common.anno.Log;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||||
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
|
import org.springframework.http.HttpStatus;
|
||||||
|
import org.springframework.http.ResponseEntity;
|
||||||
|
import org.springframework.web.bind.annotation.*;
|
||||||
|
|
||||||
|
@RestController
|
||||||
|
@RequiredArgsConstructor
|
||||||
|
@Api(tags = "成品入库")
|
||||||
|
@RequestMapping("/api/productIn")
|
||||||
|
@Slf4j
|
||||||
|
public class IStivtlostorivnCpInController {
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
private IStIvtIostorinvCpService iStIvtIostorinvCpService;
|
||||||
|
|
||||||
|
@GetMapping
|
||||||
|
@Log("查询入库单")
|
||||||
|
@ApiOperation("查询入库单")
|
||||||
|
public ResponseEntity<Object> query(IostorInvQuery query, PageQuery page){
|
||||||
|
return new ResponseEntity<>(iStIvtIostorinvCpService.pageQuery(query,page),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping
|
||||||
|
@Log("创建入库单")
|
||||||
|
@ApiOperation("创建入库单")
|
||||||
|
public ResponseEntity<Object> create(@RequestBody JSONObject whereJson){
|
||||||
|
iStIvtIostorinvCpService.create(whereJson);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/update")
|
||||||
|
@Log("修改入库单")
|
||||||
|
@ApiOperation("修改入库单")
|
||||||
|
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson){
|
||||||
|
iStIvtIostorinvCpService.update(whereJson);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/delete")
|
||||||
|
@Log("删除入库单")
|
||||||
|
@ApiOperation("删除入库单")
|
||||||
|
public ResponseEntity<Object> delete(@RequestBody Long[] ids){
|
||||||
|
iStIvtIostorinvCpService.delete(ids);
|
||||||
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getIosInvDtl")
|
||||||
|
@Log("获取明细")
|
||||||
|
@ApiOperation("获取明细")
|
||||||
|
public ResponseEntity<Object> getIosInvDtl(@RequestBody JSONObject whereJson){
|
||||||
|
return new ResponseEntity<>(iStIvtIostorinvCpService.getIosInvDtl(whereJson),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@PostMapping("/getIosInvDis")
|
||||||
|
@Log("获取分配明细")
|
||||||
|
@ApiOperation("获取明细")
|
||||||
|
public ResponseEntity<Object> getIosInvDis(@RequestBody JSONObject whereJson){
|
||||||
|
return new ResponseEntity<>(iStIvtIostorinvCpService.getIosInvDis(whereJson),HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
@@ -1,165 +0,0 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.controller.iostorInv;
|
|
||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import io.swagger.annotations.Api;
|
|
||||||
import io.swagger.annotations.ApiOperation;
|
|
||||||
import lombok.RequiredArgsConstructor;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
|
||||||
import org.nl.common.anno.Log;
|
|
||||||
import org.nl.wms.storage_manage.service.semiproduct.ProductOutService;
|
|
||||||
import org.springframework.data.domain.Pageable;
|
|
||||||
import org.springframework.http.HttpStatus;
|
|
||||||
import org.springframework.http.ResponseEntity;
|
|
||||||
import org.springframework.web.bind.annotation.*;
|
|
||||||
|
|
||||||
import javax.servlet.http.HttpServletResponse;
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.Map;
|
|
||||||
|
|
||||||
@RestController
|
|
||||||
@RequiredArgsConstructor
|
|
||||||
@Api(tags = "成品出库")
|
|
||||||
@RequestMapping("/api/productOut")
|
|
||||||
@Slf4j
|
|
||||||
public class ProductOutController {
|
|
||||||
private final ProductOutService productOutService;
|
|
||||||
|
|
||||||
@GetMapping
|
|
||||||
@Log("查询出库单")
|
|
||||||
@ApiOperation("查询出库单")
|
|
||||||
public ResponseEntity<Object> query(@RequestParam Map whereJson, Pageable page){
|
|
||||||
return new ResponseEntity<>(productOutService.pageQuery(whereJson,page), HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/addDtl")
|
|
||||||
@Log("查询库存")
|
|
||||||
@ApiOperation("查询库存")
|
|
||||||
public ResponseEntity<Object> queryAddDtl(@RequestParam Map whereJson, Pageable page){
|
|
||||||
return new ResponseEntity<>(productOutService.queryAddDtl(whereJson,page), HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@GetMapping("/queryDtl")
|
|
||||||
@Log("查询明细")
|
|
||||||
@ApiOperation("查询明细")
|
|
||||||
public ResponseEntity<Object> queryDtl(@RequestParam Map whereJson, Pageable page){
|
|
||||||
return new ResponseEntity<>(productOutService.queryDtl(whereJson,page), HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/getOutBillDtl")
|
|
||||||
@Log("查询分配明细")
|
|
||||||
@ApiOperation("查询分配明细")
|
|
||||||
public ResponseEntity<Object> getOutBillDtl(@RequestBody JSONObject whereJson){
|
|
||||||
return new ResponseEntity<>(productOutService.getOutBillDtl(whereJson), HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Log("删除出库单")
|
|
||||||
@ApiOperation("删除出库单")
|
|
||||||
@DeleteMapping
|
|
||||||
public ResponseEntity<Object> delete(@RequestBody Long[] ids) {
|
|
||||||
productOutService.deleteAll(ids);
|
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PutMapping
|
|
||||||
@Log("修改出库单")
|
|
||||||
@ApiOperation("修改出库单")
|
|
||||||
public ResponseEntity<Object> update(@RequestBody JSONObject whereJson){
|
|
||||||
productOutService.update(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping()
|
|
||||||
@Log("新增出库单")
|
|
||||||
@ApiOperation("新增出库单")
|
|
||||||
public ResponseEntity<Object> insertDtl(@RequestBody JSONObject whereJson){
|
|
||||||
productOutService.insertDtl(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.CREATED);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/allDiv")
|
|
||||||
@Log("出库单全部分配")
|
|
||||||
@ApiOperation("出库单全部分配")
|
|
||||||
public ResponseEntity<Object> allDiv(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.allDiv(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/allDivOne")
|
|
||||||
@Log("分配一条出库明细")
|
|
||||||
@ApiOperation("分配一条出库明细")
|
|
||||||
public ResponseEntity<Object> allDivOne(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.allDivOne(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/allCancel")
|
|
||||||
@Log("出库单全部取消")
|
|
||||||
@ApiOperation("出库单全部取消")
|
|
||||||
public ResponseEntity<Object> allCancel(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.allCancel(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/oneCancel")
|
|
||||||
@Log("出库单全部取消")
|
|
||||||
@ApiOperation("出库单全部取消")
|
|
||||||
public ResponseEntity<Object> oneCancel(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.oneCancel(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/getOutBillDis")
|
|
||||||
@Log("查询出库单分配明细")
|
|
||||||
@ApiOperation("查询出库单分配明细")
|
|
||||||
public ResponseEntity<Object> getOutBillDis(@RequestBody JSONObject whereJson){
|
|
||||||
return new ResponseEntity<>(productOutService.getOutBillDis(whereJson), HttpStatus.OK);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/allSetPoint")
|
|
||||||
@Log("设置全部站点")
|
|
||||||
@ApiOperation("设置全部站点")
|
|
||||||
public ResponseEntity<Object> allSetPoint(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.allSetPoint(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/manualDiv")
|
|
||||||
@Log("出库单手动分配")
|
|
||||||
@ApiOperation("出库单手动分配")
|
|
||||||
public ResponseEntity<Object> manualDiv(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.manualDiv(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/confirm")
|
|
||||||
@Log("出库单强制确认")
|
|
||||||
@ApiOperation("出库单强制确认")
|
|
||||||
public ResponseEntity<Object> confirm(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.confirm(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/finishTask")
|
|
||||||
@Log("出库任务手动完成")
|
|
||||||
@ApiOperation("出库任务手动完成")
|
|
||||||
public ResponseEntity<Object> finishTask(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.finishTask(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@PostMapping("/backConfirm")
|
|
||||||
@Log("出库单强制确认")
|
|
||||||
@ApiOperation("出库单强制确认")
|
|
||||||
public ResponseEntity<Object> backConfirm(@RequestBody JSONObject whereJson) {
|
|
||||||
productOutService.backConfirm(whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
||||||
}
|
|
||||||
|
|
||||||
@Log("下载发货单Excel")
|
|
||||||
@ApiOperation("下载发货单Excel")
|
|
||||||
@GetMapping(value = "/downloadExcel")
|
|
||||||
public ResponseEntity<Object> downloadExcel(HttpServletResponse response, @RequestParam Map whereJson) throws IOException {
|
|
||||||
productOutService.downloadExcel(response,whereJson);
|
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
|
||||||
}
|
|
||||||
}
|
|
||||||
@@ -2,7 +2,9 @@ package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
|||||||
|
|
||||||
import com.alibaba.fastjson.JSONObject;
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||||
|
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
@@ -15,35 +17,58 @@ import java.util.List;
|
|||||||
* @since 2023-05-04
|
* @since 2023-05-04
|
||||||
*/
|
*/
|
||||||
public interface IStIvtIostorinvCpService extends IService<StIvtIostorinvCp> {
|
public interface IStIvtIostorinvCpService extends IService<StIvtIostorinvCp> {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 分页查询
|
||||||
|
* @param query,page /
|
||||||
|
* @return JSONObject
|
||||||
|
*/
|
||||||
|
JSONObject pageQuery(IostorInvQuery query, PageQuery page);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 创建
|
* 创建
|
||||||
* @param form
|
* @param form /
|
||||||
*/
|
*/
|
||||||
void create(JSONObject form);
|
void create(JSONObject form);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 更新相关联的表
|
* 更新相关联的表
|
||||||
* @param form
|
* @param form /
|
||||||
*/
|
*/
|
||||||
void update(JSONObject form);
|
void update(JSONObject form);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询出入库单明细
|
* 查询出入库单明细
|
||||||
* @param whereJson /
|
* @param whereJson /
|
||||||
* @return JSONArray
|
* @return List
|
||||||
*/
|
*/
|
||||||
List getIosInvDtl(JSONObject whereJson);
|
List getIosInvDtl(JSONObject whereJson);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 查询出入库单分配明细
|
||||||
|
* @param whereJson /
|
||||||
|
* @return List
|
||||||
|
*/
|
||||||
|
List getIosInvDis(JSONObject whereJson);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 提交单据
|
* 提交单据
|
||||||
* @param whereJson
|
* @param whereJson /
|
||||||
*/
|
*/
|
||||||
void commit(JSONObject whereJson);
|
void commit(JSONObject whereJson);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 组盘
|
* 组盘
|
||||||
* @param whereJson
|
* @param whereJson /
|
||||||
*/
|
*/
|
||||||
void confirmvehicle(JSONObject whereJson);
|
void confirmvehicle(JSONObject whereJson);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 组盘
|
||||||
|
* @param ids /
|
||||||
|
*/
|
||||||
|
void delete(Long[] ids);
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -23,5 +23,5 @@ public interface IStIvtIostorinvdisCpService extends IService<StIvtIostorinvdisC
|
|||||||
*/
|
*/
|
||||||
void batchInsert(Collection<StIvtIostorinvdisCp> list);
|
void batchInsert(Collection<StIvtIostorinvdisCp> list);
|
||||||
|
|
||||||
List queryInvDisByInvdtl(Map<String, Object> map);
|
List<Map> queryInvDisByInvdtl(Map<String, Object> map);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.IService;
|
import com.baomidou.mybatisplus.extension.service.IService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 出入库单分配明细表 服务类
|
* 出入库单分配明细表 服务类
|
||||||
@@ -13,4 +17,5 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
|||||||
*/
|
*/
|
||||||
public interface IStIvtIostorinvdisdtlCpService extends IService<StIvtIostorinvdisdtlCp> {
|
public interface IStIvtIostorinvdisdtlCpService extends IService<StIvtIostorinvdisdtlCp> {
|
||||||
|
|
||||||
|
List<JSONObject> queryInvDisByInvdtl(Map<String, Object> map);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,6 +1,8 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao;
|
||||||
|
|
||||||
|
import com.baomidou.mybatisplus.annotation.TableId;
|
||||||
import com.baomidou.mybatisplus.annotation.TableName;
|
import com.baomidou.mybatisplus.annotation.TableName;
|
||||||
|
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||||
import lombok.Data;
|
import lombok.Data;
|
||||||
import lombok.EqualsAndHashCode;
|
import lombok.EqualsAndHashCode;
|
||||||
|
|
||||||
@@ -26,6 +28,7 @@ public class StIvtIostorinvCp implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 出入单标识
|
* 出入单标识
|
||||||
*/
|
*/
|
||||||
|
@TableId(value = "iostorinv_id")
|
||||||
private String iostorinv_id;
|
private String iostorinv_id;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -116,6 +119,7 @@ public class StIvtIostorinvCp implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 创建时间
|
* 创建时间
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date create_time;
|
private Date create_time;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -131,6 +135,7 @@ public class StIvtIostorinvCp implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 修改时间
|
* 修改时间
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private Date update_time;
|
private Date update_time;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -146,6 +151,7 @@ public class StIvtIostorinvCp implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 分配时间
|
* 分配时间
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private String dis_time;
|
private String dis_time;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -161,6 +167,7 @@ public class StIvtIostorinvCp implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 确认时间
|
* 确认时间
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private String confirm_time;
|
private String confirm_time;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
@@ -196,6 +203,7 @@ public class StIvtIostorinvCp implements Serializable {
|
|||||||
/**
|
/**
|
||||||
* 回传时间
|
* 回传时间
|
||||||
*/
|
*/
|
||||||
|
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||||
private String upload_time;
|
private String upload_time;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
|||||||
@@ -1,8 +1,12 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 出入库单分配明细表 Mapper 接口
|
* 出入库单分配明细表 Mapper 接口
|
||||||
@@ -13,4 +17,6 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
|||||||
*/
|
*/
|
||||||
public interface StIvtIostorinvdisdtlCpMapper extends BaseMapper<StIvtIostorinvdisdtlCp> {
|
public interface StIvtIostorinvdisdtlCpMapper extends BaseMapper<StIvtIostorinvdisdtlCp> {
|
||||||
|
|
||||||
|
List<JSONObject> queryInvDtlDisByInv(Map<String,Object> map);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -70,15 +70,17 @@
|
|||||||
dis.*,
|
dis.*,
|
||||||
mater.material_code,
|
mater.material_code,
|
||||||
mater.material_name,
|
mater.material_name,
|
||||||
mater.material_spec,
|
mater.material_spec
|
||||||
dis.struct_code
|
|
||||||
FROM
|
FROM
|
||||||
st_ivt_iostorinvdis_cp dis
|
st_ivt_iostorinvdis_cp dis
|
||||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id
|
LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id
|
||||||
WHERE IFNULL(dis.task_id,'') = ''
|
WHERE 1=1
|
||||||
<if test="iostorinvdtl_id != null and iostorinvdtl_id != ''">
|
<if test="iostorinvdtl_id != null and iostorinvdtl_id != ''">
|
||||||
and dis.iostorinvdtl_id = #{iostorinvdtl_id}
|
and dis.iostorinvdtl_id = #{iostorinvdtl_id}
|
||||||
</if>
|
</if>
|
||||||
|
<if test="iostorinv_id != null and iostorinv_id != ''">
|
||||||
|
and dis.iostorinv_id = #{iostorinv_id}
|
||||||
|
</if>
|
||||||
order by dis.seq_no ASC
|
order by dis.seq_no ASC
|
||||||
</select>
|
</select>
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -1,5 +1,27 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8"?>
|
<?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">
|
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||||
<mapper namespace="org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper">
|
<mapper namespace="org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper">
|
||||||
|
<select id="queryInvDtlDisByInv" resultType="java.util.Map">
|
||||||
|
SELECT
|
||||||
|
disdtl.*,
|
||||||
|
mater.material_code,
|
||||||
|
mater.material_name,
|
||||||
|
mater.material_spec,
|
||||||
|
dis.point_code,
|
||||||
|
task.task_code
|
||||||
|
FROM
|
||||||
|
ST_IVT_IOStorInvDisDtl_CP disdtl
|
||||||
|
LEFT JOIN md_me_materialbase mater ON mater.material_id = disdtl.material_id
|
||||||
|
LEFT JOIN ST_IVT_IOStorInvDis_CP dis ON dis.iostorinvdis_id = disdtl.iostorinvdis_id
|
||||||
|
LEFT JOIN sch_base_task task ON task.task_id = dis.task_id
|
||||||
|
WHERE 1=1
|
||||||
|
<if test="iostorinvdis_id != null and iostorinvdis_id != ''">
|
||||||
|
and disdtl.iostorinvdis_id = #{iostorinvdis_id}
|
||||||
|
</if>
|
||||||
|
<if test="storagevehicle_code != null and storagevehicle_code != ''">
|
||||||
|
and disdtl.storagevehicle_code = #{storagevehicle_code}
|
||||||
|
</if>
|
||||||
|
order by disdtl.seq_no ASC
|
||||||
|
</select>
|
||||||
|
|
||||||
</mapper>
|
</mapper>
|
||||||
|
|||||||
@@ -68,8 +68,8 @@
|
|||||||
mater.material_name,
|
mater.material_name,
|
||||||
mater.material_spec
|
mater.material_spec
|
||||||
FROM
|
FROM
|
||||||
ST_IVT_IOStorInvDtl dtl
|
st_ivt_iostorinvdtl_cp dtl
|
||||||
LEFT JOIN ST_IVT_IOStorInv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
LEFT JOIN st_ivt_iostorinv_cp mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = dtl.material_id
|
LEFT JOIN md_me_materialbase mater ON mater.material_id = dtl.material_id
|
||||||
WHERE mst.is_delete = '0'
|
WHERE mst.is_delete = '0'
|
||||||
<if test="bill_code != null and bill_code != ''">
|
<if test="bill_code != null and bill_code != ''">
|
||||||
|
|||||||
@@ -1,33 +1,38 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||||
|
|
||||||
import cn.hutool.core.date.DateUtil;
|
|
||||||
import cn.hutool.core.util.ObjectUtil;
|
import cn.hutool.core.util.ObjectUtil;
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
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 com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import io.jsonwebtoken.lang.Assert;
|
import io.jsonwebtoken.lang.Assert;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
|
import org.nl.common.domain.query.PageQuery;
|
||||||
|
import org.nl.common.utils.MapOf;
|
||||||
import org.nl.common.utils.SecurityUtils;
|
import org.nl.common.utils.SecurityUtils;
|
||||||
import org.nl.modules.common.exception.BadRequestException;
|
import org.nl.modules.common.exception.BadRequestException;
|
||||||
import org.nl.modules.system.util.CodeUtil;
|
import org.nl.modules.system.util.CodeUtil;
|
||||||
import org.nl.modules.wql.core.bean.WQLObject;
|
import org.nl.modules.wql.core.bean.WQLObject;
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
|
import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService;
|
||||||
|
import org.nl.wms.storage_manage.basedata.service.storage.dao.StIvtBsrealstorattr;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvCpMapper;
|
||||||
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
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;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import java.math.BigDecimal;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -42,37 +47,62 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService;
|
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IStIvtIostorinvdisdtlCpService iStIvtIostorinvdisdtlCpService;
|
||||||
|
|
||||||
|
@Autowired
|
||||||
|
protected IStIvtBsrealstorattrService stIvtBsrealstorattrService;
|
||||||
|
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public JSONObject pageQuery(IostorInvQuery query, PageQuery page) {
|
||||||
|
// 查询条件
|
||||||
|
query.setIo_type(IOSEnum.IO_TYPE.code("入库"));
|
||||||
|
page.setSort("bill_code,ASC");
|
||||||
|
|
||||||
|
// 分页查询
|
||||||
|
Page<StIvtIostorinvCp> pageQuery = this.page(page.build(), query.build());
|
||||||
|
|
||||||
|
// 组织前端返回数据
|
||||||
|
JSONObject json = new JSONObject();
|
||||||
|
json.put("content", pageQuery.getRecords());
|
||||||
|
json.put("totalElements", pageQuery.getTotal());
|
||||||
|
|
||||||
|
return json;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void create(JSONObject form) {
|
public void create(JSONObject form) {
|
||||||
Assert.notNull(new Object[]{form,form.getJSONArray("tableData")},"请求参数不能为空");
|
|
||||||
JSONArray rows = form.getJSONArray("tableData");
|
JSONArray rows = form.getJSONArray("tableData");
|
||||||
|
if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("请求参数不能为空");
|
||||||
|
|
||||||
|
// 调用主表 插入/更新方法
|
||||||
|
StIvtIostorinvCp stIvtIostorinvCp = packageMstForm(new StIvtIostorinvCp(), form, false);
|
||||||
// 插入主表
|
// 插入主表
|
||||||
StIvtIostorinvCp stIvtIostorinvCp = new StIvtIostorinvCp();
|
|
||||||
packageMstForm(stIvtIostorinvCp,form,false);
|
|
||||||
double total_qty = iostorinvdtlCpService.create(rows, stIvtIostorinvCp.getIostorinv_id());
|
|
||||||
stIvtIostorinvCp.setTotal_qty(new BigDecimal(total_qty));
|
|
||||||
this.save(stIvtIostorinvCp);
|
this.save(stIvtIostorinvCp);
|
||||||
|
|
||||||
|
// 调用明细表 插入/更新方法
|
||||||
|
iostorinvdtlCpService.create(rows, stIvtIostorinvCp.getIostorinv_id());
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public void update(JSONObject form) {
|
public void update(JSONObject form) {
|
||||||
Assert.notNull(new Object[]{form,form.getJSONArray("tableData")},"请求参数不能为空");
|
|
||||||
JSONArray rows = form.getJSONArray("tableData");
|
JSONArray rows = form.getJSONArray("tableData");
|
||||||
//先删除该单据下的所有明细
|
if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("明细不能为空");
|
||||||
iostorinvdtlCpService.remove(new QueryWrapper<StIvtIostorinvdtlCp>().eq("iostorinv_id",form.getString("iostorinv_id")));
|
|
||||||
iostorinvdisCpService.remove(new QueryWrapper<StIvtIostorinvdisCp>().eq("iostorinv_id",form.getString("iostorinv_id")));
|
|
||||||
|
|
||||||
StIvtIostorinvCp iostorinvCp = this.getOne(new QueryWrapper<StIvtIostorinvCp>().eq("iostorinv_id", form.getString("iostorinv_id")));
|
StIvtIostorinvCp iostorinvCp = this.getOne(new QueryWrapper<StIvtIostorinvCp>().eq("iostorinv_id", form.getString("iostorinv_id")));
|
||||||
packageMstForm(iostorinvCp,form,true);
|
packageMstForm(iostorinvCp,form,true);
|
||||||
|
|
||||||
//创建明细
|
//创建明细
|
||||||
double total_qty = iostorinvdtlCpService.create(rows, iostorinvCp.getIostorinv_id());
|
iostorinvdtlCpService.create(rows, iostorinvCp.getIostorinv_id());
|
||||||
iostorinvCp.setTotal_qty(new BigDecimal(total_qty));
|
|
||||||
// 更新主表
|
// 更新主表
|
||||||
this.updateById(iostorinvCp);
|
this.updateById(iostorinvCp);
|
||||||
}
|
}
|
||||||
@@ -80,10 +110,35 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List getIosInvDtl(JSONObject whereJson) {
|
public List getIosInvDtl(JSONObject whereJson) {
|
||||||
|
// 查询主表明细
|
||||||
List<Map> maps = iostorinvdtlCpService.queryInvDtlByInv(whereJson);
|
List<Map> maps = iostorinvdtlCpService.queryInvDtlByInv(whereJson);
|
||||||
return maps;
|
return maps;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List getIosInvDis(JSONObject whereJson) {
|
||||||
|
|
||||||
|
// 查询分配表
|
||||||
|
List<Map> maps = iostorinvdisCpService.queryInvDisByInvdtl(whereJson);
|
||||||
|
|
||||||
|
// 返回数据
|
||||||
|
List<JSONObject> resultList = new ArrayList<>();
|
||||||
|
|
||||||
|
// 考虑有箱号情况
|
||||||
|
if (true) {
|
||||||
|
maps.forEach(item -> {
|
||||||
|
String storagevehicle_code = (String) item.get("storagevehicle_code");
|
||||||
|
String iostorinvdis_id = (String) item.get("iostorinvdis_id");
|
||||||
|
|
||||||
|
// 根据托盘查找分配明细
|
||||||
|
resultList.addAll(iStIvtIostorinvdisdtlCpService.queryInvDisByInvdtl(MapOf.of("storagevehicle_code", storagevehicle_code, "iostorinvdis_id", iostorinvdis_id)));
|
||||||
|
});
|
||||||
|
} else {
|
||||||
|
// 考虑无箱号情况
|
||||||
|
}
|
||||||
|
return resultList;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void commit(JSONObject whereJson) {
|
public void commit(JSONObject whereJson) {
|
||||||
Assert.notNull(whereJson,"请求参数不能为空");
|
Assert.notNull(whereJson,"请求参数不能为空");
|
||||||
@@ -123,28 +178,57 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
|||||||
disTab.update(jsonDis);
|
disTab.update(jsonDis);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void delete(Long[] ids) {
|
||||||
|
|
||||||
|
for (Long id : ids) {
|
||||||
|
StIvtIostorinvCp dao = this.getOne(new QueryWrapper<StIvtIostorinvCp>().eq("iostorinv_id", id));
|
||||||
|
dao.setIs_delete(true);
|
||||||
|
|
||||||
|
this.updateById(dao);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
@NotNull
|
@NotNull
|
||||||
private void packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
||||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||||
if (!isUpdate){
|
if (!isUpdate){
|
||||||
|
// 新增
|
||||||
stIvtIostorinvCp.setIostorinv_id(org.nl.common.utils.IdUtil.getStringId());
|
stIvtIostorinvCp.setIostorinv_id(org.nl.common.utils.IdUtil.getStringId());
|
||||||
stIvtIostorinvCp.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
stIvtIostorinvCp.setBill_code(CodeUtil.getNewCode("IO_CODE"));
|
||||||
|
stIvtIostorinvCp.setIo_type(IOSEnum.IO_TYPE.code("入库"));
|
||||||
|
stIvtIostorinvCp.setBuss_type(whereJson.getString("bill_type"));
|
||||||
|
stIvtIostorinvCp.setBill_type(stIvtIostorinvCp.getBuss_type());
|
||||||
stIvtIostorinvCp.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
stIvtIostorinvCp.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||||
stIvtIostorinvCp.setCreate_id(SecurityUtils.getCurrentUserId());
|
stIvtIostorinvCp.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||||
stIvtIostorinvCp.setCreate_name(SecurityUtils.getCurrentNickName());
|
stIvtIostorinvCp.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||||
stIvtIostorinvCp.setCreate_time(new Date());
|
stIvtIostorinvCp.setCreate_time(new Date());
|
||||||
|
stIvtIostorinvCp.setIs_delete(false);
|
||||||
|
// TODO 暂时写死
|
||||||
|
stIvtIostorinvCp.setSysdeptid("111");
|
||||||
|
stIvtIostorinvCp.setSyscompanyid("111");
|
||||||
}else {
|
}else {
|
||||||
|
// 修改
|
||||||
stIvtIostorinvCp.setUpdate_id(SecurityUtils.getCurrentUserId());
|
stIvtIostorinvCp.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||||
stIvtIostorinvCp.setUpdate_name(SecurityUtils.getCurrentNickName());
|
stIvtIostorinvCp.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||||
stIvtIostorinvCp.setUpdate_time(new Date());
|
stIvtIostorinvCp.setUpdate_time(new Date());
|
||||||
}
|
}
|
||||||
stIvtIostorinvCp.setIo_type(IOSEnum.IO_TYPE.code("入库"));
|
|
||||||
stIvtIostorinvCp.setBill_type(IOSEnum.BILL_TYPE.check(whereJson.getString("bill_type")));
|
stIvtIostorinvCp.setBiz_date(whereJson.getString("biz_date").substring(0,10));
|
||||||
stIvtIostorinvCp.setBiz_date(whereJson.getString("biz_date").substring(0, 10));
|
// 获取仓库信息
|
||||||
stIvtIostorinvCp.setProduct_area(whereJson.getString("product_code"));
|
QueryWrapper<StIvtBsrealstorattr> wrapper = new QueryWrapper<>();
|
||||||
|
wrapper.eq("stor_id", whereJson.getString("stor_id"));
|
||||||
|
wrapper.eq("is_used", true);
|
||||||
|
StIvtBsrealstorattr bsrealDao = stIvtBsrealstorattrService.getOne(wrapper);
|
||||||
|
if (ObjectUtil.isEmpty(bsrealDao)) throw new BadRequestException("仓库不存在或未启用!");
|
||||||
|
|
||||||
|
stIvtIostorinvCp.setStor_id(bsrealDao.getStor_id());
|
||||||
|
stIvtIostorinvCp.setStor_code(bsrealDao.getStor_code());
|
||||||
|
stIvtIostorinvCp.setStor_name(bsrealDao.getStor_name());
|
||||||
|
stIvtIostorinvCp.setTotal_qty(whereJson.getBigDecimal("total_qty"));
|
||||||
stIvtIostorinvCp.setDetail_count(rows.size());
|
stIvtIostorinvCp.setDetail_count(rows.size());
|
||||||
stIvtIostorinvCp.setRemark(whereJson.getString("remark"));
|
stIvtIostorinvCp.setRemark(whereJson.getString("remark"));
|
||||||
|
|
||||||
|
return stIvtIostorinvCp;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,11 +1,15 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||||
|
|
||||||
|
import com.alibaba.fastjson.JSONObject;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisdtlCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
|
|
||||||
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
* 出入库单分配明细表 服务实现类
|
* 出入库单分配明细表 服务实现类
|
||||||
@@ -17,4 +21,8 @@ import org.springframework.stereotype.Service;
|
|||||||
@Service
|
@Service
|
||||||
public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdisdtlCpMapper, StIvtIostorinvdisdtlCp> implements IStIvtIostorinvdisdtlCpService {
|
public class StIvtIostorinvdisdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdisdtlCpMapper, StIvtIostorinvdisdtlCp> implements IStIvtIostorinvdisdtlCpService {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public List<JSONObject> queryInvDisByInvdtl(Map<String, Object> map) {
|
||||||
|
return baseMapper.queryInvDtlDisByInv(map);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,30 +1,24 @@
|
|||||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||||
|
|
||||||
import cn.hutool.core.bean.BeanUtil;
|
|
||||||
import com.alibaba.fastjson.JSONArray;
|
import com.alibaba.fastjson.JSONArray;
|
||||||
import com.alibaba.fastjson.JSONObject;
|
|
||||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||||
import org.apache.commons.lang3.StringUtils;
|
import org.apache.commons.lang3.StringUtils;
|
||||||
import org.nl.modules.wql.WQL;
|
|
||||||
import org.nl.wms.masterdata_manage.MasterEnum;
|
|
||||||
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
|
import org.nl.wms.masterdata_manage.service.master.IMdPbMeasureunitService;
|
||||||
import org.nl.wms.masterdata_manage.service.master.dao.MdPbMeasureunit;
|
|
||||||
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
import org.nl.wms.masterdata_manage.service.material.IMdMeMaterialbaseService;
|
||||||
import org.nl.wms.masterdata_manage.service.material.dao.MdMeMaterialbase;
|
|
||||||
import org.nl.wms.storage_manage.IOSEnum;
|
import org.nl.wms.storage_manage.IOSEnum;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.IStIvtIostorinvdtlCpService;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisCp;
|
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdtlCp;
|
||||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdtlCpMapper;
|
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdtlCpMapper;
|
||||||
import org.springframework.beans.factory.annotation.Autowired;
|
import org.springframework.beans.factory.annotation.Autowired;
|
||||||
import org.springframework.stereotype.Service;
|
import org.springframework.stereotype.Service;
|
||||||
import org.springframework.util.CollectionUtils;
|
import org.springframework.util.CollectionUtils;
|
||||||
|
|
||||||
import java.math.BigDecimal;
|
import javax.annotation.Resource;
|
||||||
import java.util.*;
|
import java.util.Collection;
|
||||||
import java.util.stream.Collectors;
|
import java.util.List;
|
||||||
|
import java.util.Map;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* <p>
|
* <p>
|
||||||
@@ -39,8 +33,14 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
|||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdPbMeasureunitService measureunitService;
|
private IMdPbMeasureunitService measureunitService;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
private IMdMeMaterialbaseService materialbaseService;
|
private IMdMeMaterialbaseService materialbaseService;
|
||||||
|
|
||||||
|
|
||||||
|
@Resource
|
||||||
|
private StIvtIostorinvdtlCpMapper baseMapper;
|
||||||
|
|
||||||
@Autowired
|
@Autowired
|
||||||
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
||||||
|
|
||||||
@@ -55,48 +55,24 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
|||||||
@Override
|
@Override
|
||||||
public double create(JSONArray rows, String iostorinvCp_id) {
|
public double create(JSONArray rows, String iostorinvCp_id) {
|
||||||
double total_qty = 0;
|
double total_qty = 0;
|
||||||
ArrayList<StIvtIostorinvdtlCp> mingxi = new ArrayList<>();
|
|
||||||
ArrayList<StIvtIostorinvdisCp> fenpei = new ArrayList<>();
|
|
||||||
|
|
||||||
if (rows.size()>0 && StringUtils.isNotEmpty(iostorinvCp_id)){
|
if (rows.size()>0 && StringUtils.isNotEmpty(iostorinvCp_id)){
|
||||||
List<MdMeMaterialbase> tmp_materials = materialbaseService.list(new QueryWrapper<MdMeMaterialbase>().in("material_code", rows.stream().map(row -> ((JSONObject) row).getString("material_code")).collect(Collectors.toSet())));
|
// 先删除在插入
|
||||||
List<MdPbMeasureunit> tmp_measureUnits = measureunitService.list(new QueryWrapper<MdPbMeasureunit>().in("measure_unit_id", tmp_materials.stream().map(MdMeMaterialbase::getBase_unit_id).collect(Collectors.toSet())));
|
this.remove(new QueryWrapper<StIvtIostorinvdtlCp>().eq("iostorinv_id", iostorinvCp_id));
|
||||||
|
|
||||||
Map<String, MdMeMaterialbase> materialMap = tmp_materials.stream().collect(HashMap::new, (k, v) -> k.put(v.getMaterial_code(), v), HashMap::putAll);
|
|
||||||
Map<String, String> measureUnitMap = tmp_measureUnits.stream().collect(HashMap::new, (k, v) -> k.put(v.getMeasure_unit_id(), v.getUnit_name()), HashMap::putAll);
|
|
||||||
for (int i = 0; i < rows.size(); i++) {
|
for (int i = 0; i < rows.size(); i++) {
|
||||||
// 插入明细表
|
StIvtIostorinvdtlCp row = rows.getJSONObject(i).toJavaObject(StIvtIostorinvdtlCp.class);
|
||||||
JSONObject row = rows.getJSONObject(i);
|
row.setIostorinv_id(iostorinvCp_id);
|
||||||
StIvtIostorinvdtlCp iostorinvdtlCp = new StIvtIostorinvdtlCp();
|
row.setIostorinvdtl_id(org.nl.common.utils.IdUtil.getStringId());
|
||||||
iostorinvdtlCp.setIostorinvdtl_id(org.nl.common.utils.IdUtil.getStringId());
|
row.setSeq_no(i+1);
|
||||||
iostorinvdtlCp.setIostorinv_id(iostorinvCp_id);
|
row.setIs_active(true);
|
||||||
iostorinvdtlCp.setSeq_no(i + 1);
|
row.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||||
MdMeMaterialbase material = materialMap.get(row.get("material_code"));
|
row.setReal_qty(row.getPlan_qty());
|
||||||
iostorinvdtlCp.setMaterial_id(material.getMaterial_id());
|
row.setUnassign_qty(row.getPlan_qty());
|
||||||
iostorinvdtlCp.setPcsn(row.getString("pcsn"));
|
this.save(row);
|
||||||
iostorinvdtlCp.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
total_qty += row.getPlan_qty().doubleValue();
|
||||||
iostorinvdtlCp.setQuality_scode(MasterEnum.MATERIAL_QUALITY.code("一等品"));
|
|
||||||
iostorinvdtlCp.setQty_unit_id(material.getBase_unit_id());
|
|
||||||
iostorinvdtlCp.setQty_unit_name(measureUnitMap.get(material.getBase_unit_id()));
|
|
||||||
iostorinvdtlCp.setAssign_qty(new BigDecimal(row.getDoubleValue("plan_qty")));
|
|
||||||
iostorinvdtlCp.setPlan_qty(iostorinvdtlCp.getAssign_qty());
|
|
||||||
mingxi.add(iostorinvdtlCp);
|
|
||||||
String tmp_plan_qty = row.getString("plan_qty");
|
|
||||||
if (!StringUtils.isEmpty(tmp_plan_qty)){
|
|
||||||
total_qty += Double.parseDouble(tmp_plan_qty);
|
|
||||||
}
|
|
||||||
//分配表
|
|
||||||
StIvtIostorinvdisCp stIvtIostorinvdisCp = BeanUtil.copyProperties(iostorinvdtlCp, StIvtIostorinvdisCp.class);
|
|
||||||
stIvtIostorinvdisCp.setIostorinvdis_id(org.nl.common.utils.IdUtil.getStringId());
|
|
||||||
stIvtIostorinvdisCp.setSeq_no(1);
|
|
||||||
stIvtIostorinvdisCp.setWork_status(IOSEnum.WORK_STATUS.code("创建"));
|
|
||||||
fenpei.add(stIvtIostorinvdisCp);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
if (!com.alibaba.excel.util.CollectionUtils.isEmpty(mingxi)){
|
|
||||||
this.batchInsert(mingxi);
|
|
||||||
iostorinvdisCpService.batchInsert(fenpei);
|
|
||||||
}
|
|
||||||
return total_qty;
|
return total_qty;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -88,7 +88,7 @@ mybatis-plus:
|
|||||||
map-underscore-to-camel-case: false
|
map-underscore-to-camel-case: false
|
||||||
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||||
mapper-locations:
|
mapper-locations:
|
||||||
- classpath:org.nl.**.mapper/*.xml
|
- classpath:/org/nl/**/mapper/**/*.xml
|
||||||
global-config:
|
global-config:
|
||||||
db-config:
|
db-config:
|
||||||
id-type: INPUT
|
id-type: INPUT
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import request from '@/utils/request'
|
|||||||
|
|
||||||
export function add(data) {
|
export function add(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/Storattr',
|
url: '/api/stIvtBsrealstorattr',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
@@ -10,7 +10,7 @@ export function add(data) {
|
|||||||
|
|
||||||
export function del(ids) {
|
export function del(ids) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/Storattr/',
|
url: '/api/stIvtBsrealstorattr',
|
||||||
method: 'delete',
|
method: 'delete',
|
||||||
data: ids
|
data: ids
|
||||||
})
|
})
|
||||||
@@ -18,7 +18,7 @@ export function del(ids) {
|
|||||||
|
|
||||||
export function edit(data) {
|
export function edit(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/Storattr',
|
url: '/api/stIvtBsrealstorattr',
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
@@ -26,7 +26,7 @@ export function edit(data) {
|
|||||||
|
|
||||||
export function getStor(params) {
|
export function getStor(params) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/Storattr/getStor',
|
url: '/api/stIvtBsrealstorattr/getStor',
|
||||||
method: 'get',
|
method: 'get',
|
||||||
params
|
params
|
||||||
})
|
})
|
||||||
@@ -34,10 +34,18 @@ export function getStor(params) {
|
|||||||
|
|
||||||
export function changeActive(data) {
|
export function changeActive(data) {
|
||||||
return request({
|
return request({
|
||||||
url: 'api/Storattr/changeActive',
|
url: '/api/stIvtBsrealstorattr/changeActive',
|
||||||
method: 'put',
|
method: 'put',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export default { add, edit, del, getStor, changeActive }
|
export function queryStor(data) {
|
||||||
|
return request({
|
||||||
|
url: '/api/stIvtBsrealstorattr/queryStor',
|
||||||
|
method: 'post',
|
||||||
|
data
|
||||||
|
})
|
||||||
|
}
|
||||||
|
|
||||||
|
export default { add, edit, del, getStor, changeActive, queryStor }
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
<!--suppress ALL -->
|
|
||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
:title="crud.status.title"
|
:title="crud.status.title"
|
||||||
@@ -27,24 +26,24 @@
|
|||||||
<label slot="label">单 据 号:</label>
|
<label slot="label">单 据 号:</label>
|
||||||
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
<el-input v-model="form.bill_code" disabled placeholder="系统生成" clearable style="width: 210px" />
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="仓库" prop="product_code">
|
<el-form-item label="仓库" prop="stor_id">
|
||||||
<label slot="label">仓      库:</label>
|
<label slot="label">仓      库:</label>
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.product_code"
|
v-model="form.stor_id"
|
||||||
clearable
|
clearable
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
style="width: 210px"
|
style="width: 210px"
|
||||||
:disabled="crud.status.view > 0"
|
:disabled="crud.status.view > 0"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in dict.product_area"
|
v-for="item in storlist"
|
||||||
:key="item.value"
|
:key="item.stor_id"
|
||||||
:label="item.label"
|
:label="item.stor_name"
|
||||||
:value="item.value"
|
:value="item.stor_id"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
<el-form-item label="业务类型">
|
<el-form-item label="业务类型" prop="bill_type">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.bill_type"
|
v-model="form.bill_type"
|
||||||
clearable
|
clearable
|
||||||
@@ -114,7 +113,7 @@
|
|||||||
size="mini"
|
size="mini"
|
||||||
@click="insertEvent()"
|
@click="insertEvent()"
|
||||||
>
|
>
|
||||||
添加物料
|
添加单据物料
|
||||||
</el-button>
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
slot="left"
|
slot="left"
|
||||||
@@ -122,7 +121,7 @@
|
|||||||
type="primary"
|
type="primary"
|
||||||
icon="el-icon-plus"
|
icon="el-icon-plus"
|
||||||
size="mini"
|
size="mini"
|
||||||
@click="insertEvent()"
|
@click="insertdtl()"
|
||||||
>
|
>
|
||||||
新增一行
|
新增一行
|
||||||
</el-button>
|
</el-button>
|
||||||
@@ -139,23 +138,19 @@
|
|||||||
>
|
>
|
||||||
<el-table-column type="index" label="序号" width="55" align="center" />
|
<el-table-column type="index" label="序号" width="55" align="center" />
|
||||||
|
|
||||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" />
|
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" width="190" align="center">
|
||||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" />
|
<template scope="scope">
|
||||||
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" />
|
<el-input v-show="!scope.row.edit" v-model="scope.row.material_code" disabled class="input-with-select">
|
||||||
<el-table-column show-overflow-tooltip prop="pcsn" label="订单号">
|
<el-button slot="append" icon="el-icon-plus" @click="queryMater(scope.$index, scope.row)" />
|
||||||
<template slot-scope="scope">
|
</el-input>
|
||||||
<el-input
|
<span v-show="scope.row.edit">{{ scope.row.material_code }}</span>
|
||||||
v-model="form.tableData[scope.$index].pcsn"
|
|
||||||
clearable
|
|
||||||
:controls="false"
|
|
||||||
controls-position="right"
|
|
||||||
size="small"
|
|
||||||
/>
|
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column show-overflow-tooltip prop="plan_qty" label="数量">
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="plan_qty" label="入库数量">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-input-number
|
<el-input-number
|
||||||
|
v-show="!scope.row.edit"
|
||||||
v-model="form.tableData[scope.$index].plan_qty"
|
v-model="form.tableData[scope.$index].plan_qty"
|
||||||
size="small"
|
size="small"
|
||||||
:controls="false"
|
:controls="false"
|
||||||
@@ -164,8 +159,18 @@
|
|||||||
:min="0"
|
:min="0"
|
||||||
@change="changeQty"
|
@change="changeQty"
|
||||||
/>
|
/>
|
||||||
|
<span v-show="scope.row.edit">{{ scope.row.plan_qty }}</span>
|
||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
|
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="remark" label="明细备注">
|
||||||
|
<template slot-scope="scope">
|
||||||
|
<el-input v-model="form.tableData[scope.$index].remark" size="small" />
|
||||||
|
</template>
|
||||||
|
</el-table-column>
|
||||||
|
<el-table-column show-overflow-tooltip prop="source_bill_type" label="源单类型" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单号" />
|
||||||
|
|
||||||
<el-table-column v-if="crud.status.cu > 0" align="center" label="操作" width="170" fixed="right">
|
<el-table-column v-if="crud.status.cu > 0" align="center" label="操作" width="170" fixed="right">
|
||||||
<template scope="scope">
|
<template scope="scope">
|
||||||
<el-button
|
<el-button
|
||||||
@@ -181,9 +186,14 @@
|
|||||||
|
|
||||||
<MaterDtl
|
<MaterDtl
|
||||||
:dialog-show.sync="materShow"
|
:dialog-show.sync="materShow"
|
||||||
:is-single="false"
|
:is-single="true"
|
||||||
:mater-opt-code="materType"
|
:mater-opt-code="materType"
|
||||||
@setMaterValue="tableChanged"
|
@setMaterValue="tableChanged1"
|
||||||
|
/>
|
||||||
|
|
||||||
|
<AddDtl
|
||||||
|
:dialog-show.sync="dtlShow"
|
||||||
|
@tableChanged="tableChanged2"
|
||||||
/>
|
/>
|
||||||
|
|
||||||
</el-dialog>
|
</el-dialog>
|
||||||
@@ -193,6 +203,8 @@
|
|||||||
import CRUD, { crud, form } from '@crud/crud'
|
import CRUD, { crud, form } from '@crud/crud'
|
||||||
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
|
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
|
||||||
import MaterDtl from '@/views/wms/pub/MaterDialog'
|
import MaterDtl from '@/views/wms/pub/MaterDialog'
|
||||||
|
import AddDtl from '@/views/wms/storage_manage/product/productIn/AddDtl'
|
||||||
|
import crudStorattr from "@/api/wms/basedata/st/storattr"
|
||||||
|
|
||||||
const defaultForm = {
|
const defaultForm = {
|
||||||
bill_code: '',
|
bill_code: '',
|
||||||
@@ -209,7 +221,7 @@ const defaultForm = {
|
|||||||
|
|
||||||
export default {
|
export default {
|
||||||
name: 'AddDialog',
|
name: 'AddDialog',
|
||||||
components: { MaterDtl },
|
components: { MaterDtl, AddDtl },
|
||||||
mixins: [crud(), form(defaultForm)],
|
mixins: [crud(), form(defaultForm)],
|
||||||
dicts: ['IO_BILL_STATUS', 'ST_INV_IN_TYPE', 'ST_QUALITY_SCODE', 'bill_type', 'product_area'],
|
dicts: ['IO_BILL_STATUS', 'ST_INV_IN_TYPE', 'ST_QUALITY_SCODE', 'bill_type', 'product_area'],
|
||||||
props: {
|
props: {
|
||||||
@@ -231,8 +243,8 @@ export default {
|
|||||||
storlist: [],
|
storlist: [],
|
||||||
billtypelist: [],
|
billtypelist: [],
|
||||||
rules: {
|
rules: {
|
||||||
product_code: [
|
stor_id: [
|
||||||
{ required: true, message: '生产车间不能为空', trigger: 'blur' }
|
{ required: true, message: '仓库不能为空', trigger: 'blur' }
|
||||||
],
|
],
|
||||||
bill_type: [
|
bill_type: [
|
||||||
{ required: true, message: '业务类型不能为空', trigger: 'blur' }
|
{ required: true, message: '业务类型不能为空', trigger: 'blur' }
|
||||||
@@ -252,8 +264,8 @@ export default {
|
|||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
open() {
|
open() {
|
||||||
crudProductIn.queryStor().then(res => {
|
crudStorattr.queryStor().then(res => {
|
||||||
this.storlist = res
|
this.storlist = res.content
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
close() {
|
close() {
|
||||||
@@ -261,7 +273,7 @@ export default {
|
|||||||
},
|
},
|
||||||
[CRUD.HOOK.afterToEdit]() {
|
[CRUD.HOOK.afterToEdit]() {
|
||||||
// 获取入库单明细
|
// 获取入库单明细
|
||||||
crudProductIn.getIODtl({ 'bill_code': this.form.bill_code }).then(res => {
|
crudProductIn.getIosInvDtl({ 'bill_code': this.form.bill_code }).then(res => {
|
||||||
this.form.tableData = res
|
this.form.tableData = res
|
||||||
// 将明细变成不可编辑
|
// 将明细变成不可编辑
|
||||||
for (let i = 0; i < this.form.tableData.length; i++) {
|
for (let i = 0; i < this.form.tableData.length; i++) {
|
||||||
@@ -271,7 +283,7 @@ export default {
|
|||||||
})
|
})
|
||||||
},
|
},
|
||||||
[CRUD.HOOK.afterToView]() {
|
[CRUD.HOOK.afterToView]() {
|
||||||
crudProductIn.getIODtl({ 'bill_code': this.form.bill_code }).then(res => {
|
crudProductIn.getIosInvDtl({ 'bill_code': this.form.bill_code }).then(res => {
|
||||||
this.form.tableData = res
|
this.form.tableData = res
|
||||||
// 将明细变成不可编辑
|
// 将明细变成不可编辑
|
||||||
for (let i = 0; i < this.form.tableData.length; i++) {
|
for (let i = 0; i < this.form.tableData.length; i++) {
|
||||||
@@ -290,8 +302,8 @@ export default {
|
|||||||
|
|
||||||
for (let i = 0; i < this.form.tableData.length; i++) {
|
for (let i = 0; i < this.form.tableData.length; i++) {
|
||||||
const row = this.form.tableData[i]
|
const row = this.form.tableData[i]
|
||||||
if (!row.pcsn || !row.plan_qty) {
|
if (!row.plan_qty) {
|
||||||
this.crud.notify('订单号、数量不能为空', CRUD.NOTIFICATION_TYPE.INFO)
|
this.crud.notify('数量不能为空', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
return false
|
return false
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@@ -324,16 +336,42 @@ export default {
|
|||||||
item.quality_scode = '01'
|
item.quality_scode = '01'
|
||||||
item.ivt_level = '01'
|
item.ivt_level = '01'
|
||||||
item.is_active = '1'
|
item.is_active = '1'
|
||||||
item.plan_qty = '1'
|
item.plan_qty = '0'
|
||||||
|
item.edit = true
|
||||||
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty)
|
this.form.total_qty = parseFloat(this.form.total_qty) + parseFloat(item.plan_qty)
|
||||||
this.form.tableData.splice(-1, 0, item)
|
this.form.tableData.splice(-1, 0, item)
|
||||||
}
|
}
|
||||||
})
|
})
|
||||||
this.form.detail_count = this.form.tableData.length
|
this.form.detail_count = this.form.tableData.length
|
||||||
|
},
|
||||||
|
tableChanged1(row) {
|
||||||
|
this.nowrow.material_id = row.material_id
|
||||||
|
this.nowrow.material_code = row.material_code
|
||||||
|
this.nowrow.material_name = row.material_name
|
||||||
|
this.nowrow.plan_qty = '0'
|
||||||
|
this.nowrow.qty_unit_name = row.unit_name
|
||||||
|
this.nowrow.qty_unit_id = row.base_unit_id
|
||||||
|
|
||||||
|
},
|
||||||
|
tableChanged2(row) {
|
||||||
|
|
||||||
},
|
},
|
||||||
insertEvent(row) {
|
insertEvent(row) {
|
||||||
|
this.dtlShow = true
|
||||||
|
},
|
||||||
|
queryMater(index, row) {
|
||||||
|
this.nowindex = index
|
||||||
|
this.nowrow = row
|
||||||
this.materShow = true
|
this.materShow = true
|
||||||
},
|
},
|
||||||
|
insertdtl() {
|
||||||
|
if (this.form.bill_type === '') {
|
||||||
|
this.crud.notify('请选择业务类型!', CRUD.NOTIFICATION_TYPE.INFO)
|
||||||
|
return
|
||||||
|
}
|
||||||
|
this.form.tableData.push({ edit: false, plan_qty: '0' })
|
||||||
|
this.form.detail_count = this.form.tableData.length
|
||||||
|
},
|
||||||
changeQty() {
|
changeQty() {
|
||||||
this.form.total_qty = 0
|
this.form.total_qty = 0
|
||||||
this.form.tableData.forEach((item) => {
|
this.form.tableData.forEach((item) => {
|
||||||
|
|||||||
@@ -1,64 +1,57 @@
|
|||||||
<!--suppress ALL -->
|
|
||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
title="物料新增"
|
title="物料新增"
|
||||||
append-to-body
|
append-to-body
|
||||||
:visible.sync="dialogVisible"
|
:visible.sync="dialogVisible"
|
||||||
destroy-on-close
|
destroy-on-close
|
||||||
width="1000px"
|
width="1200px"
|
||||||
@close="close"
|
@close="close"
|
||||||
@open="open"
|
@open="open"
|
||||||
>
|
>
|
||||||
<div class="head-container">
|
<div class="head-container">
|
||||||
<div v-if="crud.props.searchToggle">
|
<div v-if="crud.props.searchToggle">
|
||||||
<!-- 搜索 -->
|
<!-- 搜索 -->
|
||||||
<date-range-picker v-model="query.createTime" class="date-item" value-format="yyyy-MM-dd" />
|
<el-form
|
||||||
<el-input
|
:inline="true"
|
||||||
v-model="query.bill_code"
|
class="demo-form-inline"
|
||||||
clearable
|
label-position="right"
|
||||||
size="mini"
|
label-width="80px"
|
||||||
placeholder="单据号"
|
label-suffix=":"
|
||||||
style="width: 200px;"
|
>
|
||||||
class="filter-item"
|
<el-form-item label="销售单号">
|
||||||
@keyup.enter.native="crud.toQuery"
|
<el-input
|
||||||
/>
|
v-model="query.bill_code"
|
||||||
<el-input
|
size="mini"
|
||||||
v-model="query.package_box_sn"
|
clearable
|
||||||
clearable
|
placeholder="销售单号"
|
||||||
size="mini"
|
@keyup.enter.native="crud.toQuery"
|
||||||
placeholder="箱号"
|
/>
|
||||||
style="width: 200px;"
|
</el-form-item>
|
||||||
class="filter-item"
|
|
||||||
@keyup.enter.native="crud.toQuery"
|
<el-form-item label="客户编码">
|
||||||
/>
|
<el-input
|
||||||
<el-input
|
v-model="query.bill_code"
|
||||||
v-model="query.container_name"
|
size="mini"
|
||||||
clearable
|
clearable
|
||||||
size="mini"
|
placeholder="客户编码"
|
||||||
placeholder="子卷号"
|
@keyup.enter.native="crud.toQuery"
|
||||||
style="width: 200px;"
|
/>
|
||||||
class="filter-item"
|
</el-form-item>
|
||||||
@keyup.enter.native="crud.toQuery"
|
|
||||||
/>
|
<el-form-item label="创建日期">
|
||||||
<el-input
|
<el-date-picker
|
||||||
v-model="query.material_search"
|
v-model="query.createTime"
|
||||||
clearable
|
type="daterange"
|
||||||
size="mini"
|
value-format="yyyy-MM-dd HH:mm:ss"
|
||||||
placeholder="物料编码"
|
start-placeholder="开始日期"
|
||||||
style="width: 230px;"
|
end-placeholder="结束日期"
|
||||||
class="filter-item"
|
:default-time="['00:00:00', '23:59:59']"
|
||||||
@keyup.enter.native="crud.toQuery"
|
@change="crud.toQuery"
|
||||||
/>
|
/>
|
||||||
<el-input
|
</el-form-item>
|
||||||
v-model="query.sap_pcsn"
|
|
||||||
clearable
|
<rrOperation />
|
||||||
size="mini"
|
</el-form>
|
||||||
placeholder="sap批次"
|
|
||||||
style="width: 200px;"
|
|
||||||
class="filter-item"
|
|
||||||
@keyup.enter.native="crud.toQuery"
|
|
||||||
/>
|
|
||||||
<rrOperation />
|
|
||||||
</div>
|
</div>
|
||||||
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
<!--如果想在工具栏加入更多按钮,可以使用插槽方式, slot = 'left' or 'right'-->
|
||||||
<crudOperation />
|
<crudOperation />
|
||||||
@@ -71,17 +64,18 @@
|
|||||||
@selection-change="crud.selectionChangeHandler"
|
@selection-change="crud.selectionChangeHandler"
|
||||||
>
|
>
|
||||||
<el-table-column type="selection" width="55" />
|
<el-table-column type="selection" width="55" />
|
||||||
<el-table-column show-overflow-tooltip width="150" prop="sale_order_name" label="订单号" />
|
<el-table-column show-overflow-tooltip width="150" prop="sale_code" label="销售单号" />
|
||||||
<el-table-column show-overflow-tooltip width="150" prop="customer_name" label="客户编号" />
|
<el-table-column show-overflow-tooltip width="150" prop="sale_type" label="销售单类型" />
|
||||||
<el-table-column width="200" prop="customer_description" label="客户名称" />
|
<el-table-column show-overflow-tooltip width="150" prop="status" label="状态" />
|
||||||
<el-table-column show-overflow-tooltip prop="package_box_sn" width="250" label="箱号" />
|
<el-table-column show-overflow-tooltip width="150" prop="material_code" label="物料编码" />
|
||||||
<el-table-column show-overflow-tooltip width="100" prop="quanlity_in_box" label="箱内子卷数" />
|
<el-table-column show-overflow-tooltip width="150" prop="material_name" label="物料名称" />
|
||||||
<el-table-column show-overflow-tooltip width="150" prop="container_name" label="子卷号" />
|
<el-table-column show-overflow-tooltip width="150" prop="sale_qty" label="销售数量" />
|
||||||
<el-table-column show-overflow-tooltip width="150" prop="sap_pcsn" label="sap批次" />
|
<el-table-column show-overflow-tooltip width="150" prop="cust_code" label="客户编码" />
|
||||||
<el-table-column show-overflow-tooltip width="150" prop="product_name" label="物料编码" />
|
<el-table-column show-overflow-tooltip width="150" prop="cust_name" label="客户名称" />
|
||||||
<el-table-column show-overflow-tooltip width="170" prop="product_description" label="物料描述" />
|
<el-table-column show-overflow-tooltip width="150" prop="qty_unit_name" label="单位" />
|
||||||
<el-table-column show-overflow-tooltip prop="width" label="幅宽" />
|
<el-table-column show-overflow-tooltip width="150" prop="plandeliver_date" label="计划交期" />
|
||||||
<el-table-column show-overflow-tooltip prop="thickness" label="产品厚度" />
|
<el-table-column show-overflow-tooltip width="150" prop="create_name" label="创建人" />
|
||||||
|
<el-table-column show-overflow-tooltip width="150" prop="create_time" label="创建时间" />
|
||||||
</el-table>
|
</el-table>
|
||||||
<!--分页组件-->
|
<!--分页组件-->
|
||||||
<pagination />
|
<pagination />
|
||||||
@@ -146,21 +140,6 @@ export default {
|
|||||||
this.crud.query.bill_type = '0001'
|
this.crud.query.bill_type = '0001'
|
||||||
return true
|
return true
|
||||||
},
|
},
|
||||||
objectSpanMethod({ row, column, rowIndex, columnIndex }) {
|
|
||||||
if (columnIndex === 0) {
|
|
||||||
if (rowIndex % 2 === 0) {
|
|
||||||
return {
|
|
||||||
rowspan: 2,
|
|
||||||
colspan: 1
|
|
||||||
}
|
|
||||||
} else {
|
|
||||||
return {
|
|
||||||
rowspan: 0,
|
|
||||||
colspan: 0
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
},
|
|
||||||
open() {
|
open() {
|
||||||
this.crud.toQuery()
|
this.crud.toQuery()
|
||||||
},
|
},
|
||||||
@@ -168,14 +147,12 @@ export default {
|
|||||||
this.$emit('update:dialogShow', false)
|
this.$emit('update:dialogShow', false)
|
||||||
},
|
},
|
||||||
submit() {
|
submit() {
|
||||||
|
|
||||||
this.$emit('update:dialogShow', false)
|
this.$emit('update:dialogShow', false)
|
||||||
this.rows = this.$refs.multipleTable.selection
|
this.rows = this.$refs.multipleTable.selection
|
||||||
crudProductIn.queryBoxMater(this.rows).then(res => {
|
crudProductIn.queryBoxMater(this.rows).then(res => {
|
||||||
this.rows = res
|
this.rows = res
|
||||||
this.$emit('tableChanged', this.rows)
|
this.$emit('tableChanged', this.rows)
|
||||||
})
|
})
|
||||||
// this.form = this.$options.data().form
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
<!--suppress ALL -->
|
|
||||||
<template>
|
<template>
|
||||||
<el-dialog
|
<el-dialog
|
||||||
append-to-body
|
append-to-body
|
||||||
@@ -36,6 +35,7 @@
|
|||||||
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
:header-cell-style="{background:'#f5f7fa',color:'#606266'}"
|
||||||
@row-click="clcikRow"
|
@row-click="clcikRow"
|
||||||
>
|
>
|
||||||
|
<el-table-column type="index" label="序号" width="50" align="center" />
|
||||||
<el-table-column prop="bill_status" label="状态" align="center" width="110px">
|
<el-table-column prop="bill_status" label="状态" align="center" width="110px">
|
||||||
<template slot-scope="scope">
|
<template slot-scope="scope">
|
||||||
<el-select
|
<el-select
|
||||||
@@ -54,17 +54,49 @@
|
|||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
|
||||||
<el-table-column show-overflow-tooltip prop="pcsn" label="订单号" align="center" />
|
|
||||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="assign_qty" :formatter="crud.formatNum3" label="已分配数量" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="unassign_qty" :formatter="crud.formatNum3" label="未分配数量" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
|
<el-table-column show-overflow-tooltip prop="qty_unit_name" label="单位" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="source_bill_type" label="源单类型" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="source_bill_code" label="源单号" align="center" />
|
||||||
|
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
<el-card class="box-card" shadow="never" :body-style="{padding:'20px 20px 0 20px'}">
|
<el-card class="box-card" shadow="never" :body-style="{padding:'20px 20px 0 20px'}">
|
||||||
<el-form ref="form2" :inline="true" :model="form" :rules="rules" size="mini">
|
<el-form ref="form2" :inline="true" :model="form" :rules="rules" size="mini">
|
||||||
<el-form-item label="入库点" prop="point_code">
|
<el-form-item label="载具号:" prop="vehicle_code">
|
||||||
|
<el-input
|
||||||
|
v-model="form.vehicle_code"
|
||||||
|
style="width: 200px"
|
||||||
|
size="mini"
|
||||||
|
clearable
|
||||||
|
placeholder="载具号"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="箱号:" prop="pageBox_code">
|
||||||
|
<el-input v-model="form.pageBox_code" size="mini" style="width: 200px" disabled placeholder="箱号" >
|
||||||
|
<el-button slot="append" icon="el-icon-plus" @click="queryBox" />
|
||||||
|
</el-input>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="放入数量:" prop="storage_qty">
|
||||||
|
<el-input-number
|
||||||
|
v-model="form.storage_qty"
|
||||||
|
style="width: 200px"
|
||||||
|
size="mini"
|
||||||
|
:controls="false"
|
||||||
|
precision="3"
|
||||||
|
:min="0"
|
||||||
|
placeholder="数量"
|
||||||
|
/>
|
||||||
|
</el-form-item>
|
||||||
|
|
||||||
|
<el-form-item label="入库点:" prop="point_code">
|
||||||
<el-select
|
<el-select
|
||||||
v-model="form.point_code"
|
v-model="form.point_code"
|
||||||
|
size="mini"
|
||||||
clearable
|
clearable
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
@@ -78,13 +110,14 @@
|
|||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
|
|
||||||
</el-form>
|
</el-form>
|
||||||
</el-card>
|
</el-card>
|
||||||
<div class="crud-opts2">
|
<div class="crud-opts2">
|
||||||
<span class="role-span">载具物料明细</span>
|
<span class="role-span">载具物料明细</span>
|
||||||
<div class="crud-opts-form">
|
<div class="crud-opts-form">
|
||||||
<el-form ref="form" :inline="true" :model="form" size="mini">
|
<el-form ref="form" :inline="true" :model="form" size="mini">
|
||||||
<el-form-item label="区域" prop="gender5">
|
<el-form-item label="库区:" prop="gender5">
|
||||||
<el-cascader
|
<el-cascader
|
||||||
placeholder="请选择"
|
placeholder="请选择"
|
||||||
:options="sects"
|
:options="sects"
|
||||||
@@ -101,6 +134,16 @@
|
|||||||
<span class="crud-opts-right2">
|
<span class="crud-opts-right2">
|
||||||
<!--左侧插槽-->
|
<!--左侧插槽-->
|
||||||
<slot name="left" />
|
<slot name="left" />
|
||||||
|
<el-button
|
||||||
|
slot="left"
|
||||||
|
class="filter-item"
|
||||||
|
type="primary"
|
||||||
|
icon="el-icon-plus"
|
||||||
|
size="mini"
|
||||||
|
@click="confirmvehicle()"
|
||||||
|
>
|
||||||
|
装入托盘
|
||||||
|
</el-button>
|
||||||
<el-button
|
<el-button
|
||||||
slot="left"
|
slot="left"
|
||||||
class="filter-item"
|
class="filter-item"
|
||||||
@@ -158,40 +201,12 @@
|
|||||||
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" />
|
<el-table-column show-overflow-tooltip type="index" label="序号" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
<el-table-column show-overflow-tooltip prop="material_code" label="物料编码" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
<el-table-column show-overflow-tooltip prop="material_name" label="物料名称" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="material_spec" label="物料规格" align="center" />
|
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="托盘号" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="pcsn" label="订单号" align="center" />
|
<el-table-column show-overflow-tooltip prop="bucketunique" label="箱号" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="plan_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
<el-table-column show-overflow-tooltip prop="real_qty" :formatter="crud.formatNum3" label="数量" align="center" />
|
||||||
<el-table-column show-overflow-tooltip prop="storagevehicle_code" label="载具号" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-input
|
|
||||||
v-model="form.tableMater[scope.$index].storagevehicle_code"
|
|
||||||
clearable
|
|
||||||
:controls="false"
|
|
||||||
controls-position="right"
|
|
||||||
size="small"
|
|
||||||
/>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column show-overflow-tooltip prop="overstruct_type" label="载具超限" align="center">
|
|
||||||
<template slot-scope="scope">
|
|
||||||
<el-select
|
|
||||||
v-model="form.tableMater[scope.$index].overstruct_type"
|
|
||||||
clearable
|
|
||||||
placeholder="请选择"
|
|
||||||
class="filter-item"
|
|
||||||
style="width: 100px;"
|
|
||||||
>
|
|
||||||
<el-option
|
|
||||||
v-for="item in dict.MD_OVERSTRUCT_TYPE"
|
|
||||||
:key="item.value"
|
|
||||||
:label="item.label"
|
|
||||||
:value="item.value"
|
|
||||||
/>
|
|
||||||
</el-select>
|
|
||||||
</template>
|
|
||||||
</el-table-column>
|
|
||||||
<el-table-column show-overflow-tooltip prop="point_code" label="入库点" align="center" />
|
|
||||||
<el-table-column show-overflow-tooltip prop="struct_code" label="货位" align="center" />
|
<el-table-column show-overflow-tooltip prop="struct_code" label="货位" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="point_code" label="入库点" align="center" />
|
||||||
|
<el-table-column show-overflow-tooltip prop="task_code" label="任务号" align="center" />
|
||||||
</el-table>
|
</el-table>
|
||||||
</el-card>
|
</el-card>
|
||||||
|
|
||||||
@@ -254,6 +269,8 @@ export default {
|
|||||||
sect_id: '',
|
sect_id: '',
|
||||||
stor_id: '',
|
stor_id: '',
|
||||||
point_code: null,
|
point_code: null,
|
||||||
|
vehicle_code: "",
|
||||||
|
pageBox_code: "",
|
||||||
checked: true,
|
checked: true,
|
||||||
tableMater: []
|
tableMater: []
|
||||||
},
|
},
|
||||||
@@ -293,11 +310,7 @@ export default {
|
|||||||
},
|
},
|
||||||
clcikRow(row, column, event) {
|
clcikRow(row, column, event) {
|
||||||
this.form.dtl_row = row
|
this.form.dtl_row = row
|
||||||
crudProductIn.getIODtl({ 'iostorinv_id': this.form.dtl_row.iostorinv_id }).then(res => {
|
crudProductIn.getIosInvDis({ "iostorinv_id": row.iostorinv_id, "iostorinvdtl_id": row.iostorinvdtl_id }).then(res => {
|
||||||
this.openParam = res
|
|
||||||
this.form.dtl_row = res[row.index]
|
|
||||||
})
|
|
||||||
crudProductIn.getDisDtl(row).then(res => {
|
|
||||||
this.form.tableMater = res
|
this.form.tableMater = res
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
|
|||||||
@@ -1,4 +1,3 @@
|
|||||||
<!--suppress ALL -->
|
|
||||||
<template>
|
<template>
|
||||||
<div class="app-container">
|
<div class="app-container">
|
||||||
<!--工具栏-->
|
<!--工具栏-->
|
||||||
@@ -22,10 +21,10 @@
|
|||||||
@change="crud.toQuery"
|
@change="crud.toQuery"
|
||||||
>
|
>
|
||||||
<el-option
|
<el-option
|
||||||
v-for="item in dict.IO_BILL_STATUS"
|
v-for="item in storlist"
|
||||||
:key="item.value"
|
:key="item.stor_id"
|
||||||
:label="item.label"
|
:label="item.stor_name"
|
||||||
:value="item.value"
|
:value="item.stor_id"
|
||||||
/>
|
/>
|
||||||
</el-select>
|
</el-select>
|
||||||
</el-form-item>
|
</el-form-item>
|
||||||
@@ -186,7 +185,7 @@
|
|||||||
</template>
|
</template>
|
||||||
</el-table-column>
|
</el-table-column>
|
||||||
<el-table-column show-overflow-tooltip prop="bill_type" min-width="120" label="单据类型" :formatter="bill_typeFormat" />
|
<el-table-column show-overflow-tooltip prop="bill_type" min-width="120" label="单据类型" :formatter="bill_typeFormat" />
|
||||||
<el-table-column show-overflow-tooltip prop="stor_name" label="仓库" />
|
<el-table-column show-overflow-tooltip prop="stor_name" label="仓库" min-width="120"/>
|
||||||
<el-table-column prop="" label="生产车间" width="130" show-overflow-tooltip />
|
<el-table-column prop="" label="生产车间" width="130" show-overflow-tooltip />
|
||||||
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
|
<el-table-column show-overflow-tooltip min-width="120" prop="biz_date" label="业务日期" />
|
||||||
<el-table-column label="总重量" align="center" prop="total_qty">
|
<el-table-column label="总重量" align="center" prop="total_qty">
|
||||||
@@ -225,7 +224,7 @@
|
|||||||
</template>
|
</template>
|
||||||
|
|
||||||
<script>
|
<script>
|
||||||
import productIn from '@/views/wms/storage_manage/product/productIn/productin'
|
import productIn, {getIosInvDtl} from '@/views/wms/storage_manage/product/productIn/productin'
|
||||||
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
|
import crudProductIn from '@/views/wms/storage_manage/product/productIn/productin'
|
||||||
import CRUD, { crud, header, presenter } from '@crud/crud'
|
import CRUD, { crud, header, presenter } from '@crud/crud'
|
||||||
import rrOperation from '@crud/RR.operation'
|
import rrOperation from '@crud/RR.operation'
|
||||||
@@ -236,6 +235,7 @@ import DateRangePicker from '@/components/DateRangePicker/index'
|
|||||||
import AddDialog from '@/views/wms/storage_manage/product/productIn/AddDialog'
|
import AddDialog from '@/views/wms/storage_manage/product/productIn/AddDialog'
|
||||||
import DivDialog from '@/views/wms/storage_manage/product/productIn/DivDialog'
|
import DivDialog from '@/views/wms/storage_manage/product/productIn/DivDialog'
|
||||||
import ViewDialog from '@/views/wms/storage_manage/product/productIn/ViewDialog'
|
import ViewDialog from '@/views/wms/storage_manage/product/productIn/ViewDialog'
|
||||||
|
import crudStorattr from '@/api/wms/basedata/st/storattr'
|
||||||
import { mapGetters } from 'vuex'
|
import { mapGetters } from 'vuex'
|
||||||
|
|
||||||
export default {
|
export default {
|
||||||
@@ -246,7 +246,7 @@ export default {
|
|||||||
title: '',
|
title: '',
|
||||||
optShow: { add: true, reset: true },
|
optShow: { add: true, reset: true },
|
||||||
idField: 'iostorinv_id',
|
idField: 'iostorinv_id',
|
||||||
url: '/api/in/productIn',
|
url: '/api/productIn',
|
||||||
crudMethod: { ...productIn }
|
crudMethod: { ...productIn }
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
@@ -281,8 +281,8 @@ export default {
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
created() {
|
created() {
|
||||||
crudProductIn.queryStor().then(res => {
|
crudStorattr.queryStor().then(res => {
|
||||||
this.storlist = res
|
this.storlist = res.content
|
||||||
})
|
})
|
||||||
},
|
},
|
||||||
methods: {
|
methods: {
|
||||||
@@ -350,9 +350,8 @@ export default {
|
|||||||
return this.dict.label.IO_BILL_STATUS[row.bill_status]
|
return this.dict.label.IO_BILL_STATUS[row.bill_status]
|
||||||
},
|
},
|
||||||
divOpen() {
|
divOpen() {
|
||||||
crudProductIn.getIODtl({ 'bill_code': this.currentRow.bill_code, 'open_flag': '1' }).then(res => {
|
crudProductIn.getIosInvDtl({ 'bill_code': this.currentRow.bill_code }).then(res => {
|
||||||
this.openParam = res
|
this.openParam = res
|
||||||
debugger
|
|
||||||
this.storId = this.currentRow.product_code
|
this.storId = this.currentRow.product_code
|
||||||
this.billType = this.currentRow.bill_type
|
this.billType = this.currentRow.bill_type
|
||||||
this.divShow = true
|
this.divShow = true
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ import request from '@/utils/request'
|
|||||||
|
|
||||||
export function add(data) {
|
export function add(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/in/productIn',
|
url: '/api/productIn',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
@@ -10,158 +10,31 @@ export function add(data) {
|
|||||||
|
|
||||||
export function del(ids) {
|
export function del(ids) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/in/productIn',
|
url: '/api/productIn/delete',
|
||||||
method: 'delete',
|
method: 'post',
|
||||||
data: ids
|
data: ids
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function edit(data) {
|
export function edit(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/in/productIn',
|
url: '/api/productIn/update',
|
||||||
method: 'put',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getType(params) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/getType',
|
|
||||||
method: 'get',
|
|
||||||
params
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getIODtl(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/getIODtl',
|
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function insertDtl(data) {
|
export function getIosInvDtl(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/in/productIn/insertDtl',
|
url: '/api/productIn/getIosInvDtl',
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
}
|
}
|
||||||
|
|
||||||
export function commit(data) {
|
export function getIosInvDis(data) {
|
||||||
return request({
|
return request({
|
||||||
url: '/api/in/productIn/commit',
|
url: '/api/productIn/getIosInvDis',
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function checkVehicle(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/checkVehicle',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function confirmvehicle(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/confirmvehicle',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getDisDtl(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/getDisDtl',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function divStruct(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/divStruct',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function unDivStruct(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/unDivStruct',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function divPoint(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/divPoint',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function bucketDtl(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/bucketDtl',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function updateTask(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/updateTask',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function confirmTask(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/confirmTask',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function confirm(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/confirm',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function delDis(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/delDis',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function queryBoxMater(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/queryBoxMater',
|
|
||||||
method: 'post',
|
|
||||||
data
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function queryStor() {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/queryStor',
|
|
||||||
method: 'post'
|
|
||||||
})
|
|
||||||
}
|
|
||||||
|
|
||||||
export function getDisTask(data) {
|
|
||||||
return request({
|
|
||||||
url: '/api/in/productIn/getDisTask',
|
|
||||||
method: 'post',
|
method: 'post',
|
||||||
data
|
data
|
||||||
})
|
})
|
||||||
@@ -171,22 +44,6 @@ export default {
|
|||||||
add,
|
add,
|
||||||
edit,
|
edit,
|
||||||
del,
|
del,
|
||||||
getType,
|
getIosInvDtl,
|
||||||
insertDtl,
|
getIosInvDis
|
||||||
getIODtl,
|
|
||||||
commit,
|
|
||||||
checkVehicle,
|
|
||||||
confirmvehicle,
|
|
||||||
getDisDtl,
|
|
||||||
divStruct,
|
|
||||||
unDivStruct,
|
|
||||||
divPoint,
|
|
||||||
delDis,
|
|
||||||
queryBoxMater,
|
|
||||||
bucketDtl,
|
|
||||||
updateTask,
|
|
||||||
confirmTask,
|
|
||||||
confirm,
|
|
||||||
queryStor,
|
|
||||||
getDisTask
|
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user