opt:提交合单功能
This commit is contained in:
@@ -75,6 +75,7 @@
|
||||
INNER JOIN md_me_materialbase material ON material.material_code = form.material_code
|
||||
<where>
|
||||
form.status = '10'
|
||||
and form.is_merge = '0'
|
||||
and form.form_type = '1001'
|
||||
AND form.is_finish = '0'
|
||||
<if test="param.stor_id != null and param.stor_id != ''">
|
||||
|
||||
@@ -39,7 +39,7 @@ public class ErpToWmsController {
|
||||
return new ResponseEntity<>(erpToWmsService.erpQueryIvt(whereJson),HttpStatus.OK);
|
||||
}
|
||||
|
||||
@PostMapping("/groupplate")
|
||||
@PostMapping("/groupinfo")
|
||||
@Log("下发组盘信息")
|
||||
@SaIgnore
|
||||
public ResponseEntity<Object> sendGroupplate(@RequestBody JSONObject whereJson) {
|
||||
|
||||
@@ -86,6 +86,18 @@ public class ErpToWmsServiceImpl implements ErpToWmsService {
|
||||
|
||||
@Override
|
||||
public ErpResponse sendGroupplate(JSONObject whereJson) {
|
||||
/**
|
||||
* {
|
||||
* "order_code": "3000000056",
|
||||
* "order_type": "03",
|
||||
* "pallet_sn": "zp0000000003",
|
||||
* "mater_frame": "m01",
|
||||
* "mater_code": "0345h-fg0001",
|
||||
* "mater_name": "36μm电镀金刚石切割线",
|
||||
* "unit_code": "件",
|
||||
* "qty": "120.00"
|
||||
* }
|
||||
*/
|
||||
log.info("sendGroupplate下发组盘接口输入参数为:-------------------" + whereJson.toString());
|
||||
// 查询仓库
|
||||
BsrealStorattr storDao = iBsrealStorattrService.findByCode("GW");
|
||||
@@ -119,37 +131,37 @@ public class ErpToWmsServiceImpl implements ErpToWmsService {
|
||||
.filter(row -> row.getMaterial_code().equals(json.getString("mater_code")))
|
||||
.findFirst().orElse(null);
|
||||
jsonDtl.setId(IdUtil.getStringId());
|
||||
jsonDtl.setCode(json.getString("ext_code"));
|
||||
jsonDtl.setCode(json.getString("order_code"));
|
||||
jsonDtl.setStatus(IOSEnum.BILL_STATUS.code("生成"));
|
||||
jsonDtl.setStor_id(storDao.getStor_id());
|
||||
jsonDtl.setStor_name(storDao.getStor_name());
|
||||
jsonDtl.setForm_type(json.getString("ext_type"));
|
||||
jsonDtl.setForm_type(json.getString("order_type"));
|
||||
jsonDtl.setSource_form_date(DateUtil.today());
|
||||
jsonDtl.setMaterial_code(json.getString("mater_code"));
|
||||
jsonDtl.setMaterial_id(materDao.getMaterial_id());
|
||||
jsonDtl.setQty(BigDecimal.valueOf(json.getDoubleValue("quantity")));
|
||||
jsonDtl.setPlan_qty(BigDecimal.valueOf(json.getDoubleValue("quantity")));
|
||||
jsonDtl.setQty(BigDecimal.valueOf(json.getDoubleValue("qty")));
|
||||
jsonDtl.setPlan_qty(BigDecimal.valueOf(json.getDoubleValue("qty")));
|
||||
MdPbMeasureunit unitDao = unitDaoList.stream()
|
||||
.filter(row -> row.getUnit_code().equals(json.getString("unit_code")))
|
||||
.findFirst().orElse(null);
|
||||
jsonDtl.setUnit_id(unitDao.getMeasure_unit_id());
|
||||
jsonDtl.setUnit_name(unitDao.getUnit_name());
|
||||
jsonDtl.setVehicle_code(json.getString("vehicle_code"));
|
||||
jsonDtl.setVehicle_code2(json.getString("vehicle_code2"));
|
||||
jsonDtl.setVehicle_code(json.getString("pallet_sn"));
|
||||
jsonDtl.setVehicle_code2(json.getString("mater_frame"));
|
||||
jsonDtl.setCreate_name("ERP");
|
||||
jsonDtl.setCreate_time(DateUtil.now());
|
||||
dtlArr.add(jsonDtl);
|
||||
|
||||
GroupPlate plate = new GroupPlate();
|
||||
plate.setGroup_id(IdUtil.getStringId());
|
||||
plate.setStoragevehicle_code(json.getString("vehicle_code"));
|
||||
plate.setStoragevehicle_code(json.getString("pallet_sn"));
|
||||
plate.setMaterial_id(materDao.getMaterial_id());
|
||||
plate.setQty_unit_id(unitDao.getMeasure_unit_id());
|
||||
plate.setQty_unit_name(unitDao.getUnit_name());
|
||||
plate.setQty(BigDecimal.valueOf(json.getDoubleValue("quantity")));
|
||||
plate.setQty(BigDecimal.valueOf(json.getDoubleValue("qty")));
|
||||
plate.setStatus(IOSEnum.GROUP_PLATE_STATUS.code("生成"));
|
||||
plate.setExt_code(json.getString("ext_code"));
|
||||
plate.setExt_type(json.getString("ext_type"));
|
||||
plate.setExt_code(json.getString("order_code"));
|
||||
plate.setExt_type(json.getString("order_type"));
|
||||
plate.setCreate_name("ERP");
|
||||
plate.setCreate_time(DateUtil.now());
|
||||
plates.add(plate);
|
||||
|
||||
@@ -81,11 +81,14 @@ public class PmFormDataController {
|
||||
|
||||
@GetMapping("/getSonFormData/{id}")
|
||||
public ResponseEntity<Object> getSonDtlFormData(@PathVariable String id) {
|
||||
//参数判读,参数解析,调用参数入库
|
||||
//Page<BmFormStruc> page = iBmFormStrucService.page(pageQuery.build(), query.build());
|
||||
return new ResponseEntity<>(iPmFormDataService.getSonDtlFormData(id), HttpStatus.OK);
|
||||
}
|
||||
|
||||
@GetMapping("/getdtl/{id}")
|
||||
public ResponseEntity<Object> getdtl(@PathVariable String id) {
|
||||
return new ResponseEntity<>(iPmFormDataService.getdtl(id), HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/confirmStatus")
|
||||
@SaIgnore
|
||||
@@ -109,6 +112,22 @@ public class PmFormDataController {
|
||||
}
|
||||
|
||||
|
||||
@PostMapping("/tomerge")
|
||||
@SaIgnore
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResponseEntity<Object> tomerge(@RequestBody JSONArray rows) {
|
||||
iPmFormDataService.tomerge(rows);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
@PostMapping("/dismerge")
|
||||
@SaIgnore
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public ResponseEntity<Object> dismerge(@RequestBody JSONArray rows) {
|
||||
iPmFormDataService.dismerge(rows);
|
||||
return new ResponseEntity<>(HttpStatus.OK);
|
||||
}
|
||||
|
||||
|
||||
@GetMapping("/sync/{type}")
|
||||
@Log("单据同步")
|
||||
public ResponseEntity<Object> sync(@RequestParam String type, String formDtl) {
|
||||
|
||||
@@ -1,6 +1,7 @@
|
||||
package org.nl.wms.pm_manage.service;
|
||||
|
||||
|
||||
import com.alibaba.fastjson.JSONArray;
|
||||
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
|
||||
import com.baomidou.mybatisplus.extension.service.IService;
|
||||
import org.nl.common.domain.query.PageQuery;
|
||||
@@ -38,6 +39,10 @@ public interface IPmFormDataService extends IService<PmFormData> {
|
||||
*/
|
||||
void update(PmFormDataParam params);
|
||||
|
||||
void tomerge(JSONArray rows);
|
||||
|
||||
void dismerge(JSONArray rows);
|
||||
|
||||
|
||||
List<PmFormData> getByType(String from_type);
|
||||
|
||||
@@ -52,6 +57,8 @@ public interface IPmFormDataService extends IService<PmFormData> {
|
||||
*/
|
||||
Object getSonDtlFormData(String id);
|
||||
|
||||
List<PmFormData> getdtl(String parent_id);
|
||||
|
||||
void dynamicSql(String sql);
|
||||
|
||||
List<PmFormData> getByParentId(String...parent_id);
|
||||
|
||||
@@ -16,12 +16,11 @@ import java.math.BigDecimal;
|
||||
* @since 2025-06-27
|
||||
*/
|
||||
@Data
|
||||
@EqualsAndHashCode(callSuper = true)
|
||||
@EqualsAndHashCode(callSuper = false)
|
||||
@TableName("pm_form_data")
|
||||
public class PmFormData extends Model<PmFormData> {
|
||||
public class PmFormData implements Serializable {
|
||||
|
||||
private static final long serialVersionUID = -7739291296662381393L;
|
||||
//@TableId(type = IdType.ASSIGN_ID)
|
||||
|
||||
|
||||
/**
|
||||
@@ -159,16 +158,17 @@ public class PmFormData extends Model<PmFormData> {
|
||||
*/
|
||||
private Integer is_finish;
|
||||
|
||||
/**
|
||||
* 是否合单
|
||||
*/
|
||||
private String is_merge;
|
||||
|
||||
/**
|
||||
* 获取主键值
|
||||
*
|
||||
* @return 主键值
|
||||
* 源单字符串集
|
||||
*/
|
||||
@Override
|
||||
protected Serializable pkVal() {
|
||||
return this.id;
|
||||
}
|
||||
private String merge_codes;
|
||||
|
||||
private String new_merge_flag;
|
||||
|
||||
}
|
||||
|
||||
|
||||
@@ -42,6 +42,10 @@ public class PmFormDataDto implements Serializable {
|
||||
* 源单单据日期
|
||||
*/
|
||||
private String source_form_date;
|
||||
/**
|
||||
* 物料code
|
||||
*/
|
||||
private String material_id;
|
||||
/**
|
||||
* 物料code
|
||||
*/
|
||||
@@ -133,6 +137,17 @@ public class PmFormDataDto implements Serializable {
|
||||
* 是否完结
|
||||
*/
|
||||
private Integer is_finish;
|
||||
/**
|
||||
* 是否合单
|
||||
*/
|
||||
private String is_merge;
|
||||
|
||||
/**
|
||||
* 源单字符串集
|
||||
*/
|
||||
private String merge_codes;
|
||||
|
||||
private String new_merge_flag;
|
||||
|
||||
/**
|
||||
* 关联上级表单id
|
||||
|
||||
@@ -2,8 +2,12 @@ package org.nl.wms.pm_manage.service.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.LambdaQueryWrapper;
|
||||
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.service.impl.ServiceImpl;
|
||||
import com.github.pagehelper.Page;
|
||||
import com.github.pagehelper.PageHelper;
|
||||
@@ -27,6 +31,7 @@ import org.nl.wms.pm_manage.service.dto.PmFormDataDto;
|
||||
import org.nl.wms.pm_manage.service.dto.PmFormDataParam;
|
||||
import org.springframework.beans.BeanUtils;
|
||||
import org.springframework.stereotype.Service;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.util.Assert;
|
||||
import org.nl.wms.pm_manage.service.IPmFormDataService;
|
||||
import org.springframework.util.CollectionUtils;
|
||||
@@ -194,6 +199,17 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
return this.baseMapper.queryTree(query);
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PmFormData> getdtl(String id) {
|
||||
if (StringUtils.isEmpty(id)) {
|
||||
throw new BadRequestException("请求参数不能为空");
|
||||
}
|
||||
PmFormData form = pmFormDataMapper.selectById(id);
|
||||
String[] codes = form.getMerge_codes().split(",");
|
||||
|
||||
return this.list(new QueryWrapper<PmFormData>().in("code", codes));
|
||||
}
|
||||
|
||||
|
||||
|
||||
@Override
|
||||
@@ -209,6 +225,61 @@ public class PmFormDataServiceImpl extends ServiceImpl<PmFormDataMapper, PmFormD
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void tomerge(JSONArray rows){
|
||||
BigDecimal sum_qty = BigDecimal.ZERO;
|
||||
String codes = "";
|
||||
String h_code = "";
|
||||
for(int i=0;i<rows.size();i++){
|
||||
JSONObject jo = rows.getJSONObject(i);
|
||||
PmFormData form = pmFormDataMapper.selectById(jo.getString("id"));
|
||||
if("1".equals(form.getIs_merge())){
|
||||
throw new BadRequestException("当前单据已合单,不允许再次提交:"+form.getCode());
|
||||
}
|
||||
if("1".equals(form.getNew_merge_flag())){
|
||||
throw new BadRequestException("当前单据为合单后新单据,不允许再次提交:"+form.getCode());
|
||||
}
|
||||
if(i==0){
|
||||
codes = form.getCode();
|
||||
h_code= "H-"+form.getCode();
|
||||
}else{
|
||||
codes = codes+","+form.getCode();
|
||||
}
|
||||
sum_qty = sum_qty.add(form.getQty());
|
||||
form.setIs_merge("1");
|
||||
pmFormDataMapper.updateById(form);
|
||||
if(i==(rows.size()-1)){
|
||||
form.setId(IdUtil.getStringId());
|
||||
form.setQty(sum_qty);
|
||||
form.setCode(h_code);
|
||||
form.setNew_merge_flag("1");
|
||||
form.setMerge_codes(codes);
|
||||
form.setIs_merge("0");
|
||||
pmFormDataMapper.insert(form);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
@Transactional(rollbackFor = Exception.class)
|
||||
public void dismerge(JSONArray rows){
|
||||
for(int i=0;i<rows.size();i++){
|
||||
JSONObject jo = rows.getJSONObject(i);
|
||||
PmFormData form = pmFormDataMapper.selectById(jo.getString("id"));
|
||||
if(!"1".equals(form.getNew_merge_flag())){
|
||||
throw new BadRequestException("当前单据为非合单新单据,不允许提交:"+form.getCode());
|
||||
}
|
||||
String[] codes = form.getMerge_codes().split(",");
|
||||
|
||||
pmFormDataMapper.update(null,new UpdateWrapper<PmFormData>()
|
||||
.set("is_merge","0")
|
||||
.in("code",codes)
|
||||
);
|
||||
pmFormDataMapper.deleteById(form.getId());
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<PmFormData> getByParentId(String[] parent_id) {
|
||||
Assert.notNull(parent_id, "请求参数不能为空");
|
||||
|
||||
Reference in New Issue
Block a user