rev: 成品入库前后端修改
This commit is contained in:
@@ -18,9 +18,9 @@ public enum IOSEnum {
|
||||
//出入库类型
|
||||
IO_TYPE(MapOf.of("入库","1","出库","2")),
|
||||
//单据类型
|
||||
BILL_TYPE(MapOf.of("生产入库","1","退货入库","2")),
|
||||
//单据类型
|
||||
BILL_STATUS(MapOf.of("生成","1","提交","2")),
|
||||
BILL_TYPE(MapOf.of("生产入库","1","手工入库","2")),
|
||||
//单据状态
|
||||
BILL_STATUS(MapOf.of("生成","10","分配中","20","分配完","30","完成","99")),
|
||||
//单据状态
|
||||
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 io.swagger.annotations.Api;
|
||||
import io.swagger.annotations.ApiOperation;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.nl.common.TableDataInfo;
|
||||
import org.nl.common.anno.Log;
|
||||
import org.nl.wms.storage_manage.basedata.service.storage.IStIvtBsrealstorattrService;
|
||||
@@ -24,8 +27,11 @@ import java.util.List;
|
||||
* @author generator
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
@RequestMapping("/api/stIvtBsrealstorattr")
|
||||
@RestController
|
||||
@RequestMapping("/stIvtBsrealstorattr")
|
||||
@RequiredArgsConstructor
|
||||
@Api(tags = "实物库属性表")
|
||||
@Slf4j
|
||||
public class StIvtBsrealstorattrController {
|
||||
|
||||
@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.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.dto.IostorInvQuery;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@@ -15,35 +17,58 @@ import java.util.List;
|
||||
* @since 2023-05-04
|
||||
*/
|
||||
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);
|
||||
|
||||
/**
|
||||
* 更新相关联的表
|
||||
* @param form
|
||||
* @param form /
|
||||
*/
|
||||
void update(JSONObject form);
|
||||
|
||||
/**
|
||||
* 查询出入库单明细
|
||||
* @param whereJson /
|
||||
* @return JSONArray
|
||||
* @return List
|
||||
*/
|
||||
List getIosInvDtl(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 查询出入库单分配明细
|
||||
* @param whereJson /
|
||||
* @return List
|
||||
*/
|
||||
List getIosInvDis(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 提交单据
|
||||
* @param whereJson
|
||||
* @param whereJson /
|
||||
*/
|
||||
void commit(JSONObject whereJson);
|
||||
|
||||
/**
|
||||
* 组盘
|
||||
* @param whereJson
|
||||
* @param 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);
|
||||
|
||||
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;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单分配明细表 服务类
|
||||
@@ -13,4 +17,5 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
||||
*/
|
||||
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;
|
||||
|
||||
import com.baomidou.mybatisplus.annotation.TableId;
|
||||
import com.baomidou.mybatisplus.annotation.TableName;
|
||||
import com.fasterxml.jackson.annotation.JsonFormat;
|
||||
import lombok.Data;
|
||||
import lombok.EqualsAndHashCode;
|
||||
|
||||
@@ -26,6 +28,7 @@ public class StIvtIostorinvCp implements Serializable {
|
||||
/**
|
||||
* 出入单标识
|
||||
*/
|
||||
@TableId(value = "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;
|
||||
|
||||
/**
|
||||
@@ -131,6 +135,7 @@ public class StIvtIostorinvCp implements Serializable {
|
||||
/**
|
||||
* 修改时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
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;
|
||||
|
||||
/**
|
||||
@@ -161,6 +167,7 @@ public class StIvtIostorinvCp implements Serializable {
|
||||
/**
|
||||
* 确认时间
|
||||
*/
|
||||
@JsonFormat(pattern = "yyyy-MM-dd HH:mm:ss")
|
||||
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;
|
||||
|
||||
/**
|
||||
|
||||
@@ -1,8 +1,12 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostorinvdisdtlCp;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单分配明细表 Mapper 接口
|
||||
@@ -13,4 +17,6 @@ import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.StIvtIostor
|
||||
*/
|
||||
public interface StIvtIostorinvdisdtlCpMapper extends BaseMapper<StIvtIostorinvdisdtlCp> {
|
||||
|
||||
List<JSONObject> queryInvDtlDisByInv(Map<String,Object> map);
|
||||
|
||||
}
|
||||
|
||||
@@ -70,15 +70,17 @@
|
||||
dis.*,
|
||||
mater.material_code,
|
||||
mater.material_name,
|
||||
mater.material_spec,
|
||||
dis.struct_code
|
||||
mater.material_spec
|
||||
FROM
|
||||
st_ivt_iostorinvdis_cp dis
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id
|
||||
WHERE IFNULL(dis.task_id,'') = ''
|
||||
st_ivt_iostorinvdis_cp dis
|
||||
LEFT JOIN md_me_materialbase mater ON mater.material_id = dis.material_id
|
||||
WHERE 1=1
|
||||
<if test="iostorinvdtl_id != null and iostorinvdtl_id != ''">
|
||||
and dis.iostorinvdtl_id = #{iostorinvdtl_id}
|
||||
</if>
|
||||
<if test="iostorinv_id != null and iostorinv_id != ''">
|
||||
and dis.iostorinv_id = #{iostorinv_id}
|
||||
</if>
|
||||
order by dis.seq_no ASC
|
||||
</select>
|
||||
</mapper>
|
||||
|
||||
@@ -1,5 +1,27 @@
|
||||
<?xml version="1.0" encoding="UTF-8"?>
|
||||
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
|
||||
<mapper namespace="org.nl.wms.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>
|
||||
|
||||
@@ -68,8 +68,8 @@
|
||||
mater.material_name,
|
||||
mater.material_spec
|
||||
FROM
|
||||
ST_IVT_IOStorInvDtl dtl
|
||||
LEFT JOIN ST_IVT_IOStorInv mst ON mst.iostorinv_id = dtl.iostorinv_id
|
||||
st_ivt_iostorinvdtl_cp dtl
|
||||
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
|
||||
WHERE mst.is_delete = '0'
|
||||
<if test="bill_code != null and bill_code != ''">
|
||||
|
||||
@@ -1,33 +1,38 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||
|
||||
import cn.hutool.core.date.DateUtil;
|
||||
import cn.hutool.core.util.ObjectUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.LambdaUpdateWrapper;
|
||||
import com.baomidou.mybatisplus.core.conditions.update.UpdateWrapper;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import io.jsonwebtoken.lang.Assert;
|
||||
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.modules.common.exception.BadRequestException;
|
||||
import org.nl.modules.system.util.CodeUtil;
|
||||
import org.nl.modules.wql.core.bean.WQLObject;
|
||||
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.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.dao.StIvtIostorinvCp;
|
||||
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.mapper.StIvtIostorinvCpMapper;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dto.IostorInvQuery;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -42,37 +47,62 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdtlCpService iostorinvdtlCpService;
|
||||
|
||||
@Autowired
|
||||
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
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void create(JSONObject form) {
|
||||
Assert.notNull(new Object[]{form,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);
|
||||
|
||||
// 调用明细表 插入/更新方法
|
||||
iostorinvdtlCpService.create(rows, stIvtIostorinvCp.getIostorinv_id());
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void update(JSONObject form) {
|
||||
Assert.notNull(new Object[]{form,form.getJSONArray("tableData")},"请求参数不能为空");
|
||||
|
||||
JSONArray rows = form.getJSONArray("tableData");
|
||||
//先删除该单据下的所有明细
|
||||
iostorinvdtlCpService.remove(new QueryWrapper<StIvtIostorinvdtlCp>().eq("iostorinv_id",form.getString("iostorinv_id")));
|
||||
iostorinvdisCpService.remove(new QueryWrapper<StIvtIostorinvdisCp>().eq("iostorinv_id",form.getString("iostorinv_id")));
|
||||
if (ObjectUtil.isEmpty(rows)) throw new BadRequestException("明细不能为空");
|
||||
|
||||
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());
|
||||
iostorinvCp.setTotal_qty(new BigDecimal(total_qty));
|
||||
iostorinvdtlCpService.create(rows, iostorinvCp.getIostorinv_id());
|
||||
// 更新主表
|
||||
this.updateById(iostorinvCp);
|
||||
}
|
||||
@@ -80,10 +110,35 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
|
||||
@Override
|
||||
public List getIosInvDtl(JSONObject whereJson) {
|
||||
// 查询主表明细
|
||||
List<Map> maps = iostorinvdtlCpService.queryInvDtlByInv(whereJson);
|
||||
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
|
||||
public void commit(JSONObject whereJson) {
|
||||
Assert.notNull(whereJson,"请求参数不能为空");
|
||||
@@ -123,28 +178,57 @@ public class StIvtIostorinvCpServiceImpl extends ServiceImpl<StIvtIostorinvCpMap
|
||||
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
|
||||
private void packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
||||
private StIvtIostorinvCp packageMstForm(StIvtIostorinvCp stIvtIostorinvCp,JSONObject whereJson,Boolean isUpdate) {
|
||||
JSONArray rows = whereJson.getJSONArray("tableData");
|
||||
if (!isUpdate){
|
||||
// 新增
|
||||
stIvtIostorinvCp.setIostorinv_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
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.setCreate_id(SecurityUtils.getCurrentUserId());
|
||||
stIvtIostorinvCp.setCreate_name(SecurityUtils.getCurrentNickName());
|
||||
stIvtIostorinvCp.setCreate_time(new Date());
|
||||
stIvtIostorinvCp.setIs_delete(false);
|
||||
// TODO 暂时写死
|
||||
stIvtIostorinvCp.setSysdeptid("111");
|
||||
stIvtIostorinvCp.setSyscompanyid("111");
|
||||
}else {
|
||||
// 修改
|
||||
stIvtIostorinvCp.setUpdate_id(SecurityUtils.getCurrentUserId());
|
||||
stIvtIostorinvCp.setUpdate_name(SecurityUtils.getCurrentNickName());
|
||||
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.setProduct_area(whereJson.getString("product_code"));
|
||||
|
||||
stIvtIostorinvCp.setBiz_date(whereJson.getString("biz_date").substring(0,10));
|
||||
// 获取仓库信息
|
||||
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.setRemark(whereJson.getString("remark"));
|
||||
|
||||
|
||||
return stIvtIostorinvCp;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,11 +1,15 @@
|
||||
package org.nl.wms.storage_manage.productmanage.service.iostorInv.impl;
|
||||
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
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.dao.StIvtIostorinvdisdtlCp;
|
||||
import org.nl.wms.storage_manage.productmanage.service.iostorInv.dao.mapper.StIvtIostorinvdisdtlCpMapper;
|
||||
import org.springframework.stereotype.Service;
|
||||
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
* 出入库单分配明细表 服务实现类
|
||||
@@ -17,4 +21,8 @@ import org.springframework.stereotype.Service;
|
||||
@Service
|
||||
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;
|
||||
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.alibaba.fastjson.JSONObject;
|
||||
import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
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.dao.MdPbMeasureunit;
|
||||
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.productmanage.service.iostorInv.IStIvtIostorinvdisCpService;
|
||||
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.mapper.StIvtIostorinvdtlCpMapper;
|
||||
import org.springframework.beans.factory.annotation.Autowired;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
|
||||
import java.math.BigDecimal;
|
||||
import java.util.*;
|
||||
import java.util.stream.Collectors;
|
||||
import javax.annotation.Resource;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
|
||||
/**
|
||||
* <p>
|
||||
@@ -39,8 +33,14 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
||||
|
||||
@Autowired
|
||||
private IMdPbMeasureunitService measureunitService;
|
||||
|
||||
@Autowired
|
||||
private IMdMeMaterialbaseService materialbaseService;
|
||||
|
||||
|
||||
@Resource
|
||||
private StIvtIostorinvdtlCpMapper baseMapper;
|
||||
|
||||
@Autowired
|
||||
protected IStIvtIostorinvdisCpService iostorinvdisCpService;
|
||||
|
||||
@@ -55,48 +55,24 @@ public class StIvtIostorinvdtlCpServiceImpl extends ServiceImpl<StIvtIostorinvdt
|
||||
@Override
|
||||
public double create(JSONArray rows, String iostorinvCp_id) {
|
||||
double total_qty = 0;
|
||||
ArrayList<StIvtIostorinvdtlCp> mingxi = new ArrayList<>();
|
||||
ArrayList<StIvtIostorinvdisCp> fenpei = new ArrayList<>();
|
||||
|
||||
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++) {
|
||||
// 插入明细表
|
||||
JSONObject row = rows.getJSONObject(i);
|
||||
StIvtIostorinvdtlCp iostorinvdtlCp = new StIvtIostorinvdtlCp();
|
||||
iostorinvdtlCp.setIostorinvdtl_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
iostorinvdtlCp.setIostorinv_id(iostorinvCp_id);
|
||||
iostorinvdtlCp.setSeq_no(i + 1);
|
||||
MdMeMaterialbase material = materialMap.get(row.get("material_code"));
|
||||
iostorinvdtlCp.setMaterial_id(material.getMaterial_id());
|
||||
iostorinvdtlCp.setPcsn(row.getString("pcsn"));
|
||||
iostorinvdtlCp.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||
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);
|
||||
StIvtIostorinvdtlCp row = rows.getJSONObject(i).toJavaObject(StIvtIostorinvdtlCp.class);
|
||||
row.setIostorinv_id(iostorinvCp_id);
|
||||
row.setIostorinvdtl_id(org.nl.common.utils.IdUtil.getStringId());
|
||||
row.setSeq_no(i+1);
|
||||
row.setIs_active(true);
|
||||
row.setBill_status(IOSEnum.BILL_STATUS.code("生成"));
|
||||
row.setReal_qty(row.getPlan_qty());
|
||||
row.setUnassign_qty(row.getPlan_qty());
|
||||
this.save(row);
|
||||
total_qty += row.getPlan_qty().doubleValue();
|
||||
}
|
||||
}
|
||||
if (!com.alibaba.excel.util.CollectionUtils.isEmpty(mingxi)){
|
||||
this.batchInsert(mingxi);
|
||||
iostorinvdisCpService.batchInsert(fenpei);
|
||||
}
|
||||
return total_qty;
|
||||
}
|
||||
|
||||
|
||||
@@ -88,7 +88,7 @@ mybatis-plus:
|
||||
map-underscore-to-camel-case: false
|
||||
# log-impl: org.apache.ibatis.logging.stdout.StdOutImpl
|
||||
mapper-locations:
|
||||
- classpath:org.nl.**.mapper/*.xml
|
||||
- classpath:/org/nl/**/mapper/**/*.xml
|
||||
global-config:
|
||||
db-config:
|
||||
id-type: INPUT
|
||||
|
||||
Reference in New Issue
Block a user