更新问题

main
FOAM 2025-09-09 11:42:30 +08:00
parent bc7f065b1b
commit 74d7f757f3
16 changed files with 216 additions and 27 deletions

View File

@ -198,7 +198,7 @@ public class Item extends BaseEntity implements Serializable {
private String extendStr1;
@Column(name = "`extend_str2`")
@ApiModelProperty(value = "扩展字符2")
@ApiModelProperty(value = "扩展字符2,保管期限")
private String extendStr2;
@Column(name = "`extend_str3`")

View File

@ -97,12 +97,31 @@ public interface BomAccountRepository extends JpaRepository<BomAccount, Long>, J
"left join base_item it on it.id=ba.item_id\n" +
"left join base_point point on point.id=ba.z_point_id" +
" left join base_area area on area.id=ba.r_area_id" +
" where (ba.bp_type=:bp_type or :bp_type is null) and (it.code=:itemCode or :itemCode is null) and (point.code=:hw or :hw is null) " +
" where (ba.bp_type=:bp_type or :bp_type is null) and (it.code=:itemCode or :itemCode is null) and (point.code like CONCAT(:hw, '%') or :hw is null) " +
" and (area.code=:kq or :kq is null) and (ba.ns=:ns or :ns is null)" +
" and (bi.code=:bigItemCode or :bigItemCode is null) and (ba.supplier=:supplier or :supplier is null)" +
" and (ba.tckw=:tckw or :tckw is null) and ba.bp_type=:dxw" +
" order by point.code, ba.ns,it.code,ba.bonded,bi.master_name ", nativeQuery = true)
List<BomPrint> queryPrintAll(String bigItemCode,String itemCode, String hw, String ns,String kq,String bp_type,String tckw,String supplier,String dxw);
List<BomPrint> queryPrintAll(String bigItemCode,String itemCode, String hw, String ns,String kq,String bp_type,String tckw,
String supplier,String dxw);
@Query(value = "select ba.id id ,it.code, ba.ns,it.name pm,point.code hw,ba.xz,ba.srs,ba.bonded," +
"ba.supplier,bi.master_name AS jxs ,ba.singles AS tyls,ba.bp_type dxw,v.jxs jxs_v " +
"from base_bom_account ba \n" +
"LEFT JOIN base_big_item bi on bi.id=ba.big_item_id\n" +
"left join base_item it on it.id=ba.item_id\n" +
"left join base_point point on point.id=ba.z_point_id" +
" left join base_area area on area.id=ba.r_area_id " +
" LEFT JOIN bom_print_view v on v.item_id=ba.item_id and v.bonded=ba.bonded and v.z_point_id=ba.z_point_id and v.ns=ba.ns " +
" where (ba.bp_type=:bp_type or :bp_type is null) and (it.code=:itemCode or :itemCode is null) and (point.code like CONCAT(:hw, '%') or :hw is null) " +
" and (area.code=:kq or :kq is null) and (ba.ns=:ns or :ns is null)" +
" and (v.jxs LIKE CONCAT('%',:bigItemCode,'%') or :bigItemCode is null) and (ba.supplier=:supplier or :supplier is null)" +
" and (ba.tckw=:tckw or :tckw is null)" +
" order by point.code, ba.ns,it.code,ba.bonded,bi.master_name ", nativeQuery = true)
List<BomPrint> queryPrintAll(String bigItemCode,String itemCode, String hw, String ns,String kq,String bp_type,String tckw,
String supplier);
}

View File

@ -50,7 +50,9 @@ import org.springframework.validation.annotation.Validated;
import org.springframework.web.bind.annotation.*;
import io.swagger.annotations.*;
import java.io.IOException;
import java.math.BigInteger;
import java.util.*;
import java.util.stream.Collectors;
import javax.servlet.http.HttpServletResponse;
/**
@ -157,11 +159,11 @@ public class BomAccountController {
// }
@GetMapping("/bomPrintBiaoQianList/{dxw}")
@GetMapping("/bomPrintBiaoQianListold/{dxw}")
@Log("获取Bom中库位标签")
@ApiOperation("获取Bom中库位标签")
@AnonymousAccess
public ResponseEntity<Object> bomPrintBiaoQianList(@PathVariable("dxw") String dxw){
public ResponseEntity<Object> bomPrintBiaoQianListold(@PathVariable("dxw") String dxw){
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
String json=(String)redisUtils.get(SecurityUtils.getCurrentUsername()+dxw);
//log.info(SecurityUtils.getCurrentUsername()+dxw+"-----"+json);
@ -221,7 +223,103 @@ public class BomAccountController {
// // 先比较前部分,再比较后部分
// return firstPart * 1000 + secondPart;
// }));
return new ResponseEntity<>( list2,HttpStatus.OK);
redisUtils.set(SecurityUtils.getCurrentUsername()+"_BiaoQian_X",JsonUtil.toJson(list));
return new ResponseEntity<>(list,HttpStatus.OK);
}
@GetMapping("/queryBomPrintList")
@Log("查询Bom标签")
@ApiOperation("查询Bom标签")
@AnonymousAccess
public ResponseEntity<Object> queryBomPrintList(BomAccountQueryCriteria criteria,Pageable pageable){
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
redisUtils.del(SecurityUtils.getCurrentUsername()+BaseStatus.XWBQ);
redisUtils.del(SecurityUtils.getCurrentUsername()+BaseStatus.ZDWBQ);
List<BomPrint> list=bomAccountService.queryPrintAll(criteria);
List<String> sortList=new ArrayList<>();
HashMap<String ,List<BomPrint>> map=new HashMap<>();
for(BomPrint l:list){
String key=l.getCode()+"]"+l.getNs()+"]"+l.getBonded()+"]"+l.getHw();
if(map.containsKey(key)){
List<BomPrint> list2=map.get(key);
list2.add(l);
map.put(key,list2);
}else{
List<BomPrint> list2=new ArrayList<>();
list2.add(l);
map.put(key,list2);
sortList.add(key);
}
}
List<BomPrint_BiaoQian> list2=new ArrayList<>();
List<BomPrint_BiaoQian> listd=new ArrayList<>();
List<BomPrint_BiaoQian> listx=new ArrayList<>();
// for (String key : map.keySet()) {
for(String key:sortList){
List<BomPrint> bqs=map.get(key);
BomPrint_BiaoQian bq=new BomPrint_BiaoQian();
BomPrint l=bqs.get(0);
String code=l.getCode().substring(0,5)+"-"+l.getCode().substring(5,l.getCode().length());
bq.setNs(l.getNs()+"/"+code);
bq.setNsv(l.getNs());
bq.setCode(code);
String hw=l.getHw();
hw=hw.substring(0,3)+"-"+hw.substring(3,hw.length());
bq.setHw(hw);
bq.setPm(l.getPm());
bq.setEwm(key);
bq.setBonded(l.getBonded());
bq.setSrs(l.getSrs());
bq.setXz(l.getXz());
bq.setSupplier(l.getSupplier());
bq.setDxw(l.getDxw());
bq.setId(l.getId());
String[] jxs=new String[bqs.size()];
String[] tyls=new String[bqs.size()];
String jx="";
String tyl="";
for(int i=0;i<bqs.size();i++){
jxs[i]=bqs.get(i).getJxs();
tyls[i]=bqs.get(i).getTyls();
jx+=bqs.get(i).getJxs()+";";
tyl+=bqs.get(i).getTyls()+";";
}
bq.setJx(jx);
bq.setTyl(tyl);
bq.setJxs(jxs);
bq.setTyls(tyls);
list2.add(bq);
if(l.getDxw().equals("中大物标签")){
listd.add(bq);
}else if(l.getDxw().equals("小物标签")){
listx.add(bq);
}
}
redisUtils.set(SecurityUtils.getCurrentUsername()+BaseStatus.XWBQ,JsonUtil.toJson(listx));
redisUtils.set(SecurityUtils.getCurrentUsername()+BaseStatus.ZDWBQ,JsonUtil.toJson(listd));
Map<String,Object> map2=new HashMap<>();
int pageNum=pageable.getPageNumber();//当前页
int pageSize=pageable.getPageSize();//条数
List<BomPrint_BiaoQian> result = list2.stream()
.skip((pageNum)*pageSize) // 跳过前100个
.limit(pageSize) // 取100个101-200行
.collect(Collectors.toList());
map2.put("content",result);
map2.put("totalElements",list2.size());
return new ResponseEntity<>(map2,HttpStatus.OK);
}
@GetMapping("/bomPrintBiaoQianList/{dxw}")
@Log("获取Bom中库位标签")
@ApiOperation("获取Bom中库位标签")
@AnonymousAccess
public ResponseEntity<Object> bomPrintBiaoQianList(@PathVariable("dxw") String dxw){
RedisUtils redisUtils = SpringContextHolder.getBean(RedisUtils.class);
String key=SecurityUtils.getCurrentUsername()+dxw;
String json=(String)redisUtils.get(key);
log.info("---"+key+"-----"+json);
List<BomPrint_BiaoQian> list= JSONUtil.toList(json, BomPrint_BiaoQian.class);
return new ResponseEntity<>(list,HttpStatus.OK);
}

View File

@ -53,6 +53,8 @@ public interface BomAccountService {
List<BomPrint> queryPrintAll(BomAccountQueryCriteria criteria,String dxw);
List<BomPrint> queryPrintAll(BomAccountQueryCriteria criteria);
/**
* ID
* @param id ID

View File

@ -66,4 +66,5 @@ public class BomAccountQueryCriteria{
private String tckw;
@Query
private String supplier;
}

View File

@ -89,7 +89,14 @@ public class BomAccountServiceImpl implements BomAccountService {
}
public List<BomPrint> queryPrintAll(BomAccountQueryCriteria criteria,String dxw){
List<BomPrint> bomPrints=bomAccountRepository.queryPrintAll(criteria.getBigItemCode(),criteria.getItemCode(),criteria.getZPointCode(),criteria.getNs(),criteria.getRAreaCode(),criteria.getBp_type(),criteria.getTckw(),criteria.getSupplier(),dxw);
List<BomPrint> bomPrints=bomAccountRepository.queryPrintAll(criteria.getBigItemCode(),criteria.getItemCode(),criteria.getZPointCode(),
criteria.getNs(),criteria.getRAreaCode(),criteria.getBp_type(),criteria.getTckw(),criteria.getSupplier(),dxw);
return bomPrints;
}
public List<BomPrint> queryPrintAll(BomAccountQueryCriteria criteria){
List<BomPrint> bomPrints=bomAccountRepository.queryPrintAll(criteria.getBigItemCode(),criteria.getItemCode(),criteria.getZPointCode(),
criteria.getNs(),criteria.getRAreaCode(),criteria.getBp_type(),criteria.getTckw(),criteria.getSupplier());
return bomPrints;
}

View File

@ -10,6 +10,7 @@ import com.youchain.businessdata.inputJson.imports.BaseImport;
import com.youchain.businessdata.inputJson.imports.InvoicePackingImport;
import com.youchain.businessdata.repository.*;
import com.youchain.businessdata.service.*;
import com.youchain.config.FileProperties;
import com.youchain.exception.BadRequestException;
import com.youchain.modules.system.domain.Dept;
import com.youchain.utils.*;
@ -20,6 +21,7 @@ import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.sql.Timestamp;
import java.util.*;
import java.util.stream.Collectors;
@ -41,10 +43,14 @@ public class ImportAsnServiceImpl implements ImportAsnService {
private final CodeUtils codeUtils;
private final FileProperties properties;
@Override
@Transactional(rollbackFor = Exception.class)
public void importAsn(MultipartFile file, String templateType) {
// String suffix = FileUtil.getExtensionName(file.getOriginalFilename());
// String type = FileUtil.getFileType(suffix);
// FileUtil.upload(file, properties.getPath().getPath() + type + File.separator);
// 验证模板类型是否正确
isValidTemplateType(file, templateType);
@ -82,6 +88,7 @@ public class ImportAsnServiceImpl implements ImportAsnService {
Map<String, String> cellValues = FastExcelUtil.readExcelCellValues(file, reader);
String invoiceNo = cellValues.get("5-55");
// 读取两个sheet的数据
List<BaseImport> sheet1Data = FastExcelUtil.readExcelData(file, BaseImport.class, 0, 21);
List<BaseImport> sheet2Data = FastExcelUtil.readExcelData(file, BaseImport.class, 1, 21);
@ -240,7 +247,7 @@ public class ImportAsnServiceImpl implements ImportAsnService {
if (!SmartStringUtil.containsAllIgnoreCase(requiredColumns, headers)) {
throw new BadRequestException("标准导入模板不正确,请确认模板信息");
}
} else if ("template2".equals(templateType)) {
} else if ("template2".equals(templateType)){
List<String> requiredColumns = Arrays.asList("BOI", "PO&LN NO.", "PART NO.", "DESCRIPTION", "Q'TY \n" + "(PCS)");
List<String> sheet1Headers = FastExcelUtil.readHeadContent(file, requiredColumns, 0, 20);
if (!SmartStringUtil.containsAllIgnoreCase(requiredColumns, sheet1Headers)) {

View File

@ -67,12 +67,14 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
bomAccountImport.setTckw(map.get(10) != null ? map.get(10).toString() : "");
bomAccountImport.setDxw(map.get(11) != null ? map.get(11).toString() : "");
bomAccountImport.setSb(map.get(12) != null ? map.get(12).toString() : "");
if(bomAccountImport.getZcfq().equals("制造库位")) {
boolean cgsj=Boolean.TRUE;
// if(bomAccountImport.getZcfq().equals("制造库位")) {
for (int ccc=0;ccc<50;ccc++){
BomEntity bomAccountImport_new=new BomEntity();
int index=ccc*4+12;
String tyl=(map.get((index+4)) != null ? map.get((index+4)).toString() : "");
if (tyl.length() > 0) {
cgsj=Boolean.FALSE;
bomAccountImport_new.setJxdm((map.get((index+1)) != null ? map.get((index+1)).toString() : ""));
bomAccountImport_new.setJx((map.get((index+2)) != null ? map.get((index+2)).toString() : ""));
bomAccountImport_new.setKyh((map.get((index+3)) != null ? map.get((index+3)).toString() : ""));
@ -95,7 +97,8 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
dataList.add(bomAccountImport_new);
}
}
}else{
// }
if(cgsj){
bomAccountImport.setJxdm(BaseStatus.DEFAULT_CG_BIG);
bomAccountImport.setJx(BaseStatus.DEFAULT_CG_BIG);
bomAccountImport.setTyl("0");
@ -301,7 +304,7 @@ public class ImportBomAccountServiceImpl implements ImportBomAccountService {
//验证模板是否使用正确
private void isValidTemplateType(MultipartFile file) {
List<String> requiredColumns = Arrays.asList(
"品番",
"品番",
"纳所",
"品名(多国语)",
"本国语供应商1多国语",

View File

@ -81,6 +81,10 @@ public class ImportItemServiceImpl implements ImportItemService {
item.setContents(data.getContents());
item.setXz(data.getXz());
item.setExtendD3(data.getSrs()+0d);
item.setLength(data.getLength());
item.setWidth(data.getWidth());
item.setHeight(data.getHeight());
item.setExtendStr2(data.getExtendStr2());
itemRepository.save(item);
}
}
@ -101,7 +105,11 @@ public class ImportItemServiceImpl implements ImportItemService {
"A/C",
"加工内容",
"箱种",
"收容数"
"收容数",
"长",
"宽",
"高",
"保管期限"
);
List<String> headers = FastExcelUtil.readHeadContent(file, requiredColumns, 0, 0);
if (!SmartStringUtil.containsAllIgnoreCase(requiredColumns, headers)) {

View File

@ -1,6 +1,7 @@
package com.youchain.businessdata.inputJson.imports;
import cn.idev.excel.annotation.ExcelProperty;
import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Builder;
import lombok.Data;
@ -36,4 +37,19 @@ public class ItemImport {
@ExcelProperty("收容数")
private int srs=0;
@ExcelProperty("长")
private Double length=0d;
@ExcelProperty("宽")
private Double width=0d;
@ExcelProperty( "高")
private Double height=0d;
@ExcelProperty("保质期")
private Integer validPeriod;
@ExcelProperty("保管期限")
private String extendStr2;
}

View File

@ -202,15 +202,20 @@ public class InventoryController {
}
@PostMapping("/queryInvApp")
@Log("APP查询库存")
@ApiOperation("APP查询库存")
@Log("APP库存查询")
@ApiOperation("APP库存查询")
@AnonymousAccess
public ApiResult queryInvApp(@RequestBody ScanItemCode scan) {
String code=scan.getItemCode();
if(code!=null&&code.length()>=85){
if(code!=null&&code.length()>=81){
code=code.substring(3, 13);
}
List<RInvQuery> qs=inventoryService.queryInvApp(code,scan.getPointCode());
String pointCode=scan.getPointCode();
String[] str=pointCode.split("]");
if(str.length>1){//固定库位标签
pointCode=str[3];
}
List<RInvQuery> qs=inventoryService.queryInvApp(code,pointCode);
return ApiResult.result(200, "", qs);
}

View File

@ -28,6 +28,8 @@ public interface BomPrint {
String getEwm();
String getBqlx();
// private String ns;
//
// @ExcelProperty("箱种")

View File

@ -11,6 +11,7 @@ public class BomPrint_BiaoQian {
private Long id;
private String nsv;
private String ns;
private String code;
@ -41,6 +42,12 @@ public class BomPrint_BiaoQian {
//"台用量"
private String [] tyls;
//"机型"
private String jx;
//"台用量"
private String tyl;
//"二维码"
private String ewm;

View File

@ -176,12 +176,12 @@ public class PickDetailServiceImpl implements PickDetailService {
@Transactional(rollbackFor = Exception.class)
public PickDetail cxjlCreate(CxjlDto cxjldto){
PickDetail pd=new PickDetail();
Area area=areaService.findByCode(BaseStatus.DEFAULT_AREA);
// Area area=areaService.findByCode(BaseStatus.DEFAULT_AREA);
Area sharea=areaRepository.getById(cxjldto.getRk_id());
Item it=itemRepository.getById(cxjldto.getItem_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.setItem(it);
pd.setPoint(zzkw);
@ -221,7 +221,10 @@ public class PickDetailServiceImpl implements PickDetailService {
for (Inventory inv : invs) {
if(inv.getStockCode()!=null&&pd.getPo()==null){
//回写推荐托盘即可
pd.setStatus(BizStatus.ALLOCATE);
pd.setArea(inv.getArea());
map.put(inv.getId()+"",inv.getStockCode()+"]"+inv.getItemKey().getPropC1()+"]"+inv.getPoint().getCode()+"]"+inv.getQuantity());
continue;
}
Point startPoint = inv.getPoint();//原库位
@ -271,6 +274,7 @@ public class PickDetailServiceImpl implements PickDetailService {
if(pd.getAllocatedQty()>0) {
pd.setStatus(BizStatus.ALLOCATE);
}
pd.setArea(inv.getArea());
pickDetailRepository.save(pd);
Task task = taskService.storeTask(null,pd,inv.getArea(),inv.getItemKey(),startPoint,endPoint,allocateQty,inv.getStockCode());
//修改占用数,写入日志

View File

@ -418,12 +418,12 @@ public class XppRecordServiceImpl implements XppRecordService {
if (item==null){
throw new BadRequestException("部品品番不存在");
}
if(type!=null) {
XppRecord xppRecord = xppRecordRepository.findByEwmType(ewm, type);
if (xppRecord != null) {
throw new BadRequestException("二维码已采集");
}
}
// if(type!=null) {
// XppRecord xppRecord = xppRecordRepository.findByEwmType(ewm, type);
// if (xppRecord != null) {
// throw new BadRequestException("二维码已采集");
// }
// }
RRkXpp xpp = new RRkXpp();
xpp.setItemCode(item.getCode());
xpp.setItemName(item.getName());
@ -479,8 +479,8 @@ public class XppRecordServiceImpl implements XppRecordService {
xppRecord.setZf(xpp.getZf());
xppRecord.setDdbh(xpp.getDdbh());
xppRecord.setNrs(Integer.valueOf(xpp.getNrs()));
xppRecord.setRelaSupplier(xpp.getGys());
xppRecord.setRelaCode(xpp.getNrcs());
xppRecord.setRelaSupplier(xpp.getGys().trim());
xppRecord.setRelaCode(xpp.getNrcs().trim());
xppRecord.setZPointCode(xpp.getZzkw());
xppRecord.setCPointCode(xpp.getCgkw());
xppRecord.setFzh(xpp.getFzh());

View File

@ -126,5 +126,15 @@ public interface BaseStatus {
*/
public static String ZZJL = "ZZJL";
/**
* -
*/
public static String XWBQ = "_XWBQ";
/**
* -
*/
public static String ZDWBQ = "_ZDWBQ";
}