|
|
|
@ -1,18 +1,18 @@
|
|
|
|
/*
|
|
|
|
/*
|
|
|
|
* Copyright 2019-2020 Zheng Jie
|
|
|
|
* Copyright 2019-2020 Zheng Jie
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* you may not use this file except in compliance with the License.
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
* You may obtain a copy of the License at
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
* http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
*
|
|
|
|
*
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* Unless required by applicable law or agreed to in writing, software
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* distributed under the License is distributed on an "AS IS" BASIS,
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* See the License for the specific language governing permissions and
|
|
|
|
* limitations under the License.
|
|
|
|
* limitations under the License.
|
|
|
|
*/
|
|
|
|
*/
|
|
|
|
package com.youchain.businessdata.rest;
|
|
|
|
package com.youchain.businessdata.rest;
|
|
|
|
|
|
|
|
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
import cn.hutool.core.bean.BeanUtil;
|
|
|
|
@ -61,16 +61,17 @@ import java.util.HashMap;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.List;
|
|
|
|
import java.util.Map;
|
|
|
|
import java.util.Map;
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
import javax.servlet.http.HttpServletResponse;
|
|
|
|
|
|
|
|
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.transaction.annotation.Transactional;
|
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
import org.springframework.web.multipart.MultipartFile;
|
|
|
|
|
|
|
|
|
|
|
|
import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
|
|
|
import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
|
|
|
|
|
|
|
|
|
|
|
/**
|
|
|
|
/**
|
|
|
|
* @website https://eladmin.vip
|
|
|
|
* @author hjl
|
|
|
|
* @author hjl
|
|
|
|
* @website https://eladmin.vip
|
|
|
|
* @date 2023-08-14
|
|
|
|
* @date 2023-08-14
|
|
|
|
**/
|
|
|
|
**/
|
|
|
|
@RestController
|
|
|
|
@RestController
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@RequiredArgsConstructor
|
|
|
|
@Api(tags = "asn_detail管理")
|
|
|
|
@Api(tags = "asn_detail管理")
|
|
|
|
@ -107,8 +108,8 @@ public class AsnDetailController {
|
|
|
|
|
|
|
|
|
|
|
|
@GetMapping
|
|
|
|
@GetMapping
|
|
|
|
@ApiOperation("查询asn_detail")
|
|
|
|
@ApiOperation("查询asn_detail")
|
|
|
|
public ResponseEntity<Object> queryAsnDetail(AsnDetailQueryCriteria criteria, Pageable pageable){
|
|
|
|
public ResponseEntity<Object> queryAsnDetail(AsnDetailQueryCriteria criteria, Pageable pageable) {
|
|
|
|
return new ResponseEntity<>(asnDetailService.queryAll(criteria,pageable),HttpStatus.OK);
|
|
|
|
return new ResponseEntity<>(asnDetailService.queryAll(criteria, pageable), HttpStatus.OK);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping
|
|
|
|
@PostMapping
|
|
|
|
@ -116,23 +117,24 @@ public class AsnDetailController {
|
|
|
|
@ApiOperation("新增asn_detail")
|
|
|
|
@ApiOperation("新增asn_detail")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:add')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:add')")
|
|
|
|
@Transient
|
|
|
|
@Transient
|
|
|
|
public ResponseEntity<Object> createAsnDetail(@Validated @RequestBody AsnDetail asnDetail){
|
|
|
|
public ResponseEntity<Object> createAsnDetail(@Validated @RequestBody AsnDetail asnDetail) {
|
|
|
|
asnDetail.setStatus(BizStatus.OPEN);
|
|
|
|
asnDetail.setStatus(BizStatus.OPEN);
|
|
|
|
asnDetail.setDept(UserUtils.getDept());
|
|
|
|
asnDetail.setDept(UserUtils.getDept());
|
|
|
|
asnDetail.setPo(TimeNumberUtils.getRKCode());
|
|
|
|
asnDetail.setPo(TimeNumberUtils.getRKCode());
|
|
|
|
asnDetailService.create(asnDetail);
|
|
|
|
asnDetailService.create(asnDetail);
|
|
|
|
Stock stock=asnDetail.getStock();
|
|
|
|
Stock stock = asnDetail.getStock();
|
|
|
|
stock.setStatus(BaseStatus.USED);
|
|
|
|
stock.setStatus(BaseStatus.USED);
|
|
|
|
stockService.update(stock);
|
|
|
|
stockService.update(stock);
|
|
|
|
return new ResponseEntity<>(HttpStatus.OK);
|
|
|
|
return new ResponseEntity<>(HttpStatus.OK);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@Log("采集MO票")
|
|
|
|
@Log("采集MO票")
|
|
|
|
@ApiOperation("新增createMoInfo")
|
|
|
|
@ApiOperation("新增createMoInfo")
|
|
|
|
@PostMapping(value = "/createMoInfo")
|
|
|
|
@PostMapping(value = "/createMoInfo")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:createMoInfo')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:createMoInfo')")
|
|
|
|
@Transient
|
|
|
|
@Transient
|
|
|
|
public ResponseEntity<Object> storeMO(@Validated @RequestBody AsnDetail asnDetail){
|
|
|
|
public ResponseEntity<Object> storeMO(@Validated @RequestBody AsnDetail asnDetail) {
|
|
|
|
return addDetailMo(asnDetail,asnDetail.getPo(),asnDetail.getStock().getCode());
|
|
|
|
return addDetailMo(asnDetail, asnDetail.getPo(), asnDetail.getStock().getCode());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -140,7 +142,7 @@ public class AsnDetailController {
|
|
|
|
@Log("修改asn_detail")
|
|
|
|
@Log("修改asn_detail")
|
|
|
|
@ApiOperation("修改asn_detail")
|
|
|
|
@ApiOperation("修改asn_detail")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:edit')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:edit')")
|
|
|
|
public ResponseEntity<Object> updateAsnDetail(@Validated @RequestBody AsnDetail resources){
|
|
|
|
public ResponseEntity<Object> updateAsnDetail(@Validated @RequestBody AsnDetail resources) {
|
|
|
|
asnDetailService.update(resources);
|
|
|
|
asnDetailService.update(resources);
|
|
|
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
|
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -149,7 +151,7 @@ public class AsnDetailController {
|
|
|
|
@Log("修改容器")
|
|
|
|
@Log("修改容器")
|
|
|
|
@ApiOperation("修改容器")
|
|
|
|
@ApiOperation("修改容器")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:edit')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:edit')")
|
|
|
|
public ResponseEntity<Object> updateContainer(@Validated @RequestBody AsnDetail resources,@RequestParam("stockId") Long stockId){
|
|
|
|
public ResponseEntity<Object> updateContainer(@Validated @RequestBody AsnDetail resources, @RequestParam("stockId") Long stockId) {
|
|
|
|
Stock stockData = stockRepository.getById(stockId);
|
|
|
|
Stock stockData = stockRepository.getById(stockId);
|
|
|
|
Stock stock = resources.getStock();
|
|
|
|
Stock stock = resources.getStock();
|
|
|
|
stockData.setStatus("FREE");
|
|
|
|
stockData.setStatus("FREE");
|
|
|
|
@ -176,25 +178,25 @@ public class AsnDetailController {
|
|
|
|
@PreAuthorize("@el.check('asnDetail:checkAsn')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:checkAsn')")
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
@Transactional(rollbackFor = Exception.class)
|
|
|
|
public ResponseEntity<Object> checkAsn(@RequestBody Long[] ids) {
|
|
|
|
public ResponseEntity<Object> checkAsn(@RequestBody Long[] ids) {
|
|
|
|
for(Long id:ids) {
|
|
|
|
for (Long id : ids) {
|
|
|
|
AsnDetail d =asnDetailService.toEntity(asnDetailService.findById(id));
|
|
|
|
AsnDetail d = asnDetailService.toEntity(asnDetailService.findById(id));
|
|
|
|
String areaCode=null;
|
|
|
|
String areaCode = null;
|
|
|
|
String goodType=d.getItem().getGoodType();
|
|
|
|
String goodType = d.getItem().getGoodType();
|
|
|
|
if(goodType!=null&&goodType.equals(BizStatus.ZC)){
|
|
|
|
if (goodType != null && goodType.equals(BizStatus.ZC)) {
|
|
|
|
areaCode="ZCMCK";
|
|
|
|
areaCode = "ZCMCK";
|
|
|
|
}
|
|
|
|
}
|
|
|
|
List<Point> points=pointService.getPoint(BaseStatus.STORAGE,areaCode);
|
|
|
|
List<Point> points = pointService.getPoint(BaseStatus.STORAGE, areaCode);
|
|
|
|
Point dstPoint =null;
|
|
|
|
Point dstPoint = null;
|
|
|
|
if(points.size()>0){
|
|
|
|
if (points.size() > 0) {
|
|
|
|
dstPoint=points.get(0);
|
|
|
|
dstPoint = points.get(0);
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(),"找不到空闲点位");
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(), "找不到空闲点位");
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
ApiResult r1= putawayInv(d,d.getPoint(),dstPoint);
|
|
|
|
ApiResult r1 = putawayInv(d, d.getPoint(), dstPoint);
|
|
|
|
if(r1.getStatus()==400){
|
|
|
|
if (r1.getStatus() == 400) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(),r1.getMessage());
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(), r1.getMessage());
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -202,52 +204,52 @@ public class AsnDetailController {
|
|
|
|
return new ResponseEntity<>(HttpStatus.OK);
|
|
|
|
return new ResponseEntity<>(HttpStatus.OK);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ApiResult putawayInv(@RequestBody AsnDetail d,Point srcPoint,Point dstPoint) {
|
|
|
|
public ApiResult putawayInv(@RequestBody AsnDetail d, Point srcPoint, Point dstPoint) {
|
|
|
|
if(d.getOrderQty()-d.getReceivedQty()>0) {
|
|
|
|
if (d.getOrderQty() - d.getReceivedQty() > 0) {
|
|
|
|
ItemKey ik=itemKeyService.getItemKey(d.getItem(),d.getPropC1(),d.getPropC3());
|
|
|
|
ItemKey ik = itemKeyService.getItemKey(d.getItem(), d.getPropC1(), d.getPropC3());
|
|
|
|
Task t = new Task();
|
|
|
|
Task t = new Task();
|
|
|
|
t.setAsnDetail(d);
|
|
|
|
t.setAsnDetail(d);
|
|
|
|
t.setSrcStock(d.getStock());
|
|
|
|
t.setSrcStock(d.getStock());
|
|
|
|
t.setSrcStockCode(d.getStock().getCode());
|
|
|
|
t.setSrcStockCode(d.getStock().getCode());
|
|
|
|
t.setDstStock(d.getStock());
|
|
|
|
t.setDstStock(d.getStock());
|
|
|
|
t.setDstStockCode(d.getStock().getCode());
|
|
|
|
t.setDstStockCode(d.getStock().getCode());
|
|
|
|
t.setTaskStatus(BizStatus.OPEN);
|
|
|
|
t.setTaskStatus(BizStatus.OPEN);
|
|
|
|
t.setItem(d.getItem());
|
|
|
|
t.setItem(d.getItem());
|
|
|
|
t.setPlanQty(d.getOrderQty());
|
|
|
|
t.setPlanQty(d.getOrderQty());
|
|
|
|
t.setItemKey(ik);
|
|
|
|
t.setItemKey(ik);
|
|
|
|
if(srcPoint!=null) {
|
|
|
|
if (srcPoint != null) {
|
|
|
|
t.setSrcPoint(srcPoint);
|
|
|
|
t.setSrcPoint(srcPoint);
|
|
|
|
t.setSrcPointCode(srcPoint.getCode());
|
|
|
|
t.setSrcPointCode(srcPoint.getCode());
|
|
|
|
}
|
|
|
|
|
|
|
|
t.setDstPoint(dstPoint);
|
|
|
|
|
|
|
|
t.setDstPointCode(dstPoint.getCode());
|
|
|
|
|
|
|
|
taskService.create(t);
|
|
|
|
|
|
|
|
d.setReceivedQty(d.getOrderQty());
|
|
|
|
|
|
|
|
d.setStatus(BizStatus.RECEIVED);
|
|
|
|
|
|
|
|
asnDetailService.update(d);
|
|
|
|
|
|
|
|
dstPoint.setStatus(BaseStatus.USED);
|
|
|
|
|
|
|
|
pointService.update(dstPoint);
|
|
|
|
|
|
|
|
double srcQty=0d;
|
|
|
|
|
|
|
|
Inventory inv=invService.getInventory(ik,dstPoint,d.getStock(),d.getDept(),BizStatus.RECEIVING_UP);
|
|
|
|
|
|
|
|
t.setInvId(inv.getId());
|
|
|
|
|
|
|
|
taskService.update(t);
|
|
|
|
|
|
|
|
srcQty=inv.getQuantity();
|
|
|
|
|
|
|
|
inv.addQty(inv,d.getOrderQty());
|
|
|
|
|
|
|
|
invService.update(inv);
|
|
|
|
|
|
|
|
invLogService.storeInventoryLog(BizStatus.RECEIVING_UP,BizStatus.ADD,null,ik,srcPoint,dstPoint,d.getStock(),d.getStock(),srcQty,d.getOrderQty(),
|
|
|
|
|
|
|
|
BizStatus.ASN,d.getId(),inv.getId(),d.getRemark());
|
|
|
|
|
|
|
|
}else{
|
|
|
|
|
|
|
|
return ApiResult.result(400,d.getItem().getCode()+"已收货","obj");
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
t.setDstPoint(dstPoint);
|
|
|
|
|
|
|
|
t.setDstPointCode(dstPoint.getCode());
|
|
|
|
|
|
|
|
taskService.create(t);
|
|
|
|
|
|
|
|
d.setReceivedQty(d.getOrderQty());
|
|
|
|
|
|
|
|
d.setStatus(BizStatus.RECEIVED);
|
|
|
|
|
|
|
|
asnDetailService.update(d);
|
|
|
|
|
|
|
|
dstPoint.setStatus(BaseStatus.USED);
|
|
|
|
|
|
|
|
pointService.update(dstPoint);
|
|
|
|
|
|
|
|
double srcQty = 0d;
|
|
|
|
|
|
|
|
Inventory inv = invService.getInventory(ik, dstPoint, d.getStock(), d.getDept(), BizStatus.RECEIVING_UP);
|
|
|
|
|
|
|
|
t.setInvId(inv.getId());
|
|
|
|
|
|
|
|
taskService.update(t);
|
|
|
|
|
|
|
|
srcQty = inv.getQuantity();
|
|
|
|
|
|
|
|
inv.addQty(inv, d.getOrderQty());
|
|
|
|
|
|
|
|
invService.update(inv);
|
|
|
|
|
|
|
|
invLogService.storeInventoryLog(BizStatus.RECEIVING_UP, BizStatus.ADD, null, ik, srcPoint, dstPoint, d.getStock(), d.getStock(), srcQty, d.getOrderQty(),
|
|
|
|
|
|
|
|
BizStatus.ASN, d.getId(), inv.getId(), d.getRemark());
|
|
|
|
|
|
|
|
} else {
|
|
|
|
|
|
|
|
return ApiResult.result(400, d.getItem().getCode() + "已收货", "obj");
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
return ApiResult.result(200,null,"obj");
|
|
|
|
return ApiResult.result(200, null, "obj");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping(value = "/import_mo")
|
|
|
|
@PostMapping(value = "/import_mo")
|
|
|
|
@ApiOperation("导入MO")
|
|
|
|
@ApiOperation("导入MO")
|
|
|
|
@javax.transaction.Transactional
|
|
|
|
@javax.transaction.Transactional
|
|
|
|
@PreAuthorize("@el.check('asnDetail:list')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:list')")
|
|
|
|
public ResponseEntity<Object> importMo( @RequestParam("file") MultipartFile multipartFile) {
|
|
|
|
public ResponseEntity<Object> importMo(@RequestParam("file") MultipartFile multipartFile) {
|
|
|
|
FileUtil.checkSize(properties.getMaxSize(), multipartFile.getSize());
|
|
|
|
FileUtil.checkSize(properties.getMaxSize(), multipartFile.getSize());
|
|
|
|
String suffix = FileUtil.getExtensionName(multipartFile.getOriginalFilename());
|
|
|
|
String suffix = FileUtil.getExtensionName(multipartFile.getOriginalFilename());
|
|
|
|
String type = FileUtil.getFileType(suffix);
|
|
|
|
String type = FileUtil.getFileType(suffix);
|
|
|
|
@ -255,44 +257,44 @@ public class AsnDetailController {
|
|
|
|
File file = FileUtil.upload(multipartFile, properties.getPath().getPath() + type + File.separator);
|
|
|
|
File file = FileUtil.upload(multipartFile, properties.getPath().getPath() + type + File.separator);
|
|
|
|
//MO票、容器代码
|
|
|
|
//MO票、容器代码
|
|
|
|
ExcelReader reader = ExcelUtil.getReader(file);
|
|
|
|
ExcelReader reader = ExcelUtil.getReader(file);
|
|
|
|
Dept dept=UserUtils.getDept();
|
|
|
|
Dept dept = UserUtils.getDept();
|
|
|
|
int i=0;
|
|
|
|
int i = 0;
|
|
|
|
int new_len=0;
|
|
|
|
int new_len = 0;
|
|
|
|
try{
|
|
|
|
try {
|
|
|
|
List<Map<String, Object>> readAll = reader.readAll();
|
|
|
|
List<Map<String, Object>> readAll = reader.readAll();
|
|
|
|
for ( i = 0; i < readAll.size(); i++) {
|
|
|
|
for (i = 0; i < readAll.size(); i++) {
|
|
|
|
log.error(i+"=====");
|
|
|
|
log.error(i + "=====");
|
|
|
|
String mo=readAll.get(i).get("MO票").toString().trim();
|
|
|
|
String mo = readAll.get(i).get("MO票").toString().trim();
|
|
|
|
String stockCode=readAll.get(i).get("容器代码").toString().trim();
|
|
|
|
String stockCode = readAll.get(i).get("容器代码").toString().trim();
|
|
|
|
String[] str = mo.split("]");
|
|
|
|
String[] str = mo.split("]");
|
|
|
|
int j=0;
|
|
|
|
int j = 0;
|
|
|
|
IScanPut s=new IScanPut();
|
|
|
|
IScanPut s = new IScanPut();
|
|
|
|
s.setScanCode(mo);
|
|
|
|
s.setScanCode(mo);
|
|
|
|
ApiResult r1=analysisMO(s);
|
|
|
|
ApiResult r1 = analysisMO(s);
|
|
|
|
if(r1.getStatus()==400){
|
|
|
|
if (r1.getStatus() == 400) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(),r1.getMessage());
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(), r1.getMessage());
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
RRkMo rmo=(RRkMo)r1.getData();
|
|
|
|
RRkMo rmo = (RRkMo) r1.getData();
|
|
|
|
ApiResult r2=retrievalStockCode(new IRkStockCode(rmo.getItemId(),stockCode));
|
|
|
|
ApiResult r2 = retrievalStockCode(new IRkStockCode(rmo.getItemId(), stockCode));
|
|
|
|
if(r2.getStatus()==400){
|
|
|
|
if (r2.getStatus() == 400) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(),r2.getMessage());
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(), r2.getMessage());
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
JSONObject obj=(JSONObject)r2.getData();
|
|
|
|
JSONObject obj = (JSONObject) r2.getData();
|
|
|
|
Long stockId=(Long)obj.get("stockId");
|
|
|
|
Long stockId = (Long) obj.get("stockId");
|
|
|
|
ApiResult r3=createAsnDetail(new IRkConfirm(mo,rmo.getItemId(),rmo.getItemCode(),stockId,stockCode,rmo.getQty(),rmo.getPch(),rmo.getCjbh()));
|
|
|
|
ApiResult r3 = createAsnDetail(new IRkConfirm(mo, rmo.getItemId(), rmo.getItemCode(), stockId, stockCode, rmo.getQty(), rmo.getPch(), rmo.getCjbh()));
|
|
|
|
if(r3.getStatus()==400){
|
|
|
|
if (r3.getStatus() == 400) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(),r3.getMessage());
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(), r3.getMessage());
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
new_len++;
|
|
|
|
new_len++;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}catch (Exception e){
|
|
|
|
} catch (Exception e) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(HttpStatus.BAD_REQUEST.value(), "导入异常---第"+(i+1)+"行:"+e.toString());
|
|
|
|
ApiError apiError = ApiError.errorJosn(HttpStatus.BAD_REQUEST.value(), "导入异常---第" + (i + 1) + "行:" + e.toString());
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ApiError apiError = ApiError.errorJosn(HttpStatus.OK.value(), "导入成功:"+(i)+"行 新增("+new_len+")");
|
|
|
|
ApiError apiError = ApiError.errorJosn(HttpStatus.OK.value(), "导入成功:" + (i) + "行 新增(" + new_len + ")");
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
@ -303,28 +305,28 @@ public class AsnDetailController {
|
|
|
|
@PreAuthorize("@el.check('asnDetail:addDetailMo')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:addDetailMo')")
|
|
|
|
@Transient
|
|
|
|
@Transient
|
|
|
|
@AnonymousAccess
|
|
|
|
@AnonymousAccess
|
|
|
|
public ResponseEntity<Object> addDetailMo( AsnDetail asnDetail,String MO,String stockCode){
|
|
|
|
public ResponseEntity<Object> addDetailMo(AsnDetail asnDetail, String MO, String stockCode) {
|
|
|
|
log.error("join.....addDetailMo:"+MO+"=====:"+stockCode);
|
|
|
|
log.error("join.....addDetailMo:" + MO + "=====:" + stockCode);
|
|
|
|
//MO票解析规则 LB]A0008157]230729]12122000026352]20]230729283171]]
|
|
|
|
//MO票解析规则 LB]A0008157]230729]12122000026352]20]230729283171]]
|
|
|
|
int j=0;
|
|
|
|
int j = 0;
|
|
|
|
IScanPut s=new IScanPut();
|
|
|
|
IScanPut s = new IScanPut();
|
|
|
|
s.setScanCode(MO);
|
|
|
|
s.setScanCode(MO);
|
|
|
|
ApiResult r1=analysisMO(s);
|
|
|
|
ApiResult r1 = analysisMO(s);
|
|
|
|
if(r1.getStatus()==400){
|
|
|
|
if (r1.getStatus() == 400) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(),r1.getMessage());
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(), r1.getMessage());
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
RRkMo rmo=(RRkMo)r1.getData();
|
|
|
|
RRkMo rmo = (RRkMo) r1.getData();
|
|
|
|
ApiResult r2=retrievalStockCode(new IRkStockCode(rmo.getItemId(),stockCode));
|
|
|
|
ApiResult r2 = retrievalStockCode(new IRkStockCode(rmo.getItemId(), stockCode));
|
|
|
|
if(r2.getStatus()==400){
|
|
|
|
if (r2.getStatus() == 400) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(),r2.getMessage());
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(), r2.getMessage());
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
JSONObject obj=(JSONObject)r2.getData();
|
|
|
|
JSONObject obj = (JSONObject) r2.getData();
|
|
|
|
Long stockId=(Long)obj.get("stockId");
|
|
|
|
Long stockId = (Long) obj.get("stockId");
|
|
|
|
ApiResult r3=createAsnDetail(new IRkConfirm(MO,rmo.getItemId(),rmo.getItemCode(),stockId,stockCode,rmo.getQty(),rmo.getPch(),rmo.getCjbh()));
|
|
|
|
ApiResult r3 = createAsnDetail(new IRkConfirm(MO, rmo.getItemId(), rmo.getItemCode(), stockId, stockCode, rmo.getQty(), rmo.getPch(), rmo.getCjbh()));
|
|
|
|
if(r3.getStatus()==400){
|
|
|
|
if (r3.getStatus() == 400) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(),r3.getMessage());
|
|
|
|
ApiError apiError = ApiError.errorJosn(BAD_REQUEST.value(), r3.getMessage());
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}
|
|
|
|
}
|
|
|
|
return new ResponseEntity<>(HttpStatus.OK);
|
|
|
|
return new ResponseEntity<>(HttpStatus.OK);
|
|
|
|
@ -335,21 +337,21 @@ public class AsnDetailController {
|
|
|
|
@ApiOperation("扫描MO票接口")
|
|
|
|
@ApiOperation("扫描MO票接口")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:scanMO')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:scanMO')")
|
|
|
|
@AnonymousAccess
|
|
|
|
@AnonymousAccess
|
|
|
|
public ResponseEntity<Object> scanMO(@RequestBody IScanPut s){
|
|
|
|
public ResponseEntity<Object> scanMO(@RequestBody IScanPut s) {
|
|
|
|
ApiResult r=analysisMO(s);
|
|
|
|
ApiResult r = analysisMO(s);
|
|
|
|
return HttpUtils.handle(r);
|
|
|
|
return HttpUtils.handle(r);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ApiResult analysisMO(IScanPut s){
|
|
|
|
public ApiResult analysisMO(IScanPut s) {
|
|
|
|
//MO票解析规则 LB]A0008157]230729]12122000026352]20]230729283171]]
|
|
|
|
//MO票解析规则 LB]A0008157]230729]12122000026352]20]230729283171]]
|
|
|
|
String mo=s.getScanCode();
|
|
|
|
String mo = s.getScanCode();
|
|
|
|
String[] str = mo.split("]");
|
|
|
|
String[] str = mo.split("]");
|
|
|
|
RRkMo rm=new RRkMo();
|
|
|
|
RRkMo rm = new RRkMo();
|
|
|
|
int j=0;
|
|
|
|
int j = 0;
|
|
|
|
if (str.length <=5) {
|
|
|
|
if (str.length <= 5) {
|
|
|
|
rm.setMsg(mo+"格式不正确");
|
|
|
|
rm.setMsg(mo + "格式不正确");
|
|
|
|
String msg=mo+"格式不正确";
|
|
|
|
String msg = mo + "格式不正确";
|
|
|
|
return ApiResult.result(400,msg,rm);
|
|
|
|
return ApiResult.result(400, msg, rm);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
String itemCode = str[3];
|
|
|
|
String itemCode = str[3];
|
|
|
|
Double qty = Double.parseDouble(str[4]);
|
|
|
|
Double qty = Double.parseDouble(str[4]);
|
|
|
|
@ -362,13 +364,13 @@ public class AsnDetailController {
|
|
|
|
rm.setItemCode(itemCode);
|
|
|
|
rm.setItemCode(itemCode);
|
|
|
|
Item it = itemService.existItem(itemCode);
|
|
|
|
Item it = itemService.existItem(itemCode);
|
|
|
|
if (it == null) {
|
|
|
|
if (it == null) {
|
|
|
|
rm.setMsg(itemCode+"不存在");
|
|
|
|
rm.setMsg(itemCode + "不存在");
|
|
|
|
String msg=itemCode+"不存在";
|
|
|
|
String msg = itemCode + "不存在";
|
|
|
|
return ApiResult.result(400,msg,rm);
|
|
|
|
return ApiResult.result(400, msg, rm);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
rm.setItemId(it.getId());
|
|
|
|
rm.setItemId(it.getId());
|
|
|
|
rm.setItemName(it.getName());
|
|
|
|
rm.setItemName(it.getName());
|
|
|
|
return ApiResult.result(200,null,rm);
|
|
|
|
return ApiResult.result(200, null, rm);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -377,27 +379,24 @@ public class AsnDetailController {
|
|
|
|
@ApiOperation("MO票采集,扫描容器号")
|
|
|
|
@ApiOperation("MO票采集,扫描容器号")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:scanStockCode')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:scanStockCode')")
|
|
|
|
@AnonymousAccess
|
|
|
|
@AnonymousAccess
|
|
|
|
public ResponseEntity<Object> scanStockCode(@RequestBody IRkStockCode s){
|
|
|
|
public ResponseEntity<Object> scanStockCode(@RequestBody IRkStockCode s) {
|
|
|
|
ApiResult r=retrievalStockCode(s);
|
|
|
|
ApiResult r = retrievalStockCode(s);
|
|
|
|
return HttpUtils.handle(r);
|
|
|
|
return HttpUtils.handle(r);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
public ApiResult retrievalStockCode(IRkStockCode s){
|
|
|
|
public ApiResult retrievalStockCode(IRkStockCode s) {
|
|
|
|
JSONObject obj=new JSONObject();
|
|
|
|
JSONObject obj = new JSONObject();
|
|
|
|
Long itemId=s.getItemId();
|
|
|
|
Long itemId = s.getItemId();
|
|
|
|
String stockCode=s.getStockCode();
|
|
|
|
String stockCode = s.getStockCode();
|
|
|
|
Stock st = stockService.findByCode(stockCode,BaseStatus.FREE);
|
|
|
|
Stock st = stockService.findByCode(stockCode, BaseStatus.FREE);
|
|
|
|
if (st == null) {
|
|
|
|
if (st == null) {
|
|
|
|
return ApiResult.result(400,stockCode+"不存在或已使用",obj);
|
|
|
|
return ApiResult.result(400, stockCode + "不存在或已使用", obj);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
Item it=itemService.findByItemId(itemId);
|
|
|
|
|
|
|
|
if(!st.getStockType().getId().equals(it.getStockType().getId())){
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
return ApiResult.result(400,it.getCode()+"物料绑定容器类型不正确",obj);
|
|
|
|
map.put("stockId", st.getId());
|
|
|
|
}
|
|
|
|
|
|
|
|
Map<String,Object> map=new HashMap<>();
|
|
|
|
|
|
|
|
map.put("stockId",st.getId());
|
|
|
|
|
|
|
|
obj.putAll(map);
|
|
|
|
obj.putAll(map);
|
|
|
|
return ApiResult.result(200,null,obj);
|
|
|
|
return ApiResult.result(200, null, obj);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("/putawayStock")
|
|
|
|
@PostMapping("/putawayStock")
|
|
|
|
@ -405,15 +404,15 @@ public class AsnDetailController {
|
|
|
|
@ApiOperation("APP入库上架-容器号")
|
|
|
|
@ApiOperation("APP入库上架-容器号")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:putawayStock')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:putawayStock')")
|
|
|
|
@AnonymousAccess
|
|
|
|
@AnonymousAccess
|
|
|
|
public ResponseEntity<Object> putawayStock(@RequestBody IRkInv rk){
|
|
|
|
public ResponseEntity<Object> putawayStock(@RequestBody IRkInv rk) {
|
|
|
|
String stockCode=rk.getStockCode();
|
|
|
|
String stockCode = rk.getStockCode();
|
|
|
|
AsnDetail ad=asnDetailService.findByStock(stockCode);
|
|
|
|
AsnDetail ad = asnDetailService.findByStock(stockCode);
|
|
|
|
if(ad==null){
|
|
|
|
if (ad == null) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(HttpStatus.BAD_REQUEST.value(), stockCode+"找不到收货记录");
|
|
|
|
ApiError apiError = ApiError.errorJosn(HttpStatus.BAD_REQUEST.value(), stockCode + "找不到收货记录");
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
rk.setAsnDetailId(ad.getId());
|
|
|
|
rk.setAsnDetailId(ad.getId());
|
|
|
|
return new ResponseEntity<>(rk,HttpStatus.OK);
|
|
|
|
return new ResponseEntity<>(rk, HttpStatus.OK);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -422,15 +421,15 @@ public class AsnDetailController {
|
|
|
|
@ApiOperation("APP入库上架-起点")
|
|
|
|
@ApiOperation("APP入库上架-起点")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:putawaySrcPoint')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:putawaySrcPoint')")
|
|
|
|
@AnonymousAccess
|
|
|
|
@AnonymousAccess
|
|
|
|
public ResponseEntity<Object> putawaySrcPoint(@RequestBody IRkInv rk){
|
|
|
|
public ResponseEntity<Object> putawaySrcPoint(@RequestBody IRkInv rk) {
|
|
|
|
String srcPointCode=rk.getSrcPointCode();
|
|
|
|
String srcPointCode = rk.getSrcPointCode();
|
|
|
|
Point srcPoint=pointService.findByCode(srcPointCode,null,null,null,null);
|
|
|
|
Point srcPoint = pointService.findByCode(srcPointCode, null, null, null, null);
|
|
|
|
if (srcPoint == null) {
|
|
|
|
if (srcPoint == null) {
|
|
|
|
ApiError apiError = ApiError.errorJosn(HttpStatus.BAD_REQUEST.value(), srcPointCode+"找不到起点");
|
|
|
|
ApiError apiError = ApiError.errorJosn(HttpStatus.BAD_REQUEST.value(), srcPointCode + "找不到起点");
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
return new ResponseEntity(apiError, HttpStatus.valueOf(apiError.getStatus()));
|
|
|
|
}else{
|
|
|
|
} else {
|
|
|
|
rk.setSrcPointId(srcPoint.getId());
|
|
|
|
rk.setSrcPointId(srcPoint.getId());
|
|
|
|
return new ResponseEntity<>(rk,HttpStatus.OK);
|
|
|
|
return new ResponseEntity<>(rk, HttpStatus.OK);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@ -439,15 +438,14 @@ public class AsnDetailController {
|
|
|
|
@ApiOperation("APP入库上架")
|
|
|
|
@ApiOperation("APP入库上架")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:putawayConfirmApp')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:putawayConfirmApp')")
|
|
|
|
@AnonymousAccess
|
|
|
|
@AnonymousAccess
|
|
|
|
public ResponseEntity<Object> putawayConfirmApp(@RequestBody IRkInv rk){
|
|
|
|
public ResponseEntity<Object> putawayConfirmApp(@RequestBody IRkInv rk) {
|
|
|
|
ApiResult r=putawayConfirm(rk);
|
|
|
|
ApiResult r = putawayConfirm(rk);
|
|
|
|
return HttpUtils.handle(r);
|
|
|
|
return HttpUtils.handle(r);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
public ApiResult putawayConfirm(IRkInv rk) {
|
|
|
|
public ApiResult putawayConfirm(IRkInv rk){
|
|
|
|
JSONObject obj = new JSONObject();
|
|
|
|
JSONObject obj=new JSONObject();
|
|
|
|
|
|
|
|
//查找容器是否有未完成记录
|
|
|
|
//查找容器是否有未完成记录
|
|
|
|
// String stockCode=rk.getStockCode();
|
|
|
|
// String stockCode=rk.getStockCode();
|
|
|
|
// AsnDetail ad=asnDetailService.findByStock(stockCode);
|
|
|
|
// AsnDetail ad=asnDetailService.findByStock(stockCode);
|
|
|
|
@ -456,25 +454,25 @@ public class AsnDetailController {
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
//
|
|
|
|
//
|
|
|
|
// String srcPointCode=rk.getSrcPointCode();
|
|
|
|
// String srcPointCode=rk.getSrcPointCode();
|
|
|
|
String dstPointCode=rk.getDstPoinCode();
|
|
|
|
String dstPointCode = rk.getDstPoinCode();
|
|
|
|
AsnDetail ad=asnDetailService.toEntity(asnDetailService.findById(rk.getAsnDetailId()));
|
|
|
|
AsnDetail ad = asnDetailService.toEntity(asnDetailService.findById(rk.getAsnDetailId()));
|
|
|
|
Point srcPoint=pointService.findEntityById(rk.getSrcPointId());
|
|
|
|
Point srcPoint = pointService.findEntityById(rk.getSrcPointId());
|
|
|
|
// Point srcPoint=pointService.findByCode(srcPointCode,null,null);
|
|
|
|
// Point srcPoint=pointService.findByCode(srcPointCode,null,null);
|
|
|
|
// if (srcPoint == null) {
|
|
|
|
// if (srcPoint == null) {
|
|
|
|
// return ApiResult.result(400,srcPointCode+"找不到起点",obj);
|
|
|
|
// return ApiResult.result(400,srcPointCode+"找不到起点",obj);
|
|
|
|
// }
|
|
|
|
// }
|
|
|
|
Point dstPoint=pointService.findByCode(dstPointCode,BaseStatus.FREE,BaseStatus.STORAGE,"",null);
|
|
|
|
Point dstPoint = pointService.findByCode(dstPointCode, BaseStatus.FREE, BaseStatus.STORAGE, "", null);
|
|
|
|
if (dstPoint == null) {
|
|
|
|
if (dstPoint == null) {
|
|
|
|
return ApiResult.result(400,dstPoint+"找不到终点或状态不对",obj);
|
|
|
|
return ApiResult.result(400, dstPoint + "找不到终点或状态不对", obj);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
ApiResult r1= putawayInv(ad,srcPoint,dstPoint);
|
|
|
|
ApiResult r1 = putawayInv(ad, srcPoint, dstPoint);
|
|
|
|
if(r1.getStatus()==400){
|
|
|
|
if (r1.getStatus() == 400) {
|
|
|
|
return r1;
|
|
|
|
return r1;
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
Map<String,Object> map=new HashMap<>();
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
obj.putAll(map);
|
|
|
|
obj.putAll(map);
|
|
|
|
return ApiResult.result(200,null,obj);
|
|
|
|
return ApiResult.result(200, null, obj);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
@ -483,25 +481,24 @@ public class AsnDetailController {
|
|
|
|
@ApiOperation("MO票确认绑定")
|
|
|
|
@ApiOperation("MO票确认绑定")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:storeAsnDetail')")
|
|
|
|
@PreAuthorize("@el.check('asnDetail:storeAsnDetail')")
|
|
|
|
@AnonymousAccess
|
|
|
|
@AnonymousAccess
|
|
|
|
public ResponseEntity<Object> storeAsnDetail(@RequestBody IRkConfirm cf) {
|
|
|
|
public ResponseEntity<Object> storeAsnDetail(@RequestBody IRkConfirm cf) {
|
|
|
|
ApiResult r=createAsnDetail(cf);
|
|
|
|
ApiResult r = createAsnDetail(cf);
|
|
|
|
return HttpUtils.handle(r);
|
|
|
|
return HttpUtils.handle(r);
|
|
|
|
}
|
|
|
|
}
|
|
|
|
public ApiResult createAsnDetail(IRkConfirm cf) {
|
|
|
|
|
|
|
|
AsnDetail asnDetail=new AsnDetail();
|
|
|
|
public ApiResult createAsnDetail(IRkConfirm cf) {
|
|
|
|
int j=0;
|
|
|
|
AsnDetail asnDetail = new AsnDetail();
|
|
|
|
String mo=cf.getMo();
|
|
|
|
int j = 0;
|
|
|
|
String itemCode =cf.getItemCode();
|
|
|
|
String mo = cf.getMo();
|
|
|
|
|
|
|
|
String itemCode = cf.getItemCode();
|
|
|
|
Double qty = cf.getQty();
|
|
|
|
Double qty = cf.getQty();
|
|
|
|
String pc = cf.getPch();
|
|
|
|
String pc = cf.getPch();
|
|
|
|
String cjbh = cf.getCjbh();
|
|
|
|
String cjbh = cf.getCjbh();
|
|
|
|
Long itemId=cf.getItemId();
|
|
|
|
Long itemId = cf.getItemId();
|
|
|
|
Long stockId=cf.getStockId();
|
|
|
|
Long stockId = cf.getStockId();
|
|
|
|
Item it=itemService.findByItemId(itemId);
|
|
|
|
Item it = itemService.findByItemId(itemId);
|
|
|
|
Stock st=stockService.toEntity(stockService.findById(stockId));
|
|
|
|
Stock st = stockService.toEntity(stockService.findById(stockId));
|
|
|
|
if(!st.getStockType().getId().equals(it.getStockType().getId())){
|
|
|
|
|
|
|
|
return ApiResult.result(400,it.getCode()+"物料绑定容器类型不正确",null);
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
asnDetail.setPropC1(pc);
|
|
|
|
asnDetail.setPropC1(pc);
|
|
|
|
asnDetail.setPropC2(cjbh);
|
|
|
|
asnDetail.setPropC2(cjbh);
|
|
|
|
asnDetail.setOrderQty(qty);
|
|
|
|
asnDetail.setOrderQty(qty);
|
|
|
|
@ -514,7 +511,7 @@ public class AsnDetailController {
|
|
|
|
asnDetailService.create(asnDetail);
|
|
|
|
asnDetailService.create(asnDetail);
|
|
|
|
st.setStatus(BaseStatus.USED);
|
|
|
|
st.setStatus(BaseStatus.USED);
|
|
|
|
stockService.update(st);
|
|
|
|
stockService.update(st);
|
|
|
|
return ApiResult.result(200,"绑定成功","");
|
|
|
|
return ApiResult.result(200, "绑定成功", "");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
@PostMapping("/scanStock")
|
|
|
|
@PostMapping("/scanStock")
|
|
|
|
@ -529,11 +526,11 @@ public class AsnDetailController {
|
|
|
|
|
|
|
|
|
|
|
|
//调用收货方法
|
|
|
|
//调用收货方法
|
|
|
|
|
|
|
|
|
|
|
|
JSONObject obj=new JSONObject();
|
|
|
|
JSONObject obj = new JSONObject();
|
|
|
|
Map<String,Object> map=new HashMap<>();
|
|
|
|
Map<String, Object> map = new HashMap<>();
|
|
|
|
map.put("taskCode",taskCode);
|
|
|
|
map.put("taskCode", taskCode);
|
|
|
|
obj.putAll(map);
|
|
|
|
obj.putAll(map);
|
|
|
|
return new ResponseEntity<>(ApiResult.success("",obj), HttpStatus.OK);
|
|
|
|
return new ResponseEntity<>(ApiResult.success("", obj), HttpStatus.OK);
|
|
|
|
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|