no message
parent
d33f950ffe
commit
bca515060e
|
|
@ -46,6 +46,18 @@ public class BomAccount extends BaseEntity implements Serializable {
|
||||||
@JoinColumn(name = "`big_item_id`")
|
@JoinColumn(name = "`big_item_id`")
|
||||||
@ApiModelProperty(value = "完成品品番")
|
@ApiModelProperty(value = "完成品品番")
|
||||||
private BigItem bigItem;
|
private BigItem bigItem;
|
||||||
|
|
||||||
|
@Column(name = "`big_item_code`")
|
||||||
|
@ApiModelProperty(value = "机型代码")
|
||||||
|
private String bigItemCode;
|
||||||
|
|
||||||
|
@Column(name = "`big_item_name`")
|
||||||
|
@ApiModelProperty(value = "机型名称")
|
||||||
|
private String bigItemName;
|
||||||
|
|
||||||
|
@Column(name = "`ky_qz`")
|
||||||
|
@ApiModelProperty(value = "组顺/组顺/刻印号前2位")
|
||||||
|
private String kyQz;
|
||||||
@OneToOne
|
@OneToOne
|
||||||
@JoinColumn(name = "`item_id`")
|
@JoinColumn(name = "`item_id`")
|
||||||
@ApiModelProperty(value = "部品品番")
|
@ApiModelProperty(value = "部品品番")
|
||||||
|
|
|
||||||
|
|
@ -40,8 +40,8 @@ public interface BomAccountRepository extends JpaRepository<BomAccount, Long>, J
|
||||||
BomAccount findByOnly(Long big_item_id,Long item_id,Long r_area_id,Long z_point_id);
|
BomAccount findByOnly(Long big_item_id,Long item_id,Long r_area_id,Long z_point_id);
|
||||||
|
|
||||||
|
|
||||||
@Query(value = "SELECT * FROM base_bom_account ba WHERE ba.big_item_id=?1 and ba.item_id=?2 and ba.ns=?3 and ba.z_point_id=?4", nativeQuery = true)
|
@Query(value = "SELECT * FROM base_bom_account ba WHERE ba.big_item_id=?1 and ba.item_id=?2 and ba.ns=?3 and ba.z_point_id=?4 and ba.bonded=?5" , nativeQuery = true)
|
||||||
BomAccount findByQnique(Long big_item_id,Long item_id,String ns,Long z_point_id);
|
BomAccount findByQnique(Long big_item_id,Long item_id,String ns,Long z_point_id,String bonded);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 查询说有的 接收仓库 为true的 bigitem
|
* 查询说有的 接收仓库 为true的 bigitem
|
||||||
|
|
@ -74,7 +74,7 @@ public interface BomAccountRepository extends JpaRepository<BomAccount, Long>, J
|
||||||
|
|
||||||
//获得所有BOM标签
|
//获得所有BOM标签
|
||||||
//SUBSTRING(bi.master_name, 1, CEIL(CHAR_LENGTH(bi.master_name)/2))
|
//SUBSTRING(bi.master_name, 1, CEIL(CHAR_LENGTH(bi.master_name)/2))
|
||||||
@Query(value = "select it.code, ba.ns,it.name pm,point.code hw,ba.xz,ba.srs,ba.bonded,ba.supplier," +
|
@Query(value = "select max(ba.id) id ,it.code, ba.ns,it.name pm,point.code hw,ba.xz,ba.srs,ba.bonded,ba.supplier," +
|
||||||
// "GROUP_CONCAT(SUBSTRING(bi.master_name, 1, CEIL(CHAR_LENGTH(bi.master_name)/2))) jxs ,GROUP_CONCAT(ba.singles) tyls " +
|
// "GROUP_CONCAT(SUBSTRING(bi.master_name, 1, CEIL(CHAR_LENGTH(bi.master_name)/2))) jxs ,GROUP_CONCAT(ba.singles) tyls " +
|
||||||
"GROUP_CONCAT(bi.master_name) jxs ,GROUP_CONCAT(ba.singles) tyls " +
|
"GROUP_CONCAT(bi.master_name) jxs ,GROUP_CONCAT(ba.singles) tyls " +
|
||||||
"from base_bom_account ba \n" +
|
"from base_bom_account ba \n" +
|
||||||
|
|
|
||||||
|
|
@ -17,6 +17,7 @@ package com.youchain.basicdata.repository;
|
||||||
|
|
||||||
import com.youchain.basicdata.domain.BigItem;
|
import com.youchain.basicdata.domain.BigItem;
|
||||||
import com.youchain.basicdata.domain.Point;
|
import com.youchain.basicdata.domain.Point;
|
||||||
|
import com.youchain.businessdata.returnJson.PointZyPrint;
|
||||||
import org.springframework.data.jpa.repository.JpaRepository;
|
import org.springframework.data.jpa.repository.JpaRepository;
|
||||||
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
import org.springframework.data.jpa.repository.JpaSpecificationExecutor;
|
||||||
import org.springframework.data.jpa.repository.Query;
|
import org.springframework.data.jpa.repository.Query;
|
||||||
|
|
@ -44,4 +45,10 @@ public interface PointRepository extends JpaRepository<Point, Long>, JpaSpecific
|
||||||
|
|
||||||
@Query("from Point i where i.code in (:codes) and i.enabled=true ")
|
@Query("from Point i where i.code in (:codes) and i.enabled=true ")
|
||||||
List<Point> queryByPointCodes(List<String> codes);
|
List<Point> queryByPointCodes(List<String> codes);
|
||||||
|
|
||||||
|
@Query(value = "select p.code,area.`name` areaName from base_point p \n" +
|
||||||
|
"left join base_area area on area.id=p.area_id " +
|
||||||
|
" where (area.name=:areaName or :areaName is null)", nativeQuery = true)
|
||||||
|
List<PointZyPrint> queryPrintAll(String areaName);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -130,7 +130,7 @@ public class BomAccountController {
|
||||||
public ResponseEntity<Object> bomPrintBiaoQianList(@PathVariable("dxw") String dxw){
|
public ResponseEntity<Object> bomPrintBiaoQianList(@PathVariable("dxw") String dxw){
|
||||||
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
|
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
|
||||||
String json=(String)redisUtils.get(SecurityUtils.getCurrentUsername()+dxw);
|
String json=(String)redisUtils.get(SecurityUtils.getCurrentUsername()+dxw);
|
||||||
log.info(SecurityUtils.getCurrentUsername()+dxw+"-----"+json);
|
//log.info(SecurityUtils.getCurrentUsername()+dxw+"-----"+json);
|
||||||
List<BomPrint_BiaoQian2> list= JSONUtil.toList(json, BomPrint_BiaoQian2.class);
|
List<BomPrint_BiaoQian2> list= JSONUtil.toList(json, BomPrint_BiaoQian2.class);
|
||||||
List<BomPrint_BiaoQian> list2=new ArrayList<>();
|
List<BomPrint_BiaoQian> list2=new ArrayList<>();
|
||||||
for(BomPrint_BiaoQian2 l:list){
|
for(BomPrint_BiaoQian2 l:list){
|
||||||
|
|
@ -142,21 +142,16 @@ public class BomAccountController {
|
||||||
hw=hw.substring(0,3)+"-"+hw.substring(3,hw.length());
|
hw=hw.substring(0,3)+"-"+hw.substring(3,hw.length());
|
||||||
bq.setHw(hw);
|
bq.setHw(hw);
|
||||||
bq.setPm(l.getPm());
|
bq.setPm(l.getPm());
|
||||||
bq.setEwm(l.getCode()+";"+l.getNs()+";"+l.getBonded()+";"+l.getHw());
|
bq.setEwm(l.getId()+"]"+l.getCode()+"]"+l.getNs()+"]"+l.getBonded()+"]"+l.getHw());
|
||||||
bq.setBonded(l.getBonded());
|
bq.setBonded(l.getBonded());
|
||||||
bq.setSrs(l.getSrs());
|
bq.setSrs(l.getSrs());
|
||||||
bq.setXz(l.getXz());
|
bq.setXz(l.getXz());
|
||||||
bq.setSupplier(l.getSupplier());
|
bq.setSupplier(l.getSupplier());
|
||||||
if(dxw.equals("_BiaoQian_D")){
|
bq.setId(l.getId());
|
||||||
bq.setJxs(l.getJxs() == null ? null :
|
bq.setJxs(l.getJxs() == null ? null :
|
||||||
Arrays.stream(l.getJxs().split(","))
|
Arrays.stream(l.getJxs().split(","))
|
||||||
.map(s -> s.length() > 10 ? s.substring(0, 10) : s)
|
.map(s -> s.length() > 10 ? s.substring(0, 10) : s)
|
||||||
.toArray(String[]::new));
|
.toArray(String[]::new));
|
||||||
|
|
||||||
|
|
||||||
}else {
|
|
||||||
bq.setJxs(l.getJxs() == null ? null : l.getJxs().split(","));
|
|
||||||
}
|
|
||||||
bq.setTyls(l.getTyls()==null?null:l.getTyls().split(","));
|
bq.setTyls(l.getTyls()==null?null:l.getTyls().split(","));
|
||||||
list2.add(bq);
|
list2.add(bq);
|
||||||
}
|
}
|
||||||
|
|
@ -205,16 +200,17 @@ public class BomAccountController {
|
||||||
// }
|
// }
|
||||||
// resources.setHPoint(point);
|
// resources.setHPoint(point);
|
||||||
// }
|
// }
|
||||||
if(resources.getZPoint().getCode()==null){
|
// if(resources.getZPoint().getCode()==null){
|
||||||
resources.setZPoint(null);
|
// resources.setZPoint(null);
|
||||||
}else{
|
// }else{
|
||||||
Point point=pointRepository.findByCode(resources.getZPoint().getCode());
|
// Point point=pointRepository.findByCode(resources.getZPoint().getCode());
|
||||||
if (point == null) {
|
// if (point == null) {
|
||||||
point = pointService.createPoint(resources.getZPoint().getCode(), BaseStatus.HCKW, resources.getRArea());
|
// point = pointService.createPoint(resources.getZPoint().getCode(), BaseStatus.HCKW, resources.getRArea());
|
||||||
}
|
// }
|
||||||
resources.setZPoint(point);
|
// resources.setZPoint(point);
|
||||||
}
|
// }
|
||||||
BomAccountDto bomAccountDto=bomAccountService.create(resources);
|
BomAccountDto bomAccountDto=bomAccountService.create(resources);
|
||||||
|
// bomAccountDto.setRArea(bomAccountDto.getZPoint().getArea());
|
||||||
bomAccountLogService.copyBomAccount(bomAccountDto.getId(),"add");
|
bomAccountLogService.copyBomAccount(bomAccountDto.getId(),"add");
|
||||||
return new ResponseEntity<>(bomAccountDto,HttpStatus.CREATED);
|
return new ResponseEntity<>(bomAccountDto,HttpStatus.CREATED);
|
||||||
}
|
}
|
||||||
|
|
@ -233,15 +229,15 @@ public class BomAccountController {
|
||||||
// }
|
// }
|
||||||
// resources.setHPoint(point);
|
// resources.setHPoint(point);
|
||||||
// }
|
// }
|
||||||
if(resources.getZPoint().getCode()==null){
|
// if(resources.getZPoint().getCode()==null){
|
||||||
resources.setZPoint(null);
|
// resources.setZPoint(null);
|
||||||
}else{
|
// }else{
|
||||||
Point point=pointRepository.findByCode(resources.getZPoint().getCode());
|
// Point point=pointRepository.findByCode(resources.getZPoint().getCode());
|
||||||
if (point == null) {
|
// if (point == null) {
|
||||||
point = pointService.createPoint(resources.getZPoint().getCode(), BaseStatus.HCKW, resources.getRArea());
|
// point = pointService.createPoint(resources.getZPoint().getCode(), BaseStatus.HCKW, resources.getRArea());
|
||||||
}
|
// }
|
||||||
resources.setZPoint(point);
|
// resources.setZPoint(point);
|
||||||
}
|
// }
|
||||||
bomAccountService.update(resources);
|
bomAccountService.update(resources);
|
||||||
bomAccountLogService.copyBomAccount(resources.getId(),"update");
|
bomAccountLogService.copyBomAccount(resources.getId(),"update");
|
||||||
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
return new ResponseEntity<>(HttpStatus.NO_CONTENT);
|
||||||
|
|
|
||||||
|
|
@ -15,6 +15,7 @@
|
||||||
*/
|
*/
|
||||||
package com.youchain.basicdata.rest;
|
package com.youchain.basicdata.rest;
|
||||||
|
|
||||||
|
import cn.hutool.json.JSONUtil;
|
||||||
import cn.hutool.poi.excel.ExcelReader;
|
import cn.hutool.poi.excel.ExcelReader;
|
||||||
import cn.hutool.poi.excel.ExcelUtil;
|
import cn.hutool.poi.excel.ExcelUtil;
|
||||||
import com.alibaba.fastjson.JSON;
|
import com.alibaba.fastjson.JSON;
|
||||||
|
|
@ -25,10 +26,13 @@ import com.youchain.basicdata.domain.Area;
|
||||||
import com.youchain.basicdata.domain.Item;
|
import com.youchain.basicdata.domain.Item;
|
||||||
import com.youchain.basicdata.domain.Point;
|
import com.youchain.basicdata.domain.Point;
|
||||||
import com.youchain.basicdata.repository.ItemRepository;
|
import com.youchain.basicdata.repository.ItemRepository;
|
||||||
|
import com.youchain.basicdata.repository.PointRepository;
|
||||||
import com.youchain.basicdata.service.AreaService;
|
import com.youchain.basicdata.service.AreaService;
|
||||||
import com.youchain.basicdata.service.PointService;
|
import com.youchain.basicdata.service.PointService;
|
||||||
|
import com.youchain.basicdata.service.dto.BomAccountQueryCriteria;
|
||||||
import com.youchain.basicdata.service.dto.PointDto;
|
import com.youchain.basicdata.service.dto.PointDto;
|
||||||
import com.youchain.basicdata.service.dto.PointQueryCriteria;
|
import com.youchain.basicdata.service.dto.PointQueryCriteria;
|
||||||
|
import com.youchain.businessdata.returnJson.*;
|
||||||
import com.youchain.businessdata.service.InventoryService;
|
import com.youchain.businessdata.service.InventoryService;
|
||||||
import com.youchain.businessdata.service.dto.InventoryDto;
|
import com.youchain.businessdata.service.dto.InventoryDto;
|
||||||
import com.youchain.businessdata.service.dto.InventoryQueryCriteria;
|
import com.youchain.businessdata.service.dto.InventoryQueryCriteria;
|
||||||
|
|
@ -36,10 +40,9 @@ import com.youchain.config.FileProperties;
|
||||||
import com.youchain.exception.BadRequestException;
|
import com.youchain.exception.BadRequestException;
|
||||||
import com.youchain.exception.handler.ApiError;
|
import com.youchain.exception.handler.ApiError;
|
||||||
import com.youchain.modules.system.domain.Dept;
|
import com.youchain.modules.system.domain.Dept;
|
||||||
import com.youchain.utils.BaseStatus;
|
import com.youchain.utils.*;
|
||||||
import com.youchain.utils.FileUtil;
|
|
||||||
import com.youchain.utils.UserUtils;
|
|
||||||
import lombok.extern.slf4j.Slf4j;
|
import lombok.extern.slf4j.Slf4j;
|
||||||
|
import net.dreamlu.mica.core.utils.JsonUtil;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import lombok.RequiredArgsConstructor;
|
import lombok.RequiredArgsConstructor;
|
||||||
import org.springframework.http.HttpStatus;
|
import org.springframework.http.HttpStatus;
|
||||||
|
|
@ -52,10 +55,7 @@ import org.springframework.web.multipart.MultipartFile;
|
||||||
|
|
||||||
import java.io.File;
|
import java.io.File;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.util.ArrayList;
|
import java.util.*;
|
||||||
import java.util.List;
|
|
||||||
import java.util.Map;
|
|
||||||
import java.util.Objects;
|
|
||||||
import java.util.stream.Collectors;
|
import java.util.stream.Collectors;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
|
@ -74,12 +74,13 @@ import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
||||||
public class PointController {
|
public class PointController {
|
||||||
|
|
||||||
private final PointService pointService;
|
private final PointService pointService;
|
||||||
|
private final InventoryService inventoryService;
|
||||||
private final AreaService areaService;
|
private final AreaService areaService;
|
||||||
|
|
||||||
private final FileProperties properties;
|
private final FileProperties properties;
|
||||||
private final ItemRepository itemRepository;
|
private final ItemRepository itemRepository;
|
||||||
private final InventoryService inventoryService;
|
private final PointRepository pointRepository;
|
||||||
|
|
||||||
|
|
||||||
@Log("导出数据")
|
@Log("导出数据")
|
||||||
@ApiOperation("导出数据")
|
@ApiOperation("导出数据")
|
||||||
|
|
@ -255,4 +256,34 @@ public class PointController {
|
||||||
pointService.queryPoint(pointCode);
|
pointService.queryPoint(pointCode);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping("/queryPointPrintList")
|
||||||
|
@Log("查询自由货位标签")
|
||||||
|
@ApiOperation("查询自由货位标签")
|
||||||
|
@AnonymousAccess
|
||||||
|
public ResponseEntity<Object> queryPointPrintList(PointQueryCriteria criteria){
|
||||||
|
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
|
||||||
|
redisUtils.del(SecurityUtils.getCurrentUsername()+"_BiaoQian_ZY");
|
||||||
|
List<PointZyPrint> list=pointRepository.queryPrintAll(criteria.getAreaName());
|
||||||
|
redisUtils.set(SecurityUtils.getCurrentUsername()+"_BiaoQian_ZY", JsonUtil.toJson(list));
|
||||||
|
return new ResponseEntity<>(list,HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping("/pointPrintBiaoQianList/{type}")
|
||||||
|
@Log("获取Point中库位标签")
|
||||||
|
@ApiOperation("获取Point中库位标签")
|
||||||
|
@AnonymousAccess
|
||||||
|
public ResponseEntity<Object> pointPrintBiaoQianList(@PathVariable("type") String type){
|
||||||
|
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
|
||||||
|
String json=(String)redisUtils.get(SecurityUtils.getCurrentUsername()+type);
|
||||||
|
log.info(SecurityUtils.getCurrentUsername()+type+"-----"+json);
|
||||||
|
List<PointPrint_BiaoQian_Zy> list= JSONUtil.toList(json, PointPrint_BiaoQian_Zy.class);
|
||||||
|
List<PointPrint_BiaoQian_Zy> list2=new ArrayList<>();
|
||||||
|
for(PointPrint_BiaoQian_Zy zy:list){
|
||||||
|
zy.setEwm(zy.getCode());
|
||||||
|
zy.setCode(zy.getCode().substring(0,3)+"-"+zy.getCode().substring(3));
|
||||||
|
list2.add(zy);
|
||||||
|
}
|
||||||
|
return new ResponseEntity<>( list2,HttpStatus.OK);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -23,6 +23,8 @@ import com.youchain.basicdata.service.dto.ItemDto;
|
||||||
import com.youchain.basicdata.service.dto.PointDto;
|
import com.youchain.basicdata.service.dto.PointDto;
|
||||||
import com.youchain.basicdata.service.dto.PointQueryCriteria;
|
import com.youchain.basicdata.service.dto.PointQueryCriteria;
|
||||||
import com.youchain.basicdata.service.dto.PointSmallDto;
|
import com.youchain.basicdata.service.dto.PointSmallDto;
|
||||||
|
import com.youchain.businessdata.returnJson.BomPrint;
|
||||||
|
import com.youchain.businessdata.returnJson.PointZyPrint;
|
||||||
import org.springframework.data.domain.Pageable;
|
import org.springframework.data.domain.Pageable;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
@ -128,6 +130,7 @@ public interface PointService {
|
||||||
|
|
||||||
|
|
||||||
List<Point> getPoint(String type,String areaCode);
|
List<Point> getPoint(String type,String areaCode);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 得到指定点位
|
* 得到指定点位
|
||||||
* @param code
|
* @param code
|
||||||
|
|
|
||||||
|
|
@ -40,6 +40,12 @@ public class BomAccountDto implements Serializable {
|
||||||
/** 部品品番 */
|
/** 部品品番 */
|
||||||
private ItemDto item;
|
private ItemDto item;
|
||||||
|
|
||||||
|
/** 机型代码 */
|
||||||
|
private String bigItemCode;
|
||||||
|
/** 机型名称 */
|
||||||
|
private String bigItemName;
|
||||||
|
/** 刻印前缀 */
|
||||||
|
private String kyqz;
|
||||||
/** 加工内容 */
|
/** 加工内容 */
|
||||||
private String contents;
|
private String contents;
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -53,8 +53,6 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
List<BomEntity> dataList =new ArrayList<>();
|
List<BomEntity> dataList =new ArrayList<>();
|
||||||
|
|
||||||
for (Map<Integer, Object> map: list ) {
|
for (Map<Integer, Object> map: list ) {
|
||||||
|
|
||||||
|
|
||||||
BomEntity bomAccountImport=new BomEntity();
|
BomEntity bomAccountImport=new BomEntity();
|
||||||
bomAccountImport.setPf(map.get(0) != null ? map.get(0).toString() : "");
|
bomAccountImport.setPf(map.get(0) != null ? map.get(0).toString() : "");
|
||||||
bomAccountImport.setNs(map.get(1) != null ? map.get(1).toString() : "");
|
bomAccountImport.setNs(map.get(1) != null ? map.get(1).toString() : "");
|
||||||
|
|
@ -69,39 +67,53 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
bomAccountImport.setTckw(map.get(10) != null ? map.get(10).toString() : "");
|
bomAccountImport.setTckw(map.get(10) != null ? map.get(10).toString() : "");
|
||||||
bomAccountImport.setDxw(map.get(11) != null ? map.get(11).toString() : "");
|
bomAccountImport.setDxw(map.get(11) != null ? map.get(11).toString() : "");
|
||||||
bomAccountImport.setSb(map.get(12) != null ? map.get(12).toString() : "");
|
bomAccountImport.setSb(map.get(12) != null ? map.get(12).toString() : "");
|
||||||
|
if(bomAccountImport.getZcfq().equals("制造库位")) {
|
||||||
|
for (int ccc=0;ccc<50;ccc++){
|
||||||
|
BomEntity bomAccountImport_new=new BomEntity();
|
||||||
|
int index=ccc*4+12;
|
||||||
|
bomAccountImport_new.setJx((map.get((index+1)) != null ? map.get((index+1)).toString() : ""));
|
||||||
|
bomAccountImport_new.setJxdm((map.get((index+2)) != null ? map.get((index+2)).toString() : ""));
|
||||||
|
bomAccountImport_new.setKyh((map.get((index+3)) != null ? map.get((index+3)).toString() : ""));
|
||||||
|
bomAccountImport_new.setTyl((map.get((index+4)) != null ? map.get((index+4)).toString() : ""));
|
||||||
|
|
||||||
|
log.error(bomAccountImport_new.getJx()+"---"+bomAccountImport_new.getTyl());
|
||||||
|
|
||||||
for (int ccc=0;ccc<50;ccc++){
|
bomAccountImport_new.setPf(bomAccountImport.getPf());
|
||||||
BomEntity bomAccountImport_new=new BomEntity();
|
bomAccountImport_new.setNs(bomAccountImport.getNs());
|
||||||
int index=ccc*4+12;
|
bomAccountImport_new.setPm(bomAccountImport.getPm());
|
||||||
bomAccountImport_new.setJx((map.get((index+1)) != null ? map.get((index+1)).toString() : ""));
|
bomAccountImport_new.setGys(bomAccountImport.getGys());
|
||||||
bomAccountImport_new.setJxdm((map.get((index+2)) != null ? map.get((index+2)).toString() : ""));
|
bomAccountImport_new.setAc(bomAccountImport.getAc());
|
||||||
bomAccountImport_new.setKyh((map.get((index+3)) != null ? map.get((index+3)).toString() : ""));
|
bomAccountImport_new.setJgnr(bomAccountImport.getJgnr());
|
||||||
bomAccountImport_new.setTyl((map.get((index+4)) != null ? map.get((index+4)).toString() : ""));
|
bomAccountImport_new.setZcfq(bomAccountImport.getZcfq());
|
||||||
|
bomAccountImport_new.setHw(bomAccountImport.getHw());
|
||||||
log.error(bomAccountImport_new.getJx()+"---"+bomAccountImport_new.getTyl());
|
bomAccountImport_new.setXz(bomAccountImport.getXz());
|
||||||
|
bomAccountImport_new.setSrs(bomAccountImport.getSrs());
|
||||||
bomAccountImport_new.setPf(bomAccountImport.getPf());
|
bomAccountImport_new.setTckw(bomAccountImport.getTckw());
|
||||||
bomAccountImport_new.setNs(bomAccountImport.getNs());
|
bomAccountImport_new.setDxw(bomAccountImport.getDxw());
|
||||||
bomAccountImport_new.setPm(bomAccountImport.getPm());
|
bomAccountImport_new.setSb(bomAccountImport.getSb());
|
||||||
bomAccountImport_new.setGys(bomAccountImport.getGys());
|
if (bomAccountImport_new.getTyl().length() > 0) {
|
||||||
bomAccountImport_new.setAc(bomAccountImport.getAc());
|
dataList.add(bomAccountImport_new);
|
||||||
bomAccountImport_new.setJgnr(bomAccountImport.getJgnr());
|
}
|
||||||
bomAccountImport_new.setZcfq(bomAccountImport.getZcfq());
|
|
||||||
bomAccountImport_new.setHw(bomAccountImport.getHw());
|
|
||||||
bomAccountImport_new.setXz(bomAccountImport.getXz());
|
|
||||||
bomAccountImport_new.setSrs(bomAccountImport.getSrs());
|
|
||||||
bomAccountImport_new.setTckw(bomAccountImport.getTckw());
|
|
||||||
bomAccountImport_new.setDxw(bomAccountImport.getDxw());
|
|
||||||
bomAccountImport_new.setSb(bomAccountImport.getSb());
|
|
||||||
|
|
||||||
if(bomAccountImport_new.getTyl().length()>0){
|
|
||||||
dataList.add(bomAccountImport_new);
|
|
||||||
}
|
}
|
||||||
|
}else{
|
||||||
|
bomAccountImport.setJxdm(BaseStatus.DEFAULT_CG_BIG);
|
||||||
|
bomAccountImport.setJx(BaseStatus.DEFAULT_CG_BIG);
|
||||||
|
bomAccountImport.setTyl("0");
|
||||||
|
dataList.add(bomAccountImport);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
log.error(JSONUtil.toJsonStr(dataList));
|
log.error(JSONUtil.toJsonStr(dataList));
|
||||||
|
|
||||||
|
Map<String, BomEntity> existBomAccountMap =new HashMap<>();
|
||||||
|
for(BomEntity ba:dataList){
|
||||||
|
String key=ba.pf+"]"+ba.jxdm+"]"+ba.ns+"]"+ ba.hw+"]"+ba.sb;
|
||||||
|
if(existBomAccountMap.containsKey(key)){
|
||||||
|
log.info(JSONUtil.toJsonStr(ba));
|
||||||
|
}
|
||||||
|
existBomAccountMap.put(key,ba);
|
||||||
|
}
|
||||||
|
|
||||||
|
dataList = new ArrayList<>(existBomAccountMap.values());
|
||||||
// List<BomAccountImport> dataList = FastExcelUtil.readExcelData(file, BomAccountImport.class, 0, 1);
|
// List<BomAccountImport> dataList = FastExcelUtil.readExcelData(file, BomAccountImport.class, 0, 1);
|
||||||
|
|
||||||
//批量导入
|
//批量导入
|
||||||
|
|
@ -118,6 +130,8 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
// log.info("处理批量导入,数据条数: {}", dataList.size());
|
// log.info("处理批量导入,数据条数: {}", dataList.size());
|
||||||
Map<String,ItemEntity> itemEntitys=new HashMap<>();
|
Map<String,ItemEntity> itemEntitys=new HashMap<>();
|
||||||
|
|
||||||
|
Map<String,BigItemEntity> biEntitys=new HashMap<>();
|
||||||
|
|
||||||
for (BomEntity data : bomEntitys) {
|
for (BomEntity data : bomEntitys) {
|
||||||
ItemEntity it=new ItemEntity();
|
ItemEntity it=new ItemEntity();
|
||||||
it.setAc(data.getAc());
|
it.setAc(data.getAc());
|
||||||
|
|
@ -127,15 +141,20 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
it.setSrs(data.getSrs()+"");
|
it.setSrs(data.getSrs()+"");
|
||||||
itemEntitys.put(data.getPf(),it);
|
itemEntitys.put(data.getPf(),it);
|
||||||
|
|
||||||
|
BigItemEntity be=new BigItemEntity();
|
||||||
|
be.setCode(data.getJxdm());
|
||||||
|
be.setName(data.jx);
|
||||||
|
biEntitys.put(data.getJxdm(),be);
|
||||||
}
|
}
|
||||||
//验证品番
|
//验证品番
|
||||||
Map<String, Item> existItemMap = validateItem(itemEntitys);
|
Map<String, Item> existItemMap = validateItem(itemEntitys);
|
||||||
//获取文件中所有的完成品
|
//获取文件中所有的完成品
|
||||||
List<String> bigItemNames = bomEntitys.stream().map(BomEntity::getJx).collect(Collectors.toList());
|
// List<String> bigItemNames = bomEntitys.stream().map(BomEntity::getJx).collect(Collectors.toList());
|
||||||
bigItemNames = bigItemNames.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
// bigItemNames = bigItemNames.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
||||||
|
// //验证完成品品番
|
||||||
|
// Map<String, BigItem> existBigItemMap = validateBigItem(bigItemNames);
|
||||||
//验证完成品品番
|
//验证完成品品番
|
||||||
Map<String, BigItem> existBigItemMap = validateBigItem(bigItemNames);
|
Map<String, BigItem> existBigItemMap = validateBigItem(biEntitys);
|
||||||
//获取文件中所有的库位
|
//获取文件中所有的库位
|
||||||
List<String> hwCodes = bomEntitys.stream().map(BomEntity::getHw).collect(Collectors.toList());
|
List<String> hwCodes = bomEntitys.stream().map(BomEntity::getHw).collect(Collectors.toList());
|
||||||
hwCodes = hwCodes.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
hwCodes = hwCodes.stream().filter(Objects::nonNull).distinct().collect(Collectors.toList());
|
||||||
|
|
@ -144,21 +163,28 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
List<BomAccount> createBomList = new ArrayList<>();//批量新增BomAccount
|
List<BomAccount> createBomList = new ArrayList<>();//批量新增BomAccount
|
||||||
List<BomAccount> updateBomList = new ArrayList<>();//批量修改BomAccount
|
List<BomAccount> updateBomList = new ArrayList<>();//批量修改BomAccount
|
||||||
// Area outArea=areaRepository.getByCode(BaseStatus.DEFAULT_AREA);
|
// Area outArea=areaRepository.getByCode(BaseStatus.DEFAULT_AREA);
|
||||||
|
log.info("开始校验");
|
||||||
|
int i=0;
|
||||||
|
List<BomAccount> bomAccounts=bomAccountRepository.findAll();
|
||||||
|
Map<String, BomAccount> existBomAccountMap =new HashMap<>();
|
||||||
|
for(BomAccount ba:bomAccounts){
|
||||||
|
existBomAccountMap.put(ba.getBigItem().getId()+"]"+ba.getItem().getId()+"]"+ba.getNs()+"]"+ ba.getZPoint().getId()+"]"+ba.getBonded(),ba);
|
||||||
|
}
|
||||||
for (BomEntity entity : bomEntitys) {
|
for (BomEntity entity : bomEntitys) {
|
||||||
|
// log.info("开始校验"+i+++"行");
|
||||||
//品番
|
//品番
|
||||||
Item item = existItemMap.get(entity.getPf());
|
Item item = existItemMap.get(entity.getPf());
|
||||||
//货位
|
//货位
|
||||||
Point point=existPointMap.get(entity.getHw());
|
Point point=existPointMap.get(entity.getHw());
|
||||||
//完成品品番
|
//完成品品番
|
||||||
BigItem bigItem=existBigItemMap.get(entity.getJx());
|
BigItem bigItem=existBigItemMap.get(entity.getJxdm());
|
||||||
|
BomAccount existBom =existBomAccountMap.get(bigItem.getId()+"]"+item.getId()+"]"+entity.ns+"]"+ point.getId()+"]"+entity.sb);
|
||||||
|
if(existBom!=null){
|
||||||
BomAccount existBom = bomAccountRepository.findByQnique(bigItem.getId(), item.getId(),entity.ns, point.getId());
|
|
||||||
if(existBom==null){
|
|
||||||
existBom=new BomAccount();
|
|
||||||
BomAccount ba=this.BaEntity(existBom,entity,bigItem,item,point,Integer.parseInt(entity.tyl),null);
|
BomAccount ba=this.BaEntity(existBom,entity,bigItem,item,point,Integer.parseInt(entity.tyl),null);
|
||||||
|
ba.setId(existBom.getId());
|
||||||
updateBomList.add(ba);
|
updateBomList.add(ba);
|
||||||
}else {
|
}else {
|
||||||
|
existBom=new BomAccount();
|
||||||
BomAccount ba = this.BaEntity(existBom, entity, bigItem,item, point, Integer.parseInt(entity.tyl),null);
|
BomAccount ba = this.BaEntity(existBom, entity, bigItem,item, point, Integer.parseInt(entity.tyl),null);
|
||||||
createBomList.add(ba);
|
createBomList.add(ba);
|
||||||
}
|
}
|
||||||
|
|
@ -169,12 +195,13 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
bomAccountService.update(bomAccount);
|
bomAccountService.update(bomAccount);
|
||||||
bomAccountLogService.copyBomAccount(bomAccount.getId(), "import_update");
|
bomAccountLogService.copyBomAccount(bomAccount.getId(), "import_update");
|
||||||
}*/
|
}*/
|
||||||
if(CollectionUtils.isNotEmpty(createBomList)){
|
}
|
||||||
bomAccountRepository.saveAll(createBomList);
|
log.info("校验完成,开始批量保存拉。。。。新增"+createBomList.size()+"修改"+updateBomList.size());
|
||||||
}
|
if(CollectionUtils.isNotEmpty(createBomList)){
|
||||||
if(CollectionUtils.isNotEmpty(updateBomList)){
|
bomAccountRepository.saveAll(createBomList);
|
||||||
bomAccountRepository.saveAll(updateBomList);
|
}
|
||||||
}
|
if(CollectionUtils.isNotEmpty(updateBomList)){
|
||||||
|
bomAccountRepository.saveAll(updateBomList);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -212,6 +239,43 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
return totalMap;
|
return totalMap;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//验证完成品番
|
||||||
|
private Map<String,BigItem> validateBigItem(Map<String,BigItemEntity> entitys) {
|
||||||
|
List<String> allCodes = entitys.values().stream()
|
||||||
|
.map(BigItemEntity::getCode)
|
||||||
|
.collect(Collectors.toList());
|
||||||
|
Map<String, BigItem> existMap = bigItemService.queryByBigItemCodesToMap(allCodes);
|
||||||
|
Map<String, BigItem> createMap = new HashMap<>();
|
||||||
|
List<String> existCodes = new ArrayList<>(existMap.keySet());
|
||||||
|
// 获取两个集合的非交集说明品番不存在或失效,直接提示
|
||||||
|
List<String> difference = SmartStringUtil.getDifference(allCodes, existCodes);
|
||||||
|
List<BigItem> createEntitys=new ArrayList<>();
|
||||||
|
for(String code:difference){
|
||||||
|
BigItemEntity bi=entitys.get(code);
|
||||||
|
BigItem entity=new BigItem();
|
||||||
|
entity.setCode(code);
|
||||||
|
entity.setName(bi.getName());
|
||||||
|
entity.setDeptId(UserUtils.getDept().getId());
|
||||||
|
entity.setModels("无");
|
||||||
|
entity.setMasterName(bi.getName());
|
||||||
|
entity.setEnabled(true);
|
||||||
|
entity.setDeptId(UserUtils.getDept().getId());
|
||||||
|
createEntitys.add(entity);
|
||||||
|
}
|
||||||
|
if(CollectionUtils.isNotEmpty(createEntitys)){
|
||||||
|
List<BigItem> createEntityList= bigItemRepository.saveAll(createEntitys);
|
||||||
|
for (BigItem it:createEntityList){
|
||||||
|
createMap.put(it.getCode(),it);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
Map<String, BigItem> totalMap = new HashMap<>();
|
||||||
|
if (existMap != null) {
|
||||||
|
totalMap.putAll(existMap);
|
||||||
|
}
|
||||||
|
totalMap.putAll(createMap);
|
||||||
|
return totalMap;
|
||||||
|
}
|
||||||
|
|
||||||
//验证完成品品番
|
//验证完成品品番
|
||||||
private Map<String,BigItem> validateBigItem(List<String> allCodes) {
|
private Map<String,BigItem> validateBigItem(List<String> allCodes) {
|
||||||
log.info(allCodes.toString());
|
log.info(allCodes.toString());
|
||||||
|
|
@ -305,6 +369,7 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
@Data
|
@Data
|
||||||
public class BigItemEntity{
|
public class BigItemEntity{
|
||||||
private String code;
|
private String code;
|
||||||
|
private String name;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Data
|
@Data
|
||||||
|
|
@ -351,6 +416,9 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
|
||||||
ba.setDept(UserUtils.getDept());
|
ba.setDept(UserUtils.getDept());
|
||||||
ba.setZcfq(data.getZcfq());
|
ba.setZcfq(data.getZcfq());
|
||||||
ba.setTckw(data.getTckw());
|
ba.setTckw(data.getTckw());
|
||||||
|
ba.setBigItemName(data.getJx());
|
||||||
|
ba.setBigItemCode(data.getJxdm());
|
||||||
|
ba.setKyQz(data.getKyh());
|
||||||
return ba;
|
return ba;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -64,6 +64,10 @@ public class PickDetail extends BaseEntity implements Serializable {
|
||||||
@ApiModelProperty(value = "行号")
|
@ApiModelProperty(value = "行号")
|
||||||
private Long lineNo;
|
private Long lineNo;
|
||||||
|
|
||||||
|
@Column(name = "`type`")
|
||||||
|
@ApiModelProperty(value = "指示类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
@Column(name = "`po`")
|
@Column(name = "`po`")
|
||||||
@ApiModelProperty(value = "po订单号")
|
@ApiModelProperty(value = "po订单号")
|
||||||
private String po;
|
private String po;
|
||||||
|
|
|
||||||
|
|
@ -48,6 +48,10 @@ public class XppRecord extends BaseEntity implements Serializable {
|
||||||
@ApiModelProperty(value = "ID")
|
@ApiModelProperty(value = "ID")
|
||||||
private Long id;
|
private Long id;
|
||||||
|
|
||||||
|
@Column(name = "`type`")
|
||||||
|
@ApiModelProperty(value = "采集类型")
|
||||||
|
private String type;
|
||||||
|
|
||||||
@Column(name = "`ewm`")
|
@Column(name = "`ewm`")
|
||||||
@ApiModelProperty(value = "二维码")
|
@ApiModelProperty(value = "二维码")
|
||||||
private String ewm;
|
private String ewm;
|
||||||
|
|
|
||||||
|
|
@ -263,8 +263,16 @@ public class AsnDetailController {
|
||||||
RRkXpp map = xppRecordService.xppAnalysis(s.getEwm());
|
RRkXpp map = xppRecordService.xppAnalysis(s.getEwm());
|
||||||
return new ResponseEntity<>(map, HttpStatus.OK);
|
return new ResponseEntity<>(map, HttpStatus.OK);
|
||||||
}
|
}
|
||||||
if (seq==2) {
|
if (seq==2||seq==3) {//库存上架
|
||||||
String pointCode = s.getPointCode();
|
String pointCode = s.getPointCode();
|
||||||
|
String bomItemCode=null;
|
||||||
|
String bonded=null;
|
||||||
|
if(seq==3){
|
||||||
|
String[] str=pointCode.split("]");
|
||||||
|
pointCode=str[4];
|
||||||
|
bomItemCode=str[1];
|
||||||
|
bonded=str[3];
|
||||||
|
}
|
||||||
if (pointCode == null||pointCode.equals("")) {
|
if (pointCode == null||pointCode.equals("")) {
|
||||||
return new ResponseEntity<>( "库位不能为空", BAD_REQUEST);
|
return new ResponseEntity<>( "库位不能为空", BAD_REQUEST);
|
||||||
}
|
}
|
||||||
|
|
@ -274,10 +282,13 @@ public class AsnDetailController {
|
||||||
}
|
}
|
||||||
Area area=point.getArea();
|
Area area=point.getArea();
|
||||||
for(String ewm:s.getEwms()){
|
for(String ewm:s.getEwms()){
|
||||||
XppRecord xppRecord = xppRecordService.saveXppRecord(ewm);
|
if(seq==2) {//收货上架
|
||||||
AsnDetail asnDetail = xppRecordService.addAsnDetail(xppRecord);
|
XppRecord xppRecord = xppRecordService.saveXppRecord(ewm, point.getArea(), "1001");
|
||||||
asnDetailService.putawayInv(asnDetail.getId(),area.getId(),point.getId(),xppRecord.getNrs(),xppRecord.getEwm());
|
AsnDetail asnDetail = xppRecordService.addAsnDetail(xppRecord);
|
||||||
|
asnDetailService.putawayInv(asnDetail.getId(), area.getId(), point.getId(), xppRecord.getNrs(), xppRecord.getEwm());
|
||||||
|
}else if(seq==3){//制造投料
|
||||||
|
xppRecordService.xppPutaway(ewm,bonded,bomItemCode,point);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return new ResponseEntity<>("操作成功", HttpStatus.OK);
|
return new ResponseEntity<>("操作成功", HttpStatus.OK);
|
||||||
|
|
@ -289,11 +300,21 @@ public class AsnDetailController {
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public ResponseEntity<Object> collectPutAway(@RequestBody HashMap rk) {
|
public ResponseEntity<Object> collectPutAway(@RequestBody HashMap rk) {
|
||||||
XppRecord xppRecord = xppRecordService.saveXppRecord(rk.get("ewm").toString());
|
|
||||||
Long pointId=Long.parseLong(rk.get("pointId").toString());
|
Long pointId=Long.parseLong(rk.get("pointId").toString());
|
||||||
AsnDetail asnDetail = xppRecordService.addAsnDetail(xppRecord);
|
String type=rk.get("type").toString();
|
||||||
Point point=pointService.findEntityById(pointId);
|
Point point=pointService.findEntityById(pointId);
|
||||||
asnDetailService.putawayInv(asnDetail.getId(),point.getArea().getId(),pointId,xppRecord.getNrs(),xppRecord.getEwm());
|
String ewm=rk.get("ewm").toString();
|
||||||
|
if(type.equals("1001")){//收货上架
|
||||||
|
XppRecord xppRecord = xppRecordService.saveXppRecord(rk.get("ewm").toString(),point.getArea(),type);
|
||||||
|
AsnDetail asnDetail = xppRecordService.addAsnDetail(xppRecord);
|
||||||
|
asnDetailService.putawayInv(asnDetail.getId(),point.getArea().getId(),pointId,xppRecord.getNrs(),xppRecord.getEwm());
|
||||||
|
}else if(type.equals("2001")){//制造上架
|
||||||
|
//查找线边库存是否存在,插入
|
||||||
|
Long bomId=Long.parseLong(rk.get("bomId").toString());
|
||||||
|
BomAccount bom=bomAccountRepository.getById(bomId);
|
||||||
|
String bomItemCode=bom.getItem().getCode();
|
||||||
|
xppRecordService.xppPutaway(ewm,bom.getBonded(),bomItemCode,point);
|
||||||
|
}
|
||||||
return new ResponseEntity<>("操作成功", HttpStatus.OK);
|
return new ResponseEntity<>("操作成功", HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -110,13 +110,22 @@ public class PickDetailController {
|
||||||
return new ResponseEntity<>(pickDetailService.queryAll(criteria, pageable), HttpStatus.OK);
|
return new ResponseEntity<>(pickDetailService.queryAll(criteria, pageable), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/queryPickDetailZzjl")
|
||||||
|
@Log("查询pickDetail")
|
||||||
|
@ApiOperation("查询pickDetail")
|
||||||
|
@AnonymousAccess
|
||||||
|
public ResponseEntity<Object> queryPickDetailZzjl(PickDetailQueryCriteria criteria, Pageable pageable) {
|
||||||
|
criteria.setType("ZCZS");
|
||||||
|
return new ResponseEntity<>(pickDetailService.queryAll(criteria, pageable), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/queryPickDetailZsc")
|
@GetMapping(value = "/queryPickDetailZsc")
|
||||||
@Log("查询指示残")
|
@Log("查询制造叫料数据")
|
||||||
@ApiOperation("查询指示残")
|
@ApiOperation("查询制造叫料数据")
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
public ResponseEntity<Object> queryPickDetailZsc(PickDetailQueryCriteria criteria, Pageable pageable) {
|
public ResponseEntity<Object> queryPickDetailZsc(PickDetailQueryCriteria criteria, Pageable pageable) {
|
||||||
criteria.setPageType("ZSC");
|
criteria.setType(BaseStatus.ZZJL);
|
||||||
return new ResponseEntity<>(pickDetailService.queryPickDetailAll(criteria, pageable), HttpStatus.OK);
|
return new ResponseEntity<>(pickDetailService.queryAll(criteria, pageable), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@GetMapping(value = "/queryPickDetailAll")
|
@GetMapping(value = "/queryPickDetailAll")
|
||||||
|
|
@ -190,13 +199,13 @@ public class PickDetailController {
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
@PostMapping("/cxjl")
|
@PostMapping("/zzjl")
|
||||||
@Log("产线叫料")
|
@Log("制造叫料")
|
||||||
@ApiOperation("产线叫料")
|
@ApiOperation("制造叫料")
|
||||||
@PreAuthorize("@el.check('super:man')")
|
@PreAuthorize("@el.check('super:man')")
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
@DuplicateSubmission(5)
|
@DuplicateSubmission(5)
|
||||||
public ResponseEntity<Object> cxjl(@RequestBody CxjlDto cxjldto) throws Exception {
|
public ResponseEntity<Object> zzjl(@RequestBody CxjlDto cxjldto) throws Exception {
|
||||||
pickDetailService.cxjlCreate(cxjldto);
|
pickDetailService.cxjlCreate(cxjldto);
|
||||||
return new ResponseEntity<>(HttpStatus.OK);
|
return new ResponseEntity<>(HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
@ -206,15 +215,13 @@ public class PickDetailController {
|
||||||
@ApiOperation("拣货分配审核")
|
@ApiOperation("拣货分配审核")
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
public synchronized ResponseEntity<Object> allocatePickDetail(@RequestBody Long[] ids) throws Exception {
|
public synchronized ResponseEntity<Object> allocatePickDetail(@RequestBody Long[] ids) throws Exception {
|
||||||
List<Long> picktickIds = Arrays.asList(ids);
|
List<Long> pickDetailIds = Arrays.asList(ids);
|
||||||
Collections.sort(picktickIds);//升序排序
|
Collections.sort(pickDetailIds);//升序排序
|
||||||
if (picktickIds.size() > 0) {
|
if (pickDetailIds.size() > 0) {
|
||||||
try {
|
try {
|
||||||
for (Long picktickId : picktickIds) {
|
for (Long pickDetailId : pickDetailIds) {
|
||||||
List<PickDetail> pickDetailList = pickDetailService.queryPickDetailList(picktickId);
|
PickDetail pickDetail=pickDetailRepository.getById(pickDetailId);
|
||||||
for (PickDetail pd : pickDetailList) {
|
pickDetailService.allocate(pickDetail.getId(), pickDetail.getOrderQty() - pickDetail.getAllocatedQty(),pickDetail.getPo(),BaseStatus.ZZJL);
|
||||||
pickDetailService.allocate(pd.getId(), pd.getOrderQty() - pd.getAllocatedQty(),pd.getPo());
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
} catch (Exception e) {
|
} catch (Exception e) {
|
||||||
return new ResponseEntity(ApiResult.fail(BAD_REQUEST.value(), e.getMessage(), ""), HttpStatus.BAD_REQUEST);
|
return new ResponseEntity(ApiResult.fail(BAD_REQUEST.value(), e.getMessage(), ""), HttpStatus.BAD_REQUEST);
|
||||||
|
|
@ -262,14 +269,14 @@ public class PickDetailController {
|
||||||
throw new BadRequestException(sbIt.getCode()+"找不到对应的Bom工位清单"+sbQty);
|
throw new BadRequestException(sbIt.getCode()+"找不到对应的Bom工位清单"+sbQty);
|
||||||
}
|
}
|
||||||
BomAccount bomAccount=bomList.get(0);
|
BomAccount bomAccount=bomList.get(0);
|
||||||
PickDetail newD= pickDetailService.createPickDetail(pt,sbIt,oldD.getPo(),sbQty,oldD.getSupplier());
|
PickDetail newD= pickDetailService.createPickDetail(pt,sbIt,oldD.getPo(),sbQty,oldD.getSupplier(),BaseStatus.ZCCK);
|
||||||
newD.setRemark("设变");
|
newD.setRemark("设变");
|
||||||
newD.setSourceId(oldD.getId());
|
newD.setSourceId(oldD.getId());
|
||||||
newD.setBomId(bomAccount.getId());
|
newD.setBomId(bomAccount.getId());
|
||||||
newD.setAc(bomAccount.getAc());
|
newD.setAc(bomAccount.getAc());
|
||||||
newD.setSupplier(bomAccount.getSupplier());
|
newD.setSupplier(bomAccount.getSupplier());
|
||||||
newD.setPoint(bomAccount.getZPoint());
|
newD.setPoint(bomAccount.getZPoint());
|
||||||
pickDetailService.allocate(newD.getId(), newD.getOrderQty() - newD.getAllocatedQty(),oldD.getPo());
|
pickDetailService.allocate(newD.getId(), newD.getOrderQty() - newD.getAllocatedQty(),oldD.getPo(),BaseStatus.ZCCK);
|
||||||
oldD.setOrderQty(oldD.getOrderQty()-sbQty);
|
oldD.setOrderQty(oldD.getOrderQty()-sbQty);
|
||||||
oldD.setSourceId(newD.getId());
|
oldD.setSourceId(newD.getId());
|
||||||
pickDetailService.update(oldD);
|
pickDetailService.update(oldD);
|
||||||
|
|
@ -398,7 +405,7 @@ public class PickDetailController {
|
||||||
for (Object[] obj : objs) {
|
for (Object[] obj : objs) {
|
||||||
PickDetail oldDetail = pickDetailRepository.getById(Long.parseLong(obj[0].toString()));
|
PickDetail oldDetail = pickDetailRepository.getById(Long.parseLong(obj[0].toString()));
|
||||||
double orderQty = oldDetail.getOrderQty() - oldDetail.getAllocatedQty() - oldDetail.getBcQty();
|
double orderQty = oldDetail.getOrderQty() - oldDetail.getAllocatedQty() - oldDetail.getBcQty();
|
||||||
PickDetail pickDetail = pickDetailService.createPickDetail(pickTicket, oldDetail.getItem(), null, orderQty, oldDetail.getSupplier());
|
PickDetail pickDetail = pickDetailService.createPickDetail(pickTicket, oldDetail.getItem(), null, orderQty, oldDetail.getSupplier(),BaseStatus.ZCCK);
|
||||||
pickDetail.setPoint(oldDetail.getPoint());
|
pickDetail.setPoint(oldDetail.getPoint());
|
||||||
pickDetail.setPo(oldDetail.getPo());
|
pickDetail.setPo(oldDetail.getPo());
|
||||||
pickDetail.setPropC3(oldDetail.getPropC3());
|
pickDetail.setPropC3(oldDetail.getPropC3());
|
||||||
|
|
@ -410,7 +417,7 @@ public class PickDetailController {
|
||||||
pickDetail.setArea(oldDetail.getArea());
|
pickDetail.setArea(oldDetail.getArea());
|
||||||
pickDetail.setShArea(oldDetail.getShArea());
|
pickDetail.setShArea(oldDetail.getShArea());
|
||||||
pickDetailService.update(pickDetail);
|
pickDetailService.update(pickDetail);
|
||||||
pickDetailService.allocate(pickDetail.getId(), pickDetail.getOrderQty(),pickDetail.getPo());
|
pickDetailService.allocate(pickDetail.getId(), pickDetail.getOrderQty(),pickDetail.getPo(),BaseStatus.ZCCK);
|
||||||
double bcQty = pickDetail.getAllocatedQty();
|
double bcQty = pickDetail.getAllocatedQty();
|
||||||
//将出单数写入到订单数
|
//将出单数写入到订单数
|
||||||
pickDetail.setOrderQty(bcQty);
|
pickDetail.setOrderQty(bcQty);
|
||||||
|
|
|
||||||
|
|
@ -219,10 +219,10 @@ public class PickTicketController {
|
||||||
double orderQty=0;
|
double orderQty=0;
|
||||||
//生成出库明细
|
//生成出库明细
|
||||||
for (Inventory inv:invs){
|
for (Inventory inv:invs){
|
||||||
PickDetail detail=pickDetailService.createPickDetail(pickTicket,inv.getItemKey().getItem(), stockCode,inv.getQuantity(),null);
|
PickDetail detail=pickDetailService.createPickDetail(pickTicket,inv.getItemKey().getItem(), stockCode,inv.getQuantity(),null,BaseStatus.ZCCK);
|
||||||
orderQty+=detail.getOrderQty();
|
orderQty+=detail.getOrderQty();
|
||||||
//分配
|
//分配
|
||||||
pickDetailService.allocate(detail.getId(), detail.getOrderQty(),stockCode);
|
pickDetailService.allocate(detail.getId(), detail.getOrderQty(),stockCode,BaseStatus.ZCCK);
|
||||||
}
|
}
|
||||||
pickTicket.setOrderQuantity(orderQty);
|
pickTicket.setOrderQuantity(orderQty);
|
||||||
pickTicketService.update(pickTicket);
|
pickTicketService.update(pickTicket);
|
||||||
|
|
|
||||||
|
|
@ -105,6 +105,7 @@ public class PlanPickDetailController {
|
||||||
return new ResponseEntity<>(planPickDetailService.queryAll(criteria, pageable), HttpStatus.OK);
|
return new ResponseEntity<>(planPickDetailService.queryAll(criteria, pageable), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@GetMapping("/getAllCode")
|
@GetMapping("/getAllCode")
|
||||||
@Log("获取全部单号做下拉")
|
@Log("获取全部单号做下拉")
|
||||||
@ApiOperation("获取全部单号做下拉")
|
@ApiOperation("获取全部单号做下拉")
|
||||||
|
|
|
||||||
|
|
@ -112,6 +112,16 @@ public class XppRecordController {
|
||||||
@ApiOperation("查询xppRecord")
|
@ApiOperation("查询xppRecord")
|
||||||
@AnonymousAccess
|
@AnonymousAccess
|
||||||
public ResponseEntity<Object> queryXppRecord(XppRecordQueryCriteria criteria, Pageable pageable) {
|
public ResponseEntity<Object> queryXppRecord(XppRecordQueryCriteria criteria, Pageable pageable) {
|
||||||
|
criteria.setType("1001");
|
||||||
|
return new ResponseEntity<>(xppRecordService.queryAll(criteria, pageable), HttpStatus.OK);
|
||||||
|
}
|
||||||
|
|
||||||
|
@GetMapping(value = "/queryXppRecordZztl")
|
||||||
|
@Log("查询xppRecord")
|
||||||
|
@ApiOperation("查询xppRecord")
|
||||||
|
@AnonymousAccess
|
||||||
|
public ResponseEntity<Object> queryXppRecordZztl(XppRecordQueryCriteria criteria, Pageable pageable) {
|
||||||
|
criteria.setType("2001");
|
||||||
return new ResponseEntity<>(xppRecordService.queryAll(criteria, pageable), HttpStatus.OK);
|
return new ResponseEntity<>(xppRecordService.queryAll(criteria, pageable), HttpStatus.OK);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -190,7 +200,7 @@ public class XppRecordController {
|
||||||
inventoryLogService.storeInventoryLog(BizStatus.RETENTION_OUT, BizStatus.REDUCE, "现品票留样", area, xppRecord.getItemKey(), null, null, null, null,
|
inventoryLogService.storeInventoryLog(BizStatus.RETENTION_OUT, BizStatus.REDUCE, "现品票留样", area, xppRecord.getItemKey(), null, null, null, null,
|
||||||
0d, xppRecord.getNrs() + 0d, null, xppRecord.getEwm(), BizStatus.RETENTION_OUT, xppRecord.getId(), null, "现品票留样");
|
0d, xppRecord.getNrs() + 0d, null, xppRecord.getEwm(), BizStatus.RETENTION_OUT, xppRecord.getId(), null, "现品票留样");
|
||||||
|
|
||||||
PickDetail detail = pickDetailService.createPickDetail(pt, xppRecord.getItem(), xppRecord.getDdbh(), xppRecord.getNrs() + 0d, xppRecord.getRelaSupplier());
|
PickDetail detail = pickDetailService.createPickDetail(pt, xppRecord.getItem(), xppRecord.getDdbh(), xppRecord.getNrs() + 0d, xppRecord.getRelaSupplier(),BaseStatus.LYCK);
|
||||||
detail.setRemark(xppRecord.getEwm());
|
detail.setRemark(xppRecord.getEwm());
|
||||||
pickDetailService.update(detail);
|
pickDetailService.update(detail);
|
||||||
pt.setOrderQuantity(pt.getOrderQuantity() + detail.getOrderQty());
|
pt.setOrderQuantity(pt.getOrderQuantity() + detail.getOrderQty());
|
||||||
|
|
@ -581,7 +591,7 @@ public class XppRecordController {
|
||||||
inventoryLogService.storeInventoryLog(BizStatus.RETENTION_OUT, BizStatus.REDUCE, "现品票留样", area, xppRecord.getItemKey(), null, null, null, null,
|
inventoryLogService.storeInventoryLog(BizStatus.RETENTION_OUT, BizStatus.REDUCE, "现品票留样", area, xppRecord.getItemKey(), null, null, null, null,
|
||||||
0d, xppRecord.getNrs() + 0d, null, xppRecord.getEwm(), BizStatus.RETENTION_OUT, xppRecord.getId(), null, "现品票留样");
|
0d, xppRecord.getNrs() + 0d, null, xppRecord.getEwm(), BizStatus.RETENTION_OUT, xppRecord.getId(), null, "现品票留样");
|
||||||
}
|
}
|
||||||
PickDetail detail = pickDetailService.createPickDetail(pt, xppRecord.getItem(), xppRecord.getDdbh(), xppRecord.getNrs() + 0d, xppRecord.getRelaSupplier());
|
PickDetail detail = pickDetailService.createPickDetail(pt, xppRecord.getItem(), xppRecord.getDdbh(), xppRecord.getNrs() + 0d, xppRecord.getRelaSupplier(),BaseStatus.LYCK);
|
||||||
detail.setRemark(xppRecord.getEwm());
|
detail.setRemark(xppRecord.getEwm());
|
||||||
pickDetailService.update(detail);
|
pickDetailService.update(detail);
|
||||||
pt.setOrderQuantity(pt.getOrderQuantity() + detail.getOrderQty());
|
pt.setOrderQuantity(pt.getOrderQuantity() + detail.getOrderQty());
|
||||||
|
|
|
||||||
|
|
@ -13,6 +13,7 @@ import javax.persistence.Entity;
|
||||||
* @date: 2020-04-01 15:01
|
* @date: 2020-04-01 15:01
|
||||||
*/
|
*/
|
||||||
public interface BomPrint {
|
public interface BomPrint {
|
||||||
|
Long getId();
|
||||||
String getNs();
|
String getNs();
|
||||||
String getCode();
|
String getCode();
|
||||||
String getXz();
|
String getXz();
|
||||||
|
|
|
||||||
|
|
@ -10,8 +10,8 @@ import lombok.Data;
|
||||||
public class BomPrint_BiaoQian {
|
public class BomPrint_BiaoQian {
|
||||||
|
|
||||||
|
|
||||||
|
private Long id;
|
||||||
private String ns;
|
private String ns;
|
||||||
|
|
||||||
private String code;
|
private String code;
|
||||||
|
|
||||||
//"箱种"
|
//"箱种"
|
||||||
|
|
|
||||||
|
|
@ -9,7 +9,7 @@ import lombok.Data;
|
||||||
@Data
|
@Data
|
||||||
public class BomPrint_BiaoQian2 {
|
public class BomPrint_BiaoQian2 {
|
||||||
|
|
||||||
|
private Long id;
|
||||||
private String ns;
|
private String ns;
|
||||||
|
|
||||||
private String code;
|
private String code;
|
||||||
|
|
|
||||||
|
|
@ -0,0 +1,16 @@
|
||||||
|
package com.youchain.businessdata.returnJson;
|
||||||
|
|
||||||
|
import lombok.Data;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 标签打印
|
||||||
|
* @date: 2020-04-01 15:01
|
||||||
|
*/
|
||||||
|
@Data
|
||||||
|
public class PointPrint_BiaoQian_Zy {
|
||||||
|
private String areaName;
|
||||||
|
private String code;
|
||||||
|
//"二维码"
|
||||||
|
private String ewm;
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
package com.youchain.businessdata.returnJson;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @description: 标签打印
|
||||||
|
* @date: 2020-04-01 15:01
|
||||||
|
*/
|
||||||
|
public interface PointZyPrint {
|
||||||
|
String getCode();
|
||||||
|
String getAreaName();
|
||||||
|
String getEwm();
|
||||||
|
}
|
||||||
|
|
@ -101,7 +101,7 @@ public interface InventoryService {
|
||||||
|
|
||||||
void downloadZz(List<InventoryDto> all, HttpServletResponse response) throws Exception, Exception;
|
void downloadZz(List<InventoryDto> all, HttpServletResponse response) throws Exception, Exception;
|
||||||
|
|
||||||
List<Inventory> queryInventoryAllocate(long itemId,long areaId,Long zzkwId,String stockCode);
|
List<Inventory> queryInventoryAllocate(long itemId,long areaId,Long zzkwId,String stockCode,String propC2,String type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 得到线边库存数量
|
* 得到线边库存数量
|
||||||
|
|
|
||||||
|
|
@ -107,7 +107,7 @@ public interface PickDetailService {
|
||||||
/**
|
/**
|
||||||
* 分配
|
* 分配
|
||||||
*/
|
*/
|
||||||
void allocate(long id,double quantity,String stockCode);
|
void allocate(long id,double quantity,String stockCode,String type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 取消分配
|
* 取消分配
|
||||||
|
|
@ -136,7 +136,7 @@ public interface PickDetailService {
|
||||||
* @param supplier
|
* @param supplier
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
PickDetail createPickDetail(PickTicket pt, Item item, String po, double qty,String supplier);
|
PickDetail createPickDetail(PickTicket pt, Item item, String po, double qty,String supplier,String type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 未分配的出库明细集合
|
* 未分配的出库明细集合
|
||||||
|
|
|
||||||
|
|
@ -122,7 +122,7 @@ public interface XppRecordService {
|
||||||
* @param ewm
|
* @param ewm
|
||||||
* @return
|
* @return
|
||||||
*/
|
*/
|
||||||
XppRecord saveXppRecord(String ewm);
|
XppRecord saveXppRecord(String ewm,Area area,String type);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 现品票出库
|
* 现品票出库
|
||||||
|
|
@ -134,4 +134,13 @@ public interface XppRecordService {
|
||||||
*/
|
*/
|
||||||
void xppShipOut(Long id, Area area, Point srcPoint, Point zzkw, String type,String billCode,String des);
|
void xppShipOut(Long id, Area area, Point srcPoint, Point zzkw, String type,String billCode,String des);
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 现品票入制造库位
|
||||||
|
* @param ewm
|
||||||
|
* @param bonded
|
||||||
|
* @param bomItemCode
|
||||||
|
* @param point
|
||||||
|
*/
|
||||||
|
void xppPutaway(String ewm,String bonded,String bomItemCode,Point point);
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -47,6 +47,11 @@ public class PickDetailDto implements Serializable {
|
||||||
*/
|
*/
|
||||||
private Long pickId;
|
private Long pickId;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* ID
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 物料序号
|
* 物料序号
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -74,5 +74,8 @@ public class PickDetailQueryCriteria{
|
||||||
/** 页面类型 ZSC指示残 ALL明细 */
|
/** 页面类型 ZSC指示残 ALL明细 */
|
||||||
@Query(type = Query.Type.EQUAL)
|
@Query(type = Query.Type.EQUAL)
|
||||||
private String pageType;
|
private String pageType;
|
||||||
|
/**ZCZS 正常指示,ZZJL 制造叫料*/
|
||||||
|
@Query(type = Query.Type.EQUAL)
|
||||||
|
private String type;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -49,6 +49,11 @@ public class XppRecordDto implements Serializable {
|
||||||
* 二维码
|
* 二维码
|
||||||
*/
|
*/
|
||||||
private String ewm;
|
private String ewm;
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 类型
|
||||||
|
*/
|
||||||
|
private String type;
|
||||||
/**
|
/**
|
||||||
* 采集库区
|
* 采集库区
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -62,4 +62,7 @@ public class XppRecordQueryCriteria{
|
||||||
|
|
||||||
@Query(type = Query.Type.EQUAL)
|
@Query(type = Query.Type.EQUAL)
|
||||||
private String prop_c1;
|
private String prop_c1;
|
||||||
|
|
||||||
|
@Query(type = Query.Type.EQUAL)
|
||||||
|
private String type;
|
||||||
}
|
}
|
||||||
|
|
@ -149,22 +149,28 @@ public class InventoryServiceImpl implements InventoryService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public List<Inventory> queryInventoryAllocate(long itemId, long areaId,Long zzkwId,String stockCode) {
|
public List<Inventory> queryInventoryAllocate(long itemId, long areaId,Long zzkwId,String stockCode,String propC2,String type) {
|
||||||
String hql = " from Inventory inv where 1=1 " +
|
String hql = " from Inventory inv where 1=1 " +
|
||||||
" and inv.itemKey.item.id=" + itemId + " " +
|
" and inv.itemKey.item.id=" + itemId + " " +
|
||||||
" and inv.area.id=" + areaId + " " +
|
|
||||||
" and inv.quantity-inv.queuedQty>0 and inv.quantity>0 and inv.point.code !='BH_ZC'";
|
" and inv.quantity-inv.queuedQty>0 and inv.quantity>0 and inv.point.code !='BH_ZC'";
|
||||||
if(zzkwId!=null){
|
if(zzkwId!=null){
|
||||||
|
hql+=" and inv.area.id=" + areaId + " ";
|
||||||
hql+=" and inv.zzkw.id="+zzkwId;
|
hql+=" and inv.zzkw.id="+zzkwId;
|
||||||
hql+="and inv.point.type in ('"+BaseStatus.HCKW+"','"+BaseStatus.ZZKW+"')";
|
hql+="and inv.point.type in ('"+BaseStatus.HCKW+"','"+BaseStatus.ZZKW+"')";
|
||||||
}else{
|
}else{
|
||||||
hql+="and inv.point.type='"+BaseStatus.CH+"' ";
|
hql+="and inv.point.type='"+BaseStatus.CH+"' ";
|
||||||
}
|
}
|
||||||
if(stockCode!=null){
|
if(type.equals(BaseStatus.ZCCK)) {
|
||||||
hql+=" and inv.stockCode='"+stockCode+"'";
|
if (stockCode != null) {
|
||||||
}else{
|
hql += " and inv.stockCode='" + stockCode + "'";
|
||||||
hql+=" and inv.stockCode is null";
|
} else {
|
||||||
|
hql += " and inv.stockCode is null";
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
if(propC2!=null){
|
||||||
|
hql+=" and inv.itemKey.propC2='"+propC2+"'";
|
||||||
|
}
|
||||||
|
|
||||||
hql+= " order by inv.itemKey.propC1 asc ";
|
hql+= " order by inv.itemKey.propC1 asc ";
|
||||||
Query query = entityManager.createQuery(hql);
|
Query query = entityManager.createQuery(hql);
|
||||||
List<Inventory> inventoryList = query.getResultList();
|
List<Inventory> inventoryList = query.getResultList();
|
||||||
|
|
@ -209,9 +215,9 @@ public class InventoryServiceImpl implements InventoryService {
|
||||||
throw new BadRequestException(HttpStatus.NOT_FOUND, area.getCode()+"接收库区必须为线边仓");
|
throw new BadRequestException(HttpStatus.NOT_FOUND, area.getCode()+"接收库区必须为线边仓");
|
||||||
}
|
}
|
||||||
// if(area.getPoint()==null){
|
// if(area.getPoint()==null){
|
||||||
if(area.getPointId()==null){
|
// if(area.getPointId()==null){
|
||||||
throw new BadRequestException(HttpStatus.NOT_FOUND, "接收库区线边库位必填");
|
// throw new BadRequestException(HttpStatus.NOT_FOUND, "接收库区线边库位必填");
|
||||||
}
|
// }
|
||||||
}
|
}
|
||||||
if(type.equals(BizStatus.SL_ALL)){
|
if(type.equals(BizStatus.SL_ALL)){
|
||||||
//取库区默认
|
//取库区默认
|
||||||
|
|
|
||||||
|
|
@ -60,6 +60,7 @@ import java.sql.Timestamp;
|
||||||
import java.text.SimpleDateFormat;
|
import java.text.SimpleDateFormat;
|
||||||
import java.util.*;
|
import java.util.*;
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
|
import java.util.stream.Collectors;
|
||||||
import javax.persistence.EntityManager;
|
import javax.persistence.EntityManager;
|
||||||
import javax.persistence.Query;
|
import javax.persistence.Query;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
@ -79,6 +80,7 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
private final PickDetailMapper pickDetailMapper;
|
private final PickDetailMapper pickDetailMapper;
|
||||||
private final InventoryRepository inventoryRepository;
|
private final InventoryRepository inventoryRepository;
|
||||||
private final TaskRepository taskRepository;
|
private final TaskRepository taskRepository;
|
||||||
|
private final BomAccountRepository bomAccountRepository;
|
||||||
private final ItemService itemService;
|
private final ItemService itemService;
|
||||||
private final TaskService taskService;
|
private final TaskService taskService;
|
||||||
private final AreaService areaService;
|
private final AreaService areaService;
|
||||||
|
|
@ -178,6 +180,7 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
Area sharea=areaRepository.getById(cxjldto.getRk_id());
|
Area sharea=areaRepository.getById(cxjldto.getRk_id());
|
||||||
Item it=itemRepository.getById(cxjldto.getItem_id());
|
Item it=itemRepository.getById(cxjldto.getItem_id());
|
||||||
Point zzkw= pointRepository.getById(cxjldto.getZzkw_id());
|
Point zzkw= pointRepository.getById(cxjldto.getZzkw_id());
|
||||||
|
BomAccount bomAccount=bomAccountRepository.getById(cxjldto.getBom_account_id());
|
||||||
pd.setArea(area);
|
pd.setArea(area);
|
||||||
pd.setShArea(sharea);
|
pd.setShArea(sharea);
|
||||||
pd.setItem(it);
|
pd.setItem(it);
|
||||||
|
|
@ -185,30 +188,44 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
pd.setStatus(BizStatus.OPEN);
|
pd.setStatus(BizStatus.OPEN);
|
||||||
pd.setOrderQty(cxjldto.getOrder_qty());
|
pd.setOrderQty(cxjldto.getOrder_qty());
|
||||||
pd.setRemark(cxjldto.getRemark());
|
pd.setRemark(cxjldto.getRemark());
|
||||||
pd.setSourceName("CXJL");
|
pd.setType(BaseStatus.ZZJL);
|
||||||
|
pd.setPropC2(bomAccount.getBonded());
|
||||||
|
pd.setBomId(bomAccount.getId());
|
||||||
this.create(pd);
|
this.create(pd);
|
||||||
return pd;
|
return pd;
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@Transactional(rollbackFor = Exception.class)
|
@Transactional(rollbackFor = Exception.class)
|
||||||
public synchronized void allocate(long id, double quantity,String stockCode){
|
public synchronized void allocate(long id, double quantity,String stockCode,String type){
|
||||||
PickDetailDto pickDetailDto = findById(id);
|
PickDetailDto pickDetailDto = findById(id);
|
||||||
PickDetail pd = toEntity(pickDetailDto);//Dto转实体
|
PickDetail pd = toEntity(pickDetailDto);//Dto转实体
|
||||||
PickTicket pickTicket = pd.getPickTicket();
|
PickTicket pickTicket = pd.getPickTicket();
|
||||||
ItemDto itemDto = pickDetailDto.getItem();
|
ItemDto itemDto = pickDetailDto.getItem();
|
||||||
Item item = itemService.toEntity(itemDto);
|
Item item = itemService.toEntity(itemDto);
|
||||||
|
String billCode=null;
|
||||||
|
Long areaId=0L;
|
||||||
if (pd.getOrderQty() > pd.getAllocatedQty()) {
|
if (pd.getOrderQty() > pd.getAllocatedQty()) {
|
||||||
Long zzkwId=null;
|
Long zzkwId=null;
|
||||||
if(pd.getPoint()!=null&&pickTicket.getArea().getBexb()){
|
if(pickTicket!=null){
|
||||||
zzkwId=pd.getPoint().getId();
|
if(pd.getPoint()!=null&&pickTicket.getArea().getBexb()){
|
||||||
|
zzkwId=pd.getPoint().getId();
|
||||||
|
}
|
||||||
|
areaId= pickTicket.getArea().getId();
|
||||||
|
billCode=pickTicket.getCode();
|
||||||
}
|
}
|
||||||
List<Inventory> invs = inventoryService.queryInventoryAllocate(item.getId(), pickTicket.getArea().getId(),zzkwId,stockCode);
|
List<Inventory> invs = inventoryService.queryInventoryAllocate(item.getId(),areaId,zzkwId,stockCode,pd.getPropC2(),type);
|
||||||
if (invs.size() > 0) {
|
if (invs.size() > 0) {
|
||||||
double allocateQty = 0;
|
double allocateQty = 0;
|
||||||
double unQty = quantity;//未分配数量
|
double unQty = quantity;//未分配数量
|
||||||
double srs=item.getExtendD3();
|
double srs=item.getExtendD3();
|
||||||
|
Map<String,String> map=new HashMap<>();
|
||||||
for (Inventory inv : invs) {
|
for (Inventory inv : invs) {
|
||||||
|
if(inv.getStockCode()!=null){
|
||||||
|
//回写推荐托盘即可
|
||||||
|
map.put(inv.getId()+"",inv.getStockCode()+"]"+inv.getItemKey().getPropC1()+"]"+inv.getPoint().getCode()+"]"+inv.getQuantity());
|
||||||
|
continue;
|
||||||
|
}
|
||||||
Point startPoint = inv.getPoint();//原库位
|
Point startPoint = inv.getPoint();//原库位
|
||||||
String areaCode=BaseStatus.DEFAULT_AREA;
|
String areaCode=BaseStatus.DEFAULT_AREA;
|
||||||
Point endPoint = pointService.getPoint(null, null, BaseStatus.BHZC, areaCode);//目标库位
|
Point endPoint = pointService.getPoint(null, null, BaseStatus.BHZC, areaCode);//目标库位
|
||||||
|
|
@ -222,13 +239,15 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
if (allocateQty <= 0) {
|
if (allocateQty <= 0) {
|
||||||
continue;
|
continue;
|
||||||
}
|
}
|
||||||
//本次拣货数小于收容数则按照收容数进行分配,只有正常备货单才走该逻辑
|
if(type.equals(BaseStatus.ZCCK)) {
|
||||||
if(pickTicket.getCode().indexOf("BH")>=0||pickTicket.getCode().indexOf("BC")>=0) {
|
//本次拣货数小于收容数则按照收容数进行分配,只有正常备货单才走该逻辑
|
||||||
if (unQty < srs) {
|
if (pickTicket.getCode().indexOf("BH") >= 0 || pickTicket.getCode().indexOf("BC") >= 0) {
|
||||||
if (allocateQty >= srs) {
|
if (unQty < srs) {
|
||||||
unQty = srs;
|
if (allocateQty >= srs) {
|
||||||
} else {
|
unQty = srs;
|
||||||
//unQty = allocateQty;
|
} else {
|
||||||
|
//unQty = allocateQty;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -240,20 +259,32 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
|
|
||||||
unQty -= allocateQty;
|
unQty -= allocateQty;
|
||||||
pd.setAllocatedQty(pd.getAllocatedQty() + allocateQty);
|
pd.setAllocatedQty(pd.getAllocatedQty() + allocateQty);
|
||||||
pickDetailRepository.save(pd);
|
|
||||||
pickTicket.setAllocatedQuantity(pickTicket.getAllocatedQuantity() + allocateQty);
|
if(type.equals(BaseStatus.ZCCK)) {
|
||||||
if (pickTicket.getAllocatedQuantity()>0) {
|
pickTicket.setAllocatedQuantity(pickTicket.getAllocatedQuantity() + allocateQty);
|
||||||
pickTicket.setStatus(BizStatus.ALLOCATE);
|
|
||||||
|
if (pickTicket.getAllocatedQuantity()>0) {
|
||||||
|
pickTicket.setStatus(BizStatus.ALLOCATE);
|
||||||
|
}
|
||||||
|
//备货表上出单日期(审核写)
|
||||||
|
pickTicket.setOutOrderDate(new Timestamp(new Date().getTime()));
|
||||||
|
pickTicketRepository.save(pickTicket);
|
||||||
|
} else if (type.equals(BaseStatus.ZZJL)) {
|
||||||
|
pd.setStatus(BizStatus.ALLOCATE);
|
||||||
}
|
}
|
||||||
//备货表上出单日期(审核写)
|
this.update(pd);
|
||||||
pickTicket.setOutOrderDate(new Timestamp(new Date().getTime()));
|
Task task = taskService.storeTask(null,pd,inv.getArea(),inv.getItemKey(),startPoint,endPoint,allocateQty,inv.getStockCode());
|
||||||
pickTicketRepository.save(pickTicket);
|
|
||||||
Task task = taskService.storeTask(null,pd,pickTicket.getArea(),inv.getItemKey(),startPoint,endPoint,allocateQty,inv.getStockCode());
|
|
||||||
//修改占用数,写入日志
|
//修改占用数,写入日志
|
||||||
inventoryLogService.storeInventoryLog(BizStatus.CHANGE_ZYS, BizStatus.ADD, pickTicket.getCode(), inv.getArea(), inv.getItemKey(), inv.getPoint(),
|
inventoryLogService.storeInventoryLog(BizStatus.CHANGE_ZYS, BizStatus.ADD, billCode, inv.getArea(), inv.getItemKey(), inv.getPoint(),
|
||||||
inv.getPoint(), inv.getZzkw(), (inv.getQueuedQty()-allocateQty), allocateQty, null, BizStatus.PICK,
|
inv.getPoint(), inv.getZzkw(), (inv.getQueuedQty()-allocateQty), allocateQty, null, BizStatus.PICK,
|
||||||
pd.getId(), inv.getId(), task.getId()+"备货占用");
|
pd.getId(), inv.getId(), task.getId()+"备货占用");
|
||||||
}
|
}
|
||||||
|
if(map!=null){
|
||||||
|
pd.setRemark(map.values().stream()
|
||||||
|
.collect(Collectors.joining("\n")));
|
||||||
|
log.info(pd.getRemark()+"===="+pd.getType());
|
||||||
|
this.update(pd);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
} else {
|
} else {
|
||||||
throw new BadRequestException(HttpStatus.NOT_FOUND,"已分配,请勿重复操作!");
|
throw new BadRequestException(HttpStatus.NOT_FOUND,"已分配,请勿重复操作!");
|
||||||
|
|
@ -328,7 +359,7 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public PickDetail createPickDetail(PickTicket pt,Item item, String po,double qty,String supplier) {
|
public PickDetail createPickDetail(PickTicket pt,Item item, String po,double qty,String supplier,String type) {
|
||||||
PickDetail d = new PickDetail();
|
PickDetail d = new PickDetail();
|
||||||
d.setItem(item);
|
d.setItem(item);
|
||||||
d.setLineNo(1l);
|
d.setLineNo(1l);
|
||||||
|
|
@ -338,6 +369,7 @@ public class PickDetailServiceImpl implements PickDetailService {
|
||||||
d.setPo(po);
|
d.setPo(po);
|
||||||
d.setPickTicket(pt);
|
d.setPickTicket(pt);
|
||||||
d.setSupplier(supplier);
|
d.setSupplier(supplier);
|
||||||
|
d.setType(BaseStatus.ZCCK);
|
||||||
pickDetailRepository.save(d);
|
pickDetailRepository.save(d);
|
||||||
return d;
|
return d;
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -192,7 +192,7 @@ public class PickInstructionServiceImpl implements PickInstructionService {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
PickDetail pickDetailDto = pickDetailRepository.save(pickDetail);
|
PickDetail pickDetailDto = pickDetailRepository.save(pickDetail);
|
||||||
pickDetailService.allocate(pickDetailDto.getId(), pickDetailDto.getOrderQty(),null);
|
pickDetailService.allocate(pickDetailDto.getId(), pickDetailDto.getOrderQty(),null,BaseStatus.ZCCK);
|
||||||
bcAllocatedQty = pickDetail.getAllocatedQty();
|
bcAllocatedQty = pickDetail.getAllocatedQty();
|
||||||
//回写
|
//回写
|
||||||
pickInstruction.setAllocatedQty(pickInstruction.getAllocatedQty()+bcAllocatedQty);
|
pickInstruction.setAllocatedQty(pickInstruction.getAllocatedQty()+bcAllocatedQty);
|
||||||
|
|
|
||||||
|
|
@ -29,6 +29,7 @@ import com.youchain.businessdata.repository.AsnDetailRepository;
|
||||||
import com.youchain.businessdata.returnJson.RRkXpp;
|
import com.youchain.businessdata.returnJson.RRkXpp;
|
||||||
import com.youchain.businessdata.service.InventoryLogService;
|
import com.youchain.businessdata.service.InventoryLogService;
|
||||||
import com.youchain.businessdata.service.InventoryService;
|
import com.youchain.businessdata.service.InventoryService;
|
||||||
|
import com.youchain.businessdata.service.ItemKeyService;
|
||||||
import com.youchain.businessdata.service.dto.*;
|
import com.youchain.businessdata.service.dto.*;
|
||||||
import com.youchain.exception.BadRequestException;
|
import com.youchain.exception.BadRequestException;
|
||||||
import com.youchain.modules.system.domain.Job;
|
import com.youchain.modules.system.domain.Job;
|
||||||
|
|
@ -56,6 +57,8 @@ import javax.persistence.EntityManager;
|
||||||
import javax.persistence.Query;
|
import javax.persistence.Query;
|
||||||
import javax.servlet.http.HttpServletResponse;
|
import javax.servlet.http.HttpServletResponse;
|
||||||
|
|
||||||
|
import static org.springframework.http.HttpStatus.BAD_REQUEST;
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* @author baobinglin
|
* @author baobinglin
|
||||||
* @website https://eladmin.vip
|
* @website https://eladmin.vip
|
||||||
|
|
@ -74,6 +77,7 @@ public class XppRecordServiceImpl implements XppRecordService {
|
||||||
private final AreaRepository areaRepository;
|
private final AreaRepository areaRepository;
|
||||||
private final JobRepository jobRepository;
|
private final JobRepository jobRepository;
|
||||||
|
|
||||||
|
private final ItemKeyService itemKeyService;
|
||||||
private final InventoryLogService inventoryLogService;
|
private final InventoryLogService inventoryLogService;
|
||||||
private final InventoryService inventoryService;
|
private final InventoryService inventoryService;
|
||||||
|
|
||||||
|
|
@ -330,6 +334,9 @@ public class XppRecordServiceImpl implements XppRecordService {
|
||||||
if (criteria.getDdbh()!=null &&!criteria.getDdbh().equals("") ) {
|
if (criteria.getDdbh()!=null &&!criteria.getDdbh().equals("") ) {
|
||||||
sql += " and xpp.ddbh like '%" + criteria.getDdbh() + "%'";
|
sql += " and xpp.ddbh like '%" + criteria.getDdbh() + "%'";
|
||||||
}
|
}
|
||||||
|
if (criteria.getType()!=null &&!criteria.getType().equals("") ) {
|
||||||
|
sql += " and xpp.type = '" + criteria.getType() + "'";
|
||||||
|
}
|
||||||
if (criteria.getCreateTime()!=null &&criteria.getCreateTime().size()>0 ) {
|
if (criteria.getCreateTime()!=null &&criteria.getCreateTime().size()>0 ) {
|
||||||
sql += " and xpp.cj_date BETWEEN '"+criteria.getCreateTime().get(0)+"' and '"+criteria.getCreateTime().get(1)+"'";
|
sql += " and xpp.cj_date BETWEEN '"+criteria.getCreateTime().get(0)+"' and '"+criteria.getCreateTime().get(1)+"'";
|
||||||
//sql += " and date_format(xpp.cj_date,'%Y-%m-%d %H:%i:%s')>='"+criteria.getCreateTime().get(0)+"' and date_format(xpp.cj_date,'%Y-%m-%d %H:%i:%s')<='"+criteria.getCreateTime().get(1)+"'";
|
//sql += " and date_format(xpp.cj_date,'%Y-%m-%d %H:%i:%s')>='"+criteria.getCreateTime().get(0)+"' and date_format(xpp.cj_date,'%Y-%m-%d %H:%i:%s')<='"+criteria.getCreateTime().get(1)+"'";
|
||||||
|
|
@ -435,7 +442,7 @@ public class XppRecordServiceImpl implements XppRecordService {
|
||||||
return xpp;
|
return xpp;
|
||||||
}
|
}
|
||||||
|
|
||||||
public XppRecord saveXppRecord(String ewm){
|
public XppRecord saveXppRecord(String ewm,Area area,String type){
|
||||||
XppRecord xppRecord = xppRecordRepository.findByCode(ewm);
|
XppRecord xppRecord = xppRecordRepository.findByCode(ewm);
|
||||||
if (xppRecord != null) {
|
if (xppRecord != null) {
|
||||||
throw new BadRequestException("二维码已采集");
|
throw new BadRequestException("二维码已采集");
|
||||||
|
|
@ -446,7 +453,7 @@ public class XppRecordServiceImpl implements XppRecordService {
|
||||||
throw new BadRequestException("部品品番不存在");
|
throw new BadRequestException("部品品番不存在");
|
||||||
}
|
}
|
||||||
xppRecord = new XppRecord();
|
xppRecord = new XppRecord();
|
||||||
Area area=areaRepository.getByCode(BaseStatus.DEFAULT_AREA);
|
// Area area=areaRepository.getByCode(BaseStatus.DEFAULT_AREA);
|
||||||
// Long user_id=SecurityUtils.getCurrentUserId();
|
// Long user_id=SecurityUtils.getCurrentUserId();
|
||||||
// List<Job> jobs=jobRepository.jobAreaCodes(user_id);
|
// List<Job> jobs=jobRepository.jobAreaCodes(user_id);
|
||||||
// if(jobs.size()>0){
|
// if(jobs.size()>0){
|
||||||
|
|
@ -463,6 +470,7 @@ public class XppRecordServiceImpl implements XppRecordService {
|
||||||
// throw new BadRequestException(pf+"找不到BOM对应的出库库区");
|
// throw new BadRequestException(pf+"找不到BOM对应的出库库区");
|
||||||
// }
|
// }
|
||||||
xppRecord.setItem(item);
|
xppRecord.setItem(item);
|
||||||
|
xppRecord.setType(type);
|
||||||
xppRecord.setItemCode(xpp.getItemCode());
|
xppRecord.setItemCode(xpp.getItemCode());
|
||||||
xppRecord.setAreaCode(xpp.getPq());
|
xppRecord.setAreaCode(xpp.getPq());
|
||||||
xppRecord.setAc(xpp.getAc());
|
xppRecord.setAc(xpp.getAc());
|
||||||
|
|
@ -523,7 +531,26 @@ public class XppRecordServiceImpl implements XppRecordService {
|
||||||
inventoryLogService.storeInventoryLog(type, BizStatus.REDUCE, billCode, area, ik, srcPoint, srcPoint, null, null, srcQty, xppRecord.getNrs()+0d,null,xppRecord.getEwm(),
|
inventoryLogService.storeInventoryLog(type, BizStatus.REDUCE, billCode, area, ik, srcPoint, srcPoint, null, null, srcQty, xppRecord.getNrs()+0d,null,xppRecord.getEwm(),
|
||||||
BizStatus.ASN, xppRecord.getId(), inventory.getId(), des);
|
BizStatus.ASN, xppRecord.getId(), inventory.getId(), des);
|
||||||
}
|
}
|
||||||
|
public void xppPutaway(String ewm,String bonded,String bomItemCode,Point point) {
|
||||||
|
String xppItemCode = ewm.substring(3, 13);
|
||||||
|
if(!xppItemCode.equals(bomItemCode)){
|
||||||
|
throw new BadRequestException("现品票品番"+xppItemCode+"和库位品番"+bomItemCode+"不一致");
|
||||||
|
//return new ResponseEntity<>( "现品票品番"+xppItemCode+"和库位品番"+bomItemCode+"不一致", BAD_REQUEST);
|
||||||
|
}
|
||||||
|
XppRecord xppRecord = this.saveXppRecord(ewm,point.getArea(),"2001");
|
||||||
|
ItemKey itemKey = itemKeyService.getItemKey(xppRecord.getItem(), null,bonded);
|
||||||
|
Inventory inventory = inventoryService.getInventory(itemKey, point.getArea(), point, point, point.getDept(), BizStatus.ZZKW_TL,null);
|
||||||
|
double srcQty = inventory.getQuantity();
|
||||||
|
inventory.setQuantity(inventory.getQuantity() + xppRecord.getNrs());
|
||||||
|
inventoryService.update(inventory);
|
||||||
|
InventoryLog inventoryLog = inventoryLogService.storeInventoryLog(BizStatus.ZZKW_TL, BizStatus.ADD, xppRecord.getDdbh(), point.getArea(), itemKey, inventory.getPoint(), inventory.getPoint(), null, null, srcQty, xppRecord.getNrs()+0d, null, xppRecord.getEwm(),
|
||||||
|
BizStatus.ZZKW_TL, xppRecord.getId(), inventory.getId(), "制造投料");
|
||||||
|
inventoryLog.setZzkw(point);
|
||||||
|
inventoryLogService.update(inventoryLog);
|
||||||
|
xppRecord.setInvPoint(point);
|
||||||
|
xppRecord.setStatus(BizStatus.ZZKW_TL);
|
||||||
|
this.update(xppRecord);
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
@ -111,5 +111,20 @@ public interface BaseStatus {
|
||||||
*/
|
*/
|
||||||
public static String BS = "保税";
|
public static String BS = "保税";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出库指示-正常指示
|
||||||
|
*/
|
||||||
|
public static String ZCCK = "ZCCK";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出库指示-留样出库
|
||||||
|
*/
|
||||||
|
public static String LYCK = "LYCK";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 出库指示-制造叫料
|
||||||
|
*/
|
||||||
|
public static String ZZJL = "ZZJL";
|
||||||
|
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -70,6 +70,11 @@ public class BizStatus {
|
||||||
*/
|
*/
|
||||||
public static String SL_ALL = "SL_ALL";
|
public static String SL_ALL = "SL_ALL";
|
||||||
|
|
||||||
|
/**
|
||||||
|
* 制造投料;
|
||||||
|
*/
|
||||||
|
public static String ZZ_TL = "ZZ_TL";
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* 任务状态-执行中
|
* 任务状态-执行中
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue